IIR 滤波器设计模拟器 返回
信号处理模拟器

IIR 滤波器设计模拟器 — 巴特沃斯低通的增益特性

设计连续时间巴特沃斯低通滤波器,并在波特图上实时可视化增益 |H(jω)|。调节截止频率与阶数,观察衰减特性变化并计算所需的最小阶数与滚降斜率。

参数设置
截止频率 f_c
Hz
阶数 N
阻带起始 f_s
Hz
阻带衰减 A_s
dB

计算最小阶数时,将通带边界纹波 A_p 固定为 3 dB(巴特沃斯截止定义)。

计算结果
f_s 处的衰减量 |H(j·2π·f_s)|
满足指标的最小阶数 N_min
滚降斜率(-6N dB/oct)
2·f_c 处的衰减量
波特图 |H(jω)| (dB)

蓝色实线=巴特沃斯增益 / 绿色虚线=截止 f_c / 红色实线=阻带边界 f_s / 灰色虚线=要求 −A_s

理论与主要公式

模拟巴特沃斯低通滤波器在通带内具有最大平坦的幅度特性。其幅度平方为:

$$|H(j\omega)|^2 = \frac{1}{1 + (\omega/\omega_c)^{2N}}$$

其中 ω_c 为截止角频率,N 为阶数。增益的分贝表示:

$$G(\omega) = 20\,\log_{10}|H(j\omega)|$$

当要求在 ω_p 处衰减不超过 −A_p(默认 3 dB),在 ω_s 处衰减不低于 −A_s 时,最小阶数为:

$$N_{\min} = \left\lceil \frac{\log_{10}\!\left(\dfrac{10^{A_s/10}-1}{10^{A_p/10}-1}\right)}{2\,\log_{10}(\omega_s/\omega_p)} \right\rceil$$

高频段的渐近滚降为 −6N dB/oct(= −20N dB/dec)。阶数越高,过渡越陡。

IIR 滤波器设计模拟器是什么

🙋
「IIR 滤波器」我听说过,但「巴特沃斯」是什么?我该先看什么?
🎓
通俗地说,巴特沃斯就是「在通带里尽可能做平的低通」。一个式子就够了:$|H(j\omega)|^2 = 1/(1+(\omega/\omega_c)^{2N})$。模拟器中那条蓝色曲线就是这条公式画成 dB 形式。你会看到它正好在绿色虚线(截止频率 $f_c$)处穿过 $-3$ dB。
🙋
真的。把阶数 N 从 1 调到 12,曲线在截止之后掉得越来越陡。
🎓
这就是滚降。渐近斜率是 $-6N$ dB/oct:N=4 是 $-24$ dB/oct,N=8 是 $-48$ dB/oct。模拟器的「滚降」卡片显示的就是这个值。默认参数(f_c=100, f_s=500, N=4)下,「f_s 处的衰减」卡片大约是 $-57.9$ dB,因为公式中 $5^8 \approx 3.9\times 10^5$。
🙋
「最小阶数 N_min」这张卡片是做什么用的?
🎓
由设计指标反推出「最少需要的阶数」。比如「f_p 之前衰减不超过 $-3$ dB,f_s 之后至少 $-40$ dB」,就由 $N_{\min} = \lceil \log_{10}((10^{A_s/10}-1)/(10^{A_p/10}-1))\,/\,(2\log_{10}(f_s/f_p)) \rceil$ 算出。默认参数下 N_min = 3,我们用 N=4 是为了给制造公差留一点余量。
🙋
那为什么不干脆把 N 拉到 12 一劳永逸?
🎓
这正是陷阱。极点贴近虚轴,系数变得极其敏感,定点 DSP 一点舍入噪声就能让滤波器失稳。标准做法是分解成二阶节(SOS / biquad)级联。而且群延迟会暴增,阶跃响应有明显振铃。实务规则:从 N_min 出发,再加 1~2 阶作为余量。

常见问题

