4、音频信号数字化:采样定理(奈奎斯特)、量化与量化噪声、抖动(Dither)技术、过采样与降采样

把模拟音频变成数字信号,说白了就是两步:采样和量化。采样决定时间轴上的精度,量化决定幅度轴上的精度。这两步要是没做好,后面再牛的算法也救不回来。我这些年处理过的杂音案例,至少有一半的根因都出在这个环节。

4.1 采样定理(奈奎斯特)

采样定理的内容其实很简单:采样频率必须大于信号最高频率的两倍。为什么?因为低于这个频率,信号就会发生混叠(Aliasing),高频成分会伪装成低频信号混进来,你根本分不清真假。

核心公式: fs > 2 × fmax

其中 fs 是采样频率,fmax 是信号最高频率。

举个例子。人耳能听到的最高频率大约是 20 kHz,所以 CD 音频的采样率定在 44.1 kHz。这个数字怎么来的?44.1 kHz 比 40 kHz 多出 4.1 kHz 的余量,给抗混叠滤波器留了过渡带。我见过有人为了省存储,把采样率降到 32 kHz,结果高频乐器声全变了味,听起来像隔着一层纱。

避坑指南: 我曾经接手过一个语音采集项目,麦克风标称响应到 8 kHz,工程师就用了 16 kHz 采样率。结果录出来的语音总有“嘶嘶”声,查了半天才发现麦克风在 8 kHz 以上还有不小的能量,混叠到了低频段。后来加了前置低通滤波器才解决。记住:采样率要按信号实际能量分布来定,不能只看标称带宽。

4.2 量化与量化噪声

采样把时间轴离散化了,量化则是把连续的幅度值映射到有限个离散电平上。每个采样点最终被近似到最近的量化电平,这个近似过程必然引入误差——就是量化噪声。

量化噪声的功率跟量化步长直接相关。步长越小,噪声越小。步长由量化位数决定:

  • 16 bit:动态范围约 96 dB,CD 音频标准
  • 24 bit:动态范围约 144 dB,录音棚常用
  • 32 bit float:动态范围极大,后期处理灵活

量化噪声有个重要特性:在理想情况下,它近似为均匀分布的白噪声,功率谱密度在整个频带内是平坦的。这意味着噪声总功率固定,但分布到更宽的频带上,每个频点的噪声密度就会降低。嗯,这个特性后面讲过采样时会用到。

我的经验: 做音频质量分析时,我习惯先看量化噪声的频谱。如果噪声集中在低频段,说明量化器可能有问题;如果噪声均匀分布,那基本是正常的量化噪声。这个判断方法帮我快速定位过好几个硬件故障。

4.3 抖动(Dither)技术

量化噪声虽然不可避免,但它有个让人头疼的问题:当信号很弱时,量化噪声会跟信号产生相关性,形成失真而不是单纯的噪声。失真听起来比噪声难受多了。

抖动的思路很简单:在量化之前,主动给信号加一点微小的随机噪声。这样量化误差就变成了真正的随机噪声,跟信号不再相关。你想想看,与其让量化器产生难听的失真,不如加点可控的噪声,让耳朵舒服点。

抖动类型 特点 适用场景
矩形抖动(Rectangular) 最简单,噪声功率大 早期系统,不推荐
三角形抖动(Triangular) 噪声功率适中,效果较好 16 bit 量化常用
噪声整形抖动(Noise-shaped) 将噪声推到人耳不敏感的高频段 高精度音频制作

我曾经踩过的坑: 有一次做 16 bit 音频导出,没加抖动,结果一段钢琴弱奏部分出现了明显的颗粒感。加了三角形抖动后,底噪虽然大了 1-2 dB,但声音变得自然多了。记住:抖动不是用来降低噪声的,是用来消除失真感的。

4.4 过采样与降采样

过采样,就是用远高于奈奎斯特频率的采样率来采集信号。比如音频用 192 kHz 甚至 384 kHz。你可能会问:这不是浪费吗?其实不然,过采样有几个关键好处:

  1. 降低抗混叠滤波器要求:采样率高了,过渡带变宽,模拟滤波器可以做得更简单、相位失真更小。
  2. 提高信噪比:量化噪声总功率不变,但分布在更宽的频带上,落在音频带内的噪声就少了。每提高一倍采样率,信噪比提升约 3 dB。
  3. 改善瞬态响应:时间分辨率更高,对突发信号的捕捉更准确。

降采样则是反过来,把高采样率的信号降到目标采样率。降采样之前必须做数字低通滤波,否则高频成分会混叠到低频段。这个滤波器设计得好不好,直接决定最终音质。

过采样提升信噪比的原理:

假设量化噪声总功率为 Pn,采样率为 fs。噪声功率谱密度为 Pn / fs。过采样到 K × fs 后,落在音频带宽 fa 内的噪声功率为 (Pn / (K × fs)) × fa = Pn / K。信噪比提升 10 × log10(K) dB。

下面这张图展示了过采样与降采样的完整流程:

过采样与降采样流程 模拟信号 抗混叠滤波 过采样 ADC K × fs 数字低通 降采样 ↓K 数字信号 fs 关键点:过采样降低了对模拟滤波器的要求,数字低通滤波后再降采样, 既保证了抗混叠效果,又提升了带内信噪比。

实际项目中,我经常用 96 kHz 或 192 kHz 来录音,然后降采样到 44.1 kHz 或 48 kHz 交付。这样做的好处是:录音阶段的抗混叠滤波器可以做得更平缓,相位失真小;降采样时的数字滤波器可以设计成线性相位,保证群延迟恒定。最终的声音比直接用 44.1 kHz 录制的更通透。

我的习惯: 做降采样时,我一般会先用 8 倍过采样的数字滤波器,然后分两级降下来。比如 192 kHz → 96 kHz → 48 kHz。每级降采样只降 2 倍,滤波器阶数可以降低不少,计算量反而更小。这个技巧在嵌入式系统上特别管用。

好了,采样、量化、抖动、过采样这几个概念,是数字音频的基石。理解透了,后面分析杂音时才能一眼看出问题出在哪个环节。