Trasformata Z

Scarica in formato pdf o txt
Scarica in formato pdf o txt
Sei sulla pagina 1di 30

Sistemi a dati campionati 1

Capitolo VI del Testo


Ettore Panella – Giuseppe Spalierno
Corso di Elettronica 3
Edizioni Cupido

SISTEMI A DATI CAMPIONATI


TRASFORMATA Z – FILTRI DIGITALI

1. Generalità

L’enorme sviluppo delle tecniche numeriche e il diffuso impiego del calcolatore


nella elaborazione delle informazioni ha portato ad un parallelo sviluppo di metodi
matematici in grado di fornire algoritmi idonei alla elaborazione dei dati su
computer.
Ad esempio si pensi ad un sistema di acquisizione tramite PC. I segnali
analogici da acquisire, provenienti da opportuni trasduttori, sono campionati ad
intervalli di tempo prestabiliti, convertiti in forma digitale da un ADC ed acquisiti
dal computer. Le informazioni numeriche acquisite dovranno essere elaborate in
base alle specifiche del problema. Ad esempio, si potrà calcolare il valore massimo
e quello minimo oppure valutare la media e la standard deviation oppure sviluppare
delle procedure per operare del filtraggio digitale di tipo passa basso o passa alto,
ecc. Queste tecniche sono abbastanza note a coloro che lavorano con software per
l’elaborazione di segnali audio o video acquisiti con le normali schede in dotazione
alla maggior parte dei PC.
La trasformata z costituisce il metodo matematico di base per trasformare il
segnale campionato in una equazione numerica iterativa, nota come equazione alle
differenze finite, facilmente implementabile su computer. Si vedrà, inoltre, che
esiste una relazione tra trasformata di Laplace e trasformata z per cui si potrà
operare una trasformazione tra segnali tempo-continui in segnali tempo-discreti. In
questo modo una funzione tempo-continuo di un filtro passa-basso si potrà
trasformare in una equazione alle differenze finite e quindi si potrà realizzare un
filtro passa-basso digitale con le stesse caratteristiche di quello analogico. La
differenza sta ovviamente nel fatto che quello analogico è realizzato da un circuito
hardware mentre quello digitale è realizzato mediante un software. Nei sistemi
analogici i segnali di ingresso e di uscita sono funzioni continue del tempo e le
relazioni matematiche che legano l’ingresso all’uscita sono di tipo integro-
differenziale. La trasformata di Laplace consente di trasformare tali relazioni in
equazioni algebriche di tipo razionale fratto. Analogamente nel campo dei sistemi a
dati campionati la trasformata z trasforma le equazioni alle differenze finite in
equazioni algebriche.
Sistemi a dati campionati 2

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)

La frequenza fc = 1/Tc è detta frequenza di campionamento e deve rispettare il


teorema di Shannon. Pertanto deve essere: fc > 2fmax. Dove con fmax si è indicata la
massima frequenza contenuta nel segnale da campionare f(t).
In fig.1 si riporta una schematizzazione del processo del campionamento.
L’inviluppo degli impulsi del segnale campionato f*(t) ricostruisce la forma d’onda
del segnale f(t).
Ricordando che la trasformata di Laplace di un impulso ritardato vale:
L[δ(t – nTc)] = e−snTc si ricava che la trasformata di Laplace della (1) risulta:


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)

La precedente relazione è detta trasformata z del segnale campionato f*(t) e si


indica con F(z):

F(z) = F*(s) = ∑ f (nT ) ⋅ z
n=0
c
−n
(5)

Sviluppando la precedente relazione si ricava:

F(z) = f(0) + f(Tc)z-1 + f(2Tc)z-2 + f(3Tc)z-3 + f(4Tc)z-4 +

L’operatore inverso Z-1[F(z)] è noto come antitrasformata z.

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

Per il calcolo della antitrasformata z si possono applicare i metodi della


scomposizione in fratti utilizzati nel dominio di Laplace.

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

Fig.1 Rappresentazione del processo del campionamento di un segnale


analogico f(t).
Sistemi a dati campionati 4

Esempio n. 1

Determinare la trasformata z della seguente funzione campionata costituita da


sei campioni come di seguito riportato:

f*(t) = (1; 2; -5; -6; 0; 3) per n = 0, 1, 2, 3, 4, 5.

Risoluzione

Applicando direttamente la (5) si ottiene:

F(z) = 1 + 2z-1 - 5z-2 - 6z-3 + 0z-4 + 3z-5 = 1 + 2z-1 - 5z-2 - 6z-3 + 3z-5

