Electronics & PCB Tools

ADC Resolution Calculator

Work out what an analogue-to-digital converter can actually resolve: LSB step in volts, quantisation error, ideal SNR for the bit depth, the code for a given input and the Nyquist rate and data volume for your sampling.

  • LSB and quantisation error
  • Ideal SNR and ENOB
  • Code value and data rate
Runs in your browser

Everything you paste, type or drop is processed in this browser tab. It is not uploaded, logged, stored or sent to analytics.

ADC resolution workspace

1 The converter

Try one:

2 Sampling

3 What it can resolve

Enter the bit depth and the reference voltage.

What the ADC Resolution Calculator does

This calculator works out what an analogue-to-digital converter can actually resolve: the size of one LSB in volts, the quantisation error that follows from it, the ideal signal-to-noise ratio for the bit depth, the code a given input voltage produces, and the Nyquist frequency and data rate for your sampling arrangement.

The arithmetic is short but the definitions catch people out. A 12-bit converter has 4,096 levels and a highest code of 4,095, and its LSB is the reference divided by 4,096 - not by 4,095. Get that wrong and every reading is off by a quarter of an LSB.

How to use it

  1. Enter the bit depth and the reference voltage. On most microcontrollers the reference is the analogue supply unless you have configured an internal or external one.
  2. Read the LSB size. That is the smallest change the converter can distinguish, before any noise is considered.
  3. Enter an input voltage to see the code it produces in decimal, hexadecimal and binary, together with the reconstruction error.
  4. Set the sample rate and the number of channels for the data rate and the Nyquist frequency.
  5. Enter the highest frequency present in your signal to check for aliasing - and remember that what matters is the highest frequency at the pin, not the highest one you are interested in.

Reading the results

LSB size is the resolution, not the accuracy. Offset error, gain error, differential and integral non-linearity and reference drift are all separate, and any of them can be larger than an LSB.

The ideal SNR of 6.02 N + 1.76 dB assumes a full-scale sine wave. A signal using only a tenth of the range gets 20 dB less, which is why front-end gain matters as much as bit depth.

Aliasing is not a subtle effect. A frequency above Nyquist folds down and becomes indistinguishable from a real signal at the folded frequency, and no amount of digital processing afterwards can separate them.

Worked example: a 12-bit converter on a 3.3 V reference

There are 2^12 = 4,096 levels, so one LSB is 3.3 / 4,096 = 805.66 uV. The highest code is 4,095, which corresponds to 3.2992 V, not 3.3 V.

The worst quantisation error is half an LSB, 402.8 uV, and its RMS value is LSB / sqrt(12) = 232.6 uV. The ideal SNR is 6.02 x 12 + 1.76 = 74.0 dB, and the dynamic range is 20 log10(4096) = 72.25 dB.

An input of 1.65 V - exactly half the reference - gives code round(1.65 / 0.00080566) = 2048, which is 0x800. Sampling two such channels at 48 kHz produces 48,000 x 2 bytes x 2 channels = 192 kB/s, or about 660 MB an hour if you record it all.

Formulas and scoring rules

LSB size
LSB = Vref / 2^NDivided by 2^N, not 2^N - 1: the span is cut into 2^N steps.
Number of levels and highest code
levels = 2^N, highest code = 2^N - 1
Quantisation error
worst = LSB / 2, RMS = LSB / sqrt(12)The RMS figure assumes the error is uniformly distributed, which holds for a busy signal.
Code from a voltage
code = round(Vin / LSB), clipped to 0 .. 2^N - 1
Ideal SNR
SNR[dB] = 6.02 N + 1.76For a full-scale sine wave over the Nyquist band.
Dynamic range
DR[dB] = 20 log10(2^N)
Nyquist frequency
fN = fs / 2Everything above it aliases down into the band.
Data rate
bits/s = fs x N x channelsStorage usually pads each sample to whole bytes.

Resolution is not accuracy

A 16-bit converter resolves one part in 65,536, which sounds like four and a half digits of measurement. It is not. Offset error shifts every reading; gain error scales them; integral non-linearity bends the transfer function; and the reference's initial tolerance and drift multiply straight into the result. A 1% reference makes a 16-bit reading accurate to about 1%, however many bits it produced.

