Documente Academic
Documente Profesional
Documente Cultură
PDS Lucrarea2 PDF
PDS Lucrarea2 PDF
LUCRAREA 2
SEMNALE ŞI SISTEME ÎN TIMP DISCRET
x[n] , N1 ≤ n ≤ N 2 (2.1)
• Impulsul unitate
Din punct de vedere matematic este definit astfel:
⎧1 , n = 0
δ [ n] = ⎨ (2.2)
⎩0 , n ≠ 0
Utilizând proprietatea de deplasare în timp se poate scrie că
⎧1 , n = n0
δ [ n − n0 ] = ⎨ (2.3)
⎩0 , n ≠ n0
27
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
function [y,n]=impuls(li,ls,k);
if nargin<3
error('Prea putine argumente de intrare')
elseif nargin>3
error('Prea multe argumente de intrare')
end
if nargout>2
error('Prea multe argumente de iesire')
end
if li>=ls
error('Suportul temporal este invalid')
end
if (k<li)|(k>ls)
error('Indicele nu apartine suportului temporal')
end
L=ls-li+1;
y=zeros(1,L);
y(k-li+1)=1;
n=li:ls;
28
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
Exemple:
Utilizând funcţia MATLAB impuls creată anterior, să se definească şi să se
reprezinte grafic secvenţele:
1. x1[n] = δ [n]
2. x2 [n] = 0,5δ [n − 3] , pentru − 10 ≤ n ≤ 10 .
[y1,n]=impuls(-10,10,0)
stem(n,y1),grid
[y2,n]=impuls(-10,10,3)
stem(n,0.5*y2),grid
• Treapta unitate
Din punct de vedere matematic este definit astfel:
⎧1 , n ≥ 0
u[n] = ⎨ (2.4)
⎩0 , n < 0
Utilizând proprietatea de deplasare în timp se poate scrie că
⎧1 , n ≥ n0
u[n − n0 ] = ⎨ (2.5)
⎩0 , n < n0
Se poate crea de asemenea o funcţie MATLAB pentru definirea
secvenţelor de tip treaptă unitate:
function [y,n]=treapta(li,ls,k);
%TREAPTA - treapta unitate in timp discret, definita
%pe un suport temporal finit
%-sintaxe:
%y=treapta(li,ls,k)
%[y,n]=treapta(li,ls,k)
%-parametrii de iesire:
%y=vector linie ce reprezinta u(n-k) pe suportul
%[li;ls]
%n=vector linie ce reprezinta suportul [li;ls]
%-parametrii de intrare:
%li=limita inferioara a suportului temporal;
%ls=limita superioara a suportului temporal;
%k=indicele din u(n-k)
%-pentru afisare: stem(n,y)
if nargin<3
error('Prea putine argumente de intrare')
elseif nargin>3
error('Prea multe argumente de intrare')
end
29
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
if nargout>2
error('Prea multe argumente de iesire')
end
if li>=ls
error('Suportul temporal este invalid')
end
if (k<li)|(k>ls)
error('Indicele nu apartine suportului temporal')
end
L=ls-li+1;
y=zeros(1,L);
y(k-li+1:L)=1;
n=li:ls;
Exemple:
Să se definească şi să se reprezinte grafic secvenţele:
1. x1[n] = u[n]
2. x2 [n] = 0,7(u[n + 3] − u[n − 3]) , pentru − 5 ≤ n ≤ 10 .
[y1,n]=treapta(-5,10,0)
stem(n,y1),grid
[y21,n]=treapta(-5,10,-3)
[y22,n]=treapta(-5,10,3)
y2=0.7*(y21-y22)
stem(n,y2),grid
E1. Exerciţii:
Să se definească şi să se reprezinte grafic următoarele secvenţe:
1. x1[n] = δ [n] − δ [n − 1] pentru − 10 ≤ n ≤ 10
2. x2 [n] = δ [n] − 0,5δ [n − 1] + 0,3δ [n − 2] − 2δ [n + 1] pentru − 10 ≤ n ≤ 10
3. x3 [n] = u[n] + 0,5u[n − 4] − 0,5u[n + 4] pentru − 10 ≤ n ≤ 10
4. x4 [n] = δ [n − 1] + u[n − 5] + δ [n + 2] − 2δ [n − 9] pentru − 10 ≤ n ≤ 20
n n
⎛1⎞ ⎛ 1⎞
5. x1[n] = ⎜ ⎟ − ⎜ − ⎟ pentru 0 ≤ n ≤ 10
⎝ 2⎠ ⎝ 2⎠
⎛ nπ ⎞ ⎛ nπ ⎞
6. x2 [n] = ln cos ⎜ ⎟ − sin ⎜ ⎟ pentru − 20 ≤ n ≤ 20
⎝ 15 ⎠ ⎝ 15 ⎠
⎛ nπ ⎞
7. x1[n] = (−1) n cos ⎜ ⎟ pentru 0 ≤ n ≤ 10
⎝ 15 ⎠
30
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
Sintaxa:
conv(x1,x2)
• returnează ca rezultat un vector de lungime egală cu lungimea vectorului x1
plus lungimea vectorului x2 minus 1, ce reprezintă produsul de convoluţie
liniară al celor două secvenţe definite prin vectorii x1 şi x2.
Exemplu:
Să se calculeze şi să se reprezinte grafic produsul de convoluţie liniară a
secvenţelor x1[n] = u[n] − u[n − 5] ( 0 ≤ n ≤ 10 ) şi x2 [n] = (0,9) n ( 0 ≤ n ≤ 20 ).
x1=treapta(0,10,0)-treapta(0,10,5);
n=0:20;
x2=0.9.^n;
x=conv(x1,x2);
subplot(2,2,1),stem(0:10,x1),title(’x1’),grid
subplot(2,2,2),stem(n,x2),title(’x2’),grid
subplot(2,1,2),stem(0:length(x)-1,x),title(’x’),grid
x1 x2
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
0 5 10 0 5 10 15 20
x
5
0
0 5 10 15 20 25 30
31
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
E2. Exerciţii:
Să se calculeze şi să se reprezinte grafic (ca în exemplul precedent) produsul de
convoluţie liniară a următoarelor perechi de secvenţe:
F
unde ω este pulsaţia normată: ω = 2π
.
FS
F este frecvenţa nenormată (exprimată în Hz) iar FS este frecvenţa de
eşantionare.
F
Similar, frecvenţa normată este: f = .
FS
Funcţia X (e jω ) este periodică de perioadă 2π , deci este suficient să
cunoaştem comportarea sa în intervalul [−π ,π ) (interval de bază). Datorită
faptului că această funcţie este continuă, variabila ω putând lua o infinitate de
valori, nu este posibilă o implementare pe o maşină de calcul.
32
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
X a ( jΩ )
ΩS ΩS
− Ω S > 2Ω max
2 2 Ω[rad/s]
-Ωmax 0 Ωmax F[Hz]
-Fmax 0 Fmax FS/2 FS
Ω
ω=
FS
X ( e jω )
F
f =
FS
ω
-π -ωmax 0 ωmax π 2π f
-0.5 -fmax 0 fmax 0.5 1
k
k = 0,..., N − 1 ωk = 2π
X (k ) N
k
0 123 N/2 N-1
Sintaxe:
y = fft(x)
• dacă x este un vector se returnează un vector y de aceeaşi dimensiune cu
vectorul x ce conţine valorile transformatei Fourier discrete aplicată
elementelor vectorului x; lungimea transformatei Fourier (numărul de puncte
33
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
Exemple:
Să se calculeze transformata Fourier discretă a secvenţei:
x1[n] = u[n] − u[n − 10] , pentru 0 ≤ n ≤ 20
Să se reprezinte grafic partea reală, partea imaginară, modulul şi faza
transformatei Fourier discrete calculate.
x1=treapta(0,20,0)-treapta(0,20,10);
X=fft(x1);
figure(1),plot(X)
// se obţine o reprezentare grafică eronată deoarece X e un vector cu valori
complexe.
figure(2),plot(abs(X))
// calculul transformatei Fourier discrete s-a efectuat într-un număr de puncte
egal cu lungimea vectorului x1 (vezi sintaxa de la fft); pentru o mai bună
reprezentare vom efectua calculul într-un număr mai mare de puncte (N = 512):
X1=fft(x1,512);
figure(3),plot(abs(X1)),grid
10
0
0 100 200 300 400 500 600
34
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
celor două jumătăţi ale vectorului X1. Acest lucru se realizează în MATLAB
prin utilizarea comenzii fftshift (schimbă între ele cele două jumătăţi ale
unui vector). În plus, pentru a avea pe abscisă reprezentarea în intervalul [−π ,π )
trebuie generat un vector cu pas liniar care să conţină în intervalul respectiv un
număr de elemente egal cu lungimea transformatei Fourier discrete calculate:
w=-pi:2*pi/512:pi-2*pi/512;
figure(4),plot(w,fftshift(abs(X1))),grid
10
0
-4 -3 -2 -1 0 1 2 3 4
-1
-2
-3
-4 -3 -2 -1 0 1 2 3 4
-5
-4 -3 -2 -1 0 1 2 3 4
10
-5
-10
-4 -3 -2 -1 0 1 2 3 4
35
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
Observaţii:
• Reprezentarea spectrelor a fost făcută în funcţie de pulsaţia normată
ω ∈ [−π , π ) .
• Valorile calculate în X1=fft(x1,512) reprezintă spectrul calculat în
k
ωk = 2π , cu k = 0,1,…, N − 1 . Astfel, numărul de puncte N în care se
N
calculează fft determină rezoluţia spectrală. Cu cât N este mai mare cu
atât aproximarea spectrului de frecvenţe continue X (e jω ) este mai bună.
• Dacă lungimea secvenţei x[n] este mai mică decăt N, secvenţa se
completează cu zeroruri, spectrul calculat reprezentând convoluţia între
spectrul secvenţei de lungime infinită şi spectrul funcţiei poartă de
lungime egală cu a secvenţei date.
• Spectrul calculat cu funcţia fft poate fi reprezentat şi în funcţie de
o indicele TFD: k = 0,1,…, N − 1 .
F ω
o frecvenţa normată: f = = , f ∈ [−0.5,0.5) .
FS 2π
f = -0.5:1/N:0.5-1/N;
o frecvenţa nenormată F = f ⋅ FS [Hz]. F ∈ [− FEs / 2, FEs / 2) .
E3. Exerciţii:
1.
a) Să se genereze secvenţa discretă s[n] obţinută prin eşantionarea cu frecvenţa
de eşantionare FS = 8kHz a semnalului s (t ) = sin ( 2πF0t ) de frecvenţă
F0 = 500Hz şi durată tMAX = 40ms . Câte eşantioane are secvenţa discretă?
b) Să se calculeze TFD a secvenţei în N=256 puncte cu funcţia fft.
c) Să se reprezinte spectrul de amplitudini (modulul TFD) în funcţie de k=0:N-1
d) Să se reprezinte spectrul de amplitudini în pulsaţii normate ω ∈ [−π , π )
e) Să se reprezinte spectrul de amplitudini în frecvenţe normate f ∈ [ −0.5,0.5)
f) Să se reprezinte spectrul de amplitudini în frecvenţe nenormate [Hz]
g) Să se reprezinte cu subplot spectrul de amplitudini şi de fază în funcţie de
frecvenţa normată.
h) Să se reprezinte cu subplot partea reală şi partea imaginară în funcţie de
frecvenţa normată.
Fiecare spectru va fi reprezentat într-o figură separată (funcţia figure()).
Graficul va fi completat cu funcţiile: grid, title şi xlabel.
2. Pentru programul de la exerciţiul anterior modificaţi pe rând următorii
parametri şi explicaţi schimbările apărute în reprezentarea spectrului semnalului.
a) Frecvenţa semnalului F0 = 200Hz .
b) Numărul de puncte al TFD N=1024 (pentru semnalul iniţial cu F0 = 500Hz ).
36
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
x[n] y[n]
S{•}
x[n] y[n]
h[n]
Răspunsul y[n] al unui SDLIT la orice secvenţă x[n] , poate fi determinat prin
convoluţie dacă se cunoaşte răspunsul la impulsul unitate h[n] :
N M
∑ ak y[n − k ] = ∑ bk x[n − k ] (2.13)
k =0 k =0
X ( z ) = ∑ x[n]z − n (2.14)
n
37
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
Z { y[n]} Y ( z )
H ( z) = = = Z {h[n]} (2.15)
Z {x[n]} X ( z )
M
∑ bk z −k
k =0
H ( z) = N
(2.16)
1 + ∑ ak z −k
k =1
Sintaxe:
[h,t] = impz(b,a)
• vectorul b conţine coeficienţii bk ( b = [ b0, b1, ..., bM ] ) iar vectorul a conţine
coeficienţii ak ( a = [ 1, a1, a2, ..., aN ] ); se vor returna un vector coloană h
care va conţine valorile eşantioanelor răspunsului la impuls al sistemului,
h[n] , şi un vector coloană t ce va conţine momentele de pe axa timp
(abscisa), alese în mod implicit, în care au fost calculate valorile
eşantioanelor; parametrul de ieşire t poate să lipsească din sintaxă în cazul
în care ne interesează doar răspunsul la impuls h.
38
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
[h,t] = impz(b,a,n)
• se precizează numărul de puncte n în care se doreşte a fi calculat răspunsul la
impuls h; vectorul coloană t va conţine valorile acestor puncte (acestea vor fi
0, 1, 2, ..., n-1); parametrul de ieşire t poate să lipsească din sintaxă în cazul
în care ne interesează doar răspunsul la impuls h.
[h,t] = impz(b,a,n,Fs)
• aceleaşi considerente ca în sintaxa precedentă cu deosebirea că cele n valori
din vectorul t vor fi distanţate cu pasul 1/Fs (0, 1/Fs, 2/Fs, ..., (n-1)/Fs).
[h,t] = impz(b,a,[],Fs)
• aceleaşi considerente ca în sintaxa precedentă cu deosebirea că se alege în
mod implicit numărul de puncte în care se calculează răspunsul la impuls h.
impz(b,a,...)
• reprezintă grafic răspunsul la impuls calculat; punctele de suspensie au fost
introduse pentru a sugera faptul că se poate folosi oricare combinaţie a
parametrilor de intrare din sintaxele precedente.
Exemple:
Să se determine şi să se reprezinte grafic funcţia pondere a unui SDLIT definit
prin:
1. y[n] − 0,9 y[n − 1] = 0,3 x[n] + 0,6 x[n − 1] + 0,6 x[n − 2]
1 + 0,5 z −1
2. H ( z ) =
1 − 1,8 cos(π / 16) z −1 + 0,81z −2
b=[0.3,0.6,0.6];
a=[1,-0.9];
// s-au definit vectorii b şi a ce conţin valorile coeficienţilor bk şi ak din ecuaţia
cu diferenţe finite.
[h,t]=impz(b,a);
// s-a calculat răspunsul la impuls al sistemului.
size(h) → ans =
93 1
size(t) → ans =
93 1
// se verifică faptul că h şi t sunt vectori coloană (vezi sintaxa) cu 93 de
elemente fiecare.
Se poate verifica, tastând în fereastra de comenzi t urmat de enter, că valorile
vectorului t sunt 0, 1, …, 92.
Pentru reprezentarea grafică se poate proceda în două moduri:
39
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
impz(b,a),grid 1.4
1.2
0.8
0.6
0.4
0.2
0
0 10 20 30 40 50 60 70 80 90
stem(t,h),grid
// se va obţine acelaşi rezultat grafic.
-1
0 10 20 30 40 50 60 70 80 90
Sintaxe:
y = filter(b,a,x)
• dacă x este un vector atunci se returnează un vector y de aceeaşi dimensiune
cu vectorul x; vectorul x conţine valorile semnalului de intrare în filtru
(excitaţia); vectorul b conţine coeficienţii bk ( b = [ b0, b1, ..., bM ] ) iar
vectorul a conţine coeficienţii ak ( a = [ 1, a1, a2, ..., aN ] ); dacă primul
element din vectorul a este diferit de 1 atunci funcţia filter normează
40
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
Exemple:
Să se determine şi să se reprezinte grafic răspunsul unui sistem definit prin:
1. y[n] − 0,9 y[n − 1] = 0,3 x[n] + 0,6 x[n − 1] + 0,6 x[n − 2]
1 + 0,5 z −1
2. H ( z ) =
1 − 1,8 cos(π / 16) z −1 + 0,81z −2
la semnalul de intrare x1[n] = u[n] − u[n − 10] , pentru 0 ≤ n ≤ 40 .
b=[0.3,0.6,0.6];
a=[1,-0.9];
// vectorii b şi a conţin valorile coeficienţilor bk şi ak .
x=treapta(0,40,0)-treapta(0,40,10);
// s-a definit vectorul x corespunzător secvenţei de intrare.
y=filter(b,a,x);
// s-a calculat răspunsul sistemului la secvenţa de intrare definită prin vectorul x.
n=0:40;
subplot(3,1,1),stem(n,x),grid,title(’x[n]’)
subplot(3,1,2),impz(b,a),grid,title(’h[n]’)
subplot(3,1,3),stem(n,y),grid,title(’y[n]’)
x[n]
1
0.5
0
0 5 10 15 20
h[n] 25 30 35 40
1.5
0.5
0
0 10 20 30 40 y[n] 50 60 70 80 90
10
0
0 5 10 15 20 25 30 35 40
y=filter(b,a,x);
subplot(3,1,1),stem(n,x),grid,title(’x[n]’)
subplot(3,1,2),impz(b,a),grid,title(’h[n]’)
subplot(3,1,3),stem(n,y),grid,title(’y[n]’)
x[n]
1
0.5
0
0 5 10 15 20
h[n] 25 30 35 40
5
-5
0 10 20 30 40 y[n] 50 60 70 80 90
40
20
-20
0 5 10 15 20 25 30 35 40
Sintaxe:
[H,W] = freqz(b,a,n)
• vectorul b conţine coeficienţii bk ( b = [ b0, b1, ..., bM ] ), vectorul a conţine
coeficienţii ak ( a = [ 1, a1, a2, ..., aN ] ), iar n reprezintă numărul de puncte în
care se calculează răspunsul în frecvenţă H; vectorul W va conţine valorile
acestor n puncte (valorile vor fi cuprinse între 0 şi π); este recomandat să se
aleagă n putere a lui 2 (pentru a permite un calcul eficient folosind un
algoritm FFT rapid); dacă n nu se specifică se alege în mod implicit 512.
[H,F] = freqz(b,a,n,Fs)
• această sintaxă permite specificarea unei valori pentru frecvenţa de
eşantionare Fs (în Hz); vectorul F va conţine valorile celor n puncte în care
se calculează răspunsul în frecvenţă H (în acest caz valorile acestor puncte vor
fi cuprinse între 0 şi Fs/2);
[H,W] = freqz(b,a,n,’whole’)
42
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
[H,F] = freqz(b,a,n,’whole’,Fs)
• aceleaşi considerente ca în cazul celei de a doua sintaxe cu deosebirea că
valorile celor n puncte de calcul, conţinute în vectorul F, vor fi cuprinse între
0 şi Fs; dacă n nu se specifică se alege în mod implicit 512.
H = freqz(b,a,W)
• răspunsul în frecvenţă H se calculează la frecvenţele specificate în vectorul W;
valorile acestor frecvenţe trebuie să fie cuprinse între 0 şi 2π; dacă W nu se
specifică se aleg în mod implicit 512 valori de frecvenţă.
H = freqz(b,a,F,Fs)
• răspunsul în frecvenţă H se calculează la frecvenţele specificate în vectorul F;
valorile acestor frecvenţe trebuie să fie cuprinse între 0 şi Fs (frecvenţa de
eşantionare în Hz).
freqz(b,a,...)
• reprezintă grafic caracteristicile amplitudine-frecvenţă şi fază-frecvenţă ale
răspunsului în frecvenţă calculat; punctele de suspensie au fost introduse
pentru a sugera faptul că se poate folosi oricare combinaţie a parametrilor de
intrare din sintaxele precedente.
Exemple:
Să se determine răspunsul în frecvenţă al SDLIT definite prin:
1. y[n] + 0,9 y[n − 1] = 0,3 x[n] + 0,6 x[n − 1] + 0,3 x[n − 2]
0.634 − 0.634 z −2
2. H ( z ) =
1 − 0.268 z −2
Să se reprezinte grafic caracteristicile amplitudine-frecvenţă şi fază-frecvenţă ale
răspunsului în frecvenţă calculat.
b=[0.3,0.6,0.3];
a=[1,0.9];
[H,W]=freqz(b,a);
// s-a calculat răspunsul în frecvenţă H în 512 puncte de frecvenţă cuprinse în
intervalul [0,π ] .
Reprezentările grafice cerute se pot realiza în două moduri:
figure(1)
subplot(2,1,1),plot(W,abs(H)),grid
subplot(2,1,2),plot(W,angle(H)),grid
43
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
0.8
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3 3.5
-1
-2
-3
-4
0 0.5 1 1.5 2 2.5 3 3.5
figure(2)freqz(b,a) 0
-40
-60
-80
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Normalized frequency (Nyquist == 1)
0
Phase (degrees)
-50
-100
-150
-200
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Normalized frequency (Nyquist == 1)
Sintaxe:
zplane(z,p)
• dacă z şi p sunt doi vectori coloană ce conţin valorile zerourilor şi respectiv
polilor funcţiei de transfer H ( z ) atunci se va afişa diagrama poli-zerouri,
marcând zerourile cu semnul ‘o’ iar polii cu semnul ‘x’; dacă există poli sau
zerouri multiple, acestea vor avea înscris, lângă semnul respectiv şi ordinul de
multiplicitate.
• dacă z şi p sunt două matrice afişarea diagramei poli-zerouri se va face pentru
fiecare coloană în parte cu culori diferite.
zplane(b,a)
44
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
Im
1
imag{z} z
|z|
ϕ
-1 0 real{z} 1 Re
-1
Atenţie:
În cazul în care dispunem de valorile coeficienţilor bk şi ak şi dorim să
determinăm valorile polilor şi zerourilor funcţiei de sistem respective se poate
utiliza funcţia MATLAB roots, care calculează rădăcinile unui polinom dacă
sunt precizaţi coeficienţii acestuia.
45
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
Exemple:
π
1 j
1. Funcţia de transfer a unui SDLIT are un zerou de valoare r = e 3 . Ştiind că
2
2π
∗ 1 1 1 j3
această funcţie are zerouri şi în r , , ∗ şi are doi poli în q = e şi q ∗ să
r r 3
se reprezinte diagrama poli-zerouri şi să se scrie forma nefactorizată a funcţiei
de transfer (să se găsească valorile coeficienţilor bk şi ak ).
r=1/2*exp(j*pi/3);
q=1/3*exp(j*2*pi/3);
z=[r;conj(r);1/r;1/conj(r)];
p=[q;conj(q)];
// s-au definit vectorii coloană z şi p (vezi sintaxa) ce conţin valorile zerourilor
şi respectiv polilor funcţiei de transfer.
zplane(z,p)
1.5
0.5
Imaginary part
-0.5
-1
-1.5
46
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
b=[1,0.5]; 1
a=[1,-1.8*cos(pi/16),0.81]; 0.8
zplane(b,a) 0.6
0.4
Imaginary part
0.2
-0.2
-0.4
-0.6
-0.8
-1
-1 -0.5 0 0.5 1
Real part
b=[1,1,0.25];
1
zplane(b,a)
0.8
0.6
0.4
Imaginary part
0.2
2
0
-0.2
-0.4
-0.6
-0.8
-1
-1 -0.5 0 0.5 1
Real part
b=[0.3,0.6,0.6]; 1
0.8
a=[1,0.1,0,0.1,0.1]; 0.6
zplane(b,a) 0.4
Imaginary part
0.2
-0.2
-0.4
-0.6
-0.8
-1
-1 -0.5 0 0.5 1
47 Real part
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
E4. Exerciţii:
Se dau următoarele SDLIT definite prin:
1. y[n] = x[n] − 1,27 x[n − 1] + 0,81x[n − 2] − 0,5 x[n − 3] + 0,125 x[n − 4]
2. y[n] + 0,9 y[n − 1] = x[n]
3. y[n] + 0,13 y[n − 1] + 0,52 y[n − 2] + 0,3 y[n − 3] =
= 0,16 x[n] − 0,48 x[n − 1] + 0,48 x[n − 2] − 0,16 x[n − 3]
4. y[n] + 0,9 y[n − 2] = 0,3 x[n] + 0,6 x[n − 1] + 0,3 x[n − 2]
1 − 0,5 z −1 + 0,125 z −2 − 0,075 z −3
5. H ( z ) =
1 − 0,8 z −1 + 0,64 z −2 − 0,4 z −3 + 0,024 z −4
1
6. H ( z ) =
1 − 0,77 z + 0,44 z −3
−1
Tema de casă
Lungimea N a TFD va fi aleasă o putere a lui 2 (128, 256, 512 sau 1024) mai
mică decât lungimea secvenţei.
Să se reprezinte grafic:
1) Spectrul de amplitudini
a) În funcţie de indicele k al TFD calculată. k=0…N-1.
b) În funcţie de pulsaţii normate [-π, π].
c) În funcţie de frecvenţa normată [-0.5, 0.5].
d) În funcţie de frecvenţa nenormată [-Fs/2 – Fs/2].
2) Spectrul de amplitudini în dB în funcţie de frecvenţe normate.
3) Spectrul de faze în funcţie de frecvenţe normate.
2.
a) Să se genereze următorul semnal discret: x[n] = s[n] + v[n] unde
• v[n] este un semnal aleator cu distribuţie normală (gaussiană).
• s[n] este un semnal sinusoidal de amplitudine 2 şi frecvenţa F0 aleasă
aleator în intervalul [FS/10, FS/3]. Frecvenţa de eşantionare FS = 8kHz.
Să se reprezinte semnalul x[n] în domeniul timp şi spectrul semnalului în
frecvenţe nenormate şi în pulsaţii normate. Identificaţi din spectru pulsaţia ω0
corespunzătoare frecvenţei F0 a componentei sinusoidale de la intrare.
49
2. SEMNALE ŞI SISTEME ÎN TIMP DISCRET
b0 + b1 z −1 + b2 z −2
c) Se consideră sistemul discret cu funcţia de transfer H ( z ) =
1 + a1 z −1 + a2 z −2
având zerourile zk determinate la punctul b) şi polii de forma p1 = ρzk , 0.7<ρ<1
(polii au acelaşi argument ca zerorurile dar sunt de modul subunitar).
• Determinaţi expresia teoretică a coeficienţilor şi scrieţi expresiile H(z)
şi H (e jω ) .
• Calculaţi toate zerourile şi toţi polii funcţiei H(z) şi reprezentaţi grafic
diagrama poli/zerouri. Se va alege 0.7<ρ<1.
• Reprezentaţi grafic răspunsul în frecvenţă al sistemului. Cum se modifică
răspunsul în frecvenţă dacă polii se apropie de cercul de rază unitate
(ρ→1)?
• Reprezentaţi grafic răspunsul la impuls al sistemului.
• Calculaţi ieşirea sistemului dacă la intrare se aplică semnalul x[n].
• Reprezentaţi spectrul semnalului de la ieşire în frecvenţe nenormate şi în
pulsaţii normate.
50