Si osservi che il termine generico az-n indica che il campione di ampiezza a è


ritardato di un tempo pari a nTc

Esempio n. 2

Determinare l’antitrasformata della funzione:

F(z) = 1 + 4z-1 – 6z-3

Risoluzione

Antitrasformando si ricavano i valori dei dati campionati:

Z-1[F(z)] = f*(t) = (1, 4, 0, -6) per n = 0, 1, 2, 3

Il segnale campionato è costituito da 4 campioni separati l’uno dall’altro da un


tempo pari a Tc.

2.1. Trasformate fondamentali

a) Trasformata z del segnale a gradino unitario f(nTc) = 1

Il segnale a gradino unitario u(t) ha ampiezza costante pari a 1, pertanto, se


campionato con periodo Tc si può esprimere come un insieme di campioni unitari:
f(nTc) = 1 per n ≥ 0.
Applicando la (5) si ottiene:

Z[f(nTc)] = 1 + z -1 + z -2 + z -3 + z -4 +.............
Sistemi a dati campionati 5

Il precedente sviluppo costituisce una serie geometrica di ragione 1/z


convergente per |1/z| < 1 ovvero |z| > 1. In tale ipotesi la serie converge al valore:

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.

b) Trasformata z del segnale f(nTc) = an

Applicando la (5) si ottiene:

Z[an] = 1 + a/z + (a/z) 2 + (a/z) 3 +(a/z) 4 +.............

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

c) Trasformata z del segnale f(nTc) = e -naT

Procedendo come prima si ottiene:

Z[e- naT] = 1 + e- aT z -1 + e- 2aT z -2 + e- 3aT z -3 + e- 4aT z -4 +.............

e −aT
In questo caso la serie è convergente per | | < 1. In tale ipotesi si ha:
z

z
Z[e- naT] =
z - e - aT

Procedendo in questo modo è possibile ricavare la trasformata z per i più


comuni segnali.
Nella seguente tabella si riportano le trasformate di alcune funzioni di interesse
elettronico.
Sistemi a dati campionati 6

Trasformata z di alcune funzioni elementari


f(n) F(z) Funzione
Impulso unitario Delta di Dirac
δ (n) 1

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

2.2 Teoremi fondamentali sulla trasformata z

a) Teorema della linearità

La trasformata di una combinazione lineare di due o più funzioni è uguale alla


combinazione lineare delle trasformate delle singole funzioni.

Z[Af1(n) + Bf2(n)] = AF1(z) + BF2(z)

b) Teorema del ritardo

Se una funzione f(n) ha per trasformata F(z) ed essa è ritardata di K secondi


allora la trasformata della funzione campionata ritardata f(n - K) vale:
Sistemi a dati campionati 7

Z[f(n - K)] = z -K·F(z)

In fig.2 si mostra lo schema a blocchi di un singolo elemento di ritardo.

x(n) Circuito di ritardo Y(z) = z-1X(z)


z-1

Fig. 2 Schema a blocchi di un elemento di ritardo nel dominio della


trasformata z.

c) Teorema del valore iniziale e del valore finale

Indicando con f(n) la sequenza dei dati campionati e con F(z) la relativa
trasformata si dimostra che:

Teorema del valore iniziale:

f (0) = lim f (n ) = lim F(z)


n →0 z →∞

Teorema del valore finale:


 z −1 
f (∞) = lim f (n ) = lim  ⋅ F(z) 
n →∞ z →1 z 

3. Conversione continuo – discreto

La conversione dal dominio di Laplace s (continuo) a quello della trasformata z


(discreto) e viceversa si ottiene sfruttando la relazione (3):

sTc 1
z= e e l’inversa: s= ln z (6)
Tc

Le relazioni precedenti risultano alquanto complesse e, nella pratica, si


preferisce usare delle relazioni approssimate. Le più utilizzate sono:

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

Il metodo delle differenze all’indietro si basa sul metodo di Eulero per


l’approssimazione della derivata di una funzione. Infatti, la derivata di una
funzione in un punto si può esprimere in termini di rapporto incrementale:

dy( t ) y(t) - y(t - Tc )


=
dt Tc
Passando alla trasformata di Laplace si ricava:

Y(s) - Y(s) ⋅ e-sTc


sY(s) =
Tc
Semplificando si ottiene:

1 - e -sTc 1 − z −1
s= = (7)
Tc Tc

