seegongsik
SC · 采样与离散

混叠

在采样中,折叠频率 fs/2 就像一面镜子。高于它的真实频率不会显得更高,而是被镜子弹回,折叠成较低的频率进来。本讲中你将调高真实频率,亲眼看到表观频率不再一直上升,而是呈锯齿状来回折叠。

在镜子上弹回折叠的频率

采样速率固定为 fs = 8,滑杆改变真实信号的频率 f。上图是时间轴。f 超过折叠频率 fs/2 = 4 后,一个更慢的假信号(红色虚线)会恰好经过快速真实信号(金色)的同一批样本,这个假信号的频率就是表观频率。在初始的 f = 6 时,表观频率是 2。下图是折叠图:横轴是真实频率,纵轴是表观频率,红点是当前位置。调高 f,表观频率先升到 4,再降回来,在 f = 8 时变为 0,然后又上升,如此呈锯齿状反复。只有在涂成绿色的 f < 4 区间,表观频率才等于真实频率。

真实与冒牌(时间轴)
折叠图:看见的频率 vs 真实频率
真实频率 f6.00
频率与折叠
f = 6.00 · fs = 8.00 · 折叠频率 fs/2 = 4.00
表观频率 f_a = 2.00
真实频率 f 高于折叠频率 fs/2 = 4。被镜子弹回后,表观频率不是 f,而是 f_a = |f − fs·round(f/fs)| 这样一个较低的假频率,仅凭样本无法把它和真实信号区分开。f 在 4 和 8 之间时,假正弦的相位被翻转后画出,这正是车轮看起来倒转的原因。继续调高 f,表观频率也只会在 0 和 4 之间锯齿状地来回。
混叠(看到幻象)

频率在镜子处折叠

单看样本,这些点既可以用真实频率 f 的正弦来解释,也可以同样好地用 fs − f、fs + f、2fs − f 等无数其他正弦来解释。样本无法区分它们,重建时选取的是其中频率最低、落在 0 与 fs/2 之间的那一个。因此把真实频率 f 从 0 调高,表观频率先笔直升到 fs/2,再以 fs/2 为镜子降回,在 fs 处变为 0,然后又上升,如此反复。写成式子就是表观频率 = |f − fs·round(f/fs)| 这样的三角波,第一屏的折叠图正是这个三角波。

观察折叠(奈奎斯特)频率 = fs2
折叠频率是采样速率的一半。
选择表观频率等于真实频率的条件 f ?
f 低于 fs/2 时,看到的就是真实频率。
填空fs2 < f < fs → 表观频率 = | f − ?
介于 fs/2 和 fs 之间的 f 折叠为 |f − fs|。
自己来一般式 fa = | f − fs · ? |
减去最接近 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,决定了看到的是真相还是幻象。

混叠以采样速率 fs 的一半,即折叠频率 fs/2 为镜子而发生。高于 fs/2 的真实频率 f 在样本上折叠成一个较低的假频率,即表观频率 fa = |f − fs·round(f/fs)|;调高 f 时,fa 成为在 0 与 fs/2 之间来回的三角波。f < fs/2 则如实(看到的就是真实),再往上就是幻象。车轮倒转、摩尔纹、音频音高失真,都是同一种折叠。折叠的假频率在采样之后无法复原,所以要在采样之前用抗混叠(低通)滤波器削掉 fs/2 以上的部分来防止。
进入下一单元

到目前为止,我们只把样本看作时间上的点。现在需要一种工具,把这些点组成的序列本身当作一个对象来处理。下一单元 z 变换 就是面向离散信号的拉普拉斯变换。它把延迟一拍归结为符号 z⁻¹,把离散信号和差分方程变成关于 z 的代数。正如在连续时间里 s 平面和极点决定响应,在离散时间里 z 平面和其上的极点起同样的作用,只是稳定的边界不再是虚轴,而是单位圆。这个差别,正是采样通过 z = esT 把 s 平面缠绕到 z 平面上的结果。