Ada Audits the ADC Numbers

Ada checks resolution, range use, aliasing, and the noise floor behind the ADC example

foundations
math-foundations
adc
signal-processing
intermediate
Ada ADA · CALCULATION AUDIT

Ada Audits the ADC Numbers

An ADC is a physics contract: the voltage step, sample clock, and anti-alias boundary decide whether firmware receives evidence or a polished false pattern.

The chapter’s worked example puts a temperature sensor that outputs 10 mV per 1 degree C onto a 12-bit ADC with a 3.3 V reference and 4096 possible codes, with the conditioned signal spanning 0.1 V to 1.75 V. The chapter claims this gives “enough amplitude detail for many temperature tasks” without yet proving the sample rate or calibration are sound. This audit asks the question that worked example invites: how many degrees does one ADC code actually represent, and how much of the converter’s 4096-code range does this sensor use?

Companion to the chapter Sampling and Aliasing — every number here comes from that chapter.

1. The 12-bit voltage step is small enough for the chapter's temperature scale

The worked example uses a 3.3 V reference and 4096 possible codes:

LSB = Vref / 2N = 3.3 V / 4096 = 0.0008057 V = 0.806 mV

With the stated 10 mV per 1 degree C sensor scale, one code is 0.806 / 10 = 0.0806 degree C. The ideal half-LSB uncertainty is 0.806 / 2 = 0.403 mV, or 0.0403 degree C before real noise and calibration error are included.

2. Range use is reviewable, not a guess

The conditioned output spans from 0.1 V to 1.75 V:

span = 1.75 V - 0.1 V = 1.65 V; used codes = 1.65 / (3.3 / 4096) = 2048 codes

That is exactly half of a 4096-code converter, which matches the chapter note that the design uses useful but not perfect code coverage.

3. Sampling math explains the alias warnings

For a useful signal up to 40 Hz, the mathematical lower boundary is more than 2 × 40 = 80 samples/s; real filters need margin above that. If unwanted frequencies reach the ADC, the fold calculation shows the false result:

Check Arithmetic shown Audit result
90 Hz interference at 100 SPS round(90 / 100) = 1; |90 - 100·1| 10 Hz alias
1200 Hz component at 1000 SPS round(1200 / 1000) = 1; |1200 - 1000·1| 200 Hz alias
Ideal 12-bit SNR 6.02 × 12 + 1.76 74.0 dB before real-world losses

What the audit buys you: amplitude resolution, sample rate, and noise floor are separate gates. A 12-bit ADC can resolve the temperature example while still producing false evidence if the analog path lets high-frequency content fold into the sampled band.

Every number above is taken from this chapter's own worked example and re-derived step by step.