两个条件,两个系数
具有 k+1 个自由系数的滤波器可以精确满足其传递函数的 k+1 个条件。汉明用最简单的非平凡情况演示了这一点:两个系数,两个条件。
条件
- 在 f = 1/6 处:H(1/6) = 1(该频率保持不变)
- 在 f = 1/3 处:H(1/3) = 0(该频率被完全阻止)
滤波器形式
使用两个系数 a 和 b、输入 x_n 和一个延迟的滤波器:
y_n = a · x_n + b · x_{n−1}
代入特征函数
输入 e^{i2πfn},输出 H(f) · e^{i2πfn}。右侧得到:
H(f) · e^{i2πfn} = a · e^{i2πfn} + b · e^{i2πf(n−1)}
两边同除以 e^{i2πfn}:
H(f) = a + b · e^{−i2πf}
现在应用两个条件得到两个未知数的两个方程。
求解系数
将 f = 1/6 代入 H(f) = a + b·e^{−i2πf}:
1 = a + b·e^{−i2π/6} = a + b·(cos(−π/3) + i·sin(−π/3)) = a + b·(1/2 − i√3/2)
将 f = 1/3 代入:
0 = a + b·e^{−i2π/3} = a + b·(−1/2 − i√3/2)
从这两个方程,汉明求得 a = 1/2,b = 1/2 — 与 3 样本平均相同(输出在中间位置)。
完整滤波器
满足两个条件的滤波器形式为:
y_n = (x_{n−1} + x_n + x_{n+1}) / 2
位置 n 的输出使用前一个、当前和下一个输入样本。
传递函数:
H(f) = (e^{i2πf} + 1 + e^{−i2πf}) / 2 = (2cos(2πf) + 1) / 2 = cos(2πf) + 1/2
验证:
- H(1/6) = cos(π/3) + 1/2 = 1/2 + 1/2 = 1 ✓
- H(1/3) = cos(2π/3) + 1/2 = −1/2 + 1/2 = 0 ✓
在其他频率:H(0) = 1 + 1/2 = 3/2(以增益通过直流分量),H(1/2) = −1 + 1/2 = −1/2。
洞察:数字滤波器在软件中实现了模拟 RC 滤波器在硬件中实现的功能。系数的选择从分析上控制频率响应。
多频率处的传递函数
传递函数 H(f) = cos(2πf) + 1/2 在每个频率处都适用,不仅仅在两个设计点。
吉布斯的发现
汉明讲述了迈克尔逊(迈克尔逊-莫雷实验的迈克尔逊)的故事——他制造了一台模拟机器来计算傅立叶级数的最多 75 项。当他从系数重建一个不连续函数时,该机器在跳变附近显示了持久的过冲。
迈克尔逊向当地数学家咨询。他们责怪设备。只有吉布斯倾听。
吉布斯现象:当截断到 N 项的傅立叶级数近似阶跃不连续性时,近似在跳变高度的约 8.9% 处过冲 — 并且随着 N 增加,这个过冲不会减小。更多项会使过冲尖峰变窄,但永远不会消除它。
数学上:N 项傅立叶级数在处不连续性外的任何地方逐点收敛。在不连续性处,部分和收敛到跳变的中点,但部分和在跳变附近的最大值趋近于 1.0895(对于单位高度的阶跃),而不是 1.0。
为什么对滤波器很重要
理想低通滤波器的传递函数是阶跃函数:H(f) = 1(当 f < f_c),H(f) = 0(当 f > f_c)。通带和阻带之间的不连续性意味着任何有限长度的滤波器(截断傅立叶级数)在其频率响应中表现出吉布斯波纹。
后果:仅通过截断傅立叶级数设计得到的滤波器在通带和阻带中都表现出约 9% 的波纹,无论使用多少系数。
吉布斯现象的含义
汉明使用这个结果来激励窗函数:将理想傅立叶系数乘以平滑递减的窗可大幅减少吉布斯过冲。
汉明窗:w_k = 0.54 + 0.46·cos(πk/N)。这个窗将吉布斯波纹减少到不足 0.2%。
权衡:加窗会平滑过渡,但会加宽过渡带。更尖锐的截止总是需要更多系数。