我很高兴地绘制波形屏幕从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