(转载)高速ADC的关键指标:量化误差、offset/gain error、DNL、INL、ENOB、分辨率、RMS、SFDR、THD、SINAD、dBFS、TWO-TONE IMD
(一)一个基本概念
分贝(dB):按照对数定义的一个幅度单位。对于电压值,dB以20log(VA/VB)给出;对于功率值,以10log(PA/PB)给出。dBc是相对于一个载波信号的dB值;dBm是相对于1mW的dB值。对于dBm而言,规格中的负载电阻必须是已知的(如:1mW提供给50Ω),以确定等效的电压或电流值。
(二)静态指标定义
1、量化误差(Quantization Error)
量化误差是基本误差,用简单3bit ADC来说明。输入电压被数字化,以8个离散电平来划分,分别由代码000b到111b去代表它们,每一代码跨越Vref/8的电压范围。代码大小一般被定义为一个最低有效位(Least Significant Bit,LSB)。若假定Vref=8V时,每个代码之间的电压变换就代表1V。换言之,产生指定代码的实际电压与代表该码的电压两者之间存在误差。一般来说,0.5LSB偏移加入到输入端便导致在理想过渡点上有正负0.5LSB的量化误差。
2、偏移与增益误差(Offset Gain Error)
器件理想输出与实际输出之差定义为偏移误差,所有数字代码都存在这种误差。在实际中,偏移误差会使传递函数或模拟输入电压与对应数值输出代码间存在一个固定的偏移。通常计算偏移误差方法是测量第一个数字代码转换或“零”转换的电压,并将它与理论零点电压相比较。增益误差是预估传递函数和实际斜率的差别,增益误差通常在模数转换器最末或最后一个传输代码转换点计算。
为了找到零点与最后一个转换代码点以计算偏移和增益误差,可以采用多种测量方式,最常用的两种是代码平均法和电压抖动法。代码平均测量就是不断增大器件的输入电压,然后检测转换输出结果。每次增大输入电压都会得到一些转换代码,用这些代码的和算出一个平均值,测量产生这些平均转换代码的输入电压,计算出器件偏移和增益。电压抖动法和代码平均法类似,不同的是它采用了一个动态反馈回路控制器件输入电压,根据转换代码和预期代码的差对输入电压进行增减调整,直到两代码之间的差值为零,当预期转换代码接近输入电压或在转换点附近变化时,测量所施加的“抖动”电压平均值,计算偏移和增益。
(三)动态指标定义
1、有效位数(ENOB):模数转换器(ADC)与输入频率fIN相关的测试指标(位)。随着fIN的增大,整体噪声(特别是失真成分)将会增大,因而降低了ENOB和SINAD性能。另注:位数和有效位数的区别
因为理想的ADC(只包含量化噪声)的信噪比可有公式:
SNR = (1.76 + 6.02*N)dB
计算得到,其中噪声只包含量化噪声。如果ADC没有其他噪声而只有量化噪声的话,则采样位数N和有效位数Neff一样。
但实际情况中还有一些其他噪声存在,所以通过上述公式计算出的位数N就是有效位数,它要小于N(采样位数),这里就有了采样位数和有效位数之分。
即采样位数N是只有量化误差时,ADC能够到达的处理精度;
有效位数Neff是实际处理中,ADC能够到达的处理精度。
2、分辨率:模拟信号被量化时,它是以有限的离散电压电平表示的,分辨率是用来表示信号的离散电平个数。为了更精确地恢复模拟信号,必须提高分辨率。分辨率通常定义为位数,利用更高的分辨率进行转换可以降低量化噪声。
3、均方根(RMS):表示交流信号的有效值或有效直流值。对于正弦波,RMS是峰值的0.707倍,或者是峰-峰值的0.354倍。
4、无杂散动态范围(SFDR):正弦波fIN (对于ADC指的是输入正弦波,对于ADC/DAC指的是重建的输出正弦波)的RMS值与在频域观察到的杂散信号的RMS值之比,典型值以分贝表示。SFDR在一些需要最大转换器动态范围的通信系统中非常重要。
无杂散动态范围表明模数转换器在输入大信号的同时所能检测到的最小信号的能力,这也是实际应用中的一个非常重要的性能参数。当转换器用在过采样率很高或者转换器的频谱性能很重要的情况下,无杂散动态范围的指标是标志系统性能的一个很重要的参数。

5、总谐波失真(THD):出现在输入(DAC为输出)频率整数倍频点(谐波)的失真的RMS值与输入(或输出)正弦波的RMS值之比。
6、信号与噪声 + 失真比(SINAD):直流到奈奎斯特频段内,正弦波fIN (对于ADC指的是输入正弦波,对于ADC/DAC指的是重建的输出正弦波)的RMS值与转换器噪声的RMS值之比,包括谐波成分。
7、dBFS(dB Full Scale) :是数字信号电平单位,简称满度相对电平。Full Scale 指0 dBFS 的位置, 0 dBFS就是最大编码电平,不同ADC的0 dBFS 实际对应值不同,它也是数字峰值表满度的参考电平。数字信号以ADC能处理的最大模拟信号的编码为最大值,即0 dBFS, 实际数字信号的幅度的编码相对于这个最大值的信号编码所代表的幅度之比,即为满度相对电平(dBFS)。因为规定最大值为0 的位置,所以,一片ADC实际处理的信号的满度相对电平都是负值。
一个12位的ADC芯片的dBFS的求法:
dBFS = 20 * log10(采样信号 / 1111 1111 1111)。
所以在ADC数据文档中经常看到fin = -1dBFS;这样通过上面公式可以计算得到,这里的-1dBFS的fin的幅度相当于满刻度输入幅度的0.8913。
8、TWO-TONE IMD(two-tone intermodulation distortion):双阶互调失真
TWO-TONE IMD是ADC处理两个正弦波的混合信号时,在两个输入信号fin1 和 fin2 的(fin1 -fin2)和(fin1 +fin2)频点处产生的谐波失真。
如下图所示:

