elaborazione numerica dei segnali -...

25
Appunti di Appunti di Elaborazione numerica dei segnali Elaborazione numerica dei segnali Capitolo 8 (parte I) - Capitolo 8 (parte I) - Sistemi “multirate” Introduzione alla elaborazione multirate di segnali digitali ......................... 1 Concetti generali sulla conversione di frequenza di campionamento .......... 2 Decimazione di un fattore intero D ............................................................. 4 Osservazione: necessità del filtraggio anti-aliasing ............................ 10 Esempio con Matlab ........................................................................... 11 Interpolazione di un fattore intero I .......................................................... 14 Esempio con Matlab ........................................................................... 17 Conversione di frequenza di campionamento di un fattore I/D ................. 20 Implementazione multistadio per la conversione di frequenza di campionamento 24 I NTRODUZIONE ALLA ELABORAZIONE MULTIRATE DI SEGNALI DIGITALI In molte applicazioni di elaborazione numerica dei segnali, ci si trova a dover modificare la frequenza di campionamento di un segnale, sia aumentandola (processo di interpolazione) sia diminuendola (processo di decimazione). Per esempio, nei sistemi di telecomunicazioni che trasmettono e ricevono segnali di tipo differente, è necessario processare i vari segnali a velocità differenti, commisurate con le rispettive bande. Il processo di conversione del segnale da una data frequenza di campionamento ad un’altra, diversa, è detto appunto variazione della frequenza di campionamento (sampling rate conversion). Analogamente, sistemi che elaborano segnali a diversa frequenza di campionamento prendono il nome di sistemi multirate per l’elaborazione numerica dei segnali (multirate digital signal processing systems). La conversione della frequenza di campionamento di un segnale può essere ottenuta secondo due distinte procedure: quella più banale consiste nel convertire il segnale digitale, a frequenza di campionamento f C , nuovamente in analogico (mediante un convertitore D/A seguito eventualmente da un filtro opportuno 1 ) e quindi nel ricampionarlo alla desiderata nuova frequenza di campionamento (il che significa usare un convertitore A/D); la procedura meno banale consiste invece nell’operare la conversione direttamente nel dominio digitale, cioè senza passare per una conversione D/A e successiva riconversione A/D: bisogna elaborare opportunamente i campioni già disponibili. 1 E’ bene evidenziare l’utilità del filtro, per quanto ovvia: quando convertiamo il segnale da digitale in analogico, otteniamo un segnale con una assegnata banda B che sicuramente, nel precedente campionamento, soddisfaceva il teorema del campionamento; nel momento in cui decidiamo, per esempio, di ridurre la frequenza di campionamento, dobbiamo essere sicuri che il segnale da campionare soddisfi ancora il teorema di campionamento, con riferimento alla nuova frequenza di campionamento (più bassa della precedente); se questo non accade, dobbiamo necessariamente filtrare le componenti del segnale (analogico) che darebbero luogo all’aliasing.

Upload: hathuy

Post on 16-Feb-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti diAppunti diElaborazione numerica dei segnaliElaborazione numerica dei segnaliCapitolo 8 (parte I) - Capitolo 8 (parte I) - Sistemi “multirate”

Introduzione alla elaborazione multirate di segnali digitali......................... 1Concetti generali sulla conversione di frequenza di campionamento .......... 2Decimazione di un fattore intero D............................................................. 4

Osservazione: necessità del filtraggio anti-aliasing............................ 10Esempio con Matlab ........................................................................... 11

Interpolazione di un fattore intero I .......................................................... 14Esempio con Matlab ........................................................................... 17

Conversione di frequenza di campionamento di un fattore I/D ................. 20Implementazione multistadio per la conversione di frequenza di campionamento 24

INTRODUZIONE ALLA ELABORAZIONE MULTIRATE DI SEGNALI DIGITALI

In molte applicazioni di elaborazione numerica dei segnali, ci si trova a dover modificare lafrequenza di campionamento di un segnale, sia aumentandola (processo di interpolazione) siadiminuendola (processo di decimazione).

Per esempio, nei sistemi di telecomunicazioni che trasmettono e ricevono segnali di tipodifferente, è necessario processare i vari segnali a velocità differenti, commisurate con le rispettivebande. Il processo di conversione del segnale da una data frequenza di campionamento ad un’altra,diversa, è detto appunto variazione della frequenza di campionamento (sampling rateconversion). Analogamente, sistemi che elaborano segnali a diversa frequenza di campionamentoprendono il nome di sistemi multirate per l’elaborazione numerica dei segnali (multirate digitalsignal processing systems).

La conversione della frequenza di campionamento di un segnale può essere ottenuta secondo duedistinte procedure:

• quella più banale consiste nel convertire il segnale digitale, a frequenza di campionamento fC,nuovamente in analogico (mediante un convertitore D/A seguito eventualmente da un filtroopportuno1) e quindi nel ricampionarlo alla desiderata nuova frequenza di campionamento (ilche significa usare un convertitore A/D);

• la procedura meno banale consiste invece nell’operare la conversionedirettamente nel dominio digitale, cioè senza passare per una conversione D/Ae successiva riconversione A/D: bisogna elaborare opportunamente i campioni già disponibili.

1 E’ bene evidenziare l’utilità del filtro, per quanto ovvia: quando convertiamo il segnale da digitale in analogico, otteniamo un

segnale con una assegnata banda B che sicuramente, nel precedente campionamento, soddisfaceva il teorema del campionamento;nel momento in cui decidiamo, per esempio, di ridurre la frequenza di campionamento, dobbiamo essere sicuri che il segnale dacampionare soddisfi ancora il teorema di campionamento, con riferimento alla nuova frequenza di campionamento (più bassadella precedente); se questo non accade, dobbiamo necessariamente filtrare le componenti del segnale (analogico) che darebberoluogo all’aliasing.

Page 2: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli2

La procedura che prevede la conversione D/A e la successiva riconversione A/D, per quantobanale, è comunque implementabile. Essa ha anche il vantaggio che la nuova frequenza dicampionamento può essere scelta in modo del tutto arbitrario (a patto di rispettare sempre il teoremadel campionamento), senza avere cioè alcuna relazione con la precedente. D’altra parte, ilgrosso svantaggio di questo metodo sta nella distorsione delsegnale, introdotta dal convertitore D/A per la ricostruzione delsegnale analogico, e negli effetti di quantizzazione che si hannonel convertitore A/D.

Al contrario, la conversione di frequenza di campionamento effettuata nel dominio numerico, congli opportuni accorgimenti, evita questi problemi ed è appunto quello di cui ci occupiamo neiprossimi paragrafi.

Dopo una vasta analisi dei metodi di conversione di frequenza di campionamento, passeremo alleapplicazioni concrete di tali metodi, arrivando fino ai cosiddetti filtri polifase che saranno descrittinel capitolo successivo.

