Salta al contenuto
Note per Studenti Formulario · Multimedia Signal Processing

FormularioMultimedia Signal Processing: definizioni, teoremi e formule delle note, in ordine di capitolo

In questa pagina 11

1. Filtri FIR e sistemi LTI

Sistemi a tempo discreto e filtri FIR

Definizione (sistema a tempo discreto, discrete-time system). È un processo che trasforma una sequenza di ingresso x[n]x[n] in una sequenza di uscita y[n]y[n], e si scrive y[n]=T{x[n]}y[n]=T\{x[n]\}. In generale y[n]y[n] dipende da tutto l'ingresso: passato, presente e futuro.

Definizione (campione unitario o impulso unitario, unit sample). δ[n]={1n=00n≠0\delta[n]=\begin{cases}1&n=0\\0&n\neq0\end{cases} (il delta di Kronecker, non il delta di Dirac: qui vale 11, non è una distribuzione, vedi Impulso ideale (delta di Dirac)L'impulso ideale $\delta(t)$ è il segnale "nullo fuori dall'origine e di area $1$" definito dalla proprietà rivelatrice $\int s(t)\delta(t-t_0),dt=s(t_0)$: è il limite (in senso operativo) di impulsi rettangolari sempre più stretti e alti di area $1$. Serve per scrivere derivate dei segnali con salti (la derivata del gradino è $\delta$, il salto diventa un impulso di area pari al salto), come elemento neutro della convoluzione e come risposta impulsiva dei filtri. Non ha senso parlare di energia o potenza di $\delta$.Impulso ideale (delta di Dirac) →).

Definizione (gradino unitario, unit step). u[n]=1u[n]=1 per n≥0n\ge0 e 00 per n<0n<0.

Esempio. La sequenza x={2,4,6,4,2}x=\{2,4,6,4,2\} per n=0,…,4n=0,\dots,4 (e zero altrove) è x[n]=2δ[n]+4δ[n−1]+6δ[n−2]+4δ[n−3]+2δ[n−4]x[n]=2\delta[n]+4\delta[n-1]+6\delta[n-2]+4\delta[n-3]+2\delta[n-4].

Grafico interattivo: Il segnale x[n] = 2δ[n] + 4δ[n-1] + 6δ[n-2] + 4δ[n-3] + 2δ[n-4], usato negli esempi seguenti

Definizione (filtro FIR, finite impulse response). Un filtro FIR causale di ordine MM è il sistema y[n]=∑k=0Mbk x[n−k]=b0x[n]+b1x[n−1]+⋯+bMx[n−M].y[n]=\sum_{k=0}^{M}b_k\,x[n-k]=b_0x[n]+b_1x[n-1]+\dots+b_Mx[n-M]. È una media mobile pesata di L=M+1L=M+1 campioni, e LL è la lunghezza del filtro. I numeri bkb_k sono i coefficienti (filter coefficients).

Sistemi LTI e convoluzione discreta

Definizione (invarianza temporale, time invariance). Un sistema è tempo-invariante se traslare l'ingresso traslando la stessa quantità l'uscita: x[n]→y[n]x[n]\to y[n] implica x[n−n0]→y[n−n0]x[n-n_0]\to y[n-n_0] per ogni intero n0n_0.

Definizione (linearità, linearity). Se x1→y1x_1\to y_1 e x2→y2x_2\to y_2 allora αx1+βx2→αy1+βy2\alpha x_1+\beta x_2\to\alpha y_1+\beta y_2 per ogni α,β\alpha,\beta. Sono due proprietà insieme: scalamento (raddoppiare xx raddoppia yy) e sovrapposizione (la risposta a una somma è la somma delle risposte).

Definizione (sistema LTI). Un sistema lineare e tempo-invariante (linear time-invariant).

Esempio svolto (y[n]=n x[n]y[n]=n\,x[n]). Percorso A: y[n−n0]=(n−n0) x[n−n0]y[n-n_0]=(n-n_0)\,x[n-n_0]. Percorso B: w[n]=x[n−n0]w[n]=x[n-n_0] e poi n w[n]=n x[n−n0]n\,w[n]=n\,x[n-n_0]. I due risultati sono diversi (il coefficiente nn nel secondo non è stato traslato), quindi non è tempo-invariante. Controllo numerico: con x=δ[n]x=\delta[n] e n0=1n_0=1 il percorso A dà (n−1)δ[n−1]=0(n-1)\delta[n-1]=0, il percorso B dà n δ[n−1]=δ[n−1]n\,\delta[n-1]=\delta[n-1].

Formula (somma di convoluzione, convolution sum). y[n]=x[n]∗h[n]=∑k=−∞∞x[k] h[n−k]=∑k=−∞∞x[n−k] h[k].y[n]=x[n]*h[n]=\sum_{k=-\infty}^{\infty}x[k]\,h[n-k]=\sum_{k=-\infty}^{\infty}x[n-k]\,h[k]. Un sistema LTI è completamente determinato da h[n]h[n]. Nel corso la convoluzione si indica con ∗* (sulle slide anche ⊛\circledast).

Esempio. x∗δ[n−n0]=x[n−n0]x*\delta[n-n_0]=x[n-n_0]: convolvere con un impulso traslato traslare il segnale. Per questo un ritardo di n0n_0 campioni è l'LTI con h=δ[n−n0]h=\delta[n-n_0].

Teorema (proprietà algebriche). Commutativa x∗h=h∗xx*h=h*x; associativa (x1∗x2)∗x3=x1∗(x2∗x3)(x_1*x_2)*x_3=x_1*(x_2*x_3); distributiva x∗(h1+h2)=x∗h1+x∗h2x*(h_1+h_2)=x*h_1+x*h_2.

Esempio. a={1,2}a=\{1,2\}, b={3,0,1}b=\{3,0,1\}, c={1,−1}c=\{1,-1\}: (a∗b)∗c=a∗(b∗c)={3,3,−5,1,−2}(a*b)*c=a*(b*c)=\{3,3,-5,1,-2\} (verificato).

2. Risposta in frequenza dei filtri FIR

Risposta in frequenza dei sistemi FIR

Definizione (risposta in frequenza, frequency response). H(ω^)=H(ejω^)=∑k=0Mbk e−jω^k=∑k=0Mh[k] e−jω^k.\mathcal H(\hat\omega)=H(e^{j\hat\omega})=\sum_{k=0}^{M}b_k\,e^{-j\hat\omega k}=\sum_{k=0}^{M}h[k]\,e^{-j\hat\omega k}. Con questa definizione, per ingresso x[n]=Aejϕejω^nx[n]=Ae^{j\phi}e^{j\hat\omega n} l'uscita è y[n]=H(ω^) A ejϕ ejω^ny[n]=\mathcal H(\hat\omega)\,A\,e^{j\phi}\,e^{j\hat\omega n}.

Esempio. Per {bk}={1,2,1}\{b_k\}=\{1,2,1\}: H(ω^)=1+2e−jω^+e−j2ω^\mathcal H(\hat\omega)=1+2e^{-j\hat\omega}+e^{-j2\hat\omega}. A ω^=π3\hat\omega=\frac\pi3: 1+2e−jπ/3+e−j2π/3=1+(1−j3)+(−12−j32)=32−j3321+2e^{-j\pi/3}+e^{-j2\pi/3}=1+(1-j\sqrt3)+(-\tfrac12-j\tfrac{\sqrt3}2)=\tfrac32-j\tfrac{3\sqrt3}2, di modulo 33 e fase −π3-\frac\pi3 (verificato). Quindi con x[n]=2ejπ/4ejπn/3x[n]=2e^{j\pi/4}e^{j\pi n/3} si ha y[n]=3e−jπ/3⋅2ejπ/4ejπn/3=6 ejπ/4ejπ3(n−1)y[n]=3e^{-j\pi/3}\cdot2e^{j\pi/4}e^{j\pi n/3}=6\,e^{j\pi/4}e^{j\frac\pi3(n-1)}: ampiezza triplicata e ritardo di un campione.

Formula (media mobile e nucleo di Dirichlet). H(ω^)=DL(ω^) e−jω^(L−1)/2\mathcal H(\hat\omega)=D_L(\hat\omega)\,e^{-j\hat\omega(L-1)/2} con DL(ω^)=sin⁡(Lω^/2)Lsin⁡(ω^/2)D_L(\hat\omega)=\dfrac{\sin(L\hat\omega/2)}{L\sin(\hat\omega/2)} (forma di Dirichlet), DL(0)=1D_L(0)=1.

Esempio (L=5L=5). H=D5(ω^)e−j2ω^\mathcal H=D_5(\hat\omega)e^{-j2\hat\omega}. In ω^=0,3π\hat\omega=0{,}3\pi la fase è −0,6π-0{,}6\pi (D5>0D_5>0). In ω^=0,5π\hat\omega=0{,}5\pi: D5=sin⁡(5π/4)5sin⁡(π/4)=−0,2<0D_5=\frac{\sin(5\pi/4)}{5\sin(\pi/4)}=-0{,}2<0 e la fase è −π+π=0-\pi+\pi=0 (verificato).

Grafico interattivo: Media mobile a 11 punti: |D_11(ω)| = |sin(11ω/2) / (11 sin(ω/2))|; zeri in ω = 2πk/11 (0,571; 1,142; ...), lobo principale largo 4π/11, lobi laterali di altezza ≈ 0,22

Risposta a regime e transitorio

Teorema (regime e transitorio di un FIR). Sia x[n]=Xejω^nu[n]x[n]=Xe^{j\hat\omega n}u[n] (con X=AejϕX=Ae^{j\phi}) l'ingresso di un FIR di ordine MM con risposta impulsiva h[k]h[k], k=0,…,Mk=0,\dots,M. L'uscita è y[n]={0n<0(∑k=0nh[k]e−jω^k)Xejω^n0≤n<MH(ω^) Xejω^nn≥My[n]=\begin{cases}0&n<0\\[2pt]\Big(\sum_{k=0}^{n}h[k]e^{-j\hat\omega k}\Big)Xe^{j\hat\omega n}&0\le n<M\\[2pt]\mathcal H(\hat\omega)\,Xe^{j\hat\omega n}&n\ge M\end{cases}

Esempio svolto (M=4M=4). {bk}={1,−2,4,−2,1}\{b_k\}=\{1,-2,4,-2,1\} e x[n]=cos⁡(0,2πn−π)u[n]x[n]=\cos(0{,}2\pi n-\pi)u[n]. A ω^=0,2π\hat\omega=0{,}2\pi il filtro ha H(0,2π)=e−j4π⋅0,2 (4−4cos⁡0,2π+2cos⁡0,4π)=1,382 e−j0,4π\mathcal H(0{,}2\pi)=e^{-j4\pi\cdot0{,}2}\,(4-4\cos0{,}2\pi+2\cos0{,}4\pi)=1{,}382\,e^{-j0{,}4\pi} (modulo 4−3,236+0,618=1,3824-3{,}236+0{,}618=1{,}382). Il regime è y[n]=1,382cos⁡(0,2πn−π−0,4π)y[n]=1{,}382\cos(0{,}2\pi n-\pi-0{,}4\pi) per n≥4n\ge4. Per n=0,1,2,3n=0,1,2,3 l'uscita è la somma incompleta: confrontandola con la formula del regime la differenza è −0,573; 2,309; −1,309; 0,809-0{,}573;\ 2{,}309;\ -1{,}309;\ 0{,}809, e da n=4n=4 in poi vale esattamente 00 (verificato con Python).

3. Trasformata zeta e funzione di sistema

Trasformata zeta - definizione e regione di convergenza

Definizione (trasformata zeta bilatera, two-sided z-transform). Per una sequenza x[n]x[n], n∈Zn\in\mathbb Z (con T=1T=1), X(z)=∑n=−∞∞x[n] z−n,z∈RX⊂C,X(z)=\sum_{n=-\infty}^{\infty}x[n]\,z^{-n},\qquad z\in R_X\subset\mathbb C, dove RXR_X è la regione di convergenza: l'insieme dei zz in cui la serie converge.

Definizione (trasformata unilatera, one-sided). X+(z)=∑n=0∞x[n]z−nX^+(z)=\sum_{n=0}^{\infty}x[n]z^{-n}.

Esempio. x[n]=δ[n]x[n]=\delta[n] ha X(z)=1X(z)=1 in tutto il piano. x[n]=δ[n−1]x[n]=\delta[n-1] ha X(z)=z−1X(z)=z^{-1} (definita per z≠0z\ne0); x[n]=δ[n+1]x[n]=\delta[n+1] ha X(z)=zX(z)=z (definita per ∣z∣<∞\lvert z\rvert<\infty, cioè tutto C\mathbb C ma non l'infinito).

Teorema (Abel). Se ∑n≥0x[n]z0−n\sum_{n\ge0}x[n]z_0^{-n} converge in z0=r0ejθ0z_0=r_0e^{j\theta_0}, allora converge (assolutamente) per ogni zz con ∣z∣>r0\lvert z\rvert>r_0; se non converge in z0z_0, non converge per nessun zz con ∣z∣<r0\lvert z\rvert<r_0.

Formula (esponenziale causale). anu[n] ⟷ 11−az−1=zz−a,∣z∣>∣a∣.a^nu[n]\ \longleftrightarrow\ \dfrac1{1-az^{-1}}=\dfrac z{z-a},\qquad\lvert z\rvert>\lvert a\rvert.

Formula (esponenziale anticausale). −anu[−n−1] ⟷ 11−az−1,∣z∣<∣a∣.-a^nu[-n-1]\ \longleftrightarrow\ \dfrac1{1-az^{-1}},\qquad\lvert z\rvert<\lvert a\rvert.

Esempio. x[n]=(0,5)nu[n]x[n]=(0{,}5)^nu[n] ha X(z)=11−0,5z−1X(z)=\frac1{1-0{,}5z^{-1}}, ∣z∣>0,5\lvert z\rvert>0{,}5: nel punto z=1z=1 la serie ∑0,5n=2\sum0{,}5^n=2 coincide con 11−0,5=2\frac1{1-0{,}5}=2 (verificato). La sequenza −(0,5)nu[−n−1]-(0{,}5)^nu[-n-1] ha la stessa X(z)X(z) ma ROC ∣z∣<0,5\lvert z\rvert<0{,}5: in z=0,25z=0{,}25 la serie −∑m≥12m 0,25m=−∑(0,5)m=−1-\sum_{m\ge1}2^m\,0{,}25^m=-\sum(0{,}5)^m=-1 coincide con 11−0,5⋅4=−1\frac1{1-0{,}5\cdot4}=-1 (verificato).

Grafico interattivo: Piano z: ROC di (0,5)^n u[n] (esterno della circonferenza di raggio 0,5, zona colorata) con il polo in 0,5 (x), lo zero in 0 (o) e la circonferenza unitaria tratteggiata; la ROC contiene la circonferenza unitaria, quindi il sistema è stabile

Proprietà della trasformata zeta

Proprietà (linearità). Se x↔Xx\leftrightarrow X (ROC RXR_X) e y↔Yy\leftrightarrow Y (ROC RYR_Y), allora αx+βy↔αX(z)+βY(z)\alpha x+\beta y\leftrightarrow\alpha X(z)+\beta Y(z) con ROC contenente RX∩RYR_X\cap R_Y.

Proprietà (ritardo). x[n−n0]↔z−n0X(z)x[n-n_0]\leftrightarrow z^{-n_0}X(z), con la stessa ROC (con la possibile esclusione dell'origine e inclusione dell'infinito).

Proprietà (convoluzione). x[n]∗h[n]↔X(z)H(z)x[n]*h[n]\leftrightarrow X(z)H(z), con ROC ⊇RX∩RH\supseteq R_X\cap R_H.

Proprietà (stabilità). Il sistema è BIBO stabile se e solo se la ROC di H(z)H(z) contiene la circonferenza unitaria {∣z∣=1}\{\lvert z\rvert=1\}.

Proprietà (time reversal). x[−n]↔X(z−1)x[-n]\leftrightarrow X(z^{-1}), ROC {1R2<∣z∣<1R1}\{\frac1{R_2}<\lvert z\rvert<\frac1{R_1}\} (raggi invertiti).

Esempio. anu[n]→11−az−1a^nu[n]\to\frac1{1-az^{-1}}, ∣z∣>∣a∣\lvert z\rvert>\lvert a\rvert. Allora a−nu[−n]→11−aza^{-n}u[-n]\to\frac1{1-az} con ROC ∣z∣<1∣a∣\lvert z\rvert<\frac1{\lvert a\rvert}: infatti ∑n≤0a−nz−n=∑m≥0(az)m\sum_{n\le0}a^{-n}z^{-n}=\sum_{m\ge0}(az)^m, geometrica di ragione azaz (verificato numericamente con a=0,6a=0{,}6).

Proprietà (derivazione). n x[n]↔−zdX(z)dzn\,x[n]\leftrightarrow-z\dfrac{dX(z)}{dz}, stessa ROC. Iterando: n2x[n]↔−zddz(−zdXdz)n^2x[n]\leftrightarrow-z\frac{d}{dz}\big(-z\frac{dX}{dz}\big).

Esempio. Da anu[n]→11−az−1a^nu[n]\to\frac1{1-az^{-1}}: −zddz11−az−1=az−1(1−az−1)2-z\frac{d}{dz}\frac1{1-az^{-1}}=\frac{az^{-1}}{(1-az^{-1})^2}, ovvero n anu[n]↔az−1(1−az−1)2n\,a^nu[n]\leftrightarrow\dfrac{az^{-1}}{(1-az^{-1})^2}, ∣z∣>∣a∣\lvert z\rvert>\lvert a\rvert (verificato numericamente con a=0,6a=0{,}6, z=1,7e0,9jz=1{,}7e^{0{,}9j}). È la coppia che serve per i poli doppi.

Proprietà (scalamento in zz). anx[n]↔X(z/a)a^nx[n]\leftrightarrow X(z/a) con ROC {∣a∣R1<∣z∣<∣a∣R2}\{\lvert a\rvert R_1<\lvert z\rvert<\lvert a\rvert R_2\}.

Teorema (valore iniziale). x[0]=lim⁡z→∞X+(z)x[0]=\lim_{z\to\infty}X^+(z).

Teorema (valore finale). Sia W(z)=(1−z−1)X+(z)W(z)=(1-z^{-1})X^+(z). Se la ROC di WW contiene z=1z=1, allora lim⁡n→∞x[n]=lim⁡z→1(1−z−1)X+(z)\lim_{n\to\infty}x[n]=\lim_{z\to1}(1-z^{-1})X^+(z).

Esempio. x[n]=(2−0,5n)u[n]x[n]=(2-0{,}5^n)u[n], X=21−z−1−11−0,5z−1X=\frac2{1-z^{-1}}-\frac1{1-0{,}5z^{-1}}: (1−z−1)X→2(1-z^{-1})X\to2 per z→1z\to1, e x[n]→2x[n]\to2 (verificato). Controesempi: (−1)nu[n](-1)^nu[n] ha (1−z−1)11+z−1→0(1-z^{-1})\frac1{1+z^{-1}}\to0 ma la successione non ha limite (polo in −1-1 sul cerchio); 2nu[n]2^nu[n] ha (1−z−1)11−2z−1→0(1-z^{-1})\frac1{1-2z^{-1}}\to0 ma x[n]→∞x[n]\to\infty (polo fuori dal cerchio). Il teorema vale solo se la ROC di WW contiene z=1z=1.

Antitrasformata zeta

Formula (inversione della zeta). x[n]=12πj∮CX(z) zn−1 dzx[n]=\dfrac1{2\pi j}\displaystyle\oint_CX(z)\,z^{n-1}\,dz, con CC una qualsiasi curva chiusa semplice, antioraria, che circonda l'origine e sta dentro la ROC (per il teorema di Cauchy il risultato non dipende dalla curva: Integrale di linea complesso e teorema di CauchyL'integrale di una funzione complessa lungo una curva $z(t)$, $t\in[a,b]$, vale $\int_C f(z),dz=\int_a^b f(z(t)),z'(t),dt$ e dipende in generale dal cammino. Se $f$ è olomorfa in un dominio semplicemente connesso l'integrale su ogni curva chiusa è nullo (teorema di Cauchy), l'integrale dipende solo dagli estremi e vale $F(z_1)-F(z_0)$ con $F'=f$. Si può deformare il cammino senza attraversare singolarità: $\oint\frac{dz}{z-z_0}=2\pi i$ per ogni curva che gira una volta attorno a $z_0$.Integrale di linea complesso e teorema di Cauchy →).

Esempio. X(z)=11−0,5z−1X(z)=\frac1{1-0{,}5z^{-1}}, ∣z∣>0,5\lvert z\rvert>0{,}5: X(z)zn−1=znz−0,5X(z)z^{n-1}=\frac{z^n}{z-0{,}5}. Per n≥0n\ge0 l'unico polo dentro CC è 0,50{,}5, residuo 0,5n0{,}5^n: x[n]=0,5nx[n]=0{,}5^n (n≥0n\ge0). Per n<0n<0 compare anche un polo in z=0z=0 di ordine −n-n e la somma dei residui dà 00 (la ROC è esterna: segnale causale). Nella pratica il calcolo con i residui si usa poco: si usano i metodi seguenti.

Funzione di sistema, poli, zeri e stabilità

Definizione (funzione di sistema di un FIR). H(z)=∑k=0Mbkz−k=∑k=0Mh[k]z−kH(z)=\displaystyle\sum_{k=0}^{M}b_kz^{-k}=\sum_{k=0}^{M}h[k]z^{-k}, la trasformata zeta della risposta impulsiva. Con ingresso znz^n l'uscita è h[n]∗zn=H(z)znh[n]*z^n=H(z)z^n.

Teorema (stabilità di un LTI causale). Un sistema causale è BIBO stabile se e solo se tutti i poli di H(z)H(z) stanno dentro il cerchio unitario, max⁡k∣pk∣<1\max_k\lvert p_k\rvert<1 (a meno di cancellazioni polo-zero).

Esempio (FIR dato dagli zeri). H(z)=(1−z−1)(1+z−2)(1−0,9z−1+0,81z−2)H(z)=(1-z^{-1})(1+z^{-2})(1-0{,}9z^{-1}+0{,}81z^{-2}), che espanso dà 1−1,9z−1+2,71z−2−2,71z−3+1,71z−4−0,81z−51-1{,}9z^{-1}+2{,}71z^{-2}-2{,}71z^{-3}+1{,}71z^{-4}-0{,}81z^{-5}, è un FIR di ordine 55 con cinque zeri in 1, ±j, 0,9e±jπ/31,\ \pm j,\ 0{,}9e^{\pm j\pi/3} e cinque poli in 00 (verificato). Solo gli zeri sulla circonferenza unitaria (11 e ±j\pm j) annullano l'uscita per un ingresso esponenziale ejω^ne^{j\hat\omega n}, cioè per ω^=0,±π2\hat\omega=0,\pm\frac\pi2 (Esercizio - Esercitazione 9 - funzione di sistema e zeri).

4. Fase lineare e filtri FIR simmetrici

Sistemi a fase lineare e assenza di distorsione

Definizione (condizione di non distorsione, no distortion condition). Un sistema LTI causale non distorce se y[n]=K x[n−n0],K∈R∖{0}, n0∈N,y[n]=K\,x[n-n_0],\qquad K\in\mathbb R\setminus\{0\},\ n_0\in\mathbb N, cioè se l'uscita è una copia scalata e ritardata dell'ingresso.

Esempio. Con K=2K=2, n0=3n_0=3 e x={1,4,2}x=\{1,4,2\} (da n=0n=0) si ha y[3]=2, y[4]=8, y[5]=4y[3]=2,\ y[4]=8,\ y[5]=4: stessa forma, ampiezza doppia, tre campioni dopo.

Definizione (ritardo di gruppo, group delay). τ(ω^)=−dφ(ω^)dω^.\tau(\hat\omega)=-\frac{d\varphi(\hat\omega)}{d\hat\omega}. Misura di quanti campioni viene ritardato l'inviluppo di un segnale a banda stretta attorno a ω^\hat\omega.

Esempio. Per la fase φ=−n0ω^\varphi=-n_0\hat\omega si ha τ=n0\tau=n_0, costante: tutte le frequenze subiscono lo stesso ritardo, e per questo la forma si conserva. Se τ\tau dipendesse da ω^\hat\omega, le componenti del segnale arriverebbero sfasate l'una rispetto all'altra e la forma d'onda cambierebbe (distorsione di fase).

Definizione (fase lineare generalizzata, generalized linear phase). Un sistema ha fase lineare se la sua risposta in frequenza si scrive H(ejω^)=A(ω^) e−jαω^ ejβ,H(e^{j\hat\omega})=A(\hat\omega)\,e^{-j\alpha\hat\omega}\,e^{j\beta}, con α,β\alpha,\beta costanti reali e A(ω^)A(\hat\omega) funzione reale (detta amplitude response o zero-phase response), che può anche cambiare segno.

Esempio. Il filtro h={1,2,3,2,1}h=\{1,2,3,2,1\} ha H(ejω^)=e−j2ω^ (3+4cos⁡ω^+2cos⁡2ω^)H(e^{j\hat\omega})=e^{-j2\hat\omega}\,(3+4\cos\hat\omega+2\cos2\hat\omega): qui α=2\alpha=2, β=0\beta=0 e A(ω^)=3+4cos⁡ω^+2cos⁡2ω^=(1+2cos⁡ω^)2A(\hat\omega)=3+4\cos\hat\omega+2\cos 2\hat\omega=(1+2\cos\hat\omega)^2. In ω^=0\hat\omega=0: A=9=∑h[n]A=9=\sum h[n].

Teorema (fase lineare e simmetria). Un sistema LTI discreto, reale e causale ha fase lineare (generalizzata) se e solo se è un filtro FIR di ordine NN la cui risposta impulsiva soddisfa h[n]=h[N−n]  (simmetrica, β=0)oppureh[n]=−h[N−n]  (antisimmetrica, β=π2),n=0,…,N,h[n]=h[N-n]\ \ (\text{simmetrica, } \beta=0)\qquad\text{oppure}\qquad h[n]=-h[N-n]\ \ (\text{antisimmetrica, } \beta=\tfrac\pi2),\qquad n=0,\dots,N, e in entrambi i casi α=N/2\alpha=N/2. Il filtro ha N+1N+1 coefficienti.

Esempio. h={3,−1,4,−1,3}h=\{3,-1,4,-1,3\} è simmetrica (N=4N=4): ha fase lineare con ritardo 22. h={2,1,0,−1,−2}h=\{2,1,0,-1,-2\} è antisimmetrica (N=4N=4, centro h[2]=0h[2]=0): ritardo 22, fase −2ω^+π/2-2\hat\omega+\pi/2.

Filtri FIR a fase lineare - tipi e zeri

Formula (ampiezza dei quattro tipi).

  • Tipo I (NN pari, simmetrica): A(ω^)=h ⁣[N2]+2∑k=1N/2h ⁣[N2−k]cos⁡(kω^)=∑k=0N/2akcos⁡(kω^)A(\hat\omega)=h\!\left[\tfrac N2\right]+2\sum_{k=1}^{N/2}h\!\left[\tfrac N2-k\right]\cos(k\hat\omega)=\sum_{k=0}^{N/2}a_k\cos(k\hat\omega), con a0=h[N/2]a_0=h[N/2] e ak=2h[N/2−k]a_k=2h[N/2-k].
  • Tipo II (NN dispari, simmetrica): A(ω^)=2∑k=1(N+1)/2h ⁣[N+12−k]cos⁡ ⁣((k−12)ω^)A(\hat\omega)=2\sum_{k=1}^{(N+1)/2}h\!\left[\tfrac{N+1}2-k\right]\cos\!\big((k-\tfrac12)\hat\omega\big).
  • Tipo III (NN pari, antisimmetrica): A(ω^)=2∑k=1N/2h ⁣[N2−k]sin⁡(kω^)A(\hat\omega)=2\sum_{k=1}^{N/2}h\!\left[\tfrac N2-k\right]\sin(k\hat\omega).
  • Tipo IV (NN dispari, antisimmetrica): A(ω^)=2∑k=1(N+1)/2h ⁣[N+12−k]sin⁡ ⁣((k−12)ω^)A(\hat\omega)=2\sum_{k=1}^{(N+1)/2}h\!\left[\tfrac{N+1}2-k\right]\sin\!\big((k-\tfrac12)\hat\omega\big).

Grafico interattivo: Ampiezza A(w) di un esempio per tipo: I (N=4), II {1,2,2,1}, III {1,1,0,-1,-1}, IV {1,2,-2,-1}. Il tipo II si annulla in w = π, i tipi III e IV in w = 0, il tipo III anche in π

Teorema (posizione degli zeri). Sia hh reale e h[n]=±h[N−n]h[n]=\pm h[N-n].

  1. Se z0≠0z_0\neq0 è uno zero, lo è anche 1/z01/z_0 (zero reciproco).
  2. Se z0z_0 è uno zero, lo è anche z0∗z_0^* (coniugato), perché hh è reale.
  3. Quindi uno zero complesso fuori dalla circonferenza unitaria genera una quaterna {z0, z0∗, 1/z0, 1/z0∗}\{z_0,\ z_0^*,\ 1/z_0,\ 1/z_0^*\}.
  4. Uno zero sulla circonferenza unitaria, z0=ejθz_0=e^{j\theta}, ha reciproco 1/z0=z0∗1/z_0=z_0^* (già incluso): gli zeri sulla circonferenza vengono in coppie {ejθ,e−jθ}\{e^{j\theta},e^{-j\theta}\}.
  5. Uno zero reale z0≠±1z_0\ne\pm1 viene in coppie {z0,1/z0}\{z_0,1/z_0\}.
  6. Gli zeri in z=1z=1 e z=−1z=-1 sono il proprio reciproco e il proprio coniugato: possono comparire da soli.

Esempio (quaterna). Zeri in 0.8e±jπ/40.8e^{\pm j\pi/4} e in 1.25e±jπ/41.25e^{\pm j\pi/4}: il polinomio è (1−1.1314z−1+0.64z−2)(1−1.7678z−1+1.5625z−2)(1-1.1314z^{-1}+0.64z^{-2})(1-1.7678z^{-1}+1.5625z^{-2}), cioè h={1, −2.8991, 4.2025, −2.8991, 1}h=\{1,\ -2.8991,\ 4.2025,\ -2.8991,\ 1\}, di tipo I (simmetrico) come previsto. Il fattore 1.1314=2⋅0.8cos⁡π41.1314=2\cdot0.8\cos\frac\pi4 è la somma dei due zeri 0.8e±jπ/40.8e^{\pm j\pi/4} e 0.64=0.820.64=0.8^2 il loro prodotto.

Teorema (zeri forzati).

  • Tipo I: nessun vincolo.
  • Tipo II: zero in z=−1z=-1 (cioè A(π)=0A(\pi)=0).
  • Tipo III: zeri in z=1z=1 e in z=−1z=-1.
  • Tipo IV: zero in z=1z=1 (e non in z=−1z=-1).

Grafico interattivo: Zeri di un FIR di tipo I (quaterna 0.8 e^(±jπ/4) e 1.25 e^(±jπ/4)): nessuno zero forzato. Parte reale in ascissa, immaginaria in ordinata

5. Filtri notch e applicazioni dei FIR

Filtri notch e applicazioni dei filtri FIR

Formula (notch FIR del secondo ordine). Per eliminare una sinusoide alla pulsazione normalizzata ω^0\hat\omega_0: H(z)=1−2cos⁡(ω^0)z−1+z−2,h={1, A, 1},A=−2cos⁡ω^0,H(z)=1-2\cos(\hat\omega_0)z^{-1}+z^{-2},\qquad h=\{1,\ A,\ 1\},\quad A=-2\cos\hat\omega_0, con equazione alle differenze y[n]=x[n]+A x[n−1]+x[n−2]y[n]=x[n]+A\,x[n-1]+x[n-2]. In frequenza H(ejω^)=e−jω^(2cos⁡ω^−2cos⁡ω^0).H(e^{j\hat\omega})=e^{-j\hat\omega}\big(2\cos\hat\omega-2\cos\hat\omega_0\big).

Esempio. Per ω^0=π/4\hat\omega_0=\pi/4: A=−2≈−1.4142A=-\sqrt2\approx-1.4142 e h={1,−1.4142,1}h=\{1,-1.4142,1\}. Con x[n]=cos⁡(π4n+0.7)x[n]=\cos(\frac\pi4n+0.7) le uscite sono y[0]=0.7648y[0]=0.7648, y[1]=−0.9964y[1]=-0.9964 e poi y[n]=0y[n]=0 per n≥2n\ge2 (calcolato con Python, errore sotto 10−1410^{-14}): il tono scompare dopo due campioni.

6. DFT e convoluzione a blocchi

Trasformata di Fourier discreta (DFT) e convoluzione circolare

Definizione (DFT e IDFT, con T=1T=1). X[k]=∑n=0N−1x[n] e−j2πkn/N,x[n]=1N∑k=0N−1X[k] ej2πkn/N,k,n=0,…,N−1.X[k]=\sum_{n=0}^{N-1}x[n]\,e^{-j2\pi kn/N},\qquad x[n]=\frac1N\sum_{k=0}^{N-1}X[k]\,e^{j2\pi kn/N},\qquad k,n=0,\dots,N-1. Con la notazione WN=e−j2π/NW_N=e^{-j2\pi/N} (radice NN-esima primitiva dell'unità): X[k]=∑nx[n]WNknX[k]=\sum_nx[n]W_N^{kn} e x[n]=1N∑kX[k]WN−knx[n]=\frac1N\sum_kX[k]W_N^{-kn}. Gli estremi delle somme possono essere qualsiasi NN interi consecutivi, perché i termini sono periodici.

Esempio. x={1,2,3,4}x=\{1,2,3,4\}, N=4N=4: X[0]=1+2+3+4=10X[0]=1+2+3+4=10; X[1]=1+2(−j)+3(−1)+4(j)=−2+2jX[1]=1+2(-j)+3(-1)+4(j)=-2+2j; X[2]=1−2+3−4=−2X[2]=1-2+3-4=-2; X[3]=−2−2jX[3]=-2-2j. Si ottiene X={10, −2+2j, −2, −2−2j}X=\{10,\ -2+2j,\ -2,\ -2-2j\} (verificato con Python, con l'IDFT che restituisce xx).

Teorema (DFT = campionamento della zeta sulla circonferenza). Per N≥MN\ge M, la DFT a NN punti di x[n]x[n] è X[k]=X(z)∣z=ej2πk/N=X(ejω^)∣ω^=2πk/N,k=0,…,N−1,X[k]=X(z)\Big|_{z=e^{j2\pi k/N}}=X\big(e^{j\hat\omega}\big)\Big|_{\hat\omega=2\pi k/N},\qquad k=0,\dots,N-1, cioè la zeta valutata nelle NN radici NN-esime dell'unità: NN punti equispaziati sulla circonferenza unitaria a partire da z=1z=1.

Esempio. x={1,1,1,1}x=\{1,1,1,1\} e N=8N=8: X[k]=sin⁡(πk/2)sin⁡(πk/8)e−j3πk/8X[k]=\frac{\sin(\pi k/2)}{\sin(\pi k/8)}e^{-j3\pi k/8}, con moduli {4, 2.613, 0, 1.082, 0, 1.082, 0, 2.613}\{4,\ 2.613,\ 0,\ 1.082,\ 0,\ 1.082,\ 0,\ 2.613\}.

Proprietà della DFT (x[n]↔X[k]x[n]\leftrightarrow X[k], NN punti).

  • Linearità: αx+βy↔αX+βY\alpha x+\beta y\leftrightarrow\alpha X+\beta Y.
  • Traslazione circolare (circular shift): x[(n−n0)N]↔e−j2πkn0/NX[k]x[(n-n_0)_N]\leftrightarrow e^{-j2\pi kn_0/N}X[k]: il modulo non cambia, la fase sì. Traslare di NN campioni (o multipli) non cambia il segnale.
  • Simmetria coniugata: se xx è reale, X[k]=X∗[N−k]X[k]=X^*[N-k] (=X∗[(−k)N]=X^*[(-k)_N]): parte reale pari, parte immaginaria dispari, modulo pari, fase dispari. Allora X[0]=∑x[n]X[0]=\sum x[n] è reale e, se NN è pari, anche X[N/2]=∑x[n](−1)nX[N/2]=\sum x[n](-1)^n è reale. Bastano ⌊N/2⌋+1\lfloor N/2\rfloor+1 valori complessi per descrivere la DFT di un segnale reale.
  • Convoluzione circolare: X[k]H[k]↔y[n]=∑ℓ=0N−1x[ℓ] h[(n−ℓ)N]=(x⊛h)[n]X[k]H[k]\leftrightarrow y[n]=\sum_{\ell=0}^{N-1}x[\ell]\,h[(n-\ell)_N]=(x\circledast h)[n].
  • Parseval: ∑n∣x[n]∣2=1N∑k∣X[k]∣2\sum_n\lvert x[n]\rvert^2=\frac1N\sum_k\lvert X[k]\rvert^2.

Esempio (traslazione). x={1,2,3,4}x=\{1,2,3,4\}, X={10,−2+2j,−2,−2−2j}X=\{10,-2+2j,-2,-2-2j\}. Il segnale traslato di un campione, x[(n−1)4]={4,1,2,3}x[(n-1)_4]=\{4,1,2,3\}, ha DFT {10, 2+2j, 2, 2−2j}\{10,\ 2+2j,\ 2,\ 2-2j\}, uguale a X[k]e−j2πk/4X[k]e^{-j2\pi k/4}: i moduli sono invariati (10, 22, 2, 2210,\ 2\sqrt2,\ 2,\ 2\sqrt2).

Teorema (convoluzione lineare tramite DFT). Se xx ha lunghezza DxD_x e hh lunghezza MM, e si sceglie N ≥ Dy=Dx+M−1,N\ \ge\ D_y=D_x+M-1, allora, dopo aver completato xx e hh con zeri fino a NN campioni, la convoluzione circolare a NN punti coincide con quella lineare: ylin[n]=ycirc[n]y_{\rm lin}[n]=y_{\rm circ}[n] per 0≤n≤N−10\le n\le N-1. Con N<DyN<D_y la coda di yliny_{\rm lin} (gli ultimi Dy−ND_y-N campioni) si ripiega sull'inizio.

Esempio (lezione). x={1,2,3,4}x=\{1,2,3,4\} e h={1,1,1,1}h=\{1,1,1,1\}. Convoluzione lineare: ylin={1,3,6,10,9,7,4}y_{\rm lin}=\{1,3,6,10,9,7,4\}, lunghezza 4+4−1=74+4-1=7. Convoluzione circolare con N=4N=4: ycirc={10,10,10,10}y_{\rm circ}=\{10,10,10,10\} (lunghezza 44): infatti ycirc[0]=ylin[0]+ylin[4]=1+9y_{\rm circ}[0]=y_{\rm lin}[0]+y_{\rm lin}[4]=1+9, ycirc[1]=3+7y_{\rm circ}[1]=3+7, ycirc[2]=6+4y_{\rm circ}[2]=6+4 e ycirc[3]=10y_{\rm circ}[3]=10: le somme valgono tutte 1010. Per evitare l'aliasing si completa con zeri a N=8≥7N=8\ge7 (x={1,2,3,4,0,0,0,0}x=\{1,2,3,4,0,0,0,0\}, h={1,1,1,1,0,0,0,0}h=\{1,1,1,1,0,0,0,0\}) e si ottiene ycirc={1,3,6,10,9,7,4,0}=yliny_{\rm circ}=\{1,3,6,10,9,7,4,0\}=y_{\rm lin} più uno zero.

Grafico interattivo: Convoluzione lineare di x = {1,2,3,4} con h = {1,1,1,1}: y = {1, 3, 6, 10, 9, 7, 4}, lunghezza 7

7. Analisi spettrale e spettrogramma

Trasformata di Fourier a tempo breve e spettrogramma

Definizione (STFT, "DFT dipendente dal tempo"). Sia x[n]x[n] una sequenza lunga e w[n]w[n] una finestra di analisi (analysis window, per esempio di Hann) diversa da zero solo per n=0,…,L−1n=0,\dots,L-1, con LL molto minore della lunghezza di xx. Per ogni istante di analisi ℓ\ell si definisce X[k,ℓ]=∑n=0L−1w[n] x[ℓ+n] e−j2πkn/N,k=0,1,…,N−1,N≥L.X[k,\ell]=\sum_{n=0}^{L-1}w[n]\,x[\ell+n]\,e^{-j2\pi kn/N},\qquad k=0,1,\dots,N-1,\quad N\ge L.

Esempio. Un segnale di D=10 000D=10\,000 campioni, finestra L=301L=301, passo R=30R=30 (≈0.1L\approx0.1L) e N=1024N=1024: ⌊(10000−301)/30⌋+1=324\lfloor(10000-301)/30\rfloor+1=324 frame; per un segnale reale bastano i bin k=0,…,512k=0,\dots,512 (N/2+1=513N/2+1=513 valori) per la simmetria coniugata. Con L=75L=75 e R=8R=8: 12411241 frame. Il numero di valori calcolati è 324×513324\times513, circa 1.7⋅1051.7\cdot10^5: ogni frame costa una FFT a N=1024N=1024 punti (Trasformata di Fourier discreta (DFT) e convoluzione circolareLa DFT di N campioni x[0..N-1] è X[k] = sum x[n] e^{-j2pi kn/N}, k = 0..N-1 (IDFT: x[n] = (1/N) sum X[k] e^{j2pi kn/N}); vede il segnale come periodico di periodo N e dà N campioni equispaziati della DTFT, cioè X(z) valutata sulle radici N-esime dell'unità. Se x ha durata M <= N non c'è aliasing temporale e lo zero-padding (N > M) infittisce solo i campioni della stessa DTFT. Proprietà: traslazione circolare, simmetria coniugata X[k] = X*[N-k], prodotto = convoluzione circolare. La convoluzione circolare coincide con la lineare solo se N >= Dx + M - 1; altrimenti la coda si ripiega sull'inizio. La FFT calcola la DFT con (N/2) log2 N moltiplicazioni invece di N^2.Trasformata di Fourier discreta (DFT) e convoluzione circolare →).

8. Progetto di filtri FIR

Progetto di filtri FIR con il metodo delle finestre

Definizione (specifiche del passa-basso).

  • ω^p\hat\omega_p: limite della banda passante (pass-band edge); per ∣ω^∣≤ω^p|\hat\omega|\le\hat\omega_p il segnale passa praticamente inalterato.
  • ω^s\hat\omega_s: limite della banda oscura (stop-band edge); per ω^s≤∣ω^∣≤π\hat\omega_s\le|\hat\omega|\le\pi il segnale è fortemente soppresso. Per ω^p<∣ω^∣<ω^s\hat\omega_p<|\hat\omega|<\hat\omega_s si è in banda di transizione e non si impone nulla.
  • δp\delta_p: errore in banda passante, 1−δp≤∣H(ejω^)∣≤1+δp1-\delta_p\le|H(e^{j\hat\omega})|\le1+\delta_p (l'ideale sarebbe ∣H∣=1|H|=1).
  • δs\delta_s: errore in banda oscura, ∣H(ejω^)∣≤δs|H(e^{j\hat\omega})|\le\delta_s (l'ideale sarebbe ∣H∣=0|H|=0).

In decibel: ondulazione in banda passante (pass-band ripple) Rp=20log⁡101+δp1−δpR_p=20\log_{10}\dfrac{1+\delta_p}{1-\delta_p} e attenuazione in banda oscura (stop-band attenuation) As=−20log⁡10δsA_s=-20\log_{10}\delta_s.

Esempio. Con δp=δs=10−2.5=0,00316\delta_p=\delta_s=10^{-2.5}=0{,}00316 si ha As=50A_s=50 dB e Rp=20log⁡101,003160,99684=0,055R_p=20\log_{10}\frac{1{,}00316}{0{,}99684}=0{,}055 dB. Con δp=0,05\delta_p=0{,}05 e δs=0,01\delta_s=0{,}01 si ha Rp=20log⁡101,050,95=0,87R_p=20\log_{10}\frac{1{,}05}{0{,}95}=0{,}87 dB e As=40A_s=40 dB.

Teorema (i tre metodi).

  1. Finestre (windowing, o troncamento della serie di Fourier): si usa una somma parziale della serie di DD.
  2. Campionamento in frequenza (frequency sampling): hh è l'IDFT di campioni di DD, quindi HH coincide con DD solo su quei campioni.
  3. Minimax (algoritmo di Parks-McClellan): si cercano i coefficienti che minimizzano il massimo dell'errore pesato W(ω^) ∣D(ω^)−Hˉ(ω^)∣W(\hat\omega)\,|D(\hat\omega)-\bar H(\hat\omega)|; il peso WW permette errori diversi nelle diverse bande. I filtri risultanti sono equiripple.

Teorema (ottimalità). Fra tutti i filtri FIR a fase lineare di ordine N=2rN=2r, la somma parziale Hˉ(ω^)=∑n=−rrhd[n]e−jω^n\bar H(\hat\omega)=\sum_{n=-r}^{r}h_d[n]e^{-j\hat\omega n} minimizza l'errore quadratico medio E2=12π∫−ππ(D(ω^)−Hˉ(ω^))2dω^E^2=\frac1{2\pi}\int_{-\pi}^{\pi}\big(D(\hat\omega)-\bar H(\hat\omega)\big)^2d\hat\omega.

Esempio. Con ω^0=π/3\hat\omega_0=\pi/3 il massimo di Hˉ\bar H è 1,07061{,}0706 per L=21L=21, 1,09281{,}0928 per L=61L=61, 1,09081{,}0908 per L=151L=151 e 1,09001{,}0900 per L=401L=401: il sovraelongo converge a circa il 9% del salto (con minimo −0,089-0{,}089 nella banda oscura), come si vede nel grafico. L'errore in banda passante e in banda oscura è circa δp≃δs≃0,09\delta_p\simeq\delta_s\simeq0{,}09, cioè As≃21A_s\simeq21 dB, e non dipende da LL. Quello che dipende da LL è la larghezza della transizione, circa 0,9⋅2πL0{,}9\cdot\frac{2\pi}{L}, e la rapidità delle oscillazioni.

Grafico interattivo: Passa-basso con ω0 = π/3 progettato con la finestra rettangolare: aumentando L le oscillazioni si stringono ma il sovraelongo (circa 9%) resta; con Hamming scompaiono

Teorema (alternanza). Sia Hˉ(ω^)=∑n=0rpncos⁡(nω^)\bar H(\hat\omega)=\sum_{n=0}^{r}p_n\cos(n\hat\omega) una combinazione di r+1r+1 coseni e E(ω^)=W(ω^)(D(ω^)−Hˉ(ω^))E(\hat\omega)=W(\hat\omega)(D(\hat\omega)-\bar H(\hat\omega)). Hˉ\bar H è la soluzione del problema minimax se e solo se EE ha almeno r+2r+2 alternanze, cioè punti ω^0<⋯<ω^r+1\hat\omega_0<\dots<\hat\omega_{r+1} in II con E(ω^i)=−E(ω^i+1)E(\hat\omega_i)=-E(\hat\omega_{i+1}) e ∣E(ω^i)∣=max⁡I∣E∣|E(\hat\omega_i)|=\max_I|E|.

Esempio. N=10N=10 (r=5r=5, quindi servono 77 alternanze), banda passante [0,0,3π][0,0{,}3\pi], banda oscura [0,4π,π][0{,}4\pi,\pi], pesi uguali. scipy.signal.remez dà h={−0,0338,−0,1353,−0,0002,0,1237,0,2840,0,3493,… }h=\{-0{,}0338,-0{,}1353,-0{,}0002,0{,}1237,0{,}2840,0{,}3493,\dots\} (simmetrica) con errore massimo 0,17420{,}1742 in entrambe le bande. I punti di errore massimo sono ω^/π=0; 0,191; 0,3; 0,4; 0,514; 0,734; 1\hat\omega/\pi=0;\,0{,}191;\,0{,}3;\,0{,}4;\,0{,}514;\,0{,}734;\,1 con segni −,+,−,+,−,+,−-,+,-,+,-,+,-: sono proprio 77, di cui 44 ai bordi delle bande. Con peso 1:101:10 (banda oscura più importante) gli errori diventano 0,49260{,}4926 e 0,04940{,}0494, in rapporto 9,97≃109{,}97\simeq10.

Grafico interattivo: Minimax con N = 10, banda passante [0, 0,3π], banda oscura [0,4π, π]: l'errore oscilla con ampiezza costante (equiripple); con peso 10 sulla banda oscura l'errore lì è dieci volte più piccolo

9. Elaborazione multirate

Elaborazione multirate - decimazione e interpolazione

Definizione (espansore per LL). Inserisce L−1L-1 zeri fra due campioni consecutivi dell'ingresso: v[n]={x[n/L],n=0,±L,±2L,…0,altrimenti.v[n]=\begin{cases}x[n/L],&n=0,\pm L,\pm2L,\dots\\0,&\text{altrimenti.}\end{cases} (Nelle slide e nelle dispense i campioni vengono anche moltiplicati per LL; qui il guadagno LL è assegnato al filtro che segue, il risultato non cambia.)

Teorema (spettro dell'espansore). V(ejω^)=X(ejLω^)V(e^{j\hat\omega})=X(e^{jL\hat\omega}).

Esempio. x[n]=cos⁡(0,4πn)x[n]=\cos(0{,}4\pi n) e L=3L=3: V(ω^)=X(3ω^)V(\hat\omega)=X(3\hat\omega) ha righe in ω^=±0,1333π+2π3m\hat\omega=\pm0{,}1333\pi+\frac{2\pi}3m, cioè in 0,1333π0{,}1333\pi (il segnale originale, compresso), 0,5333π0{,}5333\pi e 0,8π0{,}8\pi (le due immagini).

Definizione (decimatore per MM). Conserva un campione ogni MM: y[n]=x[nM]y[n]=x[nM] (la frequenza scende a Fs/MF_s/M).

Esempio. x={1,2,3,4,5,6,7}x=\{1,2,3,4,5,6,7\} e M=3M=3: y={1,4,7}y=\{1,4,7\}.

Teorema (spettro del decimatore). Y(ejω^)=1M∑k=0M−1X ⁣(ejω^−2πkM)Y(e^{j\hat\omega})=\dfrac1M\displaystyle\sum_{k=0}^{M-1}X\!\Big(e^{j\frac{\hat\omega-2\pi k}M}\Big).

10. Filtri IIR e trasformazione bilineare

Filtri IIR - definizione e confronto con i FIR

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.

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|.

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.

Trasformazione bilineare

Definizione. La trasformazione bilineare (o di Möbius) è s=αz+βγz+δs=\dfrac{\alpha z+\beta}{\gamma z+\delta}, con α,β,γ,δ∈C\alpha,\beta,\gamma,\delta\in\mathbb C e αδ−βγ≠0\alpha\delta-\beta\gamma\ne0. È una mappa conforme (conserva gli angoli) che porta circonferenze in circonferenze (eventualmente degeneri: rette). Imponendo che il cerchio unitario vada nell'asse immaginario si ottiene s=z−1z+1,z=1+s1−s.s=\frac{z-1}{z+1},\qquad z=\frac{1+s}{1-s}.

Esempio. s=−0,5⇒z=1−0,51+0,5=13s=-0{,}5\Rightarrow z=\frac{1-0{,}5}{1+0{,}5}=\frac13: un polo analogico reale in −0,5-0{,}5 diventa un polo digitale in 13\frac13 (stabile).

11. Filtri di Butterworth

Filtri di Butterworth

Formula (Butterworth analogico). ∣Ha(jΩ)∣2=11+(ΩΩ0)2N|H_a(j\Omega)|^2=\frac{1}{1+\big(\frac{\Omega}{\Omega_0}\big)^{2N}} con NN ordine e Ω0\Omega_0 pulsazione di taglio a −3-3 dB. Vale 11 in 00, 12\frac12 in Ω0\Omega_0 per ogni NN, ed è monotona decrescente fino a 00 per Ω→∞\Omega\to\infty; per N→∞N\to\infty tende al rettangolo ideale.

Esempio. Con Ω0=1\Omega_0=1 e N=4N=4: ∣Ha(j0,5)∣2=11+0,58=0,9961|H_a(j0{,}5)|^2=\frac1{1+0{,}5^8}=0{,}9961, ∣Ha(j2)∣2=11+28=0,00389|H_a(j2)|^2=\frac1{1+2^8}=0{,}00389 (circa −24-24 dB). A Ω=2Ω0\Omega=2\Omega_0 (un'ottava sopra il taglio) l'attenuazione è 10log⁡10(1+22N)≃6N10\log_{10}(1+2^{2N})\simeq6N dB: 2424 dB per N=4N=4, 4848 dB per N=8N=8.

Grafico interattivo: Butterworth analogico, |H_a(jΩ)| = 1/√(1+(Ω/Ω0)^(2N)) con Ω0 = 1: tutte le curve passano per 1/√2 ≈ 0,707 in Ω = Ω0; più N è grande, più la transizione è ripida