Sei sulla pagina 1di 25

Appunti di

Elaborazione numerica dei segnali


Capitolo 4 - Progetto di filtri FIR (I)
Introduzione ............................................................................................... 1
Caratteristiche dei filtri selettivi reali ......................................................... 3
Metodo delle finestre.................................................................................. 4
Dettagli analitici................................................................................. 10
Uso di particolari finestre................................................................... 12
Conclusioni sul metodo delle finestre.................................................. 22
Esempio concreto................................................................................ 22

INTRODUZIONE
Il primo aspetto di cui ci occupiamo, per quanto riguarda la progettazione di filtri numerici,
il modo con cui vanno specificate le caratteristiche del filtro da implementare.
In primo luogo, dato che stiamo considerando filtri numerici, dobbiamo tener presente 2
caratteristiche fondamentali:
la funzione di risposta allimpulso, che caratterizza il filtro nel dominio del tempo, una
sequenza (finita o infinita) di campioni: la indichiamo, come al solito, con h(n), sottintendendo
che il periodo di campionamento, cio la distanza tra un campione ed il successivo, T=1/fC
(fC la frequenza di campionamento);
la funzione di trasferimento, che caratterizza il filtro nel dominio della frequenza e che
indichiamo con H(f), la trasformata di Fourier di h(n): essendo questultima una sequenza di
campioni, H(f) sar una funzione periodica, con periodo fC; questo significa che essa si ripete
identicamente ogni intervallo di ampiezza fC, per cui sufficiente conoscere il suo andamento
(in termini di modulo e fase), solo allinterno di un periodo; il periodo che si sceglie il
cosiddetto periodo fondamentale (o periodo non ambiguo), che va da -fC/2 a +fC/2.
Premesso questo, supponiamo di avere un segnale x(n) campionato a frequenza fC, il cui spettro,
quindi, ancora una volta, periodico di periodo fC:
X(f)

-2fC

-fC

-B

fC

2fC

f (Hz)

Appunti di Elaborazione numerica dei segnali - Capitolo 4

Supponiamo di aver rispettato il teorema del campionamento, per cui non abbiamo problemi di
aliasing. Supponiamo che lo spettro X(f) sia inoltre una funzione pari (come in figura), per cui ci
basta far riferimento solo alle frequenze positive1.
Supponiamo allora di voler isolare, con riferimento al periodo fondamentale ed estendendo poi il
discorso a ciascun periodo, tutte e sole le componenti del segnale fino alla frequenza fC/8, ad
esempio perch prevediamo di effettuare un sottocampionamento del segnale di un fattore 4.
Dobbiamo usare un filtro numerico, il quale dovrebbe idealmente lasciar passare immutate le
componenti spettrali fino ad fC/8 ed azzerare tutte le altre2. Questo filtro esiste solo a livello teorico:
si tratterebbe del filtro passa-basso ideale, con funzione di trasferimento rettangolare e
corrispondente funzione di risposta allimpulso del tipo sin(t)/t, di durata infinita:

-fC/8

fC/8

f (Hz)

Funzione di trasferimento del filtro di ricostruzione ideale, con frequenza di taglio fC/8, la cui
corrispondente funzione di risposta allimpulso nella classica forma sin(t)/t, con gli zeri in 4/fC e
multipli

Nella realt, ci accontentiamo di attenuare i termini spettrali oltre fC/8 al di sotto di una soglia
minima, oltre la quale il segnale sostanzialmente si confonde col rumore (sempre presente).
Queste considerazioni suggeriscono quindi di definire le caratteristiche di un filtro mediante una
cosiddetta maschera, del tipo illustrato nella prossima figura, nella quale vengono evidenziate le
zone proibite per la funzione di trasferimento H(f) che si vuole ottenere:

banda
passante

banda di
transizione

banda
arrestata

f (Hz)

Classica maschera per un filtro passa-basso.

Ricordiamo due note propriet della trasformata di Fourier: se il segnale x(n) reale, la sua trasformata X(f) gode della propriet
di simmetria hilbertiana, il che significa che la parte reale di X(f) una funzione pari, mentre la parte immaginaria una
funzione dispari; se il segnale x(n), oltre ad essere reale, anche pari, allora la parte immaginaria di X(f) nulla, il che significa
che X(f) una funzione reale e pari.

Ribadiamo che in questo e nei prossimi discorsi si fa sempre riferimento a quello che si intende fare nel periodo fondamentale,
perch poi le stesse procedure si applicano identicamente agli altri periodi.

Autore: Sandro Petrizzelli

Progetto di filtri FIR (parte I)

Le zone pi scure sono quelle proibite, nelle quali non deve essere presente la funzione di
trasferimento del filtro desiderato. Lintervallo di frequenza che corrisponde alla banda di
transizione consente un raccordo (che non potr mai essere brusco, ma solo graduale) tra la banda
passante e la banda arrestata.
E chiaro che la banda di transizione deve essere posta a cavallo della
frequenza di taglio desiderata, che nel caso considerato prima era fC/8.
Una volta fissata la maschera da rispettare, accettabile qualsiasi procedura che consenta il
progetto di un filtro soddisfacente i requisiti imposti. I metodi di cui si occuperemo noi sono due e
precisamente il metodo delle finestre ed il metodo del campionamento in frequenza.

CARATTERISTICHE DEI FILTRI SELETTIVI REALI