Assegnata una funzione G(s) l’equivalente nel dominio z si ottiene sostituendo


ad s la precedente espressione. Si può dimostrare che questo metodo di
approssimazione presenta errori trascurabili solo per frequenze di lavoro piccole
rispetto alla frequenza di campionamento.
Esiste anche un metodo per le differenze in avanti (forward difference) che
utilizza come definizione di rapporto incrementale:

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

La trasformazione ZOH ( Zero Order Hold) impiega il metodo Sample/Hold


(organo di tenuta di ordine zero) che “mantiene” il valore campionato per tutto il
periodo di campionamento. In fig. 3 si mostra lo schema a blocchi e il diagramma
di tempificazione che evidenzia gli intervalli di “mantenimento” del segnale
campionato.
Sistemi a dati campionati 9

Segnale SAMPLE Segnale


analogico HOLD campionato
f(t)

Impulsi
fc

*
f (t)

Fig. 3 Schema a blocchi del sistema ZOH.

Il metodo ZOH consente una sorta di “continuizzazione” del segnale


campionato f*(t) che risulta costituito da una gradinata che segue l’andamento del
segnale f(t). In questo caso il segnale campionatore si può ritenere costituito da
impulsi di ampiezza unitaria e durata pari al periodo di campionamento Tc. La
trasformata di Laplace di un impulso è dato dalla differenza della trasformata di un
gradino unitario con quella di un gradino ritardato di Tc.
Per cui:
1 − e − sTc
L[u(t) – u(t – Tc)] =
s
Pertanto la funzione di trasferimento di un modulo Sample-Hold vale :

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

Da cui è possibile ricavare i relativi diagrammi di Bode.


Sistemi a dati campionati 10

3) Trasformazione FOH

In questa trasformazione si assume come segnale campionatore invece che un


segnale costante, come nella ZOH, un segnale lineare a tratti (rampa) FOH (First
Order Hold). Si dimostra che la funzione di trasferimento di un FOH vale:

2
1 + sTc  1 − e − sTc 
GFOH(s) = ⋅   (10)
Tc  s 

4) Trasformazione bilineare o Tustin

Il metodo si basa sull’approssimazione numerica trapezoidale dell’integrale.


Consideriamo in prima istanza il calcolo numerico approssimato dell’integrale
definito inteso come somma di aree di rettangoli di altezza pari al valore dei dati
campionati e base uguale al periodo di campionamento Tc. Indichiamo con x(t) una
generica funzione del tempo e con Y(t) la corrispondente funzione integrale. Il
valore numerico dell’integrale definito nel generico intervallo di campionamento di
durata Tc vale:
(n +1)Tc

Y[(n + 1) ⋅ Tc ] - Y[nTc ] = ∫ x(t) ⋅ dt


nTc

Tale integrale si può approssimare all’area di un rettangolo, per cui:

Y[(n + 1) ⋅ Tc ] - Y[nTc ] = x(nTc ) ⋅ Tc

Passando nel dominio della trasformata z si ha:

zY(z) - Y(z) = TcX(z)

Da cui :
Tc
Y(z) = X(z)
z -1

Nel dominio di Laplace l’operazione di integrale vale:


1
Y(s) = X(s)
s
Confrontando le precedenti relazioni si ricava:
z -1
s=
Tc
Sistemi a dati campionati 11
Un metodo più preciso è quello della trasformazione bilineare o Tustin che
per il calcolo dell’integrale considera una approssimazione trapezoidale piuttosto
che rettangolare.
In questo caso l’area di ciascun trapezio in cui si scompone la funzione integrale
vale:

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

Utilizza le seguenti equivalenze:


• un polo in s = -a si trasforma in z = e-aT
• uno zero in s = -b si trasforma in z = e-bT
• uno zero in s = - ∝ si trasforma in z = -1
• il guadagno statico resta inalterato

3.1 Conversione continuo-discreto con il metodo dell’invarianza della


risposta impulsiva

La conversione dal dominio di Laplace a quello z si può ottenere mediante il


metodo dell’impulso unitario. Il metodo non si avvale di alcuna approssimazione e
Sistemi a dati campionati 12

risulta alquanto complesso se la funzione da convertire è complessa poiché si


richiede di eseguire l’antitrasformata della funzione assegnata G(s), operazione non
sempre di facile esecuzione.
Per comprendere il metodo si sviluppa un esempio. Sia dato il sistema tempo-
continuo:

Y(s) 1
G(s) = =
E(s) (s + 1)(s + 2)

