4. 有源滤波器设计:一阶低通、二阶低通、高通、带通滤波器
滤波器这东西,说白了就是让某些频率的信号通过,把其他频率的干掉。在传感器调理电路里,它几乎是标配——传感器出来的信号,往往带着各种噪声,工频干扰、高频毛刺,你不滤掉它,后面ADC采出来的数据根本没法看。
我个人习惯,先把滤波器分成两类:无源和有源。无源的就是R、L、C搭出来的,简单便宜,但带负载能力差。有源的呢,加了运放,可以放大、可以缓冲,设计起来灵活得多。今天咱们聊的就是有源滤波器,用运放搭的那种。
核心思路:有源滤波器的设计,本质上就是选一个合适的传递函数,然后用运放和阻容元件把它实现出来。你不需要每次都从头推导公式,记住几个经典拓扑就够了。
4.1 一阶低通滤波器
一阶低通,最简单的有源滤波器。一个RC网络加一个运放跟随器,或者直接做成同相放大结构。它的传递函数长这样:
H(s) = A₀ / (1 + s/ω₀)
其中A₀是通带增益,ω₀是截止角频率(ω₀ = 2πf₀)。
我刚开始做项目时,总觉得一阶滤波器太简单,不够“高级”。后来在一个温度传感器调理电路里,发现信号上叠加了一个100kHz的开关噪声,一阶低通加个简单的RC,成本不到一毛钱,问题就解决了。你想想看,有时候最简单的方案反而是最可靠的。
设计步骤其实就三步:
- 确定截止频率f₀。比如你要滤除50Hz工频干扰,f₀可以设在10Hz左右。
- 选择电容C。我一般先选C,因为电容的标称值比电阻少,选个常见的,比如0.1μF或1μF。
- 计算电阻R。R = 1 / (2πf₀C)。
举个例子,设计一个f₀=1kHz的一阶低通:
选C = 0.1μF
R = 1 / (2π × 1000 × 0.1×10⁻⁶) ≈ 1.59kΩ
取标称值1.6kΩ
小技巧:一阶滤波器的滚降斜率只有-20dB/dec,如果噪声频率离信号频率很近,一阶可能不够用。这时候就得考虑二阶甚至更高阶的滤波器了。
4.2 二阶低通滤波器
二阶低通,滚降斜率-40dB/dec,比一阶狠多了。常用的拓扑是Sallen-Key结构,也就是压控电压源型。它的传递函数是:
H(s) = A₀ / (s²/ω₀² + (1/Q)·s/ω₀ + 1)
这里多了一个参数Q——品质因数。Q值决定了滤波器在截止频率附近的响应特性。Q=0.707时是巴特沃斯响应,最平坦;Q值高了会有过冲,低了滚降变缓。
我记得有一次设计一个振动传感器的抗混叠滤波器,要求通带内纹波小于0.1dB。我一开始随便选了个Q值,结果仿真出来纹波超标。后来老老实实按巴特沃斯设计,Q=0.707,一次通过。嗯,这里要注意,Q值不是随便选的,它决定了滤波器的类型。
Sallen-Key二阶低通的设计公式(取R₁=R₂=R,C₁=C₂=C时):
f₀ = 1 / (2πRC)
Q = 1 / (3 - A₀)
A₀ = 1 + R₄/R₃
设计实例:f₀=1kHz,巴特沃斯响应(Q=0.707),增益A₀=1:
选C = 0.01μF
R = 1 / (2π × 1000 × 0.01×10⁻⁶) ≈ 15.9kΩ
取标称值16kΩ
A₀=1,则R₄/R₃=0,即R₄短路,R₃开路(电压跟随器)
Q = 1/(3-1) = 0.5,不对!
等等,这里有个坑。当A₀=1时,Q=0.5,不是0.707。要得到Q=0.707,需要调整增益或者改变电阻比值。实际设计中,我通常让R₁≠R₂或C₁≠C₂,这样自由度更大。
避坑指南:我曾经在批量生产时发现,同一批次的滤波器截止频率偏差很大。查了半天,发现是电容的容差问题。普通陶瓷电容的容差可能到±20%,对滤波器影响很大。建议用C0G或NP0材质的电容,容差控制在±5%以内。
4.3 高通滤波器
高通滤波器和低通是对偶关系。把低通电路里的R和C互换位置,低通就变成了高通。一阶高通和二阶高通的拓扑结构,跟低通几乎一样,只是R和C的位置调换了。
一阶高通的传递函数:
H(s) = A₀ · s/ω₀ / (1 + s/ω₀)
二阶高通(Sallen-Key结构):
H(s) = A₀ · s²/ω₀² / (s²/ω₀² + (1/Q)·s/ω₀ + 1)
高通滤波器在传感器调理电路里,主要用于去除直流偏置和低频漂移。比如压电传感器,输出信号往往叠加了一个很大的直流分量,用高通滤掉它,后面的放大电路才不会饱和。
设计高通时,截止频率的选择要特别小心。你想想看,如果信号本身就有低频成分,比如振动信号的低频特征,高通会把它们一起滤掉。我做过一个加速度计的项目,客户要求测量0.5Hz以上的振动,高通截止频率设在了0.1Hz,留了足够的余量。
设计实例:二阶高通,f₀=100Hz,巴特沃斯响应:
选C = 0.1μF
R = 1 / (2π × 100 × 0.1×10⁻⁶) ≈ 15.9kΩ
取标称值16kΩ
Q=0.707,增益A₀=2
R₄/R₃ = A₀ - 1 = 1,取R₃=R₄=10kΩ
4.4 带通滤波器
带通滤波器,就是只让某个频段的信号通过。实现方式有两种:一种是低通+高通级联,另一种是用专用的带通拓扑,比如多重反馈(MFB)结构。
级联方式最简单:先设计一个高通,再串一个低通,高通截止频率f_L低于低通截止频率f_H,中间就是通带。但要注意,两级之间要加缓冲,否则阻抗会互相影响。
MFB带通滤波器是另一种常用结构,一个运放就能实现带通功能。它的传递函数是:
H(s) = -(s/ω₀) / (s²/ω₀² + (1/Q)·s/ω₀ + 1)
中心频率f₀、增益A₀和Q值的设计公式:
f₀ = 1 / (2πC) · √( (R₁+R₂)/(R₁·R₂·R₃) )
A₀ = -R₃ / (2R₁)
Q = πf₀R₃C
我在一个声学传感器项目里用过MFB带通。传感器输出的是2kHz附近的声波信号,但环境噪声在500Hz和5kHz都有。用MFB带通,中心频率2kHz,Q=10,带宽200Hz,效果非常好。仿真结果和实测几乎一致。
关键参数对比:
| 滤波器类型 | 滚降斜率 | 典型应用 | 设计复杂度 |
|---|---|---|---|
| 一阶低通 | -20dB/dec | 简单噪声滤除 | 低 |
| 二阶低通 | -40dB/dec | 抗混叠滤波 | 中 |
| 一阶高通 | +20dB/dec | 去直流偏置 | 低 |
| 二阶高通 | +40dB/dec | 低频噪声抑制 | 中 |
| 带通(级联) | ±20/±40dB/dec | 选频放大 | 中 |
| 带通(MFB) | ±20dB/dec | 窄带选频 | 中高 |
4.5 滤波器设计流程与仿真验证
说了这么多理论,实际设计时怎么下手?我总结了一套流程,用了好多年:
- 明确需求:通带频率范围、阻带衰减要求、通带纹波、增益。
- 选择类型:巴特沃斯(最平坦)、切比雪夫(等纹波)、贝塞尔(线性相位)。
- 确定阶数:根据滚降要求算阶数。每增加一阶,滚降增加-20dB/dec。
- 计算元件值:用公式或查表,得到R和C的标称值。
- 仿真验证:用LTspice或Multisim跑AC分析,看幅频和相频曲线。
- 实物调试:焊板子,用信号源和示波器实测。
下面这张图是我自己画的有源滤波器设计知识体系,帮你理清思路:
最后说一句,仿真和实物之间永远有差距。我曾经设计一个二阶低通,仿真结果完美,焊出来实测,截止频率偏了15%。查了半天,是PCB寄生电容和电阻的温漂搞的鬼。所以,设计时留点余量,选元件时用高精度的,调试时耐心点,这些都是经验。