Vai al contenuto
Elaborazione Numerica dei Segnali

Progetto dei filtri FIR con il metodo delle finestre

Risposta all'impulso del passa-basso ideale con dimostrazione, fenomeno di Gibbs, finestre di Hann, Hamming e Blackman, finestra di Kaiser con le formule di progetto, fase lineare dimostrata.

Il modo più diretto di progettare un filtro FIR è partire dal filtro ideale, calcolarne la risposta all’impulso e accorciarla. È il metodo delle finestre: semplice, robusto e ancora molto usato. In questa lezione ricaviamo la risposta all’impulso del passa-basso ideale, vediamo perché il troncamento crea le oscillazioni di Gibbs, confrontiamo le finestre classiche e quella di Kaiser con le sue formule di progetto, e dimostriamo che un FIR con coefficienti simmetrici ha fase lineare.

Il passa-basso ideale

Il passa-basso ideale ha guadagno 1 per |\omega| \lt  \omega_c e 0 altrove, nel periodo [-\pi, \pi].

Teorema. La sua risposta all’impulso è

    \[ h_d[n] = \frac{\sin(\omega_c n)}{\pi n},\qquad h_d[0] = \frac{\omega_c}{\pi} \]

Dimostrazione. Con la formula di antitrasformazione della DTFT:

    \[ h_d[n] = \frac{1}{2\pi}\int_{-\omega_c}^{\omega_c}e^{j\omega n}\,d\omega = \frac{1}{2\pi}\cdot\frac{e^{j\omega_c n} - e^{-j\omega_c n}}{jn} = \frac{\sin(\omega_c n)}{\pi n} \]

e per n = 0 l’integrale vale semplicemente 2\omega_c/(2\pi). ∎

Questa risposta è infinita in entrambe le direzioni e non causale: nessun filtro reale può realizzarla. Si tengono allora solo N = 2L + 1 campioni centrali e si ritarda tutto di L, così il filtro diventa causale: h[n] = h_d[n - L]\,w[n], dove w[n] è la finestra che vale zero fuori da 0 \le n \le N - 1.

Il fenomeno di Gibbs

Moltiplicare per la finestra nel tempo significa convolvere in frequenza la risposta ideale con la trasformata della finestra. Per la finestra rettangolare questa trasformata è il nucleo della lezione precedente, con un lobo principale largo 4\pi/N e lobi laterali alti. La convoluzione produce due effetti:

  • una banda di transizione larga circa quanto il lobo principale, che si restringe aumentando N;
  • delle oscillazioni in banda passante e in banda attenuata, dovute ai lobi laterali. La più alta vale circa il 9 % del salto, e non diminuisce aumentando N: le oscillazioni diventano più fitte ma non più piccole. È il fenomeno di Gibbs, lo stesso delle serie di Fourier troncate.

Per un filtro con la finestra rettangolare l’attenuazione massima in banda attenuata resta quindi intorno a 21 dB, qualunque sia la lunghezza: troppo poco per quasi tutte le applicazioni.

Le finestre

La soluzione è usare finestre che vanno a zero dolcemente ai bordi: i lobi laterali della loro trasformata sono molto più bassi, al prezzo di un lobo principale più largo, cioè di una transizione più lenta a parità di N.

FinestraLarghezza del lobo principaleLobo laterale più altoAttenuazione del filtro
rettangolare4\pi/N−13 dB21 dB
Hann8\pi/N−31 dB44 dB
Hamming8\pi/N−41 dB53 dB
Blackman12\pi/N−57 dB74 dB

La finestra di Hamming, per esempio, è w[n] = 0{,}54 - 0{,}46\cos(2\pi n/(N-1)).

Risposta in decibel di un passa-basso a 41 coefficienti con la finestra rettangolare e con quella di Hamming
Con la finestra rettangolare (rossa) la transizione è più ripida ma la banda attenuata resta attorno a meno 21 decibel; con quella di Hamming (blu) la transizione è più larga ma l’attenuazione supera i 50 decibel.

La finestra di Kaiser

Le finestre fisse costringono a scegliere da una tabella. La finestra di Kaiser ha un parametro \beta che regola con continuità il compromesso tra larghezza del lobo e altezza dei lobi laterali, e formule di progetto empiriche. Data l’attenuazione richiesta A = -20\log_{10}\delta in decibel (con \delta la tolleranza, la stessa in banda passante e attenuata) e la larghezza della transizione \Delta\omega = \omega_s - \omega_p:

    \[ \beta = \begin{cases} 0{,}1102\,(A - 8{,}7) & A \gt  50 \\ 0{,}5842\,(A - 21)^{0{,}4} + 0{,}07886\,(A - 21) & 21 \le A \le 50 \end{cases},\qquad N \approx \frac{A - 8}{2{,}285\,\Delta\omega} + 1 \]

Esempio. Banda passante fino a 0{,}3\pi, banda attenuata da 0{,}42\pi con 50 dB. Allora \Delta\omega = 0{,}12\pi \approx 0{,}377 e N \approx 42/0{,}861 + 1 \approx 50 coefficienti. Con la finestra di Hamming, che garantisce i 50 dB, bisognerebbe avere 8\pi/N \approx 0{,}12\pi, cioè circa 67 coefficienti: la Kaiser ne risparmia un quarto. Il taglio si mette a metà della transizione, \omega_c = 0{,}36\pi.

La fase lineare

Teorema. Se i coefficienti di un FIR di lunghezza N sono simmetrici, h[n] = h[N - 1 - n], allora

    \[ H(e^{j\omega}) = e^{-j\omega(N-1)/2}A(\omega) \]

con A(\omega) reale: la fase è lineare e il ritardo di gruppo vale (N-1)/2 campioni.

Dimostrazione. Sia M = (N-1)/2 il centro. Si raccoglie e^{-j\omega M}: H = e^{-j\omega M}\sum_n h[n]e^{-j\omega(n - M)}. Nella somma, i termini n e N - 1 - n hanno lo stesso coefficiente e esponenti opposti, \mp j\omega(n - M), quindi sommati danno 2h[n]\cos(\omega(n - M)), reale. Se N è dispari resta il termine centrale h[M], anch’esso reale. Quindi la somma è un numero reale A(\omega). ∎

A(\omega) può cambiare segno, e allora la fase salta di \pi: resta comunque lineare a tratti, e il ritardo di gruppo è costante. Il filtro progettato con le finestre è simmetrico per costruzione (la risposta ideale centrata e le finestre sono pari), quindi ha sempre fase lineare. È il vantaggio principale dei FIR rispetto agli IIR, insieme alla stabilità garantita: un FIR non ha poli fuori dall’origine.

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x