ADC 量子化噪声与 SNR 模拟器 返回
信号处理

ADC 量子化噪声与 SNR 模拟器

用于计算 A/D 转换器"将连续电压四舍五入到 2^N 个量子"时产生的量子化噪声与 SNR 的工具。改变比特数、全量程电压、信号幅度、采样频率时,量子化步长、噪声有效值、全量程 SNR (6.02N+1.76 dB)、信号 SNR、过采样增益、ENOB 会实时更新。

参数设置
比特数 N
bit
分辨率。每增加 1 比特,SNR 改善约 6 dB
全量程电压 V_FS
V
ADC 的输入范围全幅。V_FS/2^N 就是 1 LSB
信号幅度 V_sig
V
输入正弦波的峰值幅度。应小于全量程
采样频率 f_s
Hz
单位时间内的采样数
信号带宽 BW
Hz
关心的信号最高频率。f_s/(2·BW) 就是过采样比
计算结果
量子化步长 Q (µV)
量子化噪声有效值 (µV)
全量程 SNR (dB)
信号 SNR (dB)
过采样增益 (dB)
ENOB (bits)
连续信号 vs 量子化波形 — 1 周期扫描

蓝色:连续输入正弦波。橙色:N 位 ADC 量子化后的阶梯波形。下方细红线为两者的差(量子化误差 = 噪声源)。

全量程 SNR vs 比特数
总体 SNR vs 过采样比
理论·主要公式

$$\text{SNR}_{FS}=6.02\,N+1.76\ [\text{dB}],\quad Q=\frac{V_{FS}}{2^{N}},\quad v_{q,rms}=\frac{Q}{\sqrt{12}}$$

N 位 ADC 的量子化步长 Q、量子化噪声有效值 v_q,rms、全量程正弦波的理想 SNR。

$$\text{SNR}_{sig}=20\log_{10}\!\frac{V_{sig}/\sqrt{2}}{v_{q,rms}},\quad G_{OSR}=10\log_{10}\!\frac{f_{s}}{2\,BW}$$

输入幅度 V_sig 时的信号 SNR 和过采样处理增益 G_OSR。当 f_s/(2·BW) > 1 时,剩余部分可通过数字滤波器去除。

$$\text{ENOB}=\frac{\text{SNR}_{sig}-1.76}{6.02}\ [\text{bits}]$$

有效比特数。将实测 SNR 换算为"等效理想 N 比特"。抖动是处理小信号量子化失真的经典线性化技术。

ADC 的量子化噪声概述

🙋
A/D 转换器就是将电压转换为数值的部件,对吧?但"量子化噪声"这个词我搞不太懂。这不是物理噪声吗?
🎓
问得好。这不是热噪声那样"物理混入"的噪声,而是更根本的问题。ADC 只能分配 2^N 个量子,必须把每个电压"四舍五入"到最近的量子。比如 16 位的话有 65536 个量子,全量程 5 V 的话 1 个量子就是 5/65536 ≈ 76 µV。在这个间隔内的所有电压都会被四舍五入到同一个量子,这个"四舍五入误差"随时间波动,看起来就像加载了噪声。这就是量子化噪声。
🙋
原来是无法避免的噪声啊。但我看左边"比特数 N"增加时,SNR 会快速增加,好像每增加 1 比特就增加 6 dB。这是公式吗?
🎓
完全正确,SNR = 6.02·N + 1.76 dB 这个公式在电子学中极其著名,代表 ADC 的"理想性能极限"。推导需要一点计算,假设量子化误差在 ±Q/2 内均匀分布,则有效值为 Q/√12,全量程正弦波(幅度 V_FS/2)的有效值为 (V_FS/2)/√2,两者比值用 dB 表示就得到 SNR = 6.02N + 1.76。每增加 1 比特,SNR 改善 6 dB(功率提高 4 倍)。16 位 SNR 约 98 dB,24 位约 146 dB,但实际 24 位 ADC 因热噪声和电路噪声会在 ENOB 约 21 位处饱和。
🙋
右下图表里,"过采样比"增加时,总体 SNR 会继续改善,但我们没增加比特数。为什么呢?
🎓
这就是过采样的绝妙之处。量子化噪声的总功率 Q²/12 是固定的,但均匀分布在 0 ~ f_s/2 的频带内。如果把采样频率 f_s 设置得远大于信号带宽 BW,那留在信号带宽内的噪声只是 BW/(f_s/2) 的比例。剩余部分可用数字低通滤波器去掉。这样 SNR 改善了 10·log10(f_s/2BW) dB,叫处理增益。4 倍过采样得到 +6 dB(即 1 比特的改善)。ΔΣ ADC 通过几十倍到几百倍的过采样加上噪声整形,可以从 1 比特量子化器制造出 24 位级别的 SNR。
🙋
什么是 ENOB?它和比特数 N 不一样?
🎓
ENOB = Effective Number Of Bits,有效比特数。虽然数据手册写"16 比特",但实测 SNR 往往达不到理想的 98 dB。例如实测 SNR 只有 90 dB,那 ENOB = (90 − 1.76)/6.02 ≈ 14.7 比特,说明下位 1.3 比特实际被噪声埋没了,应该当作 14.7 位 ADC 使用。选择高精度 ADC 时千万别只看公称分辨率,要看数据手册的 SNR 或 SINAD(信号与"噪声+失真"的比),从这些推算 ENOB 才是正确的选型方式。
🙋
理论部分还提到"抖动"。加噪声来提高精度,这不是自相矛盾吗?
🎓
听起来很奇怪,但确实成立。在量子化前加入少量随机噪声(通常幅度约为 Q),会使量子化器对小信号的行为"平均线性化",大幅减少输出相对输入的直流偏移和谐波失真。虽然瞬时噪声增加了,但对多个样本取平均后,没有抖动时的阶梯失真消失,变成纯白噪声。这在音频 DAC、测量设备、ΔΣ 转换器和图像处理(误差扩散)中广泛应用,是处理低电平信号的经典技术。

