
做电子这行打交道最多的元件和模块里滤波器绝对排得上号。不管是音频里吱吱响的底噪还是传感器信号里抖个不停的毛刺又或者是通信链路里杂七杂八的干扰信号最后基本都得靠滤波器去收拾。这篇东西不讲虚的直接围绕低通、高通、带通这三种最常见的滤波器把工作原理掰开揉碎了讲清楚顺便带上设计计算、仿真验证和实际调试中容易踩的坑。适合刚入门的学生、嵌入式开发、硬件工程师还有对信号处理感兴趣的爱好者。1. 三种滤波器到底在“滤”什么1.1 频率才是信号的根本属性要理解滤波器先得养成一个习惯看信号不要只看波形长什么样要看它由哪些频率成分组成。任何一个周期性信号哪怕看起来再复杂理论上都能拆解成一系列不同频率、不同幅度、不同相位的正弦波之和。这就是傅里叶变换的核心思想。比如方波听起来很“方”但本质上是由基频以及无数个奇次谐波叠加而成的。噪声为什么难搞因为它几乎覆盖了所有频率白噪声就是从低频到高频均匀分布。滤波器干的事情就是把这些频率成分“按需放行”或者“按需拦截”。一个只让低频通过、把高频砍掉的系统就是低通滤波器只让高频通过、把低频拦住的就是高通滤波器只让某一个频段通过、两边都拦住的就是带通滤波器。这个概念也解释了为什么网上一搜“高通”搜出来一堆手机芯片相关的内容。做信号处理的人说高通指的是允许高频信号通过的滤波器跟处理器厂商没有关系。这篇文章里所有的高通都是指信号处理意义上的高通滤波器。1.2 通带、阻带、截止频率三个词搞定所有滤波器判断一个滤波器是什么类型就看它的“通行证”是怎么发的。低通滤波器低频放行高频拦截。通带在低频段。高通滤波器高频放行低频拦截。通带在高频段。带通滤波器只有某个中间频段放行低于下限或高于上限的一律拦截。这里面的“放行”和“拦截”不是一刀切的。滤波器从“让信号过去”到“把信号挡住”之间会有一个逐渐过渡的过程。拿低通举例从低频开始信号几乎无损通过随着频率升高输出幅度开始下降一直降到某个频率点时输出功率刚好是输入功率的一半也就是幅度降到原来的0.707倍大约-3dB。这个频率点就叫截止频率用fc表示。低于fc的频率范围叫通带远高于fc、衰减到足够小的频率范围叫阻带中间这段过渡的区域叫过渡带。滤波器阶数越高过渡带越窄衰减越快。一阶滤波器衰减斜率是每十倍频程-20dB二阶是-40dB每十倍频程三阶就是-60dB以此类推。这也是为什么实际工程里很少用一阶滤波器去处理要求高的场景——衰减太慢阻带来得太晚。1.3 幅度响应之外还有相位响应很多人学滤波器只看幅度响应也就是“频率-增益”曲线却忽略了相位响应等真正调试的时候才发现问题。信号通过滤波器不仅幅度会变相位也会偏移。不同频率成分经过滤波器后延迟不一样相位变化也不一样。比如一阶低通在截止频率处的相位滞后正好是45度频率比截止频率每高十倍相位滞后就趋近90度。一阶高通则相反在截止频率处相位超前45度低频段趋近90度。如果信号里同时包含多个频率成分滤波器对不同频率的相位偏移不同输出波形就会“变形”。这在方波、脉冲这类边沿陡峭的信号里特别明显你能看到边沿变缓、过冲甚至振铃。所以有些场景下不光要选幅频特性合适的滤波器还要考虑相位特性贝塞尔滤波器就是用稍差一点的幅频陡峭度换来了更线性的相位响应。2. 一阶RC低通与高通原理和公式一次说透2.1 一个电阻一个电容就是最简单的低通滤波器一阶RC低通滤波器就两个元件一个电阻串联在信号通路里一个电容并联在输出端到地。电容有个特性电压不能突变。频率低的时候电容的容抗很大信号压降基本落在电容上输出接近输入频率高的时候容抗变小高频信号被电容旁路到地输出就小了。这个定性解释很直观但做工程一定要会算。传递函数是H(jω) 1 / (1 jωRC)幅度是 |H(jω)| 1 / sqrt(1 (ωRC)²)当ω 1/(RC)时幅度正好等于1/sqrt(2)也就是-3dB点。所以截止频率fc 1 / (2πRC)这个公式是模电里最常用的公式之一必须记熟。实际设计例子想要一个截止频率100Hz的RC低通取R 10kΩ那么C 1 / (2π × 10k × 100) ≈ 159nF。这个值落在常用电容范围里可以用150nF或者330nF并联修正工程上取近似值也够用。2.2 高通滤波器就是把R和C换个位置一阶RC高通滤波器则是电容串联在信号通路里电阻并联在输出端到地。电容串联的物理意义是隔直流通交流。频率越低容抗越大低频信号被电容挡住频率越高容抗越小信号顺利通过电阻产生输出。传递函数是H(jω) jωRC / (1 jωRC)截止频率计算公式跟低通完全一样也是fc 1/(2πRC)。高通滤波器在音频领域最常见的用法就是去掉信号里的直流偏置和次声波分量。比如麦克风信号里可能叠了一个几伏的直流偏置如果不做隔直处理后级放大器会被推到饱和这时候在输入端串一个电容就能解决。2.3 低通和高通的频率响应对照一个关键点一阶RC低通和一阶RC高通的幅频响应曲线是关于fc对称的。在fc处幅度都是-3dB低通的相位滞后45度高通的相位超前45度。实际测量时可以用信号发生器加示波器验证输入正弦波改变频率测输出幅度记录每个频率点的增益用对数坐标画出来就是一条斜率-20dB/decade的曲线。一阶RC滤波器优点结构简单、无源、便宜、不会引入额外噪声。缺点也很明显衰减斜率只有-20dB/decade过渡带太宽而且带负载能力差。如果你在后面接一个低阻抗负载相当于和滤波电容并联了一个电阻截止频率会偏移滤波效果直接变差。这是很多人搭完电路发现频率点对不上的最常见原因。3. 二阶有源滤波器从计算到仿真的完整流程3.1 为什么必须上二阶甚至更高阶前文提到一阶滤波器衰减太慢实际工作中经常要求“100Hz以内正常通过1kHz以上至少衰减40dB”。一阶做不到因为100Hz到1kHz是10倍频程只能衰减20dB。二阶能衰减40dB刚好达标。二阶滤波器最简单的实现方式是无源LC滤波电感和电容谐振形成更陡的衰减特性但电感体积大、有寄生电阻、成本高而且低频段需要的电感值非常大很不实用。所以在低频段几赫兹到几百千赫兹有源RC滤波器是主流方案。有源滤波器的核心结构是Sallen-Key拓扑也叫压控电压源滤波器。它由一个运算放大器做缓冲配合电阻电容网络实现二阶传递函数。运放的作用是隔离负载让RC网络不受后级阻抗影响同时提供增益。3.2 Sallen-Key二阶低通设计步骤Sallen-Key二阶低通的典型结构输入经过R1到达A点A点通过R2接到运放同相输入端C1从A点到地C2从运放同相输入端到输出端或者到地不同接法略有差异。这里我用最常见的单位增益结构运放接成电压跟随器。传递函数形式H(s) ω0² / (s² (ω0/Q)s ω0²)其中ω0是自然角频率Q是品质因数。Q值决定了滤波器在截止频率附近的幅频特性形状。设计时最常用的方法是“等电阻设计法”取R1 R2 R然后根据目标Q值确定两个电容的比例。公式如下C1 2Q × C C2 C / (2Q)这个时候自然频率是f0 1 / (2πRC)对于巴特沃斯响应Q 0.707所以C1 1.414CC2 0.707C。举个例子设计一个截止频率1kHz的巴特沃斯二阶低通。取R 10kΩC 1 / (2π × 10k × 1k) ≈ 15.9nF。那么C1 1.414 × 15.9 ≈ 22.5nFC2 0.707 × 15.9 ≈ 11.2nF。实际取标称值C1 22nFC2 10nF并联1nF或者直接用11nF。这里有个细节要注意运放的增益带宽积必须足够高。如果截止频率在几十千赫兹以上普通运放比如LM358就不够用了建议用OP07、NE5532这类性能更好的运放或者根据带宽需求选择单位增益稳定的运放。3.3 不同响应类型的差异巴特沃斯、切比雪夫、贝塞尔同样是二阶低通Q值不同滤波器性格完全不同。巴特沃斯滤波器Q 0.707特点是通带内最大平坦没有纹波是最常用的类型。缺点是过渡带不算最陡。切比雪夫滤波器允许通带内有纹波换取更陡峭的过渡带。常用的有0.5dB纹波和0.1dB纹波版本。代价是相位特性差阶跃响应有过冲容易振铃。贝塞尔滤波器通带内相位响应最线性群延迟最平坦方波通过后形状保持得最好但过渡带衰减最平缓。适合对波形保真度要求高的场合比如脉冲信号调理。实际选型很简单音频、传感器信号一般用巴特沃斯通信系统对阻带衰减要求高可以用切比雪夫数字信号输出、脉冲信号处理用贝塞尔。3.4 用MATLAB验证设计设计完不能纸上谈兵用软件仿真验证一下频率响应很有必要。我习惯用Octave或者MATLAB写一小段脚本验证。以二阶级联低通为例% 二阶巴特沃斯低通滤波器频响 R 10e3; C 15.9e-9; w0 1 / (R * C); Q 0.707; f logspace(0, 5, 1000); s 1i * 2 * pi * f; H w0^2 ./ (s.^2 (w0/Q)*s w0^2); figure; subplot(2,1,1); semilogx(f, 20*log10(abs(H)), LineWidth, 1.5); grid on; xlabel(频率 (Hz)); ylabel(幅度 (dB)); title(二阶低通滤波器幅度响应); subplot(2,1,2); semilogx(f, angle(H)*180/pi, LineWidth, 1.5); grid on; xlabel(频率 (Hz)); ylabel(相位 (度));这里用的是连续时间传递函数直接计算频响。如果你要做离散域的数字滤波器验证就用freqz函数输入的是分子分母系数。还可以用fdatool或者filterDesigner这类图形化工具拖拖控件就能看到群延迟曲线和零极点图非常直观。4. 不同应用场景下的滤波器选型与特殊形态4.1 传感器信号调理低通滤波决定系统精度上限传感器输出信号一般频率都不高比如温度传感器、压力传感器通常几百赫兹以内。但环境里的电磁干扰、工频干扰、机械振动噪声频率范围却很宽。这时候在ADC采样之前放一个低通滤波器能显著提升信噪比。一个实测经验用单片机自带的ADC采集一个100Hz以内的压力传感器信号采样率设1kHz不做滤波的时候采集到的数据跳动幅度有几十个LSB。在ADC前面加了一个二阶巴特沃斯低通截止频率设200Hz跳动立刻降到几个LSB以内。需要注意低通滤波器的截止频率必须高于有用信号的最高频率但又要低于采样频率的一半也就是奈奎斯特频率否则会发生混叠。更严格的做法是先确定有用信号最高频率fmax再确定采样率fs然后让滤波器截止频率落在fmax和fs/2之间并且阻带衰减要足够大保证超出fs/2的噪声不会混叠回通带。4.2 高通滤波器的工程价值去直流和低频漂移高通滤波器经常被误解为“没什么用”其实在很多场景里它是救命的。心电、肌电这类生物电信号幅值只有几毫伏但电极和皮肤接触会产生直流偏置和缓慢的基线漂移。这时候一个截止频率0.05Hz到0.5Hz的高通滤波器就能把基线漂移压掉又不影响几赫兹以上的有效信号。另一个典型的应用是音频处理。演唱音频里经常会有“噗噗”的喷麦声频谱集中在低频段。在话放后面加一个截止频率80Hz左右的高通滤波器能有效去除喷麦声和低频振动噪声而且对声音本身的破坏很小。高通滤波器设计中容易被忽略的是开机瞬态电容充电过程中输出端会有一个持续时间较长的瞬态信号如果后级增益很大这个瞬态可能会造成过载。解决办法是在运放输入端加限幅二极管或者等电路稳定后再启用后级。4.3 带通滤波器与通信系统的频率选择带通滤波器在通信系统里无处不在。无线电接收机的天线接收到的是全频段的电磁波信号只有经过带通滤波器选出目标频段后级才能有效处理。比如2.4GHz的Wi-Fi接收前端会用一个2.4GHz到2.5GHz的介质带通滤波器把其他频率的强干扰全部滤除。带通滤波器可以由一个低通和一个高通级联而成高通的截止频率低于低通的截止频率两者重叠区域就形成了通带。这种结构设计灵活但缺点是元件多、损耗大而且级联后的过渡带特性需要仔细调整。LC谐振回路是另一种常用方案。并联LC谐振回路在谐振频率处阻抗最大串联LC回路在谐振频率处阻抗最小。谐振频率为f0 1 / (2π sqrt(LC))品质因数Q f0 / BW其中BW是带宽。Q值越高带宽越窄选频特性越好但插入损耗也越大对元件精度要求也越高。在射频前端设计里还会遇到带通采样定理的问题。带通信号可以用低于信号载波频率两倍的采样率进行采样只要采样率满足带通采样定理频谱不会发生混叠。但前提是采样前必须用带通滤波器把带外噪声和干扰滤干净否则比信号本身频率还要高的带外噪声会混叠到通带内直接影响信噪比。4.4 陷波滤波器带通的“反义词”陷波滤波器也叫带阻滤波器允许绝大多数频率通过只把某一个窄频段滤掉。最典型的应用是滤除50Hz工频干扰。测量心电、脑电、微弱传感器信号时50Hz的工频干扰几乎无处不在如果前级屏蔽做不好这个分量会非常明显。这时候可以用双T型陷波滤波器专门把50Hz左右的信号吃掉。双T型陷波器的设计也很简单中心频率f0 1 / (2πRC)三个电阻、三个电容组成双T网络运算放大器构成有源反馈结构可以显著提高陷波深度。实际设计中R和C必须精密匹配否则中心频率偏移陷波深度变浅。我调试的时候通常用1%精度的电阻和5%的CBB电容中心频率能控制在50Hz ± 2Hz以内。这里提醒一句陷波器不是万能的。它在滤除50Hz干扰的同时也会滤掉信号里同频率的有效成分而且Q值太高的话对附近频率的相位影响会很大可能把心电信号的ST段搞变形。所以能用屏蔽、滤波、接地解决工频干扰的场合先用硬件手段处理陷波滤波器是最后的兜底手段。5. 滤波器调试实战常见问题与排查技巧5.1 截止频率偏差大先查元件容差和负载效应搭建完滤波器发现实测截止频率和设计值差了20%以上这是很常见的问题。多数情况下不是公式用错了而是元件容差和负载效应在捣鬼。电阻电容都有精度误差常见的贴片电阻有1%和5%精度电容更离谱X5R、X7R陶瓷电容的容量可能随温度和直流偏置变化20%甚至更多。所以做滤波器选电容时优先选择C0G、NP0这类温漂小的材质或者选择精度更高的薄膜电容。负载效应是另一个大坑。无源RC滤波器输出阻抗很高如果后级输入阻抗不够大相当于跟滤波电容并联了一个电阻截止频率会明显偏移。解决办法是在滤波器后面加一个运放缓冲级或者把后级输入阻抗做到滤波电阻的10倍以上。实际调试时用信号发生器扫频、示波器测幅度是最直接的验证手段。测完之后如果发现截止频率偏了直接换电阻电容就行。我习惯把电阻做成可调电阻加固定电阻串联的结构调试时拨动可调电阻就能快速找到目标值比反复换贴片元件快得多。5.2 输出波形“变形”了注意相位和群延迟很多人在滤波器输出端看到波形形状跟输入不一样第一反应是“滤波器坏了”其实是相位响应在起作用。拿方波输入到一个二阶低通滤波器举例。方波包含丰富的三次、五次等高次谐波低通滤波器把高频谐波衰减掉输出自然就变成了圆头圆脑的波形边沿变缓。这是滤波器的固有特性不是故障。但有些场景下这种“变形”会造成实际影响。比如在闭环控制系统里反馈信号经过滤波器会引入相位延迟延迟过大可能导致系统不稳定。这时候就需要关注群延迟指标也就是不同频率成分的延迟时间一致性。贝塞尔滤波器在这方面的表现远优于切比雪夫如果你发现滤波后的信号过冲、振铃现象严重可以考虑换用贝塞尔响应。数字滤波器也有类似的坑。滑动窗口均值滤波是最简单的数字低通滤波器但它会引入(N-1)/2个采样周期的固有延迟N是窗口长度。如果窗口设得太长延迟可能超过一个控制周期系统整体稳定性会受到明显影响。测一下信号的群延迟比盯着幅频曲线看更有意义。5.3 数字滤波和模拟滤波的选边站到了数字域滤波器就是算法没有元件容差问题重复性极好。但数字滤波器也有自己的限制采样率决定了可处理信号的频率上限ADC的量化噪声、时钟抖动也会给系统带来新的噪声。做低通滤波时如果只需要滤除ADC采集数据里的高频抖动直接用一个FIR滤波器最省事。FIR滤波器是有限冲激响应天然稳定而且可以实现严格的线性相位代价是计算量大。IIR滤波器用更少的阶数就能实现更陡的衰减但相位非线性而且在定点处理器上容易出现数值稳定性问题。在信号链设计里合理的做法是模拟域用滤波器处理大动态范围的高频干扰和抗混叠数字域用滤波器处理小范围内的精细滤波。两者配合比单用任何一种都更有效。像CIC滤波器、多相滤波器这类更专门的数字滤波结构都是在特定场景下为了节省计算量或实现重采样而设计的。比如软件无线电里的抽取和插值就大量使用多相结构和CIC滤波器。初学者不用一来就啃这些先把一阶、二阶、FIR、IIR的基本特性吃透后面面对任何滤波器结构都不会怵。5.4 一张表快速选型需求场景推荐方案关键参数注意事项音频底噪滤除二阶巴特沃斯低通截止频率为信号最高频率的1.2~2倍避免过度滤除有用频段传感器ADC前抗混叠二阶或三阶低通截止频率在fmax和fs/2之间阻带衰减至少20dB以上去直流偏置一阶RC高通截止频率低于信号最低频率的1/10关注开机瞬态生物电信号去基线漂移二阶高通截止频率0.05~0.5Hz配合屏蔽处理工频干扰射频前端选频LC带通或介质滤波器带宽、插入损耗Q值过高会导致损耗增大滤除特定工频干扰双T陷波器中心频率、陷波深度元件需精密匹配数字域精细滤波FIR低通阶数、截止频率、窗函数注意群延迟和计算量最后分享一个实际体验我在一个数据采集项目里给压力传感器做信号调理最初直接用了二阶有源低通仿真完美板子回来实测却发现1kHz以上衰减只有-30dB左右离设计值差很远。查了半天发现是运放选型不对GBW只有1MHz到了几百赫兹增益就开始跌落。换上GBW 10MHz以上的运放之后实测曲线和仿真完全吻合。从那以后我设计有源滤波器第一步就是先算运放够不够用再算电阻电容。滤波器这东西看着简单但真正做好每个环节都得认真对待。