我很高興地繪製波形屏幕從pcm數據。我有一個問題,偶爾波形高度將超過顯示區域高度的高度。什麼是一個很好的方式來表示一定的高度範圍內的波形
如何確保波形繪圖數據永遠不會超過確定的高度,而不必翻閱整個pcm數據集並從發現的最大值進行標準化?
我很高興地繪製波形屏幕從pcm數據。我有一個問題,偶爾波形高度將超過顯示區域高度的高度。什麼是一個很好的方式來表示一定的高度範圍內的波形
如何確保波形繪圖數據永遠不會超過確定的高度,而不必翻閱整個pcm數據集並從發現的最大值進行標準化?
使用規範化的表示法正是你會做的。
如果這是實施提供的限制,您可以作弊並預先計算給定範圍的最大值。
不幸的是,沒有很好的方法來發現信號的實際最大值,而無需通過樣本進行採樣並找到它。
如果知道PCM採樣中的位數,則可以假定縮放將以[-2^(bits-1), 2^(bits-1)-1]
爲界。這將是信號可以達到的最高和最低。但是,這是最悲觀的縮放比例 - 如果您的16位信號永遠不會超出範圍[-1024,1024]
,例如,您放棄了很多顯示區域(以及ADC動態範圍,但這是另一回事)。
如果您願意動態縮放信號,您可以簡單地讓圖形縮放比例更大,每次您的信號將被剪切。更爲複雜的方法是根據需要升級,但隨着時間的推移慢慢放鬆最大比例。放寬最大比例的一個好方法是指數衰減,例如在每次迭代時將最大比例乘以0.98(或其他一些數字< 1)。
我沒有問題,無論作弊:)你能給我一個簡單的例子嗎? – dubbeat 2011-02-01 13:41:25