Come ben sappiamo, i filtri ideali sono filtri non causali e quindi,
come tali, sono fisicamente irrealizzabili per applicazioni di
elaborazione in tempo reale. Si pu viceversa verificare che i filtri causali, la cui
risposta allimpulso h(n) sia rigorosamente nulla prima dellistante n=0, hanno una funzione di
trasferimento H() che non pu valere zero tranne che in un insieme finito di frequenze nella banda
di interesse. In aggiunta a questo, la funzione di trasferimento H() di un filtro reale non pu avere
una transizione netta da un valore non nullo (ad esempio unitario) al valore nullo, ossia una
transizione perfettamente verticale dalla banda passante alla banda arrestata.
Daltra parte, nonostante le caratteristiche della H() di un filtro ideale siano comunque
desiderabili, in realt esse non sono assolutamente necessarie nella maggior parte delle applicazioni.
Di conseguenza, se alleggeriamo queste condizioni, possiamo realizzare filtri causali che
approssimano i filtri ideali quanto pi ci fa comodo.
In particolare, non necessario insistere sul fatto che il modulo di H() sia costante nellintera
banda passante del filtro; al contrario, un minimo ripple in banda passante, come illustrato nella
prossima figura, generalmente tollerabile:

Caratteristiche del modulo della funzione di trasferimento H() di un filtro fisicamente realizzabile. Si
notano immediatamente le oscillazioni in banda passante, dove la funzione varia (quasi sinusoidalmente)
in un intervallo di ampiezza 21, e le oscillazioni in banda arrestata, dove la funzione varia (quasi come il
modulo di un Seno) in un intervallo di ampiezza 2>1

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

Cos come tollerabile un ripple in banda passante, anche tollerabile un ripple in banda
arrestata, nella quale perci si pu generalmente rinunciare ad avere un modulo di H()
identicamente nullo o comunque costante e molto piccolo.
La banda di transizione quellintervallo di frequenza, compreso tra le pulsazioni P ed S (dette
band-edge frequency, cio frequenze delimitatrici di banda), in cui avviene appunto la transizione
dalla banda passante a quella arrestata.
Se c un ripple in banda passante, il suo valore generalmente indicato con 1 e il modulo di
H() varia tra i due limiti 11. Analogamente, il ripple in banda arrestata indicato usualmente con
2 .
In ogni problema di progettazione di un filtro, dobbiamo specificare le seguenti caratteristiche del
filtro stesso, che definiscono la cosiddetta maschera:
il massimo ripple tollerabile in banda passante;
il massimo ripple tollerabile in banda arrestata;
le frequenze delimitatrici P ed S della banda di transizione.
Sulla base di queste specifiche, dobbiamo determinare i parametri del filtro che meglio
approssimano le caratteristiche richieste.
Il grado con cui H() approssima le caratteristiche richieste
dipende
sia
dal
criterio
usato
per
la
determinazione
dei
coefficienti del filtro sia dal numero di coefficienti.

METODO DELLE FINESTRE


Il metodo delle finestre ha come punto di partenza quello di scegliere una funzione prototipo
come funzione di trasferimento del filtro. Possiamo allora scegliere, come funzione prototipo, quella
del filtro passa-basso ideale, vale a dire un rettangolo:

f (Hz)
Funzione di trasferimento del filtro passa-basso ideale, la cui corrispondente funzione di risposta
allimpulso nella classica forma sin(t)/t.

Sappiamo che la corrispondente funzione di risposta allimpulso un sin(t)/t, ovviamente


campionato a passo T=1/fC:

Autore: Sandro Petrizzelli

Progetto di filtri FIR (parte I)

Funzione di risposta allimpulso del filtro passa-basso ideale: un sin(t)/t, campionato, di durata
infinita

Il nostro problema che non possiamo considerare infiniti campioni (filtro IIR), ma dobbiamo
necessariamente troncare (per ottenere un filtro FIR), ossia troncare il sin(t)/t. Questo troncamento
corrisponde semplicemente a moltiplicare il sin(t)/t con una finestra rettangolare di durata
preassegnata: se vogliamo N campioni, dovremo considerare una finestra di durata NT:

Finestratura (nel tempo) di un segnale del tipo sin(t)/t tramite un rettangolo di durata NT: dato che i
campioni del sin(t)/t sono a distanza T, la finestratura produce solo N campioni della risposta allimpulso

Loperazione di finestratura nel tempo della risposta allimpulso corrisponde notoriamente alla
convoluzione, in frequenza, tra il rettangolo passa-basso ideale e la trasformata del rettangolo di
finestratura, che a sua volta un sin(f)/f. Come noto, questa convoluzione produce uno spettro che
corrisponde al rettangolo ideale di partenza, cui si aggiungono per delle oscillazioni sia in banda
passante, sia in banda di transizione sia in banda arrestata:

Funzione di trasferimento (con riferimento solo al periodo non ambiguo) del filtro ottenuto finestrando
la risposta allimpulso del filtro passa-basso ideale tramite una finestra rettangolare

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

E ovvio che il risultato della convoluzione simmetrico rispetto allorigine delle frequenze.
Il campionamento produce la nota periodicizzazione di quello spettro, per cui la funzione di
trasferimento che di fatto stiamo implementando ha la seguente struttura:

Le oscillazioni che si producono a seguito del troncamento prendono il nome di oscillazioni di


Gibbs.

Facciamo un po' di conti per inquadrare la situazione a livello analitico.


