<marco />
← Tutti gli articoli
8 min di lettura

Sistemi LTI a tempo discreto: funzione di trasferimento, poli e risposta in frequenza

segnaliprogrammazione

Stimarne il modello a partire dai segnali di ingresso e di uscita. Ci limiteremo ai sistemi LTI (lineari e tempo-invarianti) a tempo discreto, con un ingresso e un'uscita (SISO). Questo articolo raccoglie gli strumenti per descriverli; per lo spettro dei segnali si veda l'articolo sulla DFT.

Trasformata Zeta

La trasformata Zeta associa a un segnale discreto g(t)g(t) una funzione della variabile complessa zz:

G(z)=Z[g(t)]=∑t=−∞+∞g(t) z−tG(z) = \mathcal{Z}[g(t)] = \sum_{t=-\infty}^{+\infty} g(t)\, z^{-t}

È lineare, e ha una proprietà che la rende comodissima: ritardare un segnale di un passo equivale a moltiplicarne la trasformata per z−1z^{-1}:

Z[g(t−1)]=z−1 G(z)\mathcal{Z}[g(t-1)] = z^{-1}\, G(z)

Per questo z−1z^{-1} si chiama operatore di ritardo unitario, e zz di anticipo. La DTFT è la trasformata Zeta valutata sulla circonferenza di raggio 1, cioè in z=ejωz = e^{j\omega}.

Convoluzione

Un sistema LTI causale è completamente descritto dalla sua risposta all'impulso g(t)g(t): l'uscita quando l'ingresso è un singolo 1 all'istante zero. Per qualsiasi altro ingresso, l'uscita è la convoluzione:

y(t)=∑j=0∞g(j) u(t−j)y(t) = \sum_{j=0}^{\infty} g(j)\, u(t-j)

Ogni campione passato dell'ingresso contribuisce all'uscita di adesso, pesato da gg. La causalità (g(t)=0g(t) = 0 per t<0t < 0) dice che l'ingresso non può influenzare l'uscita prima di essere applicato.

Il motivo per cui si usa la trasformata Zeta è che trasforma la convoluzione, scomoda, in un prodotto:

Y(z)=G(z) U(z)Y(z) = G(z)\, U(z)

Funzione di trasferimento

G(z)=Y(z)/U(z)G(z) = Y(z)/U(z), la trasformata della risposta all'impulso, è la funzione di trasferimento, ottenuta con condizioni iniziali nulle. Per i sistemi che ci interessano è un rapporto di polinomi in zz. Useremo come esempio:

G(z)=3z−0,3z2−0,3z−0,1G(z) = \frac{3z - 0{,}3}{z^2 - 0{,}3z - 0{,}1}

Dividendo numeratore e denominatore per z2z^2 si ottiene la forma in z−1z^{-1}:

G(z)=3z−1−0,3z−21−0,3z−1−0,1z−2G(z) = \frac{3z^{-1} - 0{,}3z^{-2}}{1 - 0{,}3z^{-1} - 0{,}1z^{-2}}

Moltiplicando in croce, Y(z) (1−0,3z−1−0,1z−2)=(3z−1−0,3z−2) U(z)Y(z)\,(1 - 0{,}3z^{-1} - 0{,}1z^{-2}) = (3z^{-1} - 0{,}3z^{-2})\,U(z). Ogni z−kz^{-k} è un ritardo di kk passi, quindi tornando nel tempo si ricava la forma ricorsiva, l'equazione alle differenze che il computer può eseguire:

y(t)=0,3 y(t−1)+0,1 y(t−2)+3 u(t−1)−0,3 u(t−2)\begin{aligned} y(t) = {} & 0{,}3\,y(t-1) + 0{,}1\,y(t-2) \\ & + 3\,u(t-1) - 0{,}3\,u(t-2) \end{aligned}

È la memoria dei sistemi dinamici dell'introduzione: l'uscita dipende dalle uscite e dagli ingressi passati. Identificare il sistema vorrà dire stimare quei quattro coefficienti dai dati.

Per comodità si scrive spesso y(t)=G(z) u(t)y(t) = G(z)\,u(t), trattando z−1z^{-1} come operatore che ritarda il segnale. È un piccolo abuso di notazione, ma permette di passare al volo dalla funzione di trasferimento all'equazione alle differenze.

Un sistema si può descrivere anche nello spazio di stato, con matrici A,B,C,DA, B, C, D; la funzione di trasferimento si ricava come C(zI−A)−1B+DC(zI - A)^{-1}B + D. Lo spazio di stato è la rappresentazione più completa, ma qui ci interessa il legame ingresso-uscita.

