Salta al contenuto
Note per Studenti Esercizio - Passa-basso FIR di ordine 8 con finestra rettangolare e di Hamming

Esercizio - Passa-basso FIR di ordine 8 con finestra rettangolare e di Hamming

In questa pagina 4

Testo (esercizio costruito sul progetto per finestre della lezione 18 del corso Multimedia Signal Processing, UniPD). Si progetta con il metodo delle finestre un filtro FIR causale a fase lineare di tipo I e ordine N=8N=8 che approssima il passa-basso ideale con pulsazione di taglio ω^0=π/2\hat\omega_0=\pi/2.

  1. Calcolare hd[n]h_d[n] e i coefficienti h[n]h[n] (n=0,…,8n=0,\dots,8) con la finestra rettangolare.
  2. Ripetere con la finestra di Hamming.
  3. Scrivere l'ampiezza Hˉ(ω^)=∑pncos⁡(nω^)\bar H(\hat\omega)=\sum p_n\cos(n\hat\omega) e calcolarla in 0,π4,π2,3π4,π0,\frac\pi4,\frac\pi2,\frac{3\pi}4,\pi per i due filtri.
  4. Quale ordine serve con la finestra di Kaiser per As=50A_s=50 dB e banda di transizione 0,1π0{,}1\pi centrata in π2\frac\pi2?

Teoria usata: 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 →, 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 →, 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 →.

1. Finestra rettangolare

La risposta impulsiva ideale del passa-basso con taglio ω^0=π2\hat\omega_0=\frac\pi2 è hd[n]=ω^0πsinc⁡(ω^0nπ)=sin⁡(πn/2)πnh_d[n]=\frac{\hat\omega_0}\pi\operatorname{sinc}\big(\frac{\hat\omega_0n}\pi\big)=\frac{\sin(\pi n/2)}{\pi n}, quindi hd[0]=12h_d[0]=\frac12 e, con m=n−N2=n−4m=n-\frac N2=n-4 l'indice centrato: hd[m]=sin⁡(πm/2)πm:m=0: 0,5;m=±1: 1π=0,3183;m=±2: 0;m=±3: −13π=−0,1061;m=±4: 0.h_d[m]=\frac{\sin(\pi m/2)}{\pi m}:\quad m=0:\ 0{,}5;\quad m=\pm1:\ \frac1\pi=0{,}3183;\quad m=\pm2:\ 0;\quad m=\pm3:\ -\frac1{3\pi}=-0{,}1061;\quad m=\pm4:\ 0 . (Tutti i coefficienti con mm pari e m≠0m\neq0 sono nulli perché sin⁡(πm/2)=0\sin(\pi m/2)=0: un filtro con taglio a metà banda ha questa struttura.) Il filtro causale è h[n]=hd[n−4]h[n]=h_d[n-4]: h={0, −0,1061, 0, 0,3183, 0,5, 0,3183, 0, −0,1061, 0}.h=\{0,\ -0{,}1061,\ 0,\ 0{,}3183,\ 0{,}5,\ 0{,}3183,\ 0,\ -0{,}1061,\ 0\}. Con la rettangolare i due coefficienti h[0]=h[8]=0h[0]=h[8]=0 sono già nulli, quindi di fatto il filtro è di ordine 66. Somma dei coefficienti (guadagno in continua): 0,5+2(0,3183−0,1061)=0,92440{,}5+2(0{,}3183-0{,}1061)=0{,}9244.

2. Finestra di Hamming