Loperazione di considerare solo un numero finito di campioni di h(n) pu essere interpretata in due
modi, perfettamente equivalenti:
data h(t), la finestriamo, cio ne consideriamo landamento entro un dato intervallo di tempo di durata
finita, e poi la campioniamo;
il secondo modo invece quello di campionare prima h(t) e poi di selezionare un numero finito di
campioni.
Mentre a livello teorico del tutto equivalente scegliere luna o laltra strada, a livello analitico
sicuramente conveniente immaginare di finestrare prima e poi campionare. Vediamo allora che succede nel
dominio della frequenza.
Come detto, loperazione di finestratura della risposta allimpulso h(t) consiste nella moltiplicazione di
h(t) per un rettangolo di durata finita NT (ed altezza unitaria). Il segnale finestrato ha dunque espressione

t
h f ( t ) = h ( t ) g ( t ) = s( t ) rect

NT
dove ricordiamo che il rettangolo di finestratura centrato in t=0, per cui si estende da -NT/2 a +NT/2.
Per calcolare lo spettro di hf(t), dobbiamo dunque convolvere i due spettri. Lo spettro di h(t) noto ed
un semplice rettangolo esteso da -fC/2 a fC/2; lo spettro del rettangolo g(t), applicando la definizione, vale
+

NT / 2

NT / 2

G (f ) = g ( t )e j2 ft dt =
=

j 2 ft
e dt =

1
e j2 ft
j2f

+ NT / 2
NT / 2

1
j2f

sin (fNT)
1
1
e jfNT e jfNT = sin (fNT) = NT
j2f
fNT
f

per cui lo spettro di h(t) finestrata

H f (f ) = H(f ) * G (f ) = H(f ) * NT

Autore: Sandro Petrizzelli

sin (fNT)
fNT

NT
j 2 f
j2 f NT

2
2
e
e

Progetto di filtri FIR (parte I)

Adesso dobbiamo campionare hf(t), il che significa, nel dominio della frequenza, prendere lo spettro Hf(f)
appena calcolato e periodicizzarlo a passo fC=1/T:

H Cf (f ) =

La convoluzione tra H(f) ed il

H(f ) * NT

n =

sin (fNT)
fNT f = f nf C

sin (fNT)
d origine ad uno spettro che somiglia ad H(f) periodicizzato,
fNT

ma con in pi delle oscillazioni sia in banda sia fuori banda, dovute alla infinita estensione del sin(f)/f: tale
spettro , teoricamente, a banda infinita, per cui lesito del successivo campionamento non pu fare a meno
di presentare una sovrapposizione di repliche.

Per comprendere ancora meglio la situazione, possiamo provare a sviluppare lespressione di quella
convoluzione:

sin (fNT)
sin ((f s )NT)
1
sin ((f s )NT)
= H(s) NT
H(f ) * NT
ds =
ds

fNT
(f s )NT
1 / 2T
f s

+1 / 2 T

Questa espressione mostra sostanzialmente che stiamo sommando infinite repliche di un sinf/f.

Il nostro problema quello di progettare un filtro essendo assegnata la maschera. Questo significa,
in altri termini, trovare un filtro FIR (per ipotesi), eventualmente a fase lineare, di complessit
minima, che soddisfi la maschera. Trovare il filtro di complessit minima
significa sostanzialmente trovare il filtro con risposta allimpulso
h(n) che sia pi corta possibile3. Di conseguenza, il problema diventa quello di
stabilire quanti campioni del sin(t)/t dobbiamo considerare per avere un filtro che soddisfi la
maschera, ossia anche quanto deve essere lunga la finestra rettangolare.
Allaumentare del numero N di campioni, aumenta la durata N della finestra rettangolare e quindi
cambia anche la posizione degli zeri del corrispondente sin(f)/f: infatti, lo spettro della finestra
rettangolare
sin (fNT)
G (f ) = NT
fNT
per cui gli zeri sono nei punti k/NT, con k intero positivo. Allaumentare di N, gli zeri si
avvicinano tra loro, il che significa che i lobi del sin(f)/f si stringono e si alzano, come evidenziato
nella figura seguente:

In realt, la complessit di un filtro non dipende solo dalla lunghezza N della sua risposta allimpulso, ma anche dal numero di bit
necessari a codificare i singoli coefficienti di tale risposta allimpulso. Di conseguenza, il filtro a complessit minima
rigorosamente quello in cui minimizzato il valore della coppia composta dal numero N di campioni di h(n) e dal numero di bit
necessario a memorizzare tali campioni. Nei prossimi discorsi ci interessiamo invece principalmente al valore di N

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

Spettro della finestra rettangolare calcolato per 3 diversi valori di N e, precisamente, per N=2,3,5 (e
T=1 sec per semplicit): allaumentare di N gli zeri si avvicinano, per cui i lobi si stringono e si alzano

Possiamo allora trarre subito una conclusione sullampiezza della banda di transizione. Abbiamo
infatti ricordato prima che la finestratura nel tempo corrisponde, in frequenza, alla convoluzione tra
la funzione di trasferimento rettangolare ed il sin(f)/f:
sin (fNT)
sin ((f s )NT)
1
sin ((f s )NT)
= H(s) NT
ds =
ds

fNT
(f s )NT
1 / 2T
f s

H(f ) * NT

+1 / 2 T

Questa funzione va poi periodicizzata dato il campionamento.


La banda di transizione ha inizio quando, nelleffettuare la convoluzione, lo spigolo destro del
rettangolo coincide con il primo zero positivo (1/NT) del sin(f)/f:

Inizio della banda di transizione: si ottiene quando, nel calcolo della convoluzione, si calcola il
prodotto tra il rettangolo, che rimane fermo, ed il sin(f)/f posizionato con il primo zero positivo in
corrispondenza dello spigolo sinistro del rettangolo

Analogamente, la banda di transizione ha termine quando lo stesso spigolo va a coincidere con il


primo zero negativo (-1/NT):

Autore: Sandro Petrizzelli

Progetto di filtri FIR (parte I)

Fine della banda di transizione: si ottiene quando, nel calcolo della convoluzione, si calcola il
prodotto tra il rettangolo ed il sin(f)/f che si posizionato con il primo zero negativo in corrispondenza
dello spigolo sinistro del rettangolo

La distanza tra gli zeri in -1/NT e +1/NT pari evidentemente a 2/NT ed quindi tanto minore
quanto maggiore N. Deduciamo che, una volta identificata lampiezza della
band di transizione (imponendo che soddisfi le specifiche della
maschera),
risulta
automaticamente
fissato,
con
una
certa
approssimazione, il numero N di campioni da considerare.
Questo, per, non sufficiente, dato che non sempre le altre specifiche (relative alla banda
passante ed a quella arrestata) sono soddisfatte una volta soddisfatte quelle relative alla banda di
transizione. Infatti, come abbiamo visto in precedenza, le oscillazioni nella banda passante
aumentano quanto pi ci si avvicina alla banda di transizione e pu anche capitare che esse
oltrepassino i limiti imposti dalla maschera, come ad esempio visualizzato nella figura seguente:

Quando le oscillazioni rischiano di oltrepassare i limiti della maschera? La risposta semplice:


abbiamo infatti osservato prima che, aumentando il numero N di campioni, i lobi del sin(f)/f si
stringono (cio decadono pi rapidamente) e si alzano; di conseguenza, le oscillazioni nella banda
passante si attenuano, pur aumentando in numero, dato che sono dovute a code che diventano via via
pi piccole allaumentare di N; il problema che, in prossimit della banda di transizione, le
oscillazioni pi ampie si sono spostate nella banda di transizione stessa. Si ha cio la situazione
illustrata nella figura seguente:

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

Riepilogando quanto detto fino ad ora, nel progetto di un filtro numerico passa-basso tramite il
metodo delle finestre, bisogna partire da una funzione di trasferimento prototipo (che noi abbiamo
individuato nel rettangolo), e poi decidere il numero di campioni da considerare nella corrispondente
risposta allimpulso.

Dettagli analitici
Come detto, il metodo delle finestre consiste nellindividuare una funzione di trasferimento
prototipo Hd(f) e nellindividuare la funzione di risposta allimpulso h(n), di lunghezza finita (filtro
FIR) che, tramite il proprio spettro H(f), meglio approssima Hd(f). Vediamo qualche dettaglio
analitico.
In primo luogo, se Hd(f) la trasformata di Fourier di una ideale hd(n), il legame tra le due
rappresentato dalle note formule di trasformazione-antitrasformazione (DTFT):

H d () = h d (n )e jn
n =0

h d (n ) =

1
H d ()e jn d

dove ovviamente =2f la pulsazione e dove si considerata una funzione di risposta allimpulso
hd(n) di lunghezza teoricamente infinita ma causale (condizione necessaria per la fisica
realizzabilit).
La formula di antitrasformazione consente evidentemente di determinare hd(n) fissata che sia la
desiderata Hd().
I problemi, invece, nascono dal fatto che noi vogliamo una hd(n) di lunghezza finita. Sia N tale
lunghezza, ossia il numero di campioni di cui vogliamo che sia composta la funzione di risposta
allimpulso h(n) del filtro che intendiamo realmente implementare.
Possiamo interpretare questa lunghezza finita tramite il troncamento di hd(n) ad opera di una
finestra rettangolare g(n) cos definita:
1
g( n ) =
0

n = 0,1,...., N - 1
altrimenti

Da qui segue evidentemente che la risposta allimpulso del filtro che stiamo implementando
n = 0,1,...., N - 1

h ( n )
h (n ) = g(n ) h d (n ) = d
0
Autore: Sandro Petrizzelli

altrimenti
10

Progetto di filtri FIR (parte I)

A questo punto, il problema consiste tutto nel fissare il valore di N in modo che la funzione di
trasferimento H() corrispondente ad h(n) approssimi quanto meglio possibile la desiderata Hd() e
rispetti inoltre la maschera.
Andiamo allora a calcolare proprio H():

N 1

n =0

n =0

n =0

H() = h (n )e jn = g (n )h d (n )e jn = h d (n )e jn
E pi comodo procedere direttamente nel dominio della frequenza: infatti, essendo h(n) il
prodotto tra g(n) e hd(n), la corrispondente H() sar la convoluzione tra lo spettro G() della
finestra e lo spettro desiderato Hd():

1
H d ()G ( )d
H() = G () * H d () =
2
La funzione Hd() nota. Andiamo invece a calcolare lo spettro della finestra rettangolare
campionata, che corrispondente notoriamente alla periodicizzazione di un sin(f)/f:

G () =

g ( n )e

jn

n =

N 1

= e jn =
n =0

jN

1 e
=e
1 e j

N 1
j
2

N
sin

2

sin
2

Abbiamo ottenuto una funzione di trasferimento complessa, caratterizzata perci da un modulo ed


una fase (questultima nasce dal fatto che si scelto un filtro causale, la cui risposta allimpulso
parte quindi dallistante n=0 e non risulta perci pari). Il modulo
N sin N
sin

