2011-02-01 12 views

回答

0

使用規範化的表示法正是你會做的。

如果這是實施提供的限制,您可以作弊並預先計算給定範圍的最大值。

+0

我沒有問題,無論作弊:)你能給我一個簡單的例子嗎? – dubbeat 2011-02-01 13:41:25

0

不幸的是,沒有很好的方法來發現信號的實際最大值,而無需通過樣本進行採樣並找到它。

如果知道PCM採樣中的位數,則可以假定縮放將以[-2^(bits-1), 2^(bits-1)-1]爲界。這將是信號可以達到的最高和最低。但是,這是最悲觀的縮放比例 - 如果您的16位信號永遠不會超出範圍[-1024,1024],例如,您放棄了很多顯示區域(以及ADC動態範圍,但這是另一回事)。

如果您願意動態縮放信號,您可以簡單地讓圖形縮放比例更大,每次您的信號將被剪切。更爲複雜的方法是根據需要升級,但隨着時間的推移慢慢放鬆最大比例。放寬最大比例的一個好方法是指數衰減,例如在每次迭代時將最大比例乘以0.98(或其他一些數字< 1)。

相關問題