Elaborazione numerica dei segnali

Transcript

Elaborazione numerica dei segnali
Appunti di
Elaborazione numerica dei segnali
Capitolo 1 - Campionamento (II)
Campionamento di un segnale passa-banda...................................................... 1
Introduzione ............................................................................................... 1
Schema della conversione di frequenza ...................................................... 2
Campionamento diretto .............................................................................. 4
Componenti analogiche in bassa frequenza................................................. 9
Conversione digitale-analogica ...................................................................... 15
Introduzione ............................................................................................. 15
Sovracampionamento in forma numerica .................................................. 16
Concetti generali sugli interpolatori.......................................................... 19
Interpolatore di ordine 0: mantenitore....................................................... 23
Interpolatore lineare (o di ordine 1) .......................................................... 23
Filtro di ricostruzione perfetto............................................................ 29
Osservazione ................................................................................. 30
Campionamento irregolare........................................................................ 30
Campionamento di un segnale passa-banda
INTRODUZIONE
Fino ad ora abbiamo sempre considerato il campionamento di segnali passa-basso, cioè segnali
aventi uno spettro comprendente anche la continua (cioè aventi una componente a frequenza f=0(1)).
Adesso ci occupiamo invece del campionamento di segnali passa-banda, aventi cioè componenti
spettrali in un intervallo relativamente piccolo a cavallo di una frequenza tipicamente grande
(rispetto all’intervallo stesso).
Lo spettro di un segnale passa-banda è, in generale, del tipo seguente:
S(f)
-f2
1
-f1
f1
f2
f
Ricordiamo che un segnale che presenta una componente non nulla a frequenza f=0 è un segnale a valor medio non nullo, in
quanto tale valor medio coincide proprio con l’ampiezza della componente ad f=0.
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
Volendo procedere come abbiamo fatto fino ad ora, dovremmo campionare questo segnale a
frequenza fC almeno doppia rispetto a f2 (dove f2 è la massima componente spettrale non nulla
posseduta dal segnale): questa operazione prende il nome di campionamento diretto del segnale
passa-banda considerato.
Tuttavia, questo procedimento ha avuto senso, fino ad ora, in quanto volevamo essere in grado di
descrivere qualunque componente spettrale del segnale s(t) compresa tra 0 e la frequenza massima
contenuta dal segnale stesso: infatti, la frequenza di campionamento è legata al contenuto
informativo del segnale, il quale è a sua volta legato alla banda del segnale stesso. In questo caso,
non ci interessa molto descrivere quello che c’è prima della frequenza f1, proprio perché non c’è
niente da descrivere. O meglio, non ci sono componenti di segnali, ma ci saranno inevitabilmente
componenti di rumore.
Di conseguenza, l’applicazione del teorema del campionamento, così come lo conosciamo fino ad
ora, ad un segnale passa-banda è uno spreco di risorse, in quanto prendiamo in considerazione un
intervallo spettrale in cui sappiamo già che l’informazione è nulla.
SCHEMA DELLA CONVERSIONE DI FREQUENZA
Dato che il contenuto informativo del nostro segnale è legato solo alla banda f2-f1 (ed alla sua
simmetrica per le frequenze negative), è logico pensare di legare il campionamento solo alla suddetta
banda. Un modo molto efficace di procedere è allora quello di spostare
il segnale in bassa frequenza prima di campionarlo:
s m(t)
s(t)
s mC(t)
cos(2πf 0 t )
Sfruttando le note conseguenze del battimento del nostro segnale per una oscillazione locale
cos(2πf 0 t ) da noi generata, otteniamo una replica spettrale di S(f) in alta frequenza ed una replica
spettrale in bassa frequenza; filtrando la replica in alta frequenza, otteniamo un segnale sm(t),
allocato in bassa frequenza, che possiamo finalmente sottoporre a campionamento.
Sm(f)
f0
-f0
f
Con questa operazione, il contenuto informativo del segnale resta invariato, con la differenza che
ne forniamo una descrizione più “compatta”, situata a frequenze più basse: in particolare, con
riferimento alle sole frequenze positive, lo spettro del segnale risulta posizionato nell’intervallo
[f1 − f 0 , f 2 − f 0 ].
Autore: Sandro Petrizzelli
2
Campionamento (parte II)
Ovviamente, dopo il campionamento, una eventuale ricostruzione dovrà tener conto della
conversione di frequenza effettuata e quindi prevedere anche l’operazione inversa (da effettuarsi con
la stessa identica oscillazione locale), che riporti il segnale nella banda originale [f1,f2].
Ricordiamo, inoltre, a titolo di richiamo, che la conversione di frequenza appena descritta può
essere effettuata ponendo l’oscillazione locale f0 sia a sinistra del segnale da spostare (come indicato
nella figura) sia a destra, con la differenza che, in questo secondo caso, si ottenga un ribaltamento
delle bande:
Sm(f)
f0
-f0
f
Il motivo del ribaltamento è noto: nell’effettuare la moltiplicazione del segnale s(t) per
l’oscillazione cos(2πf 0 t ) , ciascuna componente spettrale fX viene riportata, in banda base, ad una
distanza, da f=0, pari al modulo della differenza fX-f0; di conseguenza, se f0 si trova a sinistra di f1,
sono le componenti di più bassa frequenza di S(f) a posizionarsi più vicine all’origine, mentre, se f0
si trova a destra di f2, si posizionano più vicine all’origine le componenti di più alta frequenza di
S(f), causando appunto il ribaltamento dello spettro.
Questo ribaltamento, però, non dà particolari problemi: infatti, dopo aver campionato e ricostruito
il segnale, la conversione in alta frequenza mediante la stessa oscillazione locale usata prima
riposizionerà lo spettro nel modo giusto.
Fatte queste premesse, il vantaggio della conversione di frequenza prima del campionamento è
intuitivo: volendo rispettare il teorema del campionamento, dato che lo spettro del segnale è
contenuto nell’intervallo [f1 − f 0 , f 2 − f 0 ] (con riferimento alle sole frequenze positive), possiamo
campionare con frequenza fC>2(f2-f0), cioè minore (di una quantità 2f0) di quella (2f2) che avremmo
dovuto usare senza la conversione di frequenza.
Ovviamente, nessuno ci impedisce di spingere questo meccanismo agli estremi, ponendo cioè
f1=f0, in modo da portare la minima componente spettrale del segnale direttamente a frequenza 0:
Sm(f)
f0
-f0
f
In questo caso, conserviamo ancora i vantaggi descritti prima, ma abbiamo un problema in più,
legato alla famigerata banda immagine. Sappiamo, infatti, che, nelle operazioni di conversione di
frequenza, non è solo il segnale di interesse che viene riportato in banda base, ma anche tutte le
eventuali componenti spettrali situate simmetricamente rispetto all’oscillazione locale:
3
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
banda
immagine
Sm(f)
banda
immagine
f0
-f0
f
Questo fatto, come è noto, richiede che, prima della conversione di frequenza, venga effettuato un
apposito filtraggio anti-banda immagine. Essendo tale operazione a cura di un filtro analogico,
sappiamo che ci sono problemi legati alla non idealità del filtro, ossia al fatto che la transizione dalla
banda passante (nella quale il filtro lascia passare sostanzialmente inalterate le componenti spettrali)
alla banda attenuata (nella quale il filtro si sforza di azzerare il segnale) non è mai netta: di
conseguenza, ponendo f0<f1, abbiamo una certa separazione tra segnale utile e banda immagine, per
cui possiamo usare un filtro che non sia ideale, mentre invece, prendendo f0=f1, avremmo bisogno di
un filtro che azzeri le componenti spettrali inferiori ad f0 e lasci passare quelle superiori ad f1, il che
è impossibile.
filtro
anti- banda
immagine
Sm(f)
f0
-f0
f
Quindi, se dal punto di vista del campionamento la posizione dell’oscillazione locale diventa
indifferente, dal punto di visto dei problemi legati alla conversione di frequenza è opportuno
prendere sempre f0<f1, ossia sostanzialmente fare in modo che il segnale utile, spostato in bassa
frequenza, si mantenga ad una certa distanza (comunque piccola) dalla frequenza 0.
CAMPIONAMENTO DIRETTO
Nello schema descritto nel paragrafo precedente, abbiamo visto che la conversione di frequenza
viene effettuata moltiplicando il segnale s(t) di interesse per una opportuna oscillazione locale. Dopo
di che, una volta effettuato il filtraggio allo scopo di isolare solo la replica di S(f) in bassa frequenza,
andiamo ad effettuare il campionamento di sm(t); tale campionamento, come più volte visto,
corrisponde (matematicamente) a moltiplicare sm(t) per il pettine degli impulsi di campionamento:
+∞
s mC ( t ) = s m ( t ) ∑ δ( t − nTC )
n = −∞
In frequenza abbiamo dunque la convoluzione tra Sm(f) e una successione di infiniti impulsi:
Autore: Sandro Petrizzelli
4
Campionamento (parte II)
S mC (f ) = S m (f ) *
1
TC
+∞

n = −∞

n 