2
2

G () =
=


sin
sin
2
2

- +

mentre invece la fase lineare a pezzi:

N 1
2

G () =
N 1 +

N
quando sin
0
2
N
quando sin
<0
2

Ci interessa in particolare il modulo. La figura seguente mostra il suo andamento per due distinti
valori di N, precisamente 31 e 61:

11

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

Modulo (in dB) dello spettro della finestra rettangolare campionata, diagrammato sia per N=M=31
campioni sia per N=M=61 campioni. Sullasse delle frequenze riportata la frequenza normalizzata,
ossia il rapporto tra la frequenza effettiva e la frequenza di campionamento fC. Lintervallo diagrammato
quello del periodo fondamentale, con riferimento alle sole frequenze positive.

Dovremmo adesso sostituire lespressione di G() in quella di H()......

Uso di particolari finestre


Per quanto visto fino ad ora, lunico grado di libert a nostra disposizione, nel progetto tramite il
metodo delle finestre, il numero N di campioni da prendere per la funzione di risposta allimpulso
del filtro. In realt, abbiamo un altro grado di libert, rappresentato dalla scelta della finestra da
utilizzare per troncare la funzione di risposta allimpulso teorica, cio il sin(t)/t:

Funzione di risposta allimpulso del filtro passa-basso ideale: un sin(t)/t, campionato, di durata
infinita

Nei precedenti discorsi abbiamo considerato una finestra rettangolare. Possiamo per pensare di
utilizzare altri tipi di finestre. Ad esempio, possiamo pensare di utilizzare una finestra triangolare
(finestra di Bartlett), sempre di durata NT:

Autore: Sandro Petrizzelli

12

Progetto di filtri FIR (parte I)

Finestratura della risposta allimpulso del filtro passa-basso ideale tramite una finestra triangolare di
durata NT, la quale si ottiene notoriamente convolvendo due rettangoli uguali, di durata NT/2

Lespressione analitica di una simile finestra, di durata NT ed altezza unitaria, la seguente:


N 1
2
N 1

2n
g TR (n ) = 1

Se ragioniamo direttamente nel dominio delle frequenze, la finestratura corrisponde alla


convoluzione tra il rettangolo passa-basso ideale (sempre periodicizzato a causa del campionamento)
ed uno spettro del tipo sin2(f)/f2, che fatto nel modo seguente:

Spettro di una finestra triangolare: essendo la finestra data dalla convoluzione tra due rettangoli
uguali, in frequenza si ha il prodotto di due sin(f)/f uguali, da cui quindi landamento caratteristico del
sin2(f)/f2 qui riportato

Ci che si nota immediatamente il decadimento pi rapido dei lobi secondari rispetto al classico
sin(f)/f: il motivo chiaramente nel fatto che tale decadimento avviene con f2 anzich con f.
Il decadimento pi rapido rispetto al sin(f)/f comporta minori
problemi legati alle oscillazioni, il che rappresenta un sicuro vantaggio.
A fronte di questo, per, ovvio che la finestra triangolare, al contrario di quello rettangolare, non
pesa ugualmente tutti i campioni della risposta allimpulso, ma conferisce peso via via minore ai
campioni via via pi distanti dal vertice del triangolo (dove invece il peso massimo): infatti, il peso
di ogni campione dato dal prodotto tra il valore effettivo del sin(t)/t nellistante considerato ed il
valore della finestra triangolare nello stesso istante:
13

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

A questo concetto legato quello relativo allampiezza del lobo principale dello spettro della
finestra: se NT la durata del triangolo, si ricava che la sua trasformata (non periodicizzata)
NT
sin 2 f

2
NT

G TR (f ) =

2
2 NT
f

Infatti, dobbiamo considerare la convoluzione di due rettangoli di durata NT/2, per cui in
NT sin (fNT / 2)
.
frequenza abbiamo il prodotto di due spettri dati da
2
fNT / 2
Allora, nonostante la funzione GTR(f) decada a zero pi velocemente di quanto facesse la
trasformata del rettangolo, lampiezza del lobo principale, cio la distanza tra i primi due zeri, risulta
ora raddoppiata, dato che, come si vede anche nella figura seguente, i due zeri si trovano in 2/NT:

Di conseguenza, ripetendo gli stessi discorsi fatti per la finestra rettangolare, deduciamo che
lampiezza della banda di transizione raddoppiata. Il legame con il peso attribuito ai campioni
evidente: dato che i campioni pi lontani dal vertice del triangolo assumono peso minore, di fatto
come se stessimo usando ancora una finestra rettangolare, ma con un minor numero di campioni e
quindi pi distesa in banda.
In definitiva, il parametro da cui dipende lampiezza della banda di
transizione lampiezza del lobo principale dello spettro della
finestra.
Per quanto riguarda lampiezza delle oscillazioni, invece, abbiamo osservato che quello che
importa la velocit con cui decadono a zero le code. Questa velocit si quantifica, in genere, con la
misura di quanto il modulo del primo lobo secondario inferiore rispetto al modulo del lobo
principale, cio del picco:

Autore: Sandro Petrizzelli

14

Progetto di filtri FIR (parte I)

Misura della velocit di decadimento a zero delle code nel caso di un sin(f)/

