Salta al contenuto
Note per Studenti Antitrasformata zeta

Antitrasformata zeta

In questa pagina 6

Data X(z)X(z) con la sua ROC RXR_X si vuole risalire a x[n]x[n]. 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 X(z)X(z) su una circonferenza di raggio rr nella ROC, z=rejθz=re^{j\theta}: X(rejθ)=∑nx[n]r−ne−jnθ,X(re^{j\theta})=\sum_nx[n]r^{-n}e^{-jn\theta}, che è la trasformata di Fourier della sequenza x[n]r−nx[n]r^{-n} (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, x[n]r−n=12π∫−ππX(rejθ)ejnθdθx[n]r^{-n}=\frac1{2\pi}\int_{-\pi}^{\pi}X(re^{j\theta})e^{jn\theta}d\theta, cioè x[n]=12π∫−ππX(rejθ) (rejθ)n dθ.x[n]=\frac1{2\pi}\int_{-\pi}^{\pi}X(re^{j\theta})\,(re^{j\theta})^{n}\,d\theta. Con la sostituzione z=rejθz=re^{j\theta}, dθ=dzjzd\theta=\frac{dz}{jz}, l'integrale diventa un integrale di linea complesso sulla circonferenza percorsa in senso antiorario.

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

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 X(z)zn−1X(z)z^{n-1} nei poli dentro CC: x[n]=∑pk in CRes[X(z)zn−1]z=pkx[n]=\sum_{p_k\text{ in }C}\mathrm{Res}\big[X(z)z^{n-1}\big]_{z=p_k}, con Res[F]z=p=lim⁡z→p(z−p)F(z)\mathrm{Res}[F]_{z=p}=\lim_{z\to p}(z-p)F(z) per un polo semplice.

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.

Ispezione e scelta della ROC

L'ispezione (inspection) consiste nel riconoscere nell'espressione di X(z)X(z) 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è ∣z∣<∣p∣\lvert z\rvert<\lvert p\rvert nella ROC) dà una componente anticausale, ogni polo dentro (∣z∣>∣p∣\lvert z\rvert>\lvert p\rvert) una componente causale.

Esempio (tre ROC per la stessa XX). X(z)=11−0,5z−1+11−2z−1X(z)=\dfrac1{1-0{,}5z^{-1}}+\dfrac1{1-2z^{-1}}, poli in 0,50{,}5 e 22 (e zeri in 00 e in 0,5+22=1,25\frac{0{,}5+2}2=1{,}25: X=z(2z−2,5)(z−0,5)(z−2)X=\frac{z(2z-2{,}5)}{(z-0{,}5)(z-2)}; le slide del corso ne citano solo uno). Tre ROC possibili:

  • ∣z∣<0,5\lvert z\rvert<0{,}5: entrambi i poli sono fuori: x[n]=−(0,5)nu[−n−1]−2nu[−n−1]x[n]=-(0{,}5)^nu[-n-1]-2^nu[-n-1] (anticausale);
  • 0,5<∣z∣<20{,}5<\lvert z\rvert<2: il polo 0,50{,}5 è dentro, il 22 fuori: x[n]=(0,5)nu[n]−2nu[−n−1]x[n]=(0{,}5)^nu[n]-2^nu[-n-1] (bilatero);
  • ∣z∣>2\lvert z\rvert>2: entrambi dentro: x[n]=[(0,5)n+2n]u[n]x[n]=\big[(0{,}5)^n+2^n\big]u[n] (causale).

Si è verificato numericamente in un punto di ciascuna ROC che la somma della serie corrispondente coincide con X(z)X(z). Solo la ROC intermedia contiene la circonferenza unitaria: è l'unica con trasformata di Fourier.

Funzioni razionali e divisione lunga

Si lavora con X(z)=PQ=∑k=0Mbkz−k∑k=0Nakz−k,a0≠0.X(z)=\frac{P}{Q}=\frac{\sum_{k=0}^{M}b_kz^{-k}}{\sum_{k=0}^{N}a_kz^{-k}},\qquad a_0\ne0. 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, X(∞)=b0/a0X(\infty)=b_0/a_0 finito.

Divisione lunga (long division). Si divide PP per QQ ottenendo uno sviluppo in serie di potenze di z−1z^{-1} (causale) i cui coefficienti sono i campioni: X(z)=x[0]+x[1]z−1+x[2]z−2+…X(z)=x[0]+x[1]z^{-1}+x[2]z^{-2}+\dots. È un metodo numerico: dà i primi campioni ma non la legge generale.

