数模转换(DAC)和模数转换(ADC)是信号在数字世界和模拟世界之间桥梁的两个相反过程。
简单来说,它们的区别在于转换的方向:
数模转换: 将数字信号转换为模拟信号。
模数转换: 将模拟信号转换为数字信号。
任务: 计算机里存储的是0和1,但要让扬声器发出声音、让显示器显示画面,需要的是连续变化的电压信号。DAC就是完成这个“从数字到模拟”的翻译官。
工作原理(以简单的加权电阻网络为例):
一个数字代码(比如8位二进制数 10110011)输入到DAC。DAC内部的电路会根据每一位的“权重”(1还是0),控制一组精密开关,接通或断开对应的电流源或电阻。所有这些电流/电压汇合在一起,就产生了一个与输入数字值成比例的模拟电压。
关键一步: 由于数字量是离散的,DAC输出的是一个阶梯波。通常会在输出端加上一个低通滤波器,平滑这些阶梯,使其更接近真正光滑的模拟波形。
一个简单的DAC输出阶梯波示意图
任务: 现实世界的声音、温度、压力、光线都是连续变化的模拟量。要让计算机处理这些信息,必须先把它们变成数字信号。ADC就是完成这个“从模拟到数字”的测量员。
工作原理(以常用的逐次逼近型ADC为例):
这个过程比DAC更复杂,通常包含四个步骤:
采样: 以一个固定的频率(采样率),快速“捕捉”模拟信号在某一瞬间的电压值。就像用相机连拍一个运动中的物体。
保持: 将采样到的电压值暂时保持住,以便后续电路有足够的时间对其进行处理。
量化: 将保持住的电压值与一组已知的基准电压 levels(量程)进行比较。这个过程会把连续的电压值“归类”到接近的、离散的电平上。这就像用一把有刻度的尺子去测量一个物体的长度,读数只能是尺子上的某个刻度值(如1.1cm, 1.2cm),而不能是无限的(如1.123456...cm)。量化会引入误差,即“量化误差”。
编码: 将量化后得到的离散电平值,转换成一个二进制数字代码(如8位或16位的数字),输出给数字系统(如微处理器)。
ADC的采样、量化和编码过程示意图
假设你有一个模拟温度计和一个数字温度计,正在测量一个缓慢变化的室温。
模拟温度计(水银或酒精温度计): 液柱的高度连续地、平滑地随着温度变化。这就是模拟信号。
数字温度计: 它的内部包含一个ADC。
现在,假设你想用计算机程序控制一个空调,让房间温度保持在25°C。
计算机发出指令“加大制冷功率”,这个指令是一个数字值。它需要通过一个DAC,转换成一个模拟电压信号(比如0-5V),这个电压再去控制空调压缩机的功率,使其平滑地增加或减少。
| 输入 | 输出 | 本质 | |
|---|---|---|---|
| ADC | 连续的真实世界信号(模拟) | 离散的数字代码 | 测量、数字化 |
| DAC | 离散的数字代码 | 连续的电压/电流(模拟) | 翻译、重建 |
它们通常协同工作,形成一个完整的“数字-模拟-数字”处理回路。例如,在音乐录制和回放中:
麦克风拾取声音(模拟)→ ADC 转换为数字信号 → 存储为MP3文件。
播放MP3文件(数字)→ DAC 转换为模拟信号 → 放大器放大 → 扬声器发出声音。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。