常见问答

N 位 ADC 将全量程电压 V_FS 均匀分配给 2^N 个量子,1 个量子的宽度为 Q = V_FS/2^N。量子化误差在 ±Q/2 范围内均匀分布,其有效值为 Q/√12。全量程正弦波(幅度 V_FS/2)的有效值为 (V_FS/2)/√2。两者比值用 dB 表示:SNR = 20·log10((V_FS/2)/√2 / (V_FS/2^N/√12)) = 20·log10(2^N · √(3/2)) = 6.02·N + 1.76 dB。每增加 1 比特,SNR 改善 6 dB,这是该公式的直接推论。
量子化噪声的总功率 Q²/12 与采样频率无关,均匀分布在 0 ~ f_s/2 的带宽内。将采样频率 f_s 设置为远大于信号带宽 BW 时,留在信号带宽内的噪声仅为 BW/(f_s/2) 的比例,其余可通过数字低通滤波器去除。SNR 改善 10·log10(f_s/(2·BW)) dB,这就是处理增益。4 倍过采样产生 +6 dB(1 比特改善),ΔΣ ADC 可通过数十倍到数百倍的过采样加噪声整形获得更大增益。
ENOB 是将 ADC 实测 SNR 换算为"等效理想 N 比特"的指标,定义为 ENOB = (SNR_measured − 1.76)/6.02 [bits]。例如 16 位 ADC 由于热噪声、失真、时钟抖动、电源噪声等,实测 SNR 可能只有 90 dB,则 ENOB ≈ 14.7 比特,下位 1.3 比特被噪声埋没。数据手册的"分辨率 16 比特"仅表示量子数量的细度,ENOB 才是实际可用的有效分辨率。选择高精度 ADC 时,应比较 ENOB(或 SNR、SINAD)而非公称比特数。
确实如此。在量子化前加入少量随机噪声(通常幅度约 Q),使量子化器的小信号行为"平均线性化",大幅减少输出相对输入的直流偏移和谐波失真。虽然瞬时噪声增加,但多样本平均后,无抖动时的阶梯失真消失,剩余纯白噪声。这在音频 DAC、测量设备、ΔΣ 转换器和图像处理(误差扩散)等低电平信号应用中广泛使用,是经典的线性化技术。

实际应用

音频设备(CD·高分辨率·流媒体):CD 规范为 16 比特/44.1 kHz,理想 SNR 为 98 dB。这对于可听带宽的最大音与最小音之比来说足够大,量子化噪声不会被察觉。高分辨率的 24 比特/96 kHz 具有 146 dB 的理论 SNR,编辑余量更大,但实际 ENOB 因热噪声限制在 20~21 比特。流媒体制作中通常对低电平信号加抖动,然后 16 比特化,这样可使淡出时的量子化失真基本消除。

