大家在使用ADC的时候,往往最关注位数,而对ADC的线性度往往会忽略。

其实这个线性度也是ADC非常重要的指标,ADC(或DAC,其实ADC也是由DAC组成的)线性度指标有两个:

INL:翻译过来叫“积分非线性”,指的是ADC整体的非线性程度。

DNL:翻译过来叫“微分非线性”,指的是ADC局部(细节)的非线性程度。

我们通常讲的“线性度”都是指“积分非线性”,积分非线性一般以百分比给出,或者以位数给出。举个例子:AD7705(16位)的datasheet上说有0.003%的非线性。1LSB为1/65535=0.0015%,所以也可说AD7705有2LSB的非线性。“微分非线性”不常用, AD7705的datasheet上说:“16位无失码”,那就是说明它的微分非线性小于1LSB。

再举个例子:有一把10厘米的尺子,分度为1mm(分辨率,相当于ADC的1LSB),那总共有100小格(满量程为100LSB,7位ADC都不到)。

“微分非线性”指的是,每一小格长度和理想的一小格长度(定为1mm)之间的误差。就是说这把尺子有疏有密,假设这把尺子有些小格的长度分别为: 0.8mm, 0.9mm,1.0mm,1.1mm,1.3mm。那么 1.3mm的小格对应的“微分非线性”为:1.3mm–1mm = 0.3mm,0.8mm的小格对应的“微分非线性”为0.8mm–1mm = -0.2mm,取绝对值就是0.2mm。取最大的误差值0.3mm(也就是0.3LSB)定义为这把尺子的“微分非线性”。

“积分非线性”是微分非线性误差的积累,是某一长段区间(有可能在3cm处,也有可能在5cm处有最大误差)和真实长度的误差。“积分”就是对一段区间内的“微分”求代数和嘛(离散域)。

好的微分非线性并不能保证有一个好的积分非线性,因为假如微分非线性的误差很小,但都是正的,那积分非线性就会很大(假如尺子有100小格,每一小格的的微分非线性误差累加起来就很大)。但是好的积分非线性可以保证有一个好的微分非线性。

有些人会问,假如有一把尺子的每一小格都是0.9mm,这时INL和DNL为多少?这时候格子的疏密是均匀的,DNL为0mm,INL也为0%,也就是线性度非常理想(我这里把理想一小格长度定为0.9mm)。但是这样的尺子是不准确的,我们说这把尺子有一个增益误差(这里就是0.9倍)。就是说你用这把尺寸量到一个物体长度读数为10CM,需要再乘上0.9这个系数,物体的真实尺寸为10CM*0.9=9CM。我们使用一些ADC时,常常要做增益校准,做的就是这个事(用一个标准的信号源,把这个0.9的系数给算出来,存到单片机或者E2PROM里面)。

说到这里大家对ADC线性度概念应该可以明白一些了,但是如何把一个ADC芯片的线性度测量出来,那可不是容易的事。特别是高位数的ADC,比如16位,笨一点的办法,就是测65536个点,计算得到积分非线性,如果是24位的ADC,估计一两年之内都测不完。

