0

我很高兴从 pcm 数据中绘制波形以进行筛选。我有一个问题,有时波形高度会超过显示区域高度的高度。

如何确保波形绘图数据永远不会超过确定的高度,而不必遍历整个 pcm 数据集并从找到的最大值进行归一化?

4

2 回答 2

0

不幸的是,如果不逐个采样并找到它,就没有很好的方法来发现信号的实际最大值。

如果您知道 PCM 样本中的位数,则可以假设缩放将由 [ 限制-2^(bits-1), 2^(bits-1)-1]。这将是信号可以达到的绝对最高和最低值。然而,这是最悲观的缩放 - 例如,如果您有一个永远不会超出范围的 16 位信号[-1024,1024],那么您将放弃很多显示区域(以及 ADC 动态范围,但这是另一回事) .

如果您愿意动态缩放信号,您可以简单地在每次信号被削波时放大图形比例。一种更复杂的方法是根据需要进行升级,然后随着时间的推移慢慢降低最大比例。放宽最大比例的一个好方法是指数衰减,例如在每次迭代中将最大比例乘以 0.98(或其他数字 < 1)。

于 2011-02-01T13:13:48.957 回答
0

使用规范化的表示正是你会做的。

如果这是实现提供的约束,您可以作弊并预先计算给定范围的最大值。

于 2011-02-01T13:28:06.150 回答