1. ADC/DAC基础概念:模拟信号与数字信号的区别、采样定理、量化与编码原理
各位同学,咱们今天聊点实在的。数据转换器这东西,说白了就是模拟世界和数字世界之间的“翻译官”。我做了十几年仪器仪表,见过太多因为没搞懂基础概念就贸然选型,最后板子调不通、数据乱跳的案例。所以这一章,咱们把地基打牢。
1.1 模拟信号与数字信号:两个世界的语言
先问个问题:你手里的温度计,水银柱上升是连续的,对吧?这就是模拟信号——在时间和幅值上都是连续的。而数字信号呢,就像你手机上的温度显示“25.3℃”,它是一串0和1组成的离散值。
模拟信号的特点:
- 连续变化,理论上可以取无穷多个值
- 容易受噪声干扰,传输过程中会衰减
- 处理起来不方便,存储也麻烦
数字信号的特点:
- 离散取值,只有0和1两种状态
- 抗干扰能力强,可以无损复制
- 便于存储、处理和传输
我个人的经验:有一次调试一个压力传感器,模拟信号线长了点,结果示波器上全是50Hz工频干扰。后来换成数字接口的传感器,问题立马解决。你想想看,模拟信号在长距离传输时,简直就是个“天线”,什么噪声都往里收。
但别以为数字信号就万能了。真实世界是模拟的——温度、压力、声音、光线,全是连续变化的。所以我们需要ADC(模数转换器)把模拟信号变成数字信号,也需要DAC(数模转换器)把数字信号变回模拟信号。
1.2 采样定理:别让你的信号“说谎”
说到采样,就绕不开奈奎斯特采样定理。这玩意儿太重要了,我建议你把它刻在脑子里。
采样定理的核心:为了能从采样后的离散信号中无失真地恢复出原始连续信号,采样频率必须大于等于信号最高频率的两倍。
用公式表示就是:
fs ≥ 2 × fmax
其中 fs 是采样频率,fmax 是信号中的最高频率分量。
为什么会这样?我打个比方:你拍电影,每秒24帧,如果车轮转得比24圈还快,拍出来车轮就像在倒转——这就是混叠效应。采样不够快,高频信号就会“伪装”成低频信号混进来。
避坑指南:我曾经在一个振动监测项目中,采样率只设了2.5倍信号频率,结果频谱分析出来一堆假峰。折腾了两天才发现是混叠了。后来老老实实加了抗混叠滤波器,采样率提到5倍以上,数据才靠谱。
实际工程中的建议:
- 理论值是2倍,但工程上我一般取3~5倍
- 采样前一定要加抗混叠滤波器(低通滤波器)
- 如果信号频率未知,先拿示波器看看再定采样率
1.3 量化与编码:从连续到离散的“舍入”艺术
采样把时间离散化了,但幅值还是连续的。量化就是把这个连续的幅值,映射到有限个离散的层级上。
量化过程说白了就是“四舍五入”:
- 把模拟信号的幅值范围分成若干等份(量化台阶)
- 每个采样值落到哪个台阶,就取那个台阶对应的数字值
- 台阶数由ADC的位数决定:N位ADC有2^N个台阶
举个例子:一个3位ADC,满量程0~5V。那么量化台阶就是5V / 2^3 = 0.625V。输入电压2.2V,落在第3个台阶(0~0.625是0,0.625~1.25是1...),所以输出数字是3(二进制011)。
这里有个关键点:量化必然带来误差。这个误差叫量化误差,最大是±1/2 LSB(最低有效位)。你想想看,2.2V和2.1875V(第3台阶的中点)差了0.0125V,这个差值就是误差。
编码就是把量化后的数字值变成二进制码:
- 自然二进制码:最常用,直接对应数值
- 偏移二进制码:用于双极性信号
- 补码:方便做加减运算
- 格雷码:相邻值只有一位变化,抗干扰好
| 输入电压 (V) | 量化值 | 自然二进制 | 格雷码 |
|---|---|---|---|
| 0 ~ 0.625 | 0 | 000 | 000 |
| 0.625 ~ 1.25 | 1 | 001 | 001 |
| 1.25 ~ 1.875 | 2 | 010 | 011 |
| 1.875 ~ 2.5 | 3 | 011 | 010 |
| 2.5 ~ 3.125 | 4 | 100 | 110 |
| 3.125 ~ 3.75 | 5 | 101 | 111 |
| 3.75 ~ 4.375 | 6 | 110 | 101 |
| 4.375 ~ 5.0 | 7 | 111 | 100 |
小技巧:在高速ADC应用中,格雷码很实用。因为每次只变化一位,能大大降低数据线上的毛刺。我有个项目用12位ADC,数据线并行输出,不加格雷码的话,每次跳变都能看到明显的毛刺干扰。
1.4 几个关键参数,选型时必看
搞懂了原理,咱们看看实际选型时最关心的几个参数:
分辨率:就是ADC的位数。12位比10位精细4倍。但别盲目追求高位数——位数高了,采样率往往就低了,价格也上去了。
采样率:每秒能采多少个点。注意和分辨率是矛盾的——你不可能又高分辨率又高采样率,得取舍。
信噪比(SNR):信号功率和噪声功率的比值。理论上每增加1位,SNR提高约6dB。实际器件会差一些。
有效位数(ENOB):这个参数我特别看重。很多ADC标称16位,实际有效位数可能只有14位。别被标称值忽悠了。
我的选型习惯:先确定需要的有效位数,然后往上留2位余量。比如需要12位精度,就选14位的ADC。采样率至少留3倍余量。这样出来的系统,基本不会在转换器上掉链子。
好了,这一章的基础概念就聊到这儿。记住:模拟信号是连续的,数字信号是离散的;采样要满足奈奎斯特定理;量化必然有误差,编码要选对格式。下一章咱们聊聊ADC的几种主流架构,看看逐次逼近型和Σ-Δ型到底怎么选。