C 
∑ δ f − T
Questa convoluzione ha l’effetto di periodicizzare Sm(f), ponendolo in corrispondenza della
frequenza 0, della frequenza di campionamento fC e dei suoi multipli. Viene allora spontaneo
chiedersi se si possa fare a meno della conversione di frequenza, usando proprio la moltiplicazione
di s(t) per il pettine di campionamento al fine di spostare S(f) nella posizione desiderata. La risposta
è abbastanza intuitiva: l’effetto di spostare S(f) in bassa frequenza si ottiene, direttamente tramite la
moltiplicazione per il pettine di campionamento, a patto però di scegliere la frequenza di
campionamento (e quindi la posizione, in frequenza, degli impulsi di campionamento2) in modo da
evitare la sovrapposizione delle repliche spettrali.
Per chiarire bene questo concetto, possiamo fare riferimento ad un caso molto semplice.
Supponiamo che lo spettro S(f) del segnale passa-banda da campionare sia esteso tra fC e 3fC/2, come
indicato nella figura seguente:
S(f)
-1.5fC
fC
-fC
1.5fC
f
La banda del segnale è dunque 0.5fC. Consideriamo allora un sistema che campiona a frequenza
pari proprio ad fC, per cui lo spettro del pettine di campionamento è il seguente:
P(f)
-2fC
fC
-fC
2fC
f
La convoluzione tra i due spettri, corrispondente appunto all’operazione di campionamento, fa in
modo che lo spettro di S(f) (si intende sia la parte a frequenze positive sia quella a frequenze
negative) venga riportato a cavallo di ciascun impulso di campionamento, secondo quanto indicato
nella figura seguente:
SC(f)
-2fC
2
fC
-fC
2fC
f
Si ricordi che il pettine di campionamento, essendo una sequenza di impulsi equispaziati nel tempo di TC, è un segnale periodico,
che ha quindi uno spettro a sua volta costituito da una sequenza di impulsi, equispaziati di fC.
5
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
Come si nota, non esiste alcun intervallo di frequenza in cui ci sono contemporaneamente più
termini spettrali, per cui non incorriamo nel fenomeno dell’aliasing.
Quindi, campionando con una frequenza di campionamento fC un segnale passa-banda il cui
spettro si estenda in [fC,1.5fC] (e nel simmetrico intervallo negativo), non incorriamo in problemi di
aliasing e siamo perciò in grado di ricostruire il segnale di partenza. Tale ricostruzione, ovviamente,
non avviene più con un filtro passa-basso, proprio perché il segnale s(t) è di tipo passa-banda;
dovremo perciò usare un filtro passa-banda che, nel caso ideale, ha una funzione di trasferimento del
tipo illustrato nella figura seguente:
H(f)
-2fC
-1.5fC
fC
-fC
1.5fC
2fC
f
L’esito del filtraggio è proprio il riottenimento del segnale s(t) che era stato campionato.
Ovviamente, però, si evidenzia subito il problema di un simile procedimento: non avremo mai la
possibilità di usare un filtro passa-banda del tipo appena descritto. Per ovviare a questa limitazione,
l’unica soluzione è che lo spettro del segnale non debba più essere esteso nell’intervallo [fC,1.5fC],
ma debba semplicemente essere contenuto in tale intervallo, con un adeguato margine rispetto ai due
estremi:
S(f)
-2fC
-1.5fC
fC
-fC
1.5fC
2fC
f
In questo modo, la moltiplicazione per il pettine di campionamento (il cui spettro ad impulsi è
stato indicato in figura insieme a quello del segnale) produce un segnale campionato il cui spettro è
fatto nel modo seguente:
SC(f)
-2fC
-1.5fC
fC
-fC
1.5fC
2fC
f
In questo caso, dunque, non solo non c’è sovrapposizione tra le repliche, ma c’è anche una
sufficiente separazione tra le repliche stesse. Bisogna allora fare in modo che tale separazione
consenta il successivo filtraggio passa-banda senza perdita di informazioni.
Possiamo ora estendere in generale quanto appena visto nel caso particolare di spettro di s(t)
contenuto nell’intervallo [fC,1.5fC]: affinché sia possibile il campionamento diretto del segnale, lo
Autore: Sandro Petrizzelli
6
Campionamento (parte II)
fC 
 fC
n 2 , (n + 1) 2  (e


analogamente per le frequenze negative), in quanto solo in questo caso si evita la sovrapposizione
delle repliche, per cui è effettivamente possibile risalire al segnale di partenza tramite filtraggio
passa-banda del segnale campionato. In caso contrario, i termini spettrali si mescolano tra loro e
quindi questo metodo di procedere non è applicabile.
Evidentemente, per n=2 otteniamo proprio il caso descritto prima.
Possiamo a questo punto fare un confronto tra questo modo di procedere (detto di
campionamento diretto del segnale) ed il modo descritto in precedenza (metodo a
conversione di frequenza), che prevedeva prima lo spostamento di S(f) in bassa frequenza e poi
il campionamento:
spettro del segnale passa-banda deve essere contenuto nell’intervallo
• in primo luogo, è evidente che il metodo del campionamento diretto prevede solo l’utilizzo del
campionatore a frequenza fC, eventualmente preceduto dal solito filtro anti-alias per
l’eliminazione del rumore nonché di qualunque componente spettrale esterna all’intervallo di
interesse; al contrario, il metodo a conversione di frequenza richiede, oltre al campionatore
(che tra l’altro lavora a frequenza molto prossima a quella usata nel campionamento diretto),
anche la circuiteria necessaria alla conversione di frequenza, vale a dire il moltiplicatore
analogico ed il successivo filtro analogico;
• non solo, ma il metodo della conversione di frequenza prevede anche che, in fase di
ricostruzione, si debba nuovamente riportare il segnale in alta frequenza, cioè nella sua banda
originale, il che è possibile solo usando una oscillazione locale identica a quella usata per la
prima conversione di frequenza; non è detto che si possa generare una oscillazione locale con
questi requisiti;
• a fronte di questi pregi, però, abbiamo appena visto che il campionamento diretto richiede una
ben precisa relazione tra frequenza di campionamento e spettro del segnale da campionatore, al
contrario dell’altro metodo, che invece è assolutamente generale;
Non è finita qui, in quanto c’è da tener conto di un’altra considerazione molto importante, relativa
alla non idealità di funzionamento del campionatore, della quale abbiamo già parlato. Abbiamo in
particolare visto che la non-idealità del campionatore, cioè il fatto che esso presenti un tempo di
chiusura finito (di durata τ) comporta che il segnale s(t) di partenza venga prima filtrato passa-basso
e poi effettivamente campionato idealmente:
s(t)
sC(t)
sC(t)
s(t)
τ
fC
t
fC
Il filtro che tiene conto della non-idealità del campionatore ha funzione di risposta all’impulso
rettangolare, per cui ha funzione di trasferimento nella forma sin(f)/f: ciò significa che esso lascia
passare praticamente invariate solo le bassissime frequenze, mentre attenua sempre più man mano
che la frequenza aumenta (con una attenuazione teoricamente ∞ alla frequenza 1/τ).
Diventa allora evidente quello che succede a seconda che si scelga il metodo della conversione di
frequenza o quello del campionamento diretto:
7
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
• con la conversione di frequenza, il segnale in ingresso al campionatore è passa-basso (magari
non contiene la continua, ma è comunque allocato sulle basse frequenze), per cui subisce una
attenuazione, dal filtro sin(f)/f, che può essere tutto sommato accettabile;
• al contrario, con il metodo del campionamento diretto, l’ingresso al campionatore è un segnale
passa-banda, che subisce quindi una attenuazione molto maggiore prima del campionamento
ideale vero e proprio.
Possiamo chiarire ulteriormente queste affermazioni con dei grafici. Supponiamo perciò che il
segnale passa-banda da campionare sia il seguente:
Con il metodo della conversione di frequenza, noi prima spostiamo il segnale in bassa frequenza e
poi lo sottoponiamo al campionamento reale, secondo lo schema seguente:
Il segnale in ingresso al campionatore, nell’ipotesi di aver scelto l’oscillazione locale esattamente
coincidente con la minima frequenza posseduta da S(f), ha il seguente spettro:
Il filtro passa-basso cui questo segnale fa da ingresso produce il seguente segnale, da mandare
finalmente al campionatore ideale:
Autore: Sandro Petrizzelli
8
Campionamento (parte II)
Se invece consideriamo lo schema a campionamento diretto, il risultato è ben diverso:
In questo caso, il segnale passa-banda va direttamente in ingresso al filtro passa-basso, il quale
fornisce in uscita, pronto per il successivo campionamento ideale, un segnale del tipo seguente:
E’ evidente quanto l’attenuazione introdotta dal filtro abbia pregiudicato il funzionamento
dell’intero sistema.
A questi stessi risultati possiamo d’altra parte arrivare tramite ragionamenti molto più intuitivi, in
qualche modo già fatti in precedenza: abbiamo detto che il fatto di spostare in bassa frequenza le
componenti spettrali del segnale s(t) di partenza non pregiudica il contenuto informativo del segnale
stesso, ma ne dà semplicemente una versione più compatta; all’atto pratico, ciò che otteniamo è
descrivere il segnale s(t) di partenza mediante un altro segnale più lento nel tempo3; allora, tale
segnale, durante l’intervallo τ di chiusura del campionatore, subisce meno variazioni di quante ne
subisce s(t), per cui la misura che il campionatore fornisce al successivo quantizzatore è sicuramente
più descrittiva; al contrario, il segnale s(t), essendo più veloce, subisce molte più variazioni
nell’unità di tempo ed il campionatore, che invece è lento, non sarà mai in grado di darne una
descrizione completa. Questo spiega intuitivamente l’effetto del campionatore reale, che può “andare
dietro” ai segnali lenti, mentre non è in grado di “seguire” quelli più veloci.
La conclusione del discorso è dunque quella per cui, in presenza di un campionatore
con un τ non piccolissimo, il metodo del campionamento diretto è
decisamente inapplicabile.
COMPONENTI ANALOGICHE IN BASSA FREQUENZA
Quando abbiamo richiamato i concetti principali relativi alla trasformata di Fourier, abbiamo detto
che lo scopo di usare tale trasformata è quello di esprimere un generico segnale reale, non periodico,
come somma di infinite sinusoidi reali, ciascuna di frequenza, ampiezza e fase opportune. Questo è
infatti il significato essenziale della formula della antitrasformazione di Fourier:
s( t ) =
+∞
∫ S( f )e
j2πft
df
−∞
3
E’ ovvio che il contenuto informativo del segnale di partenza non potrà mai essere ricavato dal segnale convertito in frequenza, per
cui è sempre necessario prevedere l’operazione di riconversione di frequenza.
9
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
Per descrivere le suddette sinusoidi reali, abbiamo notoriamente due possibilità:
• la prima è quella di usare forme d’onda sinusoidali, come cos(ωt+ϕ) oppure sin(ωt+ϕ);
• la seconda è quella di usare gli esponenziali complessi, come ej(ωt+ϕ).
Nell’uno o nell’altro modo, il significato finale non cambia:
+∞
s( t ) = ∫ S( f )e
j2 πft
−∞
+∞
+∞
−∞
−∞
df = ∫ S( f ) cos(2πft )df + j ∫ S( f )sin(2πft)df
C’è però una differenza sostanziale tra l’uso degli esponenziali complessi e l’uso delle sinusoidi:
infatti, gli esponenziali complessi richiedono l’uso anche delle frequenze negative, al contrario delle
forme d’onda sinusoidali, che considerano solo le frequenze positive.
Nella trasformata di Fourier, i termini a frequenza negativa, che in se sono semplicemente un
artificio matematico, sono necessari, per quanto appena detto, alla descrizione della forma d’onda
reale. Tuttavia, essi non portano alcuna informazione aggiuntiva rispetto alle frequenze positive, in
quanto, in base alla nota proprietà di simmetria hilbertiana dei segnali reali, i valori delle
componenti spettrali negative sono il complesso coniugato dei valori delle corrispondenti
componenti spettrali positive. In altre parole, ove siano noti i valori delle componenti a frequenza
positiva, siamo subito in grado di costruire le componenti a frequenza negativa, proprio perché esse
non portano alcuna informazione nuova. Questo vale, come sottolineato, solo per i segnali reali.
In base a queste considerazioni, per rappresentare un segnale reale per mezzo di esponenziali
complessi, dovremmo adottare la seguente notazione:
e j( ωt + ϕ ) + e − j( ωt + ϕ ) = 2cos(ωt + ϕ)
Questa uguaglianza (che non è altro che una delle due formule di Eulero), si ottiene
semplicemente sviluppando i due esponenziali in forma trigonometrica. Tali due esponenziali
presentano entrambi la parte reale pari proprio a cos(ωt+ϕ). Questo suggerisce un modo di operare
molto comodo: tenendo a mente che abbiamo a che fare con un segnale reale, possiamo usare un
unico esponenziale complesso, tipicamente e j( ωt + ϕ ) , e poi, alla fine del discorso, dovremo ricordarci
di considerare solo la parte reale, moltiplicata per due, di quello che otteniamo:
[
]
e j( ωt + ϕ ) 
→ 2 Re e j( ωt + ϕ ) = 2 cos(ωt + ϕ )
Quindi, quando diamo una rappresentazione del segnale s(t) secondo la sua trasformata di Fourier
(lavorando cioè nel dominio della frequenza), ossia quindi come sovrapposizione di sinusoidi,
possiamo usare esponenziali complessi solo a frequenza positiva, avendo poi cura, nell’operazione di
antitrasformazione, di adottare l’operatore “parte reale”:
+∞
s( t ) = ∫ S( f )e j2 πft df =
−∞
+∞

