ADC噪声全面分析 -01- ADC噪声的类型以及ADC特性
前言
本文主要对ADC的噪声进行分析分类,并分析了高低分辨率的ADC特性差异,以便于利用ADC特性进行更好的系统设计。
ADC 噪声的类型
噪声是添加到所需信号上的任何不需要的信号(通常是随机的),导致它偏离其原始值。 所有电气系统都固有噪声,因此不存在“无噪声”电路。
在电子电路中,噪声有多种形式,包括:
-
宽带(thermal ,Johnson)噪声,它是由电导体内的电荷物理运动引起的与温度相关的噪声。
-
1/f(pink,flicker)噪声,它是一种低频噪声,其功率密度与频率成反比。
-
爆米花(burst)噪声,本质上是低频且由设备缺陷引起,使其随机且在数学上不可预测。
这些形式的噪声可能通过多种来源进入信号链,包括:
-
ADC,它产生热噪声和量化噪声的组合。
-
内部或外部放大器,可以添加宽带和 1/f 噪声,然后 ADC 对其进行采样,从而影响输出代码结果。
-
内部或外部参考电压,也会产生出现在 ADC 输出代码中的宽带和 1/f 噪声。
-
非理想电源,可能会通过多种耦合方式将噪声添加到您尝试测量的信号中。
-
内部或外部时钟,它们产生的抖动会转化为非均匀采样。 这似乎是正弦输入信号的额外噪声源,通常对高速 ADC 更为关键。
-
印刷电路板 (PCB) 布局不佳,可能会将来自系统其他部分或环境的噪声耦合到敏感的模拟电路中。
-
传感器,它可能是高分辨率系统中噪音最大的组件之一。
下图描绘了典型信号链中的这些噪声源。
ADC 中的固有噪声
可以将总 ADC 噪声分为两个主要来源:量化噪声和热噪声。 这两个噪声源不相关,因此可以使用和方根法来确定总 ADC 噪声 NADC,Total,如公式 1 所示:
每个 ADC 噪声源都具有特定的属性,这些属性在了解如何减轻固有 ADC 噪声时非常重要。
下图描绘了 ADC 的理想传递函数图(不受失调或增益误差的影响)。 传递函数从最小输入电压水平延伸到最大输入电压,并根据沿垂直轴的 ADC 代码总数分为多个步骤。 这个特定的图有 16 个编码(或步骤),代表一个 4 位 ADC。 (注意:使用直接二进制代码的 ADC 将具有仅包括第一象限的传递函数。)
量化噪声来自将无限数量的模拟电压映射到有限数量的数字代码的过程。 因此,任何单个数字输出都可以对应多个模拟输入电压,这些电压可能相差 ½ 最低有效位 (LSB),如公式中所定义:
L
S
B
s
i
z
e
(
V
)
=
F
S
R
2
N
LSB size (V) = \frac {FSR} {2^N}
LSBsize(V)=2NFSR
其中 FSR 表示以伏特为单位的满量程 (FSR) 值,N 是 ADC 的分辨率。
如果将此 LSB 误差映射到一个量化的 AC 信号,将得到如下图所示的图。请注意量化的阶梯形数字输出与平滑的正弦模拟输入之间的差异。 取这两个波形之间的差异并绘制结果会产生如图 底部所示的锯齿形误差。该误差在 ±½ LSB 之间变化,并在结果中显示为噪声。
类似地,对于 DC 信号,与量化相关的误差在输入信号的 ±½ LSB 之间变化。然而,由于直流信号没有频率分量,量化“噪声”实际上表现为 ADC 输出中的偏移误差。最后,量化噪声的一个明显但重要的结果是 ADC 无法测量超出其分辨率,因为它无法区分输入中的子 LSB 变化。
与量化噪声不同,量化噪声是模数(或数模)转换过程的副产品,热噪声是所有电气元件中固有的一种现象,是电导体内电荷物理运动的结果。 因此,即使不应用输入信号,您也可以测量热噪声。
不幸的是,不能影响 ADC 的热噪声,因为它是设备设计的函数。在其余部分,将把量化噪声以外的所有 ADC 噪声源称为 ADC 的热噪声。
下图描绘了时域中的热噪声,它通常具有高斯分布。
虽然无法影响 ADC 的固有热噪声,但可能会改变 ADC 的量化噪声水平,因为它取决于 LSB 大小。 然而,量化这种变化的重要性取决于您使用的是“低分辨率”还是“高分辨率”ADC。
低分辨率 ADC 与高分辨率 ADC差异
低分辨率 ADC 是指总噪声更依赖于量化噪声的任何器件,例如,
N
A
D
C
,
Q
u
a
n
t
i
z
a
t
i
o
n
>
>
N
A
D
C
,
T
h
e
r
m
a
l
N_{ADC,Quantization} >> N_{ADC,Thermal}
NADC,Quantization>>NADC,Thermal
相反,高分辨率 ADC 是其总噪声更依赖于热噪声的任何器件,例如,
N
A
D
C
,
Q
u
a
n
t
i
z
a
t
i
o
n
<
<
N
A
D
C
,
T
h
e
r
m
a
l
N_{ADC,Quantization} << N_{ADC,Thermal}
NADC,Quantization<<NADC,Thermal
低分辨率和高分辨率之间的转换通常发生在 16 位级别,小于 16 位的任何器件都被视为低分辨率,而大于 16 位的任何器件都被视为高分辨率。
为什么要在 16 位级别进行区分?
下表中a 显示了ADS114S08(一种 16 位 delta-sigma ADC)的实际噪声表,而表b 显示了其 24 位对应物 ADS124S08 的噪声表。 除了分辨率之外,这些 ADC 是相同的。
在 16 位 ADS114S08 的噪声表中,无论数据速率如何,所有输入参考噪声电压都相同。将其与 24 位 ADS124S08 的输入参考噪声值进行比较,这些值都是不同的,并且会随着数据速率的降低而降低/提高。
虽然这本身并不能得出任何明确的结论,但使用公式来计算每个 ADC 的 LSB 大小,假设参考电压为 2.5V:
L S B A D S 114 S 08 = 2 × V R E F 2 N = 2 × 2.5 2 1 6 = 76.3 µ V LSB_{ADS114S08}=\frac {2×V_{REF}}{2^N} =\frac {2×2.5}{2^16}= 76.3 µV LSBADS114S08=2N2×VREF=2162×2.5=76.3µV
L S B A D S 124 S 08 = 2 × V R E F 2 N = 2 × 2.5 2 2 4 = 0.298 µ V LSB_{ADS124S08}=\frac {2×V_{REF}}{2^N} =\frac {2×2.5}{2^24}= 0.298µV LSBADS124S08=2N2×VREF=2242×2.5=0.298µV
结合这些观察结果,可以看到其数据表中报告的低分辨率(16 位)ADC 的噪声性能与其 LSB 大小(最大量化噪声)相当。 另一方面,高分辨率(24 位)ADC 数据表中报告的噪声明显远大于其 LSB 大小(量化噪声)。 在这种情况下,高分辨率 ADC 的量化噪声非常低,以至于它被热噪声有效地隐藏了。
下图定性地表示了这种比较:
如何利用这个结果来发挥ADC的优势?
对于量化噪声占主导地位的低分辨率 ADC,**可以使用较小的参考电压来减小 LSB 大小,从而降低量化噪声幅度。**这具有降低 ADC 总噪声的效果,如下图所示。
对于热噪声占主导地位的高分辨率 ADC,**使用更大的参考电压来增加 ADC 的输入范围(动态范围),同时确保量化噪声水平保持在热噪声以下。**假设没有其他系统发生变化,这个增加的参考电压可以实现更好的信噪比,如下图所示。
小结
-
噪音是所有电子系统固有的,无法彻底去消除。
-
噪声通过所有信号链组件引入。
-
有两种主要类型的 ADC 噪声:
- 量化噪声,它与参考电压成比例。
- 热噪声,对于给定的ADC,它是一个固定值。
-
根据 ADC 的分辨率,一种类型的噪声通常占主导地位:
-
高分辨率 ADC 特性:
-
以热噪声为主
-
分辨率通常>1 LSB。
-
增加参考电压以增加动态范围。
-
-
低分辨率ADC 特性:
- 以量化噪声为主。
- 分辨率通常受 LSB 大小的限制。
- 降低参考电压以降低量化噪声并提高分辨率。
-
相关文章
- ABP源码分析二十:ApplicationService
- jQuery源码分析系列(36) : Ajax - 类型转化器
- 关于需求分析的几点体会
- 几种java线程池的实现算法分析
- Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
- Hashtable数据存储结构-遍历规则,Hash类型的复杂度为啥都是O(1)-源码分析(阿里)
- Atitit Mysql查询优化器 存取类型 范围存取类型 索引存取类型 AND or的分析
- SAP UI5 日期类型 sap.ui.model.type.Date 的显示格式问题分析
- Android WindowManger的层级分析详解
- Android Framework 全面分析Zygote
- SRS源码分析--RTMP 视频流转 WebRTC 视频流分析
- spring源码阅读--aop实现原理分析
- L2TP NAS initial中整个交互过程分析
- 【Linux 内核 内存管理】memblock 分配器 ② ( memblock_type 内存块类型 | memblock_type 结构体成员分析 )
- 【Linux 内核 内存管理】memblock 分配器 ① ( memblock 分配器简介 | memblock 结构体成员分析 | 物理内存类型 与 内存类型 )
- 【Linux 内核 内存管理】物理内存组织结构 ⑤ ( 内存区域 zone 类型简介 | 内存区域类型zone_type 枚举源码分析 | zone_type 枚举源码 )
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexPathList 中根据 File 加载 DexFile | loadDexFile 分析 )
- 【Android 性能优化】布局渲染优化 ( GPU 过度绘制优化总结 | CPU 渲染过程 | Layout Inspector 工具 | View Tree 分析 | 布局组件层级分析 )
- LCC编译器的源程序分析(13)指针类型的声明
- LCC编译器的源程序分析(15)结构类型成员的声明
- NLP情感分析笔记(五):多类型情感分析
- SQL Server-【知识与实战IV】多表查询、个数计算、多重约束条件、两表间的交集、多表之间的关系分析
- Tomcat 中的 NIO 源码分析
- 智能运维的落地案例 | 基于业务全景的风险分析观测