Antitrasformata zeta
In questa pagina 6
Data con la sua ROC si vuole risalire a . Il problema ha una soluzione unica solo se si conosce la ROC (si veda Trasformata zeta - definizione e regione di convergenzaLa trasformata zeta bilatera X(z) = Σ x[n] z^{-n} associa a una sequenza una funzione della variabile complessa z, definita nella regione di convergenza (ROC), sempre una corona circolare |z| in (R1, R2). Segnale a durata finita: ROC tutto il piano (tranne eventualmente 0 e ∞); causale: |z| > R1 (teorema di Abel); anticausale: |z| < R2; bilatero: intersezione, se non vuota. La stessa espressione algebrica con ROC diverse è la trasformata di segnali diversi: la ROC fa parte della trasformata. Sulla circonferenza unitaria, se è nella ROC, X(e^{jθ}) è la trasformata di Fourier. Le ROC non contengono poli.Trasformata zeta - definizione e regione di convergenza →): la stessa espressione può appartenere a segnali diversi. Il termine inglese è inverse z-transform. I metodi si vedono nel caso generale e poi per le funzioni razionali, che sono quelle dei sistemi LTI (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à →).
Formula di inversione
Si calcola su una circonferenza di raggio nella ROC, : che è la trasformata di Fourier della sequenza (Trasformata di Fourier a tempo discretoLa trasformata di Fourier di un segnale discreto è $S(f)=\sum_nT,s(nT),e^{-i2\pi fnT}$: una funzione continua e periodica in $f$ di periodo $F_p=1/T$. L'antitrasformata è l'integrale su un periodo, $s(nT)=\int_0^{F_p}S(f)e^{i2\pi fnT}df$. Le regole sono quelle del caso continuo (traslazione, convoluzione $\leftrightarrow$ prodotto, Parseval $\sum T|s|^2=\int_0^{F_p}|S|^2$), con incremento e somma corrente al posto di derivata e integrale. Per segnali reali $S(f)=S^*(-f)$, quindi basta $[0,F_p/2]$. Esempi: $\delta\to1$, $1\to\delta_{F_p}$, rect $\to$ sinc periodico, $a^n\mathbf 1_0\to\frac T{1-ae^{-i2\pi fT}}$.Trasformata di Fourier a tempo discreto →). Applicando la formula di inversione di quest'ultima, , cioè Con la sostituzione , , l'integrale diventa un integrale di linea complesso sulla circonferenza percorsa in senso antiorario.
Formula (inversione della zeta). , con 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 →).
Per il teorema dei residui (Teorema dei residuiIl teorema dei residui permette di calcolare integrali di funzioni complesse su curve chiuse sfruttando il coefficiente $a_{-1}$ della serie di Laurent attorno alle singolarità isolate. Il residuo in un polo semplice si calcola come $\lim_{z \to z_0} (z-z_0)f(z)$, mentre per poli di ordine $n$ si usa la formula di derivazione.Teorema dei residui →) l'integrale è la somma dei residui di nei poli dentro : , con per un polo semplice.
Esempio. , : . Per l'unico polo dentro è , residuo : (). Per compare anche un polo in di ordine e la somma dei residui dà (la ROC è esterna: segnale causale). Nella pratica il calcolo con i residui si usa poco: si usano i metodi seguenti.
Ispezione e scelta della ROC
L'ispezione (inspection) consiste nel riconoscere nell'espressione di le coppie note (vedi la tabella in Proprietà della trasformata zetaProprietà della zeta bilatera con le ROC: linearità (ROC ⊇ intersezione), ritardo x[n-n0] → z^{-n0}X(z) (unilatera: + termini iniziali), convoluzione → prodotto, stabilità BIBO ⇔ circonferenza unitaria nella ROC di H, coniugato X*(z*), inversione temporale X(1/z) con ROC invertita, derivazione n x[n] → -z X'(z), moltiplicazione per a^n → X(z/a) (ROC scalata di |a|), teoremi del valore iniziale e finale (ipotesi sul polo in 1). Con la tabella delle coppie notevoli.Proprietà della trasformata zeta →). I poli non stanno nella ROC e la ROC è connessa, quindi i poli separano le ROC possibili: ogni polo che sta fuori dalla ROC (cioè nella ROC) dà una componente anticausale, ogni polo dentro () una componente causale.
Esempio (tre ROC per la stessa ). , poli in e (e zeri in e in : ; le slide del corso ne citano solo uno). Tre ROC possibili:
- : entrambi i poli sono fuori: (anticausale);
- : il polo è dentro, il fuori: (bilatero);
- : entrambi dentro: (causale).
Si è verificato numericamente in un punto di ciascuna ROC che la somma della serie corrispondente coincide con . Solo la ROC intermedia contiene la circonferenza unitaria: è l'unica con trasformata di Fourier.
Funzioni razionali e divisione lunga
Si lavora con Per avere un'unica soluzione si cerca il segnale causale, la cui ROC è l'esterno del cerchio del polo di modulo maggiore. Condizione necessaria: nessuna singolarità all'infinito, finito.
Divisione lunga (long division). Si divide per ottenendo uno sviluppo in serie di potenze di (causale) i cui coefficienti sono i campioni: . È un metodo numerico: dà i primi campioni ma non la legge generale.
Esempio. , quindi . Per una ROC interna () si divide in potenze crescenti di : per , cioè (nel punto la serie somma a , come , verificato). Per un FIR la divisione è banale: e i campioni sono i coefficienti, .
Frazioni parziali
Poli semplici, . Se i poli non nulli sono distinti e è propria (grado del numeratore minore del denominatore, come polinomi in ), si scrive (si moltiplica per il fattore del polo e si valuta in quel polo: gli altri termini si annullano). Per ispezione, con ROC : Ogni polo contribuisce con un modo moltiplicato per il proprio residuo (residue).
Esempio svolto. , causale. ; . Quindi e : (verificato con scipy.signal.residuez e con la ricorsione). Il polo in dà il valore costante a regime.
Caso improprio, . Come nei polinomi, si divide: , e Esempio. , quindi : (verificato).
Poli multipli. Con un polo doppio in entrano i termini , e si usa . La coppia utile è . Esempio. : (verificato).
Poli complessi coniugati. Per un' reale i poli complessi vengono a coppie con residui coniugati e la somma dei due modi è reale: con e . Esempio. ha poli (modulo : stabile) e (verificato): oscillazione di periodo campioni e decadimento . Attenzione all'angolo dei poli: il polinomio ha poli con . Per esempio ha ma rad e non (il coefficiente contiene moltiplicato per , non per ).
In Python
import numpy as np
from scipy.signal import residuez, lfilter
b, a = [1], [1, -1.5, 0.5] # coefficienti in potenze di z^-1
r, p, k = residuez(b, a) # residui A_k, poli p_k, parte diretta
print(r, p, k) # [-1, 2], [0.5, 1], []
n = np.arange(12)
x_pf = np.real(sum(rk * pk**n for rk, pk in zip(r, p)))
imp = np.zeros(12); imp[0] = 1
x_imp = lfilter(b, a, imp) # risposta impulsiva = antitrasformata causale
print(np.allclose(x_pf, x_imp)) # Truelfilter(b, a, δ) risolve la ricorsione e dà direttamente la risposta impulsiva, cioè l'antitrasformata causale (è ciò che in MATLAB fa impz); residuez è la scomposizione in frazioni parziali (come in MATLAB).
Domande d'esame
- Spiegare come si calcola l'antitrasformata zeta di una funzione razionale, specificando il ruolo della ROC. Traccia: serve la ROC; per il causale ROC esterna al polo massimo e nessuna singolarità all'infinito; scomposizione in frazioni parziali con ; ; parte polinomiale se il grado del numeratore è del denominatore; poli doppi e complessi; per ROC bilatere, componenti causali dai poli interni e anticausali dagli esterni; verifica con la divisione lunga.
- Esistono più segnali con la stessa espressione di ? Esempio. Traccia: con ROC e ; con due poli, tre ROC e tre segnali; solo una contiene .
Versione ripasso
- Serve la ROC. La stessa con ROC diverse dà segnali diversi. Il problema ha soluzione unica con la ROC.
- Formula di inversione. , con antioraria, che circonda l'origine e sta dentro la ROC. Per i residui: .
- Tre metodi pratici. Ispezione (coppie note e ROC), divisione lunga (campioni come coefficienti, metodo numerico), frazioni parziali (per le razionali).
- Esempio di residuo. , : il polo dà per ; per la somma dei residui è .
- Ispezione e ROC. I poli separano le ROC. Un polo fuori dalla ROC dà una componente anticausale, un polo dentro una causale. Esempio con poli e : con si ha ; con si ha , unica ROC che contiene ; con si ha .
- Divisione lunga. Causale: sviluppo in potenze di . Esempio: , quindi . ROC interna: si divide in potenze crescenti di . FIR: .
- Poli semplici, . , ; per ROC : .
- Esempio svolto. : , , , con valori che tendono a .
- Caso improprio (). Si divide: , quindi .
- Poli doppi. . Esempio: dà .
- Poli complessi coniugati. Modi con e . Esempio: ha poli e , periodo .
- Attenzione all'angolo. Il polinomio ha poli con . Per si ha ma rad, non .
- Python.
residuezdà residui, poli e parte diretta;lfilter(b, a, delta)dà la risposta impulsiva, cioè l'antitrasformata causale. - Errore tipico. Dimenticare la ROC o calcolare male l'angolo dei poli complessi.