# Integral nonlinearity

Integral nonlinearity (acronym INL) is a commonly used measure of performance in digital-to-analog (DAC) and analog-to-digital (ADC) converters. In DACs, it is a measure of the deviation between the ideal output value and the actual measured output value for a certain input code. In ADCs, it is the deviation between the ideal input threshold value and the measured threshold level of a certain output code. This measurement is performed after offset and gain errors have been compensated.[1]

The ideal transfer function of a DAC or ADC is a straight line. The INL measurement depends on what line is chosen as ideal. One common option is the line that connects the endpoints of the transfer function, in other words, the line connecting the smallest and largest measured input/output value. An alternative is to use a best fit line, where one minimizes the average (or alternatively the mean squared) INL.

While the INL can be measured for every possible input/output code, often only the maximal error is provided when reporting the INL of a converter.[2]

## Formulas

### INL of a DAC

The INL of a code ${\displaystyle c}$ of a DAC with ${\displaystyle N_{c}}$ output codes is defined as the absolut value of the difference of the real output voltage minus the ideal value:

${\displaystyle \mathrm {INL} _{c}=\left|V_{\mathrm {o,ideal} }(c)-V_{\mathrm {o,real} }(c)\right|=\left|(V_{\mathrm {o,max} }-V_{\mathrm {o,min} }){\frac {c}{N_{c}-1}}-V_{\mathrm {o,real} }(c)\right|}$

where

${\displaystyle V_{\mathrm {o,max} }}$ and ${\displaystyle V_{\mathrm {o,min} }}$ are the maximum and minimum ideal output voltages of the DAC.

For an ADC, the INL of a code ${\displaystyle c}$ is defined as the deviation of the mid-points of the quantization steps between the ideal and real transfer function.

${\displaystyle \mathrm {INL} _{c}=\left|V_{\mathrm {M,ideal} }(c)-V_{\mathrm {M,real} }(c)\right|}$

### Maximum INL of a converter

When referring to the INL of a converter usually the maximum INL maximized over all codes is meant. For the line through the endpoints, the INL of a DAC is

${\displaystyle \mathrm {INL} _{max}=\max _{c\in \{0,1,\ldots ,N_{c}-1\}}\mathrm {INL} _{c}}$

This INL is measured in volts; one can divide it by the ideal LSB voltage ${\displaystyle V_{LSB}}$ to get the measurement in LSBs:

${\displaystyle \mathrm {INL} _{max,norm}={\frac {\mathrm {INL} _{max}}{V_{LSB}}}}$