Salta al contenuto
Note per Studenti Filtri IIR - definizione e confronto con i FIR

Filtri IIR - definizione e confronto con i FIR

In questa pagina 7

Un filtro FIR calcola ogni campione d'uscita con un numero finito di campioni dell'ingresso (Sistemi a tempo discreto e filtri FIRUn sistema a tempo discreto trasforma una sequenza x[n] in una sequenza y[n]. Il filtro FIR causale di ordine M calcola y[n] = Σ b_k x[n-k] (k = 0..M): è una media mobile pesata di L = M+1 campioni, la sua risposta impulsiva h[n] coincide con i coefficienti b_k e l'uscita ha supporto lungo N+M se l'ingresso è lungo N. La media mobile è un passa-basso che ritarda di M/2 campioni; la versione centrata non è causale. Gli schemi a blocchi usano solo moltiplicatori, sommatori e ritardi unitari, senza anelli (feed-forward).Sistemi a tempo discreto e filtri FIR →). Un filtro IIR (infinite impulse response) usa anche campioni dell'uscita già calcolati: l'uscita viene "riportata indietro" e combinata con l'ingresso, quindi è un sistema con retroazione (feedback) o ricorsivo (recursive filter). La conseguenza, da cui il nome, è che la risposta impulsiva dura infinitamente.

L'equazione alle differenze

Definizione (filtro IIR). La classe più generale di sistemi LTI a tempo discreto realizzabili con un numero finito di operazioni è y[n]=∑ℓ=1Naℓ y[n−ℓ]+∑k=0Mbk x[n−k].y[n]=\sum_{\ell=1}^{N}a_\ell\,y[n-\ell]+\sum_{k=0}^{M}b_k\,x[n-k]. I NN coefficienti aℓa_\ell sono i coefficienti di retroazione (feedback coefficients), gli M+1M+1 coefficienti bkb_k quelli in avanti (feed-forward coefficients). Servono N+M+1N+M+1 coefficienti. Con N=0N=0 si ricade nei FIR. L'ordine del filtro IIR è NN, il numero di termini di retroazione.

Esempio. y[n]=0,8 y[n−1]+5 x[n]y[n]=0{,}8\,y[n-1]+5\,x[n] è un IIR del primo ordine con N=M=1N=M=1, a1=0,8a_1=0{,}8, b0=5b_0=5, b1=0b_1=0.

Il numero di ritardi NN e MM dà il grado dei due polinomi della funzione di sistema, vista sotto.

Condizioni di riposo iniziale

Per calcolare y[0]y[0] nell'esempio serve y[−1]y[-1], che non è dato dall'equazione. Per rendere il sistema univocamente LTI si fanno due ipotesi, le condizioni di riposo iniziale (initial rest conditions):

  1. l'ingresso è nullo prima di un certo istante n0n_0 (ingresso applicato di colpo): x[n]=0x[n]=0 per n<n0n<n_0;
  2. l'uscita è nulla prima di n0n_0: y[n]=0y[n]=0 per n<n0n<n_0.

Il sistema è "a riposo" finché l'ingresso non arriva. Senza queste condizioni il risultato dipenderebbe dalle condizioni iniziali e il sistema non sarebbe né lineare né invariante nel tempo (Risposta a regime e transitorioLa formula y[n] = H(ω̂) X e^{jω̂n} vale per un esponenziale complesso definito per ogni n. Se l'esponenziale è applicato all'istante n = 0, x[n] = X e^{jω̂n}u[n], l'uscita di un FIR di ordine M ha tre regioni: zero per n < 0, transitorio per 0 ≤ n < M (somma incompleta Σ_{k=0}^{n} h[k]e^{-jω̂k}), regime per n ≥ M (uguale al caso bilatero). Per un IIR stabile il transitorio non si annulla in tempo finito ma tende a zero; la sua analisi dice se il sistema è stabile.Risposta a regime e transitorio →).

