前段时间我在尝试不同的方法来绘制数字波形,我尝试的其中一件事是,而不是幅度包络的标准轮廓,将其显示得更像示波器。这是示波器上正弦波和方波的样子:
天真的方法是:
- 将音频文件划分为输出图像中每个水平像素的一个块
- 计算每个块的样本幅度直方图
- 按亮度将直方图绘制为一列像素
它产生这样的东西:
如果每个块有很多样本并且信号的频率与采样频率无关,则此方法可以正常工作,但其他情况则不然。例如,如果信号频率是采样频率的精确约数,则样本在每个周期中总是以完全相同的幅度出现,并且直方图将只是几个点,即使这些点之间存在实际的重构信号。这个正弦脉冲应该和左上图一样平滑,但这不是因为它正好是 1 kHz,并且样本总是出现在相同的点附近:
我尝试上采样以增加点数,但这并不能解决问题,只是在某些情况下有助于解决问题。
所以我真正想要的是一种从其数字样本(幅度与时间)中计算连续重建信号的真实PDF (概率与幅度)的方法。我不知道为此使用什么算法。一般来说,函数的 PDF 是其反函数的导数。
sin(x) 的 PDF:
但我不知道如何计算反函数为多值函数的波,或者如何快速计算。把它分解成分支并计算每个分支的倒数,取导数,然后把它们加在一起?但这很复杂,可能有更简单的方法。
这个“插值数据的 PDF”也适用于我对 GPS 轨迹进行核密度估计的尝试。它应该是环形的,但是因为它只查看样本而不考虑样本之间的插值点,所以 KDE 看起来更像是一个驼峰而不是一个环。如果样本是我们所知道的,那么这是我们能做的最好的。但样本并不是我们所知道的全部。我们也知道样本之间有一条路径。对于 GPS,没有像带限音频那样完美的奈奎斯特重建,但基本思想仍然适用,插值函数有一些猜测。