尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

无源低通滤波器设计:从RC截止频率计算到阻抗匹配与实测

无源低通滤波器设计:从RC截止频率计算到阻抗匹配与实测 1. 无源低通滤波器不只是电容加电阻去年调一块传感器采集板折腾了整整一天。现象很简单MCU的ADC读到的信号在无输入时也有大约几十毫伏的随机波动波形在示波器上看就是一层“毛刺”。排查了一圈最后发现是板子上的DCDC开关噪声顺着电源线和信号线耦合了进来噪声频率大概在几十kHz到几MHz之间而有用信号只有几十Hz到几百Hz。当时手边没有合适的滤波芯片我直接找了两颗0603封装的电阻电容焊了一个一阶RC低通串在ADC采样引脚前面。毛刺立刻从几十毫伏降到了几毫伏以内。就这一下我对无源低通滤波器这个“老掉牙”的电路又敬重了几分。这篇博文就不绕弯子了直接讲无源低通滤波器——它是什么、为什么几十年来没有被淘汰、截止频率怎么算、元件怎么选、实际焊接调试时有哪些坑。适合刚入门模拟电路的电子爱好者也适合做嵌入式、做信号调理、做音频处理时被噪声折磨的工程师。内容会从原理推导一直聊到实操踩坑争取让你看完就能自己算、自己焊、自己调。无源低通滤波器说穿了就是由电阻、电容、电感这类无源元件组成的滤波器作用是让低于某个频率的信号尽可能无衰减地通过把高于这个频率的信号衰减掉。和需要供电的有源滤波器相比它没有运放、没有电源引脚、没有静态功耗就是个“物理结构”也正因为这份简单它在大量场景里依然不可替代。2. 设计之前必须搞懂的四个核心概念2.1 截止频率到底是怎么算出来的所有低通滤波器设计中绕不开的第一个参数就是截止频率f_c工程里通常定义为增益下降到-3dB时对应的频率点。对于一阶RC低通滤波这个频率直接由电阻R和电容C决定f_c 1 / (2πRC)这个公式推导不复杂。RC低通电路本质是一个分压器电容的容抗随频率升高而下降所以高频信号被电容旁路到底低频信号则相对完整地落到输出端。电容的复阻抗是Z_C 1/(j2πfC)把它和电阻R组成分压V_out / V_in Z_C / (R Z_C) 1 / (1 j2πfRC)当频率等于1/(2πRC)时分母的虚部模长正好等于1此时增益的模等于1/√2换算成对数就是-3.01dB也就是我们常说的“半功率点”。举个实际例子。假设你手头有10kΩ电阻和10nF电容那截止频率就是f_c 1 / (2π × 10000 × 10×10⁻⁹) ≈ 1592Hz也就是说1.6kHz左右的信号通过这个电路后衰减到约70.7%而远低于这个频率的信号基本无损通过。很多同学第一步就栽在“截止频率选多少”这个问题上。我比较推荐的做法是先画出信号的频率分布图标出有用信号的最高频率和噪声的最低频率然后把截止频率放在这两个频率之间通常取几何中点即f_c √(f_有用 × f_噪声)。这样能兼顾有用信号的通带平坦度和噪声的抑制能力。2.2 幅频特性-20dB/十倍频程到底意味着什么RC低通的幅频特性可以用一句话概括过了截止频率之后频率每升高10倍输出衰减20dB。20dB对应电压衰减10倍。这个数字是很多新手容易算错的地方。注意一阶RC滤波器只有20dB/十倍频程的滚降斜率不是40dB也不是60dB。如果你需要更陡的衰减曲线就得级联多阶滤波或者改用LC滤波器。实际计算时有个工程速算法对于远高于截止频率的频率点f衰减量约为衰减(dB) ≈ 20 × log₁₀(f / f_c)比如截止频率1kHz你要评估10kHz处的衰减那就是20 × log₁₀(10) ≈ 20dB。也就是说10kHz的噪声到了输出端只剩原来的十分之一。在很多场景下20dB的衰减可能不够用这也是为什么实际产品里常见二阶或三阶无源低通或者干脆用运放搭有源滤波器。2.3 相频特性被大多数人忽略的“隐形杀手”增益曲线大家都会看但相位响应经常被忽略。一阶RC低通的相移从截止频率前就开始出现在f_c处正好是-45°频率继续升高逼近-90°。相位问题在纯信号测量场景下通常无所谓但在闭环系统、音频分频、数据采集同步场景里就很关键。举个例子你用ADC采集一个交流信号RC低通除了衰减高频噪声还会让有用信号产生相位延迟。如果你同时采集多路信号、各路滤波器的截止频率不一致就会出现通道间相位差这在电机控制、电力监测里会造成测量误差甚至控制震荡。所以滤波器的截止频率不是越接近有用信号上边界越好一定要留出相位裕量。我自己的经验是截止频率至少要有用信号最高频率的3到5倍以上才能把带内相位偏移控制在十几度以内。2.4 插入损耗无源滤波的“隐性代价”无源滤波器不放大信号但也不能做到完全无损。即使是在通带内信号经过RC分压后也会有一定损耗这就是插入损耗。尤其是当后级电路的输入阻抗不够高时负载效应会把截止频率拉偏损耗也会更明显。这里引出一个非常关键的阻抗匹配问题。RC低通滤波器不是独立存在的它的前级有信号源内阻后级有负载阻抗。信号源内阻会跟滤波电阻R串联改变实际截止频率负载阻抗会跟滤波电容C并联同样影响频率响应。设计时必须把这两个阻抗考虑进去。3. 设计实操从需求到焊好的完整流程3.1 明确需求别上来就算公式做任何一个滤波器第一步都不是选元件而是把需求量化。我一般会问自己四个问题有用信号的频率范围是多少需要衰减的噪声最低频率是多少有用信号最大允许衰减多少dB后级电路的输入阻抗是多少这四个问题的答案决定了滤波器的阶数、截止频率和元件选型。举个例子我在一块温湿度采集板上遇到了一个典型场景温湿度传感器最大输出频率只有几十Hz但板上的DCDC工作频率是400kHz纹波和开关噪声通过电源线耦合到了传感器输出端导致读数跳字严重。传感器输出阻抗大约1kΩADC的输入阻抗是100kΩ以上。这种情况下有用信号上限几十Hz噪声在400kHz频差跨越四个数量级一阶RC就能获得80dB以上的衰减完全够用。根据信号源阻抗我决定滤波电阻取10kΩ级别后级输入阻抗100kΩ远大于10kΩ负载效应可以忽略。3.2 截止频率计算与元件选型根据前面的公式f_c 1/(2πRC)我需要选一组R和C。为了尽量不加重前级传感器负载R不能太小但R太大又会让输出阻抗升高。权衡下来我选了R 10kΩ目标截止频率取100Hz那么C 1 / (2π × 10000 × 100) ≈ 159nF手头没有159nF这个标称值最接近的是150nF和180nF。选150nF的话实际截止频率f_c 1 / (2π × 10000 × 150×10⁻⁹) ≈ 106Hz这完全满足需求。如果你手头只有常用的100nF那截止频率就是159Hz也还行。关键看你的信号和噪声频差只要f_c离有用信号边界够远就行。这里要提醒一个选型细节电容种类对高频特性影响很大。陶瓷电容有很好的频率响应但注意X5R、X7R等材质的电容值会随直流偏置电压变化电解电容容量大但ESR大高频特性差不适合做高频滤波C0G/NP0材质的电容温度特性和电压特性最好但容量做不大大容量的场合不太实用。低频滤波场景我优先选X7R陶瓷电容频率别太高、容量又在百nF级别时非常合适。3.3 用实测数据验证设计效果理论算完只是第一步焊完之后务必上示波器实测。我这个温湿度板改完后实测数据如下无滤波时传感器输出端的噪声峰峰值约40mV接上RC低通后噪声降到了约3mV以内。400kHz的DCDC噪声在106Hz截止频率下的理论衰减量约为20 × log₁₀(400000 / 106) ≈ 71.5dB40mV经过71dB衰减后理论剩余不到15μV实测3mV主要还来自其他耦合路径和示波器本身的底噪。不管怎么说板子的采样稳定性已经恢复正常ADC读数不再乱跳。实测时有个小技巧不要只测输出端的噪声幅值还要把滤波前后的波形叠在一起看。如果是正弦信号用示波器的FFT功能看频谱最直观如果是方波或脉冲信号要特别关注边沿变缓的问题因为RC低通会把方波边沿拉成指数上升的曲线这在数字信号整形里要格外小心。3.4 二阶跟一阶差在哪什么时候需要升级一阶RC低通虽然简单但滚降特性不够陡。如果噪声频率只比有用信号高几倍一阶滤波器在两者之间很难做到“既要又要”截止频率设低了有用信号衰减多设高了噪声压不住。这时候就需要二阶无源低通。经典的做法是两级RC级联但这里有个比较容易踩的坑两级RC直接串联不是简单的把两个截止频率相同的RC电路“组合”在一起就行。因为第一级的输出阻抗会被第二级当作信号源内阻两级之间会互相影响实际的截止频率和阻尼特性会偏离你预期的值。工程上两种做法比较可行标准做法让第一级的R第二级的R尽量大或让两级R相等C也相等此时电路有一个明确的二阶传递函数截止频率约等于1/(2π√(R₁R₂C₁C₂))但阻尼系数取决于R、C的比例。为了让响应尽量平坦通常会取R₁R₂C₁C₂但这时阻尼系数约为0.5频响曲线在截止频率附近会有约1.25dB的隆起也就是“过冲”。实用做法让后级R远大于前级R这样前后级影响变小。比如前级R1kΩ、C10nF后级R10kΩ、C1nF截止频率理论值差不多但输出阻抗变高对后级负载阻抗要求会更高。我的建议是如果后级不是高阻抗输入别盲目上无源二阶不如考虑用一阶RC加一级有源滤波或直接用集成滤波器芯片。无源阶数上去了阻抗匹配的问题也会跟着放大反而更折腾。4. 动手实操我在项目里实际怎么做的4.1 定位噪声来源确认该不该上低通滤波器很多项目拿到手的第一步不该是焊滤波器而是先搞清楚噪声从哪来。电源纹波耦合、地回路干扰、开关节点辐射、传感器自身噪声对应的解法各不相同。无源低通擅长处理传导耦合类的带外噪声对那些已经辐射到空间的高频干扰效果有限。我在处理一块低速采集板时最初怀疑是环境电磁干扰结果用示波器探头分别在电源端和信号端测量后发现噪声主要来自电源模块的输出纹波。板上有一片3.3V的DCDC开关频率2.1MHz纹波直接通过传感器供电引脚耦合到了输出信号。这种情况在传感器供电脚加一个RC或LC滤波通常就能解决而不是在信号链路上死磕。判断噪声是否来自电源有一个很简单的办法用电池或线性电源给传感器单独供电试试如果噪声明显下降说明问题在电源侧。这时候在传感器电源入口加RC低通比如100Ω串电阻、10μF并联电容经常比在信号输出端加滤波更治本。4.2 焊接与测试过程记录以信号链路滤波为例我的具体流程是这样先在纸上把需求写清楚有用信号频率上限50Hz噪声频率约400kHz后级ADC输入阻抗大于1MΩ允许信号衰减不超过1dB。按要求截止频率至少要大于50Hz且50Hz处的衰减不超过1dB。算一下1dB衰减对应的频率归一化关系是约0.508倍截止频率所以f_c要大于50/0.508 ≈ 98Hz。又因为要压住400kHz噪声一阶低通在这个频率点的衰减已经超过70dB够用。我最终把f_c定为大约100Hz。元件选型定了R33kΩ、C47nF算出来的截止频率f_c 1 / (2π × 33000 × 47×10⁻⁹) ≈ 102.6Hz凑巧比较接近100Hz。焊接时要注意把RC尽量靠近ADC引脚放置走线越短越好。因为滤波节点是高阻节点走线一长就容易重新捡回电磁干扰白搭了前面的工夫。焊完测试输入接一个50Hz、100mV峰峰值的正弦信号示波器看输出发现幅度略微衰减相移约3到4度基本符合预期。接着在输入端叠加一个400kHz、200mV的噪声信号输出端几乎看不到这个高频分量了效果非常理想。4.3 一个容易忽视的高阻节点问题RC低通滤波器的输出节点是一个高阻抗节点。在几百Hz的截止频率下电阻R是几十kΩ级别这个节点的阻抗很高很容易受寄生电容和外部干扰影响。尤其是焊完以后如果你用示波器探头直接测这个节点探头的输入电容一般10pF到15pF都会和C并联把截止频率拉偏。对于高阻节点甚至手指靠近电路板都会让频率响应变化。排查的时候如果发现频率响应和计算值对不上先看看是不是探头电容造成的。解决方法是如果后级输入阻抗不够高需要在滤波器和后级之间加一级电压跟随器运放做缓冲。无源滤波本身不放大信号但可以通过跟随器把输出阻抗降下来避免后级负载影响滤波特性。4.4 什么时候直接上LC而不是RCRC低通最大的缺点是高频衰减能力其实一般而且在较高频率下电阻R本身就会引入热噪声。如果应用频率在几百kHz到几十MHz范围比如射频前端、开关电源输出滤波RC方案不是最优选LC低通会明显更好。电感在高频下阻抗增大电容把高频旁路二者组合可以实现更陡的滚降且插入损耗更低。LC滤波的截止频率公式是f_c 1/(2π√(LC))但L和C的取值要非常小心因为LC谐振会导致在截止频率附近出现很大的增益尖峰需要配合阻尼电阻来抑制。不过LC也有“坑”电感体积大、成本高、有饱和电流限制、容易引入磁场耦合。所以在几百kHz以下、信号能量较小的场合我仍然首选RC方案简单可靠又不会引入新的干扰源。5. 常见问题与排查技巧实录5.1 为什么我的滤波器截止频率和算出来不一样这是问得最多的问题。按公式算出来的f_c和实测不一致十有八九是阻抗问题信号源输出阻抗没有考虑进去或者后级负载阻抗不够大。举一个实际场景前置电路是一个运放输出运放输出阻抗在几十欧姆量级这个源内阻会跟滤波电阻R串联。如果你的滤波电阻R本身只有几千欧姆那么源内阻的影响就不可忽略。更麻烦的是有些运放输出阻抗还随频率变化这会让高频段的实际截止频率偏离理论值更多。排查建议别只看滤波网络本身要把它放进整个信号链路里整体分析。测一下滤波前的源输出阻抗再测一下滤波后的负载输入阻抗把所有串并联关系写清楚再回公式里重新算。5.2 为什么加了滤波器噪声反而变大这种情况听上去反直觉但确实会出现。常见原因有三个输出高阻节点重新耦合了空间干扰。前面讲过滤波后的高阻输出节点是“天线”如果板子上有大电流开关节点或者高频数字走线这个节点很容易重新引入干扰。解决思路缩短走线、加地铜皮屏蔽、或者在输出端直接接运放缓冲器。接地不当。RC滤波器的C接地端如果接到了数字地或者一个充满开关噪声的地区域噪声会从地端反灌进滤波器。建议把滤波电容的地端单独引到模拟地并且用单点接地的方式连接模拟地和数字地。电阻自身热噪声。在某些高阻抗应用中几十kΩ级别的电阻产生的热噪声可能比你想要滤除的噪声还大。一般来说电阻阻值越大Johnson噪声越大噪声密度约等于4kTR。如果信号源阻抗能支持低阻值滤波尽量用更低阻值的R和更大的C组合但要注意前级驱动能力和电容体积的平衡。5.3 滤波电容应该选哪种真的随便拿一颗就行吗电容选型直接决定高频滤波效果。X7R陶瓷电容在低中频段表现很好但频率超过几十MHz后等效串联电感ESL开始主导电容阻抗电容就失去滤波作用了。这也是为什么电源滤波里经常要“大电容配小电容”——大容量电解电容负责低频纹波小容量陶瓷电容负责高频开关噪声。在无源低通信号滤波器里如果处理的噪声频率在MHz级别C0G/NP0材质的电容是首选可惜容量做大不容易如果没有更高要求X7R也完全能打。尽量不要用Y5V/Z5U这类高介电常数材质容值随温度漂移严重用在精密滤波电路里容易出幺蛾子。我自己的经验是选电容时优先看封装和材质再看容量精度。在0603和0402封装里X7R已经很普遍性能足够。如果你的应用是音频或者直流信号调理容量精度5%左右就够了不必追求高精度电容带来的成本上升。5.4 一阶、二阶、三阶到底怎么选很多刚接触滤波设计的人会纠结阶数。我提供一个比较务实的判断标准先明确你的频差比也就是噪声频率除以有用信号边界频率。如果这个比值大于100一阶RC就能提供40dB以上衰减基本够用如果比值在10到100之间一阶可能还在“漏”噪声考虑二阶如果比值小于10无源滤波器会非常难做建议直接上有源滤波器或者开关电容滤波器因为无源高阶在阻抗匹配上的痛苦远超你的预期。阶数越往上元件偏差、阻抗负载效应、寄生参数的影响越明显。我曾经在一个项目里为了追求更陡的滚降把无源滤波做到了四阶结果因为电阻精度5%、电容精度10%实际的频率响应和仿真差了十万八千里。后来放弃这条思路改成两级有源滤波反而稳定得多。5.5 增益不为0dB的信号别乱难过虽然无源低通的通带增益理论上接近0dB但现实中总会有一点插损特别是在信号源输出阻抗比较高的情况下。如果你发现滤波后信号幅度显著降低了先不要急着怀疑电容电阻坏了用源阻抗和负载阻抗代入分压公式算一下V_out / V_in R_负载 / (R_源 R_滤波 R_负载)这里的R_滤波是滤波电阻R_源是前级输出阻抗R_负载是后级输入阻抗。只要R_负载不比R_源加R_滤波大很多插损就会很明显。解决方法也很简单把运放缓冲放在滤波后面或者把R值整体降下来让滤波器自身的阻抗远小于后级输入阻抗。6. 无源低通在不同场景下的落地差异6.1 音频系统里的应用音频领域是无源低通最常见的战场之一尤其是扬声器分频器和耳机低通。扬声器分频网络里低通通道通常采用LC结构因为音频频段的功率较大RC结构里的电阻会消耗能量、发热效率太低。但在音频放大器的输入级或DAC输出级RC低通依然大量存在。DAC输出后的高频镜像频率和带外噪声需要用滤波器清理掉这种场景下负载阻抗一般比较高RC低通轻便、成本低、音质透明是很多设计者的首选。要注意的是音频系统对相位一致性非常敏感左右声道如果截止频率有一点偏差声场定位就会受影响。所以选元件时左右声道的电阻电容尽量用同批次、同精度等级的器件有条件的话实测配对后再焊上去。6.2 传感器信号调理里的应用传感器信号调理是无源低通滤波最典型的应用场景。传感器输出阻抗千差万别有的高阻比如pH电极、压电传感器有的低阻比如热电偶、PT100设计RC滤波时必须匹配不同的阻抗水平。高阻传感器场景下滤波器电阻不能选太大否则压降和热噪声会让信噪比恶化。我通常的做法是先做一级高输入阻抗缓冲比如运放跟随再进RC滤波这样滤波器的R和C就可以自由选择不必被传感器输出阻抗绑死。低阻传感器则相对宽容R取几十kΩ也问题不大。6.3 电源去耦里的特殊形态电源线上的RC低通和信号线上的RC低通表面看结构一样但设计逻辑差别很大。电源滤波要关心的是电流能力和压降电阻大了压降会超电容要撑起瞬时电流。有个比较常见的应用是给模拟电路局部供电的π型滤波输入电容加电感或电阻再并联输出电容。电源去耦里的“低通滤波”更多是在利用电容的阻抗频率特性不单纯追求截止频率的精确控制而是关注特定频点上的阻抗值够不够低。这种场景下多颗不同容值的电容并联比单颗大电容更有效原因就是每颗电容的自谐振频率不同并联覆盖的频段更宽。7. 写在最后的一点个人体会做了这么多年硬件无源低通滤波器始终是我手里最顺手也最“朴素”的工具。它没有复杂的反馈环、没有芯片手册里动辄几十页的配置寄存器、没有软件算法就是一颗电阻一颗电容的事情。但恰恰是这种简单逼着设计者把阻抗、频率、噪声这些基本概念理解扎实否则随便找个公式套一下就容易翻车。我自己踩过最大的坑就是对“阻抗匹配”认识不足。最开始接触滤波时我纯粹按f_c 1/(2πRC)选参数完全没管信号源内阻和后级负载阻抗结果做出来的滤波器和仿真对不上。后来学会把这个RC网络放进整个信号链路里看所有问题都迎刃而解。建议你也养成这个习惯任何无源滤波网络都不只是一个孤立的二端口它是系统阻抗网络的一部分越早建立这个认知后续调试越省心。如果看完这篇你正好手头也有一个信号带噪声的板子不妨先按这个思路排查一遍确认噪声来源和频率范围、确定有用信号边界、计算目标截止频率、检查源和负载阻抗、焊一个RC低通上去实测。多数情况下二十分钟就能解决问题。而这二十分钟积累下来的经验是看再多理论都换不来的。
返回列表