La finestra causale è w[n]=0,54−0,46cos⁡2πnNw[n]=0{,}54-0{,}46\cos\frac{2\pi n}{N}, n=0,…,8n=0,\dots,8; in forma centrata w[m]=0,54+0,46cos⁡2πm8w[m]=0{,}54+0{,}46\cos\frac{2\pi m}8: vale 11 per m=0m=0; 0,54+0,46⋅0,7071=0,86530{,}54+0{,}46\cdot0{,}7071=0{,}8653 per m=±1m=\pm1; 0,540{,}54 per m=±2m=\pm2; 0,54−0,3253=0,21470{,}54-0{,}3253=0{,}2147 per m=±3m=\pm3; 0,080{,}08 per m=±4m=\pm4. Si moltiplica hd[m]h_d[m] per w[m]w[m]: h[4±1]=0,3183⋅0,8653=0,2754,h[4±3]=−0,1061⋅0,2147=−0,0228,h[4\pm1]=0{,}3183\cdot0{,}8653=0{,}2754,\qquad h[4\pm3]=-0{,}1061\cdot0{,}2147=-0{,}0228, h={0, −0,0228, 0, 0,2754, 0,5, 0,2754, 0, −0,0228, 0},∑h=0,5+2(0,2754−0,0228)=1,0053.h=\{0,\ -0{,}0228,\ 0,\ 0{,}2754,\ 0{,}5,\ 0{,}2754,\ 0,\ -0{,}0228,\ 0\},\qquad\sum h=0{,}5+2(0{,}2754-0{,}0228)=1{,}0053 . Con Hamming il guadagno in continua è 1,0051{,}005 invece di 0,9240{,}924: i coefficienti più esterni, che nella rettangolare creano le oscillazioni, sono stati ridotti.

3. Ampiezza e confronto

Per un tipo I con N=8N=8 (r=4r=4): p0=h[4]=0,5p_0=h[4]=0{,}5, pn=2h[4−n]p_n=2h[4-n], quindi p1=2h[3]p_1=2h[3], p2=2h[2]=0p_2=2h[2]=0, p3=2h[1]p_3=2h[1], p4=2h[0]=0p_4=2h[0]=0:

  • rettangolare: Hˉ=0,5+0,6366cos⁡ω^−0,2122cos⁡3ω^\bar H=0{,}5+0{,}6366\cos\hat\omega-0{,}2122\cos3\hat\omega;
  • Hamming: Hˉ=0,5+0,5508cos⁡ω^−0,0456cos⁡3ω^\bar H=0{,}5+0{,}5508\cos\hat\omega-0{,}0456\cos3\hat\omega.
ω^\hat\omega 00 π4\frac\pi4 π2\frac\pi2 3π4\frac{3\pi}4 π\pi
rettangolare 0,92440{,}9244 1,10021{,}1002 0,50{,}5 −0,1002-0{,}1002 0,07560{,}0756
Hamming 1,00531{,}0053 0,92170{,}9217 0,50{,}5 0,07830{,}0783 −0,0053-0{,}0053

Verifica di ω^=π2\hat\omega=\frac\pi2: i termini in coseno di indice dispari si annullano (cos⁡π2=cos⁡3π2=0\cos\frac\pi2=\cos\frac{3\pi}2=0) e resta p0=0,5p_0=0{,}5: il valore a metà banda è 0,50{,}5 per entrambe. Infatti per ogni filtro con hdh_d nulla sugli mm pari e finestra simmetrica vale Hˉ(ω^)+Hˉ(π−ω^)=1\bar H(\hat\omega)+\bar H(\pi-\hat\omega)=1 (si è controllato numericamente: errore 10−1510^{-15}): è un filtro halfband. Con la rettangolare si vede il fenomeno di Gibbs: massimo 1,1001{,}100 (sovraelongo del 10%10\%) e minimo −0,100-0{,}100 in banda oscura; con Hamming gli estremi sono 1,00531{,}0053 e −0,0053-0{,}0053: le oscillazioni quasi spariscono, a prezzo di una transizione molto più dolce (il valore a π4\frac\pi4 scende a 0,920{,}92 e a 3π4\frac{3\pi}4 vale 0,0780{,}078). Con N=8N=8 la transizione (3,3⋅2π9=2,33{,}3\cdot\frac{2\pi}9=2{,}3 rad per Hamming secondo la tabella) è più larga dell'intera banda: serve un ordine più alto.

4. Ordine con la finestra di Kaiser

Con As=50A_s=50 dB e Δω^=0,1π\Delta\hat\omega=0{,}1\pi (cioè Δω^2π=0,05\frac{\Delta\hat\omega}{2\pi}=0{,}05): β=0,1102 (50−8,7)=4,551\beta=0{,}1102\,(50-8{,}7)=4{,}551 e N≥As−814,36 Δω^2π=4214,36⋅0,05=58,5,N\ge\frac{A_s-8}{14{,}36\,\frac{\Delta\hat\omega}{2\pi}}=\frac{42}{14{,}36\cdot0{,}05}=58{,}5, quindi N=60N=60 (pari, per un tipo I). Verifica: progettando il filtro con taglio π2\frac\pi2 e controllando gli errori in [0,0,45π][0,0{,}45\pi] e [0,55π,π][0{,}55\pi,\pi] si trova δ=0,0045\delta=0{,}0045 con N=58N=58 (non basta), δ=0,0031\delta=0{,}0031 con N=60N=60 e δ=0,0028\delta=0{,}0028 con N=62N=62: il limite è 10−50/20=0,0031610^{-50/20}=0{,}00316, quindi N=60N=60 è il primo ordine pari che soddisfa la specifica.