Poli, zeri e stabilità

Le radici del numeratore sono gli zeri, quelle del denominatore i poli. Nell'esempio:

  • zero: 3z−0,3=03z - 0{,}3 = 0, cioè z=0,1z = 0{,}1;
  • poli: z2−0,3z−0,1=0z^2 - 0{,}3z - 0{,}1 = 0, cioè z=0,5z = 0{,}5 e z=−0,2z = -0{,}2.

Un sistema a tempo discreto è asintoticamente stabile se tutti i poli hanno modulo minore di 1. Qui sì: se perturbato, torna all'equilibrio, e la sua risposta all'impulso si spegne. Simulando la forma ricorsiva con un impulso:

tt 0 1 2 3 4 5 6
g(t)g(t) 0 3 0,6 0,48 0,204 0,109 0,053

L'uscita a t=0t = 0 è nulla perché il numeratore inizia con z−1z^{-1}: il sistema ha un passo di ritardo. Poi la risposta decade come 0,5t0{,}5^t, il polo più lento.

Guadagno

Se si applica un gradino (ingresso che passa da 0 a 1 e resta lì), l'uscita di un sistema stabile si assesta su un valore costante: il guadagno statico μ\mu. Si calcola valutando GG in z=1z = 1:

μ=G(1)=3−0,31−0,3−0,1=2,70,6=4,5\mu = G(1) = \frac{3 - 0{,}3}{1 - 0{,}3 - 0{,}1} = \frac{2{,}7}{0{,}6} = 4{,}5

È anche la somma di tutti i campioni della risposta all'impulso. La simulazione conferma: la risposta al gradino vale 3; 3,6; 4,08; 4,28; 4,39… e converge a 4,5.

Risposta in frequenza

Se l'ingresso di un sistema stabile è una sinusoide, l'uscita, esaurito il transitorio, è una sinusoide alla stessa frequenza: amplificata o attenuata di ∣G(ejω)∣|G(e^{j\omega})|, e sfasata di ∠G(ejω)\angle G(e^{j\omega}). Valutare GG sulla circonferenza unitaria dà la risposta in frequenza del sistema:

ω\omega (rad/campione) 0 π/4\pi/4 π/2\pi/2 3π/43\pi/4 π\pi
modulo 4,5 3,30 2,64 2,64 2,75
fase 0° −62° −100° −137° −180°

Il sistema amplifica di più le frequenze basse: a ω=0\omega = 0 ritrova il guadagno statico, perché una sinusoide a frequenza zero è una costante.

La forma della risposta in frequenza si intuisce dalla posizione di poli e zeri, con la similitudine del tendone da circo. Si immagini ∣G(z)∣|G(z)| come un telo steso sul piano complesso: i poli sono pali che lo sollevano all'infinito, gli zeri picchetti che lo inchiodano a terra. La risposta in frequenza è il profilo del telo lungo la circonferenza unitaria, da ω=0\omega = 0 (il punto z=1z = 1) a ω=π\omega = \pi (il punto z=−1z = -1). Nell'esempio il polo in 0,5 è vicino a z=1z = 1 e solleva il telo alle basse frequenze; quello in −0,2, più debole, lo rialza un po' verso ω=π\omega = \pi.

Perché il ritardo diventa z⁻¹

Dalla definizione, con il cambio di indice τ=t−1\tau = t - 1:

Z[g(t−1)]=∑tg(t−1) z−t=∑τg(τ) z−(τ+1)=z−1∑τg(τ) z−τ=z−1 G(z)\begin{aligned} \mathcal{Z}[g(t-1)] &= \sum_{t} g(t-1)\, z^{-t} \\ &= \sum_{\tau} g(\tau)\, z^{-(\tau+1)} \\ &= z^{-1} \sum_{\tau} g(\tau)\, z^{-\tau} \\ &= z^{-1}\, G(z) \end{aligned}

Lo stesso conto con t+1t + 1 dà il fattore zz dell'anticipo.

  • La trasformata Zeta trasforma ritardi in moltiplicazioni per z−1z^{-1} e la convoluzione in un prodotto.
  • La funzione di trasferimento G(z)=Y(z)/U(z)G(z) = Y(z)/U(z) si riscrive come equazione alle differenze: uscite e ingressi passati, gli stessi regressori dell'identificazione.
  • Il sistema è stabile se i poli sono dentro il cerchio unitario; il guadagno statico è G(1)G(1).
  • La risposta in frequenza G(ejω)G(e^{j\omega}) dice come il sistema amplifica e sfasa ogni sinusoide; poli e zeri ne disegnano la forma.