4. 量化、噪声与动态范围

在动态信号分析与频域诊断中,ADC 是整条信号链的“入口裁判”。它决定了你能看到多小的信号、能容忍多大的干扰,以及频谱底噪究竟来自被测对象还是来自采集系统本身。很多频域诊断的误判,根源不在算法,而在于没有把量化噪声、时钟抖动和 ADC 有效位数纳入链路预算。

一、量化噪声:理想 ADC 的噪声地板

理想 N 位 ADC 在满量程正弦输入下,量化误差近似均匀分布,其理论信噪比为:

SNR_ideal = 6.02 × N + 1.76  (dB)
N = 12  → SNR_ideal ≈ 74.0 dB
N = 14  → SNR_ideal ≈ 86.0 dB
N = 16  → SNR_ideal ≈ 98.1 dB
N = 18  → SNR_ideal ≈ 110.1 dB

这个公式给出的是“量化噪声均匀分布在 Nyquist 带宽内”的假设。若采样率为 fs,则量化噪声功率谱密度约为:

NSD_q ≈ SNR_ideal - 10·log10(fs/2)   (dBFS/Hz)
例:16 位、fs = 100 MSPS
NSD_q ≈ 98.1 - 10·log10(50e6) ≈ 98.1 - 77.0 = 21.1 dBFS/Hz

这意味着:采样率越高,量化噪声被摊得越薄,单位 Hz 的底噪越低。这也是过采样能换取动态范围的物理基础。若再配合数字滤波和抽取,每 4 倍过采样可额外获得约 6 dB 处理增益。

二、ENOB、SNR 与 SINAD 的区别

数据手册中常见的三个指标容易混淆:

  • SNR:信号功率与噪声功率之比,只计噪声,不计谐波。
  • SINAD:信号功率与“噪声 + 谐波”总功率之比,是衡量 ADC 实际可用动态范围最常用的指标。
  • ENOB:由 SINAD 反推的有效位数,ENOB = (SINAD − 1.76) / 6.02。

以 ADI 的 AD9680(14 位、1 GSPS)为例,数据手册典型值:在 170 MHz 输入、1 GSPS 采样下,SNR ≈ 65.5 dBFS,SINAD ≈ 64.5 dBFS,ENOB ≈ 10.4 位。可以看到,14 位器件的实际有效位数只有约 10.4 位,损失主要来自时钟抖动、内部非线性与热噪声。频域诊断时,若用 14 位去估算底噪,会低估约 3.6 位,即约 21.7 dB 的误差。

三、抖动与时钟相位噪声如何抬高底噪

采样时钟的抖动会在采样瞬间引入时间误差,对高频输入尤为致命。由抖动引起的 SNR 上限为:

SNR_jitter = -20·log10(2π·f_in·t_jitter)
例:f_in = 170 MHz,t_jitter = 100 fs
SNR_jitter = -20·log10(2π×1.7e8×1e-13)
           ≈ -20·log10(1.068e-4) ≈ 79.4 dB

若输入频率升到 1 GHz,同样 100 fs 抖动下 SNR_jitter 降至约 64 dB,成为系统瓶颈。时钟相位噪声与抖动的换算关系为:

t_jitter(rms) = sqrt( ∫ 2·10^(L(f)/10) df ) / (2π·f_carrier)

其中 L(f) 为单边带相位噪声(dBc/Hz),积分区间通常取 100 Hz 到 fs/2。因此,评估时钟时不能只看“多少 fs”,还要看相位噪声在哪个频偏区间抬升。近端相噪影响频谱分辨率附近的裙边,远端相噪则直接抬高宽带底噪。

四、链路预算:把各噪声源折算到同一参考点

实际频域诊断中,ADC 前端还有放大器、滤波器、驱动变压器等。正确做法是把每个模块的噪声折算到 ADC 输入端,再与量化噪声、抖动噪声做功率叠加:

总噪声密度 NSD_total = 10·log10( 10^(NSD_q/10)
                              + 10^(NSD_amp/10)
                              + 10^(NSD_jitter/10) )

下面这张图给出了一条典型 14 位、1 GSPS 采集链的噪声预算关系:量化噪声、时钟抖动噪声、前端放大器噪声如何共同决定最终 SINAD 与 ENOB,以及输入频率升高时抖动项如何迅速成为主导。

ADC 采集链噪声预算与频域诊断影响 被测信号 f_in 170 MHz 前端放大器 NSD_amp 抗混叠滤波 带限至 fs/2 ADC 采样 14 bit / 1 GSPS FFT 分析 频域诊断 采样时钟 t_jitter = 100 fs 相位噪声 → 抖动 噪声源功率叠加(折算到 ADC 输入端) 量化噪声 NSD_q ≈ 21.1 dBFS/Hz + 放大器噪声 NSD_amp ≈ 18 dBFS/Hz + 抖动噪声 NSD_jitter 170 MHz 时 ≈ 79 dB 合成结果(示例估算) SINAD ≈ 64.5 dBFS → ENOB ≈ 10.4 bit 输入频率升高时,抖动项迅速成为主导瓶颈 频率影响 170 MHz → 79 dB 1 GHz → 64 dB 诊断提示 底噪抬升先查时钟 再查前端增益

五、对频域诊断的实际影响

把上述预算落到频谱上,会看到三类典型现象:

  • 底噪整体抬高:若实测底噪比量化极限高 10 dB 以上,优先怀疑时钟抖动或前端噪声,而不是 ADC 位数不够。
  • 近端裙边变宽:时钟近端相位噪声大时,强载波两侧出现明显裙边,会淹没邻近的小信号,影响边带与杂散诊断。
  • 高频段 SNR 下降:同一时钟下,输入频率越高,抖动引起的 SNR 越低。若诊断对象是高频载波,必须按实际 f_in 重新计算抖动预算。
做链路预算时,建议先列出每个模块的噪声密度(dBFS/Hz 或 nV/√Hz),统一折算到 ADC 输入端,再按功率相加。不要直接把各模块的 SNR 相减,噪声是功率叠加而非幅度叠加。
数据手册的 SNR/SINAD 通常是在特定输入频率、特定采样率和特定时钟质量下测得。直接套用到自己的板卡上,可能高估 5~15 dB。务必以实际时钟抖动和前端噪声重新估算 ENOB。

总结来说,量化噪声给出理论下限,ENOB 和 SINAD 反映实际可用动态范围,而抖动与时钟相位噪声往往才是高频频域诊断中的真正瓶颈。只有把这三者放进同一张链路预算表,才能判断频谱上的底噪和杂散到底来自被测对象,还是来自采集系统本身。