ADC Resolution Calculator

LSB size, quantization error and SNR from bit resolution, or encode a real voltage into its digital code.
Resolution & SNR
Encode a Voltage

LSB, Quantization Error & SNR

LSB = Vref / 2n   •   SNR (dB) = 6.02n + 1.76
8-bit, 5V (basic 8-bit MCU)
10-bit, 5V (Arduino Uno ADC)
12-bit, 3.3V
16-bit, 5V (audio-grade)
bits
V
Enter values and press Calculate.
Each added bit roughly doubles resolution and adds ≈6.02 dB of SNR — going from 8-bit to 12-bit quarters the LSB size (16× finer) and raises theoretical SNR by about 24 dB.

Quantization Staircase (illustrative 4-bit example)

Encode a Specific Voltage

Code = ⌊Vin / LSB⌋   •   Error = Vin − Code×LSB
10-bit, 5V ref, Vin=3.3V
12-bit, 3.3V ref, Vin=1.65V (mid-scale)
bits
V
V
Enter values and press Calculate.

What ADC Resolution Really Means

An analog-to-digital converter (ADC) can only represent an infinitely-variable analog voltage as one of a finite number of discrete digital codes. An n-bit ADC has 2n possible codes, so it divides its full reference range Vref into 2n equal steps. The size of one step is the LSB (least significant bit): LSB = Vref/2n — the smallest voltage change the ADC can actually distinguish.

Quantization error is unavoidable, but bounded

Because every analog voltage between two adjacent code levels gets rounded to the nearest available code, every conversion carries a small, unavoidable rounding error called quantization error, bounded to ±½LSB (assuming ideal rounding to the nearest level). This isn't a flaw or a fault — it is a fundamental, unavoidable consequence of representing a continuous signal with a finite number of discrete steps, and it sets a hard floor on how precisely any ADC (however well designed otherwise) can measure a voltage.

SNR: the practical measure of "how many bits are actually useful"

The idealized signal-to-quantization-noise ratio for a full-scale sine wave input is SNR(dB) = 6.02n+1.76 — the famous "6 dB per bit" rule. This is a theoretical ceiling assuming a perfect ADC with only quantization noise; real ADCs also add their own analog noise, so their effective number of bits (ENOB) measured in practice is usually somewhat lower than their nominal resolution n.

QuantityFormula
Number of codes2n
LSB (step size)Vref/2n
Maximum quantization error±½LSB
Theoretical SNR (full-scale sine)6.02n + 1.76 dB
Digital code for a given VinCode = ⌊Vin/LSB⌋ (0 to 2n−1)

Real-World Applications & Fully-Explained Examples

Worked examples — explained in full