Esempio. Con y[n]=0,8y[n−1]+5x[n]y[n]=0{,}8y[n-1]+5x[n] e x[n]=2δ[n]−3δ[n−1]+2δ[n−3]x[n]=2\delta[n]-3\delta[n-1]+2\delta[n-3] (quattro campioni): y[0]=0,8⋅0+5⋅2=10,y[1]=0,8⋅10+5⋅(−3)=−7,y[2]=0,8⋅(−7)+0=−5,6,y[0]=0{,}8\cdot0+5\cdot2=10,\quad y[1]=0{,}8\cdot10+5\cdot(-3)=-7,\quad y[2]=0{,}8\cdot(-7)+0=-5{,}6, y[3]=0,8⋅(−5,6)+5⋅2=5,52,y[4]=0,8⋅5,52=4,416,y[5]=3,5328, …y[3]=0{,}8\cdot(-5{,}6)+5\cdot2=5{,}52,\quad y[4]=0{,}8\cdot5{,}52=4{,}416,\quad y[5]=3{,}5328,\ \dots L'ingresso dura quattro campioni, ma dopo n=3n=3 il termine 5x[n]5x[n] è zero e il termine 0,8 y[n−1]0{,}8\,y[n-1] continua a produrre valori non nulli: l'uscita non si ferma più, e decresce come 0,8n0{,}8^n. Un FIR con ingresso di lunghezza finita ha sempre uscita di lunghezza finita; per un IIR in generale (ma non sempre) no.

Risposta impulsiva

Un sistema LTI è caratterizzato dalla risposta impulsiva h[n]h[n], l'uscita a x[n]=δ[n]x[n]=\delta[n] (Sistemi LTI e convoluzione discretaUn sistema lineare e tempo-invariante (LTI) è completamente descritto dalla sua risposta impulsiva h[n]: y[n] = Σ x[k] h[n-k] = x[n] * h[n] (somma di convoluzione). Si ricava scomponendo x in impulsi traslati e usando linearità e invarianza. La convoluzione è commutativa, associativa e distributiva; una cascata di LTI equivale a un solo filtro con h = h1 * h2 e l'ordine non conta. Se x ha lunghezza N e h lunghezza L, y ha lunghezza N+L-1. Si calcola col metodo della finestra scorrevole o a tabella. I FIR sono LTI; altri sistemi (n·x[n], x[-n], x²) non lo sono.Sistemi LTI e convoluzione discreta →). Con le condizioni di riposo l'IIR è LTI, quindi y[n]=∑k=−∞+∞x[k]h[n−k]y[n]=\sum_{k=-\infty}^{+\infty}x[k]h[n-k].

Primo ordine con b1=0b_1=0. Da h[n]=a1h[n−1]+b0δ[n]h[n]=a_1h[n-1]+b_0\delta[n]: per n<0n<0 è h=0h=0; per n=0n=0 è h[0]=a1⋅0+b0=b0h[0]=a_1\cdot0+b_0=b_0; per n=1n=1 è h[1]=a1b0h[1]=a_1b_0; poi h[2]=a12b0h[2]=a_1^2b_0, e così via. Quindi h[n]=b0 a1n u[n].h[n]=b_0\,a_1^n\,u[n]. Per a1=0,8a_1=0{,}8 e b0=5b_0=5 vale 5, 4, 3,2, 2,56,…5,\,4,\,3{,}2,\,2{,}56,\dots: infinita, ma esponenziale decrescente.

Grafico interattivo: Risposta impulsiva h[n] = 5·0,8^n, n ≥ 0 (a₁ = 0,8, b₀ = 5): infinita, ma decresce geometricamente