1  m
Re ∫ S ( f )e j2 πft df 
2 0

dove abbiamo indicato con Sm(f) la cosiddetta trasformata di Fourier monolatera, che, in base
alla relazione appena riportata, è così definita:
Autore: Sandro Petrizzelli
10
Campionamento (parte II)
2S( f )

S m ( f ) = S(f)
0

per f > 0
per f = 0
per f < 0
Quindi, la trasformata monolatera ha il vantaggio di usare solo le frequenze positive, mentre
invece quelle negative possono eventualmente essere valutate considerando che, per un segnale reale,
risulta S(-f)=S*(f). Se non fosse valida questa condizione (rappresentativa della simmetria
Hilbertiana) i ragionamenti appena condotti non avrebbero alcun senso.
Fatte queste premesse, possiamo tornare al problema del campionamento di un segnale passabanda. Il nostro scopo è quello di ridurre la frequenza di campionamento al di sotto del limite,
verificato nei precedenti paragrafi, pari al doppio della banda del segnale.
Potrebbe venire in mente di effettuare una operazione del tipo seguente:
cos(2πf i t )
x(t)
s(t)
Con questo schema, avendo indicato con fi la frequenza centrale del segnale s(t), si ottiene un
segnale x(t), da eventualmente sottoporre al campionamento, con il seguente spettro:
S(f)
fi
-fi
f
B
f
B
E’ vero che si ottiene un segnale passa-banda con banda dimezzata, ma è anche vero che, a causa
della simmetria hilbertiana di cui godono i segnali reali4, il contenuto informativo è stato
pregiudicato dalla sovrapposizione delle repliche: infatti, nell’intervallo [0,B/2] c’è la
sovrapposizione della banda centrata su fi e di quella centrata su -fi, oppure, considerando solo la
banda a frequenza positiva, c’è il ripiegamento della stessa a cavallo dello 0. A prescindere da come
4
Il prodotto di un segnale reale per un altro segnale reale quale il cos(2πfit) è a sua volta un segnale reale
11
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
vediamo la cosa, il risultato è che il contenuto informativo di x(t) non coincide assolutamente con
quello di s(t).
Dobbiamo allora seguire altre strade. Ad esempio, possiamo tener conto del fatto che
l’informazione, in un segnale reale, è contenuta solo nelle frequenze positive del segnale stesso;
allora, possiamo pensare di portare in banda base solo la banda positiva:
S(f)
-f2
-f1
f1
f2
f
Sm(f)
-f1
-f2
f2-f1
f
Così facendo, però, non otteniamo un gran risultato, in quanto le componenti spettrali di interesse
si trovano ancora in un intervallo di ampiezza f2-f1. Sarebbe invece auspicabile ridurre questo
intervallo, ad esempio di un fattore 2, in modo da ottenere quanto segue:
Sm(f)
-f2
-f1
f
In questo caso, però, è vero che abbiamo dimezzato la banda, ma è anche vero che abbiamo
generato un segnale che non è più reale, ma complesso, che quindi non gode della simmetria
hilbertiana. Questo rende inattuabile anche questo modo di procedere. Allora, possiamo verificare
che è possibile ottenere la traslazione a cavallo dello 0 in altro modo, evitando di trattare segnali
complessi.
Per ottenere uno spettro come Sm(f), partendo dallo spettro S(f) del segnale di partenza, non
dobbiamo far altro che shiftare a sinistra S(f), di una quantità pari alla frequenza centrale di S(f), che
indichiamo con fi. Ci basta allora convolvere S(f) per un impulso a frequenza -fi:
I(f)
-fi
Autore: Sandro Petrizzelli
fi
12
f
Campionamento (parte II)
L’esito della convoluzione è lo spostamento di S(f) a cavallo dell’impulso, ossia uno spettro Sm(f)
fatto come indicato nella precedente figura.
Questo è quello che avviene nel dominio della frequenza, ma è immediato trovare l’equivalente
nel dominio del tempo, nel quale dovremo evidentemente effettuare una moltiplicazione tra s(t) e
l’antitrasformata dell’impulso a frequenza -fi. Tale antitrasformata, applicando semplicemente la
definizione, è
+∞
h ( t ) = ∫ δ(f + f i )e j2 πft df = e − j2 πfi t = cos(2πf i t ) − jsin (2πf i t )
−∞
Dobbiamo dunque moltiplicare il segnale s(t) per questo numero complesso:
h ( t )s( t ) = s( t ) cos(2πf i t ) − js( t )sin (2πf i t )
Avendo il prodotto tra un segnale reale ed uno complesso, il risultato è un segnale complesso;
tuttavia, una quantità complessa è univocamente determinabile tramite la sua parte reale e il
coefficiente della sua parte immaginaria, che sono due quantità sicuramente reali. Nel nostro caso, la
parte reale è r ( t ) = s( t ) cos(2πf i t ) mentre il coefficiente della parte immaginaria è
i( t ) = −s( t )sin (2πf i t ) . Tali due segnali prendono il nome di componenti analogiche in bassa
frequenza del segnale s(t)
Possiamo facilmente disegnare uno schema a blocchi che ci consenta di ricavare proprio i segnali
(reali) r(t) ed i(t):
cos(2πf i t )
r(t)
s(t)
i(t)
− sin (2πf i t )
Vediamo se, effettivamente, le uscite del sistema sono r(t) ed i(t).
Per fare questo, consideriamo il dominio della frequenza. La moltiplicazione nel tempo
corrisponde ad una convoluzione in frequenza; ciò significa che s(t) viene in un caso convoluto con
lo spettro di cos(2πf i t ) e, nell’altro caso, con lo spettro di − sin (2πf i t ) .
spettro di sin (2πf i t )
spettro di cos( 2πf i t )
-fi
fi
f
-fi
13
fi
f
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
Se lo spettro del segnale s(t) è
S(f)
-f2
-f1
f1
f2
f
gli spettri che vengono fuori dalle due convoluzioni (in frequenza) sono i seguenti (il filtraggio
passa-basso ha ovviamente contribuito ad eliminare le repliche esterne all’intervallo di nostro
interesse):
R(f)
I(f)
f
f
Come si nota, i termini spettrali a frequenza positiva e quelli a frequenza negativa in un caso si
sommano (ramo del Coseno) e nell’altro si sottraggono (ramo del Seno). Se indichiamo, ad esempio,
S+(f) ed S-(f) le bande positiva e negativa di S(f), risulta
R ( f ) = S + (f + f i ) + S − (f − f i )

I( f ) = S + ( f + f i ) − S − (f − f i )
I due segnali, quindi, non permettono, singolarmente, di recuperare il segnale di interesse, mentre
questo è permesso da una loro opportuna combinazione, cioè dalla risoluzione di quel sistema (2
equazioni in 2 incognite): per esempio sommandoli si ottiene il doppio della banda positiva, mentre
sottraendoli si ottiene il doppio di quella negativa:
R (f ) + I(f ) = 2S + (f + f i )

