跳转至

采样、混叠与重建

采样把连续世界交给计算机处理。它不是简单地“每隔一段时间读一次”,而是必须处理带宽、混叠、量化和时钟误差的一整条工程链路。


1. 理想采样模型

以周期 \(T_s\) 对连续信号 \(x_c(t)\) 采样:

\[ x[n]=x_c(nT_s) \]

采样频率为

\[ f_s=\frac1{T_s},\qquad \omega_s=2\pi f_s \]

可把理想采样看成原信号与冲激列相乘:

\[ p(t)=\sum_{n=-\infty}^{\infty}\delta(t-nT_s) \]
\[ x_s(t)=x_c(t)p(t)=\sum_{n=-\infty}^{\infty}x_c(nT_s)\delta(t-nT_s) \]

时域相乘对应频域卷积,所以采样后的频谱是原频谱每隔 \(f_s\) 复制一次:

\[ X_s(j\omega)=\frac1{T_s}\sum_{k=-\infty}^{\infty}X_c\bigl(j(\omega-k\omega_s)\bigr) \]

2. Nyquist–Shannon 采样定理

如果原信号严格带限,最高频率为 \(f_{\max}\),要无失真重建,理想条件下必须满足

\[ f_s>2f_{\max} \]

\(2f_{\max}\) 称为 Nyquist 采样率;给定采样率时,\(f_s/2\) 称为 Nyquist 频率。

两个术语不要颠倒

  • 信号最高频率为 100 Hz,它的 Nyquist 采样率是 200 Hz;
  • 系统采样率为 1000 Hz,它的 Nyquist 频率是 500 Hz。

严格等于两倍在边界相位、非理想滤波器和时钟误差下没有余量,工程中不会只取临界值。


3. 混叠:高频伪装成低频

离散正弦满足

\[ e^{j(\Omega+2\pi k)n}=e^{j\Omega n} \]

因此模拟频率相差整数倍 \(f_s\) 的正弦,在采样后无法区分。一个输入频率 \(f\) 会折叠到 \([0,f_s/2]\) 内的混叠频率,可用

\[ f_{alias}=|f-kf_s| \]

选择合适整数 \(k\) 使结果落入 Nyquist 区间。

混叠计算

以 \(f_s=100\) Hz 采样 80 Hz 正弦:

\[ f_{alias}=|80-100|=20\ \mathrm{Hz} \]

离散数据看起来像 20 Hz。数字滤波器看到的已经是 20 Hz,之后无法判断它原本来自 80 Hz。

生活中的车轮倒转、相机拍 LED 出现条纹,都是时间或空间采样造成的混叠现象。


4. 抗混叠滤波器为什么必须在 ADC 前

正确的采集链路是:

flowchart LR
    A[物理信号] --> B[传感器 / 模拟前端]
    B --> C[模拟抗混叠低通]
    C --> D[采样保持]
    D --> E[ADC 量化]
    E --> F[数字滤波与算法]

模拟抗混叠滤波器在采样前削弱 \(f_s/2\) 以上的频率,防止它们折叠进目标频带。数字滤波发生在混叠之后,不能撤销频率身份的丢失。

怎样初步选择采样率

假设关注频带上限为 \(f_b\):

  1. 确定有用信号带宽,而不只是“信号变化看起来多快”;
  2. 找出传感器噪声、机械共振、PWM 等最高干扰频率;
  3. 给模拟滤波器留出从通带到 \(f_s/2\) 的过渡带;
  4. 在算力、延迟、数据吞吐和滤波难度之间选 \(f_s\)。

工程经验不是定理

初步设计常取 \(f_s\) 为目标带宽的 5~20 倍,以给滤波器留出过渡带并改善时域分辨率,但最终倍率应由允许衰减、滤波器阶数、延迟和干扰谱共同决定。不能把“10 倍采样”当作普适定律。


5. 理想重建与实际保持

带限信号可由样本通过 sinc 插值理想重建:

