Integral nonlinearity (INL) and differential nonlinearity (DNL) of data converters

2023-11-09

Syntax

s = inldnl(analog,digital,range,type)

s = inldnl(___,Name,Value)

Description

example

s = inldnl(analog,digital,range,type) calculates the integral nonlinearity (INL) and differential nonlinearity (DNL) errors of ADCs and DACs. The function calculates INL and DNL using the analog and digital input output data and the nominal analog dynamic range of the converter. The function can calculate INL and DNL either using the endpoint method, or the best fit method, or using both methods.

The inldnl function only analyzes converters with a finite number of bits. That means ADCs must have saturation and quantization. The function ignores any digital value pairs that contain NaN values.

s = inldnl(___,Name,Value) calculates the INL and DNL errors of ADCs and DACs using one or more name-value pair arguments in addition to the input arguments in the previous syntax. Enclose each argument name in quotes. Unspecified arguments take default values.

Note

Initial conditions and other anomalous data can cause this function to behave erratically. This function can analyze nonmonotonic converters, but it cannot handle multiple distinct occurrences of the same code in one transfer function.

Examples

collapse all

Calculate INL and DNL of DAC

This example uses:

View MATLAB Command

Load the digital input and the analog output of a DAC from MAT-files.

load 'digital.mat'
load 'analog.mat'

The nominal analog dynamic range of the DAC is [-1,1]. Turn on plotting for the output converter threshold. Calculate INL and DNL using both best fit and endpoint methods.

inldnl(a,d,[-1 1],'DAC','GenPlotData','on','INLMethod','All','DNLMethod','All')

ans = struct with fields:
                Type: 'DAC'
               NBits: 5
                 LSB: 0.0645
        MissingCodes: [0x1 double]
               Codes: [1x32 double]
    IdealCodeCenters: [1x32 double]
         CodeCenters: [1x32 double]
       CodeCenterStD: [1x32 double]
         EndpointINL: [1x32 double]
          BestFitINL: [1x32 double]
         EndpointDNL: [1x32 double]
          BestFitDNL: [1x32 double]
         BestFitPoly: [0.0652 0.1293]
         OffsetError: 0.8294
           GainError: 0.5224
       GainErrorUnit: 'LSB'
           TCNominal: [32x2 double]
          TCMeasured: [32x2 double]

Input Arguments

collapse all

analog — Analog input to or output from device
vector

  • If the device under test (DUT) is an ADC, analog input to the ADC, specified as a vector.

  • If the DUT is a DAC, analog output from the DAC, specified as a vector.

Data Types: double

digital — Digital output from or input to device
integer vector

  • If the device under test (DUT) is an ADC, digital output from the ADC, specified as a vector of integers.

  • If the DUT is a DAC, digital input to the DAC, specified as a vector with integer values.

Data Types: fi | single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

range — Nominal analog dynamic range of device
2-element vector

type — Type of device
Auto | ADC | DAC

Type of the device under test, specified as AutoADC, or DAC. The type determines whether to analyze the data as an ADC or DAC.

If The type is set to Auto and if the transfer function is discrete, the inldnl function analyzes the data as a DAC. The transfer function is considered as discrete if the analog data is less than half of the digital code width for each digital code.

If The type is set to Auto and if the transfer function is continuous, the inldnl function analyzes the data as an ADC.

Data Types: string

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: inldnl(a,d,[-1 1],'DAC', 'INLMethod', 'All', 'DNLMethod','All') calculates the INL and DNL of a DAC using both endpoint and best fit method.

'OffsetErrorUnit' — Unit of reported offset error
LSB (default) | %FS | FS | All

Unit of reported offset error, specified as LSB (least significant bit), %FS (percentage full scale), FS (full scale), or all.

Data Types: string

'GainErrorUnit' — Unit of reported gain error
LSB (default) | %FS | FS | All

Unit of reported gain error, specified as LSB (least significant bit), %FS (percentage full scale), FS (full scale), or all.

Data Types: string

'GenPlotData' — Send output data vectors to output data structure
off (default) | on