R (f ) − I(f ) = 2S − (f − f i )
Il vantaggio di disporre di r(t) ed i(t) è a questo punto evidente:
• da un lato, la loro conoscenza consente di risalire nuovamente ad s(t) (come mostrato dalle
ultime due relazioni), il che ci dice che r(t) ed i(t) costituiscono una rappresentazione
perfettamente equivalente di s(t);
• dall’altro, si tratta di segnali reali (quindi con simmetria hilbertiana) con banda pari a metà
della banda di s(t), per cui rendono più facile il campionamento, richiedendo campionatori più
lenti di un fattore 2.
Autore: Sandro Petrizzelli
14
Campionamento (parte II)
Questo modo di procedere costituisce dunque una validissima alternativa ai precedenti due metodi
di campionamento per segnali passa-banda5, in quanto consente di usare un passo campionamento
doppio (e quindi una frequenza di campionamento metà) rispetto ad entrambi quei due casi.
Ci si può porre anche un’altra domanda, riprendendo proprio i concetti esposti nei paragrafi
precedenti: anziché determinare le componenti r(t) ed i(t) tramite lo schema visto prima e
successivamente campionarle, si può evitare la fase di moltiplicazione/filtraggio, passando
direttamente al campionamento? In altre parole, è possibile ricavare r(t) ed i(t) in forma numerica
campionando direttamente (e opportunamente) il segnale s(t)? La risposta è affermativa, per cui
vediamo come si può procedere.
Sappiamo che moltiplicare s(t) per il pettine di campionamento (ideale) equivale a convolvere, in
frequenza, S(f) per infiniti impulsi equispaziati di fC; questi infiniti impulsi, se presi a due a due (uno
a frequenza positiva fX e l’altro alla corrispondente frequenza negativa -fX) rappresentano infiniti
spettri di segnali del tipo cos(2πfXt), per cui siamo sicuramente in grado di generare, tramite il
campionamento diretto ed un successivo filtraggio, il segnale r(t). Per ottenere invece i(t), ci basta
spostare nel tempo, di una quantità opportuna τ, il pettine di campionamento: infatti, traslare nel
tempo di una quantità τ equivale ad applicare in frequenza l’operatore ej2πfτ; tutti gli impulsi (in
frequenza) vengono dunque moltiplicati per l’operatore ej2πfτ; se consideriamo in particolare, gli
− j 2 πf τ
impulsi a frequenze fi e -fi, gli operatori da considerare sono rispettivamente e j2 πf i τ e e
. Se
allora scegliamo τ in modo tale che la quantità 2πfiτ sia pari a 90° (cioè τ=1/4fi), l’impulso a
frequenza fi rimane com’è, mentre quello a frequenza -fi diventa negativo. Abbiamo cioè ottenuto
esattamente lo spettro del segnale sin(2πfit), il che ci consente quindi di ottenere (a meno di una
inversione di segno) la componente i(t).
In conclusione, al posto di effettuare conversione e campionamento (sui due canali), possiamo
effettuare direttamente il campionamento (sempre sui due canali), con due pettini di campionamenti
sfasati nel tempo di 1/4fi, a patto, ovviamente, di rispettare la condizione per cui lo spettro di s(t) sia
contenuto (con un adeguato margine dagli estremi) nell’intervallo [nf C , (n + 1)f C ] , dove fC è la
frequenza di campionamento:
nf C < f1 < f 2 < (n + 1)f C
Conversione digitale-analogica
INTRODUZIONE
Fino ad ora ci siamo occupati del campionamento essenzialmente dal punto di vista della
conversione analogico-digitale. Abbiamo chiarito che tale operazione ha senso solo se, una volta
disponibili i campioni del segnale analogico di partenza, è possibile utilizzarli per ricostruire il
segnale, senza perdita di informazioni. Ci occupiamo allora, da adesso in poi, proprio di questo
aspetto, ossia della ricostruzione del segnale.
Il problema si può inquadrare molto facilmente nei seguenti termini: dato che i campioni ci
forniscono il valore del segnale negli istanti di campionamento, si tratta di valutare il valore del
segnali in tutti gli altri istanti. All’atto pratico, abbiamo già visto in cosa questo si traduca: dato il
segnale campionato sC(t), il suo spettro è una ripetizione periodica, a passo fC (frequenza di
5
cioè il metodo del campionamento diretto e quello della conversione di frequenza
15
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
campionamento), dello spettro S(f) del segnale di partenza, per cui la ricostruzione consiste
semplicemente in un filtraggio che elimini tutte le repliche spettrali tranne quella corrispondente
proprio ad S(f). Un dispositivo di ricostruzione (cioè un convertitore digitale-analogico o
semplicemente un interpolatore) non è altro, quindi, che un filtro.
SOVRACAMPIONAMENTO IN FORMA NUMERICA
Nei paragrafi che seguiranno ci dedicheremo con maggior dettaglio alla descrizione dei vari tipi di
interpolatori. In questo paragrafo, invece, vogliamo fare una osservazione relativa ad una operazione
che è possibile fare, in numerico, prima della ricostruzione, ai fini evidentemente di migliorare la
ricostruzione stessa.
Abbiamo osservato che la ricostruzione consiste sostanzialmente nell’isolare lo spettro S(f) del
segnale di partenza tra le infinite repliche da cui è costituito il segnale campionato. Questa
operazione di filtraggio risulta critica laddove la separazione delle repliche spettrali sia ridotta: per
operare un filtraggio molto selettivo, noi abbiamo bisogno filtri con pendenza molto elevata nella
banda di transizione e cioè filtri con un numero elevato di poli:
HR(f)
-fC
−
fC
2
fC
2
fC
f
Schematizzazione del modulo della funzione di trasferimento di un filtro passa-basso: per operare un
filtraggio selettivo, la transizione dalla banda passante alla banda attenuata deve essere molto rapida, il
che si ottiene disponendo molti poli molto ravvicinati tra di loro (idealmente coincidenti)
Anche nell’ipotesi di ottenere questa rapida transizione, abbiamo comunque dei problemi nella
caratteristica di fase del filtro: infatti, questa si può ritenere più o meno rettilinea (corrispondente ad
un ritardatore puro) solo nell’intervallo di frequenze in cui il modulo della funzione di trasferimento
è abbastanza regolare; quando, invece, il modulo comincia a variare bruscamente (cosa che avviene
in corrispondenza dei poli), la fase varia anch’essa rapidamente; ne consegue che alle alte frequenze
la fase del filtro varia molto più velocemente di quanto non faccia alle basse frequenze, il che
introduce una distorsione sul segnale. Questa distorsione non dà grossi problemi nel caso, per
esempio, di segnali musicali monofonici, mentre è decisamente inaccettabile nei segnali musicali
stereofonici. Bisogna allora rimediare al problema.
Tanto per avere una idea concreta di quanto appena detto, consideriamo il caso dei CD musicali,
sui quali vengono registrati, in forma numerica, segnali musicali, cioè con banda di circa 15 kHz. La
frequenza di campionamento che si usa nei CD è standardizzata è vale 48 kHz (per motivi legati alla
compatibilità con un sistema preesistente). La situazione è dunque la seguente:
Autore: Sandro Petrizzelli
16
Campionamento (parte II)
S(f)
15 k
-15 k
f (Hz)
SC(f)
-fC
-15 k
15 k
fC=48k
f (Hz)
33 k
S(f) è lo spettro del segnale musicale, con banda monolatera di 15 kHz. SC(f) è il segnale campionato
che si ottiene campionando a 48kHz.
Come si nota, nel segnale campionato, la replica spettrale posizionata su fC (=48kHz) comincia da
48 kHz, per cui noi abbiamo bisogno di un filtro che abbia una transizione tra 15 kHz a 33 kHz. Tale
filtro, quindi, dovrà avere una transizione da banda passante e banda attenuata che avvenga in un
intervallo di appena 18 kHz. Considerando che ogni polo introduce un aumento di pendenza del
modulo della funzione di trasferimento di 20 dB/decade, sono necessari parecchi poli per ottenere la
transizione desiderata. Anche nell’ipotesi di ottenere tale transizioni, abbiamo grossi problemi, come
detto prima, sulla caratteristica di fase.
Il problema, dunque, della ricostruzione del segnale musicale inciso su CD è molto forte. La
prima alternativa che può venire in mentre, per separare le repliche, è ovviamente quella di
aumentare la frequenza di campionamento, ma nel caso dei CD ciò non è possibile, pena
l’impossibilità di mantenere la compatibilità con un sistema pre-esistente. Si deve allora ricorrere a
qualche altra soluzione.
In linea teorica, aumentare la frequenza di campionamento significa sostanzialmente aumentare il
numero di campioni a disposizione del segnale considerato. Ad esempio, supponiamo di aver
campionato un segnale ad un generico passo TC e di aver ottenuto i seguenti campioni:
t
TC
Se noi introducessimo un nuovo valore tra un campione e l’altro, otterremmo un numero doppio
di campioni, cioè una frequenza di campionamento doppia. Questo avrebbe una conseguenza
immediata sul segnale campionato: la separazione tra le repliche spettrali aumenterebbe di un fattore
2 (proprio perché è raddoppiata fC), il che risolverebbe i nostri problemi sul filtraggio analogico di
ricostruzione, che potrà essere sicuramente più blando. Se anziché introdurre un solo valore tra un
17
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
campione e l’altro, ne introducessimo 2, avremmo un ulteriore miglioramento (la frequenza di
campionamento triplicherebbe) e così via.
Dobbiamo allora porci il problema di come calcolare i nuovi campioni da aggiungere a quelli
effettivamente tirati fuori dal campionatore. Il vincolo cui non possiamo rinunciare
è evidentemente quello di introdurre campioni che non modifichino il
contenuto informativo del segnale: l’operazione di aggiunta di campioni non deve
cioè pregiudicare il contenuto informativo che il campionatore ha conservato nelle proprie misure.
Chiediamoci allora cosa succede se, come nuovi campioni, inseriamo tutti valori =0. Ad esempio,
volendo triplicare la frequenza di campionamento, dobbiamo ottenere quanto segue:
campioni
originali
campioni nulli
introdotti
numericamente
t
TC
Di fatto, con l’introduzione di tali campioni, è come se imponessimo un andamento del segnale
originale s(t) diverso da quello di partenza. D’altra parte, introdurre campioni nulli, almeno a livello
intuitivo, non modifica comunque il contenuto informativo del segnale. Infatti, il segnale campionato
rimane invariato rispetto a prima, in quanto è costituito dagli stessi impulsi da cui era costituito
prima:
s C (t ) =
+∞
l'infittimen to dei campioni

    → s' C ( t ) =
