你有没有遇到过这种情况:把录音设备的输入短接,或者接上麦克风但保持环境绝对安静,然后把监听音量开到最大——耳机里传来一阵微弱的“吱——”声,像某个固定的频率在响。
明明没有信号,噪声从哪来的?
如果你用的是ΔΣ架构的ADC(音频Codec几乎全是这种),这个噪声很可能就是“空闲音”。今天聊聊这个现象是怎么回事,以及怎么把它移出音频带。
一、空闲音是什么?
空闲音是指ΔΣ调制器在输入为直流(包括0V)时,输出端产生的一种固定频率的噪声分量。它不是随机噪声,而是一个有规律的单音或谐波成分。
为什么会有这个东西?ΔΣ调制器以远高于音频的速率(比如几MHz)对输入信号采样,输出一串1位或多位的数据流。当输入是稳定的直流时,调制器有时会“卡”进一种重复的周期模式,比如“01010101...”这种交替输出。
这个周期模式在频域上对应一个固定的频率。当这个频率落在20Hz-20kHz的音频带内时,就会被听到。

ΔΣ调制器基本结构
积分器、比较器和反馈DAC构成的环路,空闲音产生于调制器的周期性输出模式
实测频谱显示,输入空闲时,音频带内会出现多个高于底噪的杂散尖峰。而当输入一个很小的信号时(比如-60dBFS),这些尖峰就消失了。这说明空闲音只出现在输入接近直流的时候,一旦有实际信号,调制器就被“激活”,周期性模式被打断。
二、空闲音是怎么产生的?
ΔΣ调制器工作在极高的过采样率下。比如调制器时钟6.144MHz,音频输出采样率48kHz,过采样率就是128倍。输入直流时,比较器的输出会出现重复的“0101...”模式,在调制器时钟一半的频率处产生一个尖峰。
但是,实际芯片中还存在非理想因素:
这些因素会让尖峰频率发生微小偏移。当这个频率被数字抽取滤波器下采样到音频输出率时,就会折回到音频带内,形成一个可听的单音。
输入空闲时有一个明显的尖峰,幅度听起来很小,但如果后面接了高增益的功放或耳机放大器,这个噪声就可能被放大到可闻的程度。当输入一个小信号时,这个尖峰就消失了。


ADC输入空闲时的FFT频谱对比
上图为空闲状态(有明显尖峰),下图有小信号输入(尖峰消失)
三、怎么把空闲音移出音频带?
空闲音的频率与输入直流失调电压有关。通过人为增加一个小的外部差分失调电压,可以改变调制器的工作点,从而改变空闲音的频率。当失调电压足够大时,空闲音会被推到20kHz以上,移出人耳可听范围。
实际操作:在输入端加一个小失调
这个方法要求采用直流耦合输入——因为交流耦合电容会阻断直流,加了失调也没用。输入端通常通过电阻分压器偏置到电源电压的一半,然后在正负输入引脚之间串一个小电阻,产生差分失调电压。

引入直流失调电压的分压器方案
左边是正常偏置,右边是加入失调电阻产生电压差
失调电压的计算公式为:VOS = (VCC × ROS) / (2R + ROS)
举个例子:电源电压3.3V,分压电阻2.2kΩ,想要15mV失调,只需要在正负输入端之间串一个约20Ω的小电阻。

不同失调电压下的空闲FFT频谱
失调越大,空闲音尖峰向高频移动越明显
实测效果很明显。失调为0mV时,音频带内有多个尖峰;加到5mV,尖峰开始向高频移动;加到10mV,大部分尖峰已移到15kHz以上;加到15mV,所有尖峰都移到了20kHz以上,音频带内干干净净。
这个方法的代价是:直流耦合输入的SNR会比交流耦合低2dB左右,因为直流路径会引入更多1/f噪声。但对于录音设备、会议麦克风这类对底噪有极致要求的应用,这个取舍通常是值得的。
四、总结
空闲音是ΔΣ调制器在直流输入时产生的固有现象,不是芯片坏了。解决方法的核心思路是:改变调制器的工作点,把空闲音推到音频带外。
新一代ADC已经通过改进的内部设计,在音频带内获得了更优的无杂散性能。但如果你在做的是一个对静音底噪有极致要求的产品(录音室设备、助听器、高端会议系统),加一个小失调仍然是一个简单有效的硬件手段——用一颗电阻换一个干净的底噪,这笔账是算得过来的。 |