Documente Academic
Documente Profesional
Documente Cultură
Lucrarea 3
unde H reprezintă transformarea (numită uneori şi operator) sau procesarea realizată de sistem
asupra lui x[n ] pentru a produce y[n ] .
y n, k H x n k (3.2)
Dacă ieşirea y n, k este egală cu y n k pentru toate valorile lui k, sistemul este invariant
în timp. În caz contrar, dacă y n, k y n k , chiar pentru o singură valoare a lui k,
sistemul este variant în timp.
H a1 x1 [n ] a2 x2 [n ] a1 H x1[n ] a2 H x2 [n ] (3.3)
21
PNS Lucrarea 3 Sisteme discrete şi invariante în timp
y n x[n ]* h[n ] h k x n k
k
(3.5)
b z k
k
B( z ) (3.6)
H ( z) k 0
N
A( z )
1 ak z k
k 0
M N
unde B( z ) bk z k şi A( z ) 1 ak z k .
k 0 k 0
c) În domeniul frecvenţă prin funcţia de transfer, care este transformata Fourier a
răspunsului la impuls, expresie ce se poate obţine prin evaluarea lui H(z) pe
cercul unitate, dacă acesta este inclus în regiunea de convergenţă a lui H(z).
H ( ) H ( z ) z e j (3.7)
22
PNS Lucrarea 3 Sisteme discrete şi invariante în timp
4. Aplicaţii rezolvate
B( z ) b z k
k
H ( z) k 0
N
la vectorul/secvenţa de intrare
A( z )
1 ak z k
k 1
23
PNS Lucrarea 3 Sisteme discrete şi invariante în timp
Liniaritatea
Exemplul 1 Programul MATLAB P3_1 verifică proprietatea de liniaritate a unui
sistem folosindu-se metoda descrisă în Figura 1. Dacă y[n] yt[n] pentru orice semnale de
intrare x1[n] şi x2[n] ( a , b * ), sistemul este liniar. În caz contrar, dacă egalitatea nu este
satisfăcută pentru o pereche de semnale x1[n] şi x2[n], sistemul este neliniar.
% Program P3_1
% Generarea secvenţelor de intrare x1[n] si x2[n]
clf;
n = 0:40;
a = 2;b = -3;
x1 = cos(2*pi*0.1*n);
x2 = cos(2*pi*0.4*n);
x = a*x1 + b*x2;
num = [2.2403 2.4908 2.2403];
den = [1 -0.4 0.75]; %definirea unui filtru de ordinul 2
ic = [0 0]; % conditii initiale nule
y1 = filter(num,den,x1,ic); % calculeaza iesirea y1[n]
y2 = filter(num,den,x2,ic); % calculeaza iesirea y2[n]
y = filter(num,den,x,ic); % calculeaza iesirea y[n]
yt = a*y1 + b*y2;
d = y - yt; % calculeaza diferenta dintre y[n] si yt[n]
% se afiseaza y[n] si yt[n] si diferenta dintre ele, d[n]
subplot(3,1,1)
stem(n,y);
ylabel('Amplitude');
title('Raspunsul la secventa a \cdot x_{1}[n] + b \cdot x_{2}[n]');
subplot(3,1,2)
stem(n,yt);
ylabel('Amplitudine');
title(' Iesirea yt[n]: a \cdot y_{1}[n] + b \cdot y_{2}[n]');
subplot(3,1,3)
stem(n,d); axis([0 40 –5 5]);
24
PNS Lucrarea 3 Sisteme discrete şi invariante în timp
xlabel('n');ylabel('Amplitudine');
title('Semnalul diferenta');
Invarianţa în timp
Exemplul 2 Programul Matlab P3_2 ilustrează proprietatea de invarianţă în timp
pentru un sistem discret, comenzile Matlab fiind scrise conform figurii 2.
% Program P3_2
% Se genereaza secventa de intrare x[n]
clf;
n = 0:40; K = 10;a = 3.0;b = -2;
x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);
xd = [zeros(1,K) x];
num = [2.2403 2.4908 2.2403];
den = [1 -0.4 0.75];
ic = [0 0]; % conditii initiale nule
% Se calculeaza iesirea din filtru y[n]
y = filter(num,den,x,ic);
% Se calculeaza raspunsul yd[n] la secventa x[n] intirziata cu K
yd = filter(num,den,xd,ic);
% se calculeaza diferenta d[n] dintre semnalul y[n] si yd[n-K]
d = y - yd(1+K:41+K);
% Afisarea rezultatelor
subplot(3,1,1)
stem(n,y);
ylabel('Amplitudine');
title('Iesirea y[n]'); grid;
subplot(3,1,2)
stem(n,yd(1:41));
ylabel('Amplitudine');
title(['Iesirea yd[n] la secventa de intrare x[n-',
num2str(K),']']); grid;
subplot(3,1,3)
stem(n,d);
xlabel('n'); ylabel('Amplitudine');
title('Diferenta dintre y[n] si yd[n+10]'); grid;
Stabilitatea
Exemplul 3 Programul Matlab P3_3 testează stabilitatea unui sistem discret în funcţie
de răspunsul la impuls al acestuia. Variabila parsum din scriptul de mai jos se calculează
astfel:
P
parsum h[n ]
n 0
25
PNS Lucrarea 3 Sisteme discrete şi invariante în timp
unde P este ales astfel încât h[ P ] 106 . Testul este ilustrativ din punct de vedere didactic,
dar din punct de vedere teoretic nu este tocmai corect. De exemplu, pentru h[n ] 1 / n ,
sistemul nu este stabil, însă există un număr întreg P, pentru care h[ P ] 106 .
% Program P3_3
% Stabilitatea sistemului bazata pe sumarea absoluta a raspunsului
%la impuls
clf;
num = [1 -0.8]; den = [1 1.5 0.9];
N = 300;
%se calculeaza raspunsul la impuls vezi help impz
h = impz(num,den,N+1);
parsum = 0;
for k = 1:N+1; %help for
parsum = parsum + abs(h(k));
if abs(h(k)) < 10^(-6), break, end
end
% se reprezinta grafic raspunsul la impuls
n = 0:N;
stem(n,h); title('Raspunsul la impuls')
xlabel('n'); ylabel('Amplitudine');
% se afiseaza la consola abs(h(k))
disp('Value =');disp(abs(h(k)));
% se afiseaza la consola Suma valorilor absolute ale lui h[n]
disp('Suma =');disp(parsum);
26
PNS Lucrarea 3 Sisteme discrete şi invariante în timp
%Program P3_4
%descrierea sistemului prin coeficientii bk si ak
b=[0.3, 0.6, 0.3];
a=[1, 0, 0.9];
figure(1); %help figure
zplane(b,a);%reprezentarea polilor si zerourilor in planul Z
title('Distributia poli-zerouri');
[H,W]=freqz(b,a,512);
figure(2);
subplot(2,1,1);
plot(W,abs(H)); %reprezentarea modulului raspunsului in frecventa
ylabel('Magnitudune');
title('Raspunsul filtrului in modul');
subplot(2,1,2);
plot(W,angle(H)); %reprezentarea raspunsului de faza
title('Raspunsul de faza al filtrului ');
ylabel('Faza');xlabel('W');
%Program P3_5
[b,a]=butter(5,0.5); %sinteza coeficienţilor unui filtru butterworth
[c,d]=ellip(5,1,20,0.5); %sinteza coef. unui filtru elliptic
%calculul raspunsului la impuls
h1=impz(b,a,50);
h2=impz(c,d,50);
figure(1);
27
PNS Lucrarea 3 Sisteme discrete şi invariante în timp
subplot(211);
stem(h1);
title('Raspunsul la impuls al filtrului Butterworth');xlabel('n');
subplot(212);
stem(h2);
title('Raspunsul la impuls al filtrului Eliptic');xlabel('n');
%Program P3_6
[b,a]=butter(5,0.5);
[c,d]=ellip(5,1,20,0.5);
unit=[ones(50,1)]; %generearea treptei unitate
g1=filter(b,a,unit);
g2=filter(c,d,unit);
figure(1);
subplot(211);
stem(g1);
title('Raspunsul indicial al filtrului Butterworth');
subplot(212);
stem(g2);
title('Raspunsul indicial al filtrului Eliptic');
xlabel('n');
%Program P3_7
z=[exp(j*pi/5);exp(-j*pi/5); % zerourile functiei de transfer
p=[0.9*z]; % polii functiei de transfer
atunci coeficienţii funcţiei de transfer sunt
b=poly(z) % se afiseaza vectorul b in fereastra matlab
a=poly(p) % se afiseaza vectorul a in fereastra matlab
iar caracteristica de frecvenţă a acestui sistem se obţine astfel:
[H,W]=freqz(b,a,512);
figure(1);
plot(W,abs(H));
title('Modulul raspunsului in frecventa al filtrului');
Se analizează pentru
sistemul considerat la Exemplul 7 efectul comenzii:
[r,p,k]=residuez(b,a). Cu ajutorul descompunerii în fracţii simple se poate calcula
răspunsul la impuls
28
PNS Lucrarea 3 Sisteme discrete şi invariante în timp
%Program P3_8
z=[exp(j*pi/5) exp(-j*pi/5)];
p=[0.9*z];
b=poly(z);
a=poly(p);
[r,p,k]=residuez(b,a);
n=(0:29);
h1=r(1)*p(1).^n+r(2)*p(2).^n;
h1(1)=h1(1)+k;
h2=impz(b,a,30);
figure(1);
subplot(211)
stem(h1);
xlabel('n');
title('Raspunsul la impuls obtinut utilizand funcţia residuez');
subplot(212);
stem(h2);
xlabel('n');
title('Raspunsul la impuls obtinut cu ajutorul functiei impz.m');
Se va utiliza funcţia:
s=polyval(b,x); Returnează valoarea unui polinom cu coeficienţii specificaţi în
vectorul b, calculat în valoarea x.
s(x) b(1)x N ... b(N)x b(N 1)
%Program P3_9
b=[0.1, 0.2, 0.1];
a=[1, 0, 0.9];
N=99;
n=0:N; f=1/8;A=2;
x=A*sin(2*pi*f*n+pi/7);
y=filter(b,a,x);
Hw=polyval(b,exp(2*j*pi*f))/polyval(a,exp(2*j*pi*f));
ys=A*abs(Hw)*sin((2*pi*f*n)+pi/7+angle(Hw));
figure(1);
subplot(411); stem(n,x);
xlabel('n'); ylabel('intrarea x[n]');
subplot(412); stem(n,y);
axis([0 N -A A]);
xlabel('n'); ylabel('y[n] calculat cu filter ');
subplot(413); stem(n,ys);
xlabel('n'); ylabel('ys[n] calculat cu residuez')
axis([0 N -A A]);
subplot(414); stem(n,y-ys);
29
PNS Lucrarea 3 Sisteme discrete şi invariante în timp
Ce observaţi? Secvenţa y[n] este un semnal de tip sinusoidă sau nu? De ce?
5. Aplicaţii propuse
1. Să se demonstreze printr-un script Matlab, similar celui din Exemplul 1, că sistemul
H [ x[n ]] x 2 [n ] nu este liniar.
3. Să se analizeze efectul polilor şi zerourilor unei funcţii de sistem H(z) asupra răspunsului în
frecvenţă | H ( ) | pentru următoarele sisteme:
a) H ( z ) (1 z1 z 1 )(1 z2 z 1 ) unde:
z1,2 1;
j
z1,2 e 4
;
j
z1,2 e 2
;
3
j
z1,2 e 4
;
z1,2 1;
Să se analizeze cum se modifică | H ( ) | odată cu modificarea poziţiei zerourilor
funcţiei de transfer şi să se reprezinte zerourile în planul Z. Ce observaţi? Comentaţi.
0.1
b) H ( z ) unde:
(1 p1 z )(1 p2 z 1 )
1
p1,2 0.9;
30
PNS Lucrarea 3 Sisteme discrete şi invariante în timp
j
p1,2 0.9 e 4
;
j
p1,2 0.9 e 2
;
3
j
p1,2 0.9 e 4
;
p1,2 0.9;
4. Se dau următoarele funcţii de transfer ale unor sisteme discrete liniare invariante în timp
H1 ( z ) 1 2 z 1 z 2 H 2 ( z ) 1 2 z 1 z 2 H 3 ( z ) 1 z 1 0,5z 2
(1 z 1 ) 2 (1 z 1 ) 2 1
H 4 ( z) H5( z) H 6 ( z)
1 z 1 0,5 z 2 1 z 1 0,5z 2 1 z 0,5z 2
1
6. Care din următoarele sisteme cauzale cu funcţiile de transfer de mai jos sunt stabile? De
ce?
1 1.27 z 1 2.02 z 2 1.54 z 3 0.98 z 4
H1 ( z )
1 0.6 z 1 1.15z 2 0.98 z 3 0.98 z 4
1 0.6 z 1 1.15z 2 0.98 z 3 0.98 z 4
H 2 ( z)
1 1.27 z 1 2.02 z 2 1.54 z 3 0.98 z 4
2 2.54 z 1 5z 2 4.3z 3 3.72 z 4
H3( z)
1 0.77 z 1 0.82 z 2 0.41z 3 0.51z 4
2 1.54 z 1 1.64 z 2 0.82 z 3 1.02 z 4
H 4 ( z)
1 1.27 z 1 2.5z 2 2.15z 3 1.36 z 4
31