Nel caso della finestra rettangolare, il cui spettro un sin(f)/f come quello di figura, il rapporto tra
il modulo del picco principale ed il modulo del picco del primo lobo risulta essere di =13 dB.
Nel caso, invece, della finestra triangolare, dove il decadimento maggiore, il rapporto di =26
dB, doppio del precedente.
Possiamo anche non fermarci alla finestra triangolare, ma passare ad altri tipi di finestre. In
generale, la strada da seguire quella di usare come finestre delle funzioni del tempo che siano
continue fino al pi alto grado: il rettangolo una funzione che presenta discontinuit di valore, in
corrispondenza chiaramente dei due spigoli; il triangolo presenta invece una discontinuit solo a
partire dalla derivata prima (la derivata del triangolo il rettangolo); procedendo, potremmo
considerare una funzione che presenta discontinuit solo a partire dalla derivata seconda (e che
quindi continua con la sua derivata prima): in questo caso, le code della sua trasformata andranno a
zero come 1/f3 e cos via per discontinuit di grado sempre maggiore.
In effetti, il problema pu anche essere considerato da un altro punto di vista. Abbiamo capito che
il fattore di principale disturbo rappresentato dalle code dello spettro della finestra, per cui noi
cerchiamo una finestra la cui trasformata decada a zero il pi rapidamente possibile. La funzione che
ha il miglior decadimento a zero, dopo il picco in f=0, un impulso. Di conseguenza, a noi
andrebbe bene uno spettro idealmente impulsivo (che infatti
corrisponde ad una funzione costante nel tempo e di durata
infinita): moltiplicando lo spettro desiderato Hd(f) per tale impulso, otterremmo ancora Hd(f).
Dato che, nella realt, non possiamo ottenere un impulso in frequenza (perch ci serve una risposta
allimpulso di durata limitata), possiamo allora ricercare uno spettro che sia quanto pi simile
possibile ad un impulso. In questottica, possiamo pensare di considerare pi funzioni del tipo
sin(f)/f, combinate insieme in modo che gli effetti delle code delluna siano attenuate dagli effetti
delle code degli altri.
Ad esempio, possiamo sommare due sin(f)/f, disposti in modo tale che il picco principale delluno
coincida con il primo zero dellaltro:

15

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

Se, prima di sommare, scaliamo di un fattore le due funzioni e poi sommiamo, otteniamo il
seguente spettro:

Spettro della finestra ottenuta sommando due sin(f)/f, scalati di e traslati in avanti e indietro,
rispetto allorigine delle frequenze, di 1/2NT

Il motivo del fattore di scala sar chiaro pi avanti.


Per il momento, pu essere utile ancora una volta confrontare questa funzione con il classico
sin(f)/f:

Confronto tra lo spettro della precedente figura e lo spettro della finestra rettangolare, ossia il sin(f)/f

Ancora una volta notiamo un maggiore decadimento delle code, ma notiamo anche un lobo
principale pi piatto e pi ampio.
Come verificheremo tra un attimo, lo spettro cos ottenuto decade sostanzialmente ancora come
1/f2. Lunica differenza con la finestra triangolare riguarda il decadimento dei lobi secondari, che
adesso minore: mentre nella finestra triangolare era =26 dB, adesso si ottiene =24 dB.
Prima di andare oltre, facciamo qualche passaggio analitico per giustificare questo risultato.
La combinazione dei due sin(f)/f considerati prima si pu scrivere, analiticamente, nel modo
seguente:
1
sin (fNT) 1
1
* f
+ f +

fNT
2
2 NT
2 NT
Da notare che abbiamo preferito scegliere una traslazione di 1/2NT, piazzando cio lorigine
delle frequenze al centro, per ottenere una funzione risultante che sia reale e pari. Questa scelta
comoda, ma poi necessario effettuare altre traslazioni per rendere il filtro causale e quindi
fisicamente realizzabile.

Autore: Sandro Petrizzelli

16

Progetto di filtri FIR (parte I)

A prescindere da questo, se abbiamo una convoluzione nel tempo, otteniamo un prodotto delle
sin (fNT)
non altro che la trasformata di un rettangolo di durata NT, mentre
frequenze: lo spettro
fNT
laltro spettro banalmente la trasformata di un coseno di frequenza 1/2NT, per cui la finestra
corrispondente
1
t
t
rect
cos 2
NT 2 NT
Questo prodotto corrisponde dunque ad un coseno4 finestrato tra -NT/2 ed NT/2:

Finestra a coseno finestrato

Come detto prima, non abbiamo guadagnato molto rispetto alla finestra triangolare, in quanto
abbiamo sempre una discontinuit sulla derivata prima (code che decadono come 1/f2). Dato che la
durata del lobo principale (in frequenza) la stessa anche il valore di circa uguale a quello
della finestra triangolare (24 dB contro 26 dB), si preferisce generalmente combinare tre funzioni
sin(f)/f, secondo la seguente combinazione:
sin (fNT) 1
1
1 1
1
* (f ) + f

+ f +
fNT
4
NT 4
NT
2
Si usano cio un sin(f)/f scalato di centrato sullorigine delle frequenze e due altri sin(f)/f,
centrati su 1/NT e -1/NT (cio in corrispondenza dei primi due zeri del sin(f)/f centrale) e scalati di
1/4:

Il fatto di aver ottenuto un coseno spiega il fattore di scala usato per la composizione dei due sin(f)/f.

17

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

La composizione d origine alla seguente finestra temporale:

Spettro della finestra a coseno rialzato finestrato (finestra di Hanning)

