Sallen-Key滤波器大概是模拟电路里“出道即巅峰”的典型。1955年由R.P. Sallen和E.L. Key在MIT林肯实验室提出,到今天快七十年了,各种新拓扑、新架构层出不穷,可你翻开任意一块信号处理板卡,音频DAC的输出重建、ADC入口的抗混叠、传感器微弱信号的带宽限制、音箱功放的分频网络,Sallen-Key依然是出现频率最高的那张脸。
这篇文章我按自己多年来实际画板、调板、踩坑的顺序来写,不堆公式吓人,也不空谈理论。先把Sallen-Key为什么能火这么多年讲透,再教你如何不靠仿真软件、用一张纸一支笔就能算出一组可用参数,然后落到元件选型、PCB布线、实测调试这些真正决定成败的细节上,最后补充高阶级联和响应类型扩展。看完这篇,你应该能按自己的截止频率和Q值需求,从头设计出一版可以直接上板子的Sallen-Key滤波器。
1. 为什么半个多世纪过去了,还在用Sallen-Key?
1.1 有源滤波器真正想解决的问题
要理解Sallen-Key,先得搞清楚无源RC滤波器为什么不够用。一个最简单的RC低通,截止频率由R和C决定,听起来很美好,可一旦后面接上负载,负载阻抗会和C并联,等效电容变了,截止频率跟着跑。更麻烦的是,RC低通输出阻抗高,想级联成二阶、三阶时,后级电路会严重拉偏前级的频率响应,所以无源RC滤波器在实际工程里只能用在负载固定、精度要求不高的场合。
有源滤波器用运放做隔离和增益补偿,输出阻抗低,后级负载几乎不影响滤波器特性,这才有了真正可工程化的滤波器。Sallen-Key就是有源滤波器里最经典的一种实现:一个运放、两个电阻、两个电容,搭出二阶响应,还能顺手给信号加一点增益。它的工作方式说穿了很简单,RC网络决定频率选择特性,运放接成同相放大器或单位增益缓冲器,把RC网络的损耗补回来,同时把前后级隔离开。
1.2 同相架构带来的实打实好处
Sallen-Key用的是同相输入结构,这意味着输入阻抗很高,主要由前端的R1、R2决定,通常在几十千欧以上。很多传感器信号源本身就带高内阻,Sallen-Key可以直接怼上去,几乎不会加载前级。相比之下,MFB(多重反馈)拓扑是反相结构,输入阻抗由第一个电阻决定,想提高输入阻抗就得增大电阻值,随之而来的是噪声和杂散电容灵敏度问题。
单位增益配置下,Sallen-Key还有一个隐蔽但极重要的优势:电容从R1、R2中间节点直接反馈到运放输出,而单位增益时运放输出恰好等于同相端电压,整个反馈路径对Q值的敏感度非常低。换句话说,你用的电阻电容容差只要不是离谱,搭出来的Q值偏差基本可控。MFB拓扑想做到同样低的灵敏度,就得费一番功夫去平衡元件参数。这也是为什么很多精密信号链路里,Sallen-Key以单位增益缓冲形式出现得最多。
1.3 什么时候不该硬选Sallen-Key
讲完优势也得泼盆冷水。Sallen-Key的Q值范围有限,工程上Q做到10以上就开始吃力了,元件容差对响应的影响会指数级放大,这个时候改用多重反馈或者状态变量滤波器更靠谱。高频应用也受运放增益带宽积限制,一般几十兆赫兹以上的滤波器,Sallen-Key容易在截止频率附近出现额外相移和峰值,要么换更高带宽的运放,要么换LC无源方案。还有一点,Sallen-Key的增益不宜设得过高,等值电阻时增益K接近3,电路极点就可能落入右半平面,变成振荡器。这个限制不是吓唬人,我在实验室真的见过有人把增益调到3附近,输出直接自激了。
2. 亲手算出一组可复现的设计参数
2.1 从传递函数里读出截止频率和Q值
设计Sallen-Key低通滤波器,先面对的是这张标准电路:输入Vin经过R1接到节点A,节点A再经过R2接到运放同相端,同相端对地接C2,节点A到运放输出之间接反馈电容C1,运放接成单位增益跟随或同相放大。单位增益时,运放输出就是同相端电压,列两个节点的KCL方程,消去中间变量,能得到一个非常干净的传递函数:
H(s) = 1 / [s²·R1·R2·C1·C2 + s·(R1·C2 + R2·C2) + 1]
标准二阶低通的分母写成s²/ω₀² + s/(Q·ω₀) + 1,对照系数就能读出两个核心参数:
ω₀ = 1 / √(R1·R2·C1·C2)
Q = √(R1·R2·C1·C2) / [(R1 + R2)·C2]
很多资料上分子还会带一个增益系数K,那是运放接成同相放大时的结果。带增益时,Q值表达式里会多出一项(1 - K)·R1·C1,K越大Q越高,超过一定值就自激。所以初学阶段,我强烈建议先用单位增益配置把电路跑通,再考虑加增益。
2.2 等值电阻法:两个约束、两个自由度的配合
设计一个二阶滤波器,本质上是用四个元件去凑两个约束:截止频率要准、Q值要对。这是一个二自由度方程,意味着可以先自由选定两个参数,再反推另外两个。最常用的做法叫等值电阻法:直接取R1 = R2 = R,这样剩下两个电容是自由量。
把R1 = R2 = R代入上面的公式,会得到一组非常漂亮的关系:
ω₀ = 1 / (R·√(C1·C2))
Q = 0.5·√(C1 / C2)
换句话说,等值电阻时,截止频率由R和电容乘积的几何平均值决定,Q值则完全由两个电容的比值决定。设计时先按目标截止频率算出几何电容C = 1 / (2π·f_c·R),再根据目标Q值反推两个电容:
C1 = 2·Q·C,C2 = C / (2·Q)
这个流程比上来就解联立方程直观得多。实际选型时电容常选E12或E24标称系列,算出来的值不一定正好买得到,那就选最接近的标称值,再微调电阻把截止频率拉回目标值。微调电阻的做法非常常见,因为E96系列电阻的精度和可得性都比电容好很多。
2.3 一个1kHz巴特沃斯低通的完整设计过程
拿一个最常见的需求举例:设计截止频率1kHz、巴特沃斯响应的二阶低通滤波器。巴特沃斯响应要求Q = 1/√2 ≈ 0.707。我选R1 = R2 = 10kΩ,理由很朴素:10kΩ是运放电路最常用的电阻值,噪声不大,偏置电流产生的直流误差也小,后级驱动轻松。
先算几何电容:C = 1 / (2π × 1000 × 10000) ≈ 15.9nF。这个值买不到标准电容,不要紧,先留着。接着算两个具体电容:
C1 = 2 × 0.707 × 15.9 ≈ 22.5nF,取标称22nF。
C2 = 15.9 / (2 × 0.707) ≈ 11.25nF,这个值也很尴尬,但E24系列里有11nF,或者用两个22nF串联得到11nF。
如果你手里只有10nF和22nF,也能做。C1取22nF、C2取10nF时,实际Q = 0.5 × √(22/10) ≈ 0.741,比目标高了一点点,频响会在截止频率附近隆起约0.2dB,人耳和多数测量场景根本察觉不到。截止频率则变成约1073Hz,比目标高了7%。如果这7%不能忍,就把电阻改成10.7kΩ,用10kΩ串750Ω获取。实际项目中,我更推荐C1取22nF、C2取两个22nF串联,R取标称10kΩ,这样Q值和截止频率都落在1%以内,非常稳。
高通版本的Sallen-Key流程完全对称,电阻和电容位置互换,公式照用,设计方法一模一样,这里就不重复推了。
3. 从原理图到实物:元件与运放怎么选
3.1 运放选型的三个硬指标
Sallen-Key对运放的要求不苛刻,但选错了真的会翻车。第一个硬指标是增益带宽积GBW。运放的实际开环增益随频率下降,在闭环反馈里的表现就是高频段会有附加相移,这个相移会改变反馈回路对RC网络的补偿效果,直观表现就是截止频率附近冒出一个小尖峰。经验法则:GBW至少要大于截止频率20倍,最好50倍以上。做个1kHz的滤波器,TL072这种3MHz GBW的运放绰绰有余;做到100kHz,就得考虑OPA2134或者更快的运放。
第二个指标是输入偏置电流。很多人栽在这上面。运放同相输入端到地的直流路径要经过R1、R2,偏置电流会在这些电阻上产生压降,形成输出直流偏移。TL072的偏置电流只有几十皮安,在100kΩ电阻上产生的偏移微乎其微;但如果你用的是LM358这类双极型运放,偏置电流高达数百纳安,R1+R2取100kΩ时,偏移轻松超过25mV,对后级ADC就是不可接受的误差。高阻值设计时,老老实实选CMOS输入运放。
第三个指标是压摆率和噪声。音频应用里,噪声主要由电阻热噪声和运放电压噪声贡献,NE5532、LM4562、OPA2134这些低噪声运放是常见选择。压摆率则需要保证信号最大幅度和最高频率下,输出不失真,通常SR > 2π × f_max × V_peak。这个指标在普通低通里一般不会成为瓶颈,但在高通或带通里需要注意。
3.2 电阻电容不是随便拿一个就行
电阻方面,首选金属膜电阻,精度至少1%,也就是E96系列。碳膜电阻温漂大、噪声高,不适合用在精密滤波器里。阻值范围建议控制在1kΩ到100kΩ之间。阻值太小,前级驱动电流大,功耗和负载问题跟着来;阻值太大,热噪声增大,而且PCB上几十pF的杂散电容会与高阻值形成额外的RC极点,拉偏高频响应。
电容是Sallen-Key的灵魂。两个电容的比值直接决定Q值,所以电容的容差和温度稳定性比电阻还关键。低频和音频段,首选聚丙烯膜电容或者C0G/NP0瓷片电容,容差能做到5%以下,温漂小。X7R电容虽然便宜、容量密度高,但直流偏置特性差、温漂大,用在滤波电路里时间一长参数就飘了,我一般只用它做电源去耦,绝不会放在RC网络里。更差的Z5U、Y5V,直接别买。
还有一个容易被忽略的点:两个电容的温度特性最好一致。如果C1用C0G、C2用X7R,温度变化时C1不动、C2乱跑,Q值跟着跑,响应形状全变了。用同一材质、同一品牌的电容,温漂方向一致,Q值还能保持相对稳定。
3.3 PCB布局:Sallen-Key最容易忽略的坑
原理图设计正确,PCB布局随意,照样做不出好滤波器。杂散电容是Sallen-Key的头号敌人,尤其是C2两端的寄生电容。C2通常只有几纳法到几十纳法,PCB焊盘和走线之间的寄生电容轻松就是几皮法,对几十纳法的电容影响不大,但如果滤波器的截止频率超过几百千赫,C2只有几百皮法甚至更小,这时几皮法的寄生电容就会让实际截止频率明显偏移。
具体做法上,我总结了几条实用经验:反馈电容C1要紧贴R1、R2的连接节点,走线越短越好;C2的接地端要直接回到运放的地引脚附近,不要绕一个大圈去打地孔;R1、R2尽量靠近运放同相输入端,减少同相端到地的走线长度;电源去耦电容0.1μF紧贴运放电源引脚,这点对任何运放电路都适用。还要注意,C1两端的高频信号会通过空气和基板耦合到邻近走线,敏感信号线不要贴着它平行走,垂直交叉也要留足间距。
4. 调试验证与常见问题排查
4.1 实测扫描确认设计目标
滤波电路设计完,上电实测是必须的。没有网络分析仪的话,最低成本的方案是电脑声卡加REW或者Arta这样的免费扫频软件。声卡输出一个扫频信号,经过待测电路进声卡输入,软件直接画出幅频曲线。这个方法在20Hz到20kHz范围内非常实用,音频滤波器完全够用。做更高频率的滤波器,可以借一台信号发生器加示波器,用X-Y模式或者逐点记录幅度,稍微费点功夫,但数据一样可靠。
实测时先看低频通带增益是否为0dB(单位增益配置),再看截止频率处幅度是否回落到-3dB,最后看通带内有没有不该出现的尖峰或凹陷。高频段哪怕看不到明显尖峰,也要注意滚降是否变慢、阻带是否有隆起,这都是运放带宽不足的早期征兆。
4.2 频率偏移、带内尖峰、直流偏置问题的根源
实测中最常见的问题是截止频率偏高。几乎每次都能从元件容差和PCB寄生参数两条线找到答案。电容标称值本身的容差可能就有5%,截止频率对电容是开方关系,两个电容同时偏小5%,截止频率可能偏了5%以上。想精确,就用LCR表先把电容实际值测一遍,再倒推合适的电阻值。
带内出现尖峰则要分清是设计问题还是工艺问题。设计上,如果Q值本来就高于响应要求,比如巴特沃斯被做成了0.9,自然会有峰值。工艺上,C2的寄生电容会改变电容比值,导致Q升高;运放GBW不足也会带来类似表现。排查方法很简单:拿LCR表量一下实际C1和C2,把实测值代回公式算一遍Q,基本就能定位。
直流偏置问题往往和运放选型绑定。症状是输出端在没有任何交流信号时有一个mV级甚至更大的直流电压。低偏置电流运放,比如TL072、OPA2134,很少出现这个问题;双极型运放配上高阻值电阻,就很容易触发。解决办法除了换运放,还可以在输入端加隔直电容,或者给同相端到地加一个合适阻值的直流泄放电阻。
4.3 常见问题速查表
我把多年调试Sallen-Key遇到的典型问题整理成一张表,方便你快速对号入座。
| 现象 | 可能原因 | 排查与对策 |
|---|---|---|
| 截止频率整体偏高 | 电容容差偏小、C2寄生电容不足、电阻偏小 | LCR表实测元件,倒推电阻修正 |
| 截止频率整体偏低 | 电容容差偏大、C2寄生电容叠加 | 减小C2对应PCB面积,或微调R |
| 截止频率附近有尖峰 | Q值偏高、运放GBW不足、增益K过大 | 量C1/C2实际值,换高GBW运放,降低增益 |
| 带外衰减不够陡 | 运放高频相移、PCB耦合串扰 | 检查布局,给C1反馈路径加屏蔽地线 |
| 输出直流偏移 | 偏置电流过大、R阻值过大 | 换CMOS输入运放,减小R,加隔直 |
| 电源纹波干扰 | 去耦不良、地平面分割 | 0.1μF+10μF组合去耦,确保完整地平面 |
表格里每条我都实际遇到过,其中最阴间的是一次高通滤波器的自激,查了半天发现是运放反相输入端的走线太长,和输出端形成了寄生反馈。把走线缩短、包地处理之后问题消失。这类问题仿真软件很难暴露,只能靠扎实的布局习惯来规避。
5. 从二阶到更高阶:Sallen-Key怎么往前再走一步
5.1 四阶级联:两个二阶节的排列有讲究
单个Sallen-Key节只有二阶,也就是每十倍频程12dB的滚降。很多场景需要更陡的衰减,比如ADC抗混叠往往要求四阶甚至八阶。最直接的办法就是把多个二阶节级联起来,每节独立用上述方法设计,然后连在一起。
四阶巴特沃斯低通的典型分解是两个二阶节,第一节Q≈0.541,第二节Q≈1.307。级联顺序有个坑:应该把Q值低的那一节放在前面,Q值高的放后面。原因是高Q节在截止频率附近会有明显的增益隆起,如果这个节在前级,信号幅度在隆起处会被放大,到达后级时可能接近甚至超过运放的输出摆幅,导致削波失真。把低Q节放前面,先做基本滤波,再让高Q节做锐化,实际效果会好很多。这个经验在实现Linkwitz-Riley分频时特别重要。
5.2 换一种响应:贝塞尔、切比雪夫、Linkwitz-Riley
巴特沃斯是最常用的响应类型,但不是唯一选择。贝塞尔响应的Q≈0.577,通带内相位最线性,阶跃响应几乎无过冲,适合需要保持脉冲波形形状的数字信号调理。切比雪夫响应Q值更高,滚降更陡,但通带内有纹波,Q=0.864时纹波约0.5dB,Q=0.956时纹波约1dB。音频分频器里常见的Linkwitz-Riley响应,本质是两个Q=0.5、截止频率相同的二阶节级联,在分频点处两路信号相加时幅度响应平坦,所以被广泛用在两分频音箱上。
每种响应类型只是Q值不同,设计流程完全相同:先根据目标响应查Q值,代入等值电阻法的公式,算出C1、C2,再微调电阻校正截止频率。这意味着掌握这一套流程,你就同时掌握了多种滤波器风格。
5.3 高通、带通的延伸思路
Sallen-Key不只做低通。把低通电路里的电阻和电容位置对调,就变成了高通滤波器,设计公式完全对称。带通则更复杂一点,标准Sallen-Key拓扑不能直接实现带通,需要在反馈网络里加额外的RC支路,或者用两个Sallen-Key节串联,一个低通、一个高通,组合成带通响应。实际项目中我更多用后者,因为每一节都经过验证,组合起来的行为可预测,调试起来省心得多。
Sallen-Key后续还能做多反馈变体、差分输入变体、自动调谐版本,但那些都建立在基础拓扑之上。先把二阶节吃透,剩下的都是排列组合。
我个人在实际操作中的体会是,Sallen-Key是最适合“动手验证”的滤波器拓扑。它的数学不复杂,设计流程短,普通实验室设备就能测出漂亮的频响曲线。但越是看起来简单的电路,越考验对元件特性、运放参数和PCB寄生效应的理解。我建议你拿到这篇文章后,不要急着抄公式,而是先用仿真软件搭一个1kHz低通,改一改电容比值看Q值怎么变,再上手焊一块板实测一次。这个过程走完,你对滤波器的直觉就会完全不一样。