Primo ordine con b1≠0b_1\ne0. y[n]=a1y[n−1]+b0x[n]+b1x[n−1]y[n]=a_1y[n-1]+b_0x[n]+b_1x[n-1]. Per linearità e invarianza nel tempo la risposta a b0δ[n]+b1δ[n−1]b_0\delta[n]+b_1\delta[n-1] è la somma delle risposte ai due impulsi: h[n]=b0a1nu[n]+b1a1n−1u[n−1],h[0]=b0,h[n]=(a1b0+b1) a1n−1 (n≥1).h[n]=b_0a_1^nu[n]+b_1a_1^{n-1}u[n-1],\qquad h[0]=b_0,\quad h[n]=(a_1b_0+b_1)\,a_1^{n-1}\ (n\ge1).

Esempio. a1=0,8a_1=0{,}8, b0=5b_0=5, b1=2b_1=2: h={5, 6, 4,8, 3,84, 3,072,… }h=\{5,\,6,\,4{,}8,\,3{,}84,\,3{,}072,\dots\} (verificato con lfilter).

Convoluzione e ricorsione

Per un FIR l'equazione alle differenze e la convoluzione sono la stessa cosa, y[n]=∑k=0Mbkx[n−k]=∑kx[k]h[n−k]y[n]=\sum_{k=0}^{M}b_kx[n-k]=\sum_kx[k]h[n-k] con h[k]=bkh[k]=b_k. Per un IIR la somma di convoluzione ha infiniti termini: usarla è conveniente solo se esistono formule semplici sia per ingresso sia per risposta impulsiva. In pratica gli IIR si calcolano iterando l'equazione alle differenze, che richiede N+M+1N+M+1 moltiplicazioni per campione indipendentemente da quanto è lunga hh.

Risposta al gradino del primo ordine

Per y[n]=a1y[n−1]+b0x[n]y[n]=a_1y[n-1]+b_0x[n] e x[n]=u[n]x[n]=u[n] i valori successivi sono y[0]=b0y[0]=b_0, y[1]=b0(1+a1)y[1]=b_0(1+a_1), y[2]=b0(1+a1+a12)y[2]=b_0(1+a_1+a_1^2), ... cioè y[n]=b0∑k=0na1ky[n]=b_0\sum_{k=0}^{n}a_1^k. Per la somma della serie geometrica troncata (SommatorieIl simbolo di sommatoria, le sue proprietà (linearità, additività, cambio di indice) e le somme notevoli di Gauss e geometrica.Sommatorie →) per a1≠1a_1\ne1: y[n]=b0 1−a1n+11−a1,n≥0.y[n]=b_0\,\frac{1-a_1^{n+1}}{1-a_1},\quad n\ge0 . Tre casi, che sono anche l'analisi di stabilità del sistema:

  1. ∣a1∣<1|a_1|<1: a1n+1→0a_1^{n+1}\to0 e y[n]→b01−a1y[n]\to\frac{b_0}{1-a_1}. Il termine b01−a1\frac{b_0}{1-a_1} è la risposta a regime (steady state) e −b0 a1n+11−a1-\frac{b_0\,a_1^{n+1}}{1-a_1} è il transitorio, che si estingue: sistema stabile.
  2. ∣a1∣>1|a_1|>1: a1n+1a_1^{n+1} cresce senza limite, l'uscita diverge: instabile.
  3. ∣a1∣=1|a_1|=1: caso limite. Per a1=1a_1=1 il gradino dà y[n]=b0(n+1)y[n]=b_0(n+1), che cresce linearmente: instabile. Per a1=−1a_1=-1 è y[n]=b0y[n]=b_0 per nn pari e 00 per nn dispari: l'uscita non diverge per questo ingresso ma il sistema non è stabile (Funzione di sistema, poli, zeri e stabilitàLa funzione di sistema H(z) è la trasformata zeta della risposta impulsiva: con ingresso z^n l'uscita è H(z) z^n. Per un FIR H(z) = Σ b_k z^{-k} è un polinomio con M zeri e M poli in z = 0; in generale H = B(z)/A(z) dall'equazione alle differenze. Sulla circonferenza unitaria H(e^{jω̂}) è la risposta in frequenza: |H| = prodotto delle distanze dagli zeri / prodotto delle distanze dai poli, quindi gli zeri bloccano frequenze e i poli le esaltano. Un LTI causale è BIBO stabile se e solo se tutti i poli hanno modulo < 1 (a meno di cancellazioni polo-zero); i FIR sono sempre stabili.Funzione di sistema, poli, zeri e stabilità →); si parla di stabilità marginale.