Esempio. 11−0,5z−1=1+0,5z−1+0,25z−2+0,125z−3+…\frac1{1-0{,}5z^{-1}}=1+0{,}5z^{-1}+0{,}25z^{-2}+0{,}125z^{-3}+\dots, quindi x[n]=0,5nu[n]x[n]=0{,}5^nu[n]. Per una ROC interna (∣z∣<0,5\lvert z\rvert<0{,}5) si divide in potenze crescenti di zz: 11+0,5z−1=2z−4z2+8z3−…\frac1{1+0{,}5z^{-1}}=2z-4z^2+8z^3-\dots per ∣z∣<0,5\lvert z\rvert<0{,}5, cioè x[n]=−(−0,5)nu[−n−1]x[n]=-(-0{,}5)^nu[-n-1] (nel punto z=0,1z=0{,}1 la serie somma a 16\frac16, come XX, verificato). Per un FIR la divisione è banale: X(z)=∑bkz−kX(z)=\sum b_kz^{-k} e i campioni sono i coefficienti, x[n]=bnx[n]=b_n.

Frazioni parziali

Poli semplici, M<NM<N. Se i poli non nulli p1,…,pNp_1,\dots,p_N sono distinti e XX è propria (grado del numeratore minore del denominatore, come polinomi in z−1z^{-1}), si scrive X(z)=∑k=1NAk1−pkz−1,Ak=[(1−pkz−1)X(z)]z=pkX(z)=\sum_{k=1}^{N}\frac{A_k}{1-p_kz^{-1}},\qquad A_k=\Big[(1-p_kz^{-1})X(z)\Big]_{z=p_k} (si moltiplica per il fattore del polo e si valuta in quel polo: gli altri termini si annullano). Per ispezione, con ROC ∣z∣>max⁡∣pk∣\lvert z\rvert>\max\lvert p_k\rvert: x[n]=∑k=1NAk pk n u[n].x[n]=\sum_{k=1}^{N}A_k\,p_k^{\,n}\,u[n]. Ogni polo contribuisce con un modo pknp_k^n moltiplicato per il proprio residuo AkA_k (residue).

Esempio svolto. X(z)=1(1−z−1)(1−0,5z−1)X(z)=\dfrac1{(1-z^{-1})(1-0{,}5z^{-1})}, causale. A1=[(1−z−1)X]z=1=11−0,5=2A_1=\big[(1-z^{-1})X\big]_{z=1}=\frac1{1-0{,}5}=2; A2=[(1−0,5z−1)X]z=0,5=11−2=−1A_2=\big[(1-0{,}5z^{-1})X\big]_{z=0{,}5}=\frac1{1-2}=-1. Quindi X=21−z−1−11−0,5z−1X=\frac2{1-z^{-1}}-\frac1{1-0{,}5z^{-1}} e x[n]=[2−0,5n]u[n]x[n]=\big[2-0{,}5^n\big]u[n]: 1; 1,5; 1,75; 1,875;⋯→21;\ 1{,}5;\ 1{,}75;\ 1{,}875;\dots\to2 (verificato con scipy.signal.residuez e con la ricorsione). Il polo in z=1z=1 dà il valore costante 22 a regime.

Caso improprio, M≥NM\ge N. Come nei polinomi, si divide: X(z)=∑k=0M−Nckz−k+∑k=1NAk1−pkz−1X(z)=\sum_{k=0}^{M-N}c_kz^{-k}+\sum_{k=1}^{N}\frac{A_k}{1-p_kz^{-1}}, e x[n]=∑k=0M−Nck δ[n−k]+∑kAkpknu[n].x[n]=\sum_{k=0}^{M-N}c_k\,\delta[n-k]+\sum_kA_kp_k^nu[n]. Esempio. 1+2z−1+3z−21−0,5z−1=−16−6z−1+171−0,5z−1\frac{1+2z^{-1}+3z^{-2}}{1-0{,}5z^{-1}}=-16-6z^{-1}+\frac{17}{1-0{,}5z^{-1}}, quindi x[n]=−16δ[n]−6δ[n−1]+17(0,5)nu[n]x[n]=-16\delta[n]-6\delta[n-1]+17(0{,}5)^nu[n]: 1; 2,5; 4,25; 2,125;…1;\ 2{,}5;\ 4{,}25;\ 2{,}125;\dots (verificato).

