CODICE BINARIO – CONVERSIONE A/D – CAMPIONAMENTO – CONVERSIONE D/A
ARGOMENTI:
– Il codice binario;
– Conversione A/D di un segnale;
– Campionamento;
– Conversione D/A di un segnale.
Il codice binario
Introduciamo ora i principali metodi di codifica per l’elaborazione dei segnali, questi ci serviranno a comprendere in che modo i calcolatori, e più in generale i sistemi di acquisizione dati, riescano ad elaborare e trasmettere le informazioni.
Il codice binario
In generale, un dato è una parte dell‘
informazione a cui è associato un determinato significato.
E’ possibile considerare l'informazione costituita da tre elementi:
• il valore (il dato);
• il tipo (carattere, numero intero, stringa);
• il significato da associare al valore.
Il codice binario
E’ possibile definire l’unità elementare del codice binario.
Il BIT , BInary digiT , ovvero cifra binaria come:
“
l’unità elementare di informazione codificabile
”Il codice binario
Attraverso una sequenza di 0 e 1, è possibile codificare:
• numeri
• caratteri
• immagini
• suoni
• video
Il codice binario
Rappresentazione binaria dei numeri
Per rappresentare un numero in codice
binario, il primo passo è quello di stabilire il sistema di numerazione che si intende utilizzare.
Il codice binario
Rappresentazione binaria dei numeri
I sistemi di numerazione più utilizzati sono:
• Base 10;
• Base 2;
• Base 8.
Il codice binario
Rappresentazione binaria dei numeri
I sistemi di numerazione oggi in uso sono detti posizionali, in essi tutte le cifre
vengono ordinate in modo che ognuna abbia peso minore rispetto alla precedente.
Il codice binario
Rappresentazione binaria dei numeri
In generale, ogni numero è espresso come la somma dei prodotti di ciascuna cifra per la base, elevata all’esponente che rappresenta la posizione della cifra.
Il codice binario
Rappresentazione binaria dei numeri
Esempio rappresentazione in
base 10
Rappresentazione di 532 532 = 5x10²+ 3x10¹+ 2x10º
Il codice binario
Rappresentazione binaria dei numeri
Esempio rappresentazione in
base 2
Rappresentazione di 532
5322 = 5x2²+ 3x2¹+ 2x2º= 2810
Il codice binario
Rappresentazione binaria dei numeri
Esempio rappresentazione in
base 8
Rappresentazione di 532
5328 = 5x8²+ 3x8¹+ 2x8º= 34610
Il codice binario
Rappresentazione binaria dei numeri
Più in generale, è possibile convertire ogni numero da una qualsiasi base N a una
qualsiasi altra base M.
Il codice binario
Rappresentazione binaria dei numeri
A partire dal principio di conversione appena visto, è possibile affermare che ogni numero è convertibile in un
sistema numerico binario posizionale in base 2
.Il codice binario
Rappresentazione binaria dei numeri
Se ho a disposizione n bit riesco a codificare 2n numeri decimali.
Considerando l’esistenza dello 0 nella
numerazione decimale, i numeri totali che riesco a codificare vanno da 0 a 2n - 1.
Il codice binario
Rappresentazione binaria dei numeri Esempio
8 =
23 con 3 bit codifico:0 0 0 = 0
0 0 1 = 1 0 1 0 = 2 0 1 1 = 3 1 0 0 = 4 1 0 1 = 5 1 1 0 = 6 1 1 1 = 7
Il codice binario
Rappresentazione binaria dei caratteri
Per introdurre la codifica dei caratteri, diamo la definizione di byte.
1 byte è caratterizzato da una sequenza di 8 bit.
Il codice binario
Rappresentazione binaria dei caratteri
A partire dalla rappresentazione dei dati alfanumerici, si pone il problema della codifica dell’informazione in una forma diversa da quella numerica.
Il codice binario
Rappresentazione binaria dei caratteri
Dalla prima era della codifica, si è stabilito che con 8 bit fosse possibile coprire i
simboli utilizzabili nella scrittura di messaggi e documenti.
Ricordiamo che:
28 = 256 combinazioni binarie
Il codice binario
Rappresentazione binaria dei caratteri
Per renderci conto delle informazioni
immagazzinabili in termini di caratteri e simboli da varie unità a disco, si riporta la tabella di seguito.
Il codice binario
Rappresentazione binaria dei caratteri
Il codice binario
Rappresentazione binaria dei caratteri
Ora passiamo al ‘come’ avviene la codifica dei dati alfanumerici.
La fase di codifica permette la corrispondenza biunivoca tra un insieme di caratteri o simboli ed un insieme di sequenze costituito da bytes.
Il codice binario
Rappresentazione binaria dei caratteri
Il codice binario
Insieme dati
alfanumerici
Insieme di bytes
Rappresentazione binaria dei caratteri
Le codifiche standard più utilizzate sono:
• ASCII, 8 bit per carattere, rappresenta 256 caratteri;
• UNICODE, 16 bit per carattere.
Il codice binario
Rappresentazione binaria dei caratteri
Il codice ASCII, American Standard Code for
Information Interchange, è nato come codice a 7 bit.
Furono sufficienti infatti 7 bit, quindi 128
combinazioni di 0/1, per rappresentare tutti i caratteri dell’alfabeto inglese, le cifre da 0 a 9, i simboli e alcuni caratteri “non stampabili”.
Il codice binario
Rappresentazione binaria dei caratteri
Nel 1960 si passò dalla codifica ASCII alla
codifica ASCII estesa con l'aggiunta di un bit che permise di raddoppiare il numero di
caratteri codificabili (da 128 a 256) e la codifica di alcuni caratteri non presenti nell’alfabeto inglese.
Il codice binario
Rappresentazione binaria dei caratteri
L'estendersi delle comunicazioni tra paesi ha comportato la necessità di ampliare ancora l'insieme dei simboli da codificare.
Il codice binario
Rappresentazione binaria dei caratteri
Per questo motivo si è arrivati alla diffusione del codice UNICODE, che associa ad ogni
carattere 16 bit, quindi permette la codifica di 216 = 65536 dati alfanumerici diversi.
Il codice binario
Rappresentazione binaria dei caratteri
In generale, non tutti i bit del codice sono
dedicati alla codifica di un dato alfanumerico, infatti alcuni bit sono usati per assicurare la corretta trasmissione e ricezione dei dati.
Il codice binario
Rappresentazione binaria dei caratteri
Ne è un perfetto esempio la codifica ASCII, in cui i caratteri da 0 a 127 sono così distribuiti:
• I primi 32 (numerati da 0 fino a 31) sono
“caratteri di controllo” non stampabili;
• I successivi 95 (numerati da 32 fino a 126) sono caratteri stampabili;
• Il 128-esimo è ancora un “carattere di controllo” non stampabile.
Il codice binario
Rappresentazione binaria dei caratteri
A titolo di esempio, si riporta in seguito la tabella con codifica dei primi 127 caratteri, simboli,
caratteri non stampabili e caratteri di controllo del codice ASCII.
Il codice binario
Il codice binario
Rappresentazione binaria delle immagini
Anche i dati multimediali quali immagini,
suoni e video possono essere elaborati purché opportunamente caratterizzati attraverso
sequenze di 0 e 1.
Il codice binario
Rappresentazione binaria delle immagini
Il punto è trovare il modo di codificare quello che è un insieme di colori, linee, forme, sfumature
che combinate tra loro rappresentano un'immagine.
Il codice binario
Rappresentazione binaria delle immagini
Questo processo prende il nome di
digitalizzazione dell’immagine, e ci permetterà di trasformare le caratteristiche dell’immagine stessa in una sequenza binaria.
Il codice binario
Rappresentazione binaria delle immagini
Si tratta quindi di passare da una grandezza analogica ad una grandezza digitale, discorso
che abbiamo in parte affrontato nella precedente lezione.
Il codice binario
Rappresentazione binaria delle immagini
Tra le tecniche di elaborazione dell’immagine, la più utilizzata consiste nel collocare l’immagine all’interno di una griglia costituita da righe e colonne delle stesse dimensioni.
Il codice binario
Rappresentazione binaria delle immagini
Il codice binario
Rappresentazione binaria delle immagini
Il singolo quadrato che costruisce la griglia prende il nome di pixel (picture element) Ogni pixel può essere codificato in binario attraverso delle regole standard.
Il codice binario
Rappresentazione binaria delle immagini
Codifica di un pixel:
• Il simbolo 1 viene utilizzato per la codifica di un pixel corrispondente ad un quadrato in cui il bianco è predominante.
• Il simbolo 0 viene utilizzato per la codifica di un pixel corrispondente ad un quadrato in cui il nero è predominante.
Il codice binario
Il codice binario
Rappresentazione binaria delle immagini
E’ immediato intuire che la qualità
dell’immagine riprodotta sarà proporzionale al numero di bit impiegato per la codifica
dell’immagine.
Il codice binario
Rappresentazione binaria delle immagini
Il numero di pixel in cui si suddivide lo schermo prende il nome di risoluzione dell’immagine,
mentre la quantità di pixel per unità di misura prende il nome di definizione dell’immagine.
Il codice binario
Rappresentazione binaria delle immagini
Il codice binario
Rappresentazione binaria delle immagini
Per codificare immagini con diversi livelli di grigio si usa una sequenza binaria.
Il colore viene generato dall’uso dei tre colori primari: Red, Green, Blue (RGB)
Ad ogni colore primario è associata una
sfumatura mediante una relativa sequenza di bit.
Il codice binario
Rappresentazione binaria delle immagini
Il codice binario
Rappresentazione binaria dell’audio
Anche il suono è una grandezza analogica, è un’onda caratterizzata da una determinata ampiezza, una frequenza misurata in Hertz e una durata temporale.
Il codice binario
Rappresentazione binaria dell’audio
Il codice binario
Rappresentazione binaria dell’audio
La conversione analogico-digitale di un suono consiste nel trasformare l'onda (segnale
analogico) in un serie di valori rilevati in istanti di tempo distinti all'interno di un
intervallo, e codificare ciascun valore con un numero.
Il codice binario
Rappresentazione binaria dell’audio
Anche in questo caso il meccanismo di codifica è legato ad una griglia costituita da una
sequenza di bit, ma questa volta si tratta di una griglia temporale e non spaziale.
Il codice binario
Rappresentazione binaria dell’audio
Il segnale originale viene trasformato in una sequenza di misure, che costituiranno numeri rappresentabili in codifica binaria.
Il codice binario
Rappresentazione binaria dell’audio
Per una buona qualità di codifica del segnale acustico occorrono 16 bit per ogni singolo campione (quindi 65.536 livelli distinti di ampiezza) e una frequenza di campionamento di 44 kHz (44000 campioni/s) utilizzata per una qualità CD (compact-disk).
Il codice binario
Rappresentazione binaria dell’audio
Le codifiche standard per i formati audio sono:
• WAV
• MIDI
• MP3
Il codice binario
Rappresentazione binaria dell’audio
Il codice binario
Rappresentazione binaria dei video
La digitalizzazione di un video può essere interpretata come una combinazione dei
processi di digitalizzazione dei suoni e delle immagini visti in precedenza.
Il codice binario
Rappresentazione binaria dei video
La qualità del video dipende, oltre che dalla corretta digitalizzazione della singola
immagine e dell’onda sonora, dal numero di fotogrammi, o frames, acquisiti durante la digitalizzazione.
Il codice binario
Rappresentazione binaria dei video
Il codice binario
Rappresentazione binaria dei video
La codifica deve essere effettuata tenendo
conto del fatto che l’occhio umano è in grado di distinguere il singolo fotogramma per un
numero minore di 16 frames/s.
Il codice binario
Rappresentazione binaria dei video
I più diffusi formati video sono:
– Mpeg;
– Avi;
– Divx;
– 3gp (cellulari).
Il codice binario
La conversione da analogico a digitale
consente di trasformare un segnale continuo in ampiezza e in tempo in un segnale discreto
codificato, quindi elaborabile dal calcolatore.
Conversione A/D di un segnale
Finora abbiamo visto nel dettaglio come
vengono definite le grandezze analogiche e digitali, come avviene la trasformazione dal
dominio del tempo al dominio della frequenza e come avviene la codifica di un’informazione in alfabeto binario.
Conversione A/D di un segnale
Da ora in poi vedremo quali sono i processi che ci permettono di partire da un segnale
analogico e arrivare ad avere come risultato un informazione in codice binario.
Conversione A/D di un segnale
Le operazioni da effettuare sono tre:
1. Campionamento: Discretizzazione in tempo.
2. Quantizzazione: Discretizzazione in ampiezza.
3. Codifica : Rappresentazione del dato quantizzato in formato binario.
Conversione A/D di un segnale
Conversione A/D di un segnale
Vediamo graficamente le 3 suddette operazioni effettuate su un segnale analogico di partenza.
Conversione A/D di un segnale
Conversione A/D di un segnale
Campionamento - Discretizzazione in tempo.
Conversione A/D di un segnale
Quantizzazione: Discretizzazione in ampiezza
Conversione A/D di un segnale
Codifica - Rappresentazione del dato quantizzato in formato binario
Conversione A/D di un segnale
Il campionamento trasforma il segnale analogico x(t) in più segnali impulsivi
costituiti dall’ampiezza del segnale d’origine presa in determinati istanti di tempo.
In pratica, possiamo vedere il segnale
campionato come il prodotto del segnale originario per una serie di delta di Dirac.
Conversione A/D di un segnale
Conversione A/D di un segnale
La frequenza di campionamento è definita
come l’inverso del periodo di campionamento, che corrisponde all’intervallo di tempo ogni quale prendiamo un campione di segnale.
fc = 1/ Tc
Conversione A/D di un segnale
Naturalmente, più campioni di segnale
verranno presi, più sarà fedele la riproduzione del segnale originario. Per questo motivo nel campionamento si fa riferimento al teorema di Shannon, secondo cui:
fc ≥ 2 fo
Dove fc è la frequenza di campionamento e fo la frequenza del segnale originario.
Conversione A/D di un segnale
Avere una riproduzione del segnale originario senza ‘rumore’ è essenziale per la fedeltà del segnale quantizzato.
Conversione A/D di un segnale
Il non rispetto del teorema di Shannon può portare a problematiche quali il fenomeno dell’aliasing, ovvero la ricostruzione di una forma d’onda in cui il segnale non è fedele a quello originario per mancanza di un numero di campioni adeguati.
Conversione A/D di un segnale
Conversione A/D di un segnale
Di seguito si riportano alcuni esempi; il primo in cui il segnale è campionato con la frequenza limite, cioè pari al doppio della frequenza del segnale d’origine.
Il secondo in cui la frequenza di
campionamento è appena 4/3 di quella del segnale d’origine.
Conversione A/D di un segnale
Conversione A/D di un segnale
Conversione A/D di un segnale
Conversione A/D di un segnale
Dopo aver campionato il segnale, il secondo passo per la conversione analogico digitale viene detto quantizzazione, che consiste
nell’associare ad ogni campione x[n] ∈ R un valore discreto.
Conversione A/D di un segnale
Il valore discreto prelevato, viene mantenuto costante fino a che non viene prelevato il
successivo campione a distanza temporale di
un periodo Tc. Per questo motivo, il fenomeno è chiamato ‘sample and hold’, cioè campiona e
mantieni.
Conversione A/D di un segnale
Il valore discreto prelevato, viene mantenuto costante fino a che non viene prelevato il
successivo campione a distanza temporale di
un periodo Tc. Per questo motivo, il fenomeno è chiamato ‘sample and hold’, cioè campiona e
mantieni.
Conversione A/D di un segnale
Questo processo è dovuto al fatto che l’operazione di conversione A/D non è
istantanea, quindi è necessario aspettare un
‘tempo morto’ prima di poter prelevare il campione successivo.
Conversione A/D di un segnale
Conversione A/D di un segnale
Ovviamente questo comporta un discostamento dalla forma d’onda originaria, perciò si parla di errore di quantizzazione.
Conversione A/D di un segnale
A questo punto, resta da effettuare la terza operazione, ovvero la codifica del segnale quantizzato.
Conversione A/D di un segnale
Con N cifre binarie (bit) si ottengono Q = 2n livelli di quantizzazione.
Ad ogni livello si può dunque associare un codice di N bit.
Conversione A/D di un segnale
Un segnale numerico ottenuto a seguito di campionamento e quantizzazione è una
sequenza di bit.
Le sequenze di bit ottenute potranno essere elaborate e trasmesse dai calcolatori.
Conversione A/D di un segnale
Conversione D/A di un segnale
Supponiamo ora di avere il problema inverso, ovvero quello di voler riportare il segnale
digitalizzato in analogico.
Si parla in questo caso di conversione digitale – analogica del segnale.
Conversione D/A di un segnale
Un tipico esempio è quello di un segnale audio digitale, elaborabile e trasmissibile dal
calcolatore, ma non elaborabile dall’orecchio umano come sequenza di bit.
Conversione D/A di un segnale
Per questo si introducono i convertitori
digitale-analogico (DAC), che trasformano un segnale digitale a tempo e valori discreti, in un segnale analogico.
Conversione D/A di un segnale
I componenti principali di un convertitore D/A sono :
• una sezione di pre-elaborazione e filtraggio che agisce sul segnale digitale;
• un circuito elettronico di conversione che
trasforma il segnale digitale in uno analogico;
• un circuito elettronico analogico che effettua la post-elaborazione e il filtraggio e fornisce all’esterno un segnale dall’opportuno livello e impedenza di uscita.
Conversione D/A di un segnale
Il convertitore elettronico ha il compito di
trasformare una sequenza di bit in ingresso in una serie di impulsi rettangolari di lunghezza prefissata e di altezza relativa alla sequenza in bit.
Conversione D/A di un segnale
Per fare questo è possibile l’utilizzo di un partitore resistivo come in seguito.
Conversione D/A di un segnale
Il alternativa, è possibile utilizzare la configurazione sotto riportata.
Conversione D/A di un segnale
Anche in questo caso, è adottata la tecnica del
‘sample and hold’, ma in direzione inversa.
I livelli di tensione in uscita vengono
mantenuti costanti fino all’elaborazione di un nuovo livello di tensione da parte del
convertitore elettronico.
Conversione D/A di un segnale
Conversione D/A di un segnale
I segnali analogici in uscita presenteranno inevitabilmente un andamento discontinuo.
Questo comporta un peggioramento della
qualità del segnale rispetto a quello analogico originario, per cui è necessario intervenire con le tecniche di ricostruzione del segnale.
Conversione D/A di un segnale
Vediamo quali sono i vari errori cui è soggetto il segnale in uscita dal convertitore elettronico.
Conversione D/A di un segnale
1. Errore di linearità:
Perché la conversione sia corretta è necessario che tutti i circuiti escano esattamente con la
stessa tensione e che tutte le resistenze abbiano esattamente il valore corretto.
Questo non è possibile e ogni imprecisione causa un comportamento non lineare nel convertitore.
Conversione D/A di un segnale
2. Errore di passaggio per lo zero:
L’errore di passaggio per lo zero è il
principale ostacolo alla realizzazione di convertitori DA multibit di qualità con un numero elevato di bit.
Conversione D/A di un segnale
3. Rumore analogico:
Il segnale analogico in uscita è affetto da rumore inevitabile (ad esempio, rumore termico).
Questo fattore limita inesorabilmente la risoluzione in uscita .
Conversione D/A di un segnale
4. Irregolarità temporali -jitter
Il convertitore DA necessita di un
riferimento temporale stabile e preciso.
Conversione D/A di un segnale
5. Errore di apertura
L’operazione di Sample/Hold è
un’interpolazione che ha una sua ben
precisa risposta in frequenza, ciò causa un errore detto di apertura.