Aliasing
Tutti gli ADC che lavorano campionando il proprio input ad intervalli
discreti di tempo producono in uscita un'immagine incompleta
dell'input e non c'è modo di sapere, guardando soltanto l'output, che
valori abbia assunto l'input tra due istanti di campionamento adiacenti.
Se è noto che l'ingresso varia lentamente in confronto con la frequenza
di campionamento, allora si può presumere che esso sia sempre contenuto
tra i due estremi in quell'intervallo. Così pure se si valuta che variazioni
del segnale durante gli intervalli di conversione non siano significative e
possano essere non considerate.
Il problema è che, se nel segnale sono presenti componenti a frequenza più
elevata di quella utilizzata per il campionamento, esse verranno riprodotte a frequenza diverse, inferiori alla frequenza di
campionamento. Ad esempio, campionando a 1500 Hz un'onda sinusoidale a 2 kHz verrà trasformata in
un' onda a 500 Hz. Questo effetto si chiama aliasing.
Il problema dell' aliasing
può essere osservato semplicemente alla televisione o al cinema (dove l'immagine è campionata a 25
Hz): oggetti
in rotazione a frequenza superiori, come pale di elicottero o ruote di
automobili, spesso ci appaiano girare lentamente, o addirittura al
contrario, rispetto a quanto ci si aspetterebbe.
Per eliminare l'aliasing, l'ingresso di un ADC deve essere preceduto da un
filtro passa-basso (low-pass) per rimuovere le frequenze superiori a quelle di campionamento. Questo filtro è chiamato
anti-aliasing e può essere fondamentale essenzialmente in sistemi ADC che devono convertire in
digitale segnali che poi, dopo una elaborazione, dovranno essere riconvertiti in
analogico (ad esempio filmati, TV, suono, ecc).
Il filtraggio anti aliasing non è da confondersi con la necessità di
sopprimere frequenze, rumore o impulsi indesiderati che possono essere presenti nel
segnale di ingresso dell' ADC. |
Linearità e accuratezza
Dunque, la conversione analogico-digitale è un processo elettronico in cui
viene modificato un segnale continuamente variabile (analogico), senza alterarne
il contenuto essenziale, in un segnale digitale.
Questo richiede che il rapporto tra il valore analogico e quelli digitale siano
il più possibile lineari.
L'input di un convertitore analogico-digitale (ADC) è costituito da una
tensione che varia tra un numero teoricamente infinito di valori (ad esempio,
una sinusoide onde, le forme d'onda che rappresenta la voce umana, i segnali da
una telecamera convenzionale).
L' uscita dell'ADC, al contrario, ha un numero definito di livelli o stati,
quasi sempre una potenza di due ( 2, 4, 8, 16, .. 512, 1024, 4096, ecc.)
Gran parte gli ADC sono lineari, ovvero in uscita si otterrà un valore che è funzione lineare del
segnale di ingresso, anche se sono realizzati ADC con uscita logaritmica
(usati ad esempio usato in sistemi di comunicazioni vocali). L'istogramma di un segnale vocale ha la forma di due curve
esponenziali inverse, e l'ADC non lineare cerca di approssimare questo
con una funzione pre determinata, come a-law o μ-law o altre funzioni logaritmiche.
L'accuratezza della corrispondenza tra il segnale di ingresso e quello di
uscita, lineare o dipendente da una data curva, è soggetto all'errore della
conversione, ed è formato da due componenti: un errore di quantizzazione e un errore di non-linearità (o
non corrispondenza alla curva desiderata nel caso di ADC). Questi errori sono
indicati in LSb o LSB (less significant bit
= bit meno significativo), quantità che indica fino a che punto i bit del
risultato rappresentano segnale e quanti solo rumore. In un ADC a 8 bit, un
errore di 1 LSB è pari ad un errore di 1/256 ossia circa del 0,4% (in altre
parole l'ultimo bit è causale). In un ADC a 16 bit con un
errore di 4 LSB significa che l'errore risulterà pari a 4/(216) ossia 0,006%.
Si comprende qui l' indicazione in LSB che appare nei fogli dati della
strumentazione digitale, ad indicare quale quantità del dato letto è casuale.
E perchè può capitare che l' ultima cifra di una lettura digitale sia
"ballerina", essendo determinata dall' insieme delle componenti di
disturbo del segnale e di incertezza della conversione.
Tensione di riferimento
Un convertitore AD diqualunque tipologia richiede una tensione di
riferimento bassa (Vref-) e alta (Vref+): il livello di tensione di ingresso
pari a o inferiore a Vref- produrrà un risultato della conversione uguale a
0, mentre un valore uguale o superiore a Vref+ produrrà il risultato digitale
massimo.
Alcuni microcontroller utilizzano semplicemente la massa (Vss) come Vref- e la
tensione di alimentazione Vdd come Vref+. Questo potrebbe essere
inadeguato per diverse situazione, in quanto non è semplice ottenere elevate
stabilità e precisione per la tensione di alimentazione e questo riduce la
risoluzione.
Quindi, in molti microcontroller con ADCa 10 o 12 bit un paio di pin sono
utilizzabili per un ingresso esterno di riferimento, detto raziometrico.
In questo caso, la Vref- potrà essere anche maggiore della Vss e la Vref+
potrà essere minore della Vdd.
Un ingresso k sarà convertito in un codice digitale:
k * (2n-1) / Vref+
dove n è il numero di bit della risoluzione.
E' evidente che la conversione risulterà più accurata se il valore del
segnale di ingresso varia in un range quanto più vicino possibile a quello
tra Vref- e Vref+.
Il risultato della conversione sarà dato da:
Vk = Vref+ (range * K) / (2n-1)
dove:
range = Vref+ - Vref-
Dunque possiamo anche calcolare quale sarà la codifica in uscita per una determinata
tensione di ingresso.
Se facciamo riferimento al gruppo di 1024 comparatori, con una tensione di
riferimento di 5 V e vogliamo sapere quale sarà l' uscita digitale per 2,55 V,
utilizziamo la seguente formula:
uscita digitale = (n * valore in
ingresso) / tensione di riferimento =
(1024 * 255) / 5 = 522,7 => 523
523dec = 20Bhex = 1000001011bin
codificato su 10 bit. (qui maggiori informazioni sul sistema di numerazione
binario.)
Altre informazioni sulla tensione di riferimento sono
consultabili qui
Documentazione
Alcuni link a documenti interessanti
-
ADC
presentation, Microchip
-
Analog-to-Digital
Converter Design Guide, Microchip
-
Understanding
A/D Converter Performance Specifications, Microchip
-
Interfacing
Pressure Sensors to Microchip's Analog Peripherals, Microchip
-
Anti-Aliasing,
Analog Filters for Data Acquisition Systems, Microchip
-
Driving
the Analog Inputs of a SAR A/D Converter, Microchip
-
Layout
Tips for 12-Bit A/D Converter Application, Microchip
-
Differential
ADC Biasing Techniques, Microchip
-
Achieving
Higher ADC Resolution Using Oversampling, Microchip
-
How
Much ADC Resolution Do You Really Need? , DataQ
-
Guidelines
to Keep ADC Resolution within Specification, ATMEL
-
Enhancing
ADC resolution by oversampling, ATMEL
-
Understanding
SAR ADCs - AN1080, Maxim
-
Understand
the Limits of Your ADC Input Circuit, M. Oljaca
-
A
brief introduction to sigma-delta conversion, Intersil
-
Choosing
and Using Bypass Capacitors, Intersil
-
Improving
ADC Results Through Oversampling and Post-Processing, Actel
|