Si vuole determinare l’equazione alle differenze finite che consenta


l’implementazione del sistema sull’elaboratore.
Si valuta la risposta alla delta di Dirac. Posto E(s) = 1 si ha, dopo aver
scomposto in fratti semplici:

y(t) = L-1[Y(s)] = e-t – e-2t

Discretizzando la precedente con campionamenti ad intervalli Tc si ottiene:

y(nTc) = e-nTc – e-2nTc

La trasformata z corrispondente alla G(s) assegnata si ottiene trasformando la


precedente risposta all’impulso:

Y(z) z z z(e −nTc − e −2nTc )


G(z) = = Z[y(nTc)] = −nTc
− − 2nTc
=
E (z) z−e z−e z − z(e −nTc − e − 2nTc ) + e −3nTc
2

Dalla precedente si ricava:

Y(z)z2 –Y(z)z(e-nTc + e-2nTc) + Y(z)e-3nTc = E(z)z(e-nTc + e-2nTc)

La corrispondente equazione alle differenze finite risulta:

y(nTc+2) – (e-nTc + e-2nTc) y(nTc +1) + e-3nTcy(nTc) = (e-nTc + e-2nTc) E(nTc +1)

La precedente relazione può essere implementa su computer una volta assegnati


i valori del tempo di campionamento Tc, dei dati campionati di ingresso E(nTc) e
delle condizioni iniziali dell’ingresso e dell’uscita.
Sistemi a dati campionati 13

Esempio n.3

Determinare l’equazione alle differenze finite per il sistema con funzione di


trasferimento:

Y (s) 1
G(s) = =
X(s) (s + 1)

Si utilizzi la trasformazione bilineare con Tc = 0.2.

Risoluzione

2(z − 1) z −1
Posto: = si ricava:
Tc (z + 1) 0.1z + 0.1

Y ( z) 1 0.1z + 0.1 0.1z + 0.1


G(z) = = = =
X( z ) z −1 z − 1 + 0. 1z + 0.1 1.1z - 0.9
+1
0.1z + 0.1

Dalla precedente relazione si ricava:

1.1zY(z) – 0.9Y(z) = 0.1zX(z) + 0.1X(z)

Moltiplicando ambo i membri per z-1 ed esplicitando Y(z), si ricava:

Y(z) = 0.818 z-1Y(z) + 0.045X(z) + 0.045 z-1X(z)

La corrispondente equazione alle differenze finite risulta:

y(n) = 0.818y(n-1) + 0.045x(n) + 0.045x(n-1)

Ad esempio, supponendo x(n) = 1 per ogni n e posto y(-1) = 0, si ricavano i


valori dei dati campionati:

y(0) = 0 + 0.09 = 0.09;


y(1) = 0.0736 + 0.09 = 0.16362;
y(2) = 0.1338 + 0.09 = 0.2238 ;
………..
………..
Sistemi a dati campionati 14

4. Programma MATLAB

Il programma MATLAB, della MATH WORKS, consente numerose


manipolazioni su segnali e funzioni di interesse elettronico. In particolare, è
possibile valutare la trasformata e l’antitrasformata sia nel dominio di Laplace s
che in quello z, determinare le trasformazioni dal tempo-continuo al tempo-discreto
e disegnare i diagrammi di Bode e Nyquist.
Di seguito si elencano alcune istruzioni per le suddette trasformazioni.

• ztrans ;fornisce la trasformata z


• iztrans ;fornisce l’antitrasformata z
• c2dm ;trasformazione dal continuo al discreto con “metodo”
• d2cm ;trasformazione dal discreto al continuo

Nel campo “metodo” si deve indicare uno di quelli analizzati precedentemente.


Oltre a questi comandi è possibile tracciare i digrammi di Bode , Nyquist, ecc.

Esempio n.4

Programma per il calcolo della trasformata z delle funzioni f1 = 2n e f2 =


sin(Kn).

disp('Calcolo della trasformata z')


syms K n w z %Definizioni delle variabili
f1=2^n; %funzione f1 da trasformare
f2=sin(K*n); %funzione f2 da trasformare
F1=ztrans(f1) %F1 è la trasformata z di f1
pretty(F1) %Visualizza in formato tipicamente matematico
F2= ztrans(f2,w) %F2 è la trasformata z di f2
pretty(F2) %Visualizza in formato tipicamente matematico

Il software produce la seguente risposta


Calcolo della trasformata z
F1 =
1/2*z/(1/2*z-1)
z
1/2 ---------
1/2 z - 1
F2 =
w*sin(K)/(w^2-2*w*cos(K)+1)

