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 (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 (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 è la pulsazione analogica (rad/s) e quella digitale normalizzata.
Il metodo di trasformazione
Date le specifiche del filtro digitale (modulo desiderato ):
- con un'opportuna mappa , la risposta desiderata digitale diventa una risposta desiderata analogica ;
- si risolve il problema analogico con le tecniche note, ;
- con la mappa inversa si ottiene , che eredita le proprietà della soluzione analogica.
La mappa deve avere tre proprietà:
- funzioni razionali in vanno in funzioni razionali in (altrimenti non si ottiene un'equazione alle differenze finita);
- un sistema stabile in (poli con , 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 (poli con , 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à →);
- l'asse immaginario va nella circonferenza unitaria (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) è , con e . È 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
I tre parametri essenziali si fissano con tre corrispondenze:
| significato | ||
|---|---|---|
| frequenza zero in frequenza zero in () | ||
| frequenza infinita massima frequenza () | ||
| un punto del semipiano sinistro va nell'origine, dentro il disco |
Esempio. : un polo analogico reale in diventa un polo digitale in (stabile).
Conservazione della stabilità. Con è e Il numeratore è minore del denominatore se e solo se . Quindi (e ). Il semipiano sinistro va nel disco unitario, l'asse immaginario sulla circonferenza, il semipiano destro fuori. Esempio: dà .
Cosa fa al sistema:
Dato si definisce . La bilineare cambia il dominio della funzione, non i suoi valori: in assume gli stessi valori che assume nel punto . Di conseguenza se ha uno zero o un polo in , ha uno zero o un polo in
Esempio 1. (polo in , zero all'infinito): , con polo in e zero in (immagine dello zero all'infinito).
Esempio 2 (integratore). dà , con polo in (immagine di ) e zero in ; l'equazione alle differenze è , un accumulatore (integrazione col metodo dei trapezi).
Forma generale. Se con , sostituendo e usando si ottiene Gli zeri all'infinito di diventano uno zero di molteplicità in . Per un all-pole di ordine (): .
Relazione fra le frequenze: il warping
Dove si trasformano le frequenze? Sulla circonferenza : Dunque con
una relazione non lineare: . È inevitabile: l'asse infinito deve entrare nell'intervallo finito . Si ha una distorsione dell'asse delle frequenze (frequency warping): vicino a è quasi lineare (), poi l'asse viene sempre più compresso e tutte le frequenze analogiche molto grandi finiscono vicino a .
Grafico interattivo: Mappa dell'asse delle frequenze: ω = 2 arctan Ω. Vicino a 0 è quasi lineare (tratteggio, ω = 2Ω), poi si comprime e tende a π per Ω → ∞
Esempio. corrispondono a . La metà dell'asse digitale, , è .
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 ), si spostano solo le frequenze:
- banda passante: , con che diventa ;
- banda oscura: , con che diventa .
Il numero di oscillazioni del modulo si conserva: se oscilla un certo numero di volte, anche oscilla altrettanto. Il procedimento è quindi: trasforma le frequenze delle specifiche con (prewarping), progetta il filtro analogico con queste frequenze, poi applica la bilineare.
Esempio (prewarping). Passa-basso del primo ordine con taglio a dB a kHz e kHz. È e . Il prototipo analogico con taglio è e con : il taglio cade proprio a kHz. Se invece si fosse usato senza prewarping, il dB cadrebbe a , cioè Hz: un errore del 70%.
Esempio (). Con è e : vale in (è proprio ) e in . Stessa forma di , 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 fase quasi lineare in banda passante, , la fase digitale è , che non è lineare in se non per piccolo (). 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 con : , con poli in (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 e moltiplicando numeratore e denominatore per :
Nel denominatore il coefficiente di è . Si verifica che i poli sono (dentro il disco, come deve essere), che c'è uno zero doppio in (immagine dei due zeri all'infinito di ), che , (il taglio cade in ) e (controllato con scipy.signal.bilinear).
Domande d'esame
- Quali proprietà deve avere la mappa per il progetto di filtri IIR e come le soddisfa la trasformazione bilineare? Traccia: razionali in razionali, stabilità conservata ( in funzione di ), asse immaginario nel cerchio unitario; punti notevoli .
- Ricava la relazione fra la frequenza analogica e quella digitale nella bilineare e discuti le conseguenze. Traccia: , , warping; compressione dell'asse; modulo conservato (tolleranze e oscillazioni), fase non lineare; prewarping delle frequenze di taglio; utile solo per filtri selettivi in frequenza.
- Spiega come si progetta un filtro IIR passa-basso con la bilineare a partire dalle specifiche digitali. Traccia: , , progetto analogico, sostituzione , poli in , zeri in (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. , . Requisiti: razionali in razionali, semipiano sinistro nel disco unitario, asse immaginario sulla circonferenza. Punti: ; ; .
- Sistema. : un polo o zero di diventa ; gli zeri all'infinito di diventano zeri in . Forma generale: .
- Stabilità. , minore di se e solo se . Esempio: dà .
- Esempi di mappa. (polo in , zero in ). : è l'integratore con i trapezi, .
- Frequenze (warping). Sulla circonferenza , quindi , . Relazione non lineare: corrispondono a . Vicino a è 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. e restano uguali; si spostano solo le frequenze: , . Il numero di oscillazioni si conserva.
- Prewarping. Progettare il prototipo analogico con e , poi applicare la bilineare.
- Esempio di prewarping. Passa-basso del primo ordine, taglio a kHz con kHz: , , , con . Senza prewarping il dB cadrebbe a Hz, errore del .
- Esempio con . dà e : in , in .
- Fase. Con , la fase digitale è : non lineare. La bilineare conserva il modulo, non la fase.
- Esempio completo (Butterworth del secondo ordine, ). dà . Poli , zero doppio in , , , .
- Definizione. con (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 .
- Tre corrispondenze. va in (frequenza zero in frequenza zero). va in (frequenza infinita in ). va in , dentro il disco.
- Esempio di polo. dà : polo analogico reale stabile, polo digitale stabile.
- Asse delle frequenze. corrisponde a .
- Passa-basso. corrisponde a , e a . Le tolleranze in diventano le stesse in .
- Errore tipico. Dimenticare il prewarping: senza, le frequenze di taglio digitali risultano spostate.