Versione ripasso

Ideale. Taglio ω^0=π2\hat\omega_0=\frac\pi2, con m=n−4m=n-4 centrato: hd[m]=sin⁡(πm/2)πmh_d[m]=\dfrac{\sin(\pi m/2)}{\pi m}. Valori: m=0m=0: 0,50{,}5; m=±1m=\pm1: 0,31830{,}3183; m=±2m=\pm2: 00; m=±3m=\pm3: −0,1061-0{,}1061; m=±4m=\pm4: 00.

Rettangolare. h={0, −0,1061, 0, 0,3183, 0,5, 0,3183, 0, −0,1061, 0}h=\{0,\ -0{,}1061,\ 0,\ 0{,}3183,\ 0{,}5,\ 0{,}3183,\ 0,\ -0{,}1061,\ 0\}, somma 0,92440{,}9244.

Hamming. w[m]=0,54+0,46cos⁡2πm8w[m]=0{,}54+0{,}46\cos\frac{2\pi m}8: h[4±1]=0,3183⋅0,8653=0,2754h[4\pm1]=0{,}3183\cdot0{,}8653=0{,}2754, h[4±3]=−0,1061⋅0,2147=−0,0228h[4\pm3]=-0{,}1061\cdot0{,}2147=-0{,}0228. h={0, −0,0228, 0, 0,2754, 0,5, 0,2754, 0, −0,0228, 0}h=\{0,\ -0{,}0228,\ 0,\ 0{,}2754,\ 0{,}5,\ 0{,}2754,\ 0,\ -0{,}0228,\ 0\}, somma 1,00531{,}0053.

Ampiezza. Hˉ=∑pncos⁡(nω^)\bar H=\sum p_n\cos(n\hat\omega) con p0=0,5p_0=0{,}5, p1=2h[3]p_1=2h[3], p3=2h[1]p_3=2h[1].

  • Rettangolare: Hˉ=0,5+0,6366cos⁡ω^−0,2122cos⁡3ω^\bar H=0{,}5+0{,}6366\cos\hat\omega-0{,}2122\cos3\hat\omega.
  • Hamming: Hˉ=0,5+0,5508cos⁡ω^−0,0456cos⁡3ω^\bar H=0{,}5+0{,}5508\cos\hat\omega-0{,}0456\cos3\hat\omega. In ω^=π2\hat\omega=\frac\pi2 entrambe valgono 0,50{,}5: il filtro è halfband, Hˉ(ω^)+Hˉ(π−ω^)=1\bar H(\hat\omega)+\bar H(\pi-\hat\omega)=1. Rettangolare: massimo 1,1001{,}100 e minimo −0,100-0{,}100 (Gibbs). Hamming: 1,00531{,}0053 e −0,0053-0{,}0053, con transizione più larga.

Kaiser, As=50A_s=50 dB, Δω^=0,1π\Delta\hat\omega=0{,}1\pi. β=0,1102 (50−8,7)=4,551\beta=0{,}1102\,(50-8{,}7)=4{,}551, N≥4214,36⋅0,05=58,5N\ge\frac{42}{14{,}36\cdot0{,}05}=58{,}5, quindi N=60N=60 (pari, tipo I). Verifica numerica: δ=0,0045\delta=0{,}0045 con N=58N=58, δ=0,0031\delta=0{,}0031 con N=60N=60, limite 0,003160{,}00316.

Teoria: 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 →, 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 →, 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 →.

Errori tipici:

  • Usare m=nm=n invece di m=n−4m=n-4 per la simmetria: il filtro causale è h[n]=hd[n−4]h[n]=h_d[n-4].
  • Contare il guadagno in continua come 11 senza sommare i coefficienti: con la rettangolare vale 0,9240{,}924.
  • Scegliere N=58N=58 per Kaiser: non soddisfa la specifica, serve N=60N=60.

Teoria collegata