Salta al contenuto
Note per Studenti Esercizio - Cascata di IIR e ritardo puro

Esercizio - Cascata di IIR e ritardo puro

Testo (esercitazione del corso Multimedia Signal Processing, UniPD, lezione 24, esercizio 2.3 sui filtri IIR). Tre sistemi in cascata, x[n]→H1(z)→v1[n]→H2(z)→v2[n]→H3(z)→y[n]x[n]\to H_1(z)\to v_1[n]\to H_2(z)\to v_2[n]\to H_3(z)\to y[n], con H1(z)=51−13z−1,H2(z)=21−12z−1,H3(z)=b0+b1z−1+b2z−2+b3z−3.H_1(z)=\frac{5}{1-\frac13z^{-1}},\qquad H_2(z)=\frac{2}{1-\frac12z^{-1}},\qquad H_3(z)=b_0+b_1z^{-1}+b_2z^{-2}+b_3z^{-3}.

  1. Determinare i coefficienti bkb_k in modo che l'uscita sia l'impulso ritardato δ[n−1]\delta[n-1] quando l'ingresso è x[n]=δ[n]x[n]=\delta[n].
  2. Dire, motivando, se è vero che "per qualunque ingresso x[n]x[n] l'uscita è sempre y[n]=x[n−1]y[n]=x[n-1]".

Teoria usata: 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à →, 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 →, Filtri IIR - definizione e confronto con i FIRUn filtro IIR (infinite impulse response) è un sistema LTI descritto da $y[n]=\sum_{\ell=1}^{N}a_\ell y[n-\ell]+\sum_{k=0}^{M}b_kx[n-k]$: l'uscita usa anche le uscite passate (retroazione), per questo si chiama ricorsivo. Con le condizioni di riposo iniziale è LTI, $H(z)=\frac{\sum b_kz^{-k}}{1-\sum a_\ell z^{-\ell}}$ è un rapporto di polinomi, l'ordine è $N$ (numero di poli) e la risposta impulsiva ha durata infinita. Nel primo ordine $y[n]=a_1y[n-1]+b_0x[n]$ si ha $h[n]=b_0a_1^nu[n]$, ROC $|z|>|a_1|$, stabile se $|a_1|<1$; il gradino dà $b_0\frac{1-a_1^{n+1}}{1-a_1}\to\frac{b_0}{1-a_1}$. Si implementa iterando l'equazione alle differenze, non con la convoluzione. Rispetto ai FIR gli IIR rispettano le stesse specifiche di modulo con ordine molto più basso, ma possono essere instabili e non hanno fase lineare. Progetto: per tentativi (notch), con la trasformazione $s\to z$ dai filtri analogici, o con ottimizzazione numerica.Filtri IIR - definizione e confronto con i FIR →.

1. Condizione sulla funzione di sistema

La cascata di sistemi LTI ha funzione di sistema uguale al prodotto: H(z)=H1(z)H2(z)H3(z)H(z)=H_1(z)H_2(z)H_3(z). Se l'ingresso è δ[n]\delta[n] la trasformata dell'ingresso è 11, quindi Y(z)=H(z)Y(z)=H(z); l'uscita desiderata δ[n−1]\delta[n-1] ha trasformata z−1z^{-1}. Dunque si impone H(z)=z−1H(z)=z^{-1}: H3(z)=z−1H1(z)H2(z)=z−1 (1−13z−1)(1−12z−1)5⋅2=z−110(1−56z−1+16z−2).H_3(z)=\frac{z^{-1}}{H_1(z)H_2(z)}=\frac{z^{-1}\,\big(1-\frac13z^{-1}\big)\big(1-\frac12z^{-1}\big)}{5\cdot2}=\frac{z^{-1}}{10}\Big(1-\frac56z^{-1}+\frac16z^{-2}\Big). Il prodotto è (1−13z−1)(1−12z−1)=1−12z−1−13z−1+16z−2=1−56z−1+16z−2(1-\frac13z^{-1})(1-\frac12z^{-1})=1-\frac12z^{-1}-\frac13z^{-1}+\frac16z^{-2}=1-\frac56z^{-1}+\frac16z^{-2}. Quindi H3(z)=110z−1−112z−2+160z−3,b0=0,  b1=110,  b2=−112,  b3=160.H_3(z)=\frac1{10}z^{-1}-\frac1{12}z^{-2}+\frac1{60}z^{-3},\qquad b_0=0,\ \ b_1=\frac1{10},\ \ b_2=-\frac1{12},\ \ b_3=\frac1{60}. H3H_3 è un FIR di ordine 33 con b0=0b_0=0: ha due zeri in z=13z=\frac13 e z=12z=\frac12 che cancellano esattamente i poli di H1H_1 e H2H_2. Verifica: l'impulso in ingresso dà in uscita δ[n−1]\delta[n-1] (numericamente: y={0,1,0,0,… }y=\{0,1,0,0,\dots\}); la risposta impulsiva di H3H_3 è {0; 0,1; −0,0833; 0,01667}\{0;\,0{,}1;\,-0{,}0833;\,0{,}01667\}.

2. Vale per ogni ingresso?