最看重通带平坦度时选巴特沃斯;同样阶数希望最陡峭时选椭圆(Cauer);介于二者之间的是切比雪夫——I 型在通带允许纹波、II 型在阻带允许纹波。声学和测量系统常用巴特沃斯,因其相位较缓;通信信道选择等需要极强选择性的场合常用椭圆。
最常用的是双线性变换。代入 s = (2/T)·(1−z⁻¹)/(1+z⁻¹),把 s 平面左半面映射到 z 平面单位圆。没有混叠,但频率轴会按 ω_a = (2/T)·tan(ω_d·T/2) 畸变,因此必须对目标截止做预畸变(pre-warping),才能让数字滤波器最终位于期望频率。冲激响应不变法则不易混叠,但对带限不严格的响应需要小心折叠。
FIR 的冲激响应有限长,可严格线性相位、绝对稳定,但要达到同样陡峭度需要很多抽头(运算量大)。IIR 借助反馈,仅用少量系数即可实现陡峭响应,但相位非线性,且对系数量化敏感、可能失稳。实时控制与低延迟 DSP 多选 IIR;图像处理与忌讳相位失真的时序分析多选 FIR。
把高阶滤波器以 Direct Form I/II 整体实现非常危险:系数量化会让极点偏移,滤波器很容易失稳。标准做法是分解为二阶节(biquad)级联,把相近的极点对配对,并用幅度归一化(scaling)防止溢出。在定点 DSP 中还要管理舍入噪声的环流。MATLAB 的 zp2sos、SciPy 的 sosfilt 都是常用工具。

实际应用

传感器信号调理:加速度传感器、压力传感器输出中常叠加高频电气噪声与结构振动。巴特沃斯低通通带平坦、相位较缓,作为抗混叠和平滑滤波器,能在保留测量幅值信息的同时滤除带外噪声,被广泛使用。

音频设备:扬声器分频网络、采样前的抗混叠滤波、DAC 后的重构滤波等,处处都离不开 IIR 低通。巴特沃斯响应平滑无纹波、染色少,是 Hi-Fi 滤波器设计的常见起点。

通信与无线电:调制解调的基带处理、IF/RF 段的带宽限制、软件无线电(SDR)中的信道选择,都依赖 IIR 滤波器仅留所需频段。需要极强选择性时选椭圆,重视群延迟时选巴特沃斯,按特性取舍。

控制工程与伺服系统:伺服回路中常加入 IIR 陷波或低通来抑制机械谐振和高频噪声。由于相位滞后会侵蚀稳定裕度,应以「刚好满足指标的最小阶数」为目标,不要过滤过度。巴特沃斯相位响应较缓,便于评估对控制带宽的影响。

常见误解与注意事项

最常见的误解是「阶数越高越好」。阶数高确实滚降更陡,但极点会贴近虚轴,系数数值灵敏度急剧增加,舍入和量化误差很容易让滤波器失稳。在模拟器里选 N=12 时曲线看似完美,可实际实现中几乎一定要拆成二阶节级联。务实做法是「从 N_min 出发,仅留少量余量」。

其次容易误解的是截止 f_c 处「会一刀切断」。巴特沃斯的截止是增益降到 $-3$ dB 的频率,并不意味着信号完全消失。$-3$ dB 在功率上只是一半,幅值约为 0.707 倍,f_c 附近的信号仍能通过。如果希望彻底抑制,应明确给出阻带边界 $f_s$ 与所需衰减 $A_s$,再反推 $N_{\min}$。

最后请注意,本模拟器展示的是「模拟(连续时间)」的频率响应。要作为数字 IIR 实现,必须经过双线性变换等离散化步骤,过程中频率轴会因预畸变发生形变。即使在模拟原型中瞄准了某个 $f_c$,如果采样频率 $f_s^{(\text{sa})}$ 较低,数字滤波器的实际截止也会偏离目标。流程应是:连续时间确认 → 预畸变 → 双线性变换。