Sezione 4.1: Teorema del campionamento Su Capitolo 4: Campionamento quantizzazione ed elaborazione numerica Sezione 4.3: Quantizzazione e codifica binaria 

4.2 Aspetti realizzativi del campionamento

Mentre lo schema discusso al § 4.1 illustra gli aspetti teorico-matematici del teorema del campionamento e ne fornisce uno schema operativo di riferimento, nelle implementazioni reali si attuano una serie di stratagemmi volti ad ovviare agli aspetti che in pratica non è possibile realizzare.
Un primo fattore di criticità sono i due filtri analogici previsti, quello anti-aliasing e l’altro di restituzione. Anticipando parte di ciò che sarà discusso al cap. 5, qualsiasi specifica particolarmente stringente si traduce per essi in un aumento del numero di componenti necessari, e quindi del suo costo, oltre che del suo volume. In particolare è pressoché impossibile realizzare una risposta in frequenza H(f) esattamente rettangolare, mentre ciò che si può fare è un filtro che presenti una regione di transizione (pag. 1) tra banda passante e banda soppressa di ampiezza non nulla, a cui corrisponde una complessità del filtro tanto minore quanto più la regione è estesa.

4.2.1 Sovracampionamento e decimazione numerica

Anziché tentare di realizzare un filtro anti-aliasing che lasci passare intatte le frequenze inferiori alla metà della fc desiderata e blocchi quelle strettamente superiori, se ne adotta uno con una regione di transizione più graduale (seconda riga della fig. a lato),
figure f4.5-antial.png
dunque più facilmente realizzabile, e si adotta una freq. di campionamento pari al doppio della massima frequenza passante (3W nell’esempio, e dunque fc’ = 6W), producendo un primo segnale campionato Xaa(f) privo di aliasing.
I campioni così ottenuti sono quindi elaborati mediante un filtro numerico, che come vedremo al § 5.2.1 presenta una Hnumaa(f) periodica in frequenza, può realizzare una regione di transizione assai più ripida, e sopratutto non altera lo spettro di fase se non per un contributo lineare (pag. 1). Il segnale campionato Xfiltaa(f) che ne risulta ha ora l’occupazione di banda desiderata di W (5a riga di fig.), e la sua frequenza di campionamento può essere ridotta a quella prevista fc = 2W operando esclusivamente nel dominio numerico grazie ad uno speciale elemento decimatore (§ 5.4.1), che nel nostro esempio provvede a rimuovere due campioni su tre.
figure f4.5-antial-2.png

La figura a lato riassume la sequenza delle operazioni descritte.

4.2.2 Generalizzazione del filtro di restituzione

figure f4.6.png
Figure 4.8 Distanziamento delle repliche spettrali mediante innalzamento della fc
Anche per questo secondo filtro analogico la teoria prevede l’adozione di un passa basso ideale, ed anche per questo caso valgono le obiezioni già discusse, e dunque la soluzione semplice a questo problema è quella di adottare una fc = 2W’ > 2W di lavoro maggiore della minima, ovvero sovracampionare il segnale, in modo che le repliche spettrali siano più distanziate tra loro, e quindi anche un filtro non ideale con una regione di transizione non nulla possa ancora isolare l’unica replica di X(f) in banda base, come si osserva in figura 4.8.
La conseguenza diretta di questo modo di operare è che non essendo più H(f) rettangolare, la risposta impulsiva di questo nuovo filtro di restituzione non è più un sinc(fct)! Ciò significa che in questo caso la formula di interpolazione non ha più l’espressione cardinale fornita dalla (10.66), nella quale evidentemente il sinc(fct) può essere sostituito da una qualunque h(t) purchè la relativa trasformata H(f) si annulli prima di incontrare una replica spettrale del segnale originario.

4.2.3 Interpolazione numerica

Anziché procedere come appena descritto, si è fatta strada una soluzione ancora differente, che evita di sovracampionare il segnale, dato che questo significherebbe appesantire tutte le operazioni da svolgere nel dominio numerico. La frequenza di campionamento
figure f4.6-finterp.png
Interpolatore numerico
fc viene invece mantenuta al suo valore minimo consentito dalla selettività del filtro numerico Hnumaa(f) discusso al (§ 4.2.1), ma prima di effettuare la restituzione la freq. di campionamento fc viene innalzata per un fattore intero K, ovvero fc = Kfc, ad opera di un apposito filtro numerico interpolatore (§ 5.4.2) che ogni due campioni ne inserisce nel mezzo altri K − 1 con valori intermedi. In tal modo il distanziamento mostrato in fig. 4.8 risulta essere ben maggiore, e le specifiche (pag. 1) per il filtro di restituzione divengono ancora meno stringenti.

