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的几种主流架构,看看逐次逼近型和Σ-Δ型到底怎么选。