Send the output data vectors of the inldnl function to the output data structure s, specified as off or on. If GenPlotData is set to on, the output data structure contains the output data vectors. The output data vectors can then be picked up by the DAC DC measurementDAC TestbenchADC DC Measurement, or ADC Testbench blocks to plot the DC analysis results.

Data Types: string

'INLMethod' — Method to calculate INL
Endpoint (default) | BestFit | All

Method to calculate INL, specified as EndpointBestFit, or all.

  • If INLMethod is set to Enpoint, the inldnl function compares each threshold's position to the threshold position of an ideal converter, as determined by a line from the first code transition to the last code transition.

  • If INLMethod is set to BestFit, the inldnl function first takes the best linear fit of the ADC or DAC transfer curve. Then the function proceeds to calculate the INL using the same steps as the Enpoint method.

Data Types: string

'DNLMethod' — Method to calculate DNL
Endpoint (default) | BestFit | All

Method to calculate DNL, specified as EndpointBestFit, or all.

  • If DNLMethod is set to Enpoint, the inldnl function compares each threshold's position to the threshold position of an ideal converter, as determined by a line from the first code transition to the last code transition to find the INL. The DNL is calculated from the difference between the elements of the INL vector.

  • If DNLMethod is set to BestFit, the inldnl function first takes the best linear fit of the ADC or DAC transfer curve. Then the function proceeds to calculate the DNL using the same steps as the Enpoint method.

Data Types: string

'AbsoluteError' — Return absolute error and full scale DNL for testing
off (default) | on

Return absolute error and full scale DNL for testing, specified as on or off. Absolute error is the total uncompensated error including offset error, gain error, and nonlinearities. In simulation, to specifically test that the measurements match the impairments, absolute error can be used instead of INL. This is because absolute error describes the entire transfer curve in a single vector.

Data Types: string

Output Arguments

collapse all

s — Output device information
structure

Output information of the inldnl function, returned as a structure. The output contains information about the device under test in these fields:

Name Values Description Data Types
Type ADC or DAC Type of the device under test (DUT) string
Nbits positive real integer Resolution of the ADC or DAC DUT double
LSB positive real scalar Least significant bit value of the DUT. LSB is the smallest level the ADC can convert or the smallest increment of the DAC output. double
MissingCodes vector Missing codes in DUT. double
Codes column vector Digital code double
IdealCodeCenters column vector Ideal code center of the digital code double
CodeCenters column vector Calculated code center of the digital code double
CodeCenterStD column vector Standard deviation of the code center from the ideal value double
EndpointINL column vector INL using Endpoint method double
BestFitINL column vector INL using BestFit method double
EndPointDNL column vector DNL using Endpoint method double
BestFitDNL column vector DNL using BestFit method double
BestFitPoly vector Polynomial describing the best fit using standard curve-fitting technique. double
OffsetError real scalar Offset error of DUT double
GainError real scalar Gain error of DUT double
OffsetErrorUnit LSB%FS, or FS Unit of reported offset error string
GainErrorUnit LSB%FS, or FS Unit of reported gain error string
TCNominal vector Nominal transfer curve of the DUT double
TCMeasured vector Measured transfer curve of the DUT double

If you do not assign an output variable, the inldnl function also plots the transfer function of the device under test in the active figure.

Data Types: struct

More About

collapse all

Offset Error

Offset error represents the offset of the DAC transfer function curve from it ideal value at a single point. For more information, see Measuring Offset and Gain Errors in ADC.

Gain Error

Gain error represents the deviation of the slope of the DAC transfer function curve from its ideal value. For more information, see Measuring Offset and Gain Errors in ADC.

INL Error

Integral nonlinearity (INL) error, also termed as relative accuracy, is the maximum deviation of the measured transfer function from a straight line. The straight line can either be a best fit using standard curve-fitting technique, or be drawn between the endpoints of the actual transfer function after gain adjustment.

The best fit method gives a better prediction of distortion in AC applications, and a lower value of linearity error. The endpoint method is mostly used in the measurement applications of data converters, since the error budget depends on actual deviation from the ideal transfer function.

DNL Error

Differential nonlinearity (DNL) is the deviation from the ideal difference (1 LSB) between analog input levels that trigger any two successive digital output levels. The DNL error is the maximum value of DNL found at any transition.

