LA CONVERSIONE A/D
L’era digitale
…ma il mondo fisico è analogico!!
Come si passa dall’analogico al
digitale (e viceversa)?
ADC
Il microfono è un trasduttore:
trasforma il segnale sonoro
(onde di pressione in aria) in
un segnale elettrico analogico
(tensione variabile nel tempo)
Convertitore Analogico/Digitale
(Analog to Digital Converter):
trasforma il segnale elettrico
analogico in digitale
DAC
Gli altoparlanti delle cuffie
trasformano il segnale elettrico
analogico in segnale sonoro
Convertitore Digitale/Analogico
(Digital to Analog Converter):
trasforma il segnale elettrico
digitale in analogico
Un po’ di ripasso sui segnali
In riferimento agli stati che il segnale può assumere in un determinato
intervallo di tempo, distinguiamo due tipi di segnale:
 segnale analogico: può assumere tutti i possibili valori in un intervallo
 segnale digitale binario: può assumere solo due valori: ‘0’ e ‘1’
Segnale digitale binario
Segnale analogico
Conversione A/D
Conversione D/A
Perché complicarsi la vita?
Non sarebbe più conveniente usare dispositivi analogici?
Tre buoni motivi per passare dall’analogico al digitale…
 Elevata insensibilità ai disturbi e al rumore
 Possibilità di poter sfruttare la potenza di calcolo dei microprocessori per
l’elaborazione e la gestione dei segnali (Digital Signal Processing - DSP)
 Estrema facilità e praticità di memorizzazione e trasporto dei dati digitali
(supporti CD, DVD, chiavette USB, hard disk, ecc…)
…e qualche (piccolo) svantaggio:
 Perdita di informazione dovuta al processo di conversione A/D
 Consumo di spazio, energia e € a causa all’hardware aggiuntivo
Il processo di conversione A/D
Il processo di conversione A/D comporta la trasformazione di un segnale
continuo (analogico) in un insieme finito di valori (discretizzazione)
Poiché un segnale analogico è continuo sia nel TEMPO che in AMPIEZZA
sono necessarie due fasi:
 CAMPIONAMENTO
discretizzazione nel TEMPO
 QUANTIZZAZIONE
