4、过采样技术:过采样的基本原理、噪声整形概念、过采样对SNR的提升计算

各位同学,咱们今天聊聊过采样。这玩意儿在音频ADC/DAC里,可以说是「化腐朽为神奇」的关键技术。我当年刚入行时,总觉得过采样就是「多采几个点嘛,有啥了不起的」。后来被现实狠狠教育了一顿——嗯,这里面的门道,比你想象的要深得多。

4.1 过采样的基本原理

先说说什么是过采样。说白了,就是用远高于奈奎斯特频率的采样率去采集信号。

奈奎斯特告诉我们:要无失真地恢复一个最高频率为fB的信号,采样率至少得是2fB。这个2fB,我们叫它奈奎斯特频率fN

那过采样率(OSR)怎么定义?很简单:

OSR = f_s / (2 × f_B) = f_s / f_N

其中fs是实际采样率,fB是信号带宽。

举个例子:你要处理20kHz的音频信号,理论上40kHz就够了。但如果你用2.8224MHz去采(这是SACD的采样率),那OSR就是:

OSR = 2.8224 MHz / 40 kHz ≈ 70.56

为什么要这么干?我告诉你,核心原因有两个:

  • 降低对抗混叠滤波器的要求——采样率越高,镜像频谱离得越远,模拟滤波器可以做得更简单
  • 提升信噪比——这是咱们今天的重点

我个人习惯把过采样比作「用更宽的画布去画同一幅画」。画布宽了,你就有更多空间去处理细节,误差也被稀释了。

4.2 噪声整形概念

好,接下来是重头戏——噪声整形。这个概念我第一次接触时,觉得它简直像魔术。

先想一个问题:量化噪声的功率谱密度是什么样的?

在传统ADC里,量化噪声被认为是白噪声,均匀分布在0到fs/2的频带内。总噪声功率是Δ²/12,其中Δ是量化步长。

那过采样怎么提升SNR?很简单——噪声总功率不变,但分布带宽变宽了。落在信号带宽内的噪声就少了。

等等,这还不是噪声整形。真正的噪声整形,是通过反馈环路把噪声「推」到高频去。

我给大家画个简单的框图(用文字描述):

输入 → [积分器] → [量化器] → 输出
                ↑           ↓
                └── [反馈DAC] ←┘

这就是一阶Δ-Σ调制器的结构。它的传递函数有个特点:

  • 对信号:低通特性(信号无损通过)
  • 对量化噪声:高通特性(噪声被推到高频)

为什么会这样?因为反馈环路对量化噪声做了差分处理。你想想看,量化器产生的误差,经过反馈后会被下一次量化「修正」。这个修正过程,本质上就是对噪声做了一阶高通滤波。

关键结论:噪声整形把低频段的噪声「搬」到了高频段。而高频段的噪声,后面可以用数字低通滤波器轻松滤掉。

我在项目中遇到过一阶调制器不够用的情况。那时候做一款24bit音频ADC,一阶调制器死活达不到目标SNR。后来换成三阶调制器,噪声整形效果好了不止一个数量级。嗯,这里要提醒大家:阶数越高,稳定性越难保证,这是个trade-off。

4.3 过采样对SNR的提升计算

终于到了算账的时候。过采样到底能提升多少SNR?咱们一步步来。

4.3.1 单纯过采样(无噪声整形)

先看最简单的情况:只过采样,不做噪声整形。

量化噪声总功率:

P_n = Δ² / 12

这个功率均匀分布在0到fs/2之间。噪声功率谱密度(PSD)为:

S_n(f) = Δ² / (12 × f_s/2) = Δ² / (6f_s)

落在信号带宽fB内的噪声功率:

P_n,inband = S_n(f) × f_B = (Δ² / (6f_s)) × f_B

因为fs = OSR × 2fB,代入得:

P_n,inband = (Δ² / (6 × OSR × 2f_B)) × f_B = Δ² / (12 × OSR)

所以SNR提升为:

SNR_improvement = 10 × log₁₀(OSR) [dB]