In questo caso si ottiene una discontinuit sulla derivata seconda, per cui le code decadono come
1/f3. Lampiezza del lobo principale quadrupla rispetto a quella della finestra rettangola e la
velocit di decadimento delle code di gran lunga maggiore: risulta infatti =36 dB.
Vediamo come fatta la finestra nel tempo, il che significa che dobbiamo calcolare
lantitrasformata dello spettro
sin (fNT) 1
1
1 1
1
* (f ) + f
+ f +

fNT
4
NT 4
NT
2
Possiamo allora riscrivere questo spettro nel modo seguente:
sin (fNT) 1
1
1
1
* (f ) + f

+ f +
fNT
2
2
NT
NT
Da qui, riprendendo conti analoghi a quelli fatti prima, deduciamo che lantitrasformata
1
t 1

rect
t
1 + cos 2
NT 2
NT
In questo caso, quindi, abbiamo finestrato un coseno, di frequenza 1/NT e di ampiezza 1/2, cui
sommata una costante pari a sua volta ad 1/2: si parla perci di finestra a coseno rialzato e
finestrato, detta anche finestra di Hanning. Landamento temporale della finestra dunque il
seguente:

Andamento temporale della finestra di Hanning (coseno rialzato finestrato)

Autore: Sandro Petrizzelli

18

Progetto di filtri FIR (parte I)

Varianti di questa finestra si ottengono semplicemente modificando, rispetto ad 1/2, i coefficienti


di peso della continua e del termine cosinusoidale:
1

t
rect
t
a + b cos 2
NT
NT
Ad esempio, una delle finestre pi utilizzate la cosiddetta finestra di Hamming, nella quale si
pone a=0.54 e b=0.46:
1

t
rect
t
0.54 + 0.46 cos 2
NT
NT
Landamento temporale di questa finestra il seguente:

Andamento temporale della finestra di Hamming

Una finestra molto utilizzata in campo radaristico invece quella che si ottiene per a=0.3 e b=0.7:
1
t

rect
t
0.3 + 0.7 cos 2
NT
NT
Nella tabella seguente sono elencate varie funzioni finestra, direttamente in numerico, che
presentano caratteristiche spettrali apprezzabili per lapplicazione nel metodo delle finestre:
Nome

della

finestra

Funzione

di risposta
h(n)

all' impulso

N 1
2
N 1

2n
Bartlett

Blackman

Hamming

Hanning

0 . 42 0 . 5 cos

2n
4n
+ 0 . 0 . 8 cos
N 1
N 1

0 . 54 0 . 56 cos

2 n
N 1

1
2n
1 cos

2
N 1

19

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

Nelle prossime due figure sono diagrammanti gli andamenti temporali di tali finestre
(considerando i campioni da n=0 ad n=N-1, in modo da garantire la causalit dei filtri e quindi la
fisica realizzabilit):

Andamento temporale delle finestre di Hamming, Hanning e Blackman, confrontate con la finestra
rettangolare

Andamento temporale delle finestre di Tukey, Kaiser e Lanczos, confrontate con la finestra di Bartlett
(triangolare)

Al fine di comprendere la bont di queste finestre, sappiamo che importante indagarne gli
spettri. I moduli di tali spettri sono allora riportati nelle figure seguenti, in funzione della frequenza
normalizzata f/fC ed al variare del numero di campioni:

Modulo (in dB), in funzione della frequenza normalizzata, della funzione di trasferimento della finestra
di Hanning, diagrammato per N=31 ed N=61 campioni

Autore: Sandro Petrizzelli

20

Progetto di filtri FIR (parte I)

Modulo (in dB), in funzione della frequenza normalizzata, della funzione di trasferimento della finestra
di Hamming, diagrammato per N=31 ed N=61 campioni

Modulo (in dB), in funzione della frequenza normalizzata, della funzione di trasferimento della finestra
di Blackman, diagrammato per N=31 ed N=61 campioni

Gli spettri di tutte le finestre appena illustrate hanno dei lobi secondari significativamente pi
piccoli di quelli presenti nello spettro della finestra rettangolare. Daltra parte, a parit di numero N
di campioni, lampiezza del lobo principale maggiore in queste finestre rispetto a quella della
finestra rettangolare. Di conseguenza, queste funzioni finestra producono minori oscillazioni in
banda passante, ma una banda di transizione pi ampia. Lunico modo per ridurre lampiezza della
banda di transizione quello di aumentare la durata della finestra, ossia aumentare la lunghezza N
della funzione di risposta allimpulso del filtro implementato.
Nella tabella seguente sono infine elencate le principali caratteristiche degli spettri delle funzioni
finestra citate:

21

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

Tipo di
finestra

Ampiezza approssimata
del lobo principale

Deca dim ento delle code


(dB)

Rettangolare
Triangolare (Bartlett)
Hanning
Hamming
Blackman

4/N
8/N
8/N
8/N
12/N

13
27
32
43
58

Conclusioni sul metodo delle finestre


In definitiva, il progetto di filtri FIR mediante finestre si basa sul fatto che possibile guadagnare
sui lobi laterali, e quindi sulla oscillazione in banda e sulla attenuazione minima garantita fuori
banda, semplicemente cambiando i lobi della finestra. Se si considerano finestre con code che
decadono pi velocemente, necessariamente si una un lobo principale pi largo: quindi, a minore
oscillazione in banda e maggiore reiezione fuori banda corrisponde una banda di transizione pi
graduale.
Il metodo delle finestre non un metodo ottimo per il progetto di filtri FIR, ma ha il pregio di
essere molto semplice.

