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