∑ s(nTC )δ( t − nTC ) dopo
n = −∞
+∞
 TC
3
∑ s n
n = −∞
T 
 
δ t − n C 
3 
 
Il motivo è evidente: anche se, teoricamente, abbiamo aggiunto dei nuovi impulsi, essi hanno tutti
area nulla, per cui non avranno alcun effetto sul successivo filtro di ricostruzione.
C’è però una differenza rispetto a prima: è vero che il segnale campionato presenta gli stessi
identici impulsi che aveva prima, ma è anche vero che adesso il tempo evolve non più a passo TC, ma
a passo TC/3. Questo significa che abbiamo un allargamento in frequenza di un fattore 3, ossia che le
repliche spettrali, pur rimanendo identiche (per cui conserviamo ancora intatto lo spettro del segnale
di partenza), si pongono a cavallo di 3fC e multipli, esattamente come volevamo ottenere:
S(f)
f
S'C(f)
-3fC
Autore: Sandro Petrizzelli
3fC
18
f
Campionamento (parte II)
In conclusione, con la banale (apparentemente) introduzione di campioni nulli, equispaziati di
TC/3 tra loro, tra i campioni effettivamente misurati dal campionatore, noi otteniamo,
numericamente, l’aumento di un fattore 3 della frequenza di campionamento. Il discorso,
ovviamente, si può generalizzare: introducendo N-1 campioni nulli tra i
campioni misurati effettivamente dal campionatore, otteniamo un
aumento (numerico) della frequenza di campionamento di un fattore N.
Questo è esattamente il meccanismo usato nei lettori CD. Esso consente di utilizzare un filtraggio
analogico blando quanto si vuole e quindi una ricostruzione del segnale musicale ad alta fedeltà.
CONCETTI GENERALI SUGLI INTERPOLATORI
Cominciamo adesso ad occuparci più dettagliatamente degli interpolatori, ossia dei filtri che
usiamo per ricostruire il segnale analogico di partenza a partire dai suoi campioni.
A livello puramente matematico, per effettuare una interpolazione bastano i numeri; nella realtà,
invece, la cosa è più complessa: consideriamo infatti che l’interpolazione si realizza sollecitando, in
istanti opportuni, un dispositivo che ha come risposta all’impulso la funzione interpolante che ci
serve; non possiamo allora pensare di mandare in ingresso al filtro delle funzioni che siano sempre
nulle tranne che in un istante, in quanto tali funzioni hanno area nulla, il che comporta che anche
l’uscita del filtro risulti nulla: infatti, tale uscita è la convoluzione della risposta all’impulso del
filtro per l’ingresso. E’ necessario dunque dare una descrizione dei campioni del segnale comunque
sotto forma di una funzione tempo-continua. Nella pratica, l’ingresso all’interpolatore è costituito dal
segnale di uscita di un latch, il quale carica la configurazione di bit corrispondente al campione in
quell’istante e fornisce in uscita un segnale elettrico stabile che rappresenta il suddetto campione.
Fatta questa necessaria premessa, vediamo i concetti generali sugli interpolatori. Tutto sta a
capire come deve essere fatta la funzione di risposta all’impulso
dell’interpolatore: infatti, sappiamo che, a livello matematico, la formula di
ricostruzione può essere posta nella forma
s R (t ) =
+∞
∑µ
k = −∞
n
h ( t − nTC )
Questa espressione dice in pratica che il segnale ricostruito si ottiene considerando la funzione
interpolante h(t) (cioè appunto la funzione di risposta all’impulso del filtro), posizionandola negli
istanti di campionamento e scalandola di un certo fattore di scala µn. Questo fattore di scala è il
valore che il segnale assume negli istanti di campionamento. Lo abbiamo indicato così per un motivo
molto importante:
• se siamo riusciti ad effettuare un campionamento perfetto, il campionatore6 è riuscito a
misurare il segnale esattamente negli istanti di campionamento, per cui i coefficienti µn non
sono altro che i campioni misurati dal campionatore: µn=s(nTC);
• nella realtà, invece, il campionamento perfetto non esiste, non solo per il fatto che il
campionatore ha un tempo di chiusura non infinitesimo, ma soprattutto perché non si riesce mai
a realizzare una equispaziatura perfetta dei campioni; ciò significa che non tutte le misure di
cui disponiamo rappresentano effettivamente il valore del segnale negli istanti di
campionamento: il generico valore misurato corrisponderà al valore del segnale poco prima o
6
per semplicità, lo consideriamo ideale
19
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
poco dopo l’istante di campionamento cui il campione stesso si riferisce. Accertato questo,
sarebbe errato ricostruire il segnale ponendo µn=s(nTC), perché si attribuirebbero al segnale dei
valori, in certi istanti, sicuramente diversi da quelli effettivi. In questi casi, come
approfondiremo in seguito, quello che si fa è calcolare i valori degli µn a partire dai valori
misurati dal campionatore.
Per queste ragioni, dunque, la formula di prima ha validità più generale.
Concentriamoci dunque sulla funzione interpolante h(t).
Un sicuro requisito cui tale funzione deve soddisfare, affinché il
segnale ricostruito rispetti i valori dei campioni negli istanti di
campionamento, è che non ci sia interferenza tra campioni adiacenti.
In altre parole, la risposta all’impulso del filtro interpolante deve valere 1 (o comunque essere
diversa da zero) nell’origine e deve valere necessariamente 0 in tutti gli altri punti di
campionamento; deve cioè presentare degli zeri ogni TC secondi (dove TC è il periodo di
campionamento), fatta eccezione per l’origine.
Quindi, per garantire la mancanza di interferenza tra campioni adiacenti negli istanti di
campionamento, la risposta all’impulso dell’interpolatore deve essere a zeri equidistanti7:
Come è noto, una funzione del tempo che sia a zeri equidistanti (a distanza TC) gode di una
importante proprietà: periodicizzando il suo spettro a passo 1/TC, si ottiene una costante. In formule,
se H(f) è la funzione di trasferimento del filtro, si ha cioè che
+∞

k = −∞

k 
 = cos t
C 
∑ H f − T
Un altro vincolo cui l’interpolatore deve sottostare riguarda il suo “comportamento” in frequenza.
Abbiamo infatti visto più volte che l’interpolatore, idealmente, deve lasciare immutato lo spettro
nell’intervallo non ambiguo compreso tra -fC/2 e fC/2, mentre invece deve annullare le altre repliche
spettrali (posizionate intorno alle armoniche della frequenza di campionamento).
H(f)
-fC
-fC/2
fC/2
fC
f
Funzione di trasferimento del filtro di ricostruzione ideale, la cui corrispondente funzione di risposta
all’impulso è nella classica forma sin(t)/t.
7
Il problema è assolutamente analogo a quello che si pone, nei ricevitori numerici, per l’intersimbolo all’uscita del filtro di
ricezione: anche in quel caso, per evitare interferenza tra i campioni adiacenti, era necessario avere, all’uscita del suddetto filtro,
forme d’onda ad intersimbolo nullo, ossia forme d’onda a zeri equidistanti.
Autore: Sandro Petrizzelli
20
Campionamento (parte II)
Possiamo allora cominciare ad imporre che la funzione di trasferimento del filtro di ricostruzione
sia nulla proprio nelle armoniche della frequenza di campionamento. Anche qui, dunque, vogliamo
una funzione che sia a zeri equidistanti, ma questa volta in frequenza: dualmente, allora, rispetto a
prima, la funzione di risposta all’impulso h(t) del filtro dovrà essere tale che, periodicizzata a passo
TC=1/fC, dia una costante:
+∞

k 
h  t −  = cos t
∑
fC 
k = −∞ 
Un interpolatore la cui H(f) è nulla a frequenza fC ed armoniche permette sicuramente un’ottima
ricostruzione del segnale:
H(f)
-fC/2
-fC
fC
fC/2
f
Una funzione di trasferimento di questo è sufficientemente piatta nell’intervallo di frequenza in cui è
collocato lo spettro del segnale da isolare e, allo stesso tempo, presenta una attenuazione
sufficientemente alta in prossimità delle armoniche di fC.
Un risultato ancora migliore lo otteniamo se imponiamo che, in corrispondenza delle armoniche di
fC, non si annulli solo H(f), ma anche la sua derivata prima8: infatti, se questo accade, l’attenuazione
in prossimità proprio di fC e armoniche, è maggiore.
Facciamo allora un esempio concreto. Consideriamo un filtro interpolatore con funzione di
risposta all’impulso di tipo rettangolare; sappiamo bene che la corrispondente funzione di
trasferimento è il classico sin(f)/f. Questa funzione è a zeri equidistanti, ma non lo è la sua derivata
prima:
sin ( f )
d

→
f
df
 sin ( f )  f cos( f ) − sin ( f)

 =