CONCETTI GENERALI SULLA CONVERSIONE DI FREQUENZA DI CAMPIONAMENTO

Supponiamo di avere un segnale tempo-discreto x(n) frutto del campionamento di un segnale x(t)a frequenza di campionamento fX. Vogliamo trovare il modo di elaborare questo segnale in modo daconvertire la sua frequenza di campionamento ad un valore prefissato fY :

x(n) y(m)

campionamentoa frequenza fX

campionamentoa frequenza fY

Questo dispositivo, quindi, riceve in ingresso dei campioni al ritmo di uno ogni TX secondi efornisce in uscita campioni, dello stesso segnale di partenza, ma al ritmo di uno ogni TY secondi.

Supponiamo che il rapporto tra la nuova e la vecchia frequenza di campionamento sia pari alrapporto tra due numeri primi I e D:

D

I

T

T

f

f

Y

X

X

Y ==

Ci accingiamo a mostrare che la “black-box” che effettua la conversionepuò essere vista come un sistema lineare che però sia tempo-variante: questo significa, in parole povere, che esso avrà una funzione di risposta all’impulsodel tipo h(n,m), legata sia all’istante m sia all’istante n:

h(n,m)Sistema linearetempo-variante

x(n) y(m)

campionamentoa frequenza fX

campionamentoa frequenza fY

Page 3: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli3

Il fatto che il sistema sia lineare garantisce che l’uscita siottenga come convoluzione dell’ingresso per la risposta all’impulso,ossia sostanzialmente che ciascun campione di uscita sia una mediapesata di un certo numero di campioni successivi dell’ingresso. Latempo-invarianza significa invece che tale media pesata è effettuata con coefficienti che cambiano aseconda di quale sia il campione di uscita che si sta calcolando.

Il processo di conversione della frequenza di campionamento, se pur effettuato nel dominionumerico, può essere ben compreso alla luce di una conversione D/A e di un successivoricampionamento. Sia allora x(t) il segnale analogico che è stato inizialmente campionato afrequenza fX , portando alla sequenza x(n); l’obbiettivo della conversione di frequenza dicampionamento è quello di ottenere un’altra sequenza y(m) che corrisponda ai valori campionati dix(t) a frequenza di campionamento fY. Ne deriva necessariamente che y(m) è una versioneshiftata nel tempo di x(n), come evidenziato nella figura seguente:

Vengono qui confrontate le sequenze x(n) e y(m) sulla base del segnale analogico di partenza x(t):le due sequenze partono dallo stesso istante, per cui il primo campione è lo stesso per entrambe;dopodiché, avendo un passo di campionamento diverso, le successive coppie di campioni risultanosfasate nel tempo; non solo ma la distanza tra il generico x(m+k) ed il generico y(n+k) è variabile,per il semplice motivo che si è supposto che la frazione I/D sia un numero razionale. Se il rapportoI/D fosse un numero intero, allora la distanza tra campioni corrispondenti sarebbe costante neltempo: ad esempio, se fosse I/D=2, allora avremmo campioni y(n) coincidenti con x(m) e campioniy(n) intermedi tra i campioni x(m).