w sin(K)
-------------------
w 2 - 2 w cos(K) + 1
Sistemi a dati campionati 15

Esempio n.5

La seguente istruzione consente di ottenere l’antitrasformata z di una funzione


assegnata. Nell’esempio f = Kz/(z-2).

f = iztrans(K*z(z-2),z,n)

Il software produce la seguente risposta:


f=
K*2^n

Esempio n.6

Il seguente programma consente di determinare la risposta al gradino unitario di


un sistema del secondo ordine nel dominio tempo-discreto nota la funzione di
trasferimento nel dominio di Laplace.

disp('Risposta al gradino di un sistema del secondo ordine tempo –discreto ')


disp('Sia G(s) = 1/(s^2+2*s +5) il sistema del secondo ordine tempo –continuo da
trasformare ')
%Nel continuo la G(s) presenta come numeratore N(s) = 1 e denominatore D(s) =
s^2+2*s +5
num=[1];den=[1,2,5];
%Calcolo poli della G(s)
roots(den)
%Si trasforma la G(s) dal continuo al discreto G(z)
[numd,dend]=c2dm(num,den,0.2,'zoh') %Uso del metodo ZOH con Tc = 0.2 s.
%Risposta al gradino nel tempo discreto
dstep(numd,dend)

Il software produce la seguente risposta


ans = Step Response

-1.0000+ 2.0000i 0.25

-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

Il seguente programma consente di trasformare una funzione tempo continua


G(s) in una tempo-discreto G(z) e successivamente tracciare il diagramma di Bode.

disp('Diagramma di Bode di un sistema del secondo ordine tempo–discreto')


disp('Sia G(s) = 1/(s^2+2*s +5) il sistema del secondo ordine tempo–continuo da
trasformare')
%Nel continuo la G(s) presenta come numeratore N(s) = 1 e denominatore D(s) =
s^2+2*s +5
num=[1];den=[1,2,5];
%Si trasforma la G(s) dal continuo al discreto G(z)
[numd,dend]=c2dm(num,den,0.2,'zoh') %Uso del metodo ZOH con Tc = 0.2 s.
%Diagramma di Bode nel tempo discreto
bode(numd,dend)

Il software produce il seguente diagramma di Bode


Bode Diagrams

-30

-40
Phase (deg); Magnitude (dB)

-50

-60
300

200

100

0
-1 0 1
10 10 10
Frequency (rad/sec)

5. Risoluzione di una equazione alle differenze finite

In questo paragrafo saranno esaminati, mediate degli esempi, i metodi


fondamentali per la risoluzione delle equazioni alle differenze finite.

Sia data l’equazione alle differenze finite:

y(n) = x(n) – x(n-1) – y(n-1)

con: x(n) = 1 per n pari e x(n) = 0 per n dispari


Sistemi a dati campionati 17
Inoltre si assume che per n < 0 risulta sempre: x = y = 0

a) Risoluzione con il metodo iterativo:

Si calcolano i valori dei campioni ponendo n = 0, 1, 2, 3,…..


Si ricava:

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

Analogamente si ottiene: y(3) = - 4;


Pertanto il segnale campionato è costituito dalla sequenza numerica:

y(n) = ( 1; -2; 3; -4;……) per n = 0, 1, 2, 3, ……

b) Risoluzione con il metodo della trasformata z

Si ricava la trasformata z del segnale y(n)

Y(z) = X(z) – z-1X(z) – z-1Y(z)


Da cui si ottiene :
z −1
Y(z) = X (z)
z +1

Determiniamo la trasformata z del segnale x(n).


Essendo x(n) = 1 per n pari e x(n) = 0 per n dispari si ha:
1 z2
X(z) = 1 + z-2 + z-4 +...= =
1 − z−2 z2 − 1
Sostituendo e semplificando si ottiene:
z2
Y(z) =
( z + 1) 2

Dalla tabella delle trasformate z si ricava:

∑ [(−1) ]

n
y(n) = + (−1)n ·n = ( 1; -2; 3; -4;……) per n = 0, 1, 2, 3, ……
n=0

come ricavato con il metodo iterativo.


Sistemi a dati campionati 18

6. Analisi della stabilità

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)

Il modulo e la fase valgono:


σT
|z| = e c ; ϕ = ωTc

Le precedenti relazioni ci dicono che:


a) All’asse immaginario σ = 0 del piano s corrisponde una circonferenza di raggio
unitario |z|=1 nel piano z;
b) I punti del semipiano sinistro del piano s hanno σ < 0 e pertanto si trasformano
in punti interni alla circonferenza di raggio unitario nel piano z;
c) I punti del semipiano destro del piano s hanno σ > 0 e pertanto si trasformano
in punti esterni alla circonferenza di raggio unitario nel piano z;

Poiché il criterio di Nyquist della stabilità dei sistemi tempo-continui afferma


che un sistema è stabile se i poli della G(s) appartengono al semipiano sinistro (poli
negativi se reali o a parte reale negativa se complessi coniugati) si ricava che un
sistema a dati campionati è stabile se i poli della funzione di trasferimento G(z)
sono interni ad un cerchio di raggio unitario del piano z. In fig.4 si mostrano le
zone di stabilità per il piano s e per quello z.

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

Verificare la stabilità del seguente sistema a dati campionati e successivamente


determinare la risposta all’impulso unitario.

3z
G(z) =
(z + 0.1)(z − 0.2)
Risoluzione

La funzione di trasferimento presenta due poli reali: p1 = - 0.1 e p2 = +0.2.


Poiché il modulo di entrambi i poli è |z| < 1 il sistema risulta stabile.
Ricordando che la trasformata dell’impulso unitario vale 1 si ricava che la
risposta Y(z) del sistema in esame coincide con G(z): Y(z) = G(z). Si può scrivere:

Y(z) 3
=
z (z + 0.1)(z − 0.2)

Scomponendo la precedente in fratti semplici si ha:

Y (z) A B
= +
z z + 0.1 z − 0.2

Si trova: A = -10 e B = 10, per cui:


10z 10z
Y(z) = − +
z + 0.1 z − 0.2
L’antitrasformata z della precedente vale:

y(nTc) = -10(-0.1)nTc +10(0.2)nTc

Sviluppando per Tc = 1 sec si ricavano i valori numerici dei dati campionati e il


relativo andamento temporale ottenuto in ambiente Excel e mostrato in fig.5

y(nTc) = (0, 1, 0.3, 0.07, 0.015, 0.0031)


Sistemi a dati campionati 20

1,2

0,8

0,6

0,4

0,2

0
0 1 2 3 4 5 6

Fig. 5

Esempio n.9

Data la seguente equazione alle differenze finite di un sistema del 2° ordine,


determinare la risposta al gradino unitario. Si supponga un periodo di
campionamento unitario per cui si pone nTc = n.

Y(n+2) –Y(n+1) +0.21 Y(n) = 3E(n+1) +1.2E(n)

Risoluzione

La trasformata z vale:
(z2 – z + 0.21)Y(z) = (3z + 1.2)E(z)

Ricordando l’espressione della trasformata z del gradino unitario:


E(z) = z/(z – 1), si ricava:

z(3z + 1.2) z(3z + 1.2)


Y(z) = =
(z − 1)(z − z + 0.21) (z − 1)(z − 0.3)(z − 0.7)
2

Scomponendo in fratti si ha:

20z 7.5z 27.5z


Y(z) = + −
z − 1 z − 0.3 z − 0.7
Antitrasformando si ottiene:

y(n) = 20 +7.5(0.3)n –27.5(0.7)n con n = 0, 1, 2, 3,…….


Sistemi a dati campionati 21

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

Fig. 6 Schema a blocchi di un filtro numerico

I filtri digitali si possono suddividere in due grandi categorie:

a) Filtri Ricorsivi IIR


b) Filtri non Ricorsivi FIR

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

coefficienti ai e bi e il numero dei campioni N e M definiscono il tipo e le


caratteristiche del filtro.
Nei filtri non ricorsivi noti anche come filtri FIR (Finite Impulse Resposte)
ciascun campione della sequenza di uscita è ottenuto come combinazione lineare di
un numero limitato dei soli campioni di entrata. La relazione uscita/entrata si può
porre nella forma:
N
y(n) = ∑a
i =0
i ⋅ x ( n − i)

In questi filtri la risposta all’impulso di Dirac è di tipo finito poiché non è


presente alcuna reazione.

7.1 Progetto dei filtri digitali

Un metodo ampiamente utilizzato per la progettazione dei filtri numerici


