4. 有源滤波器设计:一阶/二阶低通、高通、带通滤波器,Sallen-Key结构

传感器出来的信号,十有八九都带着噪声。你想想看,一个微伏级的压力传感器信号,旁边就是几十伏的电机驱动PWM,不滤波根本没法用。今天咱们就聊聊有源滤波器——说白了,就是用运放搭出来的滤波器。

我个人习惯把滤波器分成两类:无源和有源。无源就是R、L、C,简单但带不动负载。有源加了运放,能放大、能缓冲,设计起来灵活得多。今天重点讲Sallen-Key结构,这是我最常用的二阶有源滤波器拓扑。

4.1 一阶有源低通滤波器

先来个最简单的。一阶低通,一个电阻一个电容,再加一个运放做缓冲。

传递函数长这样:

H(s) = 1 / (1 + s/ωc)

其中 ωc = 1/(RC),就是截止角频率。换算成频率:fc = 1/(2πRC)。

我在项目中遇到过一件事:有个同事直接用无源RC滤波去接ADC,结果采样值一直跳。为什么?因为ADC的输入阻抗会拉低RC网络的等效电阻,截止频率漂了。后来加了一级运放做电压跟随器,问题立刻解决。这就是有源滤波器的好处——输入阻抗高,输出阻抗低。

设计小技巧:一阶滤波器的衰减斜率只有-20dB/dec。如果噪声离信号很近,一阶根本不够用。这时候就得请出二阶滤波器了。

4.2 二阶Sallen-Key低通滤波器

Sallen-Key结构,也叫压控电压源(VCVS)结构。它用两个RC网络和一个运放,实现二阶低通响应。我最喜欢它的地方是:元件少,增益可调,对运放要求不高。

标准电路结构如下:

Vin → R1 → R2 → (+)运放 → Vout
           |      |
          C1    C2
           |      |
          GND   GND

传递函数:

H(s) = K / [s²(R1R2C1C2) + s(R1C1 + R2C1 + R1C2(1-K)) + 1]

其中K是运放闭环增益,由反馈电阻决定:K = 1 + Rf/Rg。

看着有点复杂是吧?别急,实际设计时我们通常让R1=R2=R,C1=C2=C,这样公式就简化了:

fc = 1/(2πRC)
Q = 1/(3 - K)

嗯,这里要注意:K不能大于3,否则Q为负,电路会自激振荡。我曾经吃过这个亏——调试时随手拧了个电位器,结果输出直接饱和了,示波器上一看,全是高频振荡。

避坑指南:Sallen-Key结构的Q值对增益K非常敏感。K=3时Q无穷大,电路振荡。实际设计中建议K≤2.5,留足裕量。我曾经因为电阻精度1%不够,导致滤波器响应畸变,后来全换成0.1%的电阻才搞定。

4.3 二阶Sallen-Key高通滤波器

低通变高通,其实很简单——把电阻和电容互换位置就行。

Vin → C1 → C2 → (+)运放 → Vout
           |      |
          R1    R2
           |      |
          GND   GND

传递函数:

H(s) = K·s² / [s² + s(1/(R2C1) + 1/(R2C2) + (1-K)/(R1C1)) + 1/(R1R2C1C2)]

同样,令R1=R2=R,C1=C2=C,简化后:

fc = 1/(2πRC)
Q = 1/(3 - K)

你看,截止频率和Q值的公式跟低通一模一样。这就是Sallen-Key结构的对称美。

高通滤波器常用于去除直流偏置和低频漂移。比如压电传感器的信号调理,前面必须加高通,否则电荷放大器输出的直流偏置会饱和后级。

4.4 二阶Sallen-Key带通滤波器

带通滤波器可以看成低通和高通的级联。但Sallen-Key结构本身也能直接实现带通——用多重反馈(MFB)结构更常见,不过Sallen-Key也能做。

实际工程中,我更推荐用低通+高通级联的方式做带通。原因很简单:设计独立,调试方便。

比如我要做一个100Hz~1kHz的带通:

  1. 先设计一个fc=1kHz的低通
  2. 再设计一个fc=100Hz的高通
  3. 两级级联,中间加缓冲

这样每个环节的Q值、增益都能独立调节,互不影响。

核心要点:Sallen-Key结构的Q值由增益K决定,而不是靠RC比值。这意味着你可以先定截止频率(调RC),再定Q值(调增益),两个参数正交设计,互不干扰。这是它比MFB结构好用得多的地方。

4.5 设计实例:1kHz二阶巴特沃斯低通

咱们来走一遍完整的设计流程。目标:fc=1kHz,Q=0.707(巴特沃斯响应,最平坦)。

第一步:选电容

我习惯先选电容,因为电容的标称值少。选C=10nF。

第二步:算电阻

R = 1/(2π·fc·C) = 1/(2π·1000·10e-9) ≈ 15.9kΩ
取标称值 16kΩ

第三步:算增益

Q = 1/(3 - K) → K = 3 - 1/Q = 3 - 1/0.707 ≈ 1.586

第四步:定反馈电阻

K = 1 + Rf/Rg → 取Rg=10kΩ,则Rf = (K-1)·Rg = 5.86kΩ
取标称值 5.9kΩ

搞定。四个电阻两个电容,一个运放,齐活。

仿真验证:设计完成后,我习惯先用LTspice跑一下AC分析。重点关注通带平坦度、截止频率点、高频衰减斜率。如果Q值偏差超过5%,检查电阻精度。

4.6 知识体系总览

下面这张图把本章的核心逻辑串起来了:

有源滤波器设计知识体系 有源滤波器设计知识体系 有源滤波器 一阶滤波器 二阶Sallen-Key 高阶级联 RC + 缓冲 -20dB/dec 低通/高通/带通 Q = 1/(3-K) fc = 1/(2πRC) 低通+高通 独立设计 核心设计流程:确定响应类型 → 选Q值 → 算RC → 定增益 → 仿真验证 Sallen-Key优势:元件少、增益可调、正交设计、对运放要求低

4.7 运放选型建议

不是随便一个运放都能做有源滤波器。我踩过坑,总结了几条经验:

参数 要求 为什么
增益带宽积(GBW) ≥ 100 × fc 保证闭环增益在截止频率处不衰减
压摆率(SR) ≥ 2π·Vp·fc 防止大信号时输出失真
输入偏置电流 越小越好 偏置电流流过反馈电阻会产生额外压降
噪声密度 低噪声型 传感器信号本身微弱,运放噪声会淹没信号

常用的运放型号:TL072(通用)、OPA2134(低噪声)、AD8605(精密低偏置)。我个人偏爱OPA2134,声音干净,噪声低,做音频滤波器特别合适。

注意:千万别用LM358做高频滤波器。它的GBW只有1MHz,做10kHz以上的滤波器就开始衰减了。我曾经图省事用LM358搭了个50kHz的带通,结果通带增益掉了3dB,怎么调都不对。后来换成TL072,一次通过。

好了,有源滤波器的核心内容就这些。Sallen-Key结构是模拟设计的基本功,掌握了它,高阶滤波器、切比雪夫、贝塞尔这些都能触类旁通。下次遇到传感器噪声问题,知道该怎么下手了吧?