4. 采样定理:奈奎斯特采样定理、混叠现象、抗混叠滤波器设计

采样定理,说白了就是回答一个问题:我到底要用多快的速度去采集信号,才能保证信息不丢?

我刚入行那会儿,觉得这事儿很简单——采得快一点不就行了?结果有一次做振动信号分析,采样率设得挺高,但分析出来的频谱图怎么看怎么不对劲。后来才发现,我踩了混叠的坑。嗯,从那以后,我对采样定理再也不敢马虎了。

4.1 奈奎斯特采样定理:核心公式

先上结论:采样频率必须大于信号最高频率的两倍。

公式很简单:

fs > 2 * fmax

其中:

  • fs:采样频率(每秒采多少个点)
  • fmax:信号中包含的最高频率分量

这个 2 * fmax 就是传说中的奈奎斯特频率。你想想看,如果信号一个周期内连两个点都采不到,那你怎么还原它的波形?

重要提醒: 实际工程中,我从来不会卡着 2 倍这个边界。我个人习惯至少留出 20%~30% 的余量。比如信号最高频率 1kHz,我会用 2.5kHz 甚至 3kHz 去采。为什么?因为现实世界没有理想的低通滤波器,后面我会细说。

4.2 混叠现象:为什么你会看到假信号?

混叠,是采样定理被违反时出现的幽灵信号。

举个例子:你采一个 100Hz 的正弦波,采样率设成 80Hz。你猜会看到什么?

你会看到一个 20Hz 的假信号!

为什么会这样?因为采样点太少,高频信号被“伪装”成了低频信号。这个假频率的计算公式是:

f_alias = | f_signal - n * fs |

其中 n 是整数,使得 f_alias 落在 0 到 fs/2 之间。

我在项目中遇到过最典型的案例:一个电机转速采集系统,传感器输出 500Hz 的脉冲,采样率设了 1kHz。结果频谱图上莫名其妙多了一个 0Hz 附近的直流分量。排查了半天,才发现是 500Hz 信号刚好等于 fs/2,产生了混叠。从那以后,我每次设计采样系统,第一件事就是算清楚信号带宽。

避坑指南: 我曾经犯过一个低级错误——只关注了信号的基频,忽略了高次谐波。比如一个方波,基频 1kHz,但它的 3 次、5 次、7 次谐波能量也不小。如果采样率只按 2kHz 设计,这些谐波全都会混叠到低频段,把频谱搞得一团糟。

4.3 抗混叠滤波器设计:实战中的关键

抗混叠滤波器,说白了就是在采样之前,先把高于 fs/2 的频率成分干掉。

它通常是一个低通滤波器,放在 ADC 之前。设计时有几个要点:

  • 截止频率:一般设在 0.4 * fs 到 0.5 * fs 之间
  • 衰减速率:至少 40dB/decade,最好 60dB/decade 以上
  • 通带平坦度:不能把有用信号也衰减了

我常用的滤波器阶数选择参考:

信号类型 最高频率 采样率 推荐滤波器阶数
音频(语音) 4kHz 10kHz 2 阶
振动信号 1kHz 3kHz 4 阶
高速数据采集 100kHz 300kHz 6 阶

嗯,这里要注意:阶数越高,相位延迟越大。如果你做的是实时控制系统,相位延迟可能会影响稳定性。这时候就需要权衡了。

4.4 知识体系结构图

下面这张图,是我自己总结的采样定理知识框架。你看一眼就能明白整个逻辑:

采样定理 奈奎斯特采样定理 fs > 2 * fmax 混叠现象 高频伪装成低频 抗混叠滤波器 采样前低通滤波 采样率选择 频率分辨率 假频率计算 谐波混叠 截止频率 阶数选择 核心原则:先滤波,再采样 保证 fs > 2*fmax,并留有余量

4.5 实战中的滤波器设计思路

如果你用的是单片机自带的 ADC,通常内部已经集成了抗混叠滤波器。但别太依赖它——我测过几款主流 MCU 的内置滤波器,衰减特性往往不够陡峭。

我的做法是:

  1. 先算清楚信号带宽——用示波器看看信号的实际频谱,别只看标称值
  2. 确定采样率——至少 2.5 倍于最高频率,我一般取 3~4 倍
  3. 设计外部 RC 低通滤波器——简单、可靠、成本低
  4. 如果还不够——上运放搭建二阶有源滤波器

小技巧: 我曾经在一个项目中,用两个 RC 滤波器级联,中间加一个电压跟随器做隔离。效果比单个四阶滤波器还好,而且调试起来方便得多。你想想看,每个 RC 的截止频率可以独立调整,多灵活。

最后说一句:采样定理不是理论游戏,它是每个数据采集系统的基础。你设计的时候多花十分钟算清楚,后面能省下十个小时的调试时间。我吃过这个亏,所以现在特别在意。

可可精品资料库