4.2.4 Approssimazione degli impulsi

Un ultimo importante aspetto in cui la pratica differisce dalla teoria è che nella fase di restituzione non è possibile generare il segnale x(t) a causa dell’impossibilità di realizzare gli impulsi δ(t); al suo posto viene prodotto un segnale x(t) (leggi x cerchietto anziché pallino) mediante l’uso di un circuito Sample and Hold (s&h, ovvero campiona e mantieni) il cui schema di principio è mostrato in fig. 4.10-a)[149]  [149] Non entriamo nei dettagli del funzionamento del buffer (vedi ad es. https://it.wikipedia.org/wiki/Amplificatore_separatore) qui esemplificato dall’amplificatore operazionale a controreazione unitaria: è sufficiente dire che agisce come un adattatore di impedenza, consentendo al condensatore di caricarsi in modo pressoché istantaneo, e di non scaricarsi prima che s2 sia chiuso, in quanto il secondo amplificatore presenta una impedenza di ingresso pressoché infinita..
Quando s1 si chiude il valore di tensione di ingresso viene trasferito ai capi del condensatore, dopodiché s1 si apre e lo stesso valore viene mantenuto costante per un tempo τ ≤ Tc e reso disponibile in uscita; trascorso il tempo τ si chiude s2, il condensatore si scarica, e l’uscita si annulla.
figure f4.7c.png
Figure 4.10 a) - realizzazione elettronica di un sample & hold; b) - schema simbolico relativo; c) - segnale di uscita
Alle operazioni appena descritte corrisponde lo schema simbolico illustrato in fig. 4.10-b), per il quale il segnale di uscita è descritto nella forma x(t) = nx(nTc) ⋅ rectτ(t − nTc) in cui al posto degli impulsi matematici viene adottato un treno di impulsi rettangolari modulati in ampiezza (vedi fig. 4.10-c)). Il filtro passa basso di restituzione H(f) viene ora alimentato da x(t) anziché da x(t), e per determinare quale sia la sua nuova uscita, riscriviamo[150]  [150] Anche la fig. 4.10-b) conferma l’eq. (10.70) x(t) nella forma
(10.70)
x(t)  =  n x(nTc) ⋅ rectτ(t) * δ(t − nTc) =   =  rectτ(t) * n x(nTc)δ(t − nTc) =  rectτ(t) * x(t)
il cui spettro risulta pari a
(10.71) X(f) = τ sinc(fτ)X(f)
figure f4.8.png
Osserviamo quindi che usare rettangoli di base τ < Tc al posto degli impulsi equivale a moltiplicare X(f) per un inviluppo τ sinc(fτ) che, seppure con τTc non causa grossi inconvenienti (gli zeri posti ad 1τ si allontanano dall’origine, e sinc(fτ) nei pressi di f = 0 è praticamente costante), per τ prossimo a Tc produce una alterazione dell’ampiezza della replica in banda base, ovvero un fenomeno di distorsione lineare di ampiezza (§ 8.2).
Contromisure
figure f4.9a.png
Una strada per compensare la distorsione lineare dovuta ai rect del s&h si basa sulla conoscenza di τ per progettare un filtro di restituzione con una H(f) che presenta un andamento reciproco di quello del sinc(fτ), in modo che H(f)τ sinc(fτ) =  costante. Tale accorgimento prende il nome di sinc correction[151]  [151] Vedi ad es. https://www.maximintegrated.com/en/app-notes/index.mvp/id/3853.
Un’alternativa per ridurre l’entità delle distorsione lineare introdotta dal s&h anche qualora si scelga la durata τ dei rect pari al periodo di campionamento Tc[152]  [152] Scegliere τ = Tc può semplificare la progettazione del s&h, riducendone i costi. passa per
figure f4.8-interp.png
l’adozione dell’interpolazione numerica descritta al § 4.2.3 ed approfondita al § 5.4.2, attuata con un fattore di interpolazione K sufficientemente elevato da rendere tale distorsione praticamente trascurabile, come illustrato in figura