The practical sequence is to specify accuracy first, then work out what resolution and what reference that needs. A 0.1% measurement wants a reference specified at 0.05% or better with a low temperature coefficient, and probably a calibration step - not simply more bits.

Anti-aliasing is an analogue job

Anything above the Nyquist frequency folds into the band and becomes indistinguishable from a legitimate signal. The only place to remove it is before the sampler, with an analogue filter - a digital filter afterwards is too late, because the information has already been destroyed.

In practice the filter cannot be a brick wall, so systems sample faster than the theoretical minimum to leave the filter room to roll off. Oversampling takes this further: sample many times faster than needed, filter digitally and decimate, and the anti-alias filter can be a simple RC while the averaging buys extra effective bits - a 4x oversample is worth about one bit if the noise is uncorrelated.

Limitations: what the result does not prove

  • This is the ideal converter. Offset, gain, DNL, INL, missing codes and reference error are all real and none are modelled here.
  • The ideal SNR figure assumes a full-scale sine wave. Small signals get proportionally less, and a real part's data sheet quotes SINAD, which is always lower.
  • Source impedance and settling are ignored. A successive-approximation converter has to charge its sampling capacitor through the source in the acquisition window, and a high source impedance causes an error that is invisible in this arithmetic.
  • Clock jitter limits high-frequency performance in a way bit depth cannot fix: for a fast input, jitter rather than quantisation sets the effective resolution.

Privacy: where your data goes

Everything you paste, type or drop is processed in this browser tab. It is not uploaded, logged, stored or sent to analytics. Session recording and tag-manager scripts are switched off on this page.

Standards and sources

Frequently asked questions

How do I calculate ADC resolution in volts?

LSB = Vref / 2^N. A 12-bit converter on 3.3 V resolves 805.7 uV, and a 10-bit converter on 5 V resolves 4.88 mV. Note the division by 2^N rather than 2^N - 1: the range is divided into 2^N steps even though the highest code is one less.

What is quantisation error?

The difference between the true input and the value the nearest code represents. At worst it is half an LSB; treated as noise, its RMS value is LSB divided by the square root of twelve, which is where the 6.02N + 1.76 dB SNR figure comes from.

How many bits do I need for my measurement?

Work backwards from the smallest change you must detect and the full-scale range. Resolving 1 mV across 5 V needs at least 5,000 levels, so 13 bits - and then allow several bits of margin for noise, because the last two or three bits of a real converter are usually noise anyway.

What is the Nyquist frequency?

Half the sample rate. Any frequency above it folds back into the band and appears as a lower frequency that cannot be separated from a genuine signal. At 48 kHz the Nyquist frequency is 24 kHz, which is why that sample rate suits audio.

Why is my 12-bit reading jumping around by several counts?

Noise, almost always from outside the converter: a noisy supply or reference, a high source impedance, a long unshielded lead, or ground currents. Averaging helps if the noise is random; if the jumping is periodic, it is interference and averaging will not fix it.

Does a higher reference voltage improve resolution?

No - it makes each step larger, which is worse resolution for the same bit depth. A lower reference gives finer steps but less headroom and a worse signal-to-noise ratio if the signal does not fill it. Match the reference to the signal's actual range.

Can averaging give me extra bits?

Yes, if the noise is random and at least an LSB in size: averaging 4^k samples buys about k bits. This is oversampling and decimation, and it is how sigma-delta converters achieve 24 bits from a one-bit modulator. It does nothing for a systematic error.

Why does the data sheet's ENOB differ from the bit depth?

Because ENOB counts real noise and distortion, not just quantisation. A 16-bit converter with 78 dB SINAD delivers about 12.7 effective bits. The nominal bit depth is the number of output pins; ENOB is how many of them carry information.

Last reviewed by the A2Z.Tools team against the sources listed above.

Rate this tool

Was this tool useful? Your feedback helps us improve it.

No ratings yet — be the first to rate this tool.
Your rating (required)
0 / 2000

Please do not include passwords, payment details or other sensitive information.

Your feedback is sent privately to the A2Z.Tools team and will not be posted publicly.