Campionamento di segnali analogici (superiori)
In questa lezione si descrivono le principali differenze tra segnali analogici e numerici[1] e come si ottiene un segnale numerico partendo da un segnale analogico e – infine – come si riottiene il segnale analogico di partenza dal segnale numerico.
Definizioni
modificaSi definisce segnale analogico un segnale che può assumere qualsiasi valore all'interno di un intervallo prefissato. Per fare un esempio, i segnali analogici sono quelli presenti in natura: hanno un valore, un qualsiasi valore che ha un suo minimo e un massimo.
A rigore, ogni segnale è analogico, poiché tutte le grandezze fisiche in natura, naturali o artificiali, sono costituite da numeri irrazionali. L'affermazione: «Il tavolo è lungo due metri» è un'approssimazione. Se usassimo strumenti di maggior precisione (come il calibro) o se – addirittura – osservassimo con la lente le estremità del tavolo stesso, ci accorgeremmo che, essendo composto da atomi in movimento non ha – a rigore – una lunghezza ben definita. Ma questa cosa non è importante perché quando acquistiamo un tavolo desideriamo che le sue misure siano appropriate a quelle dell'appartamento. Questa che può sembrare un'ampia parentesi (e pure fuori contesto) verrà ripresa in seguito.
Un esempio classico, tratto dalla musica, è il disco in vinile, nel cui solco è incisa la registrazione audio. Questa, partendo da un'oscillazione minima, fino a un'oscillazione massima, può assumere tutti i valori che sono compresi in questo dato intervallo.
Si definisce segnale numerico un segnale che può assumere un numero prestabilito e limitato di valori in un dato intervallo, pertanto rappresentabile mediante una successione di numeri interi che identificano ogni suo possibile valore.
Questa definizione, per come è concepita, fa sì che il segnale analogico e quello numerico siano due mondi diametralmente opposti. Il concetto di numero limitato di valori deriva dall'esigenza di assegnare un numero (o codice) al segnale. Non viene specificato quanti siano questi valori: soltanto che sono presenti in numero finito. Quest'esigenza è strategica per archiviare il segnale numerico nelle memorie che, per quanto possano essere grandi, non saranno mai di dimensioni infinite.
Pertanto, se non si pone un limite alla conoscenza, questa non potrà mai essere archiviata in sistemi numerici. Volendo continuare sulla traccia dell'esempio precedente, oggi la musica si memorizza con un'altra tecnologia: il compact disc: in questo caso il solco è ancora presente, ma la sua lettura restituisce numeri interi che, opportunamente decodificati, descrivono la musica memorizzata nel supporto.
Un ulteriore esempio della necessità di limitare la conoscenza, anche se nota, sono i numeri irrazionali di cui si è accennato: tutti sappiamo che è il rapporto tra la circonferenza e il diametro del cerchio. Tuttavia, nessuno conosce il suo valore. Nessuno. Se si intende il suo esatto valore numerico, poiché questa conoscenza supererebbe la capacità di tutte le memorie di massa del pianeta messe assieme.
Inoltre, come già accennato, non sempre la conoscenza di un dato - con elevata precisione - rappresenta un'informazione utile.
Circuito sample and hold
modificaIl primo passaggio per convertire un segnale analogico in un segnale numerico consiste nell'osservarlo in determinati istanti prestabiliti, durante i quali acquisire il suo valore. Tuttavia, la fase d'acquisizione non è istantanea e il segnale continuerà a variare il suo valore durante questa procedura, inficiando la precisione con cui si esegue la conversione analogico/numerica.
Pertanto, dato un segnale in ingresso, la prima cosa che si inserisce è il circuito sample and hold, un circuito propedeutico alla procedura di conversione analogico/numerica, il quale osserva il segnale solo negli istanti di campionamento e, come suggerisce il suo nome, mantiene – ai capi del condensatore – tale valore per il tempo necessario ad acquisirlo.
Il circuito sample and hold viene utilizzato quando è necessario analizzare segnali che variano con elevata velocità. Il segnale viene acquisito e mantenuto utilizzando un segnale di clock comune ai circuiti che seguono, così da poter leggere i valori senza variazioni. Non ha senso, invece, utilizzarlo, per acquisire la temperatura di un forno, poiché il tempo di acquisizione è molto minore del tempo con cui la temperatura varia i suoi valori significativi. Questa nota, oggigiorno, viene inserita per amor di completezza, poiché il costo del circuito sample and hold è trascurabile rispetto a quello del campionatore, pertanto lo si ritrova ovunque, anche quando se ne potrebbe fare a meno.
Campionamento
modificaIl campionamento – in senso stretto – consiste nell’osservare il segnale analogico solo in determinati istanti detti istanti di campionamento. Il circuito sample and hold, pertanto, è funzionale a questo scopo. Si decide di osservare il segnale solo in alcuni istanti, riducendo così l'asse del tempo da un numero di elementi infiniti a un numero di elementi finiti. Questo processo è anche noto come passaggio da tempo continuo (infiniti campioni in un intervallo limitato) a tempo discreto (numero finito di campioni in un intervallo limitato).
Secondo il Teorema di Shannon, se la frequenza di campionamento è superiore al doppio della banda del segnale da campionare ( ) è possibile ricostruire il segnale di partenza (analogico) senza errori se si sono acquisiti un numero infinito di campioni. Naturalmente, questo non sarà mai possibile, però l'asserzione di fondo è semplice: a livello teorico la procedura di campionamento (osservare solo una parte del segnale) non riduce la conoscenza sul segnale stesso, e – bisogna ammetterlo – questo concetto è decisamente affascinante.
In questa fase viene determinata la cosiddetta frequenza di campionamento , il numero di volte al secondo in cui il segnale analogico viene misurato e memorizzato.
Frequenze di campionamento per segnali audio
modificaRiprendendo l'esempio iniziale dell'acustica – non perché strategicamente rilevante, ma perché di immediata comprensione – è noto che le frequenze che l'orecchio può udire arrivano, in soggetti giovani, sino a . La frequenza di campionamento, pertanto, dovrebbe essere superiore al doppio della banda del segnale per ottenere buoni risultati. Non sempre è così: tutto dipende dagli utilizzi che si vuole fare del segnale stesso.
Frequenza di
campionamento |
Utilizzi |
---|---|
telefono e comunicazioni senza fili come walkie-talkie | |
audio CD, utilizzata spesso con la compressione audio MPEG-1 per la creazione dei protocolli VCD, SVCD, e MP3 | |
frequenza di campionamento audio standard per Digital Audio Tape, miniDV, digitale terrestre, DVD e per la produzione di film | |
produzione di un audio CD ad alta qualità (quattro volte ) | |
DVD-Audio, alcune tracce DVD LPCM, tracce audio del formato BD-ROM (Disco Blu-ray) e HD DVD (High-Definition | DVD). Registratori e sistemi di editing in Alta definizione |
Quantizzazione
modificaLa quantizzazione, invece, consiste nel suddividere l'asse delle ascisse del segnale in intervalli, dove è il numero di bit. Volendo fare un parallelo con la procedura del campionamento, nel campionamento si suddivide l'asse del tempo (passando dal continuo al discreto), ora si suddivide l'asse delle ascisse (lo si quantizza, altro termine per esprimere grandezze discrete), corrispondente alla grandezza fisica in oggetto (quasi sempre corrente o tensione elettrica).
A differenza del processo di campionamento, la quantizzazione introduce un errore relativo pari a , ovvero pari all’ampiezza della metà di un singolo bit. Infatti, se si utilizzano, come nell'esempio di figura, 3 bit, si ottengono un numero di livelli di quantizzazione pari a . Questo significa che il segnale, dal suo valore minimo al suo valore massimo è stato diviso in otto parti e questa sarà la conoscenza che – d'ora in avanti – si avrà su lui. Pertanto, l'errore commesso può variare a seconda di quanto il segnale si discostava dal livello di quantizzazione nell'istante di campionamento. Il caso peggiore è quando il segnale analogico si trova a metà tra un livello e il successivo. Pertanto l'errore relativo, in questo caso, sarà considerato pari a . Sì, abbastanza alto.
In figura viene mostrata la quantizzazione a 4 bit di un segnale sinusoidale occupante l'intera ampiezza disponibile. In rosso è visibile il segnale analogico, in verde il segnale numerico campionato e quantizzato, in blu viene mostrato, istante per istante, l'errore di quantizzazione. Questo errore, come anticipato, può assumere un valore – in termini assoluti – minore o uguale alla metà del bit meno significativo.
Quanti bit?
modificaQuanti bit vengono utilizzati nella codifica? La risposta sembrerebbe ovvia: aumentare il numero di bit, significa aumentare la precisione, quindi più bit è meglio. Non sempre. La risposta corretta è: qual è la precisione necessaria e sufficiente per il corretto funzionamento del mio sistema?
Un esempio sono i colori nello schermo, formati da gradazioni di rosso, verde e blu. Sì è scelto di adottare una quantizzazione a 8 bit che – moltiplicata per i 3 colori fondamentali – fa 24 bit. Questo implica che i colori rappresentabili nello schermo sono , non uno di più. È sufficiente? Sedici milioni di colori sono troppi, troppo pochi, il giusto? Questa scelta deriva dalla capacità dell'occhio umano di distinguere i vari colori. Meno bit avrebbe significato sfumature non nitide. Più bit, gradazioni di colore che l'occhio umano non avrebbe distinto.
È importante ricordare che aumentare la quantizzazione di un singolo bit, significa raddoppiare la risoluzione, infatti il numero di livelli diventa:
pertanto, la risposta corretta è sempre: quanto basta. Consideriamo un monitor con una risoluzione . Pertanto, l'immagine di sfondo, avendo 24 bit per pixel creerà un'occupazione di memoria pari a . Se aumentassimo la profondità di colore di un solo bit, passando da 24 a 27 bit per pixel, il risultato sarebbe un'occupazione di memoria pari a , ovvero il in più. Per ogni fotogramma.
Ecco perché, sia nel campionamento, sia nella quantizzazione, si utilizzano le frequenze e i bit che servono.
Procediamo con alcuni esempi tratti dalla vita quotidiana.
Il termostato
modificaPer non sbagliare, è necessario partire da concetti base: si tratta di accendere il riscaldamento, quando la temperatura scende al di sotto di una soglia prefissata e spegnerlo quando si raggiunge un livello di comfort adeguato. Idem per la stagione estiva, ma orientato all'accensione e spegnimento di un climatizzatore. Quali sono i valori di temperatura minima e temperatura massima in un ambiente? Approssimando (al di sotto le tubature si gelerebbero) e (al di sopra si è letteralmente cotti).
Ora la domanda si sposta a: «con quale precisione si desidera determinare la temperatura di accensione e spegnimento dei termosifoni?» può essere ritenuto un valore accettabile. Pertanto, i livelli necessari saranno:
Attenzione: 80 non è il numero dei bit, ma dei livelli. Per conosce il numero di bit occorre estrarre il logaritmo in base 2 di e – se non intero – arrotondarlo sempre per eccesso (il mezzo bit devono ancora inventarlo). Si ha:
7 bit, infatti, corrispondono a 128 livelli, mentre 6 bit a 64 livelli. Se manca anche un solo livello, purtroppo, bisogna scegliere il bit successivo.
Il problema si conclude con il periodo di campionamento . La temperatura ha una sua inerzia, inutile misurarla ogni millisecondo. Un valore tipico per il campionamento è (due minuti). Anche questo dato è molto interessante. Perché non si esegue un campionamento ogni due secondi? Non sarebbe più preciso? No. Così facendo si campionerebbe il rumore e questo dato non è per nulla interessante, oltre a produrre una mole di dati 60 volte superiore a quella del protocollo precedente.Codifica
modificaLa codifica, infine, produce una successione di dati numerici interi positivi. Partendo dal segnale quantizzato nell'esempio, si ottiene la stringa di numeri, a 3 bit, che segue:
Questi numeri possono rappresentare qualsiasi cosa. In questo caso un segnale che varia in un intervallo di cui è stato scelto di selezionare otto livelli, da 0 (000) a 7 (111), per ogni istante di campionamento prefissato. A questi dati, che rappresentano il segnale, può essere aggiunta una ridondanza, un calcolo matematico su di essi, oppure una codifica al fine di comprimerli o crittografarli, o le due cose assieme.
Ridondanza
modificaCome accennato, la ridondanza, è inserita nel segnale, ma non costituisce informazione utile. Per definizione, l'informazione è utile solo se non è nota a priori. La ridondanza, invece, può essere ottenuta mediante un algoritmo dai dati trasmessi. Il suo scopo è ridurre, quanto più possibile, la probabilità d'errore.
È utilizzata nei campi più disparati, che – solo apparentemente – non hanno nulla a che vedere con questa lezione. Di seguito verranno presi in esame e proposti come esercizi per valutarne l'efficienza e il costo.
Codice fiscale
modificaIl codice fiscale viene generato attraverso un algoritmo[2], il quale genera un codice alfanumerico di questo tipo:
ABC DEF 12G34 H567 I
Dove, ABC DEF 12G34 H567
derivano da cognome, nome, data di nascita, sesso, comune di nascita o stato estero di nascita. Mentre I
è una ridondanza, calcolata mediante i precedenti dati.
Il codice fiscale è composto da 15 caratteri alfanumerici (lettere e numeri) significativi e da un carattere alfabetico (lettera) di ridondanza.
Questo significa che il peso della ridondanza, archiviando il codice fiscale come testo, è pari a , ovvero:
In altre parole: nel peso complessivo del codice trasmesso, archiviato o altro, il è destinato a un dato che potrebbe essere evitato. È funzionale, in sede di inserimento del codice stesso, all'accertamento della sua integrità.
Venendo al secondo punto, l'efficacia della ridondanza, questa dipende da quanti valori può assumere. La probabilità di errore è pari a:
Coordinate bancarie
modificaLe coordinate bancarie, il cosiddetto codice IBAN, sono composte da due parti: una internazionale, una nazionale. Per quanto riguarda l'Italia, oltre al prefisso IT, che specifica soltanto in quale Stato ha sede la banca, la struttura del codice è relativamente semplice: ci sono tre caratteri di controllo, due numerici, internazionali, e uno alfabetico, nazionale. Segue l'identificativo della banca (CAB) e della filiale (ABI) e il numero del conto corrente, per un totale di 27 caratteri significativi, di cui 3 di ridondanza e 2 di indirizzamento (IT).
IBAN | |||||
Sigla internazionale ISO 3166 |
Numeri di controllo |
Componente italiana | |||
CIN | ABI | CAB | Conto corrente | ||
IT | 02 | L | 12345 | 12345 | 123456789012 |
Il procedimento è molto simile a quello operato per il codice fiscale. A conti fatti si hanno 27 caratteri, di cui 3 di ridondanza (due numeri e una lettera), quindi non significativi.
Questo significa che il peso della ridondanza, archiviando il codice bancario come testo, è pari a , ovvero:
Quindi, in questo caso, nel peso complessivo del codice trasmesso, archiviato o altro, l' è destinato a dati di controllo.
Venendo al secondo punto, l'efficacia della ridondanza, questa dipende da quanti valori può assumere. Pertanto la probabilità di errore si riduce a:
Perché il segnale numerico è strategico
modifica- Il segnale analogico è affetto da rumore, come quello numerico. Ma il segnale numerico, per costruzione, ci consente di discriminare i livelli ‘alto’ e ‘basso’.
- Il segnale numerico può essere codificato (introducendo ridondanza, criptazione, eccetera).
Come è visibile dall'immagine sovrastante, ora non ha più senso parlare di rapporto segnale/rumore . La qualità del segnale numerico viene valutata in base alla Probabilità di Errore ( ).
La è pari al numero di bit errati in rapporto ai bit trasmessi:
La , pertanto, è la probabilità che un singolo bit sia trasmesso erroneamente.
Questo non perché il rumore si sia dissolto. È presente nel segnale analogico come in quello numerico. Nella simulazione di figura, il rumore – sia nel segnale analogico, sia nel segnale numerico – è il medesimo in ogni istante. Tuttavia il segnale acquisito o trasmesso ha con sé, oltre al segnale stesso, il rumore. Per quanto riguarda il segnale analogico, non è possibile determinare se un dato valore è dovuto al segnale o se è un'oscillazione del rumore. Nel caso del segnale numerico, invece, per costruzione vengono utilizzati due valori numerici: zero e uno, corrispondenti a due diversi valori di tensioni o correnti. Così facendo è possibile affermare: se il segnale è al di sopra di un dato valore lo si considera a livello logico alto; viceversa a livello logico basso.
Premesso questo, solo se il rumore sarà talmente intenso da superare la linea tratteggiata il bit verrà interpretato erroneamente.
Note
modifica- ↑ Molti testi preferiscono la dizione digitale, in luogo di numerico. Utlizzando la dizione numerico si sottolinea che il segnale è composto da una sequenza di numeri interi. Viceversa digitale deriva dall'inglese digit (cifra), il quale - a sua volta - è figlio del latino digitus (dito): il simbolo con cui i romani indicavano il numero 1.
- ↑ Informazioni sulla codificazione delle persone fisiche, presso agenziaentrate.gov.it.