模数转换器原理 模数转换计算
模数转换器原理 模数转换计算
好的,我们来用中文详细解释一下模数转换器(ADC)的原理和相关的计算。
模数转换器(ADC)原理
模数转换器(Analog-to-Digital Converter, ADC)的核心任务是将连续变化的模拟信号(如声音、温度、压力、光照强度等)转换成计算机或数字系统可以处理和存储的离散数字信号。
这个过程主要有三个关键步骤:
-
采样(Sampling):
- 原理: 以固定的时间间隔(称为采样周期
Ts)测量(或“抓取”)连续模拟信号的瞬时电压值。 - 目的: 在时间上将连续的模拟信号离散化,得到一系列在时间上离散的样本点(电压值)。
- 关键参数: 采样频率(
fs):单位时间内采集的样本数(单位:Hz,次/秒)。根据奈奎斯特-香农采样定理,为了无失真地重建原始信号,采样频率fs必须至少是原始模拟信号中最高频率分量fmax的两倍,即fs >= 2 * fmax。如果达不到这个要求,就会产生频谱混叠(Aliasing),导致信息丢失和失真。
- 原理: 以固定的时间间隔(称为采样周期
-
量化(Quantization):
- 原理: 将采样得到的每个连续电压值(模拟量)映射到有限个离散的幅度等级(数字量)上。
- 目的: 在幅度上将连续的模拟电压值离散化。ADC的输出位数(如8位、10位、12位、16位、24位)决定了量化等级的数量。位数用N表示,则量化等级总数
L = 2^N。 - 关键过程:
- 划分量化区间: ADC的输入电压范围(如0V到
Vref参考电压)被分成L个等宽的小区间(称为量化台阶)。 - 映射规则: 每个采样点电压值落到哪个量化区间内,就被四舍五入(或截断)到该区间所代表的离散电压值上(通常是该区间的中间值)。这个离散的电压值就代表了该样本的数字量。
- 划分量化区间: ADC的输入电压范围(如0V到
- 关键概念/误差:
- 量化台阶(Step Size / LSB Size): 每个量化区间的宽度。用
Q或Δ表示。Q = (Vref_max - Vref_min) / (2^N)(假设输入范围是Vref_min到Vref_max,通常是0到Vref)Q = Vref / (2^N)(最常见的单极性0到Vref输入范围) - 最小有效位(Least Significant Bit - LSB): 量化台阶
Q对应的就是数字输出中最低位变化1所代表的模拟电压变化量。 - 量化误差(Quantization Error): 这是量化过程固有的、无法避免的误差,因为采样点的真实电压值
Vactual和其对应的量化值Vquant通常不完全相等。Error = Vactual - Vquant。这个误差在[-Q/2, +Q/2]范围内均匀分布。位数N越大,量化台阶Q越小,量化误差就越小。
- 量化台阶(Step Size / LSB Size): 每个量化区间的宽度。用
-
编码(Coding):
- 原理: 将量化后的每个离散电压值用固定位数的二进制数字(例如N位的二进制码)表示出来。
- 目的: 生成最终的数字输出,便于数字系统存储、处理和传输。
- 常用编码: 最简单也最常用的是自然二进制码(Binary Code)。其他编码有偏移二进制码(Offset Binary)、补码(Two's Complement,主要用于双极性信号)等。
- 输出: ADC完成这三个步骤后,最终输出的就是一个N位的二进制数(例如
1011),表示在采样时刻输入电压的量化值。
总结原理流程
模拟信号(连续电压) -> 采样(在离散时间点获取电压值) -> 量化(将连续电压值映射到有限个离散等级) -> 编码(将每个量化等级用二进制码表示) -> 数字信号(N位二进制序列)
模数转换计算
计算主要涉及上述三个步骤中的量化部分和编码结果的解读:
-
计算量化台阶(Q / LSB Size): 这是最基本也是最重要的计算,它定义了ADC的分辨率。
Q = (Full-Scale Input Voltage Range) / (2^N)其中:Q: 量化台阶(伏特/V)Full-Scale Input Voltage Range: ADC的输入电压范围上限减去下限(伏特/V)- 对于最常见的单极性ADC:
Full-Scale Range = Vref - 0V = Vref - 对于双极性ADC(如输入范围是-Vref到+Vref):
Full-Scale Range = (+Vref) - (-Vref) = 2 * Vref
- 对于最常见的单极性ADC:
N: ADC的位数(bit)2^N: 量化等级的数量 例1: 一个12位(N=12)ADC,参考电压Vref = 5V(单极性0-5V输入)。Q = 5V / (2^12) = 5V / 4096 ≈ 0.00122V = 1.22mV。 最低位(LSB)改变1代表的电压变化就是1.22mV。
-
计算数字输出代码(Code)对应的输入电压值(Vcode): 知道了量化台阶Q,就可以计算出特定的二进制码
D(转换后的十进制数)所表示的输入电压值:Vcode = Q * D(对于单极性0-Vref输入) 例2: 续例1(Q≈1.22mV)。若ADC输出的数字码是101010101010(二进制)。- 首先将其转换为十进制数D:
101010101010b = 2730d。 - 则对应的输入电压估算值:
Vcode ≈ 1.22mV * 2730 ≈ 3.3306V。 注意: 由于量化误差的存在,实际的输入电压Vactual在Vcode ± (Q/2)范围内。上例中实际电压在3.3306V ± 0.61mV之间(约3.330V到3.3312V之间)。- 通用公式(考虑Vref_min):
Vcode = Vref_min + Q * D(对于输入范围Vref_min到Vref_max)Vcode = Vref_min + ((Vref_max - Vref_min) / (2^N)) * D
- 通用公式(考虑Vref_min):
- 首先将其转换为十进制数D:
-
计算给定输入电压(Vinput)对应的输出代码(D): 这实际上是编码步骤的理论计算(实际ADC硬件会自动完成)。
D = (Vinput - Vref_min) / Q(结果向下取整或四舍五入,取决于ADC的量化方式,通常近似为四舍五入)D ≈ round( (Vinput - Vref_min) * (2^N) / (Full-Scale Range) )(四舍五入) 例3: 续例1(N=12, Vref=5V, Q=1.22mV)。若输入电压Vinput = 2.5V。- 计算步骤:
(2.5V - 0V) / (5V / 4096) = 2.5 * 4096 / 5 = 0.5 * 4096 = 2048 - 所以输出数字码(十进制)应为
2048。转换成二进制是100000000000(注意是12位)。 - 验证:
Q * 2048 = 1.22mV * 2048 = 2500mV = 2.5V(完美对应)。
- 计算步骤:
-
理解量化误差范围: 如前所述,由于量化过程,任何数字输出代码都代表输入电压在
Vcode - (Q/2)到Vcode + (Q/2)范围内的值。- 最大量化误差:
± Q/2 - 例4: 例1中Q=1.22mV,则最大量化误差为
±1.22mV / 2 = ±0.61mV。这意味着无论输入电压是多少,ADC测量值与真实值之间的差异不会超过±0.61mV(当然,假设没有其他误差源)。
- 最大量化误差:
-
奈奎斯特频率计算(避免混叠): 根据采样定理:可处理信号的最大频率
fmax = fs / 2实际应用中,为了更可靠地避免混叠,通常选择fs > 2.2 * fmax甚至更高(例如专业音频中常见fs = 44.1kHz或48kHz,处理fmax=20kHz音频,奈奎斯特频率是22.05k或24kHz)。
举例计算(贯穿全程)
- 场景: 使用一个8位(N=8)ADC,参考电压Vref=3.3V(输入范围0-3.3V),测量某个温度传感器的输出电压(假设现在电压是1.375V)。
- 采样: ADC以某个频率fs对该1.375V电压进行采样(假设fs已按奈奎斯特定理设计好)。
- 量化:
- 计算量化台阶
Q = 3.3V / 256 ≈ 0.01289V ≈ 12.89mV。 (因为 2^8 = 256) - 将该样本点电压1.375V映射到量化等级:
- 等级索引
D ≈ round(1.375V / 0.01289V) = round(106.66...) ≈ 107(四舍五入)。
- 等级索引
- 计算量化台阶
- 编码:
- 将量化等级索引107(十进制)编码成8位二进制数:
107d = 01101011b(左边高位,右边低位)。 - 输出数字代码:
01101011。
- 将量化等级索引107(十进制)编码成8位二进制数:
- 解读输出:
- 收到数字码
01101011b,先转成十进制:64 + 32 + 8 + 2 + 1 = 107d(或0*128 + 1*64 + 1*32 + 0*16 + 1*8 + 0*4 + 1*2 + 1*1 = 107)。 - 计算其代表的电压值:
Vcode = Q * D ≈ 0.01289V * 107 ≈ 1.37923V。 - 实际的输入电压在
Vcode ± (Q/2)之间:1.37923V ± 0.006445V,即1.372785V到1.385675V之间。已知真实值是1.375V,它确实落在这个范围内。
- 收到数字码
总结
理解ADC原理的核心是掌握采样(决定时间精度,遵循奈奎斯特定理)、量化(决定幅度精度和固有误差,由位数N决定分辨率和台阶Q)和编码(生成二进制输出)这三个步骤。计算主要围绕量化台阶Q、数字码与模拟电压值的互算以及量化误差进行。位数N越高,量化台阶Q越小,量化误差越小,分辨率就越高,对模拟信号的表示就越精确,但也意味着成本可能更高、数据处理量更大。
模数转换器ADC简介
ESP32 之 ESP-IDF 学习笔记(七)——模数转换器(ADC)文章目录ESP32 之 ESP-IDF 学习笔记(七)——模数转换器(ADC)一、简介1、两个 ADC 通道简介:2、减小
AD574ASE/883B高端AD模数转换器IC
AD9680BCPZRL7-1250高端AD模数转换器IC ADC 14BIT PIPELINED 64LFCSPAD9691BCPZRL7-1250高端AD模数转换器IC ADC 14BIT
5962-9581501HXA高端AD模数转换器
AD10242TZ/883B高端AD模数转换器IC ADC 12BIT 41MSPS DL 68CLCC5962-9581501HXA高端AD模数转换器IC ADC 12BIT 2 CH
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览