See Also

ADC DC Measurement | Flash ADC | SAR ADC

Topics

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Integral nonlinearity (INL) and differential nonlinearity (DNL) of data converters 的相关文章

  • PX4模块设计之二十四:内部ADC模块

    PX4模块设计之二十四 xff1a 内部ADC模块 1 内部ADC模块简介2 模块入口函数2 1 主入口board adc main2 2 自定义子命令custom command 3 内部ADC模块重要函数3 1 task spawn3
  • STM32F103学习(ADC)

    1 定义 ADC Analog to Digital Converter 模数转换器 是指将连续变化的模拟信号转换为离散的数字信号的器件 2 原理 stm32上的ADC外设采用逐次比较的方式 逐次比较型ADC工作原理可以类比天平称物体 比如
  • 解决STM32新增加函数出现Undefined symbol HAL_ADC_Init (referred from main.o). 问题

    最近在开发STM32L0xx系列产品的ADC采集项目 xff0c 在老工程上添加库函数 xff0c stm32l0xx hal adc h stm32l0xx hal adc c函数 进行ADC初始化 xff0c 编译不通过出现 xff0c
  • ADC采样滤波算法利用卡尔曼滤波算法详解

    1 ADC采样模型 xff08 本文为笔者早期所写 xff0c 当时对卡尔曼滤波器理解尚未透彻 xff0c 如今回顾 xff0c 该模型还有所缺陷 xff0c 推荐读者看卡尔曼的推导过程或者B站大佬Dr CAN的空间 xff09 假设ADC
  • STM32H7A3 ADC+DMA使用问题

    问题1 xff1a DMA采用半字传输16位ADC值 xff0c 用于存储ADC数据的数组一定是采集数的两倍 xff0c 否则会产生ADC溢出的错误中断HAL ADC ErrorCallback xff0c 从而无法进入ADC采集完成中断H
  • STM32——ADC采集

    目录 ADC简介 ADC主要特征 ADC功能框图 ADC引脚 电压输入范围 通道选择 单次转换模式 连续转换模式 转换顺序 规则序列 注入序列 触发源 转换时间 中断 转换结束中断 模拟看门狗中断 DMA请求 代码讲解 宏定义 xff1a
  • STM32CubeMX在F103上的ADC注入通道配置异常问题

    前言 最近业余时间在搞无刷电机FOC的控制 xff0c 其中有一部分是关于流过电机三相绕组电流采集的 xff0c 需要用到STM32内置的ADC xff0c 核心是需要使用注入通道以确保ADC数据采集的实时性 xff0c 但是我在STM32
  • PX4模块设计之二十四:内部ADC模块

    PX4模块设计之二十四 xff1a 内部ADC模块 1 内部ADC模块简介2 模块入口函数2 1 主入口board adc main2 2 自定义子命令custom command 3 内部ADC模块重要函数3 1 task spawn3
  • stm32---ADC模数转换

    ADC xff1a 模数转换器 xff0c 将模拟信号 xff08 0v xff0c 3v xff0c 6v等 xff09 转换为表示一定比例电压值的数字信号 xff08 1 xff0c 2 xff0c 3等 xff09 STM32F10x
  • 16位精度 ADC 选型

    ADS8320 售价 xff1a 人民币25 40元 ADS8320 16 Bit High Speed 2 7 V to 5 V microPower Sampling Analog to Digital Converter 1Featu
  • 基于28035的ePWM触发ADC采样设计

    目录 前言实验目的实验要求硬件电路实验步骤代码解释实验结果总结体会 前言 玖道最近在做一个开关电源项目 xff0c 需要用到TI 的TMS320F28035 芯片 xff0c 实现控制电路的设计 简单来说就是利用28035采集信号量 xff
  • ADC转换值和实际电压的关系

    1 首先确定ADC用几位表示 xff0c 最大数值是多少 比如一个8位的ADC xff0c 最大值是0xFF xff0c 就是255 xff08 一般芯片手册会有说明 xff09 2 然后确定最大值时对应的参考电压值 一般而言最大值对应3
  • 模数转换ADC模块

    通用基础知识 ADC模块是嵌入式应用中重要的组成部分 xff0c 是嵌入式系统与外界连接的纽带 xff0c 是在测控系统中的重要内容 ADC模块 xff1a 即模数转换模块 AD转换模块 xff0c 功能是将电压信号转换为相应的数字信号 实
  • 16. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据

    adc 使用教程2 dma 连续扫描方式采集数据 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 注意 dma使用时存在一个外设映射到一个dam外设
  • stm32F4的ADC+DMA+Timer,实现2MHz连续采样。1LSB分辨率,极低噪声。

    1 ADC DMA Timer的实现原理 stm32F407 405的ADC为12位逐次逼近型ADC 有着高达2 4MHz的采样率 分辨率 1LSB 这样参数的ADC放在市面上单卖 也起码是 10 起步 而 stm32F407 405不仅内
  • INL/DNL Measurements for High-

    Abstract Although integral and differential nonlinearity may not be the most important parameters for high speed high dy
  • STM32F407的ADC+DMA 的简单使用

    这里以ADC3通道14为例 adc h ifndef adc H define adc H include stm32f4xx conf h ADC GPIO 宏定义 define RHEOSTAT ADC GPIO PORT GPIOF
  • 嵌入式 ADC使用手册完整版 (188977万字)(附源码详细篇)

    嵌入式 ADC使用手册完整版 188977万字 附源码详细篇 1 ADC简介 2 ADC主要特征 3 ADC引脚和内部信号 4 ADC 模块框图 5 ADC校准 CLB 6 ADC 时钟 7 ADCON 开关 8 ADC规则组和注入组 9
  • ESP32-C3入门教程 基础篇(一、ADC采样)

    经过前面的折腾 设计好了自己的测试开发板 搭建好了开发环境 然后正式开始进行功能测试了 测试顺序先从简单的开始吧 一步一步来 目录 前言 1 ADC采样示例测试 1 1 DMA连续采样 1 2 单次采样 1 3 测试源码 2 ESP32 C
  • 我使用 opencv python 形式将模拟时钟转换为数字数据的小时和分钟,但我也需要它显示秒数

    我已经使用 opencv 来读取图像 将其转换为灰度 并使用 canny kernel thesh erode 等找到边缘 并且我已经使用 HooughLineP 检测到图像中的所有线条 并且我已经检测到时间和分针 但我还需要找到秒针 这是