→ f cos( f ) − sin ( f) = 0 
→ f = tg ( f)
2
f
f


Se invece consideriamo una funzione di risposta all’impulso di tipo triangolare, la corrispondente
funzione di trasferimento è del tipo sin2(f)/f2:
convoluzione
TC
1
−
TC
2
TC
2
-TC
t
TC
t
La risposta all’impulso di tipo triangolare si ottiene convolvendo quella rettangolare con se stessa; di
conseguenza, in frequenza, lo spettro del triangolo è il prodotto dello spettro del rettangolo con se stesso,
ossia appunto un sin2(f)/f2.
8
In tal modo, sia H(f) sia H’(f) sono a zeri equidistanti, dove la distanza è sempre fC.
21
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
Per essere precisi, se il triangolo ha base TC e ampiezza unitaria, il suo spettro è
H triang ( f ) =
sin 2 (πTC f )
(πTC f )2
Diagrammando questa funzione, abbiamo quanto segue:
Confronto tra la funzione sin(f)/f e la funzione sin2(f)/f2.Gli zeri sono nelle stesse posizioni ed entrambe
valgono 1 in corrispondenza dell’origine. Tuttavia, la funzione sin2(f)/f2 presenta uno smorzamento molto
più rapido
Si tratta evidentemente di una funzione che ha ancora zeri equidistanti, in corrispondenza di fC e
armoniche, ma che presenta una attenuazione decisamente maggiore in corrispondenza di tali zeri;
questo deriva proprio dal fatto che anche la derivata prima della funzione si annulla negli stessi
punti.
Ovviamente, questo aspetto positivo relativo alla maggiore attenuazione in corrispondenza delle
alte frequenze si paga con un evidente difetto: la zona, a cavallo dello 0, in cui la funzione sin2(f)/f2 è
sostanzialmente piatta è diminuita rispetto alla funzione sin(f)/f. Quindi, a fronte della maggiore
attenuazione delle alte frequenze, abbiamo anche un più accentuato effetto passa-basso, che potrebbe
non andarci bene se lo spettro del segnale non è a banda stretta.
Potremmo anche procedere con questo metodo, considerando funzioni che abbiano anche la
derivata seconda a zeri equidistanti, ma è intuitivo aspettarsi come evolvano le cose: cresce
l’attenuazione delle repliche spettrali che non interessano ma cresce anche l’effetto passa-basso.
Questo è il motivo per cui, nella realtà, si considerano solo interpolatori con funzione di risposta
all’impulso rettangolare (interpolatore di ordine 0, altrimenti detto mantenitore) o triangolare
(interpolatore di ordine 1, altrimenti detto interpolatore lineare).
interpolatore
di ordine 0
interpolatore
di ordine 1
t
Autore: Sandro Petrizzelli
t
22
Campionamento (parte II)
INTERPOLATORE DI ORDINE 0: MANTENITORE
Il funzionamento del mantenitore è descritto dalla parola stessa: il valore del singolo campione
viene mantenuto fino all’arrivo del successivo. Un siffatto interpolatore è dunque un filtro che,
sollecitato con un impulso (corrispondente al valore del campione) restituisce un rettangolo di
altezza pari all’area dell’impulso e di durata TC (periodo di campionamento).
-TC/2
t
TC/2
Vediamo il corrispondente comportamento in frequenza. Abbiamo già detto che la funzione di
trasferimento è del tipo sin(f)/f, con gli zeri in corrispondenza delle frequenze fC e multipli. Quindi,
il comportamento del filtro è quello di lasciare passare pressoché invariate le componenti del segnali
molto prossime allo 0 e di attenuare progressivamente tutte le altre, con la massima attenuazione
ottenuta in prossimità appunto di fC e multipli.
Deduciamo dunque che il filtro non attenua completamente le repliche spettrali, il che costituisce
il suo limite principale: laddove il segnale da ricostruire ha una banda B sufficientemente stretta, il
problema è minimo, mentre diventa tanto più consistente quanto più larga è B (sempre ovviamente
nella condizione che BfC/2).
INTERPOLATORE LINEARE (O DI ORDINE 1)
Il funzionamento pratico dell’interpolatore di ordine 1 , avente cioè funzione di risposta
all’impulso di tipo triangolare, è stato già descritto in precedenza, in quanto è quello usato dalla
funzione PLOT del Matlab:
t
Azione di ricostruzione esercitata da un interpolatore lineare: ogni triangolo è collocato in
corrispondenza degli istanti di campionamento ed è scalato di una quantità pari al campione cui si
riferisce; questo equivale semplicemente a congiungere i campioni mediante dei segmenti rettilinei
23
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
La caratteristica essenziale di questo interpolatore è che, all’interno del generico
periodo di campionamento, ogni valore che interpoliamo dipende solo
dal campione precedente e dal campione successivo, proprio perché si trova sul
segmento che congiunge i due campioni9.
Ci concentriamo, perciò, adesso su una problematica importante relativa al funzionamento di
questo interpolatore.
Supponiamo di avere a disposizione i campioni del nostro segnale, misurati negli istanti t=nTC:
s( t ) 
→ s(nTC )
n = −∞,.....,0,.......,+∞
Potremmo trovarci nella necessità di calcolare i valori assunti dal segnale negli istanti t=nTC+τ,
cioè negli istanti traslati di una quantità τ costante rispetto agli istanti di campionamento:
s( t ) 
→ s(nTC + τ)
n = −∞,.....,0,.......,+∞
Come facciamo?
La cosa è immediata se τ è un multiplo di TC, in quanto ci basterebbe considerare la sequenza dei
campioni traslata. Se invece τ≠kTC, dobbiamo procedere in altro modo.
Un modo molto banale di procedere potrebbe essere quello di riconvertire il segnale in analogico e
ricampionarlo negli istanti desiderati, ma questo, oltre ad essere un metodo poco razionale,
comporterebbe sicuramente un peggioramento del rapporto segnale-rumore. Dobbiamo allora
necessariamente sfruttare i campioni di cui già disponiamo: dobbiamo cioè interpolare.
Usando l’interpolatore lineare10, la soluzione è la seguente: considerando il generico intervallo
[nT C , (n + 1)T C ] ed i corrispondenti campioni sn ed sn+1, il valore in nTC+τ si troverà sul segmento
congiungente i due campioni:
s(t)
s n+1
sn
nTC
+τ
t
(n+1)T C
9
Se passassimo ad interpolatori di ordine superiore, imponendo cioè l’annullarsi delle derivate successive, otterremmo come
risultato che il valore in un generico istante non dipende solo dal campione precedente e dal campione successivo, ma anche da
un certo numero di campioni precedenti e seguenti. Questo significa che l’interpolazione si estende su un tempo tanto più lungo
quanto maggiore è l’ordine dell’interpolatore: infatti, l’interpolazione non è altro che una media pesata dei campioni che seguono
e che precedono. Tale media corrispondente ad un filtraggio passa-basso: quanto maggiore è l’intervallo su cui la media pesata
viene calcolata, tanto più forte è l’effetto del filtraggio. Questo è il motivo, come detto anche prima, per cui non si va mai oltre
l’interpolatore lineare.
10
Non ha senso considerare l’interpolatore di ordine 0 (mantenitore), in quanto otterremmo gli stessi valori s(nTC), dato che
l’interpolatore mantiene il valore di campione fin quando non arriva il campione successivo.
Autore: Sandro Petrizzelli
24
Campionamento (parte II)
Ci basta allora determinare l’equazione della retta congiungente i due campioni (noti) e
considerare poi il valore di s(t) nell’istante nTC+τ. La suddetta retta ha la seguente equazione
(facilmente ricavabile come la retta passante per i due campioni assegnati):
s( t ) =
s n +1 − s n
t + [(n + 1)s n − ns n +1 ]
TC
solo per t ∈ [nTC , (n + 1)TC ]
Calcolandola in t=nTC+τ, otteniamo
s(nTC + τ) =
=
s n +1 − s n
(nTC + τ) + [(n + 1)s n − ns n +1 ] = n (s n +1 − s n ) + s n +1 − s n τ + [(n + 1)s n − ns n +1 ] =
TC
TC

s n +1 − s n
τ
τ
s n +1 + 1 −
τ + sn =
TC
TC
 TC

s n

Come era ovvio aspettarsi, il valore interpolato dipende, oltre che dai due
campioni, dal valore di τ. Dobbiamo adesso chiederci a cosa corrisponda, in frequenza,
l’operazione di interpolazione appena descritta.
Prima di tutto, cerchiamo di semplificare il simbolismo. Consideriamo perciò un’asse dei tempi
normalizzato a TC, il che significa che gli istanti di campionamento sono adesso t=0,1,2,..,n,.. e così
via; in secondo luogo, come generico intervallo consideriamo quello compreso tra t=n e t=n+1;
riapplicando allora lo stesso ragionamento di prima, per calcolare s(τ), otteniamo evidentemente che

τ
s n +
TC


 = (1 − τ )s(n ) + τs(n + 1)