OSR每翻一倍,SNR提升3dB。说白了,就是半个bit的精度提升。

OSR SNR提升(dB) 等效bit数提升
2 3.0 0.5
4 6.0 1.0
8 9.0 1.5
16 12.0 2.0
64 18.0 3.0

看到没?OSR到64了,才提升3个bit。效率有点低啊。

4.3.2 过采样 + 一阶噪声整形

现在加上一阶噪声整形。一阶Δ-Σ调制器的噪声传递函数(NTF)为:

NTF(z) = 1 - z⁻¹

在频域中,它的幅度响应是:

|NTF(f)| = 2 × sin(πf / f_s)

当f << f_s时,近似为:

|NTF(f)| ≈ 2πf / f_s

所以带内噪声功率为:

P_n,inband = ∫₀^fᴮ (Δ² / (6f_s)) × (2πf/f_s)² df

算出来(我跳过中间步骤,直接给结果):

P_n,inband = (Δ² × π²) / (18 × OSR³)

对比无噪声整形时的Δ²/(12×OSR),SNR提升为:

SNR_improvement = 10 × log₁₀(OSR³) - 10 × log₁₀(π²/1.5)
                ≈ 30 × log₁₀(OSR) - 3.2 [dB]

OSR每翻一倍,SNR提升约9dB!相当于1.5个bit。

我的经验:一阶调制器配合OSR=64,理论上能提升约30×log₁₀(64) - 3.2 ≈ 51dB。加上1bit量化器本身的6dB,总SNR约57dB,相当于9bit左右。够用吗?做语音还行,做Hi-Fi音频就差了。

4.3.3 高阶噪声整形

对于L阶Δ-Σ调制器,带内噪声功率与OSR的关系为:

P_n,inband ∝ 1 / OSR^(2L+1)

SNR提升为:

SNR_improvement ≈ (20L + 10) × log₁₀(OSR) - C [dB]

其中C是与调制器阶数有关的常数。

调制器阶数L OSR翻倍时SNR提升 典型OSR=64时提升
0(无整形) 3 dB 18 dB
1 9 dB ~51 dB
2 15 dB ~84 dB
3 21 dB ~117 dB
4 27 dB ~150 dB

注意:高阶调制器(L≥3)存在稳定性问题。我曾经在做一个四阶调制器时,仿真跑得好好的,一上芯片就振荡。后来发现是环路增益偏差导致极点移到了单位圆外。解决方案是限制输入幅度,或者用多bit量化器。

4.4 实际设计中的考量

讲完了理论,说说实际干活时要注意什么。

第一,OSR不是越高越好。OSR高了,数字滤波器功耗大,时钟抖动敏感。我见过有人把OSR做到512,结果功耗比模拟部分还高,得不偿失。

第二,噪声整形有代价。高阶调制器虽然SNR漂亮,但动态范围会受限。输入信号太大,调制器就饱和了。这叫「稳定性与动态范围的trade-off」。

第三,别忘了数字滤波器。过采样和噪声整形只是前半段。后半段要用数字低通滤波器把高频噪声滤掉,再降采样回奈奎斯特率。这个滤波器设计不好,前面的一切努力都白费。

我曾经在一个项目里,调制器做得完美,SNR仿真值120dB。结果数字滤波器通带纹波太大,把带内噪声又「晃」回来了。最后实测SNR只有98dB。教训就是:系统设计要整体考虑,不能只盯着一个模块。

4.5 小结

咱们今天聊了过采样的三个核心点:

  • 基本原理:用高OSR换取低噪声密度和宽松的滤波器要求
  • 噪声整形:通过反馈环路把噪声推到高频,再滤掉
  • SNR计算:无整形时3dB/倍频,一阶9dB/倍频,高阶更猛

最后说一句:过采样技术是音频数据转换器的基石。你想想看,没有它,我们怎么可能用1bit的量化器做出120dB动态范围的DAC?这就是工程艺术的魅力。

下一章咱们聊多bit量化器和MASH结构,那又是另一番天地了。