Vai al contenuto
Elaborazione Numerica dei Segnali

Filtri IIR: prototipi analogici e trasformazione bilineare

Filtro di Butterworth e formula dell'ordine dimostrata, Chebyshev ed ellittici, trasformazione bilineare con dimostrazione, predistorsione, esempio numerico completo, invarianza all'impulso, FIR o IIR.

I filtri IIR hanno risposta all’impulso infinita perché usano la retroazione: l’uscita dipende anche dalle uscite passate. Con pochi coefficienti ottengono transizioni molto ripide, ma rinunciano alla fase lineare e devono essere resi stabili. Il modo classico di progettarli è partire da un prototipo analogico, uno dei filtri studiati da decenni per i circuiti, e trasformarlo. In questa lezione vediamo il filtro di Butterworth con la formula dell’ordine dimostrata, la trasformazione bilineare con la dimostrazione delle sue proprietà, la predistorsione delle frequenze, l’invarianza all’impulso e un esempio numerico completo.

I prototipi analogici

Il filtro di Butterworth di ordine N ha

    \[ |H(j\Omega)|^2 = \frac{1}{1 + (\Omega/\Omega_c)^{2N}} \]

È massimamente piatto: in \Omega = 0 le prime 2N - 1 derivate del modulo quadro sono nulle, e il guadagno scende in modo monotono. A \Omega_c vale -3 dB, e oltre scende di 20N dB per decade. I poli stanno su un semicerchio di raggio \Omega_c nel semipiano sinistro.

Teorema. Per avere al massimo A_p dB di attenuazione fino a \Omega_p e almeno A_s dB da \Omega_s, l’ordine di Butterworth deve essere

    \[ N \ge \frac{\log_{10}\left[(10^{A_s/10} - 1)/(10^{A_p/10} - 1)\right]}{2\log_{10}(\Omega_s/\Omega_p)} \]

Dimostrazione. L’attenuazione in dB è 10\log_{10}(1 + (\Omega/\Omega_c)^{2N}). Le due condizioni danno (\Omega_p/\Omega_c)^{2N} \le 10^{A_p/10} - 1 e (\Omega_s/\Omega_c)^{2N} \ge 10^{A_s/10} - 1. Dividendo la seconda per la prima \Omega_c sparisce: (\Omega_s/\Omega_p)^{2N} \ge (10^{A_s/10} - 1)/(10^{A_p/10} - 1), e passando ai logaritmi si ottiene la formula. ∎

Il Chebyshev di tipo I accetta oscillazioni in banda passante, il tipo II in banda attenuata, e l’ellittico (o di Cauer) in entrambe: a parità di ordine ha la transizione più ripida possibile, ma la fase più irregolare.

La trasformazione bilineare

Per passare dal filtro analogico H_a(s) a quello digitale si sostituisce

    \[ s = \frac{2}{T}\cdot\frac{1 - z^{-1}}{1 + z^{-1}} \]

dove T è il periodo di campionamento. È la regola dei trapezi applicata all’integratore 1/s, e trasforma una funzione razionale in un’altra funzione razionale dello stesso ordine.

Teorema. La trasformazione bilineare porta l’asse immaginario s = j\Omega sul cerchio unitario, con

    \[ \omega = 2\arctan\frac{\Omega T}{2} \]

e il semipiano sinistro dentro il cerchio unitario. Quindi un filtro analogico stabile diventa un filtro digitale stabile.

Dimostrazione. Invertendo la formula, z = (1 + sT/2)/(1 - sT/2). Per s = j\Omega numeratore e denominatore sono complessi coniugati, 1 \pm j\Omega T/2, quindi |z| = 1 e z = e^{j\omega} con \omega = 2\arg(1 + j\Omega T/2) = 2\arctan(\Omega T/2). Per \mathrm{Re}\,s \lt  0 il punto s è più vicino a -2/T che a +2/T, quindi |1 + sT/2| \lt  |1 - sT/2| e |z| \lt  1: i poli finiscono dentro il cerchio. ∎

Relazione tra la frequenza analogica e quella digitale nella trasformazione bilineare
Tutto l’asse delle frequenze analogiche, da zero a infinito, viene compresso nell’intervallo da zero a pi greco. Per le frequenze basse la relazione è quasi lineare (tratteggio), poi si piega sempre di più.

Non c’è aliasing, perché l’intero asse \Omega da 0 a infinito viene “schiacciato” nell’intervallo da 0 a \pi. Il prezzo è la distorsione delle frequenze (warping): la relazione non è lineare, e le frequenze caratteristiche del prototipo finiscono nel posto sbagliato.

La predistorsione

Si rimedia progettando il prototipo analogico con le frequenze predistorte: per ottenere un taglio digitale a \omega_c si usa \Omega_c = (2/T)\tan(\omega_c/2). Le frequenze critiche cadono così esattamente dove servono; la forma della risposta tra una frequenza critica e l’altra viene un po’ deformata, ma per i filtri a gradino (passa-basso, passa-alto, passa-banda) non importa.

Un esempio completo

Si vuole un Butterworth del secondo ordine con taglio digitale \omega_c = 0{,}2\pi (per esempio 1 kHz con campionamento a 10 kHz). Con T = 1 la predistorsione dà \Omega_c = 2\tan(0{,}1\pi) \approx 0{,}650, e il prototipo è H_a(s) = \Omega_c^2/(s^2 + \sqrt{2}\,\Omega_c s + \Omega_c^2). Applicando la sostituzione e ponendo K = \tan(\omega_c/2) \approx 0{,}325, con D = 1 + \sqrt{2}K + K^2 \approx 1{,}565:

    \[ H(z) = \frac{b_0 + b_1z^{-1} + b_2z^{-2}}{1 + a_1z^{-1} + a_2z^{-2}},\quad b_0 = b_2 = \frac{K^2}{D} \approx 0{,}0675,\ b_1 = 2b_0,\ a_1 = \frac{2(K^2 - 1)}{D} \approx -1{,}143,\ a_2 = \frac{1 - \sqrt{2}K + K^2}{D} \approx 0{,}413 \]

Il guadagno in continua (z = 1) è (b_0 + b_1 + b_2)/(1 + a_1 + a_2) = 1, come deve essere, e quello a \omega = \pi (z = -1) è zero, perché il numeratore (1 + z^{-1})^2 si annulla: la bilineare porta lo zero all’infinito del prototipo esattamente alla frequenza di Nyquist. I poli hanno modulo \sqrt{a_2} \approx 0{,}64: ben dentro il cerchio.

L’invarianza all’impulso

Un metodo alternativo campiona la risposta all’impulso del prototipo: h[n] = T\,h_a(nT). Conserva la forma della risposta nel tempo e la relazione lineare tra le frequenze, ma la risposta in frequenza digitale è la somma delle copie di quella analogica, quindi c’è aliasing: funziona bene solo per i passa-basso e i passa-banda molto attenuati prima della frequenza di Nyquist, e non si usa per i passa-alto.

FIR o IIR?

Gli IIR raggiungono transizioni ripide con un ordine molto più basso, quindi con meno moltiplicazioni e meno ritardo: sono la scelta naturale quando la fase non conta, come in molti filtri audio, negli equalizzatori e negli anelli di controllo. I FIR hanno fase lineare esatta, sono sempre stabili e sopportano meglio la precisione finita: si preferiscono nelle comunicazioni digitali, nelle immagini e nei sistemi multirate. Gli IIR si realizzano quasi sempre come cascata di celle del secondo ordine, come quella dell’esempio (lezione sulle strutture).

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