共计 1305 个字符,预计需要花费 4 分钟才能阅读完成。
量化噪声的直观影响
用示波器观察 1kHz 正弦波信号时,12 位 ADC 的采样结果(左)明显比 8 位 ADC(右)更接近理想波形。右图可见明显的阶梯状量化误差,这就是量化噪声的时域表现。

量化噪声的理论信噪比公式为:
$$ SNR = 6.02N + 1.76 $$
其中:
– $N$:ADC 的位数(如 12 位 ADC 则 N =12)
– 6.02:每增加 1 位带来约 6dB 信噪比提升
– 1.76:理想均匀量化器的修正项
参考电压动态调整策略
- 电压源选择 :
- 使用 TL431 基准源(精度±0.5%)替代 LDO
-
负载电流需 <5mA(典型值±10%)
-
STM32 动态调节示例 :
// 启用内部参考电压校准 HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED); // 根据输入信号幅度动态调整参考电压 if (raw_value < 512) {hadc1.Instance->CALFACT = 0x7F; // 降低参考电压 25%} else {hadc1.Instance->CALFACT = 0xFF; // 恢复满量程}
过采样与噪声整形实现
-
Python 仿真核心代码 :
import numpy as np from scipy.fft import fft # 过采样参数 OSR = 8 # 过采样率 fs = 1000 * OSR # 采样率 # 噪声整形滤波器 def noise_shaping(x): y = np.zeros_like(x) error = 0 for i in range(len(x)): y[i] = x[i] + error error = x[i] - y[i] return y # FFT 分析 fft_result = np.abs(fft(noise_shaping(signal))) -
效果对比 :
- 直接采样:噪声均匀分布在 Nyquist 带宽内
- 过采样 + 噪声整形:将噪声推向高频段
PCB 布局关键要点
- 地分割 :
- 模拟地(AGND)与数字地(DGND)单点连接
-
使用 0Ω 电阻或磁珠连接(位置靠近 ADC 芯片)
-
走线规则 :
- 参考电压线宽≥15mil(±5%)
- 模拟信号线远离时钟线(间距≥3 倍线宽)
避坑指南
- 参考电压源负载效应 :
- 添加 10μF+0.1μF 去耦电容(X7R 材质,容差±10%)
-
缓冲电路推荐 OPA376(输入偏置电流±1pA)
-
时钟抖动影响 :
- 抖动导致的 ENOB 衰减公式:
$$ ENOB = N – \frac{20\log_{10}(2\pi f_{in} t_{jitter})}{6.02} $$ -
当输入频率 1MHz 时,100ps 抖动会使 12 位 ADC 有效位降至 10.3 位
-
温度补偿 :
- 使用 MAX31865(带 PT100 接口)监测环境温度
- 建立电压 - 温度查找表(LUT)进行软件补偿
思考题解析
对于 12 位 ADC 系统:
– 理论 SNR=6.02×12+1.76=74dB
– 要达到 70dB 要求,允许 4dB 裕量
– 每级噪声整形可提供约 9dB 改善(理论值)
– 实际需叠加 2 级噪声整形即可满足
厂商芯片对比
| 型号 | ENOB(1kHz) | 噪声系数 | 参考电压精度 |
|---|---|---|---|
| TI ADS1256 | 23.5 位 | 2.5nV/√Hz | ±0.001% |
| ADI AD7799 | 20.5 位 | 1.8nV/√Hz | ±0.003% |
| STM32H743 | 11.3 位 | 12μVrms | ±0.1% |
实际项目中,需要根据成本、功耗和精度需求进行折中选择。
正文完