Sì, a patto che i tre sistemi partano da condizioni di riposo. Il sistema complessivo è LTI con funzione di sistema H(z)=z−1H(z)=z^{-1}, cioè è il ritardo puro: la sua equazione alle differenze è y[n]=x[n−1]y[n]=x[n-1] per qualunque x[n]x[n] (la risposta a δ[n]\delta[n] è δ[n−1]\delta[n-1], e per linearità e invarianza nel tempo, y[n]=∑kx[k]δ[n−k−1]=x[n−1]y[n]=\sum_kx[k]\delta[n-k-1]=x[n-1]). Anche i poli 13,12\frac13,\frac12 stanno dentro il cerchio unitario, quindi H1H_1, H2H_2 sono stabili e nessun segnale interno può esplodere.

Verifica numerica: con un ingresso casuale di 5050 campioni la differenza fra y[n]y[n] e x[n−1]x[n-1] è 7⋅10−167\cdot10^{-16}.

Precisazione. L'uguaglianza vale per l'ingresso-uscita con riposo iniziale. Dentro la cascata i segnali v1,v2v_1,v_2 non sono ritardi puri (H1H_1 e H2H_2 hanno risposta impulsiva infinita). Se H1H_1 partisse con uno stato interno non nullo (v1[−1]=1v_1[-1]=1, per esempio) i modi (13)n(\frac13)^n e (12)n(\frac12)^n dentro i primi due blocchi darebbero una piccola differenza; nell'esempio provato l'uscita si discosta da x[n−1]x[n-1] solo a n=1n=1 (0,06670{,}0667) e poi torna esatta, perché il FIR H3H_3 è lungo 33 e annulla quei modi. Con la cancellazione polo-zero esatta il risultato richiede coefficienti esatti: con coefficienti arrotondati un modo non cancellato esisterebbe sempre, ma decadrebbe (poli stabili).

Versione ripasso

Esercizio 1. Cascata di sistemi LTI: H(z)=H1(z)H2(z)H3(z)H(z)=H_1(z)H_2(z)H_3(z). Con ingresso δ[n]\delta[n] si ha Y(z)=H(z)Y(z)=H(z), e l'uscita desiderata δ[n−1]\delta[n-1] ha trasformata z−1z^{-1}. Quindi H(z)=z−1H(z)=z^{-1} e H3(z)=z−1(1−13z−1)(1−12z−1)5⋅2=z−110(1−56z−1+16z−2)H_3(z)=\frac{z^{-1}\big(1-\frac13z^{-1}\big)\big(1-\frac12z^{-1}\big)}{5\cdot2}=\frac{z^{-1}}{10}\Big(1-\frac56z^{-1}+\frac16z^{-2}\Big) H3(z)=110z−1−112z−2+160z−3,b0=0,  b1=110,  b2=−112,  b3=160.H_3(z)=\frac1{10}z^{-1}-\frac1{12}z^{-2}+\frac1{60}z^{-3},\qquad b_0=0,\ \ b_1=\frac1{10},\ \ b_2=-\frac1{12},\ \ b_3=\frac1{60}. H3H_3 è un FIR di ordine 33 con due zeri in z=13z=\frac13 e z=12z=\frac12 che cancellano i poli di H1H_1 e H2H_2. Verifica: la risposta a δ[n]\delta[n] è δ[n−1]\delta[n-1], cioè {0,1,0,0,… }\{0,1,0,0,\dots\}.

Esercizio 2. Sì, con riposo iniziale: H(z)=z−1H(z)=z^{-1} è il ritardo puro, y[n]=x[n−1]y[n]=x[n-1] per ogni xx. Verifica numerica su 5050 campioni casuali: differenza 7⋅10−167\cdot10^{-16}.

Teoria: 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à →, 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 →, Filtri IIR - definizione e confronto con i FIRUn filtro IIR (infinite impulse response) è un sistema LTI descritto da $y[n]=\sum_{\ell=1}^{N}a_\ell y[n-\ell]+\sum_{k=0}^{M}b_kx[n-k]$: l'uscita usa anche le uscite passate (retroazione), per questo si chiama ricorsivo. Con le condizioni di riposo iniziale è LTI, $H(z)=\frac{\sum b_kz^{-k}}{1-\sum a_\ell z^{-\ell}}$ è un rapporto di polinomi, l'ordine è $N$ (numero di poli) e la risposta impulsiva ha durata infinita. Nel primo ordine $y[n]=a_1y[n-1]+b_0x[n]$ si ha $h[n]=b_0a_1^nu[n]$, ROC $|z|>|a_1|$, stabile se $|a_1|<1$; il gradino dà $b_0\frac{1-a_1^{n+1}}{1-a_1}\to\frac{b_0}{1-a_1}$. Si implementa iterando l'equazione alle differenze, non con la convoluzione. Rispetto ai FIR gli IIR rispettano le stesse specifiche di modulo con ordine molto più basso, ma possono essere instabili e non hanno fase lineare. Progetto: per tentativi (notch), con la trasformazione $s\to z$ dai filtri analogici, o con ottimizzazione numerica.Filtri IIR - definizione e confronto con i FIR →.

Errori tipici:

  • Scrivere H3=H⋅H1H2H_3=H\cdot H_1H_2 invece di H/(H1H2)H/(H_1H_2): la cascata moltiplica, quindi H3H_3 si ricava dividendo.
  • Dire che la cascata vale sempre: con stati interni non nulli compaiono modi transitori.

Teoria collegata