随机推荐

  • MySQL视图、索引、备份与恢复、执行计划

    目录 一 前言 1 导读 2 学习的好处 二 视图 1 什么是视图 2 视图与数据表的区别 3 使用视图的优点 4 视图的语法 1 创建视图 CREATE VIEW 2 查询视图数据 3 更新视图数据 4 修改视图定义 ALTER VIEW
  • 超强实用:中国各地特产风味大搜捕!

    http www lotour com snapshot 2006 2 6 snapshot 32012 shtml 来源 中国交通旅游图册 北京特产风味 北京集全国风味佳肴 工艺美术和民族用品于一城 宫廷菜点 烤鸭 果脯 酥糖 京绣 戏装
  • 如何用Python让你的电脑说话

    如何用Python让你的电脑说话 你成为亿万花花公子的第一步 如果你是像 钢铁侠 这样的电影的粉丝 你可能已经幻想过得到你自己的贾维斯 那么 在这篇文章中 我将告诉你如何开始制作你自己的电脑助手 我们将通过一个小的编程和一些聪明的pytho
  • 图基本算法介绍:广度优先搜索、深度优先搜索、拓扑排序、强连通分支(算法篇)

    一 广度优先搜索 什么是广度优先搜索 在给定图G V E 后和一个特定的源顶点s的情况下 广度优先搜索 系统的探索G中的边 以期发现从s可以到达的所有顶点 并计算s到所有这些可达顶点之间的距离 即最少的边数 广度优先搜索的作用 个人从定义理
  • VC下加载多种格式图片的方法总结

    尽管VC有提供相应的API和类来操作bmp位图 图标和 增强 元文件 但却不支持jpg gif和png等格式的图片 而这几种格式却是常常要用到的 这里我给大家介绍两种办法来操作这些格式的图片 1 用API OleLoadPicture来加载
  • Object对象如何类获取对应类的属性值

    Object对象如何类获取对应类的属性值 public void test throws NoSuchFieldException IllegalAccessException Deposit deposit new Deposit dep
  • 卡方分布

    以上讲了一种称为服从正态分布的概率密度函数 今天 讲一讲服从 卡方分布 的概率密度函数 首先给出该函数的定义 自由度 是公式中一个重要参数 自由度不同 图形的形状也完全不同 众所周知 直线方程中的参数k是斜率 它控制着直线的倾斜角度 它不同
  • java中trim()方法

    string类型 指定要删除首部和尾部空格的字符串返回值String 函数执行成功时返回删除了string字符串首部和尾部空格的字符串 发生错误时返回空字符串 如果参数值为null时 会抛出空 指针异常 主要是为了防止复制过来首尾出现字符串
  • Day 15 - 面向对象2习题

    建立一个汽车类Auto 包括轮胎个数 汽车颜色 车身重量 速度等属性 并通过不同的构造方法创建实例 至少要求 汽车能够加速 减速 停车 再定义一个小汽车类CarAuto 继承Auto 并添加空调 CD属性 并且重新实现方法覆盖加速 减速的方
  • C++二叉树遍历总结\100. Same Tree

    理论学习 概念介绍 遍历图解 遍历算法 代码实践 实现模板 Same Tree 题目描述 代码实现 转载请注明出处 http blog csdn net c602273091 article details 55195284 理论学习 概念
  • ajp协议服务器端如何配置,详解Tomcat HTTP协议与AJP协议

    IT168评论 Tomcat最主要的功能是提供Servlet JSP容器 尽管它也可以作为独立的Java Web服务器 它在对静态资源 如HTML文件或图像文件 的处理速度 以及提供的Web服务器管理功能方面都不如其他专业的HTTP服务器
  • count()用啥好?

    按照效率排序的话 count 字段
  • template模板中的if判断语句

    if 0 value task state 22 else 33 if
  • 程序员,都去写一写前端代码吧

    转至 http www raychase net 1162 你可以认为我是一个极端的人 就像有许多人专注于自己的领域而不屑于其它 肤浅 的工作范畴一样 比如我见过不少认为做portal没有技术含量的判定 做工程都是充满苦逼行为的言论 最近则
  • Quant 实习申请总结[转自丁丁笑笑生]

    我是University of Michigan博士第四年的学生 专业是高能理论物理 弦论 从北大元培毕业来到美国之后 我对科研的兴趣 信心和成就感与日俱减 加之对于未来组建家庭的考虑 决定放弃科研理想和道路 寻找一份工作 养家糊口 积累一
  • C++ 中的 POD 类型

    C 内存管理系列文章汇总 C 中数据类型和变量总结 C 中内存分区总结 C 中三种内存对象特点总结 C 中栈对象的使用总结 C 中 static 静态对象的使用总结 C 中堆对象的使用总结 C 中普通类的对象布局 C 中字节对齐总结 C 继
  • Linux终端信息

    获取终端能显示的行数和列数 student myhost tput cols 140 student myhost tput lines 35 获取终端名 student myhost tput longname xterm with 25
  • 软工导论知识框架(八)面向对象设计风格

    一 面向对象实现 把面向对象设计结果翻译成面向对象程序 测试并调试面向对象的程序 二 程序设计语言 所有语言都可完成面向对象实现 但效果不同 使用非面向对象语言编写面向对象程序 则必须由程序员自己把面向对象概念映射到目标程序中 1 将来能够
  • 怎么用css画一个心形_如何用CSS创建心形

    CSS3增强了我们仅使用HTML和CSS就能在网站上构建内容的可行性 您可以找到我们以前精选的出色示例 但是 不要让自己过分领先 复杂的设计将需要可能使您头疼的代码 取而代之的是 我们将创建一些简单的内容 以帮助您先了解CSS的形状和位置
  • Integral nonlinearity (INL) and differential nonlinearity (DNL) of data converters

    Syntax s inldnl analog digital range type s inldnl Name Value Description example s inldnl analog digital range type cal