\[ x_c(t)=\sum_{n=-\infty}^{\infty}x[n]\, \mathrm{sinc}\left(\frac{t-nT_s}{T_s}\right) \]

这里使用归一化定义 \(\mathrm{sinc}(v)=\sin(\pi v)/(\pi v)\)。

每个样本展开成一条 sinc,所有 sinc 相加后穿过全部样本点。理想重建需要无限长 sinc,现实中只能近似。

DAC 常使用零阶保持(ZOH):在下一个样本到来前保持当前电压不变,输出呈台阶状,再通过模拟重建低通滤波器变平滑。ZOH 自身也会造成随频率增加的幅值下垂和延迟。


6. 量化:时间离散后,幅值也要离散

若 \(N\) 位 ADC 的满量程输入范围为 \(V_{FS}\),理想量化步长近似为

\[ \Delta=\frac{V_{FS}}{2^N} \]

舍入量化误差通常满足

\[ -\frac\Delta2\le e_q<\frac\Delta2 \]

Example

12 位 ADC、输入范围 0~3.3 V:

\[ \Delta=\frac{3.3}{4096}\approx0.806\ \mathrm{mV/LSB} \]

这只是理想分辨率。参考源噪声、前端噪声、增益误差、非线性和 PCB 布局都会降低有效位数。

对满足常见假设的满量程正弦,理想 ADC 的量化信噪比近似为

\[ \mathrm{SNR}_{dB}\approx6.02N+1.76 \]

该式不等于任何输入下的实际精度,也不包含外部噪声和失真。


7. 真实采样还会遇到什么

问题 表现 应对方向
时钟抖动 采样时刻不准,高频信号误差更明显 低抖动时钟、降低输入带宽
采样不同步 多传感器时间戳错位,融合产生偏差 硬件触发、统一时钟、时间戳补偿
ADC 饱和 输入超量程,波形削顶 合理增益、钳位保护、量程设计
分辨率不足 小变化被吞没,呈台阶 合适量程、更高有效位数、合理过采样
通道串扰 多路 ADC 切换后读数互相影响 延长采样时间、缓冲、丢弃首样本
延迟 滤波与传输造成控制相位滞后 统一做时延预算

过采样能做什么

过采样配合低通和抽取,可以降低目标带宽内的白量化噪声并放宽模拟滤波器过渡带;但它不能:

  • 修复已经饱和的输入;
  • 消除系统性增益误差;
  • 凭空获得超过模拟前端噪声底的有效精度;
  • 替代采样前必要的抗混叠限制。

8. 机器人例子:关节信号链

假设关节控制带宽约 20 Hz,编码器以 1 kHz 采样:

  • 1 kHz 远高于两倍控制带宽,有利于控制器实时更新;
  • 但编码器边沿、机械共振或电机 PWM 干扰可能远高于 20 Hz,仍需模拟/硬件端限制进入测量链的高频成分;
  • 数字低通可进一步抑制带内外噪声,但截止频率不能低到明显拖慢闭环;
  • 速度若由角度差分得到,高频噪声会被放大,需要联合设计估计器和滤波器;
  • 采样、通信、计算、PWM 更新的总延迟都应计入控制设计。

9. 本章自测

1. 以 1 kHz 采样时,700 Hz 正弦会混叠到多少 Hz?

\(|700-1000|=300\) Hz,因此采样后与 300 Hz 正弦无法仅凭样本区分。

2. 为什么不能先 ADC,再用数字低通阻止混叠?

ADC 采样时频谱副本已经重叠,高频成分已变成同一组低频样本;数字滤波无法知道它原来的频率身份。

3. 信号最高频率是 200 Hz,采样率取 400 Hz 是否稳妥?

不稳妥。理论条件要求严格大于 400 Hz;实际滤波器还需要过渡带,并且信号不会理想带限,应留足裕量。

4. 16 位 ADC 是否必然比 12 位 ADC 测得更准?

不必然。位数提高的是理想码数;实际准确度还受参考源、噪声、非线性、前端增益、布局和有效位数限制。

下一步:Z 变换与离散系统。