ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

二阶有源低通滤波器设计详解:从Sallen-Key计算到Multisim仿真验证

二阶有源低通滤波器设计详解:从Sallen-Key计算到Multisim仿真验证 最近在帮几位工程师做面试辅导时我发现一个很有意思的现象一提到二阶有源低通滤波器很多人立刻能画出Sallen-Key的经典电路可真要让他算一组元件值再放到Multisim里做仿真验证思路就开始打结了。这个题目看似基础却是电子工程师面试题里的高频考点也是ADC前端、传感器信号调理等实际项目里绕不开的基本功。这篇文章我打算用一套完整的10kHz巴特沃斯二阶有源低通滤波器设计实例把从传递函数推导、元件计算、运放选型到Multisim仿真的全过程摊开讲一遍最后再聊聊我从仿真走向实物时踩过的几个坑。内容尽量照顾不同基础的读者新手可以照着操作老手也能看看有没有漏掉细节。1. 为什么二阶有源低通滤波器是电子工程师躲不开的坎1.1 一阶滤波器的斜率永远不够用先从最基本的RC低通说起。一个电阻加一个电容确实能滤掉高频但它的衰减速率只有-20dB/dec也就是频率每升高10倍幅值才掉到原来的十分之一。这个斜率在实际工程里往往不够用。举个例子ADC前端做抗混叠滤波时如果采样率是100kHz目标信号带宽10kHz那么混叠频率大约在90kHz附近。用一阶RC滤波器90kHz处的衰减只有20dB左右也就是说干扰信号经过滤波之后仍有约十分之一的幅值折回到带内。对12位ADC来说这个残余量足以让有效位数明显下降。二阶有源低通滤波器的衰减速率是-40dB/dec同样的频率点可以做到40dB以上的抑制效果完全是另一个量级。这里要说明一个容易混淆的概念滤波器的“阶数”指的是传递函数中极点的个数不是RC级联的个数。两个RC网络直接级联如果不加缓冲隔离后级会加载前级实际极点会偏移并不能简单得到-40dB/dec。这正是二阶有源滤波器存在的意义之一——用运放的隔离作用把两个一阶节“撑开”让它们各司其职。1.2 有源和无源怎么选才不亏无源二阶LC滤波器也能实现-40dB/dec的衰减而且没有噪声和功耗问题在射频和功率电路里仍然很常见。但在低频段比如几赫兹到几百千赫兹这个范围无源滤波器有两个明显的痛点。第一个痛点是电感。低频段所需的电感量往往很大体积、成本和寄生参数都不好控制。第二个痛点是负载效应。无源滤波器的截止频率和Q值都依赖于负载阻抗接上实际电路后输出阻抗和负载阻抗会改变滤波特性设计值很容易偏离。有源滤波器用运放和RC元件来构建完全避开电感体积小、成本低而且因为运放输出阻抗很低后级负载对滤波特性几乎没有影响。输出端还可以提供增益等于滤波和放大一起做了。当然有源滤波器的代价是受运放带宽、电源电压和噪声的限制不适合太高的频率。通常几十千赫兹以下用有源方案非常香到了几兆赫兹以上就要慎重考虑。1.3 典型应用场景ADC抗混叠、DAC平滑、传感器调理我接触过的项目中二阶有源低通滤波器最常出现在三个位置。一是ADC前端的抗混叠滤波。采样定理告诉我们高于二分之一采样频率的信号会折叠到低频段而且折叠之后再也无法区分。所以在ADC之前加一个低通把带外噪声和干扰压下去是系统设计的基本操作。二阶滤波在这里用得最多因为性能和成本比较平衡。二是DAC输出端的平滑滤波。DAC输出的阶梯波包含大量采样时钟的高频分量直接送进模拟电路会产生毛刺和噪声。低通滤波器把这些台阶抹平还原出连续的模拟信号。三是传感器信号调理电路。压力传感器、光电二极管、热电偶这类信号源往往输出的是毫伏级微弱信号还掺杂着各种高频干扰。先用低通滤掉干扰再进入放大级可以显著提高信噪比。有些场景甚至需要把二阶低通和仪表放大器组合在一起形成完整的信号链。2. 先把Sallen-Key的公式吃透再谈设计2.1 统一拓扑与传递函数Sallen-Key结构是二阶有源滤波器最经典的拓扑核心思路是两个RC网络组成反馈路径运放接成同相放大或电压跟随器。之所以它这么流行是因为元件少、对元件容差不太敏感、设计公式直观而且用同一个拓扑只需要改改元件值就能实现低通、高通、带通。以单位增益Sallen-Key低通为例运放接成电压跟随器两个电阻分别为R1、R2两个电容分别为C1、C2。这个结构的传递函数可以写成H(s) 1 / [s²R1R2C1C2 s(R1C1 R2C1) 1]这个式子看着复杂但拆开看很有规律。s²项对应二阶极点s项对应阻尼常数项是直流增益。对于低通滤波器直流时频率为0s0所以增益是1频率升高后分母的s和s²项逐渐起作用增益开始下降。把分母和标准的二阶系统表达式对照一下就能提取出两个关键参数。特征角频率ω0和品质因数Q分别为ω0 1 / √(R1R2C1C2)Q √(R1R2C1C2) / (R1C1 R2C1)这里的Q值决定了滤波器在截止频率附近的响应形态。Q0.707是巴特沃斯响应平坦无峰值Q0.707会出现幅度凸起Q0.707则过渡带更圆滑但衰减稍慢。理解了这两个公式设计就有章可循了。2.2 Q值决定了滤波器性格很多初学者把注意力全放在截止频率上忽略了Q值这是最大的误区。同样的截止频率Q值不同滤波器的响应曲线和行为完全不同。Q等于0.707时巴特沃斯响应通带内最平坦没有过冲相位变化也比较温和是大多数信号传输场景的首选。Q等于0.5时对应两个相等的实数极点系统处于临界阻尼状态阶跃响应没有过冲但建立比较慢相当于两个一阶低通串联的效果。Q值大于0.707时比如Q等于1或更高幅频响应在截止频率附近会出现明显的谐振峰。切比雪夫滤波器就是利用这种峰值换取更陡的过渡带但通带内波纹增大阶跃响应会有明显的过冲和振铃。做工程选型时我一般这样把握对信号波形真实性要求高的用巴特沃斯对阶跃响应无过冲要求极高的用贝塞尔对过渡带陡峭度要求高、能容忍通带波纹的才选切比雪夫。大部分通用信号链上巴特沃斯是默认选项。2.3 巴特沃斯、贝塞尔、切比雪夫怎么选把三种响应用表格对比一下选型时就一目了然。响应类型通带特性过渡带陡峭度阶跃响应表现典型应用巴特沃斯最平坦无波纹中等轻微过冲约4.3%通用滤波、ADC抗混叠贝塞尔平坦相位线性最好最缓几乎无过冲脉冲信号、音频相位敏感场景切比雪夫有等波纹最陡过冲明显可能振铃窄带信号提取指标优先场景三种响应对应的Q值也不同。二阶巴特沃斯的Q值是0.707二阶级联贝塞尔的Q值约0.577二阶切比雪夫0.5dB波纹的Q值约0.864。设计时把目标Q值代进去反推元件比例就不会出错。这里还要补充一点如果用到更高阶滤波器比如四阶、六阶通常是把多个二阶节级联。每一节对应不同的Q值而不是所有节都用0.707这一点牢记在心。3. 设计一个10kHz巴特沃斯低通从指标到元件值3.1 指标确认与公式反推设计目标定为截止频率约10kHz、直流增益1倍、巴特沃斯响应。这个组合是ADC前端非常典型的配置增益1也方便后面接其他放大级。采用单位增益Sallen-Key结构为了让计算简洁令R1R2R。在单位增益条件下Q的表达式简化为Q 0.5 × √(C2/C1)要让Q等于0.707也就是√2/2可以算出C2/C12。所以电容取C22C1时自然得到巴特沃斯响应这个技巧用起来非常方便。截止频率公式变成fc 1 / (2πR√(C1C2))如果第一步先取C11nF那么C22nF带入公式R 1 / (2π × 10kHz × √(1nF × 2nF)) ≈ 11.25kΩ实际选用标称值11.3kΩ这是一个E96系列易购的阻值。实际截止频率约9.96kHz偏差不到0.5%。C2我建议用两个1nF并联因为2nF不是所有系列都方便买到高精度型号。最终元件参数R1 R2 11.3kΩE961%精度C1 1nFC0G/NP0电容1%或5%均可C2 2nF两个1nF并联运放接成电压跟随器增益1电源用双电源±12V或±15V3.2 运放选型GBW和压摆率至少留多少余量确定了RC元件后运放选型是很多新手会忽略的一环。运放不是随便放一个都能用两个参数最要命一个是增益带宽积GBW另一个是压摆率SR。单位增益带宽积的经验法则是至少取截止频率的50到100倍。对于10kHz滤波器GBW至少要到1MHz以上稳妥一点取3MHz以上。因为运放的实际开环增益在高频处下降如果GBW不够滤波器在截止频率附近会产生额外的相位滞后导致实测截止频率偏低、Q值改变。压摆率的估算公式是SR 2πfVpk。假设输出满幅2V、频率10kHz需要的压摆率是SR 2π × 10kHz × 2V ≈ 0.126V/μs这个值很低大多数运放都能满足。但如果输出幅度大、频率高比如输出20V、频率20kHz就需要约2.5V/μs选型时就要注意了。我在Multisim仿真里习惯用TL072或OP07前者GBW为3MHz后者为0.6MHz左右。TL072做10kHz滤波余量充足OP07虽然精度高但GBW偏低实测截止频率可能受影响。真正做产品时可以根据供电电压、噪声、成本综合选择比如OPA2134、NE5532也都是常见的音频级选择。3.3 Multisim里搭建电路的基本操作Multisim搭这个电路流程并不复杂打开软件后按照下面的步骤操作从Place菜单中选择Component在Group里选Basic分别放置电阻和电容。放置运放在Group里选Analog或Opamp搜索TL072或LM358。给运放接上正负电源仿真库里一般用VCC和VEE符号电压设为±12V或±15V。信号源用Sources里面的AC_VOLTAGE设置幅值1V频率1kHz。用导线把所有元件连接好注意C1接在运放输出和反相输入端之间C2跨接在输出和R2间这里要对应正确拓扑别把反馈路径接错。连接关系可以参考以下逻辑信号经R1进入节点AR2从节点A连接到运放同相输入端C1从节点A连接到地C2从运放输出端连接到节点A运放反相输入端直接接输出构成跟随器。这样接出来的就是标准的单位增益Sallen-Key低通。有人可能会问为什么C1和C2的位置看起来不像两个RC串联这是因为C1放在了节点和地之间C2形成了从输出到节点的反馈运放把这个反馈信号再次放大相当于引入了比两个RC级联更强的滤波效果。这就是有源滤波器和无源RC级联的本质区别。4. Multisim仿真验证频域和时域都要看4.1 AC扫描设置与幅频曲线读取电路搭好后选择Simulate菜单里的Analysis and Simulation进入AC Sweep分析。需要设置的关键参数有起始频率100Hz或1kHz太低了没必要终止频率1MHz或10MHz至少覆盖截止频率的100倍扫描方式Decade十倍频程点数每十倍频程100点左右曲线更平滑仿真跑完得到幅频响应曲线。用光标测量正常情况下可以看到低频段增益接近0dB也就是1倍在10kHz附近开始下滑-3dB点大约在10kHz附近高频段斜率接近-40dB/dec也就是频率从100kHz到1MHz时增益下降约40dB为了直观验证这个斜率可以把一阶RC低通和这个二阶有源滤波器放一起仿真对比频率每升高十倍时的衰减量。一阶只掉20dB二阶掉40dB差异非常明显。这也是初学者验证“二阶比一阶滤得更干净”的最好办法。4.2 相位特性与-3dB点验证幅频特性之外别忘了看相频曲线。Sallen-Key二阶低通的相位变化范围是从0度到-180度在截止频率处理论上相位为-90度。Multisim的AC分析结果里可以同时显示相位曲线用光标读取fc附近的相位值能帮你确认电路拓扑是否正确。如果相位曲线在截止频率处对应-90度说明极点设置正确。如果相位偏移明显偏早或者幅频曲线在截止频率前就开始弯曲那很可能是运放带宽不足在高频处引入了额外相移。这个诊断思路在实际调试中非常有用。-3dB点的验证同样可以用光标实现找到幅值比低频段低3dB的频点读数如果在9.5kHz到10.5kHz之间设计就是合格的。如果想更精确可以把仿真步长加密或者缩小扫描范围让分辨率更高。4.3 瞬态仿真看滤波效果频域仿真验证的是频率响应时域仿真验证的是实际波形。建议用瞬态分析做三组测试。第一组输入1kHz正弦波。这个频率在通带内输出幅值应接近输入波形没有明显衰减。第二组输入10kHz正弦波。这个频率刚好在截止频率附近输出幅值应约为输入的0.707倍同时相位有约90度的滞后。如果波形出现了明显变形说明运放摆率不够或者电路进入非线性区。第三组输入100kHz正弦波也就是十倍于截止频率的信号。理想情况下输出幅值应衰减到输入的约1%。如果衰减不够说明你的RC元件值或拓扑连接有误需要回头检查。这三组测试做完整个滤波器在频域和时域的表现就都清楚了。仿真没问题再往实物走心里就有底了。5. 从仿真到实物这些坑替你踩过了5.1 运放带宽不足导致截止频率偏移仿真时如果选了一个GBW只有几百kHz的运放来做10kHz滤波器你可能不会立刻发现问题因为Multisim的运放模型在某些情况下比较理想。但实物一测截止频率可能只有8kHz甚至更低Q值也变了。原因是运放的开环增益在截止频率附近已经明显下降等效于给滤波器增加了一个额外极点改变了原有的传递函数。解决思路有两个一是换更高GBW的运放直接留足余量二是在设计时就预估这种偏移把截止频率稍微设计高一点。我更推荐第一种方案治本。5.2 电容精度、类型与温度系数的坑仿真里电容是理想值实物里电容的脾气可就大了。普通陶瓷电容X7R和X5R不仅容值随直流偏置电压变化温度系数也可能有-15%到15%的偏差。放在滤波器里这个偏差会直接导致截止频率偏移Q值也可能不稳定。滤波电路里的电容我建议尽量选C0G/NP0材质温度系数接近0容值稳定。找不到合适的C0G时聚丙烯薄膜电容也是很好的选择。精度方面至少选5%误差想严格一点就选1%。别小看这个细节很多滤波器实测定点不准就是栽在电容上。顺便提一下两个1nF并联组成2nF是我比较喜欢的手法。因为1nF的C0G电容容易买到高精度型号并联以后容值误差比直接买2nF标称值的更可控PCB布局上也灵活。5.3 PCB布局与电源去耦细节仿真通过后布局布线是有源滤波器能否在实物中达到预期效果的最后一道关卡。运放的电源引脚旁边必须加100nF去耦电容尽量靠近电源引脚放置这个电容用来提供高频瞬态电流否则滤波器在高频段的性能会莫名其妙变差。反馈网络里的R1、R2、C1、C2都要靠近运放引脚走线尽量短。特别是C2的反馈路径它从输出端回到运放反向输入附近这条路径上的寄生电容会把一部分高频信号直接耦合到输入破坏滤波特性。还有接地问题。滤波电路的接地要尽量保持在一个连续的接地平面上避免跨越缝隙。如果板子上同时有大电流数字电路模拟地和数字地需要合理分割或者在单点处汇合避免数字噪声通过地平面串入模拟滤波网络。5.4 Multisim数据库报错与仿真速度问题最后说几个Multisim本身容易遇到的问题这些在实际使用中真能把人逼疯。最常见的“主数据库无法访问”错误多半和安装路径、权限或数据库文件损坏有关。如果你用的是绿色版或者非标准安装建议先以管理员身份运行看能否解决。如果不行在Options里检查Global Preferences的Database路径是否正确。还不行的话卸载重装时一定把注册表残留清干净否则重装后问题复现。这个坑我帮人排查过多次八成是之前没删干净。关于仿真速度慢通常是因为瞬态分析的最小时间步长设置得太小。滤波器电路本身不复杂如果用了非常小的最大时间步长仿真就会一直磨蹭。可以适当调大Maximum time step或者把示波器显示的时长缩短只观察需要的波形段。AC扫描速度慢的话检查一下扫描点数十万个点真的没必要一千到一万个点已经很精细了。Multisim里还有一个常见坑就是仿真不收敛。遇到这种问题可以在仿真设置里把Gmin Stepping打开或者调整相对容差。再不行就给电路加上初始条件很多时候能轻松解决。最后一个建议Multisim仿真文件记得在命名时加上版本号因为高版本软件打不开低版本文件的情况很少但低版本打不开高版本文件是常事。我和别人协作时一般会导出成低版本格式或者直接附一份截图和元件清单免得对方打开报错。
返回列表