2、ADC基础原理回顾:采样定理、量化与编码、ADC主要性能指标

各位好,我是你们的讲师。今天咱们聊聊ADC的基础原理。别看这部分理论性强,但它是后面所有低功耗设计的根基。我见过不少工程师,一上来就盯着功耗指标,结果采样率选错了,整个系统白忙活。所以,咱们先把基础打牢。

2.1 采样定理:别让信号“说谎”

采样定理,说白了就是一句话:采样频率必须大于信号最高频率的两倍。为什么?因为低于这个频率,信号就会“混叠”,你采到的数据根本不是原来的样子。

我记得刚入行时,有个项目做音频采集。我图省事,选了8kHz的采样率,觉得人耳能听到20kHz,8kHz够了吧?结果回放时,高频部分全变成了“吱吱”的噪声。后来一查,原来信号里混入了20kHz以上的噪声,采样率不够,这些噪声被“折叠”回了音频频带。嗯,从那以后,我每次选采样率都会留出余量,至少2.5倍。

核心公式:

f_s ≥ 2 × f_max

其中 f_s 是采样频率,f_max 是信号最高频率。

我的经验:实际项目中,我建议采样率取信号最高频率的3~5倍。比如信号最高1kHz,采样率至少3kHz。这样既能保证精度,又不会浪费功耗。

2.2 量化与编码:模拟世界的“数字化”翻译

采样之后,我们得到的是时间上离散的模拟值。接下来要做的,就是把这些值“翻译”成数字。这个过程叫量化与编码。

量化,说白了就是把连续的电压范围分成若干份。比如一个0~3.3V的信号,你用8位ADC,就分成256份。每一份对应一个数字码。编码呢,就是把每个数字码用二进制表示出来。

这里有个坑:量化必然带来误差。你想想看,一个连续的模拟值,硬要归到某个离散的台阶上,肯定有偏差。这个偏差就是量化噪声。

避坑指南:我曾经在一个电池监测项目中,用了12位ADC,觉得精度够了。结果发现电池电压变化很慢,量化噪声反而成了主要误差源。后来我改用过采样+求平均的方法,才把噪声压下去。所以,量化位数不是越高越好,要看信号特性。

量化误差的公式很简单:

量化误差 = ± (LSB / 2)

其中LSB是最低有效位对应的电压值。比如3.3V的12位ADC,LSB = 3.3V / 4096 ≈ 0.8mV。那么量化误差就是±0.4mV。

2.3 ADC主要性能指标:选型时的“照妖镜”

选ADC时,我们主要看三个指标:分辨率、采样率、信噪比。这三个指标直接决定了ADC能不能用,以及功耗有多高。

2.3.1 分辨率:你能看到多小的变化?

分辨率就是ADC能分辨的最小电压变化。说白了,就是LSB的大小。分辨率越高,LSB越小,你能看到的细节就越多。

举个例子:

位数 LSB(3.3V参考) 适用场景
8位 12.9 mV 温度、光照等慢变信号
10位 3.2 mV 音频、简单传感器
12位 0.8 mV 电池电压、精密测量
16位 0.05 mV 医疗、仪器仪表

我个人习惯是:先算一下信号的最小变化量,然后选分辨率比它高2~3位的ADC。比如信号最小变化1mV,那就选12位以上。

2.3.2 采样率:你能多快“拍照”?

采样率决定了ADC每秒能采集多少个点。单位是SPS(Samples Per Second)。采样率越高,能捕捉的信号频率就越高,但功耗也越大。

这里有个权衡:在电池设备里,采样率往往是功耗的“大头”。我做过一个可穿戴设备,心率监测只需要100SPS,但为了省电,我硬是降到了50SPS,然后用软件插值。效果还不错,功耗降了30%。

关键点:采样率不是越高越好。够用就行,多出来的都是功耗。

2.3.3 信噪比(SNR):信号有多“干净”?

信噪比是信号功率与噪声功率的比值,单位是dB。ADC的SNR主要受量化噪声和电路噪声影响。理论上,理想ADC的SNR公式是:

SNR = 6.02 × N + 1.76 dB

其中N是位数。比如12位ADC,理论SNR = 6.02×12 + 1.76 ≈ 74 dB。

但实际中,SNR往往比理论值低。为什么?因为电路里有热噪声、电源噪声、时钟抖动等。我遇到过最头疼的一次,是ADC的SNR比理论值低了10dB,查了半天,发现是电源纹波太大。后来加了个LDO,问题才解决。

我的建议:选ADC时,别只看理论SNR。要看数据手册里的“有效位数”(ENOB)。ENOB = (SNR - 1.76) / 6.02。比如一个12位ADC,实际SNR只有68dB,那ENOB ≈ (68 - 1.76) / 6.02 ≈ 11位。这才是你真正能用的精度。

2.4 小结:选ADC的“三步法”

好了,咱们回顾一下。选ADC时,我一般按这三步走:

  1. 定采样率:根据信号最高频率,留出2.5~5倍余量。
  2. 定分辨率:根据信号最小变化量,选高2~3位的ADC。
  3. 验SNR:看实际ENOB,确保满足系统要求。

这三步走完,ADC选型基本不会出大错。当然,低功耗设计里还有更多门道,比如怎么让ADC在休眠时几乎不耗电,怎么用逐次逼近型(SAR)ADC来省电。这些咱们后面章节再细聊。

嗯,今天就到这里。下节课咱们讲ADC的功耗模型,到时候我会拿几个实际芯片的数据来拆解。各位回去可以想想:你手头的项目里,ADC的采样率和分辨率是不是选高了?有没有可能降一降来省电?