Per comprendere l’equivalente, in frequenza, di questa operazione dobbiamo necessariamente
richiamare dei concetti a proposito dei sistemi tempo-discreti.
Nella elaborazione numerica dei segnali, l’informazione è sempre espressa in forma di serie
numerica ed abbiamo visto che tale serie numerica si ottiene, partendo da una funzione continua nel
tempo, mediante l’operazione di campionamento. Per poter effettuare delle elaborazioni con un
computer, non possiamo fare a meno di avere, in qualsiasi punto della catena elaborativa, dei
segnali tempo-discreti, cioè delle sequenze di numeri. Per questo motivo, il sistema attraverso
cui passa il segnale dovrà essere necessariamente discreto, ossia dovrà avere una fisica che si muove
per istanti discreti di tempo. Questo, in parole povere, significa una cosa molto semplice: inserendo
una sequenza numerica nel nostro sistema, esso risponderà con un’altra sequenza numerica ed il suo
stato evolverà per istanti discreti.
Per analizzare il comportamento del sistema sul segnale ricevuto in ingresso, anche nel campo dei
sistemi tempo-discreti si usa il concetto di funzione di risposta all’impulso, definita come la
risposta del sistema ad un ingresso impulsivo. E’ ovvio che la suddetta risposta sarà una sequenza di
numeri:
25
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
t
u(n)
h(n)
S
t
Metodo per la determinazione della risposta all’impulso di un sistema tempo-discreto: si manda in
ingresso un impulso (discreto) e si misura la corrispondente risposta
La risposta all’impulso nel caso tempo-discreto ha lo stesso ruolo di quella nel caso tempocontinuo: dato che ogni segnale discreto può essere espresso come sovrapposizione di impulsi, la
risposta del sistema (supposto ovviamente lineare) ad un qualsiasi ingresso sarà ottenibile valutando
la risposta a ciascun impulso in cui l’ingresso è scomponibile e poi sommando. Traduciamo questi
concetti in formule.
In primo luogo, l’espressione analitica convenzionale di un impulso unitario discreto è la
seguente:
1
n=0

δ( nT) =  T
0
n≠0
Questo impulso gode di una proprietà fondamentale, che è l’analoga della proprietà di setaccio
che conosciamo nel dominio tempo-continuo: ricordando che la definizione di prodotto di
convoluzione tra segnali discreti è
+∞
+∞
k = −∞
k = −∞
z(nT) = x (nT) * y(nT) = T ∑ x (nT) y(nT − kT) = T ∑ x (kT)δ(nT − kT)
la suddetta proprietà dice che
+∞
x (nT) = T ∑ x (kT)δ(nT − kT) = x (nT) * δ(nT)
k = −∞
In base a tale proprietà, possiamo calcolare l’uscita y(nT) del nostro generico sistema cui poniamo
in ingresso il generico segnale x(nT): indicando con TD[] l’operatore che rappresenta l’effetto del
sistema sull’ingresso, possiamo scrivere che
 +∞

y(nT) = TD [x (nT)] = TD [x (nT) * δ(nT)] = TD  ∑ Tx (mT)δ(nT − mT)

m = −∞
Data la linearità del sistema (e quindi di TD) abbiamo poi che
y(nT) = T
+∞
+∞
∑ T [x (mT)δ(nT − mT)] = T ∑ x (mT)T [δ(nT − mT)]
m = −∞
D
m = −∞
D
dove l’ultimo passaggio è dovuto al fatto che gli x(mT) sono numeri, mentre l’operatore TD agisce
solo su funzioni di nT.
26
Campionamento (parte II)
D’altra parte, abbiamo detto che, per definizione, mandando il segnale δ(nT − mT) in ingresso al
sistema, la sua risposta è proprio la risposta all’impulso:
h (nT − mT) = TD [δ(nT − mT)] 
→ y( nT) =
+∞
∑ Tx( mT) h( nT − mT) = x( nT) * h( nT)
m = −∞
Abbiamo dunque dimostrato che, anche per i sistemi tempo-discreti, la
risposta ad un qualsiasi ingresso è calcolabile come convoluzione
(nella sua definizione tempo-discreta) tra l’ingresso e la funzione
di risposta all’impulso:
y(nT) = x (nT) * h (nT)
Ovviamente, perché tutto questo discorso abbia senso, il passo di campionamento del segnale
ingresso deve essere uguale al passo di campionamento della risposta all’impulso del sistema.
Fatti questi richiami, possiamo tornare al nostro problema principale, che era quello di
interpretare in frequenza l’azione di interpolazione rappresentata dall’equazione

τ
s n +
TC


 = (1 − τ )s(n ) + τs(n + 1)