测量设备(示波器·数据记录仪·LCR 电桥):低频高精度测量使用 16~24 位 ΔΣ ADC,高速波形观测使用 8~12 位管道型/闪存型 ADC。例如 1 GS/s 示波器多为 8 位 ADC,显示分辨率仅 256 阶,但通过过采样和波形平均提高有效分辨率。相反,µV 级应变仪数据记录仪使用 24 位 ΔΣ,信号带宽仅 100 Hz,可保证 20 比特以上的 ENOB。

通信设备(无线接收机·软件无线电·5G 基站):接收机 ADC 需同时处理弱信号和强干扰波,动态范围(≈SNR + α)至关重要。基站使用 14~16 位、数百 MHz 采样的高速 ADC,通过数字下变频(DDC)获得处理增益以提取微弱信号。软件无线电中,ADC 的比特数与采样频率的乘积(FoM)直接决定接收机性能。

控制·传感器仪表:伺服电机电流检测用 12~16 位 ADC,温度传感器·压力传感器前端用 16~24 位 ΔΣ ADC。设计时需将 ADC 范围与传感器满度输出匹配,根据所需分辨率(如 0.1 °C 需约 10 比特)反推最低 ENOB,再选择相应芯片,这样可避免规格过剩导致的成本上升。

常见误区与注意事项

最大陷阱是"只看比特数选 ADC"。数据手册写"24 比特",但 ENOB 仅 18 比特就是实质 18 位 ADC。高速 ADC 中,公称 16 比特却 ENOB 仅 12 比特的例子很普遍。选型时必须检查条件数据表中的 SNR·SINAD·ENOB,确认在特定输入频率和采样率下的性能。本工具展示的是"理想 ADC 的上限性能",实际产品只会更差。

其次,"提高采样频率 SNR 无限改善"是误解。理论上确实每增加处理增益 10·log10(f_s/2BW) dB,但实际 ADC 高速采样时光圈抖动(采样时序抖动)会成为主要噪声源,某个频率后 SNR 会停滞甚至恶化。光圈抖动 t_j[s] 导致的 SNR 上限为 20·log10(1/(2π·f_in·t_j)),例如优秀的 t_j=1 ps ADC 在 100 MHz 输入时 SNR 上限仅 64 dB。"高速、高分辨率、低噪声"不能同时实现,需权衡。

最后,"把信号调到全量程 SNR 最大"的想法忽视了一点:超过 ADC 范围会发生削波,失真会急剧增加。通常将最大输入设为全量程的 -3~-6 dBFS,留有爆裂峰值的退避,这样信号 SNR 下降数 dB,但避免了削波失真(THD 恶化)。本工具中,V_sig 接近 V_FS 时"信号 SNR ≈ 全量程 SNR",向下减小时 SNR 快速下降,这反映了 ADC 的实际特性。根据应用需求设计"最优输入电平"是工程实践的重点。

使用指南

  1. 在 bitsNum 中指定比特数(4~16 位),在 bitsRange 中设置全量程电压范围(0.1~10 V)
  2. 输入信号的频率 fsNum 和幅度 ampNum,设置采样频率 fsampNum,运行模拟
  3. 从量子化步长 Q 和量子化噪声有效值 v_n,对比全量程 SNR=6.02N+1.76 dB 与实际信号 SNR
  4. 检查过采样增益(fsamp/2f 信号比对应的改善值)和 ENOB(有效比特数),进行 ADC 性能评估

具体计算示例

12 位 ADC,全量程 5 V,输入信号 1 kHz·1 V 幅度,采样频率 100 kHz 的情况下:量子化步长 Q=5V/4096=1.22 mV(1220 µV),量子化噪声有效值 v_n=Q/√12≈352 µV,全量程 SNR=6.02×12+1.76=74 dB,过采样增益=10log₁₀(100 kHz/2 kHz)≈23.98 dB,信号 SNR≈74-3 dB=71 dB 改善,ENOB≈(71-1.76)/6.02≈11.5 bit

工程注意事项

  1. 传感器输出小于全量程时,有效 SNR 会下降。例如 100 mV 信号在 5 V 范围测量会衰减 34 dB,因此要选择低范围设置
  2. 过采样可降低量子化噪声,但要考虑单位时间数据处理负荷和功耗增加
  3. 实际电路中模拟前端噪声会叠加,因此实测 SNR 会低于模拟值
  4. 时变信号情况下,奈奎斯特频率(fsamp/2)以上的成分会因混叠折回,必须使用反混叠滤波器