资讯动态

采样定理工程实战:从混叠原理到抗混叠滤波器设计

发布时间:2026/10/27 9:21:04 来源:尧图企业网站定制
采样定理这四个字我在刚入行做音频采集和嵌入式信号处理那会儿吃了不少亏。当时以为采样率只要比信号频率高就行结果做出来的板子底噪大、高频失真折腾了整整两周才发现是抗混叠滤波器没设计好高频成分折叠回来变成了听感上的“沙沙声”。所以这篇内容我不打算照本宣科地讲公式而是把采样定理从“课本概念”拉回到“实际工程”里聊聊采样率怎么定、混叠到底怎么来的、抗混叠滤波器为什么绕不开、信号重建又该怎么落地。不管你是做音频编解码、嵌入式ADC采集、还是单纯想搞明白为什么44.1kHz会成为CD标准这篇都能给你一套能直接抄作业的思路。1. 采样定理到底在解决什么问题1.1 从连续世界到离散世界的“翻译规则”我们生活的世界是连续的声音、温度、电压、振动这些物理量在时间轴上都是连续变化的。但计算机、单片机、DSP这些数字系统只认离散的点它们没法直接处理一条连续的曲线。采样定理本质上就是一套“翻译规则”它告诉我们一个连续信号到底要采多密才能被离散点完整地表示出来并且在重建时不丢失信息。这个规则的核心结论是如果一个信号的最高频率成分不超过 f_max那么只要采样率 f_s 大于 2 倍的 f_max理论上就可以从采样点无失真地恢复原始信号。这里的 2 倍关系就是 Nyquist 条件f_s/2 被称为 Nyquist 频率。很多人只记住了“2倍”却忽略了前提条件——信号必须是带限的也就是说高于 f_s/2 的频率成分必须已经被滤掉。这个前提在实际工程里才是真正的难点。我见过太多人把采样定理当成一个“采样率够高就行”的简单规则结果在ADC前端省掉了抗混叠滤波器最后被混叠失真教做人。采样定理不是只讲采样它其实包含三个环节采样前的带限处理、采样过程本身、以及采样后的重建。三个环节缺一不可任何一个环节偷懒整个链路都会出问题。1.2 为什么“2倍”不是随便定的Nyquist 条件里的 2 倍关系来源其实很直观。想象一个正弦波如果你每个周期只采两个点而且这两个点刚好落在正峰值和负峰值上那你还能勉强看出它的频率。但如果采样点稍微偏移一点或者信号频率再高一点你采到的点就会“看起来像”一个更低频率的波形。这就是混叠的本质高频信号在采样后伪装成了低频信号。用数学语言说采样会在频域上把原始频谱以 f_s 为周期进行搬移和叠加。如果原始信号的最高频率超过 f_s/2那么搬移后的频谱就会发生重叠重叠部分再也无法分离。所以 2 倍不是经验值而是频谱不重叠的临界条件。实际工程里我们通常不会刚好取 2 倍而是留出足够的余量原因后面会细说。这里有个容易混淆的点Nyquist 频率是 f_s/2而 Nyquist 率有时候指 f_s。我在看资料时经常看到有人把这两个概念混用导致计算时差了一倍。记住一点你能无混叠表示的最高信号频率是采样率的一半不是采样率本身。1.3 采样定理的适用边界与常见误解采样定理有一个非常强的前提信号必须是严格带限的。现实中的信号几乎都不是严格带限的比如方波理论上包含无穷多次谐波音频信号里也总有超出我们关注范围的高频噪声。所以实际做法是先用一个低通滤波器把 f_s/2 以上的成分压下去让信号“近似带限”然后再采样。这个滤波器就是抗混叠滤波器它的性能直接决定了采样系统的有效精度。另一个常见误解是“采样率越高越好”。高采样率确实能放宽抗混叠滤波器的设计难度也能降低量化噪声在带内的分布但代价是数据量、功耗和成本都会上升。做产品时要在性能和资源之间找平衡而不是无脑堆采样率。比如音频领域 44.1kHz 和 48kHz 的长期并存背后就是历史兼容、存储成本和听感需求多方博弈的结果。2. 混叠采样系统里最隐蔽的坑2.1 混叠是怎么产生的一个频域视角的解释混叠这个词听起来抽象但用频域看就非常清楚。假设你有一个 1kHz 的正弦信号采样率是 8kHz那么采样后的频谱会在 8kHz 的整数倍位置出现镜像。1kHz 的镜像会出现在 7kHz、9kHz、15kHz 等位置。这些镜像如果落在 0 到 4kHz 的 Nyquist 区间内就会和原始信号混在一起。现在换一个场景信号是 5kHz采样率还是 8kHz。5kHz 超过了 Nyquist 频率 4kHz采样后它不会老老实实待在 5kHz而是会折叠到 8kHz - 5kHz 3kHz 的位置。你从采样数据里看到的是一个 3kHz 的信号但实际输入是 5kHz。更麻烦的是如果同时存在 3kHz 的真实信号你根本无法从数据里区分哪个是原始的、哪个是折叠来的。这就是混叠最致命的地方它是不可逆的信息破坏。我在做音频采集时遇到过一次典型混叠麦克风前端没有加抗混叠滤波环境中存在 20kHz 以上的超声噪声采样率设成 32kHz结果超声成分折叠到 12kHz 附近听感上就是一层尖锐的嘶声。后来加了二阶巴特沃斯低通截止频率设在 14kHz 左右问题才消失。2.2 混叠失真的听感与数据表现混叠在不同应用里的表现形式不一样。音频领域里混叠通常表现为高频段出现非谐波的“金属感”或“沙沙声”尤其是处理高频丰富的乐器如镲片、小提琴时特别明显。在振动监测里混叠会让高频振动伪装成低频振动导致故障诊断误判。在电力信号采集里混叠可能让高次谐波折叠到基波附近影响电能质量分析。从数据上看混叠失真的特点是它不会表现为随机噪声而是表现为与输入信号相关的确定性失真。你改变采样率混叠频率会跟着变你改变输入频率混叠频率也会跟着变。这个特性可以用来判断问题如果某个异常频率随采样率变化而移动那基本可以确定是混叠。2.3 抗混叠滤波器混叠的“守门人”抗混叠滤波器的任务很简单在采样之前把 f_s/2 以上的频率成分衰减到足够低让它们折叠回来后不至于影响有用信号。但做起来并不简单因为理想低通滤波器在物理上不可实现实际滤波器都有一个过渡带过渡带内衰减是渐变的。这就带来一个设计矛盾如果截止频率设得太靠近 f_s/2过渡带就会侵入有用信号频段如果设得太低又会损失有用信号的高频部分。解决办法通常是提高采样率让 f_s/2 远离有用信号最高频率给滤波器留出足够的过渡带。比如音频信号有用频段到 20kHz如果采样率是 44.1kHzNyquist 频率是 22.05kHz过渡带只有 2.05kHz对滤波器阶数要求很高如果采样率提到 96kHzNyquist 频率是 48kHz过渡带就有 28kHz滤波器设计就宽松多了。滤波器类型的选择也有讲究。巴特沃斯滤波器通带最平坦但过渡带较缓切比雪夫滤波器过渡带更陡但通带有纹波贝塞尔滤波器相位线性好适合对相位敏感的应用。我一般先用巴特沃斯做原型如果阶数太高再考虑切比雪夫。阶数方面二阶是最低要求四阶或六阶在要求高的场合更常见。3. 采样率怎么定从需求反推参数3.1 从信号带宽出发确定最低采样率定采样率的第一步永远是搞清楚信号的有用带宽。音频领域通常取 20kHz 作为上限因为人耳听觉范围大概到 20kHz。但如果你做的是超声检测有用信号可能在 100kHz 以上那采样率就要相应提高。工业振动监测里如果关注的是轴承故障特征频率可能只需要到几 kHz但如果要做冲击脉冲分析带宽就要到几十 kHz。确定有用带宽后采样率的最低值是 2 倍带宽但实际取值要留余量。我的经验是至少留 20% 到 50% 的余量也就是采样率取有用带宽的 2.4 到 3 倍。这样做的原因是给抗混叠滤波器留过渡带同时降低对滤波器阶数的要求。比如有用带宽 20kHz采样率可以取 48kHz 或 50kHz而不是刚好 40kHz。还有一个容易被忽略的点采样率不一定要是信号频率的整数倍。很多人以为整数倍关系能减少误差其实对于非周期信号整数倍关系反而可能让某些频率成分落在不利位置。当然如果做的是锁相采集或需要同步采样那另当别论。3.2 过采样用采样率换滤波器复杂度过采样是我在实际项目里最常用的策略之一。它的核心思想是让采样率远高于 Nyquist 要求这样 f_s/2 远离有用信号抗混叠滤波器的过渡带非常宽用简单的低阶滤波器就能满足要求。过采样还有一个额外好处量化噪声会分布在更宽的频带上带内噪声密度降低等效提高了信噪比。举个例子假设有用信号带宽 10kHz如果采样率取 25kHzNyquist 频率 12.5kHz过渡带只有 2.5kHz需要四阶以上滤波器如果采样率取 100kHzNyquist 频率 50kHz过渡带 40kHz一个简单的二阶滤波器就够了。虽然数据量增加了 4 倍但模拟前端的设计难度大幅下降整体成本可能反而更低。过采样的代价是数据处理量和存储量增加。在嵌入式系统里如果MCU算力有限过采样后还需要做抽取滤波把数据率降下来。抽取滤波本身也需要计算资源所以过采样倍数不是越高越好要结合后端处理能力来定。3.3 采样率与量化位数的联合优化采样率和量化位数是ADC系统的两个核心参数它们共同决定了系统的动态范围和信噪比。理论上量化位数每增加 1 位信噪比提升约 6dB。采样率提高带来的过采样增益也能等效提升信噪比。两者之间存在一定的互换关系。在实际选型时我会先看信号动态范围需求。如果信号强弱变化很大比如音频从轻声到交响乐高潮动态范围可能超过 90dB那就需要 16 位以上的量化。如果信号幅度比较稳定比如某些传感器输出12 位可能就够用。采样率方面如果后端要做复杂算法数据率不能太高那就适当降低采样率、提高量化位数如果后端算力充足可以用高采样率加低位数再靠数字滤波提升有效位数。这里有个经验公式过采样倍数每提高 4 倍等效增加 1 位分辨率。比如一个 12 位 ADC如果过采样 16 倍等效分辨率可以接近 14 位。这个关系在低速高精度采集里非常实用可以用便宜的 ADC 实现较高的有效精度。4. 信号重建从离散点还原连续波形4.1 理想重建与 sinc 插值采样定理的另一半是重建从离散采样点恢复连续信号。理论上理想重建是用每个采样点乘以一个 sinc 函数然后把所有 sinc 函数叠加起来。sinc 函数在采样点处为 1在其他采样点处为 0这样叠加出来的波形在采样点上严格等于原始值在采样点之间则是平滑插值。但理想 sinc 插值在工程上没法直接实现因为 sinc 函数在时间上是无限延伸的需要用到所有过去和未来的采样点。实际系统里我们只能用有限长度的近似比如用多项式插值、样条插值或者简单的线性插值。线性插值实现最简单但频响特性差高频衰减明显高阶插值效果好但计算量大。在音频领域DAC 后面的重建滤波器通常是一个模拟低通滤波器它的作用是平滑阶梯波形同时滤掉采样带来的高频镜像。这个滤波器的截止频率一般设在 f_s/2 附近和抗混叠滤波器对称。如果重建滤波器没做好输出端会残留高频镜像听感上就是刺耳的高频噪声。4.2 零阶保持与阶梯波形的频谱特性大多数 DAC 输出采用的是零阶保持方式也就是在每个采样周期内保持当前值不变形成阶梯波形。阶梯波形的频谱除了原始信号外还包含采样频率及其谐波处的大量高频成分。这些高频成分如果不滤掉会干扰后续电路也可能通过扬声器或传感器产生可听或可测的干扰。零阶保持的频响有一个 sinc 衰减特性在 f_s/2 处衰减约 3.9dB这会导致高频段幅度略有下降。在对频响要求高的场合需要做反 sinc 补偿或者在数字域预先加重高频。我在做音频DAC时就遇到过这个问题后来在数字滤波器里加了一个简单的反 sinc 滤波器高频平坦度明显改善。4.3 重建滤波器的设计要点重建滤波器的设计和抗混叠滤波器类似但关注点略有不同。抗混叠滤波器更关注阻带衰减防止混叠重建滤波器更关注通带平坦度和相位线性因为它的输出直接被人耳或后续电路感知。音频重建滤波器通常用巴特沃斯或贝塞尔截止频率设在 20kHz 到 f_s/2 之间。如果采样率是 44.1kHz重建滤波器截止频率通常设在 20kHz 左右过渡带到 22.05kHz。这个过渡带很窄对模拟滤波器要求很高所以很多系统采用过采样DAC先在数字域把采样率提高到 8 倍或更高这样模拟重建滤波器的过渡带就宽多了用一个简单的二阶滤波器就能搞定。5. 抗混叠滤波器的实战设计5.1 滤波器类型选择巴特沃斯、切比雪夫还是贝塞尔选滤波器类型本质上是在通带平坦度、过渡带陡峭度和相位线性之间做取舍。巴特沃斯通带最平坦没有纹波但过渡带最缓同样衰减要求下需要更高阶数。切比雪夫过渡带更陡但通带有纹波纹波大小和阶数相关。贝塞尔相位线性最好群延迟最平坦但过渡带最缓。我的选择逻辑是这样的如果信号是音频或需要保留波形形状优先贝塞尔或巴特沃斯如果干扰频率离有用信号很近需要陡峭过渡带选切比雪夫如果对相位没要求只关心幅度切比雪夫最经济。实际项目里我用的最多的是巴特沃斯因为它的综合表现最均衡设计工具也最成熟。阶数方面二阶是入门四阶是常用六阶以上就要考虑多级级联带来的噪声和失调问题。每增加一级运放的噪声和失调都会累积所以不是阶数越高越好。我一般先用二阶或四阶如果实测混叠抑制不够再考虑提高阶数或改用更高采样率。5.2 截止频率与阶数的计算过程假设一个音频采集系统有用信号带宽 20kHz采样率 48kHz要求 24kHz 以上衰减至少 60dB。Nyquist 频率是 24kHz过渡带从 20kHz 到 24kHz只有 4kHz。用巴特沃斯滤波器归一化过渡带宽度是 4/20 0.2。查巴特沃斯衰减表60dB 衰减在 0.2 归一化频率处需要大约 8 阶。8 阶滤波器实现复杂成本高。这时候有两个选择一是提高采样率到 96kHzNyquist 频率变成 48kHz过渡带从 20kHz 到 48kHz归一化宽度 1.4同样 60dB 衰减只需要 2 阶左右。二是降低要求把阻带起点从 24kHz 提前到 22kHz过渡带 2kHz归一化 0.1阶数会更高。显然提高采样率更划算。这个计算过程说明了一个重要原则抗混叠滤波器的设计难度和采样率强相关。与其死磕高阶滤波器不如适当提高采样率用数字成本换模拟成本。现在很多ADC内置了数字滤波器可以在数字域做更陡的滤波模拟前端只需要做粗滤这也是过采样架构流行的原因。5.3 多阶运放滤波器的纹波与噪声权衡用运放搭多阶低通滤波器时纹波和噪声是两个需要重点关注的指标。纹波主要来自滤波器类型切比雪夫有通带纹波巴特沃斯和贝塞尔没有。但多级级联时如果各级Q值分配不当也可能在截止频率附近出现峰值。我一般用滤波器设计软件算出各级Q值和截止频率然后严格按值选元件。噪声方面运放本身的电压噪声和电流噪声会通过滤波器网络传递到输出。高阻值电阻会引入更大的热噪声所以电阻值不宜过大一般控制在几 kΩ 到几十 kΩ。电容选择上C0G 或 NP0 陶瓷电容温度稳定性好适合做滤波X7R 电容容量大但温度系数差不适合精密滤波。还有一个实战经验多阶滤波器的第一级噪声贡献最大因为后续级会放大它。所以第一级要选低噪声运放并且尽量提高第一级的增益让后级的噪声贡献相对减小。这个原则和接收机前端设计是一样的。6. 常见问题与排查技巧实录6.1 混叠问题速查表现象可能原因排查方法解决措施高频段出现非谐波噪声抗混叠滤波器缺失或截止频率过高改变采样率观察噪声频率是否移动加装或重新设计抗混叠滤波器信号频率测量值偏低输入信号超过 Nyquist 频率用频谱仪确认输入信号实际频率提高采样率或增加前置低通不同采样率下测量结果不一致存在混叠且混叠频率随采样率变化对比多组采样率下的频谱定位并滤除超 Nyquist 成分低频段出现异常峰值高频干扰折叠到低频检查前端屏蔽和滤波加强前端滤波和屏蔽6.2 滤波器设计中的典型错误我见过最多的错误是截止频率设得太靠近 Nyquist 频率导致过渡带不够阻带衰减不达标。比如采样率 44.1kHz有人把截止频率设到 22kHz结果 22kHz 以上衰减很慢混叠抑制只有 20dB 左右根本不够用。正确做法是截止频率设在有用带宽边缘比如 20kHz然后确保 22.05kHz 以上有足够衰减。第二个常见错误是忽略滤波器在实际电路中的寄生参数。PCB 走线的寄生电容、运放的输入电容、电阻的寄生电感都会让实际频响偏离仿真结果。我一般会在仿真时留 20% 余量打样后用网络分析仪实测再微调元件值。第三个错误是只关注幅度响应忽略相位响应。在多通道采集系统里通道间相位不一致会导致波束形成或相关分析出错。如果应用对相位敏感一定要选贝塞尔或线性相位滤波器或者做相位校准。6.3 采样系统调试的实战心得调试采样系统时我习惯先用一个纯净的正弦信号源做输入从低频到高频扫频观察输出频谱。如果发现某个频率出现异常先确认信号源本身是否干净再检查ADC前端。用示波器看时域波形也很重要混叠在时域上可能表现为波形畸变或幅度跳动。还有一个技巧故意把采样率设成信号频率的非整数倍这样混叠频率不会和信号频率重合更容易在频谱上分辨。如果采样率是信号频率的整数倍混叠可能刚好落在信号频率上反而看不出来。最后记录每次实验的采样率、滤波器参数和输入信号频率建立自己的问题库。我做了几年下来积累了几十种典型故障模式现在遇到新问题基本能快速定位。这个习惯比任何教科书都管用。7. 从采样定理到实际系统的完整链路7.1 一个音频采集系统的完整设计案例假设要设计一个音频采集系统指标是有用带宽 20Hz 到 20kHz动态范围 90dB采样率 48kHz。前端用驻极体麦克风输出幅度约 10mVpp需要放大到 ADC 输入范围。第一步是前端放大。用低噪声运放做两级放大第一级增益 20dB第二级增益 20dB总增益 40dB。第一级选低噪声运放比如等效输入噪声 5nV/√Hz 以下的型号。放大器的带宽要足够增益带宽积至少 10MHz 以上。第二步是抗混叠滤波。采样率 48kHzNyquist 频率 24kHz有用信号到 20kHz过渡带 4kHz。用四阶巴特沃斯低通截止频率 22kHz在 24kHz 处衰减约 12dB在 48kHz 处衰减约 48dB。如果要求更高可以改用八阶或提高采样率到 96kHz。第三步是ADC选型。90dB 动态范围对应至少 15 位实际选 16 位或 24 位 ADC。采样率 48kHz 以上接口用 I2S 或 SPI。如果 ADC 内置 PGA 和数字滤波器可以简化前端设计。第四步是数字处理。采样数据进 MCU 或 DSP 后先做数字滤波再做抽取或后续算法。如果做过采样数字滤波器还要负责降采样。数字滤波器的系数用工具生成注意系数量化误差对阻带衰减的影响。7.2 采样率设定的决策流程定采样率不是拍脑袋我一般按这个流程走先确定有用信号最高频率 f_max然后根据抗混叠滤波器可实现性确定过采样倍数。如果模拟滤波器能做到四阶以内满足要求采样率取 2.5 到 3 倍 f_max如果模拟滤波器实现困难采样率取 5 到 10 倍 f_max用数字滤波补足。然后看后端处理能力。如果 MCU 主频低、内存小采样率不能太高否则数据吞吐不过来。这时候要么降低采样率、提高模拟滤波器要求要么换更强的处理器。最后看成本。高采样率 ADC 通常更贵但模拟前端可以简化低采样率 ADC 便宜但模拟前端复杂。综合算下来往往过采样架构的总成本更低。7.3 采样定理在非音频领域的延伸应用采样定理不只用于音频它在很多领域都是基础。比如在电机控制里电流环采样率要远高于电流基波频率通常取 10kHz 以上才能及时响应电流变化。在振动监测里采样率要根据关注的故障频率定轴承故障特征频率可能到几 kHz采样率就要到几十 kHz。在电力系统里电网频率 50Hz但要做谐波分析到 50 次采样率就要到 5kHz 以上。不同领域的共同点是先明确有用带宽再定采样率再设计抗混叠滤波器。区别在于信号特性和干扰环境不同滤波器的具体参数和实现方式会有差异。掌握了这个通用流程换到哪个领域都能快速上手。8. 几个容易被忽略的细节8.1 采样时钟的抖动与相位噪声采样时钟的抖动会直接调制采样时刻等效于给信号叠加了相位噪声。在高速高精度采集里时钟抖动是限制信噪比的关键因素之一。如果时钟抖动是 t_j输入信号频率是 f那么信噪比上限约为 -20log(2πf·t_j)。比如 1kHz 信号时钟抖动 1ns信噪比上限约 104dB如果信号是 100kHz同样抖动下信噪比上限只有 64dB。所以做高精度采集时时钟源要选低抖动的晶振或专用时钟芯片PCB 布局上时钟线要远离模拟信号线必要时用差分时钟。我在做 24 位音频采集时换了一个低抖动晶振底噪直接降了 6dB效果非常明显。8.2 量化噪声与采样率的相互作用量化噪声在频域上是均匀分布的总噪声功率取决于量化位数。采样率提高后同样的总噪声功率分布在更宽的频带上带内噪声密度降低。如果后端有数字滤波器把带外噪声滤掉等效信噪比就提高了。这就是过采样提升信噪比的原理。但要注意过采样只对白噪声有效。如果量化噪声不是白噪声比如有周期性模式过采样增益会打折扣。实际 ADC 的量化噪声通常接近白噪声所以过采样增益基本符合理论值。我在选 ADC 时会看数据手册里的信噪比和有效位数指标这两个指标已经包含了过采样的效果。8.3 采样系统的接地与屏蔽模拟采集系统的接地和屏蔽说起来是基本功但实际做起来问题最多。我的原则是模拟地和数字地分开单点连接模拟信号走线尽量短远离数字信号和时钟线敏感信号用屏蔽线或屏蔽罩。如果系统里有开关电源电源纹波会通过地和电源耦合到模拟前端必要时用线性稳压器给模拟部分单独供电。有一次做多通道采集通道间串扰很大查了半天发现是模拟地和数字地多点连接形成了地环路。改成单点连接后串扰从 -60dB 降到 -90dB 以下。这个教训让我后来每次画板都严格检查地平面分割。采样定理看起来是一个简单的 2 倍关系但真正把它用好需要理解频域本质、掌握滤波器设计、熟悉 ADC 特性和电路实现。我在实际项目里踩过的坑大多不是因为不懂定理而是因为忽略了定理成立的前提条件。把前提条件当回事把抗混叠滤波器当回事把时钟和接地当回事采样系统才能真正稳定可靠。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