Questo discorso ci ha dunque mostrato che y(m) si ottiene come uno shifttemporale di x(n), dove l’entità dello shift τi varia a sua volta neltempo. Se τi fosse costante nel tempo, l’implementazione sarebbe semplice: uno shift temporale èinfatti implementabile tramite un filtro lineare tempo-invariante con funzione di trasferimento conmodulo unitario e fase perfettamente lineare2: if2je)f(H τπ−= . Al contrario, essendo τi variabile dacampione a campione, il convertitore di frequenza di campionamento può essere implementatotramite un insieme di filtri lineari, che hanno lo stesso modulo della funzione di trasferimento, magenerano ritardi temporali diversi. L’insieme di questi filtri può essere visto come un unico filtrolineare, che sia però tempo-variante.

Anziché considerare direttamente il caso generale di conversione della frequenza di campioniamo,ci concentreremo inizialmente su due casi particolari:

2 Un simile filtro sarà un filtro FIR, in quanto sappiamo che solo i filtri FIR possono avere fase lineare ed essere stabili e

fisicamente realizzabili

Page 4: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli4

• il primo è quello in cui si vuole una riduzione della frequenza di campionamento di un fattoreintero D:

D

1

T

T

f

f

Y

X

X

Y ==

Si parla in questo caso di processo di decimazione (cioè sottocampionamento) di un fattoreD; il corrispondente dispositivo prende il nome di decimatore e si indica con la seguentesimbologia:

1êêDx(n) y(m)

campionamentoa frequenza fX

campionamentoa frequenza fX/D

• il secondo caso è quello in cui si vuole un aumento della frequenza di campionamento di unfattore intero I:

IT

T

f

f

Y

X

X

Y ==

Si parla in questo caso di processo di interpolazione (cioè sovracampionamento) di unfattore I; il corrispondente dispositivo prende il nome di interpolatore e si indica con laseguente simbologia:

1ééIx(n) y(m)

campionamentoa frequenza fX

campionamentoa frequenza IfX

DECIMAZIONE DI UN FATTORE INTERO DConsideriamo un segnale x(n), con spettro X(ω), che deve essere sottocampionato (decimato) di

un fattore D. Supponiamo che x(n) sia stato campionato a pulsazione ωX=2πfX e assumiamo perciòche lo spettro X(ω) sia non-nullo nell’intervallo di pulsazioni 0≤ω≤π/T, il che equivale chiaramenteall’intervallo di frequenze non ambiguo -fX/2≤f≤fX/2, dove fX/2 è la frequenza di Nyquist eT=1/fX il periodo di campionamento.

Come detto in precedenza, la conversione della frequenza di campionamento, che noi intendiamoeffettuare direttamente nel dominio numerico, può comunque essere vista come una conversioneD/A, in modo da risalire al segnale x(t) originale, ed in una successiva conversione A/D, ottenutacon la nuova frequenza di campionamento fX/D. E’ evidente, in questo modo, che, nell’effettuare ilnuovo campionamento, dovremo fare in modo da evitare aliasing in frequenza: infatti, ilcampionamento a frequenza fX/D comporterà che lo spettro di x(t) venga replicato a cavallo dellefrequenze 0, ±fX/D, ±2fX/D e così via, per cui, se vogliamo evitare l’aliasing, dovremo essere certiche il segnale da campionare abbia una banda non superiore a fX/2D.

Page 5: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli5

Facciamo un esempio concreto: supponiamo che il segnale analogico x(t) abbia banda15 kHz (ad esempio il segnale musicale); la minima frequenza di campionamentopossibile per questo segnale è 30 kHz; quindi, qualunque sia la frequenza dicampionamento fX iniziale, nel momento in cui volessimo ridurla a fX/D, dovremo sempre

essere certi di soddisfare la condizione kHz30D

fX ≥ . Potremmo anche scendere al di sotto

di questo valore, ma in questo caso non potremo fare a meno dell’aliasing; se invecevolessimo evitare aliasing, pur scendendo al di sotto dei 30 kHz, dovremmonecessariamente prefiltrare passa-basso il segnale prima di convertire la sua frequenza dicampionamento: il filtraggio dovrà essere ovviamente numerico, in quanto interesserà ilsegnale a frequenza di campionamento fX, e inevitabilmente ci farà perdere parte delcontenuto informativo del segnale.

Di queste considerazioni dobbiamo dunque tener conto nel momento in cui convertiamo lafrequenza di campionamento di x(n). Infatti, il modo più banale di decimare x(n) a passo D è quellodi usare un filtro che riceve in ingresso la sequenza x(n) e si limita a fornire in uscita non tutti icampioni di x(n), ma uno ogni D:

x(n)

y(m) campionamentoa frequenza fX/D

campionamentoa frequenza fX

Modo banale per effettuare una decimazione di un fattore D=4:il segnale da decimare entra in unfiltro che seleziona per l’uscita solo un campione ogni 4

Questo tipo di procedimento non provoca aliasing solo se il segnale x(t) di partenza, e quindianche x(n), soddisfa la condizione vista prima, ossia abbia uno spettro di banda non superiore afX/2D. Per questo motivo, lo schema a blocchi generale per rappresentare una decimazione è ilseguente:

1êêDx(n) y(m)

campionamentoa frequenza fX

campionamentoa frequenza fX/D

h(n)campionamentoa frequenza fX

v(n)

Il filtraggio (digitale) passa-basso elimina dal segnale x(n) di partenza tutte le componentispettrali al di là della frequenza fX/2D (e il duale vale a frequenza negativa)3. Il numero di campioni(cioè quindi il passo di campionamento) in uscita dal filtro è uguale all’ingresso, ma la banda èinferiore all’ingresso. Solo successivamente, è possibile selezionare solamente un campione ogni D.

3 Ci si riferisce, ovviamente, non solo alle eventuali componenti di segnale, ma anche e soprattutto a quelle di rumore

Page 6: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli6

Possiamo anche fare qualche passaggio analitico. In primo luogo, consideriamo il filtro passa-basso. Si tratta ovviamente di un filtro lineare tempo-invariante, la cui funzione di trasferimentoH(ω), trasformata della funzione di risposta all’impulso h(n), è idealmente fatta nel modo seguente:

π

≤ω=ω

altrimenti 0

fD

1)(H X

L’uscita v(n) di questo filtro avrà dunque uno spettro V(ω)=H(ω)X(ω). Nel dominio dei tempi,invece, si tratterà del segnale

∑∞

=

−=0k

)kn(x)k(h)n(v

dove abbiamo evidentemente supposto un filtro causale di lunghezza infinita.Il segnale v(n) va in ingresso al sottocampionatore, il quale seleziona un campione ogni D: ciò

significa che l’uscita y(m) del filtro è semplicemente

∑∞

=

−==0k

)kmD(x)k(h)mD(v)m(y

Nonostante l’operazione di filtraggio di x(n) sia lineare tempo-invariante, l’operazione complessiva di filtraggio esottocampionamento (ossia l’operazione che porta da x(n) ad y(m)),corrisponde ad un sistema lineare tempo-variante, come peraltro già osservato.Ce ne accorgiamo facilmente dalla seguente considerazione: infatti, assunto che x(n) produce y(m),se consideriamo il campione x(n-n0), non è detto che la corrispondente uscita sia y(n-n0), a meno chen0 non sia un multiplo di D. Questo determina appunto la tempo-varianza del sistema.

Cerchiamo ora di comprendere quali siano le caratteristiche spettrali della sequenza di uscitay(m). Partiamo evidentemente dallo spettro di x(n), che abbiamo indicato con X(ω).

Risulta conveniente, per i fare i conti, definire una particolare sequenza )n(v~ nel modo seguente:

±±=

=altrimenti 0

,....D2D,0,n )n(v)n(v~

In pratica, )n(v~ coincide con v(n) solo negli istanti in cui l’uscita del sottocampionatore dovràdare i vari campioni, mentre risulta nulla altrove. Analiticamente, possiamo banalmente interpretare

)n(v~ come il prodotto di v(n) per un pettine di impulsi unitari p(n), avente periodo D, comeillustrato nella figura seguente:

Page 7: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli7

v(n)

p(n)

-6 -5

-4

-3

-2 -1 0

1 2 34 5 6

7 8 n

-6 -3 0 3 n6

Il prodotto termine a termine tra questi due vettori produce un vettore di lunghezza uguale a quella dip(n) e avente i campioni non nulli pari a quelli di v(n) in corrispondenza dei campioni unitari di p(n)

Essendo un segnale periodico, il pettine p(n) è esprimibile in termini di sviluppo di Fourier: si puòverificare che tale sviluppo in serie è

∑−

=

π=

1D

0k

D

nk2j

eD

1)n(p

L’utilità del segnale )n(v~ è evidentemente quella per cui possiamo porre )mD(v~)m(y = .Sostituendo allora l’espressione di )n(v~ , abbiamo quanto segue:

)mD(p)mD(v)mD(v~)m(y ==

Adesso calcoliamo la trasformata zeta della sequenza y(m):

∑∑∑∑+∞

−∞=

−+∞

−∞=

−+∞

−∞=

−+∞

−∞=

− ====m

D

m

m

D

m

m

m

m

m z)m(p)m(vz)m(v~z)mD(v~z)m(y)z(Y

Il penultimo passaggio effettuato deriva semplicemente dal fatto che la sequenza )m(v~ vale peripotesi zero in punti che non siano multipli di D.

Sostituendo adesso lo sviluppo in serie di p(n), abbiamo che

∑ ∑∑ ∑∑ ∑∞+

−∞=

=

−π−∞+

−∞=

=

−π∞+

−∞=

−−

=

π

==

=

m

1D

0k

m

D

1

D

1k2j

m

1D

0k

D

m

D

mk2j

m

D

m1D

0k

D

mk2j

ze)m(vD

1ze)m(v

D

1ze

D

1)m(v)z(Y

Scambiando l’ordine delle sommatorie, otteniamo

∑ ∑−

=

∞+

−∞=

−π−

=

1D

0k m

m

D

1

D

1k2j

ze)m(vD

1)z(Y

Page 8: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli8

In questo modo, la sommatoria più interna viene a rappresentare la trasformata zeta della sequenza

v(m), calcolata però non per z, ma per D

1

D

1k2j

zeπ−

: quindi

∑−

=

π−

=

1D

0k

D

1

D

1k2j

zeVD

1)z(Y

D’altra parte, sappiamo che la sequenza v(m) si ottiene come convoluzione di x(n) e di h(n):questo significa che, nel dominio della trasformata zeta, abbiamo il prodotto delle corrispondentitrasformate X(z) e H(z): possiamo perciò scrivere che

∑−

=

π−π−

=

1D

0k

D

1

D

1k2j

D

1

D

1k2j

zeXzeHD

1)z(Y

A questo punto, sappiamo bene che, per passare dalla trasformata zeta alla trasformata di Fourierdiscreta (DTFT), ci basta semplicemente calcolare Y(z) sul cerchio unitario, ossia per z=ejωT. Perquestioni di comodità, possiamo ragionare, anziché in termini di pulsazione ω, in termini dipulsazione normalizzata Ω. In particolare, dato che la frequenza di campionamento (rate) di y(m) èfY=1/TY, consideriamo la seguente pulsazione normalizzata:

YY

Y fT2f

f2π=

π=Ω

Abbiamo dunque che lo spettro del segnale di uscita è

( ) ( ) ( ) ( )

∑∑−

=

=

π−Ωπ−Ω−

=

Ωπ−Ωπ−

π−Ω

π−Ω

=

=

=

1D

0k

YY

1D

0k

D

1k2j

D

1k2j1D

0k

D

1jD

1k2j

D

1jD

1k2j

Y

D

k2X

D

k2H

D

1

eXeHD

1eeXeeH

D

1)(Y

YYYY

dove ricordiamo che la frequenza di campionamento in uscita è legata a quella in ingresso da unfattore moltiplicativo D:

XXXY

Y Df

f2D

D/f

f2

f

f2Ω=

π=

π=

π=Ω

Se il filtro H(Ω) è progettato adeguatamente, l’aliasing viene eliminato e, conseguentemente,l’unico termine di interesse in quella sommatoria è quello che si ottiene per k=0:

( )XYYY

Y XD

1

DX

D

1

DX

DH

D

1)(Y Ω=

Ω

=

Ω

Ω

Questa relazione vale ovviamente per 0≤|ΩY|≤π.Possiamo vedere graficamente quale sia la situazione. Partiamo dallo spettro del segnale x(n) di

partenza e supponiamo che sia fatto nel modo seguente:

Page 9: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli9

( )XX Ω

π− π+

XX f

f2π=Ω

Questo segnale, prima di essere sottocampionato, va mandato in un filtro anti-aliasing che eliminitutte le componenti spettrali al di là di π/D e al di qua di -π/D. Si tratterà, quindi, di un filtroidealmente fatto nel modo seguente:

XΩπ− π+

( )XH Ω

D

π−

D

π

Il prodotto tra i due spettri X(ΩX) e H(ΩX) rappresenta lo spettro del segnale in ingresso alsottocampionatore. Tale spettro è evidentemente fatto nel modo seguente:

XΩD

π−

D

π

)(V XΩ

Questo spettro subisce l’operazione di sottocampionamento. Se ci riferiamo in ascisse allapulsazione normalizzata ΩY=DΩX, otteniamo che lo spettro del segnale in uscita è il seguente:

π− π+ YΩ

)(Y YΩ

Page 10: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli10

Osservazione: necessità del filtraggio anti-aliasing

E’ evidente una considerazione, peraltro già fatta in precedenza: per i discorsi fattifino ad ora, la necessità di filtrare il segnale prima di campionarederiva solo dalla necessità di evitare fenomeni di aliasing dopo ilsottocampionamento. Se però la banda del segnale da sottocampionare rispetta già i vincoliimposti dal teorema del campionamento, con riferimento ovviamente alla nuova frequenza dicampionamento fY, allora il filtraggio diventa inutile.

Per renderci conto di quanto appena detto, consideriamo un segnale x(t) di banda B, il cui spettrosia fatto nel modo seguente:

f-fC B-B-fC/2 fC/2 fC

E’ evidente che questo segnale può essere campionato a frequenza fC, dato che la sua banda ènettamente inferiore alla frequenza di Nyquist fC/2. Supponiamo allora di effettuare questocampionamento, ottenendo un segnale tempo-discreto x(n) il cui spettro sarà una ripetizioneperiodica, a passo fC, dello spettro appena disegnato:

f-fC B-B-fC/2 fC/2 fC

X(f)

Se volessimo adesso sottocampionare questo segnale, ad esempio di un fattore 2, potremmo farlosenza prima filtrare: infatti, sottocampionare a fC/2 significa sostanzialmente prendere il segnale x(n)e campionarlo a passo fC/2, ossia quindi semplicemente prendere un campione ogni due:

x(n)

y(n) campionamentoa frequenza fC/2

campionamentoa frequenza fC

Essendo una normale operazione di campionamento, in frequenza avremo la periodicizzazione diX(f) a passo fC/2. E’ allora evidente che la ripetizione periodica di X(f), a passo fC/2, non portaaliasing, visto che ciascuna replica spettrale ha banda monolatera inferiore a fC/4 (che è la nuovafrequenza di Nyquist):

Page 11: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli11

f-fC -fC/2 fC/2 fC

Y(f)

fC/4-fC/4

Quindi, riepiloghiamo dicendo che il sottocampionamento brutale di unfattore D (effettuato selezionando un campione ogni D campioni diingresso) di un segnale può essere fatto senza preventivo filtraggiosolo nell’ipotesi in cui la banda B del segnale analogico dipartenza rispettava la condizione B<fC/2D, dove fC/2D è la frequenzadi Nyquist relativa alla nuova frequenza di campionamento fC/D.

Ovviamente, questo discorso si riferisce ad un caso ideale in cui il sottocampionatore riceve iningresso solo il segnale x(n) da sottocampionatore. In un dispositivo reale, invece,avremo sempre del rumore sovrapposto al segnale, per cui non potremomai esimerci dal pre-filtraggio anti-aliasing. In tutti i discorsi cheseguiranno, non terremo mai conto del rumore, ma è bene tener presente che esso è sempre presente.

Esempio con Matlab

Cerchiamo conferma dei discorsi appena fatti tramite una simulazione al calcolatore.Consideriamo, come segnale analogico di partenza, un segnale dato dalla somma di 3 sinusoidi, a

frequenza rispettivamente 10 Hz, 50 Hz e 100 Hz e con ampiezze rispettivamente 1,2 e 3:

( ) ( ) ( )t1002sin3t502sin2t102sin)t(x ⋅⋅π+⋅⋅π+⋅⋅π=

Scegliendo una frequenza di campionamento di 1 kHz (fX), cui corrisponde un periodo dicampionamento di 1 msec, otteniamo il seguente segnale campionato (ottenuto semplicementeponendo t=nT):

( ) ( ) ( )001.0n1002sin3001.0n502sin2001.0n102sin)n(x ⋅⋅⋅π+⋅⋅⋅π+⋅⋅⋅π=

Dovendo lavorare sul computer, dobbiamo limitare il campionamento ad un intervallo di tempofinito: supponiamo per esempio di considerare N=100 campioni, per cui la durata dell’osservazione èNT=0.1 sec:

( ) ( ) ( ) 99n0 001.0n1002sin3001.0n502sin2001.0n102sin)n(x ≤≤⋅⋅⋅π+⋅⋅⋅π+⋅⋅⋅π=

La sequenza di campioni determinata dal programma è la seguente (lunghezza 100):

Page 12: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli12

Calcolando la DFT di questa sequenza e riarrangiando il vettore fornito dal programma, in mododa avere le frequenze negative prima di quelle positive4, si ottiene il seguente vettore rappresentativodel campionamento in frequenza dello spettro X(f) del segnale di partenza:

L’asse delle ascisse riporta le frequenze normalizzate alla frequenza di campionamento, che inquesto caso è 1000 Hz. I due estremi dell’asse orizzontali corrispondono perciò alle frequenze ±fC/2.

Lo spettro risulta impulsivo in quanto le sinusoidi scelte sono a frequenze multiple dei punti in cuila DFT viene calcolata, per cui gli unici campioni (in frequenza) non nulli sono quelli corrispondentia 10 Hz, 50 Hz e 100 Hz.

Vogliamo adesso effettuare su questo segnale un sottocampionamento di un fattore 2. Prima difarlo, però, dobbiamo verificare se possiamo agire direttamente sulla sequenza x(n), prendendo uncampione ogni due, oppure dobbiamo preventivamente filtrare. La banda del segnale x(t) di partenzaè 100 Hz, dato che 100 Hz è la massima componente sinusoidale presente; abbiamo effettuato ilcampionamento a 1000 Hz, ossia con una frequenza di Nyquist pari a 500 Hz; se sottocampioniamodi un fattore 2, la nuova frequenza di Nyquist è 250 Hz ed è ancora maggiore della banda delsegnale: questo ci dice che possiamo effettuare la decimazione senza alcun filtraggio selettivo.

4 Si tengano presente le proprietà di simmetria della DFT

Page 13: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli13

Effettuando allora la decimazione, otteniamo la sequenza y(n), di lunghezza 50, riportata nellafigura seguente:

Confrontandola con x(n), si nota che effettivamente mancano i campioni intermedi (cioè quelli inposizione 1,3,5,7,.....e così via).

Andiamo allora ad indagare circa lo spettro di y(n). Calcoliamo anche qui la DFT, che adesso nonsarà più basata su 100 punti come nel caso precedente, ma su 50 punti: usando, infatti, la sempliceistruzione FFT(y), il Matlab calcola la DFT su un numero di punti pari alla lunghezza del vettore iningresso e tale lunghezza è 50 nel caso di y(n) mentre era 100 per x(n).

Diagrammando il vettore ottenuto, si ottiene (per il modulo) quanto segue:

Anche qui, l’asse delle ascisse riporta le frequenze normalizzate alla frequenza di campionamento,che però in questo caso è diversa rispetto a prima (1000 Hz), in quanto vale adesso 500 Hz. Questospiega l’apparente allargamento dello spettro. In realtà, lo spettro ottenuto è identico a quelloottenuto prima, a conferma che il sottocampionamento non ha avuto alcuna conseguenza deleteria sulcontenuto informativo del segnale.

Page 14: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli14

Da notare anche il fattore di scala ½ tra questo spettro e quello precedente. Anche questo era unrisultato atteso, in quanto abbiamo verificato prima analiticamente che il legame tra spettro delsegnale di partenza e spettro del segnale sottocampionato è

( )XY

Y XD

1

DX

D

1)(Y Ω=

Ω

dove, nel nostro caso, è D=2.

INTERPOLAZIONE DI UN FATTORE INTERO IUn aumento della frequenza di campionamento di un fattore I

consiste semplicemente nell’interpolare I-1 nuovi campioni traciascuna coppia di campioni successivi del segnale in ingresso. Cisono vari modi di ottenere questa interpolazione. In questa sede consideriamo un metodo, peraltrogià incontrato e discusso in precedenza, che preserva l’andamento spettrale del segnale x(n) dipartenza.

Sia dunque x(n) il segnale in ingresso al dispositivo che chiamiamo sovracampionatore (ointerpolatore):

1ééIx(n) y(m)

campionamentoa frequenza fX

campionamentoa frequenza IfX

Indichiamo con v(m) un segnale, a frequenza di campionamento fY=IfX, ottenuto da x(n)semplicemente aggiungendo I-1 zeri equispaziati tra ciascuna coppia di campioni successivi. Adesempio, se I=3, procediamo nel modo seguente:

x(n)n

v(n)n

Analiticamente, per I generico, possiamo esprimere v(m) nel modo seguente:

±±=

=altrimenti 0

I,...2I,0,m )I/m((x)m(v

Page 15: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli15

Questo segnale ha dunque una frequenza di campionamento pari aquella del segnale y(m) che intendiamo ottenere, ma non è ancoray(m).

Calcoliamo la trasformata zeta di v(m): applicando la definizione, abbiamo che

( ) )z(Xz)m(xz)m(xz)m(v)z(V I

m

mI

m

mI

m

m ==== ∑∑∑+∞

−∞=

−+∞

−∞=

−+∞

−∞=

Lo spettro corrispondente a questa trasformata, cioè lo spettro di v(m), si ottiene calcolando V(z)sul cerchio unitario: usando ancora le pulsazioni normalizzate e ponendo perciò

II

1

f

f2

If

f2

f

f2 X

XXYY

Ω=

π=

π=

π=Ω

otteniamo che lo spettro di v(m) è)I(X)(V yy Ω=Ω

Ancora una volta è utile considerare graficamente quello che accade, ossia sostanzialmente ilsignificato della relazione )I(X)(V yy Ω=Ω :

( )XX Ω

π− π+

XX f

f2π=Ω

If

f2 X

YY

Ω=

π=Ω

YΩI

π+

I

π−

I

3π−

I

3π+

I

5π+

)(V YΩ

Come si nota (con riferimento ai soli moduli degli spettri), l’incremento della frequenza dicampionamento, ottenuto con l’inserimento di I-1 zeri tra i campioni successivi di x(n), produce unsegnale v(m) il cui spettro V(ΩY) è una ripetizione periodica, a passo 2π/I, dello spettro X(ΩX) delsegnale di partenza.

Page 16: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli16

Ora, dato che solo le componenti spettrali di x(n) nell’intervallo 0≤ΩY≤π/I sono uniche, lerepliche di X(Ω) oltre ΩY=π/I possono essere eliminate mandando la sequenza v(m) in un filtropassa-basso la cui funzione di trasferimento HI(ΩY) avrà idealmente le seguenti caratteristiche:

π

≤Ω≤=Ω

altrimenti 0I

0 C)(H Y

YI

dove C è una costante di normalizzazione che tra un attimo potremo determinare e ci serve anormalizzare la sequenza finale y(m).

Quest’ultima avrà uno spettro dato dal prodotto di V(ΩY) con la funzione di trasferimento delfiltro appena descritto:

π

≤Ω≤Ω⋅=ΩΩ=ΩΩ=Ω

altrimenti 0I

0 )I(XC)I(X)(H)(V)(H)(Y YY

YYIYYIY

Siamo ora in grado di scegliere il fattore di scala C, imponendo che l’uscita y(m) onori l’ingressox(m), ossia che le sequenze y(m) ed x(m) abbiano gli stessi valori in corrispondenza degli istanti incui x(m) presenta i propri campioni5. Analiticamente, la condizione da imporre è quindi

I,....3I,2I,0,mper I

mx)m(y ±±±=

=

Ricaviamo allora y(m) come antitrasformata di Y(ΩY); al fine di semplificarci i calcoli, ciconviene imporre l’uguaglianza di cui sopra per m=0, in modo da semplificare l’espressionedell’antitrasformata:

∫∫π+

π−

π+

π−

ΩΩπ

=ΩΩπ

=I/

I/

YYYY d)I(X2

Cd)(Y

2

1)0(y

Dato che I

XY

Ω=Ω , possiamo fare un cambio di variabile, in modo da ottenere

)0(xI

Cd)(X

2

1

I

Cd)(X

I

1

2

C)0(y XXXX =

ΩΩ

π=ΩΩ

π= ∫∫

π+

π−

π+

π−

Questa relazione ci dice evidentemente che dobbiamo porre C=I.Per concludere, ricordiamo che la sequenza di uscita y(m) può essere espressa, nel dominio del

tempo, come convoluzione della sequenza v(n) con la funzione di risposta all’impulso h(n) del filtropassa-basso:

∑∑+∞

−∞=

+∞

−∞=

−=−=kk

)km(h)k(v)km(v)k(h)m(y

5 Si tenga infatti presente che stiamo effettuando una interpolazione, per cui l’uscita dovrà conservare i valori dell’ingresso negli

istanti in cui questo è definito e, a tali valori, dovrà aggiungere quelli dovuti appunto all’interpolazione.

Page 17: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli17

Dato, però, che v(k)=0 tranne che nei multipli di I, ossia v(kI)≠0, e dato anche che v(kI)=x(k) perquanto detto prima, abbiamo che

∑+∞

−∞=

−=k

)k(x)kIm(h)m(y

Questa relazione definisce le caratteristiche dell’unico blocco che ci permette di passaredirettamente da x(n) ad y(n): si tratta di un blocco lineare tempo-variante.

In conclusione, ribadiamo che lo schema funzionale completo per ottenere unaumento della frequenza di campionamento di un segnale prevede unfiltro passa-basso a valle dell’interpolatore vero e proprio (intesocome quel dispositivo che aggiunge campioni nulli, in modoopportuno, tra ciascuna coppia di campioni consecutividell’ingresso):

1ééIx(n)

v(m)campionamentoa frequenza fX campionamento

a frequenza IfX

y(m)

campionamentoa frequenza IfX

h(n)

Esempio con Matlab

Facciamo anche in questo caso una simulazione al calcolatore, con Matlab, per supportare idiscorsi appena fatti. In particolare, ci riagganciamo allo stesso esempio fatto in precedenza per ilsottocampionamento.

Consideriamo dunque un segnale analogico di partenza dato dalla somma di 3 sinusoidi, afrequenza rispettivamente 10 Hz, 50 Hz e 100 Hz e con ampiezze rispettivamente 1,2 e 3:

( ) ( ) ( )t1002sin3t502sin2t102sin)t(x ⋅⋅π+⋅⋅π+⋅⋅π=

Scegliendo una frequenza di campionamento di 1 kHz (fX), cui corrisponde un periodo dicampionamento di 1 msec, otteniamo il seguente segnale campionato (ottenuto semplicementeponendo t=nT), supposto di lunghezza N=100 (durata dell’osservazione = NT = 0.1 sec):

( ) ( ) ( ) 99n0 001.0n1002sin3001.0n502sin2001.0n102sin)n(x ≤≤⋅⋅⋅π+⋅⋅⋅π+⋅⋅⋅π=

La sequenza di campioni determinata dal programma è la seguente (lunghezza 100):

Page 18: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli18

Calcolando la DFT di questa sequenza e riarrangiando il vettore fornito dal programma, in mododa avere le frequenze negative prima di quelle positive, si ottiene il seguente vettore rappresentativodel campionamento in frequenza dello spettro X(f) del segnale di partenza:

L’asse delle ascisse riporta le frequenze normalizzate alla frequenza di campionamento, che inquesto caso è 1000 Hz.

Lo spettro risulta impulsivo in quanto le sinusoidi scelte sono a frequenze multiple dei punti in cuila DFT viene calcolata, per cui gli unici campioni (in frequenza) non nulli sono quelli corrispondentia 10 Hz, 50 Hz e 100 Hz.

Vogliamo adesso effettuare su questo segnale un sovracampionamento di un fattore 2. Lootteniamo inserendo un campione nullo tra ogni coppia di campioni adiacenti del segnale x(n) dipartenza.

La sequenza v(n), di lunghezza 200, che così si ottiene è riportata nella figura seguente:

Page 19: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli19

Confrontandola con x(n), si nota immediatamente l’aggiunta dei campioni nulli intermedi (chesono adesso quelli in posizione 1,3,5,7,.....e così via).

Andiamo allora ad indagare circa lo spettro di v(n) (ricordando che non si tratta ancora dellasequenza y(n) cui vogliamo arrivare). Calcoliamo anche qui la DFT, che adesso non sarà più basatasu 100 punti come nel caso precedente, ma su 200 punti, dato che 200 è la lunghezza del vettore v(n)su cui la DFT viene calcolata (istruzione FFT(v)).

Diagrammando il vettore ottenuto, si ottiene (per il modulo) quanto segue:

Anche qui, l’asse delle ascisse riporta le frequenze normalizzate alla frequenza di campionamento,che però in questo caso è diversa rispetto a prima (1000 Hz), in quanto vale adesso 2000 Hz. Questospiega l’apparente restringimento dello spettro ed è un risultato che ci aspettavamo, in quantodobbiamo ricordare quanto verificato prima analiticamente, ossia che il legame tra spettro delsegnale di partenza e spettro del segnale sovracampionato è

)I(X)(V yy Ω=Ω

Da notare anche che, al contrario di quanto ottenuto nell’esempio sul sottocampionamento, inquesto caso non ci sono fattori di scala tra i due spettri, come del resto evidenziato dai diagrammi.

Page 20: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli20

A questo punto, non abbiamo ancora finito. Infatti, sappiamo che, per ottenere la sequenza y(n) diinteresse, dobbiamo filtrare passa-basso la sequenza v(n), in modo da eliminare le repliche spettraliindesiderate. La presenza di tali repliche è ben evidenziata proprio nell’ultima figura: in tal figura,infatti, le due frequenze estreme sono, in pratica, ±1000 Hz e a cavallo di queste frequenzecompaiono due repliche dello spettro del segnale; tali repliche vanno eliminate e lo si può farebanalmente con un filtraggio digitale, ossia azzerando brutalmente i campioni (questo discorso èstato già illustrato in un precedente capitolo, tramite altre simulazioni con Matlab, per cui non loripetiamo).

CONVERSIONE DI FREQUENZA DI CAMPIONAMENTO DI UN FATTORE I/DAbbiamo esaminato, nei due precedenti paragrafi, due casi particolari di conversione di frequenza

di campionamento, ossia la decimazione (sottocampionamento) di un fattore D e l’interpolazione(sovracampionamento) di un fattore I. Adesso consideriamo il caso generale in cui vogliamo che ilrapporto tra nuova e vecchia frequenza di campionamento sia un numero frazionale generico:

D

I

T

T

f

f

Y

X

X

Y ==

h(n,m)Sistema linearetempo-variante

x(n) y(m)

campionamentoa frequenza fX

campionamentoa frequenza fY

In modo molto elementare, possiamo ottenere questa conversione di frequenza di campionamentomettendo in cascata una interpolazione di un fattore I ed una decimazione di un fattore D:

1ééIx(n) y(m)

campionamentoa frequenza fX

campionamentoa frequenza IfX

1êêDcampionamentoa frequenza IfX/D

E’ importante sottolineare che l’interpolazione va effettuata prima delladecimazione, se si vuole preservare le caratteristiche spettrali delsegnale di partenza.

Inoltre, per quanto visto nei precedenti paragrafi, l’operazione di interpolazione è effettuata da uninterpolatore in cascata ad un filtro passa-basso hu(n), così come la decimazione viene effettuata daun decimatore prima del quale va necessariamente posto un filtro passa-basso hd(n):

Page 21: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli21

1ééIx(n) y(m)

campionamentoa frequenza fX

Frequenza dicampionamento: IfX

1êêDcampionamentoa frequenza IfX/D

hu(n) hu(n)

Come evidenziato in figura, i due filtri lavorano alla stessa frequenza di campionamento IfX, percui possono essere combinati in un unico filtro passa-basso di risposta all’impulso h(n) dadeterminare:

1ééIx(n) y(m)

campionamentoa frequenza fX

1êêDcampionamentoa frequenza IfX/D

h(n)v(k) w(k)

Le due sequenze indicate in figura con v(k) e w(k) hanno entrambe frequenza di campionamentoIfX, I volte più grande dell’ingresso e D volte più grande dell’uscita.

In base a quello che abbiamo visto nel caso della decimazione e della interpolazione, possiamofacilmente capire come deve essere fatta la funzione di trasferimento H(ΩY) del filtro: sarà ilprodotto delle funzioni di trasferimento dei filtri HD(ΩY) e HI(ΩY) visti in quei casi. Riprendiamoallora le espressioni delle due funzioni di trasferimento trovate in quei casi:

π

≤Ω=Ω

altrimenti 0D

1)(H Y

YD

π

≤Ω=Ω

altrimenti 0I

I)(H Y

YI

La variabile ΩY, in quei contesti, era la pulsazione ω=2πf normalizzata al valore della frequenzadi campionamento del segnale in uscita dal filtro stesso:

II

1

f

f2

If

f2

f

f2ioneinteroplaz

Df

f2D

D/f

f2

f

f2edecimazion

X

XXYY

XXXY

Y

Ω=

π=

π=

π=Ω→

Ω=π

=Ω→

In questo caso, il segnale in uscita dal filtro è w(k), avente la stessa frequenza di campionamentodi v(k), ossia IfX. Deduciamo che la pulsazione normalizzata da considerare in questo caso è quellarelativa alla interpolazione, ossia

II

1

f

f2

If

f2

f

f2 X

XXVV

Ω=

π=

π=

π=Ω

Page 22: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli22

Eseguendo dunque il prodotto di HD(ΩY) e HI(ΩY) e considerando ΩV al posto della generica ΩY,otteniamo facilmente il seguente risultato:

ππ

≤Ω=Ω⋅Ω=Ω

altrimenti 0

D,

Imin I

)(H)(H)(H VVIVDV

Passiamo adesso ad una analisi nel tempo, tramite la quale arrivare ad una espressione dellasequenza di uscita in funzione della sequenza di ingresso. Si tratta sostanzialmente di mettereinsieme (in cascata) i risultati visti per l’interpolazione e per la decimazione.

Andiamo allora a trovare le espressioni delle varie sequenze tempo-discrete nell’ordine con cuivengono ottenute.

La sequenza v(k) è l’uscita dell’interpolatore, al cui ingresso arriva x(n): abbiamo allora visto, nelparagrafo dell’interpolazione, che tale sequenza può essere espressa nella forma

±±=

=altrimenti 0

I,...2I,0,k )I/k((x)k(v

Questa sequenza va in ingresso al filtro lineare tempo-invariante con risposta all’impulso h(n); lacorrispondente uscita sarà allora

∑∑+∞

−∞=

+∞

−∞=

−=−=ii

)in(h)i(v)in(v)i(h)k(w

dove, nell’ultimo passaggio, abbiamo sfruttato (per questioni di comodità) la nota proprietàcommutativa del prodotto di convoluzione.

La sequenza w(k) va poi in ingresso al sottocampionatore, del quale sappiamo già calcolarel’uscita: basta infatti porre y(m)=w(mD), ossia

∑+∞

−∞=

−==i

)iImD(h)i(x)mD(w)m(y

Questa espressione non aiuta ancora a chiarire che il tutto si traduce, come detto già inprecedenza, nell’uso di un unico filtro lineare tempo-variante. Per evidenziare questo, risultaconveniente effettuare un particolare cambio di variabile in quella sommatoria: ponendo infatti

nI

mDi −

= (dove la notazione r indica il maggiore intero contenuto in r) e riferendo la

sommatoria all’indice n, si ottiene

∑−∞

+∞=

−=

n

nI

mDImDhn

I

mDx)m(y

Page 23: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli23

A questo punto, si nota che il termine II

mDmD

− è semplicemente il modulo della divisione

mD/I: indicando allora tale modulo con (mD)I, scriviamo in forma più compatta che

( )∑+∞

∞−

−⋅+= n

I

mDx)mD(nIh)m(y I

Questa è la relazione che ci interessava, in quanto mostra che y(m) è ottenuta mandando x(n) iningresso ad un filtro lineare tempo-variante la cui risposta all’impulso è

( ) +∞<<∞+= nm,- )mD(nIh)m,n(g I

e dove invece h(n) è la risposta all’impulso di un filtro lineare tempo-invariante passa-basso chelavora alla frequenza IfX.

Si può anche osservare facilmente che g(n,m) è una funzione periodica, nella variabile m, diperiodo I: basta infatti osservare che

( )( ) ( ) )m,n(g)mD(nIh)DkIm(nIh)kIm,n(g II =+=++=+

Questo vale dunque per l’analisi nel tempo. Procedimento assolutamente analogo possiamoseguire nel dominio della frequenza, nel senso che possiamo anche qui combinare i risultati ottenutiper l’interpolazione e per la decimazione.

In primo luogo, sappiamo che lo spettro del segnale v(k) all’uscita dall’interpolatore è legato allospettro del segnale x(n) all’ingresso dell’interpolatore dalla semplice relazione

)I(X)(V yy Ω=Ω

Questo segnale v(k) va in ingresso al filtro (lineare tempo-invariante) con funzione ditrasferimento H(ΩV) prima calcolata, per cui lo spettro dell’uscita w(k) è

ππ

≤ΩΩ⋅=ΩΩ=ΩΩ=Ω

altrimenti 0

D,

Imin )I(XI

)I(X)(H)(V)(H)(W VVVVVVV

Infine, il segnale w(k) va in ingresso al decimatore (di un fattore D), per cui lo spettro dell’uscitaè una ripetizione periodica, a passo fV/D, ossia IfX/D, dello spettro in ingresso: sfruttando ancora unavolta i passaggi visti nel paragrafo sulla decimazione, possiamo scrivere che

( ) VY

1D

0k

Y1D

0k

Y1D

0k

YY D dove

D

k2X

D

I

D

k2IX

D

1

D

k2W

D

1Y Ω=Ω

π−Ω

=

π−Ω

=

π−Ω

=Ω ∑∑∑−

=

=

=

Infine, se il filtro H(ΩV) è progettato in modo da evitare aliasing, come noi stiamo effettivamentesupponendo, allora lo spettro dato dall’ultima relazione scritta risulta essere il seguente:

Page 24: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Appunti di “Elaborazione numerica dei segnali” - Capitolo 8

Autore: Sandro Petrizzelli24

ππ≤Ω

Ω

=Ωaltrimenti 0

I

D,min

DX

D

I)(Y Y

Y

V

I discorsi appena terminati ci danno dunque una idea di come effettuare la conversione dellafrequenza di campionamento di un segnale. L’unica questione che resta insoluta riguarda il modo concui realizzare praticamente il filtro lineare tempo-invariante H(ΩV) che dobbiamo interporre trainterpolatore e decimatore. Di questo aspetto ci occuperemo in seguito. Tuttavia, è ovvio che, ingenerale, il progetto del filtro (FIR) può essere realizzato tramite uno qualsiasi dei metodi di progettovisti in precedenza. Per esempio, si potrebbe utilizzare l’algoritmo di Remez, una volta fissate(ovviamente) le specifiche cui la funzione di trasferimento del filtro deve soddisfare6.

Una volta individuato il filtro, ci si può porre un ulteriore problema, ossia quello di implementarela struttura complessiva nel modo più efficiente possibile. Di questo aspetto ci occuperemo inseguito, in particolare quando introdurremo i cosiddetti filtri polifase.

IMPLEMENTAZIONE MULTISTADIO PER LA CONVERSIONE DI FREQUENZA DI

CAMPIONAMENTO

Nelle applicazioni pratiche in cui è richiesta una conversione di frequenza di campionamento,spesso si incontrano fattori di decimazione (D) e di interpolazione (I) molto maggiori dell’unità. Peresempio, supponiamo di dover variare la frequenza di campionamento fX di un dato segnale di unfattore I/D=130/63. Nonostante, a livello teorico, questa variazione possa essere fatta in modo banalecon le tecniche viste prima (cioè una interpolazione di un fattore I=130 seguita da una decimazionedi un fattore D=63), la struttura da implementare diventa abbastanza grossa e quindi poco efficiente.

In casi come questo, è più sensato ottenere la conversione della frequenza di campionamento inpiù stadi. Per comprendere questo, supponiamo un processo di semplice interpolazione di un fattoreI>>1. Supponiamo, in particolare, che il valore di I possa essere fattorizzato nel prodotto di un certonumero L di fattori interi positivi:

∏=

=L

1iiII

Se accade questo, possiamo implementare l’interpolatore come una cascata di L stadi diinterpolazione e filtraggio, come indicato nella figura seguente:

1ééI1x(n) y(m)

campionamentoa frequenza fX

IfX

h1(n)

stadio 1

1ééI2 h2(n)

stadio 2

1ééIL hL(n)

stadio L

I1fX I1I2fX

Da notare che, con una implementazione di questo tipo, il filtraggio non si può effettuare alla fine,ma va effettuato a valle di ciascuna interpolazione.

6 Si può vedere, in proposito, l’esempio 10.5.3 a pag. 803 del Proakis.

Page 25: Elaborazione numerica dei segnali - users.libero.itusers.libero.it/sandry/download/DSPdownload/DSP_08a.pdf · campionamento può essere scelta in modo del tutto arbitrario (a patto

Sistemi multirate (parte I)

Autore: Sandro Petrizzelli25

Un discorso assolutamente analogo si può fare per un processo di decimazione. Supponiamo che ilvalore di D possa essere fattorizzato nel prodotto di un certo numero J di fattori interi positivi:

∏=

=J

1iiDD

Sotto questa ipotesi, possiamo implementare il decimatore come cascata di J stadi di filtraggio edecimazione, come indicato nella figura seguente:

h1(n)x(n) y(m)

campionamentoa frequenza fX

fX/D

1êêD1

stadio 1

h2(n) 1êêD2

stadio 2

hL(n) 1êêDL

stadio L

fX/D1 fX/D1D2

Con questa implementazione, che ancora una volta richiede il filtraggio passa-basso a monte diciascuna decimazione, si ha che la frequenza di campionamento, all’uscita del generico stadio i-simo, è Di volte più piccola di quella dello stadio precedente:

J1,2,....,i D

ff

i

1i,Xi,X == −

Ovviamente, se consideriamo questa simbologia, dobbiamo porre fX,0=fX.

Autore: SANDRO PETRIZZELLIe-mail: [email protected]

sito personale: http://users.iol.it/sandrysuccursale: http://digilander.iol.it/sandry1