consiste nel partire dalla funzione di trasferimento G(s) del filtro analogico e da
questa, utilizzando le formule di conversione continuo–discreto, ricavare la
funzione di trasferimento G(z). Successivamente antitrasformando G(z) si ricava
l’equazione alle differenze finite che consente di implementare l’algoritmo di
progettazione del filtro digitale.
Si sviluppano alcuni esempi utilizzando il metodo della trasformazione bilineare
che risulta essere abbastanza semplice nella progettazione e presenta il vantaggio
che a sistemi stabili nel dominio s corrispondono sistemi stabili nel dominio z.

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

Y(z) = bX(z) + z-1[bX(z) + aY(z)]

Da cui si ricava lo schema a blocchi di fig. 7.

X(z) Y(z)
b z-1
+ +

Fig. 7 Schema a blocchi di un filtro passa-basso.

Antitrasformando si ricava l’equazione alle differenze finite del filtro ricorsivo:

y(n) = a⋅y(n-1) +b⋅[x(n) +x(n-1)]

Si è detto che la trasformazione bilineare introduce una distorsione nella


risposta nota come distorsione warping. Si dimostra che tale distorsione può essere
compensata se nella progettazione si sostituisce alla pulsazione di taglio ωt il
valore:
2 ωT
ω*t = ⋅ tg t c
Tc 2
ωt ⋅ Tc
Si osservi che per elevate frequenze di campionamento l’angolo è
2
piccolo, per cui non è necessaria alcuna correzione essendo la tangente dell’angolo
praticamente coincidente con l’angolo stesso. Per cui:

ω*t ≅ ωt

Per valutare la funzione di trasferimento in regime armonico si devono


applicare le seguenti relazioni:
Sistemi a dati campionati 24

sTc
z= e

Poiché: s = σ + jω si ricava:

σTc
z= e
sTc
= e e jωTc = eσTc (cosωTc +jsenωTc)

Per il filtro passa-basso in esame si ricava:

b(1 − cos ωTc + jsenωTc )


G ( jω) =
1 − a (cos ωTc − jsenωTc )
Il cui modulo vale:
2b 2 (1 + cos ωTc )
| G ( jω) |=
1 + a 2 − 2a cos ωTc

Esempio n. 10

Progettare un filtro passa-basso avente frequenza di taglio ft = 1000 Hz.

Risoluzione

Si sceglie una frequenza di campionamento sufficientemente elevata


fc=1/Tc=20KHz per cui non è necessaria alcuna correzione di prewarping. Si
valutano i coefficienti a e b:
a = 0.7286; b = 0.1357

Da cui:
y(n) = 0.7286⋅y(n-1) +0.1357⋅[x(n) +x(n-1)]

Il modulo della funzione di trasferimento vale :

(1 + cos ωTc )
| G ( jω) |=
41.56 − 39.56 cos ωTc

Filtro passa-alto

Sia assegnata la funzione di trasferimento tempo-continua di un filtro passa-alto


del primo ordine:
Sistemi a dati campionati 25

s
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)

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

Y(z) = bX(z) + z-1[aY(z) - bX(z)]

Da cui si ricava lo schema a blocchi di fig. 8.

X(z) Y(z)
b z-1
+ +

-a

Fig. 8 Schema a blocchi di un filtro passa-alto.

Antitrasformando si ricava l’equazione alle differenze finite del filtro ricorsivo:

y(n) = a⋅y(n-1) +b⋅[x(n) - x(n-1)]


Sistemi a dati campionati 26

Si riportano le simulazioni, ottenute in ambiente EXCEL, per un filtro passa-


basso e passa- alto utilizzando le formule iterative ricavate precedentemente nel
caso di ingresso a gradino unitario.
PASSA-BASSO
Entrata Uscita
Incremento Tempo x(n) y(n)
0 0 1 0
1 7,96E-06 1 0,2713915
2 1,59E-05 1 0,4691297
3 2,39E-05 1 0,6132034
4 3,18E-05 1 0,7181767 DATI
5 3,98E-05 1 0,7946612
6 4,78E-05 1 0,8503884 ft= 1000 Hz

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

Filtro Passa - Basso


Risposta al gradino unitario

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

7 0,000279 1 0,109008 DATI


8 0,000318 1 0,079424
9 0,000358 1 0,057869 ft = 200 Hz
10 0,000398 1 0,042164 K= 20
11 0,000438 1 0,030721 fc = K*ft 4000 Hz
12 0,000478 1 0,022384
13 0,000518 1 0,016309
14 0,000557 1 0,011883

15 0,000597 1 0,008658 Si ricava