Esempio concreto
Per comprendere a pieno la tecnica delle finestre, consideriamo un esempio specifico.
Come detto pi volte, il punto di partenza nella scelta di una funzione di trasferimento prototipo,
che indichiamo con Hd(). Scegliamo perci un filtro FIR, simmetrico, a fase lineare, passa-basso,
avente la seguente funzione di trasferimento:
j N21

H d () = e
0

0 T
altrimenti

dove conveniamo di indicare con la pulsazione 2f normalizzata alla frequenza di campionamento


fC e quindi con T la pulsazione di taglio normalizzata.
=

2f
fC

T =

2f T
fC

Questo filtro evidentemente un passa-basso ideale (modulo unitario in banda passante e modulo
nullo in banda arrestata), nel quale un anticipo temporale di (N-1)/2 passi di campionamento stato
imposto per ottenere un filtro di lunghezza N.
Andiamo allora a ricavare la corrispondente funzione di risposta allimpulso, tramite una semplice
antitrasformazione di Fourier:

Autore: Sandro Petrizzelli

22

Progetto di filtri FIR (parte I)

h d (n ) =

1
1
H d ()e jn d =
e

2 T
2 T

N 1
j
2


N 1
sin T n

2

N 1

jn
e d = ... =
= 2f T sinc T n

N 1
2

(dobbiamo per il momento escludere il campione che si ottiene per n=(N-1)/2 in quanto il Seno
Cardinale non definito in tale punto, se non con un processo al limite)
Come previsto, abbiamo ottenuto una funzione di risposta allimpulso non causale e di durata
infinita. Andiamo allora a finestrare questa funzione, ad esempio con una finestra rettangolare di
durata NT. Otteniamo, per il filtro da implementare, una funzione di risposta allimpulso cos
definita:

N 1
n
h (n ) = rect
h d (n ) = 2f T sinc T n

2
NT

0 n N -1

N -1
2

Se scegliamo un valore dispari di N, listante n=(N-1)/2 esiste ed in tale istante possiamo


calcolare il valore di h(n) tramite un processo al limite: infatti, calcolando tale limite, il Seno
Cardinale va ad 1 e quindi
N 1
h
= 2f T
2
A questo punto abbiamo lintero vettore della funzione di risposta allimpulso del nostro filtro,
per cui possiamo calcolare, analiticamente o tramite il calcolatore (DFT usando per esempio Matlab),
la corrispondente funzione di trasferimento. Nelle prossime due figure per esempio illustrato
landamento del modulo di tale funzione di trasferimento, in funzione della frequenza normalizzata,
per due distinti valori (61 e 101) della lunghezza N:

Modulo (in funzione della frequenza normalizzata f/fC) della funzione di trasferimento del filtro FIR
progettato, nel caso di N=61 campioni per la funzione di risposta allimpulso

23

Autore: Sandro Petrizzelli

Appunti di Elaborazione numerica dei segnali - Capitolo 4

Modulo (in funzione della frequenza normalizzata f/fC) della funzione di trasferimento del filtro FIR
progettato, nel caso di N=101 campioni per la funzione di risposta allimpulso

Osserviamo fondamentalmente un buon comportamento del filtro in termini di rapidit di


passaggio dalla banda passante alla banda arrestata e di attenuazione in banda arrestata. tuttavia,
notiamo che, per entrambi i valori di N, ci sono delle oscillazioni eccessive al passaggio dalla banda
passante alla banda di transizione e da questultima alla banda arrestata. Si osserva, in particolare, un
aumento della frequenza delle oscillazioni per N=101, mentre la loro ampiezza rimane
sostanzialmente invariata per i due valori di N.
Come sappiamo, queste oscillazioni (fenomeno di Gibbs) dipendono fondamentalmente dalla
larghezza dei lobi laterali dello spettro della finestra rettangolare. Allora, per ridurre tali oscillazioni
sia in banda passante sia banda arrestata, dobbiamo usare una funzione finestra che contenga
discontinuit pi dolci rispetto a quelle brusche della finestra rettangolare. Per esempio, se usiamo
una finestra triangolare, con N=61, otteniamo quanto segue:

Modulo (in funzione della frequenza normalizzata f/fC) della funzione di trasferimento del filtro FIR
progettato per N=61 e tramite una finestra triangolare. Da notare che, rispetto ai due diagrammi
precedenti, le ordinate sono adesso in dB, il che consente di apprezzare meglio le oscillazioni in banda
arrestata

Le cose migliorano ulteriormente se usiamo finestre di Hamming o Blackman, sempre per N=61.
il risultato migliore si ottiene con la finestra di Blackman:

Autore: Sandro Petrizzelli

24

Progetto di filtri FIR (parte I)

Modulo (in funzione della frequenza normalizzata f/fC) della funzione di trasferimento del filtro FIR
progettato per N=61 e tramite una finestra di Hamming

Modulo (in funzione della frequenza normalizzata f/fC) della funzione di trasferimento del filtro FIR
progettato per N=61 e tramite una finestra di Blackman

Come queste figure mostrano chiaramente, abbiamo ottenuto sia leliminazione completa delle
oscillazioni in corrispondenza del passaggio dalla banda passante alla banda attenuata sia minori
oscillazioni in banda arrestata. Questo, per, al prezzo di una banda di transizione pi ampia.

Autore: SANDRO PETRIZZELLI


e-mail: sandry@iol.it
sito personale: http://users.iol.it/sandry
succursale: http://digilander.iol.it/sandry1

25

Autore: Sandro Petrizzelli