采样过慢造成的频率错认
拍摄车轮时,有时会看到轮辐慢慢转、停住,甚至倒着转。车轮本身没这么转,是一帧一帧的画面把快运动读成了另一个慢运动。
信号采样也一样。采样率太低时,信息不够;数字系统会把高频成分当成低频,再把错误结果传给后续处理。这个现象叫混叠。
采样点怎样给出错误的低频
Section titled “采样点怎样给出错误的低频”看一个 1 Hz 正弦波,也就是 1 秒振动 1 次。下图把同一个信号分别按 4 Hz、2 Hz 和 1.5 Hz 采样。采样率越低,点越稀。4 Hz 时每周期还能拿 4 个点,到 2 Hz 就只剩过零处的一排 0,再降到 1.5 Hz 时干脆落在另一条更慢的曲线上。
图中看采样点就行。第一行还能看到 1 Hz 波形的上升、过零、下降。第二行每周期刚好两个点,采样相位不同时也可能只拿到过零点。到了第三行,红色采样点落在另一条更慢的虚线波形上。只看这些样本,数字系统会把原来的 1 Hz 看成带半圈相位差的 0.5 Hz。
用公式算一下。设原信号为 正弦,采样频率为 ,采样后的序列是
因为 ,所以
而 以同样的 采样时,序列是
这两组样本只差一个负号,
这个负号表示相位差半圈。数字系统只看采样点,不知道两个样本之间原来转得更快,就会把 1 Hz 的信号当成 0.5 Hz 的低频。
混叠不只是细节变少。信息少了还好办,混叠是把高频伪装成低频;低频区一旦掺进错误信号,后面的算法会把它当成真的低频来处理。
折回频率怎么读
Section titled “折回频率怎么读”一个超过 的频率,采样以后会冒充成哪个低频?这个低频叫折回频率。
以 为例,奈奎斯特频率是 。能无歧义表示的正频率只落在 到 这一段。 比 高了 1.5 Hz,放不进去,就从 往回退 1.5 Hz,退到 。
为什么会折回?因为采样后的频率以 为周期重复。相差整数倍 的连续频率,只看采样点时分不清。
从输入频率 减去整数倍的 ,把结果搬进 到 ,
这里的 取整数就行。选合适的 ,把频率搬回数字系统能表示的正频率范围。
1 Hz 以 1.5 Hz 采样时,奈奎斯特频率是
1 Hz 超过了 0.75 Hz,越界了。它和 差 0.5 Hz,
所以只看采样点的话,会读出 0.5 Hz,是样本点丢掉了中间的快变化。
采样率 10 Hz,输入里有 6.5 Hz 成分。奈奎斯特频率是 5 Hz,6.5 Hz 越界了。它离 10 Hz 差 3.5 Hz,
所以 6.5 Hz 会折回到 3.5 Hz。换个说法,把 当成镜子,6.5 Hz 比 5 Hz 高 1.5 Hz,镜像位置就比 5 Hz 低 1.5 Hz。
下图把这个折回关系画成一条折线。输入频率越过 后,不会继续出现在更高的位置,会折回到低频区。
几组例子,
| 采样率 | 输入频率 | 最近的 | 折回频率 | 读法 |
|---|---|---|---|---|
| 10 Hz | 6.5 Hz | 10 Hz | 3.5 Hz | 越过 5 Hz 后折回 |
| 10 Hz | 8.5 Hz | 10 Hz | 1.5 Hz | 更高频率可能落到更低处 |
| 10 Hz | 11 Hz | 10 Hz | 1 Hz | 超过一个采样频率后仍按差值读 |
最后一行的 11 Hz 虽然已经超过 10 Hz,但仍会读成 1 Hz。对 10 Hz 采样来说,11 Hz 和 1 Hz 只差一个采样频率。只看采样点,它们给出的快慢一样。
数字频谱里要是有 3.5 Hz 的峰值,系统没法靠样本区分它是真实的 3.5 Hz,还是 6.5 Hz 折回来的。混叠一旦进了数字域,就辨不出来源了。
抗混叠低通要放在采样前。先把不需要的高频压下去,才能避免它们折回有效频带。