discretizzazione in AMPIEZZA
Campionamento
Ad intervalli regolari di tempo prelevo il valore del segnale (campione)
V
ESEMPIO: prendo un campione ogni 0.1 s
Vmax
6
1s
7
fc = 1/Δtc
9
5
10
Infatti:
8
fc = 1/0.1 = 10 Hz
2
1
3
4
intervallo di
campionamento (Δtc)
Vmin
0.1
0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1
1.1
1.2
t [s]
DEFINIZIONE: il no di campioni/s si dice frequenza di campionamento (fc)
Nel nostro caso: fc = 10 sps = 10 Hz [1]
Campionamento
Il segnale
campionato
è segnale (campione)
Ad intervalli regolari
di tempo
prelevo ilottenuto
valore del
DISCRETO NEL TEMPO ma ancora CONTINUO IN AMPIEZZA
V
ESEMPIO: prendo un campione ogni 0.1 s
Vmax
1s
CONTINUO
campioni
aventi un
qualunque
valore tra
Vmin e Vmax
6
7
fc = 1/Δtc
9
5
10
Infatti:
8
fc = 1/0.1 = 10 Hz
2
1
3
4
intervallo di
campionamento (Δtc)
Vmin
0.1
0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1
1.1
1.2
t [s]
DISCRETO
DEFINIZIONE:
il no didefinito
campioni/s
campionamento (fc)
segnale
solo si
in dice
certifrequenza
istanti di di
tempo
Devo discretizzare
anchefcin=ampiezza
10 sps = 10 Hz [1] QUANTIZZAZIONE
Nel nostro caso:
Quantizzazione
Campionamento
o di bit/sottenuto
Voglio rappresentare
ciascun
campione
con
un numero
binario di n bit
Il segnale
campionato
è
DEFINIZIONE:
il n
si dice
bitrate
DISCRETO NEL TEMPO ma ancora CONTINUO IN AMPIEZZA
ESEMPIO: con n=3 individuo 23 = 8 sottointervalli
V
bitrate = 10 campioni/s x 3 bit/campione = 30 bps (bit per second)
Vmax
111
6
CONTINUO
campioni
aventi un
qualunque
valore tra
Vmin e Vmax
100
5
111
110
7
101
9
101
10
101
8
100
011
2
010
1
110
011
4
3 010
010
100
risoluzione
o
profondità
di bit
011
001 010
bitrate = fc x n
001
000
Vmin
0.1
0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1
1.1
1.2
t [s]
DISCRETO
Adn ogni
campione
associo la relativa
codifica
Poiché con
bit posso
rappresentare
2n valori,
divido l’intervallo
n sottointervalli
certi
istanti2di
tempo
Vmin - Vmax
in
parti definito
ugualiintroduco
in solo
modoinda
ottenere
Insegnale
questa
fase
un’approssimazione:
infatti a
ciascuno
delle quali
associo
la
corrispondente
codifica
binaria
Devo
discretizzare
anche
in ampiezza
QUANTIZZAZIONE
a campioni
diversi
può
corrispondere
la stessa
codifica
Un esempio familiare: l’MP3
BITRATE
FREQUENZA DI
CAMPIONAMENTO
Il teorema di Shannon
Quanti campioni/s sono necessari per campionare adeguatamente un segnale?
ovvero:
Qual è la frequenza di campionamento minima che mi permette di
ricostruire il segnale in modo univoco dai suoi campioni?
Devo prendere
almeno 2 campioni
per ogni periodo
Per campionare un
segnale sinusoidale di
1 Hz devo prendere al
minimo fc = 2 Hz
fc = 1 Hz
1 Hz
2 Hz
fc = 2 Hz
Il teorema di Shannon
Claude Shannon
(1916 – 2001)
Il “padre” del digitale
Affinchè un segnale sia univocamente ricostruibile dai suoi
campioni, deve essere campionato con una frequenza pari almeno
al doppio della frequenza massima del suo spettro, fmax :
fc ≥ 2fmax
Il teorema di Shannon
Claude Shannon
(1916 – 2001)
ESEMPIO: segnale audio musicale
Il “padre” del digitale
L’orecchio umano può udire le frequenze comprese all’incirca
nell’intervallo 20 Hz – 20 kHz; perciò, in base al teorema di Shannon:
Affinchè un segnale sia univocamente ricostruibile dai suoi
campioni, deve essere campionato con una frequenza pari almeno
al doppio della
delkHz
suo spettro,
fmax :
fcfrequenza
(minima)massima
= 2 x 20
= 40 kHz
fc ≥ 2fmax
In pratica normalmente si usa fc = 44.1 kHz (qualità audio CD)
Qualche esempio pratico
Frequenza di
campionamento
Applicazioni tipiche
44.1 kHz (44100 Hz)
CD, DAT
48 kHz (48000 Hz)
DAT, DV, DVD-Video
96 kHz (96000 Hz)
DVD-Audio
Qualche esempio pratico
Risoluzione
Applicazioni tipiche
8-bit
audio web a bassa ris.
16-bit
CD, DAT, DV, files audio
24-bit
DVD-Video, DVD-Audio
Esercizio
Calcoliamo il bitrate per un segnale audio digitale in qualità stereo CD
• fc = 44.1 kHz;
• n = 16 bit/campione;
• 2 canali (stereo)
Bitrate = fc x n x 2 = 44100 campioni/s x 16 bit/campione x 2
= 1.41 x 106 bps = 176400 Bytes/s
Quanto spazio occupa un file musicale contenente un brano di 5 min
in qualità stereo CD?
Durata del brano in secondi = 5 min x 60 s/min = 300 s
Spazio occupato = 1.41 x 106 bps x 300 s = 423 x 106 bit
= 423 x 106/8 = 52.9 x 106 Byte = 50.4 MB [2]
I convertitori A/D
Realizzano la quantizzazione dei dati analogici campionati:
SCHEMA DI PRINCIPIO
01011010
Vin
ADC
Campionatore
L’ADC prende in ingresso il segnale analogico Vin e
restituisce in uscita la sua codifica digitale ad n bit
I convertitori A/D
Parametri caratteristici
Vin
N
b1bo
b0
b1
ADC
N = bn-1•2n-1 + … + b1•21 + b0•20
Ad ogni Vi compreso tra QN-Q/2 e
QN + Q/2 associo il valore discreto:
bn-1
n bit
n=2
VN = QN
L’errore massimo che commetto è:
emax emax
emax = Q/2
11
10
Vmax = VFS – Q/2
01
00
Il massimo valore che può assumere
VN lo ottengo per N = 2n - 1:
VN (max) = Q(2n - 1)
Ovvero:
Q Q
2Q
2
intervallo di
quantizzazione (LSB)
3Q
VFS = 4Q
tensione di
fondo scala
Vin
VN (max) = VFS - Q
VFS = Q2n
Esercizio
Vogliamo convertire in digitale una tensione analogica il cui intervallo di variazione
(dinamica) è 0-4 V. Determinare il minimo numero di bit in uscita dell’ADC che
consente di ottenere un intervallo di quantizzazione non superiore a 0.4 V
Soluzione:
Noi conosciamo Vmax = 4 V; partiamo quindi dalla relazione vista precedentemente:
Vmax = VFS – Q/2
Poiché abbiamo visto anche che:
VFS = Q2n
sostituendo nella prima relazione otteniamo:
Vmax = Q2n – Q/2 = Q (2n – ½)
ovvero:
Vmax /Q +
½ = 2n
sostituendo i valori numerici abbiamo:
Da cui possiamo ricavare n:
n = log2 (4/0.4 + 0.5) = log2 (10.5) = 3.39
che arrotondiamo all’intero successivo n = 4
4 /0.4 +
½ = 2n
I convertitori A/D
Tipologie di ADC
SPOT
AD INTEGRAZIONE
•A Rampa semplice
•A Doppia rampa
•Sigma Delta
Risorse hardware
Velocità di conversione
n. di bit (risoluzione)
• Flash
• Ad approssimazioni successive
• Subranging
I Convertitori A/D
ADC Flash






