Salta al contenuto
Note per Studenti Esercizio - Fase lineare e zeri dei filtri FIR

Esercizio - Fase lineare e zeri dei filtri FIR

In questa pagina 4

Testo (esercizio di ripasso sulle lezioni 11 e 13 del corso Multimedia Signal Processing, UniPD; dati scelti dall'esempio delle slide). Sono dati cinque FIR causali: h1={3,1,−4,1,3},h2={1,2,3,3,2,1},h3={1,2,0,−2,−1},h4={2,3,−3,−2},h5={1,2,3,2}.h_1=\{3,1,-4,1,3\},\quad h_2=\{1,2,3,3,2,1\},\quad h_3=\{1,2,0,-2,-1\},\quad h_4=\{2,3,-3,-2\},\quad h_5=\{1,2,3,2\}.

  1. Per ciascuno dire se ha fase lineare; in caso affermativo indicare il tipo (I-IV), l'ordine NN, il ritardo di gruppo e quali zeri in z=±1z=\pm1 sono forzati; verificare calcolando H(1)H(1) e H(−1)H(-1).
  2. Fattorizzare h2h_2, h3h_3, h4h_4 come prodotto di (1+z−1)(1+z^{-1}), (1−z−2)(1-z^{-2}) o (1−z−1)(1-z^{-1}) per un tipo I.
  3. Costruire un FIR di tipo II di ordine 33 con zeri in e±jπ/3e^{\pm j\pi/3}.
  4. Quali di questi filtri possono essere passa-basso? Passa-alto?

Teoria usata: Sistemi a fase lineare e assenza di distorsioneUn sistema non deforma il segnale se y[n] = K x[n-n0]: modulo costante e fase lineare -n0 w, cioè ritardo di gruppo costante n0. Un sistema reale e causale ha fase lineare (generalizzata) se e solo se è FIR con risposta impulsiva simmetrica h[n] = h[N-n] (ampiezza pari, fase -N w/2) o antisimmetrica h[n] = -h[N-n] (ampiezza dispari, fase -N w/2 + pi/2). Il ritardo di gruppo è N/2: intero se N è pari (vale la condizione di non distorsione), semi-intero se N è dispari (uscita interpolata e ritardata). Un IIR causale non può essere simmetrico, quindi non ha fase lineare esatta.Sistemi a fase lineare e assenza di distorsione →, Filtri FIR a fase lineare - tipi e zeriI FIR a fase lineare di ordine N si dividono in quattro tipi: I (N pari, h simmetrica), II (N dispari, simmetrica), III (N pari, antisimmetrica), IV (N dispari, antisimmetrica). Si scrive H = e^{-jwN/2} e^{jb} A(w), con A somma di coseni (tipi I e II) o di seni (III e IV). Dalla relazione H(z) = ±z^{-N} H(1/z) segue che gli zeri vengono in gruppi (z0, z0*, 1/z0, 1/z0*) e che ci sono zeri forzati: tipo II in z = -1, tipo III in z = 1 e z = -1, tipo IV in z = 1, tipo I nessuno. Quindi II non fa passa-alto, III non fa passa-basso né passa-alto, IV non fa passa-basso. Ogni tipo II, III, IV è un tipo I moltiplicato per (1+z^-1), (1-z^-2), (1-z^-1).Filtri FIR a fase lineare - tipi e zeri →, 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à →.

Punto 1: tipo, ritardo e zeri forzati

Si controlla la simmetria h[n]=±h[N−n]h[n]=\pm h[N-n] e la lunghezza (N+1N+1 campioni).

filtro NN simmetria tipo ritardo N/2N/2 H(1)H(1) H(−1)H(-1) zeri forzati
h1h_1 4 simmetrica I 22 44 00 nessuno (vedi nota)
h2h_2 5 simmetrica II 2.52.5 1212 00 z=−1z=-1
h3h_3 4 antisimmetrica III 22 00 00 z=1z=1 e z=−1z=-1
h4h_4 3 antisimmetrica IV 1.51.5 00 −2-2 z=1z=1
h5h_5 3 né simmetrica né antisimmetrica no fase lineare non costante

Calcoli: H(1)=∑h[n]H(1)=\sum h[n] e H(−1)=∑h[n](−1)nH(-1)=\sum h[n](-1)^n. Per h2h_2: 1−2+3−3+2−1=01-2+3-3+2-1=0; per h3h_3: 1−2+0+2−1=01-2+0+2-1=0; per h4h_4: 2−3−3+2=−22-3-3+2=-2 (e quindi H(−1)≠0H(-1)\neq0, perché il tipo IV non ha lo zero in −1-1). Il ritardo di gruppo calcolato numericamente (scipy.signal.group_delay) è costante e vale 22, 2.52.5, 22, 1.51.5 per h1,…,h4h_1,\dots,h_4; per h5h_5 varia (1.761.76 in 0.30.3 rad, 1.971.97 in 11 rad, 4.414.41 in 22 rad), quindi h5h_5 distorce la fase.

Nota su h1h_1. È di tipo I, quindi il tipo non forza zeri in ±1\pm1; ma può averne: qui H(−1)=3−1−4−1+3=0H(-1)=3-1-4-1+3=0 per i valori scelti. Basta cambiare un coefficiente (per esempio {1,2,3,2,1}\{1,2,3,2,1\} ha H(−1)=1H(-1)=1) per perdere lo zero: non è un vincolo del tipo. Gli zeri di h1h_1 sono −1-1 (doppio) e 0.8333±0.5528j0.8333\pm0.5528j, che sta sulla circonferenza (∣⋅∣=1\lvert\cdot\rvert=1); la coppia è coniugata e coincide con la propria reciproca, come previsto.

Punto 2: fattorizzazioni

Si divide per il fattore noto (divisione di polinomi in z−1z^{-1}):

  • h2={1,2,3,3,2,1}=(1+z−1){1,1,2,1,1}h_2=\{1,2,3,3,2,1\}=(1+z^{-1})\{1,1,2,1,1\}, con {1,1,2,1,1}\{1,1,2,1,1\} simmetrico di ordine 44 (tipo I);
  • h3={1,2,0,−2,−1}=(1−z−2){1,2,1}h_3=\{1,2,0,-2,-1\}=(1-z^{-2})\{1,2,1\}, con il tipo I {1,2,1}=(1+z−1)2\{1,2,1\}=(1+z^{-1})^2 (ordine 22): zero semplice in z=1z=1 e triplo in z=−1z=-1 (11 dal fattore 1−z−21-z^{-2} e 22 dal tipo I), come confermano le radici calcolate con np.roots;
  • h4={2,3,−3,−2}=(1−z−1){2,5,2}h_4=\{2,3,-3,-2\}=(1-z^{-1})\{2,5,2\} con {2,5,2}\{2,5,2\} di tipo I (ordine 22), di zeri −2-2 e −0.5-0.5 (coppia reale reciproca: (−2)(−0.5)=1(-2)(-0.5)=1).

Le ampiezze di conseguenza: Ah2=2cos⁡ω^2 AIA_{h_2}=2\cos\frac{\hat\omega}2\,A_I, Ah3=2sin⁡ω^ AIA_{h_3}=2\sin\hat\omega\,A_I, Ah4=2sin⁡ω^2AIA_{h_4}=2\sin\frac{\hat\omega}2A_I, con AIA_I ampiezza del fattore di tipo I.

Punto 3: tipo II con zeri in e±jπ/3e^{\pm j\pi/3}

Un tipo II di ordine 33 ha 44 coefficienti, quindi 33 zeri: uno è forzato in z=−1z=-1, gli altri due sono la coppia coniugata e±jπ/3e^{\pm j\pi/3} (sulla circonferenza: coppia coniugata, già reciproca di se stessa). Il polinomio è H(z)=(1+z−1)(1−ejπ/3z−1)(1−e−jπ/3z−1)=(1+z−1)(1−2cos⁡π3z−1+z−2)=(1+z−1)(1−z−1+z−2)=1+z−3,H(z)=(1+z^{-1})(1-e^{j\pi/3}z^{-1})(1-e^{-j\pi/3}z^{-1})=(1+z^{-1})\big(1-2\cos\tfrac\pi3z^{-1}+z^{-2}\big)=(1+z^{-1})(1-z^{-1}+z^{-2})=1+z^{-3}, cioè h={1,0,0,1}h=\{1,0,0,1\}, simmetrica con N=3N=3 (tipo II) ✓. Gli zeri di 1+z−31+z^{-3} sono le soluzioni di z3=−1z^3=-1: −1-1, e±jπ/3e^{\pm j\pi/3} ✓ (verificato con np.roots). La risposta è H=e−j3ω^/2 2cos⁡(3ω^/2)H=e^{-j3\hat\omega/2}\,2\cos(3\hat\omega/2): ritardo 1.51.5 campioni, ampiezza che si annulla in ω^=π/3, π\hat\omega=\pi/3,\ \pi.

Punto 4: filtri selettivi

Si guarda A(0)A(0) e A(π)A(\pi):

  • h1h_1 (tipo I): senza vincoli; H(1)=4≠0H(1)=4\ne0 e H(−1)=0H(-1)=0: ha guadagno non nullo in 00 e nullo in π\pi, quindi può essere un passa-basso.
  • h2h_2 (tipo II): H(−1)=0H(-1)=0, H(1)=12H(1)=12: passa-basso, mai passa-alto.
  • h3h_3 (tipo III): H(1)=H(−1)=0H(1)=H(-1)=0: né passa-basso né passa-alto; compatibile con un passa-banda (ampiezza A=2sin⁡ω^ (… )A=2\sin\hat\omega\,(\dots)).
  • h4h_4 (tipo IV): H(1)=0H(1)=0, H(−1)=−2H(-1)=-2: passa-alto, mai passa-basso.
  • h5h_5: nessuna conclusione sulla fase lineare; come selettività, H(1)=8H(1)=8 e H(−1)=0H(-1)=0 (è passa-basso, ma distorce la fase).

Versione ripasso

Punto 1 - tipo, ritardo, zeri forzati. Il FIR è a fase lineare se h[n]=±h[N−n]h[n]=\pm h[N-n]. Ritardo di gruppo N/2N/2. Zeri forzati dal tipo: tipo II in z=−1z=-1; tipo III in z=±1z=\pm1; tipo IV in z=1z=1.

  • h1h_1: simmetrico, tipo I, N=4N=4, ritardo 22. H(1)=4H(1)=4, H(−1)=0H(-1)=0 per i valori scelti, ma lo zero in −1-1 non è forzato dal tipo.
  • h2h_2: simmetrico, tipo II, N=5N=5, ritardo 2,52{,}5. H(1)=12H(1)=12, H(−1)=0H(-1)=0.
  • h3h_3: antisimmetrico, tipo III, N=4N=4, ritardo 22. H(1)=H(−1)=0H(1)=H(-1)=0.
  • h4h_4: antisimmetrico, tipo IV, N=3N=3, ritardo 1,51{,}5. H(1)=0H(1)=0, H(−1)=−2H(-1)=-2.
  • h5h_5: non simmetrico né antisimmetrico, non ha fase lineare.

Punto 2 - fattorizzazioni. h2=(1+z−1){1,1,2,1,1}h_2=(1+z^{-1})\{1,1,2,1,1\}; h3=(1−z−2)(1+z−1)2h_3=(1-z^{-2})(1+z^{-1})^2, con zero semplice in 11 e triplo in −1-1; h4=(1−z−1){2,5,2}h_4=(1-z^{-1})\{2,5,2\}, zeri −2-2 e −12-\frac12.

Punto 3 - tipo II di ordine 33 con zeri in e±jπ/3e^{\pm j\pi/3}. H(z)=(1+z−1)(1−z−1+z−2)=1+z−3,H(z)=(1+z^{-1})\big(1-z^{-1}+z^{-2}\big)=1+z^{-3}, cioè h={1,0,0,1}h=\{1,0,0,1\}, simmetrico con N=3N=3. Risposta H=e−j3ω^/2 2cos⁡(3ω^/2)H=e^{-j3\hat\omega/2}\,2\cos(3\hat\omega/2), ampiezza nulla in π3\frac\pi3 e π\pi.

Punto 4 - selettività.

  • h1h_1 e h2h_2: possono essere passa-basso, mai passa-alto (h2h_2 ha zero in π\pi).
  • h3h_3: nulla in 00 e π\pi, compatibile con un passa-banda.
  • h4h_4: H(1)=0H(1)=0, passa-alto.

Teoria: Sistemi a fase lineare e assenza di distorsioneUn sistema non deforma il segnale se y[n] = K x[n-n0]: modulo costante e fase lineare -n0 w, cioè ritardo di gruppo costante n0. Un sistema reale e causale ha fase lineare (generalizzata) se e solo se è FIR con risposta impulsiva simmetrica h[n] = h[N-n] (ampiezza pari, fase -N w/2) o antisimmetrica h[n] = -h[N-n] (ampiezza dispari, fase -N w/2 + pi/2). Il ritardo di gruppo è N/2: intero se N è pari (vale la condizione di non distorsione), semi-intero se N è dispari (uscita interpolata e ritardata). Un IIR causale non può essere simmetrico, quindi non ha fase lineare esatta.Sistemi a fase lineare e assenza di distorsione →, Filtri FIR a fase lineare - tipi e zeriI FIR a fase lineare di ordine N si dividono in quattro tipi: I (N pari, h simmetrica), II (N dispari, simmetrica), III (N pari, antisimmetrica), IV (N dispari, antisimmetrica). Si scrive H = e^{-jwN/2} e^{jb} A(w), con A somma di coseni (tipi I e II) o di seni (III e IV). Dalla relazione H(z) = ±z^{-N} H(1/z) segue che gli zeri vengono in gruppi (z0, z0*, 1/z0, 1/z0*) e che ci sono zeri forzati: tipo II in z = -1, tipo III in z = 1 e z = -1, tipo IV in z = 1, tipo I nessuno. Quindi II non fa passa-alto, III non fa passa-basso né passa-alto, IV non fa passa-basso. Ogni tipo II, III, IV è un tipo I moltiplicato per (1+z^-1), (1-z^-2), (1-z^-1).Filtri FIR a fase lineare - tipi e zeri →, 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à →.

Errori tipici:

  • Dire che il tipo I forza uno zero in z=−1z=-1: non è vero, lo zero in −1-1 può esserci per caso.
  • Confondere il tipo II (zero forzato in −1-1) con il tipo IV (zero forzato in +1+1).
  • Calcolare H(−1)H(-1) senza il segno (−1)n(-1)^n sui campioni dispari.

Teoria collegata