A primo membro abbiamo in pratica l’n-simo campione del segnale che stiamo supponendo sia
campionato non più negli istanti nTC, ma negli istanti nTC+τ. Indichiamo allora tale campione come
un generico u(n), al fine di rappresentare il fatto che si tratti dell’uscita di un sistema:
u (n ) = (1 − τ )s(n ) + τs(n + 1)
La discretizzazione del sistema, oltre che del segnale, ci permette di interpretare questa relazione
come la convoluzione tra la sequenza di ingresso e la risposta all’impulso di un filtro che ha 2
campioni, di ampiezza τ e 1-τ, opportunamente disposti nel tempo. Siamo allora in grado di definire
la funzione di trasferimento del sistema: infatti, la trasformata di Fourier dell’uscita u(n) è
U(f ) = (1 − τ )S(f ) + τS(f )e j2 πfTC
per cui la funzione di trasferimento del sistema, applicando la normale definizione, è
H (f ) =
U(f )
= (1 − τ ) + τe j2 πfTC
S(f )
Per capire che “aspetto” abbia questa funzione, facciamo qualche semplice passaggio
H(f ) = 1 − τ + τe j2 πfTC = 1 − τ + τ(cos(2πfTC ) + jsin (2πfTC ) ) = (1 − τ + τ cos(2πfTC ) ) + j(τsin (2πfTC ) )
Si tratta dunque di una funzione di trasferimento complessa, dipendente dal valore di τ.
Concentriamoci allora sul suo modulo. Tralasciando i dettagli analitici, possiamo diagrammare |H(f)|
in funzione di f, ottenendo quanto segue:
27
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
Andamento di |H(f)|: nella figura a sinistra è evidenziata la funzione nel suo complesso, come una
oscillazione sinusoidale (che in pratica ha l’andamento di un cos2(f) ) sovrapposta ad un termine
costante; nella figura a destra, invece, è mostrata solo l’oscillazione sinusoidale nel caso particolare di
τ=1/2; si nota, in questo caso, il primo minimo nullo in corrispondenza di 1/2TC (dove TC è il periodo di
campionamento), cioè nella frequenza di Nyquist
La funzione risulta dunque composta da un termine costante 1-τ cui si sovrappone una
oscillazione sinusoidale11 la cui entità dipende da τ. Questo significa che la funzione che si ottiene,
per interpolazione, da quella di partenza (supponendo che il campionamento sia avvenuto rispettando
il teorema di Nyquist), è diversa a seconda del valore di τ. Concentriamoci in particolare sul periodo
fondamentale della funzione di trasferimento, nel quale essa ha andamento passa-basso, variabile con
τ. Consideriamo allora i vari casi:
• un primo caso semplice è quello in cui τ=1/2, per cui vogliamo il valore intermedio tra i due
s(0) + s(1)
campioni considerati: in questo caso, risulta s(1 / 2) =
, per cui il valore determinato è
2
la media aritmetica dei campioni estremi; in frequenza, come evidenziato nella figura di prima,
la funzione |H(f)| presenta un minimo nullo in corrispondenza della frequenza di Nyquist fC/2 e
si verifica che il maggiore effetto passa-basso si ha proprio in questa condizione;
• i casi ancora più semplici sono quelli estremi, in cui cioè τ=1 oppure τ=0: in questi casi, si
prendono esattamente s(1) oppure s(0), per cui il segnale di uscita ha la stessa banda che aveva
in ingresso
• in generale, se τ diventa più piccolo o più grande rispetto ad 1/2, si effettua ancora una media
dei campioni estremi, ma non più aritmetica, bensì pesata12; quanto più τ è vicino al punto
medio tra i due estremi, tanto più l’operazione di filtraggio è spinta, fino al massimo valore che
si ha, come detto, quando τ=1/2.
Quindi, concludendo, il problema di questo interpolatore è che, quando usato per eseguire uno
shift temporale del segnale che è stato campionato, svolge la funzione di filtro passa-basso con banda
passante dipendente dall’entità dello shift: ciò significa che l’interpolazione effettuata
non dà i valori del segnale di partenza negli istanti desiderati,
bensì i valori del segnale di partenza sottoposto ad un filtraggio
passa-basso, dipendente da τ.
11
Si tratta di una funzione periodica e non c’è da stupirsi: è infatti la trasformata di un segnale (la risposta all’impulso) che è
campionato.
12
il che significa che si dà più peso all’uno o all’altro campione a seconda che τ sia maggiore o minore di 1/2
Autore: Sandro Petrizzelli
28
Campionamento (parte II)
Filtro di ricostruzione perfetto
Il problema appena descritto non si presenta, invece, nell’interpolatore perfetto, cioè nel filtro
passa-basso ideale, avente funzione di risposta all’impulso del tipo sin(t)/t.
Il motivo principale per cui tale filtro non è implementabile è che la sua funzione di risposta
all’impulso è estesa da -∞ a +∞, per cui sarebbe utilizzabile solo a patto di avere un numero infinito
di campioni. Per rendere implementabile il filtro, possiamo allora pensare di finestrare la sua h(t),
ossia di limitarla ad un intervallo temporale prefissato e di durata finita. Ad esempio, scegliamo un
intervallo, centrato nell’origine, che vada da t=-NTC/2 a t=NTC/2, con N generico.
Finestratura di un segnale del tipo sin(t)/t, dove l’intervallo di finestratura è stato esteso dal 3° zero
negativo al 3° zero positivo. Nel caso del filtro di ricostruzione ideale, dove gli zeri sono posizionati in
±TC e multipli, la finestratura considerata in figura è quella che va da -3TC a 3TC.
Possiamo anche calcolare lo spettro di questo segnale, ossia quindi la funzione di trasferimento
del filtro: infatti, quella funzione del tempo è semplicemente interpretabile come prodotto di un
sin(t)/t per un rettangolo, per cui in frequenza avremo la convoluzione di un rettangolo per un
sin(f)/f: tale convoluzione ha l’ovvio effetto di introdurre delle code sia all’interno sia all’esterno del
rettangolo, dando quindi una funzione di trasferimento del tipo seguente:
E’ ovvio che il risultato della convoluzione è simmetrico rispetto all’origine delle frequenze.
Si identifica dunque una banda passante al cui interno l’andamento del filtro è circa unitario con
dei piccoli scostamenti, facilmente valutabili proprio perché dovute alla convoluzione del rettangolo
(filtro ideale) con il sin(f)/f. C’è poi una frequenza al di là della quale l’attenuazione garantita dal
filtro è sicuramente superiore ad un valore minimo prestabilito. L’unico problema serio è dunque
nella banda di transizione che ha una estensione non troppo piccola: perché il filtro sia applicabile,
dovremo perciò richiedere un sufficiente allontanamento delle repliche spettrali (costituenti lo
spettro del segnale campionato).
Per migliorare le prestazioni del filtro, non abbiamo altra strada
che ampliare la durata della finestratura, in modo da tendere sempre
più al filtro ideale: ampliando la finestratura, le oscillazioni
addensano verso i bordi e la banda di transizione diventa più
stretta.
29
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
Osservazione
Consideriamo ancora il filtro di prima, ottenuto cioè finestrando la funzione di risposta
all’impulso del filtro di ricostruzione ideale:
E’ ovvio che questa funzione di risposta all’impulso dà un proprio contributo, nella ricostruzione
del segnale, per un intervallo di tempo pari a 6 periodi di campionamento. Questo rappresenta una
sostanziale differenza con gli altri filtri di ricostruzione precedentemente esaminati: lasciando da
parte il filtro di ricostruzione ideale, che influenza la ricostruzione da -∞ a +∞ (essendo estesa da -∞
a +∞), ricordiamo infatti che sia il mantenitore (risposta all’impulso di tipo rettangolare) sia
l’interpolatore lineare (risposta all’impulso di tipo triangolare) influenzano la ricostruzione per un
intervallo di durata TC. Si dice allora che tali due filtri non hanno memoria da un campione al
successivo, al contrario dell’interpolatore ideale, che invece ha memoria infinita (ed è per questo
irrealizzabile).
CAMPIONAMENTO IRREGOLARE
Consideriamo un segnale tempo-continuo s(t) e supponiamo di sottoporlo ad un campionamento a
passo TC. Ci aspettiamo, in uscita dal campionatore (supposto ideale), le misure dei valori del
segnale esattamente negli istanti di campionamento nTC:
s(t)
Campionatore
s(nTC)
periodo: TC
Nella realtà, non è mai pensabile che il campionatore esegua tutte le misure esattamente negli
istanti di campionamento; in generale, per il generico istante teorico nTC di campionamento, il
campionatore fornirà il valore assunto da s(t) poco prima o poco dopo rispetto a nTC. In formule,
possiamo perciò scrivere che, mentre il segnale atteso è s(nTC), con n=-∞,....,+∞, il segnale
realmente ottenuto è
s(nTC + τ n )
n = -∞,....,+∞ , τ n ∈ ℜ
Il caso peggiore possibile è quando l’errore temporale τn è diverso per ciascun istante di
campionamento: in questo caso, abbiamo un disturbo casuale sul segnale. Il caso migliore è invece
quello in cui τn è lo stesso per ogni istante di campionamento: in questo caso, infatti, l’errore diventa
praticamente inosservabile, visto che equivale semplicemente alla presenza di uno sfasamento
temporale del pettine di impulsi di campionamento e cioè ad un termine ejωτ nella funzione di
trasferimento corrispondente.
Mettiamoci perciò nel caso peggiore di τn diverso per ogni istante di campionamento. Se noi
ignorassimo la presenza di questi errori temporali ed andassimo a ricostruire il segnale,
commetteremmo evidentemente un errore, in quanto assegneremmo, al segnale ricostruito, dei valori,
30
Autore: Sandro Petrizzelli
Campionamento (parte II)
negli istanti di campionamento, sbagliati. Infatti, la formula di ricostruzione, quale che sia il filtro
interpolatore utilizzato, ha la caratteristica essenziale di onorare i dati, cioè di fare in modo che il
segnale ricostruito abbia, negli istanti di campionamento, i valori dei corrispondenti campioni; ma i
campioni di cui noi disponiamo non necessariamente corrispondono, per quanto detto, ai valori del
segnale s(t) di partenza negli istanti di campionamento, da cui l’errore.
In generale, possiamo porre il segnale ricostruito nella già citata forma
s R (t ) =
+∞
∑µ
n = −∞
n
h ( t − nTC )
Questa espressione dice in pratica che il segnale ricostruito si ottiene considerando la funzione
interpolante h(t) (cioè la funzione di risposta all’impulso del filtro), posizionandola negli istanti di
campionamento e scalandola di un certo fattore di scala µn. Questo fattore di scala coincide con
s(nTC) solo nell’ipotesi di campionamento perfetto; se, invece, il campionamento non è perfetto, non
c’è altra soluzione che calcolare i coefficienti µn. Il calcolo va ovviamente condotto a partire dagli
unici dati a disposizione: i campioni s(nTC + τ n ) forniti dal campionatore.
La condizione che dobbiamo imporre è che il segnale ricostruito onori i dati a nostra disposizione,
il che significa imporre che
s R (nTC + τ n ) =
+∞
∑µ
n = −∞
n
h (τ n ) = s(nTC + τ n )
Supponendo di avere a disposizione un numero finito N di campioni, abbiamo dunque un sistema
di N equazioni in N incognite, che potremmo immediatamente risolvere conoscendo i valori di τn.
Consideriamo la relazione s R ( t ) =
+∞
∑µ
n = −∞
n
h ( t − nTC ) ; possiamo evidentemente interpretare questa
relazione come la convoluzione di un pettine di impulsi, il generico dei quali di area µn, per la
funzione di risposta all’impulso del filtro di ricostruzione: infatti,
h ( t ) * µ( t ) = h ( t ) *
+∞
n = −∞
=
+∞ +∞
∫ ∑µ
−∞n = −∞
n
+∞
+∞
+∞
−∞
−∞
n = −∞
∑ µ n δ( t − nTC ) = ∫ h (t − τ)µ(τ)dτ = ∫ h ( t − τ) ∑ µ n δ(τ − nTC )dτ =
h ( t − τ)δ(τ − nTC )dτ =
+∞ +∞
∑ ∫µ
n = −∞ − ∞
n
h ( t − τ)δ(τ − nTC )dτ =
+∞
∑µ
n = −∞
n
h (τ − nTC ) = s R ( t )
Se allora passiamo nel dominio delle frequenze, otteniamo che
S R ( f ) = H( f ) ⋅ M ( f )
In questa relazione, M(f) è la trasformata del pettine di impulsi µ(t), ossia
+∞
 +∞
 +∞
M (f ) = F ∑ µ n δ( t − nTC ) = ∑ µ n F[δ( t − nTC )] = ∑ µ n e − j2 πfnTC
n = −∞
 n = −∞
n = −∞
La funzione M(f) risulta essere dunque una funzione periodica di periodo TC, dato che è la
trasformata di una sequenza campionata a passo TC.
Senza perdere di generalità, data la possibilità di sfruttare la sovrapposizione degli effetti,
possiamo supporre che i campioni forniti dal campionatore abbiano dei valori molto particolari:
31
Autore: Sandro Petrizzelli
Appunti di “Elaborazione numerica dei segnali” - Capitolo 1
n=0
n≠0
1
s(nTC + τ n ) = 
0
Stiamo cioè supponendo che ci sia un campione unitario seguito da campioni tutti nulli. Questo
equivale a dire che l’ingresso al campionatore è stato un ingresso puramente impulsivo, di area
unitaria. Per confrontare i risultati con quelli noti, supponiamo che τn=0.
Allora, anche la funzione ricostruita dovrà essere unitaria in 0 e nulla altrove (dato che deve
onorare i dati). Supponiamo allora di campionare sR(t) a passo 1/TC: il corrispondente segnale
campionato sarà
s RC ( t ) =
+∞
∑s
n = −∞
R
(nTC )δ( t − nTC )
Dato che l’unico campione non nullo è quello nell’origine, abbiamo evidentemente che
s RC ( t ) = δ( t ) ed il corrispondente spettro è quindi costante e pari ad 1. Tale spettro, d’altra parte, non
è altro che una ripetizione periodica di SR(f) a passo 1/TC:
1 = S RC ( f ) =
+∞
∑S
n = −∞
R ( f − nf C ) =
+∞
∑ H ( f − nf
n = −∞
C
) M ( f − nf C )
Abbiamo inoltre osservato prima che la funzione M(f) è periodica di per se, per cui la possiamo
sicuramente portare fuori dalla sommatoria:
+∞
1 = M ( f ) ∑ H( f − nf C )
n = −∞
Da qui possiamo ricavare l’espressione di M(f) e possiamo sostituire nella formula
S R ( f ) = H( f ) ⋅ M ( f ) :
H( f )
1
M( f ) = +∞

→ S R ( f ) = +∞
∑ H( f − nf C )
∑ H( f − nf C )
n = −∞
n = −∞
Avendo detto che sR(t) deve essere =1 nell’origine e nulla in tutti gli altri istanti, il suo spettro
SR(f) è sempre una costante pari ad 1. Questo può accadere solo se la funzione H(f) è di tipo passabasso. Ce ne possiamo accorgere facilmente se supponiamo che H(f) sia il rettangolo passa-basso
ideale, ma la cosa accade per qualunque spettro passa-basso. Ad esempio, si può considerare H(f)
come una gaussiana.
Quindi, la conclusione è che, anche nel caso di campionamento irregolare, la ricostruzione del
segnale è fattibile, risolvendo il sistema di equazioni descritto in precedenza, tramite una qualunque
funzione h(t) di ricostruzione di tipo passa-basso.
Autore: SANDRO PETRIZZELLI
e-mail: [email protected]
sito personale: http://users.iol.it/sandry
succursale: http://digilander.iol.it/sandry1
Autore: Sandro Petrizzelli
32