Tramite una serie di comparatori si
confronta simultaneamente la tensione da
convertire con le soglie Q/2, 3/2Q, 5/2Q, …
Il n. di comparatori attivi mi dice in quale
intervallo di quantizzazione cade Vin
La rete combinatoria fornisce la codifica
binaria di uscita riducendo la ridondanza
Le soglie sono generate attraverso un
partitore resistivo
Un comparatore per ogni soglia
Un ADC Flash ad n bit di uscita richiede
2n-1 comparatori e 2n resistori
VR
Vin 13Q/2
11Q/2
9Q/2
b0
7Q/2
Rete
combinatoria b1b
0
di codifica
b2
5Q/2
3Q/2
Q/2
b1
b2
I convertitori A/D
Esempio: ADC FLASH a 2 bit
Vdd
Vin
R/2
a2
V3
V2
a1
R
a0
V1
R/2
Vdd
I
3R
Rete di codifica
R
I
Vin
Comparatori
b1
b0
a2 a1 a0
b1 b0
Vin< V1
000
00
V1 < Vin < V2
001
01
V2 < Vin < V3
011
10
Vin >V3
111
11
RV
dd V
dd
V


1
23
R 6
V
R 

dd V
V


R
 dd
2 
R 2
2 3
V
V
R 

dd5
V

2
R

  dd
3
2 
3
R 6

I convertitori A/D
ADC FLASH: pregi e difetti
PREGI
 Veloce: tempo di conversione pari al tempo di commutazione di
un comparatore + tempo di codifica
Tempo di conversione ~ ns
Digitalizzazione di segnali video
in tempo reale, comunicazioni via
satellite, oscilloscopi digitali
DIFETTI
 Costoso: elevato numero di comparatori (es: n = 8
28-1 = 255
comparatori)
basse risoluzioni (n < 10)
 Bassa impedenza di ingresso: molti ingressi in parallelo
 Elevata potenza dissipata (> W)