16 0,000637 1 0,006308 a= 0,728608
17 0,000677 1 0,004596 b= 0,864304
18 0,000717 1 0,003349
19 0,000756 1 0,00244
20 0,000796 1 0,001778
21 0,000836 1 0,001295
22 0,000876 1 0,000944
23 0,000916 1 0,000688
24 0,000955 1 0,000501
25 0,000995 1 0,000501

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

Analisi di un filtro passa-basso in ambiente Matlab

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:

Y(z) ωt 0.135 z + 0.135


G(z) = = =
X(z) 2(z − 1) + ω z − 0.728
t
Tc (z + 1)
Ricaviamo la funzione di trasferimento G(z) sviluppando un software con
Matlab. Il programma risulta:

disp('Trasformata z di un filtro passa-basso')


num=[6280];
den=[1,6280];
disp('Trasformazione Tustin (Bilineare) con Tc=50µs')
[numd,dend]=c2dm(num,den,50*10^-6,'tustin')
[V]=dstep(numd,dend)%V rappresenta i valori dei dati campionati
dstep(numd,dend) % Traccia il grafico della risposta al gradino

Il software produce la seguente risposta:


Trasformata z
Trasformazione tustin (bilineare) con Tc=50µs
S tep Res pons e
numd = From: U(1)
0.1357 0.1357 1

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

Filtro passa-basso con il metodo ZOH

Si descrive la procedura per la progettazione dei filtri digitali utilizzando il


metodo ZOH.
In fig.9 si mostra lo schema a blocchi relativo ad un filtro numerico passa-
basso. Il primo blocco rappresenta la f.d.t del modulo ZOH mentre il secondo
blocco individua la f.d.t. del passa-basso del 1° ordine.

X(s) ωt Y(s)
1 − e −sTc
s s + ωt

Fig. 9 Schema a blocchi di un filtro passa-basso con modulo ZOH.

Dove ωt = 2πf t è la pulsazione di taglio del filtro e Tc il periodo di


campionamento.
Si ricava:
ωt
G (s) = (1 − e −sTc ) ⋅
s(s + ωt )
ωt A B
Si pone: I(s) = 1 – e-sTc e G1(s) = = + ;
s(s + ωt ) s s + ωt

Essendo il periodo di campionamento Tc e posto t = Tc, si ricava:

 1 1  z z z(1 − e - ωtTc )
G1 (z) = ZL-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

La funzione di trasferimento vale:


1 - e - ωt Tc
G(z) = G1(z)I(z) =
z − e -ωtTc
Supponendo una frequenza di taglio ft=1200Hz e un campionamento a
fc=125.6KHz si ricava:
ωt = 0.05998 rad/s e Tc = 7.96µs.
Sviluppando i calcoli e moltiplicando numeratore e denominatore per z-1 si
ottiene:
Sistemi a dati campionati 30
0.06 ⋅ z −1 ⋅ X(z)
Y(z) = X(z)G(z) =
1 − 1.06 ⋅ z −1
Sviluppando la precedente si ha :

Y(z) = 1.06Y(z)⋅z-1 + 0.06X(z) ⋅z-1

Antitrasformando si ricava l’equazione alle differenze finite:

y(n) = 1.06y(n-1) + 0.06x(n-1)

La precedente relazione è di facile implementazione su computer.

Filtro passa-alto con ZOH

In fig.10 si mostra lo schema a blocchi relativo ad un filtro numerico passa-


alto. Il primo blocco rappresenta la f.d.t del modulo ZOH mentre il secondo blocco
individua la f.d.t. del passa-alto.

X(s) Y(s)
1 − e −sTc s
s s + ωt

Fig. 10 Schema a blocchi di un filtro passa-alto con modulo ZOH

Dove ωt = 2πf t è la pulsazione di taglio del filtro e Tc il periodo di


campionamento.
Procedendo come per il passa-basso si ricava:
z −1 1 - z -1
G(z) = G1(z)I(z) = =
z − e -ωt T 1 − z −1 ⋅ e -ωtT
Supponendo una frequenza di taglio ft = 200Hz e un campionamento a
fc=4000KHz si ricava:
ωt = 1256 rad/s e Tc = 250µs e quindi:

Y(z) = 0.73Y(z)⋅z-1 +X(z) - X(z) ⋅z-1

Antitrasformando si ricava l’equazione alle differenze finite:


y(n) = 0.73y(n-1) +x(n) - x(n-1)

La precedente relazione è di facile implementazione su computer.


Si osservi, per concludere, che l’uso della trasformazione ZOH risulta più
laboriosa di quella bilineare.

Potrebbero piacerti anche