Circuiti elettronici per il trattamento dei segnali In elettronica , il sample and hold (abbreviato S&H) viene utilizzato come interfaccia con il mondo reale, convertendo segnali analogici al dispositivo seguente, come ad esempio un convertitore analogico/digitale o ADC. L'effetto di questo circuito è di mantenere il valore analogico costante per il tempo necessario al convertitore o ad altri circuiti successivi per compiere delle operazioni sul segnale. Nella maggior parte dei circuiti si utilizza un condensatore a bassa capacità C per conservare la tensione analogica, più un transistor (solitamente un MOSFET, che ha una piccola resistenza di ingresso intrinseca R), il quale funge da interruttore, connettendo e disconnettendo il condensatore all'ingresso analogico. Al source del transistor è collegato un buffer , che mantiene l'impedenza di ingresso globale elevata. La procedura di utilizzo consiste nell'iniettare nel gate del transistor un segnale impulsivo, permettendo così al source del MOSFET di raggiungere (in modo pressoché istantaneo, date le grandezze del partitore RC) la tensione del generatore in ingresso. Nell'istante successivo all'immissione dell'impulso, l'interruttore si chiude, perciò il condensatore non si scarica, "memorizzando" così il segnale di ingresso. Ripetendo tale procedura più volte, si ottiene in uscita una rappresentazione "a scalino" della tensione di ingresso. La frequenza con cui l'interruttore viene aperto o chiuso è la frequenza di campionamento del sistema. Il motivo della necessità di un simile circuito è evidente: nell'ADC l'input viene comparato con una serie di voltaggi prodotti da un convertitore digitale-analogico interno finché le due misure non corrispondono (entro un certo margine di errore). Nel caso l'ADC fosse collegato direttamente al segnale da convertire, senza un circuito S&H che ne mantenga il valore, l'input potrebbe variare durante il processo di comparazione, portando ad una conversione inaccurata o completamente errata. Spesso i sample and hold sono utilizzati quando vi è la necessità di analizzare più segnali: ciascun ingresso viene acquisito e mantenuto utilizzando un segnale di clock comune a tutti i circuiti, in modo da poter leggere comodamente i valori. È essenziale che la capacità abbia poche perdite, così da mantenere costante la tensione di ingresso, e che non abbia carico, cioè abbia una grande impedenza di ingresso. Il Digital (to) Analog Converter (DAC), in italiano Convertitore digitale-analogico, è un componente elettronico in grado di produrre una determinata differenza di potenziale in funzione di un valore numerico che viene caricato; ad esempio, ad un valore pari ad 1 corrisponderà una tensione di uscita di 0,1 V, ad un valore di 2 avremo 0,2 V e così via. La tabella di conversione dal valore digitale a quello analogico prende il nome di LUT (Look-Up Table) e può avere caratteristiche proporzionali (come nel precedente esempio), o può seguire un andamento del tutto arbitrario, a seconda del suo impiego. Una larga diffusione ad uso domestico dei DAC si ha nei riproduttori digitali di suoni, nel controllo dell'apertura del diaframma nelle macchine fotografiche, nei controlli digitali (volume, luminosità) dei televisori e in tutte quelle situazioni nelle quali un'informazione numerica deve controllare una grandezza di tipo analogico. Le caratteristiche del DAC hanno più o meno rilevanza a seconda dell'impiego; ad esempio la risoluzione è estremamente importante per le misure di precisione e la riproduzione di brani musicali ad alta fedeltà, e la qualità sarà tanto più alta, quanto maggiore sarà la grandezza massima riproducibile sul suo ingresso digitale. Si va dagli 8 bit (256 livelli di tensione) dei DAC più semplici (telecomandi ecc...), ai 12 bit per i controlli di precisione (strumenti di misura, multimetri, oscilloscopi), ai 16 bit per i riproduttori musicali ad alta fedeltà (16 bit permettono di riprodurre una dinamica di 96 dB),fino ad arrivare al DVD che, con i suoi 24 bit di risoluzione, consente una dinamica teorica di ben 144 dB. All'aumentare della risoluzione, però, corrisponde un maggior numero di elaborazioni per ottenere la tensione d'uscita; in altre parole, più è elevata la risoluzione del DAC e più la sua elaborazione ne risulterà rallentata. Pertanto, la scelta della risoluzione dovrà obbligatoriamente tenere conto della velocità del dispositivo impiegato, rispetto all'utilizzo al quale è destinato. Le possibili strutture circuitali sono: • DAC a resistenze di Emettitore potenza del 2 I convertitori DAC a commutazione di corrente hanno una coppia differenziale per pilotare le linee di uscita (Io e -Io) e ricevono la corrente da commutare dal collettore di un transistor tipicamente bipolare il cui Emettitore ha una singola resistenza verso l'alimentazione negativa La base di tutti i transistor sono pilotate dal servosistema di riferimento La loro uscita è tipicamente una corrente e se il riferimento è un segnale esterno, il DAC diventa DAC Moltiplicatore • DAC a rete R-2R La singola resistenza di Emettitore dà problemi costruttivi a causa del grande rapporto tra la resistenza dell'MSB e quella dell'LSB Una tecnica in grado di rendere facile costruire reti con un'ottimo comportamento in un'ampia variazione termica è la R-2R dove i valori della rete sono solo due, e quindi mettendo 2N+1 resistenze nel circuito avremo una rete ad N bit L'uscita di questo convertitore è quasi sempre una corrente • DAC flash Questo convertitore è un convertitore a resistenza d'emettitore singola od a rete R-2R ,il cui dato d'ingresso passa attraverso un flip-flop D aggiunto per evitare il jitter e migliorare i percorsi dei segnali all'interno del componente • DAC CMOS moltiplicante Se le linee della rete R-2R sono commutate direttamente senza passare attraverso un transistor ed al nodo principale viene fornito un segnale ,questo circuito moltiplica il dato d'ingresso D per la tensione d'ingresso ottenendo Vu = D / 2N L'uscita di questo convertitore è una tensione • DAC ad 1 bit o convertitore Sigma-Delta Usando una tecnica di sovracampionamento si può commutare la tensione di pilotaggio di un integratore la cui uscita sarà filtrata a frequenza molto inferiore Questo convertitore è a basso costo e rende grandi risoluzioni senza necessità di circuiti precisi ,infatti la precisione avviene digitalmente all'interno della logica di pilotaggio e le sole parti precise saranno la tensione di riferimento e la velocissima frequenza di clock L'uscita di questo convertitore è una tensione • DAC a capacità commutate Questo convertitore è spesso usato nei microcontrollori e la sua attività si svolge nello scambio di carica tra un riferimento ( destinato a caricare un condensatore MOS ) ed un punto di misura La tensione d'uscita è data dalla posizione dei commutatori CMOS Il convertitore analogico-digitale, è un circuito elettronico in grado di convertire una grandezza continua (ad es. una tensione) in una serie di valori discreti (vedi teoria sulla conversione analogicodigitale). Il convertitore digitale-analogico o DAC compie l'operazione inversa. La risoluzione di un convertitore indica il numero di valori discreti che può produrre. È usualmente espressa in bit. Per esempio, un ADC che codifica un ingresso analogico in 256 livelli discreti ha una risoluzione di 8 bit, essendo 28 = 256. La risoluzione può anche essere definita elettricamente, ed espressa in volt. La risoluzione in volt di un ADC è uguale alla minima differenza di potenziale tra due segnali che vengono codificati con due livelli distinti adiacenti. Alcuni esempio possono aiutare: • Esempio 1: • Range compreso tra 0 e 10 volt 12 • Risoluzione dell'ADC di 12 bit: 2 = 4096 livelli di quantizzazione • • La differenza di potenziale tra due livelli adiacenti è 10 V / 4096 = 0,00244 V = 2,44 mV Esempio 2: • Range compreso tra -10 e 10 volt 14 • Risoluzione dell'ADC di 14 bit: 2 = 16384 livelli di quantizzazione • La differenza di potenziale tra due livelli adiacenti è 20 V / 16384 = 0,00122 V = 1,22 mV Nella pratica, la risoluzione di un convertitore è limitata dal rapporto segnale/rumore (S/N ratio) del segnale in questione. Se è presente troppo rumore all'ingresso analogico, sarà impossibile convertire con accuratezza oltre un certo numero di bit di risoluzione. Anche se l'ADC produrrà un valore, questo non sarà accurato essendo i bit meno significativi funzione del rumore e non del segnale. Il rapporto S/N dovrebbe essere di circa 6 dB per bit. La maggior parte degli ADC sono lineari, il che significa che sono progettati per produrre in uscita un valore che è funzione lineare del segnale di ingresso. Un altro tipo comune di ADC è quello logaritmico, che è usato in sistemi di comunicazioni vocali per aumentare l'entropia del segnale digitalizzato. 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 di densità di probabilità quadrata come a-law o μ-law, funzioni logaritmiche. Il segnale distorto ha un range dinamico inferiore, e la sua quantizzazione aggiunge meno rumore al segnale originale rispetto a quanto farebbe un quantizzatore lineare con la stessa risoluzione in bit. L'accuratezza dipende dall'errore della conversione. Questo errore è formato da due componenti: un errore di quantizzazione e un errore di non-linearità (o infedeltà alla curva desiderata nel caso di ADC volutamente non-lineari). Questi errori sono misurati con un'unità chiamata LSB (least significant bit = bit meno significativo) ed indica fino a che punto i bit rappresentano segnale e quanti siano 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%; è un modo per dire che 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%. L'errore di quantizzazione è dovuto alla risoluzione finita dell'ADC ed è una imperfezione intrinseca di tutti i tipi di ADC. La grandezza dell'errore di quantizzazione su un campione è compresa tra zero e un LSB. Tutti gli ADC soffrono di errori di non-linearità causati da imperfezioni fisiche, facendo deviare la loro l'uscita da una funzione lineare (o da un'altra funzione, in caso di ADC volutamente nonlineari). Questi errori possono a volte essere attenuati con una calibrazione. Parametri importanti per la linearità sono non-linearità integrale (INL) e non linearità differenziale (DNL). Il segnale analogico è tempo-continuo ed è necessario convertirlo in un flusso di valori discreti. È quindi necessario definire una frequenza alla quale campionare i valori discreti del segnale analogico. Questa frequenza è chiamata sampling rate (frequenza di campionamento, in italiano) del convertitore. L'idea chiave è che un segnale di banda limitata che varia con continuità può essere campionato e poi riprodotto esattamente dai valori tempo discreti con un algoritmo di interpolazione se la frequenza di campionamento è almeno pari al doppio della banda del segnale (legge di Shannon). L'accuratezza tuttavia è limitata dall'errore di quantizzazione. Poiché nella pratica un ADC non può effettuare una conversione istantanea, il valore d'ingresso deve necessariamente rimanere costante durante il tempo che il convertitore esegue la conversione (chiamato tempo di conversione o conversion time). Un circuito d'ingresso chiamato sample/hold svolge questo compito - spesso si usa un condensatore per immagazzinare la tensione del segnale in input e un interruttore elettronico per disconnettere il condensatore dall'ingresso. Molti ADC realizzati su circuiti integrati realizzano il sottosistema di sample/hold internamente. Tutti gli ADC lavorano campionando il proprio input ad intervalli discreti di tempo. L'output di conseguenza è 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 confrontato con la frequenza di campionamento, allora si può presumere che esso sia sempre contenuto tra i due estremi in quell'intervallo. Il risultato diretto che si osserva riproducendo un segnale campionato ad una frequenza inferiore della sua banda è che le componenti del segnale a frequenze superiori verranno riprodotti a frequenza diverse, inferiori alla frequenza di campionamento. Ad esempio, campionando a 1.5 kHz un onda sinusoidale a 2 kHz verrà trasformata in una onda a 500 Hz (ed in opposizione di fase). Il problema dell'aliasing può essere osservato anche visivamente, basta far caso che in 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 filtrato (low-pass) per rimuovere le frequenze superiori a quelle di campionamento. Questo filtro è chiamato anti-aliasing ed è essenziale in un sistema ADC. Il dithering consiste nell'introdurre artificialmente del rumore nel segnale di ingresso al fine di migliorare la qualità di conversione superando la limitazione di una risoluzione finita. Anche se può sembrare assurdo che del rumore possa migliorare la qualità si può mostrare come questo sia vero con un semplice esempio numerico. Supponiamo che il segnale di ingresso sia sempre pari e costante al valore di 0,34 Volt e che il nostro convertitore abbia una risoluzione di 0,1 volt. In assenza di rumore il segnale sarà campionato e approssimato come una sequenza di valori pari a 0,3 V, il livello più vicino del quantizzatore. Se invece sommiamo del rumore bianco, cioè un segnale con valore medio nullo, con una varianza pari a 0,1 V (pari alla risoluzione del convertitore, 1LSB) avremo che il segnale oscillerà ora tra 0,24 V e 0,44 V con il risultato che i campioni avranno i valori di 0,2, 0,3 o 0,4 Volt. Per le proprietà statistiche del rumore, il valor medio dei campioni, invece di 0,3 volt, sarà di 0,34 V: in pratica il rumore ha annullato l'errore medio. Osservando la figura, è chiaro come l'errore in assenza di dither si sommi nel tempo essendo le due linee spesse parallele mentre la linea sottile, oscillando attorno al valore esatto, lo approssima in valor medio sempre di più al passare del tempo. In elettronica ci sono cinque modi comuni di implementare un ADC: • • Un ADC a conversione diretta o flash ADC ha un comparatore per ognuno dei livelli di voltaggio riconosciuti dal quantizzatore. Un ADC flash ad 8-bit avrà 2^8-1 (=256-1) comparatori. Il segnale di ingresso arriva a tutti i comparatori, ma solo uno di essi attiverà la propria uscita, quello del livello corrispondente. I convertitori flash sono i più veloci in assoluto e sono usati per campionare segnali in alta frequenza, fino a diversi GHz. Poiché il numero di comparatori necessari cresce esponenzialmente con il numero dei bit richiesti, i convertitori flash raramente hanno più di 8 bit di risoluzione. Un ADC ad approssimazioni successive usa un comparatore e un DAC, ad ogni passaggio l'ADC prova a impostare un bit, partendo dal MSB e usando il DAC confronta il segnale campionato con il segnale di ingresso in feedback. Questo convertitore individua un bit ad ogni iterazione in una sorta di ricerca binaria e la risoluzione è limitata solo dalle esigenze di sample-rate e dal rumore in ingresso. • Un ADC a codifica-delta ha un contatore up-down collegato ad un DAC. Un comparatore confronta il segnale di uscita del DAC con il segnale di ingresso e interrompe il conteggio quando i valori sono abbastanza vicini tra loro. Quando questo succede il contatore contiene il livello quantizzato del segnale. Questi convertitori sono usati spesso per leggere grandezze fisiche che non variano con elevata velocità ma che devono essere lette con molta precisione. • Un ADC a doppia rampa (o ad integrazione) produce un segnale a dente di sega che sale, per poi cadere velocemente a zero. Il segnale di ingresso viene integrato facendo salire la rampa mentre un contatore segna il tempo. Quando la rampa raggiunge un livello noto il conteggio termina e indica il valore quantizzato del segnale. Questo tipo di ADC è sensibile alla temperatura poiché può alterare il clock usato per segnare il tempo o alterare il voltaggio di riferimento per la rampa e deve essere ricalibrato spesso. • Un ADC a pipeline (noto anche come subranging quantizer) è simile al ADC ad approssimazioni successive ma invece di individuare un bit alla volta individua un blocco di bit; in un primo passo avviene una conversione grezza del segnale che viene poi riconvertito da un DAC; quindi si quantizza la differenza tra il segnale originario e quello campionato, eventualmente si può procedere a quantizzazioni sempre più fini con passi successivi. Se ad esempio supponiamo di avere un quantizzatore a 4-bit che operi con un range di [0÷2,56 V] (quindi con una risoluzione di 0,16 V) e un altro quantizzatore a 4-bit che operi però tra [0 V ÷ 0,16 V] con una risoluzione di 0,01 V. Dopo aver quantizzato il segnale di ingresso con il primo quantizzatore la differenza tra il segnale quantizzato e quello di ingresso sarà al massimo quello della risoluzione, e può essere letto dal secondo quantizzatore. Se il segnale di ingresso era pari a 2.50 V, il primo campionatore indentificherà il livello 15 (1111 in binario), che corrisponde ad un valore di 2,40 V, la differenza di 1,0 V viene quantizzata dal secondo con il livello 10 (1010 in binario); unendo i codici si ottiene 1111 1010 ossia un valore a 8 bit.