Esempio. y[n]=0,8y[n−1]+3x[n]y[n]=0{,}8y[n-1]+3x[n]: y[n]=15(1−0,8n+1)y[n]=15(1-0{,}8^{n+1}) e y[n]→31−0,8=15y[n]\to\frac{3}{1-0{,}8}=15 (con n=25n=25 si è già a 14,995414{,}9954).

Grafico interattivo: Risposta al gradino di y[n] = 0,8 y[n-1] + 3 x[n]: y[n] = 15(1 - 0,8^(n+1)), tende a b₀/(1-a₁) = 15

Funzione di sistema di un IIR

Per un FIR H(z)H(z) è un polinomio in z−1z^{-1} (Trasformata zeta - definizione e regione di convergenzaLa trasformata zeta bilatera X(z) = Σ x[n] z^{-n} associa a una sequenza una funzione della variabile complessa z, definita nella regione di convergenza (ROC), sempre una corona circolare |z| in (R1, R2). Segnale a durata finita: ROC tutto il piano (tranne eventualmente 0 e ∞); causale: |z| > R1 (teorema di Abel); anticausale: |z| < R2; bilatero: intersezione, se non vuota. La stessa espressione algebrica con ROC diverse è la trasformata di segnali diversi: la ROC fa parte della trasformata. Sulla circonferenza unitaria, se è nella ROC, X(e^{jθ}) è la trasformata di Fourier. Le ROC non contengono poli.Trasformata zeta - definizione e regione di convergenza →). Per un IIR, trasformando i due membri dell'equazione alle differenze con la proprietà del ritardo (Proprietà della trasformata zetaProprietà della zeta bilatera con le ROC: linearità (ROC ⊇ intersezione), ritardo x[n-n0] → z^{-n0}X(z) (unilatera: + termini iniziali), convoluzione → prodotto, stabilità BIBO ⇔ circonferenza unitaria nella ROC di H, coniugato X*(z*), inversione temporale X(1/z) con ROC invertita, derivazione n x[n] → -z X'(z), moltiplicazione per a^n → X(z/a) (ROC scalata di |a|), teoremi del valore iniziale e finale (ipotesi sul polo in 1). Con la tabella delle coppie notevoli.Proprietà della trasformata zeta →), Y(z)=∑ℓaℓz−ℓY(z)+∑kbkz−kX(z)Y(z)=\sum_\ell a_\ell z^{-\ell}Y(z)+\sum_kb_kz^{-k}X(z), si ottiene

H(z)=Y(z)X(z)=∑k=0Mbkz−k1−∑ℓ=1Naℓz−ℓ=B(z)A(z).H(z)=\frac{Y(z)}{X(z)}=\frac{\sum_{k=0}^{M}b_kz^{-k}}{1-\sum_{\ell=1}^{N}a_\ell z^{-\ell}}=\frac{B(z)}{A(z)} .

È un rapporto di polinomi: i coefficienti del numeratore sono i coefficienti in avanti bkb_k, il denominatore ha termine noto 11 e gli altri coefficienti sono gli −aℓ-a_\ell. Gli zeri sono le radici di BB, i poli quelle di AA (Funzione di sistema, poli, zeri e stabilitàLa funzione di sistema H(z) è la trasformata zeta della risposta impulsiva: con ingresso z^n l'uscita è H(z) z^n. Per un FIR H(z) = Σ b_k z^{-k} è un polinomio con M zeri e M poli in z = 0; in generale H = B(z)/A(z) dall'equazione alle differenze. Sulla circonferenza unitaria H(e^{jω̂}) è la risposta in frequenza: |H| = prodotto delle distanze dagli zeri / prodotto delle distanze dai poli, quindi gli zeri bloccano frequenze e i poli le esaltano. Un LTI causale è BIBO stabile se e solo se tutti i poli hanno modulo < 1 (a meno di cancellazioni polo-zero); i FIR sono sempre stabili.Funzione di sistema, poli, zeri e stabilità →).