Poli multipli. Con un polo doppio in pp entrano i termini A1−pz−1+B(1−pz−1)2\frac{A}{1-pz^{-1}}+\frac{B}{(1-pz^{-1})^2}, e si usa n pnu[n]↔pz−1(1−pz−1)2n\,p^nu[n]\leftrightarrow\frac{pz^{-1}}{(1-pz^{-1})^2}. La coppia utile è 1(1−pz−1)2↔(n+1)pnu[n]\frac1{(1-pz^{-1})^2}\leftrightarrow(n+1)p^nu[n]. Esempio. 1(1−0,5z−1)2\frac1{(1-0{,}5z^{-1})^2}: x[n]=(n+1)0,5nu[n]=1; 1; 0,75; 0,5; 0,3125;…x[n]=(n+1)0{,}5^nu[n]=1;\ 1;\ 0{,}75;\ 0{,}5;\ 0{,}3125;\dots (verificato).

Poli complessi coniugati. Per un'XX reale i poli complessi vengono a coppie p,p∗p,p^* con residui coniugati e la somma dei due modi è reale: rncos⁡(ω0n+φ)r^n\cos(\omega_0n+\varphi) con r=∣p∣r=\lvert p\rvert e ω0=∠p\omega_0=\angle p. Esempio. X(z)=11−z−1+0,5z−2X(z)=\frac1{1-z^{-1}+0{,}5z^{-2}} ha poli 0,5(1±j)=12e±jπ/40{,}5(1\pm j)=\frac1{\sqrt2}e^{\pm j\pi/4} (modulo 0,707<10{,}707<1: stabile) e x[n]=(1/2)nsin⁡((n+1)π/4)sin⁡(π/4)u[n]=1; 1; 0,5; 0; −0,25; −0,25;…x[n]=\frac{(1/\sqrt2)^n\sin((n+1)\pi/4)}{\sin(\pi/4)}u[n]=1;\ 1;\ 0{,}5;\ 0;\ -0{,}25;\ -0{,}25;\dots (verificato): oscillazione di periodo 88 campioni e decadimento 0,707n0{,}707^n. Attenzione all'angolo dei poli: il polinomio z2−az+r2z^2-az+r^2 ha poli re±jω0re^{\pm j\omega_0} con cos⁡ω0=a2r\cos\omega_0=\frac a{2r}. Per esempio 1−0,9cos⁡(π4)z−1+0,81z−21-0{,}9\cos(\frac\pi4)z^{-1}+0{,}81z^{-2} ha r=0,9r=0{,}9 ma ω0=arccos⁡0,9cos⁡(π/4)2⋅0,9=arccos⁡0,354=1,209\omega_0=\arccos\frac{0{,}9\cos(\pi/4)}{2\cdot0{,}9}=\arccos0{,}354=1{,}209 rad =69,3∘=69{,}3^\circ e non π4\frac\pi4 (il coefficiente 0,9cos⁡π40{,}9\cos\frac\pi4 contiene cos⁡ω0\cos\omega_0 moltiplicato per 2r2r, non per rr).

In Python

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))               # True

lfilter(b, a, δ) risolve la ricorsione y[n]=1,5 y[n−1]−0,5 y[n−2]+δ[n]y[n]=1{,}5\,y[n-1]-0{,}5\,y[n-2]+\delta[n] 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

  1. 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 Ak=[(1−pkz−1)X]z=pkA_k=[(1-p_kz^{-1})X]_{z=p_k}; x[n]=∑Akpknu[n]x[n]=\sum A_kp_k^nu[n]; parte polinomiale se il grado del numeratore è ≥\ge del denominatore; poli doppi e complessi; per ROC bilatere, componenti causali dai poli interni e anticausali dagli esterni; verifica con la divisione lunga.
  2. Esistono più segnali con la stessa espressione di X(z)X(z)? Esempio. Traccia: 11−az−1\frac1{1-az^{-1}} con ROC ∣z∣>∣a∣\lvert z\rvert>\lvert a\rvert e <∣a∣<\lvert a\rvert; con due poli, tre ROC e tre segnali; solo una contiene ∣z∣=1\lvert z\rvert=1.