1. 8-bit ADC, 5 V reference. LSB=5/28=5/256≈19.53 mV — each step represents about 19.5 mV, so any two voltages closer together than that are indistinguishable to this ADC. SNR=6.02×8+1.76≈49.92 dB.
2. 10-bit ADC, 5 V reference (e.g. Arduino Uno's built-in ADC). LSB=5/1024≈4.88 mV — 4× finer than the 8-bit case, exactly as expected since 10 bits is 2 bits (4×) more resolution. SNR=6.02×10+1.76≈61.96 dB.
3. 12-bit ADC, 3.3 V reference. LSB=3.3/4096≈0.806 mV (806 µV) — fine enough to resolve small sensor signal changes that an 8-bit or 10-bit converter would completely miss. SNR≈74.00 dB.
4. 16-bit ADC, 5 V reference (audio-grade). LSB=5/65536≈76.3 µV — over 250× finer than the 8-bit example, with a theoretical SNR of 6.02×16+1.76≈98.08 dB, in the range needed for genuinely transparent digital audio.
5. Encoding a real voltage: 10-bit ADC, 5 V reference, Vin=3.3 V. LSB=4.883 mV. Code=⌊3.3/0.004883⌋=675 (out of a maximum 1023). Reconstructing: 675×4.883 mV≈3.2959 V, giving a quantization error of 3.3−3.2959≈4.1 mV — comfortably under the ±½LSB (±2.44 mV rounds up to this bound) theoretical maximum for this resolution.
6. How much finer is 12-bit than 8-bit? LSB(8-bit)/LSB(12-bit) = 212/28 = 24 = 16× — going from 8 to 12 bits (adding 4 bits) makes every step exactly 16× smaller, regardless of the reference voltage used, since the ratio only depends on the bit-count difference.

Frequently Asked Questions

What is LSB in an ADC?

LSB (least significant bit) is the smallest voltage step an ADC can resolve, calculated as LSB = Vref/2n, where n is the ADC's bit resolution. It represents the voltage change corresponding to one digital code increment.

What is quantization error?

It is the unavoidable rounding error introduced when a continuous analog voltage is represented by a finite digital code. For an ideal rounding ADC, this error is bounded to ±½LSB — a fundamental limit of digitization, not a design flaw.

How many codes does an n-bit ADC have?

2n distinct codes, numbered from 0 to 2n−1. An 8-bit ADC has 256 codes, a 10-bit ADC has 1024, a 12-bit ADC has 4096, and so on.

What is the SNR formula for an ADC?

The theoretical signal-to-quantization-noise ratio for a full-scale sine wave input is SNR(dB) = 6.02n+1.76, often summarized as "about 6 dB per bit". This is an idealized ceiling; real ADCs typically achieve somewhat less due to additional analog noise sources.

What is ENOB (effective number of bits)?

ENOB is the number of bits a real ADC effectively achieves once its actual measured SNR (including real-world noise, not just quantization) is plugged back into the SNR formula solved for n. It is almost always somewhat lower than the ADC's nominal (advertised) bit resolution.

How do I choose the right ADC resolution for my project?

Compare your required measurement precision (the smallest voltage change you need to distinguish) against the LSB at candidate resolutions and reference voltages. If your sensor's own noise floor is larger than the LSB, extra ADC bits beyond that point add little practical benefit.

Does a smaller reference voltage improve resolution?

Yes, for a fixed bit count, a smaller Vref gives a smaller (finer) LSB, since LSB=Vref/2n. The tradeoff is reduced input range — your signal must stay within the smaller reference window, and any signal that exceeds it will clip/saturate.

How do I convert an analog voltage to its digital code?

Code = ⌊Vin/LSB⌋ (rounding down to the nearest whole code, clamped between 0 and 2n−1). Use the "Encode a Voltage" tab above to compute this directly along with the resulting reconstruction error.

Why does my microcontroller's ADC reading look "noisy" even with a stable input?

Some of that apparent noise may simply be the ADC's own quantization steps (±½LSB) rather than real electrical noise, especially at higher resolutions where LSB is already very small. Averaging multiple readings can reduce apparent noise but does not increase the ADC's fundamental resolution beyond its design.

Is more ADC resolution always better?

Not necessarily — resolution beyond what your sensor's own noise floor and signal conditioning can support just adds meaningless extra digits that don't reflect real signal information, while often costing more, running slower, or needing more careful board layout to actually achieve in practice.

What ADC resolution is common in popular microcontrollers?

8-bit ADCs are largely legacy at this point; 10-bit is common in older/basic microcontrollers (e.g. classic Arduino Uno); 12-bit is very common in modern general-purpose MCUs (e.g. STM32, ESP32); 16-bit and higher is typical for dedicated precision measurement and audio ADC ICs.

How does bit resolution relate to dynamic range in audio?

Each additional bit adds about 6 dB of theoretical dynamic range/SNR. CD-quality audio uses 16-bit (about 96 dB theoretical SNR), while professional audio production commonly uses 24-bit for extra headroom during mixing and processing, even though the final release format is often still 16-bit.

Related Calculators

Slew Rate & Bandwidth CalculatorDecibel CalculatorOp-Amp Gain CalculatorAll Calculators