I convertitori A/D
ADC ad approssimazioni successive
Principio di funzionamento basato su
algoritmo di ricerca dicotomica:
• Si parte a metà scala (valore binario iniziale di tentativo)
• Ad ogni ciclo si aggiusta un bit dividendo ripetutamente a metà l’intervallo
n=3
1 1 1 -------->
1 1 0 -------->
1 0 1 -------->
1 0 0 -------->
0 1 1 -------->
0 1 0 -------->
0 0 1 -------->
0 0 0 -------->
13/2Q
11/2Q
9/2Q
7/2Q
5/2Q
3/2Q
1/2Q
0
Vin
N = 011
I convertitori A/D
ADC ad approssimazioni successive
Vin >< 5/2Q
7/2Q
3/2Q
CLOCK
L’algoritmo di ricerca dicotomica è
implementato dal Registro ad
Approssimazioni Successive (SAR)
Inizio del ciclo di clock
Il SAR mette a 1 il bit corrente
VR
7/2Q
3/2Q
5/2Q
011
100
010
011
Tempo di conversione = nTclock
Esempio: Tclock = 1 s
n = 12
Il valore binario approssimato è
convertito nella tensione analogica VR da
un DAC e confrontato tramite un
comparatore con Vin
Se Vin < VR il SAR riporta a 0 il bit corrente
Se Vin > VR il SAR lascia a 1 il bit corrente
Fine del ciclo di clock
Tconv = 12 s
I convertitori A/D
ADC ad approssimazioni successive:
PREGI E DIFETTI
PREGI
 Poco costoso: un comparatore e un circuito SAR
 Buone risoluzioni: in genere n = 8 – 12 bit
DIFETTI
 Meno veloce del convertitore Flash
Gli ADC ad approssimazioni successive realizzano un buon
compromesso tra risoluzione e velocità di conversione
Sono tra i più usati nelle applicazioni comuni !
I convertitori A/D
ADC subranging
• ‘Piccoli’ convertitori Flash in cascata
• Il codice del primo convertitore viene riconvertito in tensione
analogica dal DAC e si converte poi la differenza tra ingresso e
segnale rigenerato
I convertitori A/D
ADC subranging: PREGI e DIFETTI
PREGI
 Flash semplici e meno costosi
Esempio: per n = 8 bit servono 2 convertitori da 4 bit cioé 15 +
15 = 30 comparatori anziché 255
DIFETTI
 Più lento del convertitore Flash
ADC integrati commerciali
Sono disponibili in commercio numerosi dispositivi ADC integrati
prodotti da diverse case costruttrici.
Per il loro utilizzo bisogna andare a STUDIARSI il relativo foglio
tecnico (datasheet)
ESEMPI:
Analog Devices: AD574A
National Semiconductor: ADC0801
Texas Instruments: TLC548
FINE
Una giustificazione intuitiva del
teorema di Shannon
spettro del segnale
analogico originario
fmax
Fs/2
segnale analogico originario
fc
Fs
spettro del segnale campionato
fc-fmax
fmax
Fs/2
fc
Fs
fc+fmax
segnale campionato
2fc
2Fs
Se fc - fmax < fmax ovvero: fc < 2fmax lo spettro del segnale campionato
si sovrappone a quello del segnale originario (ALIASING)
Note
[1] Ricorda che l’unità di misura 1/s prende il nome di Hertz e si indica col
simbolo Hz. Poichè la frequenza di campionamento rappresenta il no di
campioni/s, essa è dimensionalmente equivalente a 1/s (il no dei campioni è
ovviamente un numero puro, cioè senza unità di misura). Pertanto fc viene
generalmente espressa in Hz o, più frequentemente, tramite i suoi
multipli kHz (103 Hz) o MHz (106 Hz). A volte viene anche espressa in sps
(samples per second, ovvero campioni al secondo)
[2] In informatica si considerano come multipli del bit il kiloByte (kB) e il
MegaByte (MB), che valgono rispettivamente:
1 kB = 210 bit
1 MB = 220 bit
Scarica

conversione AD