对ADC(DAC)的线性度(INL和DNL)的一点理解 [转]的更多相关文章

  1. ADC相关参数之---INL和DNL

    笔者最近在做的一个项目中,用到一片16位的高分辨率的芯片,借此再学习一下由于ADC和DAC的相关知识,以此巩固. 关于ADC的精度和分辨率将在另外一篇博客讨论,分辨率不等于精度. 一块精度0.2%(或 ...

  2. ADC/DAC的一些参数

    1.LSB,Least Significant Bit LSB是指最低位一个bit的权值,比喻ADC是一把尺子,那LSB则是它的最小刻度.LSB=Vfs/(2^N),Vfs为full scale vo ...

  3. ADC/DAC设计常见40问

    本文章是关于ADC/DAC设计经典问答,涵盖时钟占空比.共模电压.增益误差.微分相位误差.互调失真等常见问题. 1. 什么是小信号带宽(SSBW)? 小信号带宽(Small Signal Bandwi ...

  4. 嵌入式硬件之ADC/DAC

    嵌入式硬件之ADC/DAC 写在前面 这几天在做一个寒假练项目,其中涉及到了音频的处理,ADC.DAC再次进入到了我的视野,并引起了我新的思考. 1.初次相识 记得去年七月份,本科毕业刚离校,就到研究 ...

  5. 对于adc dac使用细节

    1. 要更具内部线路图决定引脚分配,adc和dac绑定在一个线路上,所以设计的时候最好尽量间隔三个引脚以上,如果adc必须放到一起,请使用开关控制,但是dma等可能不能正常工作. 2.dac输出内部缓 ...

  6. (转载)高速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是相 ...

  7. SRM32(8)——ADC和DAC

    1.ADC简介 STM32 拥有 1~3 个 ADC(STM32F101/102 系列只有 1 个 ADC)STM32F103至少拥有2个ADC,STM32F103ZE包含3个ADC,这些 ADC 可 ...

  8. ADC 分辨率和精度的区别

    分辨率和精度这两个,经常拿在一起说,才接触的时候经常混为一谈.对于ADC来说,这两样也是非常重要的参数,往往也决定了芯片价格,显然,我们都清楚同一个系列,16位AD一般比12位AD价格贵,但是同样是1 ...

  9. DAC Essentials

    http://e2e.ti.com/blogs_/b/analogwire/archive/tags/DAC%2bEssentials DAC Essentials: A new blog serie ...

随机推荐

  1. 聊下并发和Tomcat线程数(错误更正)

    本文前半部分结论存在严重错误,请看最后2015-1-20更新部分. 最近一直在解决线上一个问题,表现是: Tomcat每到凌晨会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线程池 ...

  2. 一些关于Viewport与device-width的东西~

    进行移动web开发已经有一年多的时间了,期间遇到了一些令人很困惑的东西.比如: 我们经常使用的<meta name="viewport" content="widt ...

  3. Python之路第一课Day3--随堂笔记(文件操作)

    一.集合的介绍 1.集合操作 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = se ...

  4. Linux中syntax error near unexpected token 错误提示解决方法

    Linux中syntax error near unexpected token ... 错误提示有一般有两种原因: 1)window和Linux下换行符不一致导致 window下的换行和Linux下 ...

  5. mysql数据库日期,ip等处理

    一.日期 1.select now(); 查询当前时间,格式为:年-月-日 时:分:秒,如2015-12-17 17:37:20 2.select unix_timestamp(); 将字符串类型的日 ...

  6. 重学ps_1

    1,选取 打开图片->点击选取工具->ctrl+c->ctrl+n->ctrl+v 2,去除图片背景 打开你要去除背景的图片->在图层面板中->双击图层把图层改为0 ...

  7. ios调用百度地图定位遇到的奇葩问题

    app项目过程中需要用到百度地图,然后网上可以查资料看官网文档,最后弄了好几天还是不行,找了各位前辈帮忙虽然解决了,但是把代码拷贝到我的项目时又无法定位了,最后查看了下原因是info配置出了问题,不是 ...

  8. python计算apache总内存

    #!/usr/bin/env python import os from subprocess import Popen, PIPE def getPid(): p=Popen(['pidof','h ...

  9. java基础总结——基础语法2(语句)

    1.1.       判断语句(if语句) 1.1.1. If语句的三种格式: 1.1.2. if语句特点: 每一种格式都是单条语句(单条不是单行,单条是一个整体). 第二种格式与三元运算符的区别:三 ...

  10. Virtualbox 虚拟机支持硬件摄像头

    最近我们公司做了一个摄像头项目,需要测试各种浏览器的情况,我就安装了一个Win xp的虚拟机,但是发现无法找到摄像头,经过查阅资料找到了解决办法 前提环境 Mac电脑 Virtualbox 虚拟机 虚 ...