ADC Error Simulation

Number of Bits (10 or more can take quite some time)
ADC converter (Regular Pipeline: 0, linear folder pipeline: 1,
nonlinear folding pipeline: 2, normal ADC: 3)

FFT signal

Number of Periods (Default: 17)
Ratio FFT points and number of codes (Default: 16)

Zoom transfer:

Start voltage
Number of samples

Pipeline ADC specific

Offset [V] (Default: 0 V)
Gain1 (Default: 2)
Gain2 (Default: 2)
Compare Level (Default: 0.5) [V]

Noise Error:

Noise

Nonlinearity Error:

Nonlinearity sine amplitude
Nonlinearity sine frequency
Nonlinearity sine Phase (0..1)

Distortion Error:

Distortion amplitude (0..1)
Distortion start (0..1)
Distortion length (0..1)

Jitter Error

Jitter standard deviation (0..0.1 sample time)
6 sigma should be less than 0.5 period
Windowing:



Transfer function:

Zoomed transfer function:

Histogramm:

INL and DNL error:

Sine time signal:

Spectral test:

SNR = 1.76 dB + 6.02 B dB + 10 log10( N / 2 )
B: Number of Bits
N: Number of samples = 16 * 2 B
N = 2048 -> 30 dB

Regular ADC


Select Number of Bits as 8, ADC converter 3, Number of periods 17 and leave Error section as it is. This is the default setting.

Check functionality

It can be seen in the zoomed window that ideal transfer curve and real transfer curve are matching. Each code is sampled 10 times and INL and DNL is 0. FFT is done with 4k samples and shows a signal level of -9dB, a total noise of -59 dB and a noise peak at 76 dB. This matches expectations since 1.76dB + 6.02 * 8 dB = -9dB - ( -59dB). The general noise level of the FFT is lower because of the number of samples.

Run time

Increasing the number of bits from 8 to 12 shows the increase in runtime measured on a 1.3 GHz Laptop.
Number of bits 8 9 10 11 12 13 15 16
Run time [s] 1.4 (5) 1.7 2.6 (8.5) 8.5 17 (22) 34 135 (293)

Influence of Noise

In real measurements noise will be present at the input signal and the input circuit. Good values for noise are 1/256 = 0.004, 1/1024 = 0.001, 1/4096 = 0.00025. This can be simulated by setting noise in the error section to 0.01 and keeping the number of bits to 8. It is very hard to see a change in the transfer function, therefore a zoom window is also displayed. A gaussian distributed noise with a mean of 0 and a sigma of 0.01 will be added to the input signal. A noisy signal and INL, DNL can be seen. The noise has a peak of 10 codes. 3 sigma would be 2.56 * 3 = 7.7. Total noise increases from -59 dB to -34 dB, which is 25 dB.

Regular ideal pipeline ADC


For an ideal residue function (B = 8, Offset = 0 V, Gain1 = Gain2 = 2.0, Compare level = 0.5 V, Pipe Stage = 0 and 17 Periods) 10 samples are generated per code and INL and DNL are 0. The difference of level between signal of -9 dB and total noise of -59 dB is close to SNR = 1.76 dB + 6.02 * 8 dB. The total noise level can only be calculated adding the sum of squares. The graph shows only noise between -76 dB and -200 dB. -200 dB will be set, if the noise level is 0V.
Changing the number of bits will modify the signal to noise ratio.

A change to a gain of 1.99 shows a maximum INL = 1.4 LSB and DNL of -1 LSB and a noise peak of -63 dB in FFT. A peak in FFT due to INL and DNL error shows up at 40 Hz, with -63 dB, but is still below the total noise level of -57 dB.

Folding ideal pipeline ADC


Only Pipe Stage is set to 1 and the same results show up as the ideal ADC.
A gain of 1.99 shows a maximum INL = 1.2 LSB a DNL = -1 LSB and a noise peak of - 63 dB in FFT. Everything is the same as in the regular pipeline ADC. The maximum INL and DNL show up at different codes.

Nonlinear folding ideal pipeline ADC


Pipe Stage is set to 2, gain is set to 2.
INL goes up to 37 LSB, INL maximum is 1.6 LSB. FFT shows a -11 dB signal, noise peak at -30 dB and total noise of -29 dB.
INL indicates that more than 5 bits are lost. FFT gives an effective number of bits ENOB = (29 dB - 11 dB - 1.76 dB) / 6.02 dB = 16.27 / 6.02 = 2.7.
Normal ADC: 8 Bits, maximum INL: 0, signal to noise peak: -9 dB - (-76 dB) = 68 dB, signal to noise ratio: -9dB - (-59 dB) = 50 dB
Number of Bits 8 12
Maximum INL 27 420
Maximum occurence of code 16 16
Signal to Noise peak -11 dB - (-30dB) = 19 dB -11 dB - (-30dB) = 19 dB
Signal to Noise ratio -11 dB - (-29dB) = 18 dB -11 dB - (-29dB) = 18 dB
To investigate smaller nonlinearities Pipe Stage is set to 1, gain is set to 2.
Error Nonlinearity sine amplitude is set to 0.04 and sine frequency is set to 2.
The transfer function gets non linear. Signal is -10 dB, INL max is 12, noise peak is -38dB and total Noise is -36 dB.
Error Nonlinearity sine amplitude is set to 0.004 Signal is -9 dB, INL max is 1.4, noise peak is -57dB and total Noise is -54 dB.
Error Nonlinearity sine amplitude is set to 0.008 Signal is -9 dB, INL max is 2.8, noise peak is -51dB and total Noise is -49 dB.


Is it possible to compensate for the non linear transfer function?
How many bits are lost?

Next steps


1. Investigate different szenarios.
2. Implement an error correction by reducing the number of effective bits with a factor of 2.

FFT with calibration tool can be used to investigate improvements with digital calibration.