Salta al contenuto
Note per Studenti Trasformazione bilineare

Trasformazione bilineare

In questa pagina 6

Un filtro IIR si può progettare partendo dalla grande raccolta di soluzioni analogiche già note (Butterworth, Chebyshev, ellittici: 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 →). Serve una regola per trasformare un sistema analogico, descritto da una funzione di trasferimento Ha(s)H_a(s) (Laplace unilatera, funzione di trasferimento e stabilitàCon la trasformata unilatera $X(s)=\int_{0^-}^\infty x(t)e^{-st}dt$ le derivate diventano $\mathcal L[y']=sY-y(0^-)$: un problema di Cauchy causale si riduce a un'equazione algebrica, $Y=\frac{b}{a}X+\frac{\text{termini iniziali}}{a}$ (forzata + libera). La funzione di trasferimento è $H(s)=b(s)/a(s)$; il sistema causale è BIBO stabile se e solo se $H$ è propria e tutti i poli hanno parte reale negativa.Laplace unilatera, funzione di trasferimento e stabilità →), in uno digitale, descritto da H(z)H(z) (Trasformata zeta e sistemi a tempo discretoUn sistema LTI discreto è descritto da un'equazione alle differenze Σ a_i y(n-i) = Σ b_i x(n-i) con condizioni iniziali. L'uscita è evoluzione libera (dalle condizioni iniziali) più risposta forzata g*x. Si calcola in tre modi: soluzione dell'equazione, risposta impulsiva con segnale fittizio, trasformata zeta. FIR: memoria finita, sempre stabile; IIR: stabile se tutti i poli hanno modulo minore di 1. In frequenza G(f) = Σ b_i e^{-i2πfi} / Σ a_i e^{-i2πfi}.Trasformata zeta e sistemi a tempo discreto →). La regola più usata è la trasformazione bilineare. In questa nota Ω\Omega è la pulsazione analogica (rad/s) e ω^\hat\omega quella digitale normalizzata.

Il metodo di trasformazione s→zs\to z

Date le specifiche del filtro digitale (modulo desiderato D(ejω^)D(e^{j\hat\omega})):

  1. con un'opportuna mappa z→sz\to s, la risposta desiderata digitale diventa una risposta desiderata analogica Da(jΩ)D_a(j\Omega);
  2. si risolve il problema analogico con le tecniche note, Ha(jΩ)≈Da(jΩ)H_a(j\Omega)\approx D_a(j\Omega);
  3. con la mappa inversa s→zs\to z si ottiene H(ejω^)≈D(ejω^)H(e^{j\hat\omega})\approx D(e^{j\hat\omega}), che eredita le proprietà della soluzione analogica.

La mappa s→zs\to z deve avere tre proprietà:

  1. funzioni razionali in ss vanno in funzioni razionali in zz (altrimenti non si ottiene un'equazione alle differenze finita);
  2. un sistema stabile in ss (poli con Re⁡s<0\operatorname{Re}s<0, Causalità, stabilità e connessioni dei sistemi LTIPer un sistema LTI le proprietà si leggono sulla risposta impulsiva $h$: causale se $h$ è nulla per $t<0$; reale se $h$ è reale; statico se $h=K\delta$; BIBO stabile se e solo se $h$ è assolutamente integrabile (sommabile nel discreto). Serie e parallelo corrispondono a $h_1*h_2$ e $h_1+h_2$.Causalità, stabilità e connessioni dei sistemi LTI →) va in un sistema stabile in zz (poli con ∣z∣<1|z|<1, 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à →);
  3. l'asse immaginario s=jΩs=j\Omega va nella circonferenza unitaria z=ejω^z=e^{j\hat\omega} (così la risposta in frequenza analogica diventa quella digitale).

Una trasformazione che le soddisfa è la bilineare.

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

I tre parametri essenziali si fissano con tre corrispondenze:

ss z=1+s1−sz=\frac{1+s}{1-s} significato
00 11 frequenza zero in ss →\to frequenza zero in zz (ej0=1e^{j0}=1)
∞\infty −1-1 frequenza infinita →\to massima frequenza ω^=π\hat\omega=\pi (ejπ=−1e^{j\pi}=-1)
−1-1 00 un punto del semipiano sinistro va nell'origine, dentro il disco

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

Conservazione della stabilità. Con s=σ+jΩs=\sigma+j\Omega è z=1+σ+jΩ1−σ−jΩz=\frac{1+\sigma+j\Omega}{1-\sigma-j\Omega} e ∣z∣2=(1+σ)2+Ω2(1−σ)2+Ω2=1+2σ+σ2+Ω21−2σ+σ2+Ω2.|z|^2=\frac{(1+\sigma)^2+\Omega^2}{(1-\sigma)^2+\Omega^2}=\frac{1+2\sigma+\sigma^2+\Omega^2}{1-2\sigma+\sigma^2+\Omega^2}. Il numeratore è minore del denominatore se e solo se σ<0\sigma<0. Quindi Re⁡s<0  ⟺  ∣z∣<1\operatorname{Re}s<0\iff|z|<1 (e σ=0  ⟺  ∣z∣=1\sigma=0\iff|z|=1). Il semipiano sinistro va nel disco unitario, l'asse immaginario sulla circonferenza, il semipiano destro fuori. Esempio: s=−0,3+0,5js=-0{,}3+0{,}5j dà ∣z∣2=0,72+0,521,32+0,52=0,741,94=0,3814<1|z|^2=\frac{0{,}7^2+0{,}5^2}{1{,}3^2+0{,}5^2}=\frac{0{,}74}{1{,}94}=0{,}3814<1.

Cosa fa al sistema: H(z)=Ha(z−1z+1)H(z)=H_a\big(\frac{z-1}{z+1}\big)

Dato Ha(s)H_a(s) si definisce H(z)=Ha(s)∣s=(z−1)/(z+1)H(z)=H_a(s)\big|_{s=(z-1)/(z+1)}. La bilineare cambia il dominio della funzione, non i suoi valori: H(z)H(z) in zz assume gli stessi valori che HaH_a assume nel punto s=z−1z+1s=\frac{z-1}{z+1}. Di conseguenza se HaH_a ha uno zero o un polo in s^\hat s, HH ha uno zero o un polo in z^=1+s^1−s^.\hat z=\frac{1+\hat s}{1-\hat s}.

Esempio 1. Ha(s)=1s+1H_a(s)=\frac1{s+1} (polo in −1-1, zero all'infinito): H(z)=1z−1z+1+1=z+12z=1+z−12H(z)=\frac{1}{\frac{z-1}{z+1}+1}=\frac{z+1}{2z}=\frac{1+z^{-1}}{2}, con polo in z^=1−11+1=0\hat z=\frac{1-1}{1+1}=0 e zero in z=−1z=-1 (immagine dello zero all'infinito).

Esempio 2 (integratore). Ha(s)=1sH_a(s)=\frac1s dà H(z)=z+1z−1=1+z−11−z−1H(z)=\frac{z+1}{z-1}=\frac{1+z^{-1}}{1-z^{-1}}, con polo in z=1z=1 (immagine di s=0s=0) e zero in z=−1z=-1; l'equazione alle differenze è y[n]=y[n−1]+x[n]+x[n−1]y[n]=y[n-1]+x[n]+x[n-1], un accumulatore (integrazione col metodo dei trapezi).

Forma generale. Se Ha(s)=b0∏k=1M(s−za,k)∏k=1N(s−pa,k)H_a(s)=b_0\frac{\prod_{k=1}^M(s-z_{a,k})}{\prod_{k=1}^N(s-p_{a,k})} con M≤NM\le N, sostituendo s=z−1z+1s=\frac{z-1}{z+1} e usando s−s^=(1−s^)z−(1+s^)z+1=(1−s^) (z−z^)z+1s-\hat s=\frac{(1-\hat s)z-(1+\hat s)}{z+1}=\frac{(1-\hat s)\,(z-\hat z)}{z+1} si ottiene H(z)=A (1+z−1)N−M∏k=1M(1−zkz−1)∏k=1N(1−pkz−1),zk=1+za,k1−za,k, pk=1+pa,k1−pa,k, A=b0∏(1−za,k)∏(1−pa,k).H(z)=A\,\frac{(1+z^{-1})^{N-M}\prod_{k=1}^M(1-z_kz^{-1})}{\prod_{k=1}^N(1-p_kz^{-1})},\quad z_k=\frac{1+z_{a,k}}{1-z_{a,k}},\ p_k=\frac{1+p_{a,k}}{1-p_{a,k}},\ A=b_0\frac{\prod(1-z_{a,k})}{\prod(1-p_{a,k})}. Gli N−MN-M zeri all'infinito di HaH_a diventano uno zero di molteplicità N−MN-M in z=−1z=-1. Per un all-pole di ordine NN (M=0M=0): H(z)=A(1+z−1)N/∏(1−pkz−1)H(z)=A(1+z^{-1})^N/\prod(1-p_kz^{-1}).

Relazione fra le frequenze: il warping

Dove si trasformano le frequenze? Sulla circonferenza z=ejω^z=e^{j\hat\omega}: s=ejω^−1ejω^+1=ejω^/2(ejω^/2−e−jω^/2)ejω^/2(ejω^/2+e−jω^/2)=2jsin⁡(ω^/2)2cos⁡(ω^/2)=jtan⁡ω^2.s=\frac{e^{j\hat\omega}-1}{e^{j\hat\omega}+1}=\frac{e^{j\hat\omega/2}\big(e^{j\hat\omega/2}-e^{-j\hat\omega/2}\big)}{e^{j\hat\omega/2}\big(e^{j\hat\omega/2}+e^{-j\hat\omega/2}\big)}=\frac{2j\sin(\hat\omega/2)}{2\cos(\hat\omega/2)}=j\tan\frac{\hat\omega}2 . Dunque s=jΩs=j\Omega con

Ω=tan⁡ω^2⟺ω^=2arctan⁡Ω,\boxed{\Omega=\tan\frac{\hat\omega}{2}\qquad\Longleftrightarrow\qquad\hat\omega=2\arctan\Omega},

una relazione non lineare: H(ejω^)=Ha(jΩ)∣Ω=tan⁡(ω^/2)H(e^{j\hat\omega})=H_a(j\Omega)\big|_{\Omega=\tan(\hat\omega/2)}. È inevitabile: l'asse infinito Ω∈(−∞,+∞)\Omega\in(-\infty,+\infty) deve entrare nell'intervallo finito ω^∈(−π,π)\hat\omega\in(-\pi,\pi). Si ha una distorsione dell'asse delle frequenze (frequency warping): vicino a 00 è quasi lineare (tan⁡ω^2≃ω^2\tan\frac{\hat\omega}2\simeq\frac{\hat\omega}2), poi l'asse viene sempre più compresso e tutte le frequenze analogiche molto grandi finiscono vicino a π\pi.

Grafico interattivo: Mappa dell'asse delle frequenze: ω = 2 arctan Ω. Vicino a 0 è quasi lineare (tratteggio, ω = 2Ω), poi si comprime e tende a π per Ω → ∞

Esempio. ω^/π=0,1, 0,25, 0,5, 0,75, 0,9\hat\omega/\pi=0{,}1,\ 0{,}25,\ 0{,}5,\ 0{,}75,\ 0{,}9 corrispondono a Ω=0,158, 0,414, 1,000, 2,414, 6,314\Omega=0{,}158,\ 0{,}414,\ 1{,}000,\ 2{,}414,\ 6{,}314. La metà dell'asse digitale, ω^=π/2\hat\omega=\pi/2, è Ω=1\Omega=1.

Per questo la bilineare serve per filtri selettivi in frequenza (a tratti costanti: passa-basso, passa-alto, passa-banda, elimina-banda), dove conta solo dove sono le frequenze di taglio e la distorsione si compensa; non serve per approssimare una risposta con un andamento prescritto continuo (per esempio un differenziatore).

Effetto sulle specifiche di un passa-basso

Le tolleranze in banda passante e in banda oscura sono conservate (stessi valori di δp,δs\delta_p,\delta_s), si spostano solo le frequenze:

  • banda passante: 0≤ω^≤ω^p  ⟺  0≤Ω≤Ωp=tan⁡ω^p20\le\hat\omega\le\hat\omega_p\iff0\le\Omega\le\Omega_p=\tan\frac{\hat\omega_p}2, con 1−δp≤∣Ha∣≤11-\delta_p\le|H_a|\le1 che diventa 1−δp≤∣H∣≤11-\delta_p\le|H|\le1;
  • banda oscura: ω^≥ω^s  ⟺  Ω≥Ωs=tan⁡ω^s2\hat\omega\ge\hat\omega_s\iff\Omega\ge\Omega_s=\tan\frac{\hat\omega_s}2, con ∣Ha∣≤δs|H_a|\le\delta_s che diventa ∣H∣≤δs|H|\le\delta_s.

Il numero di oscillazioni del modulo si conserva: se ∣Ha∣|H_a| oscilla un certo numero di volte, anche ∣H∣|H| oscilla altrettanto. Il procedimento è quindi: trasforma le frequenze delle specifiche con Ω=tan⁡ω^2\Omega=\tan\frac{\hat\omega}2 (prewarping), progetta il filtro analogico con queste frequenze, poi applica la bilineare.

Esempio (prewarping). Passa-basso del primo ordine con taglio a −3-3 dB a 11 kHz e Fs=8F_s=8 kHz. È ω^c=2π10008000=π4\hat\omega_c=2\pi\frac{1000}{8000}=\frac\pi4 e Ωc=tan⁡π8=0,4142\Omega_c=\tan\frac\pi8=0{,}4142. Il prototipo analogico con taglio Ωc\Omega_c è Ha(s)=Ωcs+ΩcH_a(s)=\frac{\Omega_c}{s+\Omega_c} e H(z)=Ωcz−1z+1+Ωc=Ωc1+Ωc⋅1+z−11−1−Ωc1+Ωcz−1=0,2929 (1+z−1)1−0,4142 z−1,H(z)=\frac{\Omega_c}{\frac{z-1}{z+1}+\Omega_c}=\frac{\Omega_c}{1+\Omega_c}\cdot\frac{1+z^{-1}}{1-\frac{1-\Omega_c}{1+\Omega_c}z^{-1}}=\frac{0{,}2929\,(1+z^{-1})}{1-0{,}4142\,z^{-1}}, con ∣H(ejπ/4)∣=0,7071|H(e^{j\pi/4})|=0{,}7071: il taglio cade proprio a 11 kHz. Se invece si fosse usato Ωc=ω^c=0,7854\Omega_c=\hat\omega_c=0{,}7854 senza prewarping, il −3-3 dB cadrebbe a ω^=0,424π\hat\omega=0{,}424\pi, cioè 16951695 Hz: un errore del 70%.

Esempio (Ω0=1\Omega_0=1). Con Ha(s)=1s+1H_a(s)=\frac1{s+1} è H(z)=1+z−12H(z)=\frac{1+z^{-1}}2 e ∣H(ejω^)∣=cos⁡ω^2|H(e^{j\hat\omega})|=\cos\frac{\hat\omega}2: vale 0,70710{,}7071 in ω^=π/2\hat\omega=\pi/2 (è proprio Ω=1\Omega=1) e 00 in π\pi. Stessa forma di 11+Ω2\frac1{\sqrt{1+\Omega^2}}, ma con l'asse compresso (nel grafico, con l'asse delle frequenze portato alla stessa unità, la curva analogica sarebbe quella tratteggiata).

Grafico interattivo: H_a(s) = 1/(s+1) ha |H_a(jΩ)| = 1/√(1+Ω²). Dopo la bilineare H(z) = (1+z^-1)/2 e |H(e^{jω})| = cos(ω/2), che vale 1/√2 in ω = π/2

Effetto sulla fase

Se Ha(jΩ)H_a(j\Omega) ha fase quasi lineare in banda passante, ∠Ha(jΩ)≃−τΩ\angle H_a(j\Omega)\simeq-\tau\Omega, la fase digitale è ∠H(ejω^)=∠Ha(jtan⁡ω^2)≃−τtan⁡ω^2\angle H(e^{j\hat\omega})=\angle H_a\big(j\tan\frac{\hat\omega}2\big)\simeq-\tau\tan\frac{\hat\omega}2, che non è lineare in ω^\hat\omega se non per ω^\hat\omega piccolo (tan⁡ω^2≃ω^2\tan\frac{\hat\omega}2\simeq\frac{\hat\omega}2). Quindi la bilineare conserva il modulo, ma non la fase: un IIR così ottenuto non ha fase lineare (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 →, 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 →).

Un esempio completo di secondo ordine

Butterworth analogico di ordine 22 con Ω0=1\Omega_0=1: Ha(s)=1s2+2 s+1H_a(s)=\frac{1}{s^2+\sqrt2\,s+1}, con poli in s=−1±j2s=\frac{-1\pm j}{\sqrt2} (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 →). Sostituendo s=z−1z+1s=\frac{z-1}{z+1} e moltiplicando numeratore e denominatore per (z+1)2(z+1)^2: H(z)=(z+1)2(z−1)2+2 (z−1)(z+1)+(z+1)2=(z+1)2(2+2) z2+(2−2)=12+2⋅1+2z−1+z−21+2−22+2 z−2=0,29289 1+2z−1+z−21+0,17157 z−2.H(z)=\frac{(z+1)^2}{(z-1)^2+\sqrt2\,(z-1)(z+1)+(z+1)^2}=\frac{(z+1)^2}{(2+\sqrt2)\,z^2+(2-\sqrt2)}=\frac{1}{2+\sqrt2}\cdot\frac{1+2z^{-1}+z^{-2}}{1+\frac{2-\sqrt2}{2+\sqrt2}\,z^{-2}}=0{,}29289\,\frac{1+2z^{-1}+z^{-2}}{1+0{,}17157\,z^{-2}}. Nel denominatore il coefficiente di zz è −2+2=0-2+2=0. Si verifica che i poli sono z^=1+sk1−sk=±0,4142 j\hat z=\frac{1+s_k}{1-s_k}=\pm0{,}4142\,j (dentro il disco, come deve essere), che c'è uno zero doppio in z=−1z=-1 (immagine dei due zeri all'infinito di HaH_a), che H(1)=0,29289⋅41,17157=1H(1)=0{,}29289\cdot\frac{4}{1{,}17157}=1, ∣H(ejπ/2)∣=0,7071|H(e^{j\pi/2})|=0{,}7071 (il taglio Ω0=1\Omega_0=1 cade in ω^=π/2\hat\omega=\pi/2) e H(ejπ)=0H(e^{j\pi})=0 (controllato con scipy.signal.bilinear).

Domande d'esame

  1. Quali proprietà deve avere la mappa s→zs\to z per il progetto di filtri IIR e come le soddisfa la trasformazione bilineare? Traccia: razionali in razionali, stabilità conservata (∣z∣2|z|^2 in funzione di σ\sigma), asse immaginario nel cerchio unitario; punti notevoli s=0,∞,−1s=0,\infty,-1.
  2. Ricava la relazione fra la frequenza analogica e quella digitale nella bilineare e discuti le conseguenze. Traccia: z=ejω^z=e^{j\hat\omega}, s=jtan⁡ω^2s=j\tan\frac{\hat\omega}2, warping; compressione dell'asse; modulo conservato (tolleranze e oscillazioni), fase non lineare; prewarping delle frequenze di taglio; utile solo per filtri selettivi in frequenza.
  3. Spiega come si progetta un filtro IIR passa-basso con la bilineare a partire dalle specifiche digitali. Traccia: Ωp=tan⁡ω^p2\Omega_p=\tan\frac{\hat\omega_p}2, Ωs=tan⁡ω^s2\Omega_s=\tan\frac{\hat\omega_s}2, progetto analogico, sostituzione s=z−1z+1s=\frac{z-1}{z+1}, poli in 1+sk1−sk\frac{1+s_k}{1-s_k}, zeri in z=−1z=-1 (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 →).

Versione ripasso

  • Mappa. s=z−1z+1s=\dfrac{z-1}{z+1}, z=1+s1−sz=\dfrac{1+s}{1-s}. Requisiti: razionali in razionali, semipiano sinistro nel disco unitario, asse immaginario sulla circonferenza. Punti: s=0→z=1s=0\to z=1; s=∞→z=−1s=\infty\to z=-1; s=−1→z=0s=-1\to z=0.
  • Sistema. H(z)=Ha(z−1z+1)H(z)=H_a\big(\frac{z-1}{z+1}\big): un polo o zero s^\hat s di HaH_a diventa z^=1+s^1−s^\hat z=\frac{1+\hat s}{1-\hat s}; gli zeri all'infinito di HaH_a diventano zeri in z=−1z=-1. Forma generale: H(z)=A (1+z−1)N−M∏(1−zkz−1)∏(1−pkz−1)H(z)=A\,\dfrac{(1+z^{-1})^{N-M}\prod(1-z_kz^{-1})}{\prod(1-p_kz^{-1})}.
  • Stabilità. ∣z∣2=(1+σ)2+Ω2(1−σ)2+Ω2\lvert z\rvert^2=\dfrac{(1+\sigma)^2+\Omega^2}{(1-\sigma)^2+\Omega^2}, minore di 11 se e solo se σ<0\sigma<0. Esempio: s=−0,3+0,5js=-0{,}3+0{,}5j dà ∣z∣2=0,3814\lvert z\rvert^2=0{,}3814.
  • Esempi di mappa. 1s+1→1+z−12\frac1{s+1}\to\frac{1+z^{-1}}2 (polo in 00, zero in −1-1). 1s→1+z−11−z−1\frac1s\to\frac{1+z^{-1}}{1-z^{-1}}: è l'integratore con i trapezi, y[n]=y[n−1]+x[n]+x[n−1]y[n]=y[n-1]+x[n]+x[n-1].
  • Frequenze (warping). Sulla circonferenza s=jtan⁡ω^2s=j\tan\frac{\hat\omega}2, quindi Ω=tan⁡ω^2\Omega=\tan\frac{\hat\omega}2, ω^=2arctan⁡Ω\hat\omega=2\arctan\Omega. Relazione non lineare: ω^/π=0,1; 0,25; 0,5; 0,75; 0,9\hat\omega/\pi=0{,}1;\,0{,}25;\,0{,}5;\,0{,}75;\,0{,}9 corrispondono a Ω=0,158; 0,414; 1; 2,414; 6,314\Omega=0{,}158;\,0{,}414;\,1;\,2{,}414;\,6{,}314. Vicino a 00 è quasi lineare.
  • Dove serve. Filtri selettivi in frequenza (passa-basso, passa-alto, passa-banda, elimina-banda), dove conta la posizione delle frequenze di taglio. Non per risposte con andamento continuo prescritto, come un differenziatore.
  • Tolleranze. δp\delta_p e δs\delta_s restano uguali; si spostano solo le frequenze: Ωp=tan⁡ω^p2\Omega_p=\tan\frac{\hat\omega_p}2, Ωs=tan⁡ω^s2\Omega_s=\tan\frac{\hat\omega_s}2. Il numero di oscillazioni si conserva.
  • Prewarping. Progettare il prototipo analogico con Ωp\Omega_p e Ωs\Omega_s, poi applicare la bilineare.
  • Esempio di prewarping. Passa-basso del primo ordine, taglio a 11 kHz con Fs=8F_s=8 kHz: ω^c=π/4\hat\omega_c=\pi/4, Ωc=tan⁡π8=0,4142\Omega_c=\tan\frac\pi8=0{,}4142, H(z)=0,2929 (1+z−1)1−0,4142 z−1H(z)=\dfrac{0{,}2929\,(1+z^{-1})}{1-0{,}4142\,z^{-1}}, con ∣H(ejπ/4)∣=0,7071\lvert H(e^{j\pi/4})\rvert=0{,}7071. Senza prewarping il −3-3 dB cadrebbe a 16951695 Hz, errore del 70%70\%.
  • Esempio con Ω0=1\Omega_0=1. Ha=1s+1H_a=\frac1{s+1} dà H=1+z−12H=\frac{1+z^{-1}}2 e ∣H(ejω^)∣=cos⁡ω^2\lvert H(e^{j\hat\omega})\rvert=\cos\frac{\hat\omega}2: 0,70710{,}7071 in π/2\pi/2, 00 in π\pi.
  • Fase. Con ∠Ha≃−τΩ\angle H_a\simeq-\tau\Omega, la fase digitale è −τtan⁡ω^2-\tau\tan\frac{\hat\omega}2: non lineare. La bilineare conserva il modulo, non la fase.
  • Esempio completo (Butterworth del secondo ordine, Ω0=1\Omega_0=1). Ha=1s2+2s+1H_a=\frac1{s^2+\sqrt2s+1} dà H(z)=0,29289 1+2z−1+z−21+0,17157 z−2H(z)=0{,}29289\,\dfrac{1+2z^{-1}+z^{-2}}{1+0{,}17157\,z^{-2}}. Poli ±0,4142 j\pm0{,}4142\,j, zero doppio in z=−1z=-1, H(1)=1H(1)=1, ∣H(ejπ/2)∣=0,7071\lvert H(e^{j\pi/2})\rvert=0{,}7071, H(ejπ)=0H(e^{j\pi})=0.
  • Definizione. s=αz+βγz+δs=\frac{\alpha z+\beta}{\gamma z+\delta} con αδ−βγ≠0\alpha\delta-\beta\gamma\neq0 (trasformazione di Möbius): conserva gli angoli e porta circonferenze in circonferenze, eventualmente rette. Imponendo che il cerchio unitario vada nell'asse immaginario si ottiene s=z−1z+1s=\frac{z-1}{z+1}.
  • Tre corrispondenze. s=0s=0 va in z=1z=1 (frequenza zero in frequenza zero). s=∞s=\infty va in z=−1z=-1 (frequenza infinita in ω^=π\hat\omega=\pi). s=−1s=-1 va in z=0z=0, dentro il disco.
  • Esempio di polo. s=−0,5s=-0{,}5 dà z=1−0,51+0,5=13z=\frac{1-0{,}5}{1+0{,}5}=\frac13: polo analogico reale stabile, polo digitale stabile.
  • Asse delle frequenze. ω^=π/2\hat\omega=\pi/2 corrisponde a Ω=1\Omega=1.
  • Passa-basso. ω^≤ω^p\hat\omega\le\hat\omega_p corrisponde a Ω≤Ωp\Omega\le\Omega_p, e ω^≥ω^s\hat\omega\ge\hat\omega_s a Ω≥Ωs\Omega\ge\Omega_s. Le tolleranze in ∣Ha∣\lvert H_a\rvert diventano le stesse in ∣H∣\lvert H\rvert.
  • Errore tipico. Dimenticare il prewarping: senza, le frequenze di taglio digitali risultano spostate.

Esercizi su questo argomento

Teoria collegata