(转载)高速ADC的关键指标:量化误差、offset/gain error、DNL、INL、ENOB、分辨率、RMS、SFDR、THD、SINAD、dBFS、TWO-TONE IMD的更多相关文章
- Support Vector Machine (3) : 再谈泛化误差(Generalization Error)
目录 Support Vector Machine (1) : 简单SVM原理 Support Vector Machine (2) : Sequential Minimal Optimization ...
- MMS关键指标意义&各数值区间意义
MMS关键指标意义&各数值区间意义 What's MMS MongoDB Management Service (MMS) is a suite of services for managin ...
- windows服务器性能监控工具、方法及关键指标
原文:http://www.cnblogs.com/liulun/p/3543777.html 监控方法 推荐使用windows自带的“性能监视器”(老版本的windows叫性能计数器)来监控服务器的 ...
- FPGA高速ADC接口实战——250MSPS采样率ADC9481
一.前言 最近忙于硕士毕业设计和论文,没有太多时间编写博客,现总结下之前在某个项目中用到的一个高速ADC接口设计部分.ADC这一器件经常用于无线通信.传感.测试测量等领域.目前数字系统对高速数据采集的 ...
- 3星|《十大全球CEO亲授企业高速成长的关键战略》:作为CEO,我也非常坦率地表明过家庭优先于工作
十大全球CEO亲授 企业高速成长的关键战略(<哈佛商业评论>增刊) <哈佛商业评论>上的10来篇文章合集.大部分都看过,除了一篇中信的访谈,其他大部分是美国的有点旧的案例. 总 ...
- AI大厂算法测试心得:人脸识别关键指标有哪些?
仅仅在几年前,程序员要开发一款人脸识别应用,就必须精通算法的编写.但现在,随着成熟算法的对外开放,越来越多开发者只需专注于开发垂直行业的产品即可. 由调查机构发布的<中国AI产业地图研究> ...
- 用STM32内置的高速ADC实现简易示波器
做一个数字采样示波器一直是我长久以来的愿望,不过毕竟这个目标难度比较大,涉及的方面实在太多,模拟前端电路.高速ADC.单片机.CPLD/FPGA.通讯.上位机程序.数据处理等等,不是一下子就能成的,慢 ...
- Web性能测试中的几个关键指标
系统吞吐量 吞吐量指单位时间内系统处理的请求数量,体现系统的整体处理能力.对于网站,可以用"请求数/秒"或是"页面数/秒"来衡量,也可以用"访问人数/ ...
- iOS测试-如何指标量化app耗电量和性能XCTest Metrics
对于app端的专项测试,Android端我们可以用adb或者一些三方工具进行(例如itest)进行实时的性能监控,iOS端的话也可以用用一些三方的工具,但是需要嵌入到我们的项目当中,今天来介绍下Xco ...
随机推荐
- C# 返回泛型
public static T GetObj(Employee model) { T result = default(T); if (model is T) { result = (T)(objec ...
- 如何在Java 8中愉快地处理日期和时间
Java 8新增了LocalDate和LocalTime接口,为什么要搞一套全新的处理日期和时间的API?因为旧的java.util.Date实在是太难用了. java.util.Date月份从0开始 ...
- ES6入门之Generator函数
Generator Generator函数是ES6提供的一种异步编程解决方案,Generator函数是一个状态机,封装了多个内部状态. 执行Generator函数会返回一个遍历器对象,也就是说,Gen ...
- [JWFD开源工作流]JWFD开源工作流官方下载内容更新
在更新版的JWFD二次开发包中,我正在实现单线程的时钟控制器,动了下引擎的源代码,这个更新包主要是升级界面,内核代码,大家就不用升级了.. 代码提示: 请修改代码包中(org.jwfd.workflo ...
- Android使用 LruCache 缓存图片
摘要:在你应用程序的UI界面加载一张图片是一件很简单的事情,但是当你需要在界面上加载一大堆图片的时候,情况就变得复杂起来. 使用图片缓存技术 在 你应用程序的UI界面加载一张图片是一件很简单的事情,但 ...
- 关于android软键盘enter键的替换与事件监听
android软键盘事件监听enter键 软件盘的界面替换只有一个属性android:imeOptions,这个属性的可以取的值有 normal,actionUnspecified,actionNo ...
- UVa 1607 (二分) Gates
这道题真的有点“神”啊.= ̄ω ̄= 因为输入都是x,所以整个电路的功能一共就四种:0, 1, x,!x 所以就确定了这样一个事实:如果电路的输出是常数,那么所有的输入都可以优化成常数. 否则,只需要将 ...
- UVa 10859 Placing Lampposts
这种深层递归的题还是要多多体会,只看一遍是不够的 题意:有一个森林,在若干个节点处放一盏灯,灯能照亮与节点邻接的边.要求:符合要求的放置的灯最少为多少,在灯数最少的前提下,一条边同时被两盏灯照亮的边数 ...
- asp.net web forms和asp.net mvc比较
ASP.NET Webforms Behind Code的好处和存在的问题 ASP.NET Webforms是一个RAD/VISUAL(快速可视化)的Web程序开发技术.也就是说,开发者简单地拖拽控件 ...
- 30条MySQL优化总结
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...