ADC/DAC: risoluzione, LSB e SNR
Quantizzazione e ampiezza dell'LSB, da dove viene 6.02·N+1.76, SINAD ed ENOB come cifra di merito reale, gamma dinamica e frequenza di Nyquist.
Un convertitore analogico-digitale (ADC) o digitale-analogico (DAC) è descritto da poche cifre che si confondono spesso: risoluzione, SNR, gamma dinamica, ENOB. Questo strumento le calcola a partire da risoluzione, riferimento e frequenza di campionamento; questa pagina spiega da dove vengono e quale guardare davvero.
Quantizzazione e LSB
Un convertitore a N bit divide l’intervallo di ingresso a fondo scala V_ref in 2ᴺ gradini uguali. Il gradino più piccolo è il Least Significant Bit (LSB): la più piccola variazione di tensione che il convertitore distingue. È il passo della griglia su cui ogni campione viene arrotondato.
Ogni bit in più dimezza l’LSB: a parità di V_ref, passare da 12 a 16 bit lo riduce di 16 volte. Un ADC a 16 bit con V_ref = 3.3 V ha un LSB di circa 50 µV — sotto questo livello servono riferimenti puliti e basso rumore di fondo, altrimenti gli ultimi bit non portano informazione.
SNR ideale: da dove viene 6.02·N + 1.76
Arrotondare un segnale continuo alla griglia introduce un errore di quantizzazione. Se il segnale è “abbastanza vivace” rispetto all’LSB, questo errore si modella bene come rumore bianco uniforme nell’intervallo ±½ LSB. La varianza (potenza) di una distribuzione uniforme di ampiezza LSB è:
Un segnale sinusoidale a fondo scala (ampiezza picco V_ref/2) ha potenza P_s = (V_ref/2)²/2. Il rapporto fra le due potenze, espresso in dB, è l’SNR ideale:
I due termini hanno un significato preciso:
- 6.02 dB/bit = 20·log₁₀(2): ogni bit aggiunto raddoppia il numero di livelli e migliora l’SNR di circa 6 dB.
- +1.76 dB = 10·log₁₀(1.5): è il rapporto di forma fra una sinusoide a fondo scala e un rumore uniforme.
È un limite teorico: nessun convertitore reale lo supera. Valori di targa noti: un ADC ideale a 12 bit ha SNR = 74.0 dB, a 16 bit = 98.1 dB.
Risoluzioni tipiche a confronto (V_ref = 3,3 V)
| N bit | LSB | SNR ideale |
|---|---|---|
| 8 | 12,9 mV | 49,9 dB |
| 12 | 806 µV | 74,0 dB |
| 16 | 50,4 µV | 98,1 dB |
| 24 | 197 nV | 146,2 dB |
Ogni 4 bit l’SNR ideale sale di ~24 dB e l’LSB si riduce di 16 volte. La colonna LSB spiega perché oltre i 16–18 bit è il rumore del riferimento e del front-end analogico, non la quantizzazione, a fissare il limite reale.
Gamma dinamica
Per un convertitore ideale, limitato solo dal rumore di quantizzazione, la gamma dinamica (rapporto fra il massimo segnale rappresentabile e il rumore di fondo) coincide numericamente con l’SNR full-scale. Nei dispositivi reali le due grandezze divergono: la distorsione e i toni spuri abbassano l’SNR ma non necessariamente la gamma dinamica misurata con un segnale piccolo. Qui modelliamo il caso ideale, quindi gamma dinamica = SNR ideale.
ENOB e SINAD
Un convertitore reale non raggiunge il suo SNR teorico: rumore termico, jitter del clock, non-linearità (INL/DNL) e distorsione armonica lo erodono. La misura rappresentativa è il SINAD (Signal-to-Noise-And-Distortion), che mette a denominatore non solo il rumore ma anche tutte le armoniche e gli spuri.
Invertendo la formula dell’SNR ideale e sostituendo il SINAD misurato si ottiene il numero di bit effettivi, l’ENOB:
Un ADC “a 16 bit” con SINAD di 90 dB ha un ENOB di circa 14.7 bit: gli ultimi bit sono rumore, non informazione. Per questo l’ENOB — non la risoluzione nominale — è la cifra di merito con cui si confrontano davvero i convertitori. La differenza N − ENOB dice quanti bit “si perdono” rispetto al data sheet.
Il jitter di apertura, il limite che non si legge nella risoluzione
Fra i fattori che erodono l’SNR reale, il jitter di apertura — l’incertezza sull’istante in cui il campionatore chiude — merita un posto a sé, perché non dipende dal convertitore ma dal clock, e perché la sua legge è sorprendentemente severa. Campionare un attimo troppo presto o troppo tardi produce un errore di ampiezza pari alla pendenza del segnale per l’errore di tempo; su una sinusoide di frequenza f_in e jitter rms t_j il rapporto segnale-rumore che ne risulta è
e non contiene N. Non dipende dalla risoluzione: è un tetto che il clock impone a qualunque convertitore. Poiché f_in vi entra linearmente, il tetto scende di 20 dB per decade di frequenza d’ingresso:
| Jitter | 1 kHz | 10 kHz | 100 kHz | 1 MHz | 10 MHz | 100 MHz |
|---|---|---|---|---|---|---|
| 1 ps | 164 dB | 144 dB | 124 dB | 104 dB | 84 dB | 64 dB |
| 10 ps | 144 dB | 124 dB | 104 dB | 84 dB | 64 dB | 44 dB |
| 100 ps | 124 dB | 104 dB | 84 dB | 64 dB | 44 dB | 24 dB |
| 1 ns | 104 dB | 84 dB | 64 dB | 44 dB | 24 dB | 4 dB |
La lettura della figura è immediata: dove la retta del proprio jitter passa sotto la linea orizzontale della propria risoluzione, i bit in eccesso non servono a niente. Un clock da 100 ps — non un clock cattivo, per molti sistemi digitali — limita a 64 dB a 1 MHz: meno di quello che darebbe un ADC a 11 bit.
Quanto jitter si può tollerare
Girando la formula si ottiene il jitter che porta il rumore da clock a pareggiare il rumore di quantizzazione, cioè la soglia oltre la quale il convertitore comincia a essere limitato dal clock:
| Risoluzione | SNR quantizzazione | a 100 kHz | a 1 MHz | a 10 MHz |
|---|---|---|---|---|
| 12 bit | 74,0 dB | 317.6 ps | 31.8 ps | 3.2 ps |
| 14 bit | 86,0 dB | 79.8 ps | 8.0 ps | 0.8 ps |
| 16 bit | 98,1 dB | 19.8 ps | 2.0 ps | 0.2 ps |
| 18 bit | 110,1 dB | 5.0 ps | 0.5 ps | 50 fs |
| 24 bit | 146,2 dB | 78 fs | 8 fs | 1 fs |
I numeri della colonna a 10 MHz sono la ragione per cui i convertitori a 18 e 24 bit vivono a bassa frequenza: pretendere 50 femtosecondi di jitter, o peggio uno, non è una questione di budget ma di fisica del generatore e del percorso di clock. Un 24 bit è un componente da strumentazione DC e da audio, non da RF — e la formula lo dice prima di qualunque data sheet.
Quando i due contributi sono comparabili si sommano in potenza. Su un ADC a 16 bit con un clock da 10 ps:
| f_in | SNR da jitter | SNR totale | ENOB |
|---|---|---|---|
| 10 kHz | 124,0 dB | 98,1 dB | 16,0 bit |
| 100 kHz | 104,0 dB | 97,1 dB | 15,8 bit |
| 1 MHz | 84,0 dB | 83,9 dB | 13,6 bit |
| 10 MHz | 64,0 dB | 64,0 dB | 10,3 bit |
A 10 kHz il jitter è irrilevante e l’ENOB resta 16,0. A 1 MHz ha già mangiato 2,4 bit, e a 10 MHz il convertitore rende come un 10 bit. Nessuna di queste cifre dipende dalla qualità del silicio.
Oversampling e segnale reale
Due correzioni pratiche al tetto teorico, in direzioni opposte.
Quanti bit compra l’oversampling
Campionare più in fretta del necessario non riduce il rumore di quantizzazione totale, ma lo distribuisce su una banda più larga: filtrando poi alla banda utile se ne butta via la parte fuori. Il guadagno vale 10·log₁₀(OSR), cioè 3 dB — mezzo bit — per ogni raddoppio:
| OSR | Guadagno SNR | Bit equivalenti |
|---|---|---|
| 2× | +3,0 dB | +0,5 |
| 4× | +6,0 dB | +1,0 |
| 16× | +12,0 dB | +2,0 |
| 64× | +18,1 dB | +3,0 |
| 256× | +24,1 dB | +4,0 |
| 1024× | +30,1 dB | +5,0 |
Quattro bit gratis costano un fattore 256 sulla frequenza di campionamento: è un baratto conveniente in banda audio, insostenibile a frequenze alte. La leva che lo rende praticabile è il noise shaping di un modulatore sigma-delta, che non si limita a spalmare il rumore ma lo spinge fuori banda: un modulatore del primo ordine guadagna 9 dB per raddoppio di OSR (1,5 bit), uno del secondo 15 dB (2,5 bit), uno del terzo 21 dB (3,5 bit). È la ragione per cui un sigma-delta a 1 bit con OSR 64 e secondo ordine batte comodamente un SAR a 16 bit sulla stessa banda.
E se il segnale non è a fondo scala
Il 6,02·N + 1,76 vale per una sinusoide che usa tutta la scala. Ogni decibel di margine lasciato in cima è un decibel di SNR perso, uno a uno. Su un ADC a 16 bit:
| Livello del segnale | SNR | ENOB |
|---|---|---|
| +0 dBFS | 98,1 dB | 16,0 bit |
| -6 dBFS | 92,1 dB | 15,0 bit |
| -12 dBFS | 86,1 dB | 14,0 bit |
| -20 dBFS | 78,1 dB | 12,7 bit |
| -40 dBFS | 58,1 dB | 9,4 bit |
| -60 dBFS | 38,1 dB | 6,0 bit |
Venti decibel di headroom — una scelta prudente e comunissima per non clippare mai — costano 3,3 bit: un 16 bit usato a −20 dBFS rende come un 12,7 bit a fondo scala. È il compromesso più sottovalutato nella progettazione di una catena di acquisizione, e spiega perché il guadagno del front-end analogico conti tanto quanto la scelta del convertitore.
Nyquist e aliasing
Campionando a frequenza f_s si rappresentano senza ambiguità solo le componenti sotto metà di f_s, la frequenza di Nyquist:
Qualunque componente — segnale utile o rumore — oltre Nyquist si ripiega (alias) dentro la banda utile, dove diventa indistinguibile da una frequenza legittima. Per questo davanti a un ADC si pone sempre un filtro anti-aliasing che attenua tutto sopra Nyquist prima del campionamento, e nei convertitori oversampling si sfrutta f_s molto alta per spostare il rumore di quantizzazione fuori banda.
Limiti
- Modello del convertitore ideale: solo rumore di quantizzazione uniforme, nessuna distorsione, INL/DNL o jitter. L’SNR calcolato è il tetto teorico, non la prestazione reale.
- L’ENOB richiede un SINAD misurato sul dispositivo: senza quel dato lo strumento non lo stima.
- Segnale di prova sinusoidale a fondo scala: con segnali più piccoli o non sinusoidali i numeri cambiano.
- Strumento dimostrativo, non sostituisce la caratterizzazione di un convertitore reale.
Riferimenti
- Application note dei costruttori di ADC/DAC sul rapporto fra risoluzione, SNR, SINAD ed ENOB e sulla misura dei convertitori (definizioni IEEE Std 1241).
- Strumento correlato — il calcolatore ADC/DAC Resolution & SNR mette in pratica questa pagina: inserisci N, V_ref e f_s e leggi LSB, SNR ideale, gamma dinamica e Nyquist; aggiungi un SNR/SINAD misurato e ottieni l’ENOB.
Un progetto simile?
Acustica, embedded, strumenti di calcolo: se hai un caso d’uso vicino, parliamone.