4. ADC动态性能指标与噪声表征
静态指标(INL、DNL)描述的是直流或极低频下的转换准确性,而一旦输入信号频率升高,真正决定系统可用精度的是动态性能指标。它们全部来自同一个测量结果——对ADC输出做FFT得到的频谱。理解这些指标,本质上是理解“频谱上每一根谱线代表什么”。
一、从FFT频谱读出六个关键指标
设采样率 fs,采样点数 N,输入单音频率 fin(通常取相干采样,即 fin = M·fs/N,M 为与 N 互质的整数,避免频谱泄漏)。对加窗(如七阶Blackman-Harris)后的数据做FFT,得到幅度谱。频谱被划分为几个区域:
- 基波(Fundamental):fin 处的谱线,功率记为 PS。
- 谐波(Harmonics):2fin、3fin… 处的谱线,功率记为 P2、P3…,通常只统计到奈奎斯特频率以内。
- 噪声底(Noise Floor):除基波、谐波和直流外的所有谱线功率之和,记为 PN。
由此定义:
- SNR(信噪比) = 10·log10(PS / PN),只算噪声,不含谐波。它反映ADC在理想线性条件下的噪声水平。
- THD(总谐波失真) = 10·log10((P2+P3+…)/PS),结果为负值,越负越好。
- SINAD(信号与噪声失真比) = 10·log10(PS / (PN+P2+P3+…)),即噪声与谐波一起算。SINAD 永远不高于 SNR。
- SFDR(无杂散动态范围) = 10·log10(PS / Pmax_spur),Pmax_spur 是最大单根杂散(可能是某次谐波,也可能是时钟馈通等非谐波杂散)。
- ENOB(有效位数) = (SINAD − 1.76) / 6.02。它把SINAD折算成“等效多少位理想ADC”。
- NSD(噪声谱密度) = 噪声功率折算到1 Hz带宽的值,单位 dBFS/Hz 或 nV/√Hz,用于评估宽带噪声和与输入幅度无关的本底。
其中 1.76 dB 来自理想量化噪声模型:理想N位ADC的SNR = 6.02N + 1.76 dB。因此ENOB的物理含义是:这块ADC在当前输入频率和幅度下,表现得像多少位的理想ADC。
二、指标之间的内在联系
这些指标并非彼此独立。SNR 只关心噪声底,THD 只关心谐波,SINAD 是两者的综合,ENOB 是 SINAD 的另一种表达。因此有:
SINAD ≤ SNR,且 SINAD ≤ −THD(当谐波远大于噪声时,SINAD 趋近于 −THD)。SFDR 则可能由谐波或非谐波杂散决定,若最大杂散是二次谐波,则 SFDR 与 THD 中的二次项直接相关。
NSD 与 SNR 的关系为:SNR = 满量程功率 − NSD − 10·log10(BW),其中 BW 为奈奎斯特带宽 fs/2。NSD 越低,同样带宽下 SNR 越高。对于高分辨率ADC(如24位Σ-Δ),NSD 常以 nV/√Hz 给出,便于与前端驱动电路的噪声直接比较。
三、用ADI评估板实测FFT并计算ENOB
以 ADI 的 AD7768-1(24位、256 kSPS Σ-Δ ADC)评估板为例,配合 SDP-H1 控制器和 ACE 软件。实测步骤如下:
- 信号源输出 1 kHz 正弦,幅度设为 −0.5 dBFS(约 2.9 Vpp 差分),经低通滤波后接入评估板模拟输入。
- ACE 软件中设置采样率 256 kSPS,抽取率 32,开启 sinc5 滤波器,采集 65536 点。
- 选择相干采样:fin = M·fs/N,取 M = 256,则 fin = 256×256000/65536 = 1000 Hz,满足相干条件。
- 软件自动加七阶 Blackman-Harris 窗并做 FFT,显示频谱和指标面板。
假设某次测量得到:SNR = 106.2 dB,THD = −112.5 dB,SINAD = 105.1 dB,SFDR = 108.3 dB。则:
ENOB = (SINAD − 1.76) / 6.02
= (105.1 − 1.76) / 6.02
= 103.34 / 6.02
≈ 17.17 位
即这块标称24位的ADC,在1 kHz、−0.5 dBFS条件下实际有效位数约17.2位。剩余位数被噪声和失真“吃掉”。若把输入频率升到10 kHz,SINAD可能降到98 dB,ENOB降至约16位,说明高频下性能下降。
四、从频谱到有效位数的实战换算
若手头没有自动计算ENOB的软件,也可以从频谱手动估算。方法如下:
- 在频谱上读出基波峰值 PS(dBFS)。
- 读出噪声底平均电平,换算到整个奈奎斯特带宽内的总噪声功率 PN。若噪声底平坦,PN ≈ 噪声底单bin功率 + 10·log10(N/2)。
- 读出各次谐波功率,求和得 PH。
- SINAD = PS − 10·log10(PN + PH)。
- ENOB = (SINAD − 1.76) / 6.02。
例如,某16位ADC在100 kHz输入下,基波0 dBFS,噪声底平均−130 dBFS/bin,N=16384,则总噪声功率 ≈ −130 + 10·log10(8192) ≈ −130 + 39.1 = −90.9 dBFS。若谐波总功率−95 dBFS,则噪声加失真总功率 ≈ 10·log10(10−9.09 + 10−9.5) ≈ −87.6 dBFS,SINAD ≈ 87.6 dB,ENOB ≈ (87.6−1.76)/6.02 ≈ 14.3位。这与16位标称值相差约1.7位,属于正常范围。
五、指标与噪声治理的对应关系
当系统精度不达标时,动态指标能帮助定位问题:
- SNR不足:检查参考电压噪声、时钟抖动、电源纹波、输入驱动噪声。降低这些噪声可直接提升SNR。
- THD恶化:检查输入驱动放大器非线性、ADC输入共模范围、参考电压建立时间。选用高线性度差分驱动器可改善。
- SFDR差但THD正常:说明存在非谐波杂散,如时钟馈通、数字串扰、电源开关频率耦合。需从布局和屏蔽入手。
- NSD偏高:说明宽带本底噪声大,通常与ADC内部噪声或前端电阻热噪声有关,可通过降低带宽或选用低噪声器件改善。
掌握这些指标的读取与换算,就能把“频谱上看到的一堆峰”翻译成“系统还能做到多少位”,从而判断噪声治理是否有效。