4.2.5 Conversione A/D e D/A

Dopo aver discusso gli aspetti teorici e realizzativi della conversione da segnale analogico s(t) a sequenza di campioni s(n) (vedi fig. 1.3 a pag. 1), per completare il processo di digitalizzazione non resta che occuparci del passaggio da s(n) a segnale quantizzato sq, e da questo a sequenza numerica sn. Infatti, perché il segnale possa essere memorizzato, trasmesso od elaborato in forma numerica, occorre rappresentare i valori dei campioni x(nTc), che sono grandezze a precisione infinita, mediante un numero finito di M bit per campione. La fig. 4.14
figure f4.7-da-ad.png
Figure 4.14 Campionamento, quantizzazione e restituzione nel mondo reale
inquadra questo ultimo passaggio noto come conversione analogico-digitale (a/d) nel contesto di quanto discusso finora, rappresentando anche l’operazione inversa (dac) che ricostruisce il valore analogico
figure f4.7-da-ad-symb.png
(sia pur quantizzato) a partire dalla sua codifica binaria. A lato, i simboli usati per rappresentare tutto l’insieme di operazioni in maniera concisa. Senza alcuna pretesa di completezza[153]  [153] Per approfondimenti sulla conversione a/d e d/a vedi ad es.
http://sms.unipv.it/misure/ME/Conversione_A-D_Slides.pdf
, illustriamo ora una possibile implementazione dei due dispositivi citati.
Quantizzatore A/D a rampa lineare
Per fissare le idee, descriviamo il funzionamento di uno schema semplice, con l’ausilio della fig. 4.16. Il valore x(nTc) viene confrontato con il segnale s(t) prodotto dal generatore di rampa, e finché il secondo non supera il valore del primo, il comparatore emette un livello logico vero (il gate) e quindi il segnale di clock in ingresso all’and si ripresenta in uscita, facendo avanzare il contatore binario ad M bit. Quando s(t) supera x(nTc) il gate si annulla e l’and viene interdetto, in modo che il conteggio si arresti. Prima di iniziare un nuovo periodo della rampa il valore presente nel contatore (pari a dieci nell’esempio in figura) viene letto ed adottato come codifica binaria c(xq) del valore x(nTc) in ingresso, ed il processo può ripartire per il campione successivo.
figure f4.8a.png
Figure 4.16 Quantizzatore a rampa lineare: a) - schema circuitale; b) - forme d’onda
Convertitore D/A a resistenze pesate
figure f4.8b.png
Il generatore di livelli dac presente in fig. 4.14 consiste in un circuito elettronico in grado di produrre una tensione Vu proporzionale al valore Vb codificato da una parola binaria ad M bit
Vb = bM − 12M − 1 + ⋯ + b323 + b222 + b12 + b0
posta in ingresso al dac. Una soluzione semplice fa uso di un amplificatore operazionale sommatore come in figura, con ciascuna delle resistenze di ingresso Ri di valore 2iR (i da 1 a M) collegata o meno alla tensione di riferimento Vr a seconda se il bit bM − i sia uno o zero. In uscita sarà presente una tensione[154]  [154] Per effetto della massa virtuale dell’amplificatore operazionale, in ciascuno dei resistori per cui bM − i = 1 scorre una corrente Ii = Vr2iR, la cui somma IT scorre anche nella R di controreazione, per cui
Vu = − RIT = − R Mi = 1bM − iVr2iR = − VMibM − i2 − i
e moltiplicando e dividendo per 2M si ha Vr = − Vr2M Mi = 1bM − i2M − i, ossia compresa tra 0 e  − Vr2M − 12M.
A parte il segno meno, ad esempio con M = 3 bit e Vr = 10 si ha un quanto di 108 = 1.25, e valori 0.0, 1.25, 2.5, ..., 8.75, vedi anche
http://www.elemania.altervista.org/adda/architetture/arc1.html
Vu = − VrMi = 1bM − i2 − i
in cui cioè il bit più significativo bM − 1 pesa per 12, quello successivo per 14, e così via, dando luogo alla funzione ad L = 2M livelli mostrata in figura.
 Sezione 4.1: Teorema del campionamento Su Capitolo 4: Campionamento quantizzazione ed elaborazione numerica Sezione 4.3: Quantizzazione e codifica binaria