Trasformata Z
Trasformata Z
Trasformata Z
1. Generalità
2. Trasformata z
Si consideri una funzione tempo-continua f(t) per t>0. Indichiamo con f*(t) la
funzione nel tempo attenuta dal campionamento della funzione f(t) da impulsi di
Dirac di ampiezza unitaria e durata infinitesima e periodo Tc 1.
La f*(t) si può scrivere:
∞
f*(t) = ∑ f (nT ) ⋅ δ(t − nT )
n=0
c c con n = 0,1,2,3,….. (1)
∞
L[f*(t)] = F*(s) = ∑ f (nT ) ⋅ e
n=0
c
− snTc
(2)
sTc
Posto: z= e (3)
Si ricava:
∞
F*(s) = ∑ f (nT ) ⋅ z
n=0
c
−n
(4)
1
Il segnale campionato è noto anche come segnale PAM (Pulse Amplitude Modulation). La codifica in binario del
segnale PAM genera un segnale numerico ampiamente utilizzato nella trasmissione delle informazioni noto come
segnale PCM (Pulse Code Modulation).
Sistemi a dati campionati 3
1
f (nTc ) =
2πj∫F(z) ⋅ znTc −1 ⋅ dz
Campionatore
Segnale Segnale
analogico campionato
f(t)
Impulsi
fc
f(t)
Segnale da campionare
Fc
Segnale campionatore
t
Tc
*
f (t)
Segnale campionato
Inviluppo segnale
campionato
Esempio n. 1
Risoluzione
F(z) = 1 + 2z-1 - 5z-2 - 6z-3 + 0z-4 + 3z-5 = 1 + 2z-1 - 5z-2 - 6z-3 + 3z-5
Esempio n. 2
Risoluzione
Z[f(nTc)] = 1 + z -1 + z -2 + z -3 + z -4 +.............
Sistemi a dati campionati 5
1 z
Z[f(nTc)] = =
1 z -1
1−
z
La precedente relazione è caratterizzata da uno zero nell’origine e da un polo
reale p = 1.
La precedente relazione individua una serie convergente per |a/z| < 1; in tal caso
si ha:
1 z
Z[an] = =
a z-a
1−
z
e −aT
In questo caso la serie è convergente per | | < 1. In tale ipotesi si ha:
z
z
Z[e- naT] =
z - e - aT
z
1 Gradino unitario
z −1
n 1
(-a) Impulsi alternati
z+a
z
n Rampa unitaria
(z − 1) 2
2
z2 + z
(n) Parabola unitaria
(z − 1) 3
nT
z
a Esponenziale decrescente
z − aT
n
(−a)z
n(-a) Impulsi alternati
( z + a) 2
n n z2
(-1) + (-1) ·n Impulsi alternati
( z + 1) 2
z sin ωT
Funzione seno
sin(nωT)
z − 2z cos ωT + 1
2
cos(nωT)
z 2 − z cos ωT Funzione coseno
z 2 − 2z cos ωT + 1
e
-anT
sin(nωT)
ze − aT sin ωT Funzione seno decrescente
z 2 − 2ze −aT cos ωT + e − 2 aT
e
-anT
cos(nωT)
z 2 − ze − aT cos ωT Funzione coseno decrescente
z 2 − 2ze −aT cos ωT + e − 2aT
Indicando con f(n) la sequenza dei dati campionati e con F(z) la relativa
trasformata si dimostra che:
sTc 1
z= e e l’inversa: s= ln z (6)
Tc
1) Backward Difference;
2) ZOH;
3) Bilineare;
4) FOH;
5) Prewarp;
6) Matched.
Sistemi a dati campionati 8
In generale non è possibile stabilire dei criteri che facciano preferire un metodo
di trasformazione ad un altro. La scelta dipende, ovviamente, dal sistema in studio,
dal grado di approssimazione che s’intende ottenere, ecc. Nel seguito si farà
riferimento, in particolare, ai metodi di approssimazione bilineare e ZOH che sono
quelli maggiormente impiegati nello studio di sistemi di non elevata complessità
1) Backward Difference
1 - e -sTc 1 − z −1
s= = (7)
Tc Tc
dy ( t) y(t + Tc ) - y(t)
=
dt Tc
Procedendo come sopra si può ricavare la relazione di trasformazione. Si
dimostra che tale approssimazione presenta diversi inconvenienti per cui è poco
usata.
2) Trasformazione ZOH
Impulsi
fc
*
f (t)
1 − e − sTc
GZOH(s) = (8)
s
La risposta armonica del modulo S/H si ricava sostituendo a s = jω. Applicando
le formule di Eulero dopo alcuni passaggi si ricava:
sin(ωTc / 2) − jωTc / 2
GZOH(jω) = Tc ⋅e (9)
ωTc / 2
3) Trasformazione FOH
2
1 + sTc 1 − e − sTc
GFOH(s) = ⋅ (10)
Tc s
Da cui :
Tc
Y(z) = X(z)
z -1
x (nTc ) + x (n + 1)Tc
Y[(n + 1) ⋅ Tc ] - Y[nTc ] = Tc
2
Nel dominio z si ha:
X (z) + z ⋅ X (z)
zY(z) - Y(z) = Tc
2
Si ricava la seguente relazione approssimata:
:
2(z − 1) 2 + sTc
s= e l’inversa z= (11)
Tc (z + 1) 2 − sTc
Questa trasformazione è molto utilizzata poiché gode della proprietà che sistemi
stabili nel dominio di Laplace s sono convertiti in sistemi stabili nel dominio z.
L’approssimazione bilineare presenta tuttavia l’inconveniente di introdurre nella
risposta in frequenza una distorsione nota come distorsione di warping. In
particolare, nella progettazione dei filtri digitali per compensare tale distorsione è
necessario introdurre un fattore correttivo (prewarping) nel dimensionamento della
frequenza di taglio del filtro.
5) Trasformazione prewarp
Si basa su una trasformazione simile alla bilineare ma con una relazione tra s e z
più complessa in modo da ottenere una relazione lineare su un’ampia gamma della
risposta in frequenza.
6) Trasformazione matched
Y(s) 1
G(s) = =
E(s) (s + 1)(s + 2)
y(nTc+2) – (e-nTc + e-2nTc) y(nTc +1) + e-3nTcy(nTc) = (e-nTc + e-2nTc) E(nTc +1)
Esempio n.3
Y (s) 1
G(s) = =
X(s) (s + 1)
Risoluzione
2(z − 1) z −1
Posto: = si ricava:
Tc (z + 1) 0.1z + 0.1
4. Programma MATLAB
Esempio n.4
w sin(K)
-------------------
w 2 - 2 w cos(K) + 1
Sistemi a dati campionati 15
Esempio n.5
f = iztrans(K*z(z-2),z,n)
Esempio n.6
-1.0000- 2.0000i
numd =
0.2
0 0.0173 0.0151
dend =
1.0000 -1.5082 0.6703 0.15
Amplitude
0.1
0.05
0
0 5 10 15 20 25 30
Time (samples)
Sistemi a dati campionati 16
Esempio n.7
-30
-40
Phase (deg); Magnitude (dB)
-50
-60
300
200
100
0
-1 0 1
10 10 10
Frequency (rad/sec)
y(0) = x(0) = 1
y(1) = x(1) –x(0) – y(0) = 0 -1 -1 = -2
y(2) = x(2) –x(1) –y(1) = 3
∑ [(−1) ]
∞
n
y(n) = + (−1)n ·n = ( 1; -2; 3; -4;……) per n = 0, 1, 2, 3, ……
n=0
L’analisi della stabilità dei sistemi a dati campionati può essere eseguita con
vari metodi tra cui quello di Ragazzini-Zodeh. Un’analisi semplificata del metodo
può essere condotta come di seguito.
La variabile z è stata definita come:
sT
z= e c
poiché la variabile di Laplace s è complessa e vale : s = σ + jω si ricava:
σTc
z= e
sTc
= e e jωTc = eσTc (cosωTc +jsenωTc)
Jω Jω
Piano z
STABILE Piano s
Stabile
r
r
Fig. 4 Zone di stabilità per la collocazione dei poli nel piano s e nel piano
z.
Sistemi a dati campionati 19
Esempio n. 8
3z
G(z) =
(z + 0.1)(z − 0.2)
Risoluzione
Y(z) 3
=
z (z + 0.1)(z − 0.2)
Y (z) A B
= +
z z + 0.1 z − 0.2
1,2
0,8
0,6
0,4
0,2
0
0 1 2 3 4 5 6
Fig. 5
Esempio n.9
Risoluzione
La trasformata z vale:
(z2 – z + 0.21)Y(z) = (3z + 1.2)E(z)
7. Filtri Digitali
I filtri digitali, noti anche come filtri numerici, operano su sequenze numeriche
e, in funzione delle caratteristiche del filtraggio che si intende eseguire, generano
una nuova sequenza numerica. Il segnale analogico su cui si vuole operare è
trasformata in forma digitale e successivamente elaborato da dispositivi
programmabili. I dati numerici così manipolati sono successivamente trasformati in
forma analogica. Per eseguire il filtraggio digitale è, pertanto, necessario sviluppare
un software di elaborazione dei dati campionati. In commercio sono disponibili
circuiti integrati programmati in fase costruttiva in grado di manipolare i segnali
numerici. E’ questo il caso, ad esempio, delle schede di acquisizione audio e/o
video disponibili sui PC che dispongono di circuiti dedicati alla conversione A/D e
D/A e alla manipolazione dei dati. Inoltre, sono disponibili numerosi software per
l’elaborazione digitale.
Per realizzare il filtraggio digitale è necessario determinare una formula
iterativa da cui ricavare una procedura software in grado di elaborare i dati
campionati in funzione delle specifiche del problema. In fig. 6 si mostra una
schematizzazione di un filtro digitale in cui si evidenzia che il filtro accetta in
entrata una sequenza numerica e fornisce in uscita una nuova sequenza frutto
dell’elaborazione dei dati.
Uscita
Entrata FILTRO
DIGITALE
Nei filtri ricorsivi noti anche come filtri IIR (Infinite Impulse Resposte) ciascun
campione della sequenza di uscita è ottenuto come combinazione lineare di un
numero limitato di campioni di entrata e di uscita. Indicando con x il segnale
campionato di entrata e con y quello di uscita dal filtro, si può scrivere:
N M
y(n) = ∑ a i ⋅ x ( n − i) -
i =0
∑ b ⋅ y( n − i)
i =1
i
Nel filtro ricorsivo è presente una reazione poiché l’uscita è funzione dei dati
numerici di entrata e di quelli dell’uscita stessa. La denominazione IIR deriva dal
fatto che la risposta all’impulso di Dirac tende a zero asintoticamente. Il valore dei
Sistemi a dati campionati 22
Filtro passa-basso
Sia assegnata la funzione di trasferimento tempo-continua di un filtro passa-
basso del primo ordine:
ωt
G(s) =
s + ωt
Dove ωt = 2πf t è la pulsazione di taglio del filtro. Trasformando la precedente
2(z − 1)
relazione nel dominio z mediante il metodo bilineare: s = si ricava:
Tc (z + 1)
Y(z) ωt
G(z) = =
X(z) 2(z − 1) + ω
t
Tc (z + 1)
Sviluppando la precedente relazione, dopo alcuni passaggi si ottiene:
2 − ωt Tc ωt ωt
Y(z) = Y(z) ⋅ z −1 ⋅ + ⋅ X (z) + ⋅ X(z) ⋅ z −1
2 + ωt Tc 2 + ωt Tc 2 + ωt Tc
Sistemi a dati campionati 23
2 − ωt Tc ωt
Posto: a = ;b= si ha:
2 + ωt Tc 2 + ωt Tc
X(z) Y(z)
b z-1
+ +
ω*t ≅ ωt
sTc
z= e
Poiché: s = σ + jω si ricava:
σTc
z= e
sTc
= e e jωTc = eσTc (cosωTc +jsenωTc)
Esempio n. 10
Risoluzione
Da cui:
y(n) = 0.7286⋅y(n-1) +0.1357⋅[x(n) +x(n-1)]
(1 + cos ωTc )
| G ( jω) |=
41.56 − 39.56 cos ωTc
Filtro passa-alto
s
G(s) =
s + ωt
2 − ωt Tc 2 2
Y(z) = Y(z) ⋅ z −1 ⋅ + ⋅ X(z) − ⋅ X(z) ⋅ z −1
2 + ωt Tc 2 + ωt Tc 2 + ωt Tc
2 − ωt Tc 2
Posto: a = ;b= si ha:
2 + ωt Tc 2 + ωt Tc
X(z) Y(z)
b z-1
+ +
-a
7 5,57E-05 1 0,8909917 K= 20
8 6,37E-05 1 0,9205756 fc = K*ft 20000 Hz
9 7,17E-05 1 0,9421307
10 7,96E-05 1 0,957836 Si ricava:
11 8,76E-05 1 0,9692789 a= 0,728608
12 9,55E-05 1 0,9776164 b= 0,135696
13 0,000104 1 0,9836911
14 0,000111 1 0,9881172
15 0,000119 1 0,9913421
16 0,000127 1 0,9936918
17 0,000135 1 0,9954038
18 0,000143 1 0,9966511
19 0,000151 1 0,99756
20 0,000159 1 0,9982222
1,2
1
0,8
Uscita
x(n)
0,6
y(n)
0,4
0,2
0
0 0,00005 0,0001 0,00015 0,0002
Tempo
Sistemi a dati campionati 27
PASSA ALTO
Entrata Uscita
Incremento Tempo x(n) y(n)
0 0 1 1
1 3,98E-05 1 0,728608
2 7,96E-05 1 0,53087
3 0,000119 1 0,386797
4 0,000159 1 0,281823
5 0,000199 1 0,205339
6 0,000239 1 0,149612
Filtro Passa-Alto
Risposta al gradino unitario
1,2
1
0,8
Uscita
x(n)
0,6
y(n)
0,4
0,2
0
0 0,0002 0,0004 0,0006 0,0008 0,001
Tempo
Sistemi a dati campionati 28
L’analisi dei filtri digitali può essere condotta utilizzando il programma Matlab.
Sviluppiamo un esempio. Si consideri un filtro passa-basso con funzione di
ωt
trasferimento: G(s) = . Sviluppare l’analisi del filtro sapendo che la
s + ωt
frequenza di taglio vale ft=1000Hz e che si desidera campionare ad una frequenza
fc=200000 Hz (Tc=50µs). Applicando la trasformazione bilineare si ha:
dend = 0.9
1.0000 -0.7286
V= 0.8
0.1357
0.3703 0.7
0.5412
A m plitude
0.6
To: Y (1)
0.6657
0.7564 0.5
0.8225
0.4
0.8707
0.9058 0.3
0.9314
0.9500 0.2
0.9636 0.1
0.9734 0 5 10 15 20 25 30
0.9807 Tim e (s ec .)
0.9859
Sistemi a dati campionati 29
X(s) ωt Y(s)
1 − e −sTc
s s + ωt
1 1 z z z(1 − e - ωtTc )
G1 (z) = ZL-1 ( − ) = Z[1 - e -ωt ⋅t ] = − =
s s + ωt z - 1 z − e -ωtTc (z − 1)(z − e -ωtTc )
z -1
I(z) = Z[L-1 (1 − e −sTc )] = 1 - z -1 =
z
X(s) Y(s)
1 − e −sTc s
s s + ωt