Formula (blocco elementare). h[n]=a1nu[n] ⟷ H(z)=11−a1z−1h[n]=a_1^nu[n]\ \longleftrightarrow\ H(z)=\dfrac{1}{1-a_1z^{-1}}, con regione di convergenza ∣z∣>∣a1∣|z|>|a_1|.

Perché: H(z)=∑n=0∞a1nz−n=∑n=0∞(a1z−1)nH(z)=\sum_{n=0}^{\infty}a_1^nz^{-n}=\sum_{n=0}^\infty(a_1z^{-1})^n è una serie geometrica che converge se ∣a1z−1∣<1|a_1z^{-1}|<1, cioè ∣z∣>∣a1∣|z|>|a_1|, e vale 11−a1z−1\frac1{1-a_1z^{-1}}. È il mattone di tutti gli IIR di ordine superiore (frazioni parziali: Antitrasformata zetaPer tornare da X(z) a x[n] serve anche la ROC. Formula di inversione x[n] = (1/2πj)∮ X(z)z^{n-1}dz (somma dei residui). Nella pratica: ispezione (riconoscere coppie note, scegliendo la ROC), divisione lunga (sviluppo in serie di potenze), frazioni parziali per le razionali. Causale con poli semplici p_k: X = Σ A_k/(1-p_k z^-1) con A_k = [(1-p_k z^-1)X]_{z=p_k}, x[n] = Σ A_k p_k^n u[n]; se il grado del numeratore in z^-1 è ≥ di quello del denominatore c'è anche una parte polinomiale (impulsi). Poli doppi: n a^n u[n]; poli complessi coniugati: r^n cos(ω0 n + φ).Antitrasformata zeta →).

Per il primo ordine il polo è in z=a1z=a_1 e la stabilità è ∣a1∣<1|a_1|<1: il polo è dentro la circonferenza unitaria e la ROC la contiene. Se ∣a1∣=1|a_1|=1 il polo è sulla circonferenza e la sola funzione di sistema non permette di concludere in modo semplice sulla stabilità (come nel caso a1=±1a_1=\pm1 sopra).

Esempio. y[n]=a1y[n−1]+b0x[n]+b1x[n−1]y[n]=a_1y[n-1]+b_0x[n]+b_1x[n-1] ha H(z)=b0+b1z−11−a1z−1H(z)=\frac{b_0+b_1z^{-1}}{1-a_1z^{-1}}, con uno zero in −b1/b0-b_1/b_0 e un polo in a1a_1.

Risposta in frequenza

Per un IIR stabile, H(ejω^)H(e^{j\hat\omega}) si ottiene con z=ejω^z=e^{j\hat\omega} (Risposta in frequenza dei sistemi FIRSe all'ingresso di un FIR c'è un esponenziale complesso A e^{jφ} e^{jω̂n} (per ogni n), l'uscita è lo stesso esponenziale moltiplicato per H(ω̂) = Σ b_k e^{-jω̂k}: la frequenza non cambia, ampiezza e fase sono modificate da |H| (guadagno) e ∠H (sfasamento). Per sovrapposizione si trattano somme di sinusoidi. H è periodica di periodo 2π e, per coefficienti reali, hermitiana (|H| pari, fase dispari). La cascata ha H = H1·H2. Esempi: ritardo (fase lineare), differenza prima (passa-alto), {1,2,1} (passa-basso), media mobile di L punti (Dirichlet: |H| = |sin(Lω̂/2)/(L sin(ω̂/2))|, fase lineare -(L-1)ω̂/2).Risposta in frequenza dei sistemi FIR →). Per H(z)=11−az−1H(z)=\frac1{1-az^{-1}} è ∣H(ejω^)∣=11−2acos⁡ω^+a2|H(e^{j\hat\omega})|=\frac1{\sqrt{1-2a\cos\hat\omega+a^2}}: per a>0a>0 il polo "attrae" le basse frequenze (passa-basso, massimo 11−a\frac1{1-a} in ω^=0\hat\omega=0), per a<0a<0 le alte (passa-alto, massimo in π\pi). Più ∣a∣|a| è vicino a 11, più il picco è alto e stretto.

Grafico interattivo: |H(ω)| = 1/√(1 - 2a cos ω + a²) per H(z) = 1/(1 - a z^-1): a > 0 passa-basso, a < 0 passa-alto; più |a| è vicino a 1, più il picco è alto e stretto

Esempio. a=0,8a=0{,}8: ∣H(1)∣=10,2=5|H(1)|=\frac1{0{,}2}=5 in ω^=0\hat\omega=0 e 11,8=0,556\frac1{1{,}8}=0{,}556 in ω^=π\hat\omega=\pi; con a=0,5a=0{,}5 i valori sono 22 e 0,6670{,}667.

Come si progetta un IIR

Un IIR si specifica in genere con il solo modulo della risposta in frequenza (oppure con il modulo e il ritardo di gruppo). Per le specifiche sul solo modulo si hanno tre strade:

  1. per tentativi (by trial): si scelgono a mano poli e zeri. Va bene quando bastano pochi coefficienti: filtri notch per eliminare un'interferenza sinusoidale (rete a 50/60 Hz), passa-basso o passa-alto molto semplici. Esempio tipico: zeri sulla circonferenza unitaria in e±jω^0e^{\pm j\hat\omega_0} (annullano la frequenza) e poli vicini, in re±jω^0re^{\pm j\hat\omega_0} con r<1r<1 (la risposta torna a uno appena ci si allontana): H(z)=b01−2cos⁡ω^0z−1+z−21−2rcos⁡ω^0z−1+r2z−2H(z)=b_0\frac{1-2\cos\hat\omega_0z^{-1}+z^{-2}}{1-2r\cos\hat\omega_0z^{-1}+r^2z^{-2}} (Esercizio - Laboratorio 5 - notch IIR e vuvuzela);
  2. metodo di trasformazione s→zs\to z: si parte da un filtro analogico noto e lo si mappa nel dominio zz (Trasformazione bilinearePer progettare un IIR si parte da un filtro analogico noto $H_a(s)$ e si sostituisce $s=\frac{z-1}{z+1}$ (trasformazione bilineare): $H(z)=H_a!\big(\frac{z-1}{z+1}\big)$. Questa mappa manda funzioni razionali in funzioni razionali, l'asse immaginario $s=j\Omega$ nella circonferenza unitaria $z=e^{j\hat\omega}$ e il semipiano sinistro nel disco unitario, quindi conserva la stabilità. Poli e zeri vanno in $\hat z=\frac{1+\hat s}{1-\hat s}$ ($s=0\to z=1$, $s=\infty\to z=-1$). Le frequenze si corrispondono con $\Omega=\tan\frac{\hat\omega}{2}$, cioè $\hat\omega=2\arctan\Omega$: relazione non lineare che comprime l'asse e distorce le frequenze (warping). Il modulo si conserva (oscillazioni, tolleranze $\delta_p,\delta_s$) ma la fase no: si perde la fase lineare. Per i filtri selettivi in frequenza la distorsione si compensa progettando il filtro analogico alle frequenze trasformate $\Omega_p=\tan\frac{\hat\omega_p}2$, $\Omega_s=\tan\frac{\hat\omega_s}2$ (prewarping).Trasformazione bilineare →, Filtri di ButterworthIl filtro di Butterworth analogico di ordine $N$ e pulsazione di taglio a $-3$ dB $\Omega_0$ ha $|H_a(j\Omega)|^2=\frac1{1+(\Omega/\Omega_0)^{2N}}$: massimamente piatto in $\Omega=0$, monotono decrescente, valore $\frac1{\sqrt2}$ in $\Omega_0$. È un filtro tutti-poli: i $2N$ poli di $H_a(s)H_a(-s)$ stanno su una circonferenza di raggio $\Omega_0$, $H_a(s)$ prende i $N$ poli del semipiano sinistro $s_k=\Omega_0e^{j\pi(\frac12+\frac{2k-1}{2N})}$, $H_a(s)=\Omega_0^N/\prod(s-s_k)$. Con la bilineare $H(z)=A\frac{(1+z^{-1})^N}{\prod(1-p_kz^{-1})}$, $p_k=\frac{1+s_k}{1-s_k}$, zero di molteplicità $N$ in $z=-1$, $A$ tale che $H(1)=1$; il modulo digitale è $|H(e^{j\hat\omega})|^2=\frac1{1+(\tan(\hat\omega/2)/\Omega_0)^{2N}}$. Il filtro è fissato da $N$ e $\Omega_0$. Dalle specifiche ($\varepsilon^2=10^{R_p/10}-1$, $A=10^{R_s/20}$, $\Omega_p=\tan\frac{\hat\omega_p}2$, $\Omega_s=\tan\frac{\hat\omega_s}2$): $N=\Big\lceil\frac{\log_{10}\frac{A^2-1}{\varepsilon^2}}{2\log_{10}(\Omega_s/\Omega_p)}\Big\rceil$ e $\Omega_0$ fra $\Omega_p\varepsilon^{-1/N}$ e $\Omega_s(A^2-1)^{-1/2N}$.Filtri di Butterworth →);
  3. ottimizzazione numerica nel dominio zz: si cercano i coefficienti con un algoritmo di approssimazione.

Confronto con i FIR

FIR IIR
uscita solo ingresso, y[n]=∑bkx[n−k]y[n]=\sum b_kx[n-k] ingresso e uscite passate
risposta impulsiva finita, N+1N+1 campioni infinita
H(z)H(z) polinomio, solo zeri (poli in z=0z=0) rapporto di polinomi, poli e zeri
stabilità sempre stabile (BIBO) solo se i poli stanno dentro la circonferenza unitaria
fase può essere esattamente lineare non può essere lineare; il ritardo di gruppo varia con la frequenza
ordine per le stesse specifiche di modulo alto molto più basso
calcolo convoluzione, anche a blocchi con la FFT ricorsione, un numero fisso di operazioni per campione
con ingresso finito uscita finita uscita in generale infinita (transitorio)

L'esempio numerico: banda passante fino a 0,25π0{,}25\pi, banda oscura da 0,375π0{,}375\pi, Rp=0,055R_p=0{,}055 dB, As=50A_s=50 dB (le stesse specifiche dell'esempio in Progetto di filtri FIR con il metodo delle finestreUn filtro FIR a fase lineare di tipo I (ordine $N$ pari, $h[n]=h[N-n]$) ha risposta $H(e^{j\hat\omega})=e^{-j\hat\omega N/2}\bar H(\hat\omega)$ con ampiezza $\bar H(\hat\omega)=\sum_{n=0}^{N/2}p_n\cos(n\hat\omega)$. Per approssimare un'ampiezza desiderata $D(\hat\omega)$ (passa-basso: $1$ in banda passante, $0$ in banda oscura, con tolleranze $\delta_p,\delta_s$ e frequenze $\hat\omega_p,\hat\omega_s$) ci sono tre metodi. Finestre: si tronca la serie di Fourier di $D$, cioè $h[n]=h_d[n-N/2],w[n]$ con $h_d[n]=\frac{\hat\omega_0}{\pi}\operatorname{sinc}\frac{\hat\omega_0 n}{\pi}$; la rettangolare è ottima in errore quadratico ma dà il fenomeno di Gibbs (9%, $21$ dB), le finestre rastremate (Hann, Hamming, Blackman, Kaiser) abbassano i lobi laterali allargando la transizione ($\hat\omega_s-\hat\omega_p\simeq\alpha,2\pi/L$). Campionamento in frequenza: $h=\mathrm{IDFT}$ dei campioni di $D$, esatto solo sui campioni. Minimax (Parks-McClellan): errore pesato minimo nel caso peggiore, soluzione equiripple con almeno $r+2$ alternanze, ordine più basso a parità di specifiche.Progetto di filtri FIR con il metodo delle finestre →). Un FIR a fase lineare richiede N=54N=54 (Hamming) o N=42N=42 (minimax). Un filtro IIR di Butterworth richiede ordine 1717, un Chebyshev di tipo 1 ordine 99 e un ellittico ordine 66 (calcolati con scipy.signal.buttord, cheb1ord, ellipord). Il costo è la fase: un Butterworth di ordine 88 con taglio 0,3125π0{,}3125\pi ha ritardo di gruppo 4,84{,}8 campioni a frequenze basse e 10,910{,}9 campioni a 0,3π0{,}3\pi, vicino al taglio, mentre un FIR simmetrico ha ritardo costante N/2N/2. Un segnale che occupa la banda passante e la banda di transizione viene quindi deformato dall'IIR. Ancora un confronto significativo: in un notch FIR con zeri sulla circonferenza il ritardo di gruppo è 11 campione a tutte le frequenze, mentre in quello IIR del laboratorio 5 con r=0,99r=0{,}99 arriva a circa 100100 campioni vicino alla frequenza tolta.

Scelta tra FIR e IIR: se serve fase lineare (audio, immagini, dati dove la forma d'onda conta), il FIR; se contano i costi di calcolo e la fase non è critica (controllo, filtri per eliminare un disturbo), l'IIR.

Domande d'esame

  1. Descrivi le caratteristiche dei filtri IIR e commenta la differenza con i FIR. Traccia: equazione alle differenze con retroazione, ordine NN, condizioni di riposo iniziale; H(z)=B/AH(z)=B/A, poli e zeri; risposta impulsiva infinita; stabilità solo con poli dentro la circonferenza, mentre i FIR sono sempre stabili; fase non lineare contro fase lineare dei FIR simmetrici; ordine molto più basso per le stesse specifiche di modulo; calcolo per ricorsione. Esempio numerico del confronto 17/9/617/9/6 contro 54/4254/42.
  2. Definisci la risposta a regime e il transitorio per un IIR del primo ordine y[n]=a1y[n−1]+b0x[n]y[n]=a_1y[n-1]+b_0x[n] e dì cosa ne puoi dedurre sulla stabilità. Traccia: risposta al gradino y[n]=b01−a1n+11−a1y[n]=b_0\frac{1-a_1^{n+1}}{1-a_1}; regime b01−a1\frac{b_0}{1-a_1} e transitorio −b0a1n+11−a1-\frac{b_0a_1^{n+1}}{1-a_1}; per ∣a1∣<1|a_1|<1 il transitorio si estingue e il sistema è stabile, per ∣a1∣>1|a_1|>1 diverge, per ∣a1∣=1|a_1|=1 caso limite (a1=1a_1=1 cresce linearmente, a1=−1a_1=-1 oscilla); legame con il polo z=a1z=a_1 e la ROC ∣z∣>∣a1∣|z|>|a_1|.
  3. Perché un IIR si calcola iterando l'equazione alle differenze e non con la convoluzione? Traccia: hh infinita, somma infinita; l'equazione alle differenze ha N+M+1N+M+1 operazioni per campione; condizioni di riposo iniziale.

Versione ripasso

Esercizi su questo argomento

Teoria collegata