Versione ripasso

  • Serve la ROC. La stessa X(z)X(z) con ROC diverse dà segnali diversi. Il problema ha soluzione unica con la ROC.
  • Formula di inversione. x[n]=12πj∮CX(z) zn−1 dzx[n]=\dfrac1{2\pi j}\oint_CX(z)\,z^{n-1}\,dz, con CC antioraria, che circonda l'origine e sta dentro la ROC. Per i residui: x[n]=∑pk in CRes[X(z)zn−1]x[n]=\sum_{p_k\text{ in }C}\mathrm{Res}[X(z)z^{n-1}].
  • Tre metodi pratici. Ispezione (coppie note e ROC), divisione lunga (campioni come coefficienti, metodo numerico), frazioni parziali (per le razionali).
  • Esempio di residuo. X=11−0,5z−1X=\frac1{1-0{,}5z^{-1}}, ∣z∣>0,5\lvert z\rvert>0{,}5: il polo 0,50{,}5 dà x[n]=0,5nx[n]=0{,}5^n per n≥0n\ge0; per n<0n<0 la somma dei residui è 00.
  • 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 0,50{,}5 e 22: con ∣z∣<0,5\lvert z\rvert<0{,}5 si ha x=−(0,5)nu[−n−1]−2nu[−n−1]x=-(0{,}5)^nu[-n-1]-2^nu[-n-1]; con 0,5<∣z∣<20{,}5<\lvert z\rvert<2 si ha (0,5)nu[n]−2nu[−n−1](0{,}5)^nu[n]-2^nu[-n-1], unica ROC che contiene ∣z∣=1\lvert z\rvert=1; con ∣z∣>2\lvert z\rvert>2 si ha [(0,5)n+2n]u[n][(0{,}5)^n+2^n]u[n].
  • Divisione lunga. Causale: sviluppo in potenze di z−1z^{-1}. Esempio: 11−0,5z−1=1+0,5z−1+0,25z−2+…\frac1{1-0{,}5z^{-1}}=1+0{,}5z^{-1}+0{,}25z^{-2}+\dots, quindi x[n]=0,5nu[n]x[n]=0{,}5^nu[n]. ROC interna: si divide in potenze crescenti di zz. FIR: x[n]=bnx[n]=b_n.
  • Poli semplici, M<NM<N. X=∑kAk1−pkz−1X=\sum_k\frac{A_k}{1-p_kz^{-1}}, Ak=[(1−pkz−1)X]z=pkA_k=[(1-p_kz^{-1})X]_{z=p_k}; per ROC ∣z∣>max⁡∣pk∣\lvert z\rvert>\max\lvert p_k\rvert: x[n]=∑kAkpknu[n]x[n]=\sum_kA_kp_k^nu[n].
  • Esempio svolto. X=1(1−z−1)(1−0,5z−1)X=\dfrac1{(1-z^{-1})(1-0{,}5z^{-1})}: A1=2A_1=2, A2=−1A_2=-1, x[n]=(2−0,5n)u[n]x[n]=(2-0{,}5^n)u[n], con valori 1; 1,5; 1,75; 1,8751;\ 1{,}5;\ 1{,}75;\ 1{,}875 che tendono a 22.
  • Caso improprio (M≥NM\ge N). Si divide: 1+2z−1+3z−21−0,5z−1=−16−6z−1+171−0,5z−1\frac{1+2z^{-1}+3z^{-2}}{1-0{,}5z^{-1}}=-16-6z^{-1}+\frac{17}{1-0{,}5z^{-1}}, quindi x[n]=−16δ[n]−6δ[n−1]+17(0,5)nu[n]x[n]=-16\delta[n]-6\delta[n-1]+17(0{,}5)^nu[n].
  • Poli doppi. 1(1−pz−1)2↔(n+1)pnu[n]\frac1{(1-pz^{-1})^2}\leftrightarrow(n+1)p^nu[n]. Esempio: 1(1−0,5z−1)2\frac1{(1-0{,}5z^{-1})^2} dà 1; 1; 0,75; 0,5; 0,31251;\ 1;\ 0{,}75;\ 0{,}5;\ 0{,}3125.
  • Poli complessi coniugati. Modi rncos⁡(ω0n+φ)r^n\cos(\omega_0n+\varphi) con r=∣p∣r=\lvert p\rvert e ω0=∠p\omega_0=\angle p. Esempio: X=11−z−1+0,5z−2X=\frac1{1-z^{-1}+0{,}5z^{-2}} ha poli 12e±jπ/4\frac1{\sqrt2}e^{\pm j\pi/4} e x[n]=1; 1; 0,5; 0; −0,25; −0,25x[n]=1;\ 1;\ 0{,}5;\ 0;\ -0{,}25;\ -0{,}25, periodo 88.
  • Attenzione all'angolo. Il polinomio z2−az+r2z^2-az+r^2 ha poli re±jω0re^{\pm j\omega_0} con cos⁡ω0=a2r\cos\omega_0=\frac a{2r}. Per 1−0,9cos⁡(π4)z−1+0,81z−21-0{,}9\cos(\frac\pi4)z^{-1}+0{,}81z^{-2} si ha r=0,9r=0{,}9 ma ω0≈1,209\omega_0\approx1{,}209 rad, non π4\frac\pi4.
  • Python. residuez dà 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.

Esercizi su questo argomento

Teoria collegata