混叠
在镜子上弹回折叠的频率
采样速率固定为 fs = 8,滑杆改变真实信号的频率 f。上图是时间轴。f 超过折叠频率 fs/2 = 4 后,一个更慢的假信号(红色虚线)会恰好经过快速真实信号(金色)的同一批样本,这个假信号的频率就是表观频率。在初始的 f = 6 时,表观频率是 2。下图是折叠图:横轴是真实频率,纵轴是表观频率,红点是当前位置。调高 f,表观频率先升到 4,再降回来,在 f = 8 时变为 0,然后又上升,如此呈锯齿状反复。只有在涂成绿色的 f < 4 区间,表观频率才等于真实频率。
频率在镜子处折叠
单看样本,这些点既可以用真实频率 f 的正弦来解释,也可以同样好地用 fs − f、fs + f、2fs − f 等无数其他正弦来解释。样本无法区分它们,重建时选取的是其中频率最低、落在 0 与 fs/2 之间的那一个。因此把真实频率 f 从 0 调高,表观频率先笔直升到 fs/2,再以 fs/2 为镜子降回,在 fs 处变为 0,然后又上升,如此反复。写成式子就是表观频率 = |f − fs·round(f/fs)| 这样的三角波,第一屏的折叠图正是这个三角波。
车轮、照片、声音中的折叠
只要有采样的地方,混叠都会以同样的面貌出现。电影摄影机每秒拍 24 帧(fs = 24),所以车轮辐条经过同一位置的次数一旦超过每秒 12 次(fs/2),运动就会被折叠,车轮看起来慢慢转动,甚至倒转。数码相机的传感器以像素间距对光采样,所以比这更细的条纹衣服或网格会折叠成粗大的波纹(摩尔纹)。以 fs 对音频采样时,fs/2 以上的声音会以错误的音高折叠进来,变成刺耳的噪声。三者都是在 fs/2 这同一面镜子上发生的同一种现象。
守在镜前的滤波器
一旦折叠进来的假频率会产生与真实信号完全相同的样本,所以采样之后再也没有办法把两者分开。因此必须在折叠之前加以阻止,为此要在采样前放一个低通滤波器,预先削掉 fs/2 以上的成分,这就是抗混叠滤波器。相当于在镜子前面先把会被映出的东西清走,让会折叠进来的频率根本不存在。电影里由快门打开期间把运动拖糊的运动模糊来做这件事,相机里由传感器前的光学低通滤波器来做,音频里由 ADC 前端的模拟滤波器来做。把采样速率提得足够高,或者提不高时先把 fs/2 以上丢掉,防止混叠的办法就是这两种。
回到第一屏
在第一屏中,采样速率固定为 fs = 8,只调高真实频率 f。f 低于折叠频率 4 时,表观频率与真实频率相同;一超过 4,就被镜子弹回,表观频率开始下降。一个更慢的假信号恰好经过快速真实信号的同一批样本,仅凭样本无法分辨两者。继续调高 f,表观频率也只是以三角波在 0 和 4 之间来回。车轮倒转、照片出现波纹、声音失去音高,都发生在这一面镜子上。真实频率是否超过 fs/2,决定了看到的是真相还是幻象。
到目前为止,我们只把样本看作时间上的点。现在需要一种工具,把这些点组成的序列本身当作一个对象来处理。下一单元 z 变换 就是面向离散信号的拉普拉斯变换。它把延迟一拍归结为符号 z⁻¹,把离散信号和差分方程变成关于 z 的代数。正如在连续时间里 s 平面和极点决定响应,在离散时间里 z 平面和其上的极点起同样的作用,只是稳定的边界不再是虚轴,而是单位圆。这个差别,正是采样通过 z = esT 把 s 平面缠绕到 z 平面上的结果。