第四节:噪声整形原理
好,咱们接着聊。上一节讲了过采样能提高信噪比,但有个问题——你想想看,单纯靠提高采样率来换精度,效率其实挺低的。比如你想把SNR提高6dB,采样率就得翻一倍,这代价有点大。
那有没有更聪明的办法?有。这就是我今天要讲的——噪声整形。
什么是噪声整形?
说白了,噪声整形就是把量化噪声的能量从低频段推到高频段去。低频是我们关心的信号频带,高频嘛,后面用数字滤波器一滤就没了。
我打个比方你就明白了。想象你在一个房间里开会,有人在你耳边一直嗡嗡嗡。你受不了,就把他推到墙角去。虽然他还是吵,但离你远了,影响就小了。噪声整形干的就是这个事——把量化噪声从信号频带里「推走」。
我个人习惯把噪声整形比作「噪声的搬家工程」。搬走之后,信号频带内的噪声功率大幅降低,等效分辨率自然就上去了。
核心思想:过采样 + 噪声整形 = 用采样率换分辨率,但效率远高于单纯过采样。
一阶ΔΣ调制器结构
要实现噪声整形,最经典的电路就是一阶ΔΣ调制器。它的结构其实不复杂,我画给你看:
输入 x[n] → [累加器] → [量化器] → 输出 y[n]
↑ |
└──── [1个时钟延迟] ←┘
嗯,这里要注意,这个结构里有个反馈环路。量化器的输出经过一个时钟周期的延迟,再反馈回输入端与输入信号做差。这个差值就是量化误差,被累加器不断累积。
我刚开始学这个结构时,总觉得它跟负反馈放大器有点像。确实,ΔΣ调制器本质上就是一个负反馈系统,只不过它处理的是离散时间信号。
具体来说,一阶ΔΣ调制器包含三个关键部分:
- 差分器:计算输入信号与反馈信号的差值
- 累加器:对差值进行积分(离散时间域就是累加)
- 量化器:通常就是1位比较器,输出±1或0/1
你可能会问:为什么量化器只用1位?这不精度很低吗?
没错,单看量化器本身,1位量化器的量化误差确实很大。但别忘了,我们有反馈环路和后面的数字滤波器。这个系统的妙处就在于——用低精度的量化器,配合高采样率和反馈,最终得到高精度的结果。
实战经验:我在做音频ADC项目时,用的就是一阶ΔΣ调制器加1位量化器。刚开始团队里有人质疑:1位量化器能行吗?结果测试出来,等效分辨率做到了16位以上。这就是噪声整形的威力。
噪声传递函数(NTF)推导
好,接下来是硬核部分。咱们来推导一下噪声传递函数。别怕,其实不复杂。
先定义几个变量:
- x[n]:输入信号
- y[n]:输出信号
- e[n]:量化误差(量化器引入的噪声)
从结构图可以看出,累加器的输出等于输入差值加上前一时刻的累加值。用数学表达就是:
w[n] = w[n-1] + (x[n] - y[n-1])
其中w[n]是累加器的输出。量化器把w[n]量化成y[n]:
y[n] = w[n] + e[n]
把这两个式子联立起来:
y[n] = w[n-1] + (x[n] - y[n-1]) + e[n]
而w[n-1] = y[n-1] - e[n-1],代入上式:
y[n] = (y[n-1] - e[n-1]) + x[n] - y[n-1] + e[n]
= x[n] + e[n] - e[n-1]
看到了吗?输出信号y[n]等于输入信号x[n]加上一个差分形式的量化噪声e[n] - e[n-1]。
现在转到z域。时域的差分对应z域的(1 - z⁻¹):
Y(z) = X(z) + (1 - z⁻¹)E(z)
所以:
- 信号传递函数 STF = Y(z)/X(z) = 1(信号无损通过)
- 噪声传递函数 NTF = Y(z)/E(z) = 1 - z⁻¹
关键结论:NTF = 1 - z⁻¹ 是一个高通滤波器。它在直流处(f=0)增益为0,随着频率升高增益逐渐增大。这意味着量化噪声在低频被抑制,在高频被放大——这就是噪声整形的数学本质。
为什么会这样?你想想看,1 - z⁻¹的幅频响应是|2sin(πf/fs)|。在低频段,sin值很小,NTF的增益接近0。随着频率升高,增益逐渐增大到2。
我当年推导到这里时,有种豁然开朗的感觉。原来噪声整形就是用一个高通滤波器去处理量化噪声,把噪声能量推到高频去。
避坑指南:我曾经在项目里犯过一个错误——以为NTF的零点越多越好。其实不然。高阶调制器虽然噪声整形效果更好,但稳定性问题也更突出。一阶调制器是绝对稳定的,但二阶以上就需要小心设计了。新手建议从一阶开始练手。
噪声整形带来的性能提升
有了噪声整形,过采样的效率就大大提高了。咱们来算笔账:
| 过采样率(OSR) | 单纯过采样 SNR提升 | 一阶ΔΣ SNR提升 |
|---|---|---|
| 4 | 6 dB | 15 dB |
| 8 | 9 dB | 21 dB |
| 16 | 12 dB | 27 dB |
| 32 | 15 dB | 33 dB |
| 64 | 18 dB | 39 dB |
看到差距了吧?OSR=64时,单纯过采样只能提升18dB,而一阶ΔΣ能提升39dB。换算成有效位数,相当于多了3.5位。
我个人的经验是,在实际项目中,一阶ΔΣ调制器配合OSR=64到128,就能轻松实现16位以上的有效分辨率。这对于大多数音频和低频测量应用来说,已经足够了。
小技巧:如果你需要更高的分辨率,可以考虑二阶或三阶ΔΣ调制器。但要注意,阶数每增加一阶,稳定性设计就复杂一个数量级。我建议先吃透一阶,再往高阶走。
好了,这一节的内容就到这。噪声整形的核心就两点:一是理解它的物理含义——把噪声推到高频去;二是掌握NTF的推导——1 - z⁻¹这个高通滤波器。下一节我会讲如何用代码实现一阶ΔΣ调制器,到时候咱们手把手写代码。