ARTICLE DETAIL

资讯详情

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

抗混叠滤波器设计:从混叠原理到工程实践

抗混叠滤波器设计:从混叠原理到工程实践 1. 从一个反直觉的现象说起采样频率够了为什么波形还是错的很多人第一次接触ADC的时候都会记住一条铁律采样频率必须大于信号最高频率的两倍。这条规则来自奈奎斯特采样定理教科书上写得清清楚楚。于是不少工程师在选型时只要看到信号带宽是10kHz就选一个25kHz以上的ADC采样率觉得万事大吉。结果板子打回来一测输入一个干净的10kHz正弦波采出来的数据做FFT一看频谱上莫名其妙多出一堆低频成分波形像被什么东西啃过一样。这个问题困扰过我很长时间。后来才明白采样定理成立有一个隐含前提进入ADC输入端的信号其带宽必须严格限制在奈奎斯特频率以内。换句话说采样定理管的是“采样”这个动作本身不丢信息但它管不了“什么东西进入了采样器”。如果输入信号里混入了高于奈奎斯特频率的成分这些高频成分在采样后会“折叠”到低频区域和真实信号叠加在一起再也分不开了。这个现象就叫混叠。抗混叠滤波器就是干这件事的在信号进入ADC之前把高于奈奎斯特频率的成分砍掉保证采样器看到的信号是“干净”的。它看起来只是一个小小的模拟前端电路但如果你忽略它后面所有的数字处理、算法补偿、校准全都建立在错误的数据之上。这篇文章会从混叠的物理本质讲起拆解抗混叠滤波器的设计逻辑给出可落地的参数计算和电路方案并分享我在实际项目中踩过的几个坑。无论你是刚接触ADC的嵌入式新手还是正在调试高精度采集系统的老手应该都能从中找到对自己有用的东西。2. 混叠到底是怎么发生的时域和频域的双重解释2.1 时域视角采样点的“欺骗性”先从时域直观理解。假设你有一个ADC采样率是1kHz也就是每1毫秒采一个点。现在输入端有两个信号一个是900Hz的正弦波另一个是100Hz的正弦波。这两个信号在1kHz采样率下采出来的离散序列会是什么样900Hz信号在每个采样周期内相位变化了0.9个周期采出来的点看起来像是在缓慢地“倒退”因为900Hz距离采样率1kHz只差100Hz。而100Hz信号在每个采样周期内相位变化0.1个周期采出来的点看起来像是在缓慢地“前进”。如果你只看采样后的离散数据这两个信号产生的序列在数学上完全无法区分——它们折叠到了同一个频率位置。这就是混叠的核心采样后频率f和频率(fs - f)会产生完全相同的离散序列。其中fs是采样率。900Hz和100Hz在1kHz采样率下就是一对混叠频率。你无法从采样数据中判断到底是900Hz还是100Hz因为两者产生的采样点一模一样。更一般地所有频率f n×fsn为整数都会混叠到同一个低频位置。这意味着如果输入端存在1.9kHz、2.9kHz、3.9kHz等频率成分它们都会折叠到100Hz附近和真实的100Hz信号叠加。你采到的100Hz可能包含了五个不同频率成分的贡献而且无法分离。2.2 频域视角频谱的周期性延拓与重叠从频域看更清楚。理想采样在频域上等价于把原始信号的频谱以采样频率fs为周期进行延拓。如果原始信号的最高频率fmax小于fs/2那么延拓后的频谱各周期之间不会重叠原始频谱可以被完整恢复。但如果fmax大于fs/2延拓后的频谱就会发生重叠高频部分“侵入”了低频区域这就是混叠。奈奎斯特频率fs/2是一条分界线。低于它的成分是“安全”的高于它的成分会折叠回来。抗混叠滤波器的任务就是在采样之前把高于fs/2的成分衰减到足够小让折叠回来的能量低到不影响测量精度。这里有一个容易被忽略的细节抗混叠滤波器不是把高频成分完全消除而是把它衰减到系统可接受的水平。完全消除在物理上不可能因为任何实际滤波器都有过渡带。关键是衰减多少才够。这取决于你的ADC位数和系统对精度的要求。一个12位ADC的理论信噪比大约是74dB如果混叠回来的高频能量比信号低80dB以上那它就被淹没在量化噪声里了可以认为不影响结果。所以抗混叠滤波器的阻带衰减目标通常要参考ADC的位数和系统噪声预算来定。2.3 一个容易混淆的概念抗混叠滤波器和普通低通滤波器的区别很多人会说抗混叠滤波器不就是低通滤波器吗这话对了一半。它确实是一个低通滤波器但它的设计约束和普通低通滤波器有本质区别。普通低通滤波器比如音频电路里用来去掉高频噪声的RC电路关注的是通带内的平坦度和截止频率附近的衰减斜率。而抗混叠滤波器的核心约束是在奈奎斯特频率处必须达到足够的衰减量。这个衰减量是硬指标由ADC位数和系统精度决定。截止频率可以比奈奎斯特频率低很多但过渡带必须覆盖从通带边缘到奈奎斯特频率之间的区域并在这个区域内把衰减拉到目标值。换句话说普通低通滤波器关心“我想要的频率能不能通过”抗混叠滤波器关心“我不想要的频率在奈奎斯特频率处被压得够不够低”。两者的设计出发点不同选型时的参数优先级也不同。3. 抗混叠滤波器的关键参数怎么定从ADC位数倒推衰减量3.1 阻带衰减目标的计算方法设计抗混叠滤波器的第一步不是选电容电阻而是确定阻带衰减目标。这个目标由ADC的有效位数决定。一个N位ADC的理论量化信噪比约为6.02N 1.76 dB。对于12位ADC这个值是74dB对于16位ADC是98dB对于24位ADC是146dB。如果混叠回来的高频能量比满量程低A dB而ADC的量化噪声底是SNR dB那么当A大于SNR时混叠能量就被量化噪声淹没了。所以阻带衰减目标至少应该等于ADC的信噪比。实际工程中为了留余量通常会再加6到10dB。举个例子一个16位ADC理论SNR约98dB。如果系统要求有效位数达到14位那么实际SNR约86dB。抗混叠滤波器的阻带衰减目标可以定在90dB以上。这意味着在奈奎斯特频率处滤波器对高频成分的衰减要达到90dB也就是把高频能量压到原来的约三万分之一。这个数字听起来很吓人但实际设计中只要过渡带留得够宽用二阶或四阶有源滤波器就能做到。关键是要把截止频率设得足够低让奈奎斯特频率落在阻带深处。3.2 截止频率和过渡带的权衡截止频率的选择是一个权衡。截止频率越低奈奎斯特频率处的衰减越大但通带宽度也越窄。如果你的信号带宽是10kHz奈奎斯特频率是25kHz那么滤波器需要在10kHz以内保持平坦在25kHz处达到目标衰减。过渡带就是10kHz到25kHz这15kHz。过渡带越窄需要的滤波器阶数越高。一阶RC滤波器的过渡带是-20dB/十倍频程从10kHz到25kHz只有约0.4个十倍频程衰减量只有约8dB远远不够。二阶滤波器是-40dB/十倍频程衰减约16dB也不够。要在一个较窄的过渡带内达到90dB衰减可能需要六阶甚至八阶滤波器。实际工程中更常见的做法是过采样。如果ADC的采样率远高于信号带宽奈奎斯特频率就远高于信号最高频率过渡带变得很宽低阶滤波器就能满足要求。比如信号带宽10kHz采样率1MHz奈奎斯特频率是500kHz。过渡带从10kHz到500kHz接近1.7个十倍频程。一个二阶巴特沃斯滤波器在这个过渡带内可以轻松达到60dB以上的衰减如果再加一级RC就能到80dB以上。过采样的代价是数据量增大但对现代ADC和处理器来说这通常不是问题。而且过采样还能带来额外的信噪比提升因为量化噪声被分散到了更宽的频带内后续数字滤波可以进一步压低带内噪声。3.3 滤波器类型的选择巴特沃斯、切比雪夫还是贝塞尔确定了阶数和截止频率之后还要选滤波器类型。常见的三种巴特沃斯通带最平坦过渡带衰减斜率适中相位非线性中等。适合对通带平坦度要求高、对相位失真不太敏感的场景比如一般的数据采集。切比雪夫过渡带衰减更陡但通带有纹波相位非线性也更严重。适合过渡带很窄、需要快速衰减的场景比如信号带宽接近奈奎斯特频率的情况。贝塞尔相位线性度最好群延迟最平坦但过渡带衰减最慢。适合对波形形状保真度要求高的场景比如脉冲信号采集或音频。对于大多数抗混叠应用巴特沃斯是最稳妥的选择。它的通带平坦度好设计公式成熟相位失真在可接受范围内。如果过渡带特别窄可以考虑切比雪夫但要接受通带纹波对幅度精度的影响。贝塞尔在抗混叠场景中用得相对少因为它的衰减斜率太缓要达到目标衰减需要很高阶数。4. 从理论到电路一阶RC、二阶有源和集成滤波器的实操对比4.1 一阶RC抗混叠什么时候够用什么时候不够一阶RC是最简单的抗混叠电路一个电阻加一个电容就搞定。截止频率fc 1/(2πRC)。在奈奎斯特频率fN处衰减量为20log10(fN/fc) dB假设fN远大于fc。假设信号带宽1kHz采样率10kHz奈奎斯特频率5kHz。如果截止频率设为1kHz那么在5kHz处的衰减是20log10(5) ≈ 14dB。这对于8位ADCSNR约50dB来说远远不够。但如果采样率提高到100kHz奈奎斯特频率50kHz截止频率仍为1kHz衰减变成20log10(50) ≈ 34dB。对于8位ADC勉强够用对于12位ADCSNR约74dB还是不够。一阶RC的适用场景很有限低位数ADC、过采样率很高、或者信号本身高频成分很少的情况。它的优点是简单、便宜、无源、不引入额外噪声。缺点是衰减斜率太缓过渡带利用率低。注意一阶RC的截止频率不能设得太低否则会衰减通带内的信号。如果信号带宽是1kHz截止频率设1kHz那么在1kHz处信号已经衰减了3dB。如果对幅度精度要求高截止频率至少要设在信号带宽的3到5倍以上但这又会让奈奎斯特频率处的衰减更不够。这是一个死循环所以一阶RC很少单独用作抗混叠。4.2 二阶有源滤波器最常用的折中方案二阶有源滤波器是抗混叠设计中最常见的方案。用运放加RC网络实现常见拓扑有Sallen-Key和多重反馈MFB两种。Sallen-Key结构简单增益容易设置但对运放带宽要求较高MFB结构对运放要求低但反相输出增益设置稍复杂。以Sallen-Key巴特沃斯二阶滤波器为例设计步骤如下确定截止频率fc和品质因数Q。巴特沃斯二阶的Q 0.707。选择电容C1和C2通常取C1 2×C2或者根据标准表格选取。计算电阻R1和R2R1 1/(2πfc×Q×C1)R2 Q/(2πfc×C2)。选择运放要求增益带宽积至少为100×fc×Q压摆率满足信号幅度要求。实际设计中电容值通常先选定因为电容的标称值种类比电阻少。比如选C1 10nFC2 4.7nF然后根据截止频率反算电阻值。电阻值尽量选在1kΩ到100kΩ之间太小会加载前级太大会引入热噪声。二阶巴特沃斯在奈奎斯特频率处的衰减取决于fN/fc的比值。如果fN/fc 10衰减约40dB如果fN/fc 100衰减约80dB。所以只要过采样率足够高二阶滤波器就能满足大多数12到16位ADC的需求。4.3 集成抗混叠滤波器芯片省事但有代价市面上有一些集成抗混叠滤波器芯片比如专门为ADC前端设计的滤波模块。它们把运放和RC网络集成在一起有的还带可编程截止频率。优点是省去了分立设计的麻烦参数一致性好温漂小。缺点是灵活性差截止频率和阶数固定而且价格通常比分立方案高。我在一个工业采集项目中使用过某款集成滤波器它的截止频率是固定的10kHz阻带衰减在100kHz处约60dB。对于那个项目来说刚好够用但如果信号带宽变成5kHz或者20kHz就不合适了。所以集成方案适合需求明确、批量大的产品不适合需要灵活调整的研发阶段。4.4 无源LC滤波器高频场景的备选在射频或高频采集场景中运放有源滤波器可能带宽不够或者噪声太大这时候可以考虑无源LC滤波器。LC滤波器的衰减斜率比RC陡因为电感和电容都是电抗元件二阶LC的衰减是-40dB/十倍频程。但电感有直流电阻和寄生电容高频时可能谐振设计时需要仔细选型。LC滤波器适合信号频率在MHz以上的场景比如通信接收机的中频采集。在低频场景中电感体积大、成本高不如有源方案划算。5. 实测中那些教科书不会告诉你的坑5.1 运放带宽不够导致的“假滤波”我遇到过一个问题设计了一个二阶巴特沃斯抗混叠滤波器截止频率10kHz理论计算在100kHz处应该有40dB衰减。但实测发现100kHz处的衰减只有20dB左右。排查了很久最后发现是运放的增益带宽积不够。运放不是理想器件它的开环增益随频率下降。如果运放的增益带宽积只有1MHz在100kHz处的开环增益只有10倍20dB闭环增益虽然设定为1倍但运放已经没有足够的环路增益来维持滤波特性了。滤波器的衰减斜率在运放带宽不足时会变缓甚至完全失效。选运放时增益带宽积至少要是截止频率的100倍最好200倍以上。对于10kHz截止频率选1MHz以上增益带宽积的运放。如果截止频率是100kHz就要选10MHz以上的。这个参数在运放数据手册第一页就能看到但很多人设计时只看失调电压和噪声忽略了带宽。5.2 电容材质对滤波特性的影响抗混叠滤波器中的电容不能随便选。不同材质的电容频率特性差异很大。C0G/NP0陶瓷电容温度系数极小频率特性稳定适合做滤波器。但容量通常较小一般不超过100nF。X7R陶瓷电容容量大但温度系数大而且有压电效应容量随电压变化。用在滤波器里会导致截止频率漂移。电解电容容量大但等效串联电阻和等效串联电感都大高频特性差不适合做滤波器。薄膜电容频率特性好温度稳定但体积大、价格高。适合高精度场景。我在一个项目中用了X7R电容做抗混叠滤波器常温下测试没问题但到了高温环境截止频率偏移了将近20%导致奈奎斯特频率处的衰减不够混叠噪声明显增大。后来换成C0G电容问题解决。所以滤波器中的电容优先选C0G或薄膜电容不要用X7R或电解电容。5.3 PCB布局引入的寄生耦合即使滤波器设计正确、器件选对PCB布局不好也会让抗混叠效果大打折扣。最常见的问题是高频信号通过寄生电容耦合到滤波器输出端绕过了滤波器。比如ADC的输入走线和某个高频时钟走线平行走了一段时钟信号通过走线间的寄生电容耦合到了ADC输入端。这个耦合路径完全绕过了抗混叠滤波器高频能量直接进入ADC产生混叠。避免这个问题的方法滤波器尽量靠近ADC输入端减少滤波器输出到ADC之间的走线长度高频走线远离模拟输入走线必要时加地线隔离ADC输入端加一个小的RC滤波比如100Ω加1nF进一步抑制高频耦合。5.4 过采样带来的“虚假安全感”过采样确实能放宽抗混叠滤波器的要求但前提是过采样后的数据经过了正确的数字滤波。如果ADC以1MHz采样但后续数字处理只取了每100个点中的一个那等效采样率还是10kHz奈奎斯特频率还是5kHz抗混叠滤波器仍然需要在5kHz处提供足够衰减。正确的做法是ADC以高采样率采集然后通过数字低通滤波器比如CIC滤波器或FIR滤波器把带宽限制到信号带宽再抽取。这样奈奎斯特频率是500kHz抗混叠滤波器只需要在500kHz处提供衰减过渡带很宽低阶模拟滤波器就够用。如果抽取前没有数字滤波或者数字滤波器的截止频率设得太高混叠仍然会发生。过采样不是万能的它只是把抗混叠的压力从模拟域转移到了数字域。6. 不同应用场景下的抗混叠策略选择6.1 音频采集过采样加简单RC就够了音频信号带宽20kHz但现代音频ADC的采样率通常是48kHz、96kHz甚至192kHz。以192kHz为例奈奎斯特频率96kHz过渡带从20kHz到96kHz接近2.3个十倍频程。一个一阶RC滤波器截止频率设在30kHz在96kHz处的衰减约10dB。对于16位音频ADCSNR约98dB10dB远远不够。但音频ADC内部通常已经集成了数字抗混叠滤波器而且采用了过采样架构比如Sigma-Delta模拟前端只需要一个简单的RC滤波器抑制射频干扰即可。所以音频场景中外部抗混叠滤波器的要求很低一个RC就够了。6.2 工业数据采集二阶或四阶有源滤波器是标配工业场景中信号带宽通常在1kHz到100kHz之间ADC位数12到16位采样率几十kHz到几百kHz。这种情况下过采样率通常不高抗混叠滤波器需要承担主要责任。以16位ADC、信号带宽10kHz、采样率100kHz为例奈奎斯特频率50kHz过渡带从10kHz到50kHz。要在50kHz处达到90dB衰减二阶滤波器需要fN/fc 10^(90/40) ≈ 178即截止频率要设在50kHz/178 ≈ 280Hz。但信号带宽是10kHz截止频率280Hz会把信号也衰减掉。所以二阶不够需要四阶甚至六阶。实际工程中通常会提高采样率到500kHz或1MHz把奈奎斯特频率推到250kHz或500kHz这样二阶滤波器就能满足要求。这也是为什么很多工业采集卡标称采样率很高但实际信号带宽只有几十kHz——高采样率主要是为了放宽抗混叠滤波器的设计难度。6.3 振动和冲击信号采集关注相位失真振动信号通常包含丰富的频率成分而且对相位信息敏感因为相位关系到模态分析的结果。这种情况下抗混叠滤波器要优先考虑相位线性度贝塞尔滤波器比巴特沃斯更合适。贝塞尔滤波器的群延迟最平坦不同频率成分的延迟一致波形保真度好。但它的衰减斜率慢需要更高阶数才能达到目标衰减。实际设计中可以用高阶贝塞尔或者用巴特沃斯加数字相位补偿。另外振动信号的带宽可能很宽比如从几Hz到几十kHz。抗混叠滤波器的通带要覆盖整个信号带宽截止频率不能设得太低。这时候过采样几乎是必须的否则模拟滤波器很难在宽通带和陡衰减之间取得平衡。6.4 电力参数测量工频干扰与混叠的叠加电力参数测量中信号基波是50Hz或60Hz但包含大量谐波通常到几十次谐波也就是几kHz。同时现场存在很强的工频干扰和开关噪声。抗混叠滤波器不仅要抑制高频混叠还要考虑对工频及其谐波的抑制。如果采样率是10kHz奈奎斯特频率5kHz那么5kHz以上的谐波会混叠到低频影响基波测量。但电力信号本身的高次谐波可能到2.5kHz50次所以过渡带从2.5kHz到5kHz很窄。这种情况下通常会用更高的采样率比如25.6kHz或51.2kHz把奈奎斯特频率推到12.8kHz或25.6kHz过渡带变宽滤波器设计容易很多。电力测量中还有一个特殊问题ADC输入端通常有互感器或分流器这些传感器本身有带宽限制可能起到部分抗混叠作用。但传感器的带宽通常不够陡不能替代专门的抗混叠滤波器。7. 一个完整的抗混叠滤波器设计实例7.1 需求定义与参数计算假设我们要设计一个振动信号采集前端指标如下信号带宽0到5kHzADC16位采样率50kHz目标有效位数14位SNR约86dB阻带衰减目标90dB以上奈奎斯特频率是25kHz。过渡带从5kHz到25kHz比值5。如果用过采样把采样率提高到200kHz奈奎斯特频率变成100kHz过渡带从5kHz到100kHz比值20。选择二阶巴特沃斯滤波器截止频率设在8kHz留出通带余量5kHz处衰减小于1dB。在100kHz处fN/fc 12.5二阶巴特沃斯衰减约40log10(12.5) ≈ 44dB。不够90dB。改用四阶巴特沃斯由两级二阶级联。在100kHz处衰减约80log10(12.5) ≈ 88dB接近90dB。如果截止频率降到6kHzfN/fc 16.7衰减约80log10(16.7) ≈ 98dB满足要求。但6kHz截止频率在5kHz处衰减约1.5dB需要确认系统能否接受。最终选择四阶巴特沃斯截止频率7kHz两级Sallen-Key级联。在5kHz处衰减约0.8dB在100kHz处衰减约92dB。7.2 电路实现与器件选型每级Sallen-Key巴特沃斯二阶滤波器Q 0.707。第一级和第二级的Q值相同但为了得到四阶巴特沃斯响应两级Q值应该不同第一级Q 0.541第二级Q 1.306。这是四阶巴特沃斯的标准Q值分配。运放选择截止频率7kHz增益带宽积至少700kHz选10MHz以上的运放。推荐低噪声、低失调的精密运放比如OPA2188或AD8629。电容选C0G陶瓷容值10nF和4.7nF。电阻用1%精度金属膜电阻。7.3 实测验证与调试电路搭好后用信号发生器输入不同频率的正弦波测量输出幅度绘制幅频响应曲线。重点检查通带内0到5kHz平坦度是否在±0.5dB以内截止频率附近7kHz衰减是否约3dB奈奎斯特频率附近100kHz衰减是否达到90dB如果实测衰减不够检查运放带宽是否足够、电容材质是否正确、PCB布局是否有高频耦合。如果通带衰减太大检查电阻电容的实际值是否与标称值偏差过大。调试时可以用网络分析仪或者带扫频功能的信号发生器加示波器。如果没有专业设备可以用ADC采集不同频率的正弦波做FFT看幅度变化但精度受ADC本身限制。8. 几个常见误区的澄清8.1 “采样率够高就不需要抗混叠滤波器”这是最常见的误区。采样率高只是把奈奎斯特频率推高了但如果输入端有高于奈奎斯特频率的成分混叠仍然会发生。比如采样率1MHz奈奎斯特频率500kHz如果输入端有800kHz的干扰它会混叠到200kHz落在信号带内。所以只要存在高频干扰就需要抗混叠滤波器不管采样率多高。8.2 “数字滤波可以替代模拟抗混叠”数字滤波只能在采样之后进行而混叠发生在采样瞬间。一旦高频成分混叠到低频数字滤波无法把它们和真实信号分开。所以数字滤波不能替代模拟抗混叠它只能作为模拟滤波的补充进一步压低带外噪声。8.3 “抗混叠滤波器截止频率越低越好”截止频率太低会衰减通带内的信号导致幅度测量不准。而且截止频率越低滤波器阶数要求越高成本和复杂度都增加。正确的做法是根据信号带宽和奈奎斯特频率在满足阻带衰减的前提下尽量把截止频率设高保证通带平坦。8.4 “滤波器阶数越高越好”高阶滤波器确实衰减更陡但也会引入更大的相位失真、更多的噪声和更高的成本。而且高阶滤波器对器件容差更敏感调试更困难。实际设计中应该优先考虑提高采样率来放宽过渡带而不是一味增加阶数。9. 写在最后一些个人经验抗混叠滤波器的设计理论计算只是起点真正的功夫在器件选型和PCB布局上。我见过太多案例仿真完美实测一塌糊涂问题往往出在运放带宽不够、电容材质不对、或者高频耦合绕过了滤波器。我的习惯是在PCB打样之前先用面包板或洞洞板搭一个滤波器原型用信号发生器扫频测一下实际幅频响应。虽然面包板的寄生参数和正式PCB不同但至少能验证运放带宽和电容材质是否合适。如果面包板上衰减就不够正式PCB上也不会好。另外ADC输入端加一个小的RC滤波比如100Ω加1nF截止频率约1.6MHz对抑制高频耦合非常有效。这个RC的截止频率远高于信号带宽不影响正常采集但能把高频干扰挡在ADC外面。成本几乎为零效果立竿见影。最后如果你不确定抗混叠滤波器需要多少阶宁可多留一级。多一级滤波器最多是成本增加一点调试麻烦一点少一级滤波器混叠噪声一旦出现整个系统的精度就废了而且很难通过后期处理补救。在抗混叠这件事上保守一点不会错。
返回列表