4、巴特沃斯滤波器设计:幅度平方函数、极点分布、阶数确定与截止频率计算

巴特沃斯滤波器,圈里人常叫它“最平坦滤波器”。为啥?因为它的通带响应平坦得跟镜子似的,几乎没有纹波。我刚开始学滤波那会儿,第一个上手的就是它——好算、好理解、不容易出错。

说白了,巴特沃斯的核心思想就一句话:在通带内尽可能平坦,在阻带内尽可能陡峭。但天下没有免费的午餐,平坦的代价就是过渡带比切比雪夫、椭圆滤波器都要宽。选不选它,看你项目里对通带纹波的要求有多苛刻。

4.1 幅度平方函数——巴特沃斯的“身份证”

巴特沃斯滤波器的幅度平方函数长这样:

|H(jΩ)|² = 1 / (1 + (Ω/Ωc)^(2N))

其中:

  • Ω:模拟角频率(rad/s)
  • Ωc:截止频率(-3dB 点)
  • N:滤波器阶数

这个公式看着简单,但信息量很大。我带你拆开看:

  • 当 Ω = 0 时,|H(j0)|² = 1,直流信号无损通过。
  • 当 Ω = Ωc 时,|H(jΩc)|² = 1/2,对应 -3dB 衰减——这就是截止频率的定义。
  • 当 Ω → ∞ 时,|H(jΩ)|² → 0,高频被抑制。

关键点:N 越大,通带越平坦,阻带衰减越快。但阶数每增加一阶,硬件复杂度就翻倍。我在一个传感器信号调理项目里,为了省成本把阶数从 6 阶降到 4 阶,结果阻带衰减不够,50Hz 工频干扰没压住……后来老老实实加回了 6 阶。

4.2 极点分布——藏在 s 平面里的秘密

从幅度平方函数到极点分布,我们需要做一步解析延拓。令 s = jΩ,代入幅度平方函数:

H(s)H(-s) = 1 / (1 + (s/jΩc)^(2N))

分母的根就是系统的极点。解这个方程:

1 + (s/jΩc)^(2N) = 0
→ s^(2N) = -(jΩc)^(2N)
→ s^(2N) = Ωc^(2N) · e^(j(2N-1)π)

所以极点为:

s_k = Ωc · e^(j(2k+N-1)π/(2N)),k = 0, 1, ..., 2N-1

这 2N 个极点均匀分布在 s 平面的一个圆上,半径就是 Ωc。但只有左半平面的 N 个极点才是稳定的——右半平面的极点对应不稳定系统,直接扔掉。

嗯,这里要注意:极点的角度间隔是 π/N,而且第一个极点从角度 π/(2N) 开始。我当年考试时老记错起始角度,后来画了个单位圆才彻底搞明白。

我的习惯:设计时先把 N 个左半平面极点的角度算出来,画个草图。这样后面写传递函数时不容易漏项。

举个例子,N=4 时,左半平面极点的角度为:

k=0: 5π/8  (112.5°)
k=1: 7π/8  (157.5°)
k=2: 9π/8  (202.5°)
k=3: 11π/8 (247.5°)

这些极点关于实轴对称,且都在左半平面。

巴特沃斯 4 阶极点分布(s 平面) σ jΩ O p₀ p₁ p₂ p₃ 112.5° 红色:左半平面极点(稳定) 灰色:右半平面极点(不稳定,舍弃) 虚线圆:半径 Ωc,极点均匀分布

4.3 阶数确定——到底要几阶才够用?

阶数 N 决定了滤波器的“陡峭程度”。怎么算?从阻带指标反推。

假设你有一个阻带要求:在 Ω = Ωs 处,衰减至少 As dB。代入幅度平方函数:

|H(jΩs)|² = 1 / (1 + (Ωs/Ωc)^(2N))

衰减 As dB 对应 |H(jΩs)|² = 10^(-As/10),所以:

10^(-As/10) = 1 / (1 + (Ωs/Ωc)^(2N))
→ 1 + (Ωs/Ωc)^(2N) = 10^(As/10)
→ (Ωs/Ωc)^(2N) = 10^(As/10) - 1

两边取对数:

2N · log10(Ωs/Ωc) = log10(10^(As/10) - 1)
→ N = ceil( log10(10^(As/10) - 1) / (2 · log10(Ωs/Ωc)) )

注意,结果要向上取整。为什么?因为阶数必须是整数,而且取整后实际衰减只会比要求更好,不会更差。

我曾经踩过的坑:有一次算出来 N=3.2,我心想四舍五入取 3 得了。结果仿真出来阻带衰减差了 2dB,没通过评审。后来老老实实取 4,一次过。记住:阶数计算只入不舍。

举个例子:设计一个巴特沃斯低通滤波器,要求 Ωc = 1000 rad/s,在 Ωs = 2000 rad/s 处衰减至少 30dB。

N = ceil( log10(10^(30/10) - 1) / (2 · log10(2000/1000)) )
  = ceil( log10(1000 - 1) / (2 · log10(2)) )
  = ceil( log10(999) / (2 · 0.3010) )
  = ceil( 2.9996 / 0.6021 )
  = ceil( 4.98 )
  = 5

所以需要 5 阶。

4.4 截止频率计算——别被“-3dB”骗了

巴特沃斯的截止频率 Ωc 就是 -3dB 点,这个定义很清晰。但实际设计中,Ωc 不一定等于你想要的通带边界频率。

举个例子:你希望通带边界在 1000 rad/s 处衰减不超过 1dB。这时候 Ωc 就不能直接取 1000,而要重新算。

设通带边界频率为 Ωp,允许的最大衰减为 Ap dB:

|H(jΩp)|² = 1 / (1 + (Ωp/Ωc)^(2N)) = 10^(-Ap/10)
→ (Ωp/Ωc)^(2N) = 10^(Ap/10) - 1
→ Ωc = Ωp / (10^(Ap/10) - 1)^(1/(2N))

你看,Ωc 比 Ωp 要大一些。说白了,为了让通带边界处的衰减控制在 Ap 以内,截止频率必须往高频方向“让一让”。

我建议:设计时先确定阶数 N,再根据通带指标反算 Ωc。这样能保证通带和阻带同时满足要求。别先定 Ωc 再算 N,容易顾此失彼。

4.5 设计流程总结

把上面这些串起来,巴特沃斯低通滤波器的设计流程就是:

  1. 明确指标:通带边界 Ωp、通带最大衰减 Ap、阻带边界 Ωs、阻带最小衰减 As。
  2. 计算阶数 N:用阻带指标反推,结果向上取整。
  3. 计算截止频率 Ωc:用通带指标反算,确保通带衰减不超标。
  4. 求极点分布:根据 N 和 Ωc,计算左半平面极点。
  5. 写传递函数:由极点构建 H(s),通常写成连乘形式或级联二阶节。
步骤 输入 输出 公式/方法
1. 指标定义 Ωp, Ap, Ωs, As 设计约束 用户需求
2. 阶数计算 Ωs, Ωc, As N(整数) N = ceil( log10(10^(As/10)-1) / (2·log10(Ωs/Ωc)) )
3. 截止频率 Ωp, Ap, N Ωc Ωc = Ωp / (10^(Ap/10)-1)^(1/(2N))
4. 极点求解 N, Ωc 左半平面极点 s_k = Ωc · e^(j(2k+N-1)π/(2N))
5. 传递函数 极点 H(s) H(s) = Ωc^N / ∏(s - s_k)

一句话总结:巴特沃斯设计就是“先定阶数满足阻带,再调截止频率满足通带”。这个顺序别搞反了,否则你算出来的滤波器可能通带衰减超标。