Sunteți pe pagina 1din 12

2. SEMNALE I SISTEME N TIMP DISCRET 2.

SEMNALE I SISTEME N TIMP DISCRET

Deoarece n MATLAB nu putem defini secvene de lungime infinit trebuie


precizat domeniul de valori pentru n. Pentru a facilita definirea unor secvene de
acest tip vom crea o funcie MATLAB (vezi lucrarea 1, seciunea 1.2.8.):

function [y,n]=impuls(li,ls,k);

%IMPULS - impulsul unitate (Dirac) in timp discret,


%definit pe un suport temporal finit
LUCRAREA 2 %-sintaxe:
SEMNALE I SISTEME N TIMP DISCRET %y=impuls(li,ls,k)
%[y,n]=impuls(li,ls,k)
%-parametrii de iesire:
%y=vector linie ce reprezinta delta(n-k) pe suportul
%[li;ls]
%n=vector linie ce reprezinta suportul [li;ls]
2.1. Semnale n timp discret %-parametrii de intrare:
%li=limita inferioara a suportului temporal;
Un semnal n timp discret este definit prin valorile acestuia msurate la %ls=limita superioara a suportului temporal;
momente discrete de timp. Semnalele n timp discret sunt reprezentate %k=indicele din delta(n-k)
matematic prin secvene de numere notate: %-pentru afisare: stem(n,y)

x[n] , N1 n N 2 (2.1) if nargin<3


error('Prea putine argumente de intrare')
n MATLAB aceste secvene se pot defini ca vectori linie sau coloan, elseif nargin>3
avnd elemente reale sau complexe. O prim limitare apare din faptul c aceti error('Prea multe argumente de intrare')
vectori sunt de lungime finit n timp ce n problemele de prelucrarea numeric end
a semnalelor se poate lucra cu secvene de lungime infinit.
if nargout>2
error('Prea multe argumente de iesire')
2.1.1. Definirea semnalelor n timp discret end

n studiul semnalelor i sistemelor n timp discret se utilizeaz cteva if li>=ls


secvene de baz ce vor fi prezentate n continuare, mpreun cu modul lor de error('Suportul temporal este invalid')
definire n MATLAB. end

Impulsul unitate if (k<li)|(k>ls)


Din punct de vedere matematic este definit astfel: error('Indicele nu apartine suportului temporal')
end
1 , n = 0
[ n] = (2.2)
0 , n 0 L=ls-li+1;
Utiliznd proprietatea de deplasare n timp se poate scrie c y=zeros(1,L);
1 , n = n0 y(k-li+1)=1;
[ n n0 ] = (2.3) n=li:ls;
0 , n n0
27 28
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

Exemple: if nargout>2
Utiliznd funcia MATLAB impuls creat anterior, s se defineasc i s se error('Prea multe argumente de iesire')
reprezinte grafic secvenele: end
1. x1[n] = [n] if li>=ls
2. x2 [n] = 0,5 [n 3] , pentru 10 n 10 . error('Suportul temporal este invalid')
end
[y1,n]=impuls(-10,10,0)
stem(n,y1),grid if (k<li)|(k>ls)
[y2,n]=impuls(-10,10,3) error('Indicele nu apartine suportului temporal')
stem(n,0.5*y2),grid end
L=ls-li+1;
Treapta unitate y=zeros(1,L);
Din punct de vedere matematic este definit astfel: y(k-li+1:L)=1;
1 , n 0 n=li:ls;
u[n] = (2.4)
0 , n < 0
Utiliznd proprietatea de deplasare n timp se poate scrie c Exemple:
1 , n n0 S se defineasc i s se reprezinte grafic secvenele:
u[n n0 ] = (2.5) 1. x1[n] = u[n]
0 , n < n0
Se poate crea de asemenea o funcie MATLAB pentru definirea 2. x2 [n] = 0,7(u[n + 3] u[n 3]) , pentru 5 n 10 .
secvenelor de tip treapt unitate: [y1,n]=treapta(-5,10,0)
function [y,n]=treapta(li,ls,k); stem(n,y1),grid
[y21,n]=treapta(-5,10,-3)
%TREAPTA - treapta unitate in timp discret, definita [y22,n]=treapta(-5,10,3)
%pe un suport temporal finit y2=0.7*(y21-y22)
%-sintaxe: stem(n,y2),grid
%y=treapta(li,ls,k)
%[y,n]=treapta(li,ls,k)
%-parametrii de iesire: E1. Exerciii:
%y=vector linie ce reprezinta u(n-k) pe suportul S se defineasc i s se reprezinte grafic urmtoarele secvene:
%[li;ls] 1. x1[n] = [n] [n 1] pentru 10 n 10
%n=vector linie ce reprezinta suportul [li;ls] 2. x2 [n] = [n] 0,5 [n 1] + 0,3 [n 2] 2 [n + 1] pentru 10 n 10
%-parametrii de intrare: 3. x3 [n] = u[n] + 0,5u[n 4] 0,5u[n + 4] pentru 10 n 10
%li=limita inferioara a suportului temporal;
%ls=limita superioara a suportului temporal; 4. x4 [n] = [n 1] + u[n 5] + [n + 2] 2 [n 9] pentru 10 n 20
n n
%k=indicele din u(n-k) 1 1
%-pentru afisare: stem(n,y) 5. x1[n] = pentru 0 n 10
2 2
if nargin<3 n n
error('Prea putine argumente de intrare') 6. x2 [n] = ln cos sin pentru 20 n 20
15 15
elseif nargin>3
n
error('Prea multe argumente de intrare') 7. x1[n] = (1) n cos pentru 0 n 10
end 15
29 30
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

2.1.2. Convoluia liniar a semnalelor n timp discret E2. Exerciii:


S se calculeze i s se reprezinte grafic (ca n exemplul precedent) produsul de
Produsul de convoluie liniar a dou secvene numerice x1[n] i x2[n] este convoluie liniar a urmtoarelor perechi de secvene:
definit astfel:
1. x1[n] = u[n 5] u[n 15] x2 [n] = 10 n pentru 0 n 20

x[n] = x1[n] x2 [n] = x1[k ] x2 [n k ] (2.6) 2. x1[n] = sin ( 0.1 n ) x2 [n] = [n 5] pentru 0 n 20
k =
3. x1[n] = cos(0, 25 n) x2 [n] = (1) n
pentru 0 n 20
unde secvenele x1[n] i x2[n] s-au presupus a avea lungime infinit.
n MATLAB secvenele numerice sunt privite ca nite vectori i innd
cont de faptul c ele sunt finite i c indicele primului element dintr-un vector nu 2.1.3. Transformata Fourier discret
poate fi zero (se efectueaz o indexare cu 1) atunci definiia de mai sus devine:
Transformata Fourier n timp discret (DTFT Discrete Time Fourier
N 1 Transform) a unei secvene x[n] este dat de relaia:
x[n + 1] = x1[k + 1] x2 [n k ] (2.7)
k =0
X (e j ) = x[n]e jn (2.8)
n
unde N este maximul dintre lungimile celor dou secvene.
F
unde este pulsaia normat: = 2
.
Sintaxa: FS
conv(x1,x2)
F este frecvena nenormat (exprimat n Hz) iar FS este frecvena de
returneaz ca rezultat un vector de lungime egal cu lungimea vectorului x1 eantionare.
plus lungimea vectorului x2 minus 1, ce reprezint produsul de convoluie F
liniar al celor dou secvene definite prin vectorii x1 i x2. Similar, frecvena normat este: f = .
FS
Exemplu: Funcia X (e j ) este periodic de perioad 2 , deci este suficient s
S se calculeze i s se reprezinte grafic produsul de convoluie liniar a cunoatem comportarea sa n intervalul [ , ) (interval de baz). Datorit
secvenelor x1[n] = u[n] u[n 5] ( 0 n 10 ) i x2 [n] = (0,9) n ( 0 n 20 ). faptului c aceast funcie este continu, variabila putnd lua o infinitate de
x1=treapta(0,10,0)-treapta(0,10,5); valori, nu este posibil o implementare pe o main de calcul.
n=0:20;
x2=0.9.^n; Pentru a realiza totui o analiz n frecven se utilizeaz transformata
x=conv(x1,x2); Fourier discret TFD (DFT Discret Fourier Transform), obinut prin
subplot(2,2,1),stem(0:10,x1),title(x1),grid discretizarea variabilei pe intervalul [0,2 ) n N puncte:
subplot(2,2,2),stem(n,x2),title(x2),grid k
subplot(2,1,2),stem(0:length(x)-1,x),title(x),grid k = 2 , cu k = 0,1,, N 1 .
x1 x2
N
1 1

0.8 0.8

0.6 0.6
Astfel, transformata Fourier discret a unei secvene x[n] este dat de
0.4 0.4

0.2 0.2 relaia:


0 0
0 5 10 0 5 10 15 20

x
5 2
j kn
X [k ] = x[n]e N
cu k = 0,1,, N 1 (2.9)
4

2 n
1

0
0 5 10 15 20 25 30

31 32
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

n figur sunt prezentate reprezentrile spectrului unui semnal discret n N n care se calculeaz transformata) este egal n acest caz cu lungimea
funcie de pulsaie sau frecven normat i corespondena cu frecvena vectorului x.
analogic. De asemenea se observ corespondena ntre componentele spectrale dac x este o matrice se va returna matricea y de aceeai dimensiune cu
de indice k calculate cu TFD i spectrul reprezentat n pulsaii normate. matricea x; coloana i din matricea y va conine valorile transformatei Fourier
discrete aplicat elementelor coloanei i din matricea x.
X a ( j ) y = fft(x,N)
aceleai considerente ca n sintaxa precedent cu deosebirea c n acest
caz se specific i numrul de puncte N n care se calculeaz transformata.
S S
S > 2 max
2 2 [rad/s]
Exemple:
-max 0 max F[Hz] S se calculeze transformata Fourier discret a secvenei:
-Fmax 0 Fmax FS/2 FS
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.
=
FS
X (e j
) x1=treapta(0,20,0)-treapta(0,20,10);
F
f = X=fft(x1);
FS
figure(1),plot(X)
// se obine o reprezentare grafic eronat deoarece X e un vector cu valori
complexe.
- -max 0 max 2 f figure(2),plot(abs(X))
-0.5 -fmax 0 fmax 0.5 1 // calculul transformatei Fourier discrete s-a efectuat ntr-un numr de puncte
egal cu lungimea vectorului x1 (vezi sintaxa de la fft); pentru o mai bun
k reprezentare vom efectua calculul ntr-un numr mai mare de puncte (N = 512):
k = 0,..., N 1 k = 2
X (k ) N X1=fft(x1,512);
figure(3),plot(abs(X1)),grid
10

k 7

0 123 N/2 N-1 5

n MATLAB, pentru calculul transformatei Fourier discrete se folosete funcia 2

fft. Denumirea sa reprezint prescurtarea de la Fast Fourier Transform 0


0 100 200 300 400 500 600

(transformata Fourier rapid) i indic faptul c este folosit pentru calcul un


algoritm rapid. // Aceast reprezentare corespunde ns intervalului de frecven [0,2 ) (pe
abscis avem numrul de puncte al vectorului X1 pentru c n sintaxa funciei
Sintaxe: plot nu s-a specificat nimic altceva). De obicei se dorete ns reprezentarea n
y = fft(x) intervalul de baz [ , ) . Avnd n vedere faptul c funcia este periodic de
dac x este un vector se returneaz un vector y de aceeai dimensiune cu perioad 2 atunci reprezentarea din intervalul [ ,0) corespunde cu
vectorul x ce conine valorile transformatei Fourier discrete aplicat
reprezentarea din intervalul [ ,2 ) . Prin urmare trebuie realizat o inversare a
elementelor vectorului x; lungimea transformatei Fourier (numrul de puncte
33 34
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

celor dou jumti ale vectorului X1. Acest lucru se realizeaz n MATLAB Observaii:
prin utilizarea comenzii fftshift (schimb ntre ele cele dou jumti ale Reprezentarea spectrelor a fost fcut n funcie de pulsaia normat
unui vector). n plus, pentru a avea pe abscis reprezentarea n intervalul [ , ) [ , ) .
trebuie generat un vector cu pas liniar care s conin n intervalul respectiv un Valorile calculate n X1=fft(x1,512) reprezint spectrul calculat n
numr de elemente egal cu lungimea transformatei Fourier discrete calculate: k
k = 2 , cu k = 0,1,, N 1 . Astfel, numrul de puncte N n care se
w=-pi:2*pi/512:pi-2*pi/512; N
figure(4),plot(w,fftshift(abs(X1))),grid calculeaz fft determin rezoluia spectral. Cu ct N este mai mare cu
10 att aproximarea spectrului de frecvene continue X (e j ) este mai bun.
Dac lungimea secvenei x[n] este mai mic dect N, secvena se
9

6
completeaz cu zeroruri, spectrul calculat reprezentnd convoluia ntre
5 spectrul secvenei de lungime infinit i spectrul funciei poart de
4
lungime egal cu a secvenei date.
Spectrul calculat cu funcia fft poate fi reprezentat i n funcie de
3

1
o indicele TFD: k = 0,1,, N 1 .

0

F
-4 -3 -2 -1 0 1 2 3 4

o frecvena normat: f = = , f [0.5,0.5) .


// n figura 4 s-a reprezentat spectrul de amplitudini iar n figura 5 se va FS 2
reprezenta spectrul de faz calculat cu ajutorul funciei angle(). f = -0.5:1/N:0.5-1/N;
figure(5),plot(w,fftshift(angle(X1))),grid o frecvena nenormat F = f FS [Hz]. F [ FEs / 2, FEs / 2) .
3

2
E3. Exerciii:
1 1.
0 a) S se genereze secvena discret s[n] obinut prin eantionarea cu frecvena
-1 de eantionare FS = 8kHz a semnalului s (t ) = sin ( 2F0t ) de frecven
-2 F0 = 500Hz i durat tMAX = 40ms . Cte eantioane are secvena discret?
-3
-4 -3 -2 -1 0 1 2 3 4
b) S se calculeze TFD a secvenei n N=256 puncte cu funcia fft.
c) S se reprezinte spectrul de amplitudini (modulul TFD) n funcie de k=0:N-1
// n final putem reprezenta prile real i imaginar ale TFD observndu-se d) S se reprezinte spectrul de amplitudini n pulsaii normate [ , )
simetria, respectiv antisimetria acestora. e) S se reprezinte spectrul de amplitudini n frecvene normate f [ 0.5,0.5)
figure(6)
subplot(2,1,1),plot(w,fftshift(real(X1))),grid f) S se reprezinte spectrul de amplitudini n frecvene nenormate [Hz]
subplot(2,1,2),plot(w,fftshift(imag(X1))),grid g) S se reprezinte cu subplot spectrul de amplitudini i de faz n funcie de
frecvena normat.
h) S se reprezinte cu subplot partea real i partea imaginar n funcie de
10

0
frecvena normat.
-5
Fiecare spectru va fi reprezentat ntr-o figur separat (funcia figure()).
Graficul va fi completat cu funciile: grid, title i xlabel.
-4 -3 -2 -1 0 1 2 3 4

10

5 2. Pentru programul de la exerciiul anterior modificai pe rnd urmtorii


0
parametri i explicai schimbrile aprute n reprezentarea spectrului semnalului.
a) Frecvena semnalului F0 = 200Hz .
-5

-10
-4 -3 -2 -1 0 1 2 3 4

b) Numrul de puncte al TFD N=1024 (pentru semnalul iniial cu F0 = 500Hz ).

35 36
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

2.2. Sisteme n timp discret Pentru un SDLIT se numete funcie de sistem sau funcie de transfer H (z ) ,
raportul ntre transformatele Z ale secvenei de ieire (rspunsul y[n] ) i
Un sistem n timp discret transform secvena de intrare x[n] ntr-o alt secvenei de intrare (excitaia x[n] ), reprezentnd de fapt transformata Z a
secven de ieire y[n] . Notnd S{} , operatorul sistemului, acesta este descris funciei pondere h[n] :
matematic prin relaia:
Z { y[n]} Y ( z )
y[n] = S{x[n]} (2.10) H ( z) = = = Z {h[n]} (2.15)
Z {x[n]} X ( z )

Reprezentarea simbolic a unui sistem n timp discret este urmtoarea: innd cont de ecuaia cu diferene finite i de proprietatea de ntrziere a
transformatei Z ( Z{x[n k ]} = z k X ( z ) ), funcia de sistem H (z ) se mai poate
x[n] y[n]
S{} scrie astfel:

M
Pentru un sistem n timp discret, liniar i invariant n timp (SDLIT) se numete
funcie pondere sau rspuns la impulsul unitate, secvena care se obine la
bk z k
k =0
H ( z) = (2.16)
ieirea sistemului dac la intrare s-a aplicat impulsul unitate [n] : N
1 + ak z k
k =1
h[n] = S{ [n]} (2.11)
n care s-a presupus c a0 = 1 . Rdcinile polinomului de la numrtor se
Astfel, un alt mod de a reprezenta simbolic un sistem n timp discret este: numesc zerourile funciei de transfer iar rdcinile polinomului de la numitor se
numesc polii funciei de transfer. Pentru ca un sistem cauzal s fie stabil polii
x[n] y[n] trebuie s fie situai n interiorul cercului de raz unitate (modulul lor s fie
h[n]
subunitar).
Rspunsul y[n] al unui SDLIT la orice secven x[n] , poate fi determinat prin
convoluie dac se cunoate rspunsul la impulsul unitate h[n] : 2.2.1. Rspunsul la impuls al unui SDLIT

y[n] = x[n] h[n] = x[k ]h[n k ] (2.12) Funcia MATLAB impz permite determinarea i afiarea rspunsului la
k impuls (funcia pondere) h[n] a unui SDLIT dac se cunosc coeficienii ak i bk
din ecuaia cu diferene finite sau din expresia funciei de transfer H (z ) .
SDLIT pot fi reprezentate prin ecuaii cu diferene finite cu coeficieni constani,
care dau legtura ntre secvena de intrare i cea de ieire:
Sintaxe:
N M [h,t] = impz(b,a)
ak y[n k ] = bk x[n k ] (2.13) vectorul b conine coeficienii bk ( b = [ b0, b1, ..., bM ] ) iar vectorul a conine
k =0 k =0 coeficienii ak ( a = [ 1, a1, a2, ..., aN ] ); se vor returna un vector coloan h
care va conine valorile eantioanelor rspunsului la impuls al sistemului,
Pentru analiza n frecven a SDLIT reamintim formula pentru
h[n] , i un vector coloan t ce va conine momentele de pe axa timp
transformata Z a unei semnal n timp discret x[n] :
(abscisa), alese n mod implicit, n care au fost calculate valorile
eantioanelor; parametrul de ieire t poate s lipseasc din sintax n cazul
X ( z ) = x[n]z n (2.14) n care ne intereseaz doar rspunsul la impuls h.
n

37 38
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

[h,t] = impz(b,a,n) impz(b,a),grid 1.4

se precizeaz numrul de puncte n n care se dorete a fi calculat rspunsul la 1.2

impuls h; vectorul coloan t va conine valorile acestor puncte (acestea vor fi 1

0, 1, 2, ..., n-1); parametrul de ieire t poate s lipseasc din sintax n cazul 0.8

n care ne intereseaz doar rspunsul la impuls h.


0.6

0.4

0.2

[h,t] = impz(b,a,n,Fs) 0

aceleai considerente ca n sintaxa precedent cu deosebirea c cele n valori


0 10 20 30 40 50 60 70 80 90

din vectorul t vor fi distanate cu pasul 1/Fs (0, 1/Fs, 2/Fs, ..., (n-1)/Fs). stem(t,h),grid
// se va obine acelai rezultat grafic.
[h,t] = impz(b,a,[],Fs)
aceleai considerente ca n sintaxa precedent cu deosebirea c se alege n n mod asemntor procedm i pentru cel de al doilea exemplu:
mod implicit numrul de puncte n care se calculeaz rspunsul la impuls h. b=[1,0.5];
a=[1,-1.8*cos(pi/16),0.81];
impz(b,a,...) h=impz(b,a);
reprezint grafic rspunsul la impuls calculat; punctele de suspensie au fost // vectorul coloan h va contine valorile eantioanelor rspunsului la impuls al
introduse pentru a sugera faptul c se poate folosi oricare combinaie a sistemului definit prin funcia de transfer H (z ) din exemplu.
parametrilor de intrare din sintaxele precedente. impz(b,a),grid 5

Exemple: 3

S se determine i s se reprezinte grafic funcia pondere a unui SDLIT definit 2

prin: 1

1. y[n] 0,9 y[n 1] = 0,3 x[n] + 0,6 x[n 1] + 0,6 x[n 2] 0

1 + 0,5 z 1
2. H ( z ) =
-1
0 10 20 30 40 50 60 70 80 90

1 1,8 cos( / 16) z 1 + 0,81z 2

b=[0.3,0.6,0.6];
a=[1,-0.9]; 2.2.2. Rspunsul unui SDLIT la un semnal de intrare
// s-au definit vectorii b i a ce conin valorile coeficienilor bk i ak din ecuaia
cu diferene finite. Funcia MATLAB filter permite determinarea rspunsului y[n] al
[h,t]=impz(b,a); unui SDLIT dac se cunosc coeficienii ak i bk din ecuaia cu diferene finite
// s-a calculat rspunsul la impuls al sistemului. sau din expresia funciei de transfer H (z ) i semnalul de intrare n sistem x[n] .
size(h) ans =
93 1
Sintaxe:
size(t) ans = y = filter(b,a,x)
93 1 dac x este un vector atunci se returneaz un vector y de aceeai dimensiune
// se verific faptul c h i t sunt vectori coloan (vezi sintaxa) cu 93 de cu vectorul x; vectorul x conine valorile semnalului de intrare n filtru
elemente fiecare. (excitaia); vectorul b conine coeficienii bk ( b = [ b0, b1, ..., bM ] ) iar
Se poate verifica, tastnd n fereastra de comenzi t urmat de enter, c valorile
vectorul a conine coeficienii ak ( a = [ 1, a1, a2, ..., aN ] ); dac primul
vectorului t sunt 0, 1, , 92.
Pentru reprezentarea grafic se poate proceda n dou moduri: element din vectorul a este diferit de 1 atunci funcia filter normeaz

39 40
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

coeficienii ak ai sistemului la valoarea primului element din vectorul a y=filter(b,a,x);


(astfel primul element din vectorul a devine 1); vectorul obinut y reprezint subplot(3,1,1),stem(n,x),grid,title(x[n])
rspunsul sistemului definit de coeficienii din vectorii b i a, dac la intrare subplot(3,1,2),impz(b,a),grid,title(h[n])
subplot(3,1,3),stem(n,y),grid,title(y[n])
este aplicat secvena definit de vectorul x.
dac x este o matrice atunci se returneaz o matrice y de aceeai dimensiune
x[n]
1

cu matricea x; funcia filter va opera n acest caz pe coloane: coloana k 0.5

din matricea y reprezint rspunsul sistemului definit de coeficienii din 0


vectorii b i a, dac la intrare este aplicat coloana k din matricea x. 5
0 5 10 15 20
h[n] 25 30 35 40

0
Exemple:
S se determine i s se reprezinte grafic rspunsul unui sistem definit prin: -5
0 10 20 30 40 y[n] 50 60 70 80 90

1. y[n] 0,9 y[n 1] = 0,3 x[n] + 0,6 x[n 1] + 0,6 x[n 2]


40

20

1 + 0,5 z 1 0
2. H ( z ) =
1 1,8 cos( / 16) z 1 + 0,81z 2
-20
0 5 10 15 20 25 30 35 40

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]; 2.2.3. Rspunsul n frecven al SDLIT
// vectorii b i a conin valorile coeficienilor bk i ak .
x=treapta(0,40,0)-treapta(0,40,10); Funcia MATLAB freqz permite determinarea rspunsului n frecven
// s-a definit vectorul x corespunztor secvenei de intrare. al unui SDLIT dac se cunosc coeficienii ak i bk din ecuaia cu diferene finite
y=filter(b,a,x); sau din expresia funciei de transfer H (z ) . Dac este apelat fr parametrii de
// s-a calculat rspunsul sistemului la secvena de intrare definit prin vectorul x. ieire, cum se va vedea n sintax, aceast funcie reprezint grafic
n=0:40; caracteristicile de amplitudine-frecven i faz-frecven ale SDLIT respectiv.
subplot(3,1,1),stem(n,x),grid,title(x[n])
subplot(3,1,2),impz(b,a),grid,title(h[n])
Sintaxe:
subplot(3,1,3),stem(n,y),grid,title(y[n]) [H,W] = freqz(b,a,n)
vectorul b conine coeficienii bk ( b = [ b0, b1, ..., bM ] ), vectorul a conine
x[n]
1

0.5
coeficienii ak ( a = [ 1, a1, a2, ..., aN ] ), iar n reprezint numrul de puncte n
0
0 5 10 15 20
h[n] 25 30 35 40 care se calculeaz rspunsul n frecven H; vectorul W va conine valorile
acestor n puncte (valorile vor fi cuprinse ntre 0 i ); este recomandat s se
1.5

0.5
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.
0
0 10 20 30 40 y[n] 50 60 70 80 90
10

5
[H,F] = freqz(b,a,n,Fs)
0
0 5 10 15 20 25 30 35 40 aceast sintax permite specificarea unei valori pentru frecvena de
eantionare Fs (n Hz); vectorul F va conine valorile celor n puncte n care
n mod asemntor procedm i pentru cel de al doilea exemplu: se calculeaz rspunsul n frecven H (n acest caz valorile acestor puncte vor
b=[1,0.5]; fi cuprinse ntre 0 i Fs/2);
a=[1,-1.8*cos(pi/16),0.81]; [H,W] = freqz(b,a,n,whole)
41 42
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

aceleai considerente ca n cazul primei sintaxe cu deosebirea c valorile celor 0.8

n puncte de calcul, coninute n vectorul W, vor fi cuprinse ntre 0 i 2; dac 0.6

0.4

n nu se specific se alege n mod implicit 512. 0.2

0
0 0.5 1 1.5 2 2.5 3 3.5

[H,F] = freqz(b,a,n,whole,Fs) 0

aceleai considerente ca n cazul celei de a doua sintaxe cu deosebirea c -1

-2

valorile celor n puncte de calcul, coninute n vectorul F, vor fi cuprinse ntre -3

0 i Fs; dac n nu se specific se alege n mod implicit 512. -4


0 0.5 1 1.5 2 2.5 3 3.5

H = freqz(b,a,W) figure(2)freqz(b,a) 0

Magnitude Response (dB)


rspunsul n frecven H se calculeaz la frecvenele specificate n vectorul W;
-20

-40

valorile acestor frecvene trebuie s fie cuprinse ntre 0 i 2; dac W nu se -60

specific se aleg n mod implicit 512 valori de frecven.


-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)
H = freqz(b,a,F,Fs) -50

rspunsul n frecven H se calculeaz la frecvenele specificate n vectorul F;


-100

-150

valorile acestor frecvene trebuie s fie cuprinse ntre 0 i Fs (frecvena de -200


0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

eantionare n Hz).
Normalized frequency (Nyquist == 1)

n mod asemntor procedm i pentru cel de al doilea exemplu:


freqz(b,a,...) b=[0.634,0,-0.634];
reprezint grafic caracteristicile amplitudine-frecven i faz-frecven ale a=[1,0,-0.268];
rspunsului n frecven calculat; punctele de suspensie au fost introduse [H,W]=freqz(b,a);
pentru a sugera faptul c se poate folosi oricare combinaie a parametrilor de freqz(b,a)
intrare din sintaxele precedente.

Exemple:
S se determine rspunsul n frecven al SDLIT definite prin: 2.2.4. Diagrama poli-zerouri pentru funcia de sistem a unui SDLIT
1. y[n] + 0,9 y[n 1] = 0,3 x[n] + 0,6 x[n 1] + 0,3 x[n 2]
Funcia MATLAB zplane permite afiarea diagramei poli-zerouri n
0.634 0.634 z 2
2. H ( z ) = cazul funciei de sistem a unui SDLIT dac se cunosc valorile polilor i
1 0.268 z 2 zerourilor sau dac se cunosc doar coeficienii ak i bk din ecuaia cu diferene
S se reprezinte grafic caracteristicile amplitudine-frecven i faz-frecven ale finite sau din expresia funciei de transfer H (z ) .
rspunsului n frecven calculat.
Sintaxe:
b=[0.3,0.6,0.3]; zplane(z,p)
a=[1,0.9]; dac z i p sunt doi vectori coloan ce conin valorile zerourilor i respectiv
[H,W]=freqz(b,a); polilor funciei de transfer H ( z ) atunci se va afia diagrama poli-zerouri,
// s-a calculat rspunsul n frecven H n 512 puncte de frecven cuprinse n
marcnd zerourile cu semnul o iar polii cu semnul x; dac exist poli sau
intervalul [0, ] . zerouri multiple, acestea vor avea nscris, lng semnul respectiv i ordinul de
Reprezentrile grafice cerute se pot realiza n dou moduri: multiplicitate.
figure(1) dac z i p sunt dou matrice afiarea diagramei poli-zerouri se va face pentru
subplot(2,1,1),plot(W,abs(H)),grid
fiecare coloan n parte cu culori diferite.
subplot(2,1,2),plot(W,angle(H)),grid zplane(b,a)
43 44
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

dac b i a sunt doi vectori linie ce conin valorile coeficienilor bk i ak Dac se dorete determinarea valorilor coeficienilor bk i ak , avnd
atunci se va afia diagrama poli-zerouri a funciei de transfer H ( z ) valorile polilor i zerourilor funciei de sistem, putem utiliza funcia MATLAB
(calculndu-se rdcinile polinoamelor de la numrtorul i numitorul funciei poly, care calculeaz coeficienii unui polinom dac sunt precizate rdcinile
de sistem). acestuia.
Verificai sintaxele celor dou funcii folosind comanda help.
Reprezentarea polilor i zerourilor unei funcii de sistem (diagrama poli-
zerouri) se face n planul Z, n raport cu cercul de raz unitate, avnd pe abscis Exemple:
partea real i pe ordonat partea imaginar. Fiind privite deci ca numere
1 j
complexe, valorile respective pot fi exprimate n form polar sau form 1. Funcia de transfer a unui SDLIT are un zerou de valoare r = e 3 . tiind c
2
cartezian. 2
Orice numr complex z poate fi exprimat n form polar astfel: 1 1 1 j
aceast funcie are zerouri i n r , , i are doi poli n q = e 3 i q s
r r 3
j
z = z e (2.17) se reprezinte diagrama poli-zerouri i s se scrie forma nefactorizat a funciei
de transfer (s se gseasc valorile coeficienilor bk i ak ).
n care: - z = modulul numrului complex z ;
- = argumentul (faza) numrului complex z ; r=1/2*exp(j*pi/3);
q=1/3*exp(j*2*pi/3);
n form cartezian numrul complex z se exprim sub forma: z=[r;conj(r);1/r;1/conj(r)];
p=[q;conj(q)];
z = real ( z ) + j imag ( z ) (2.18) // s-au definit vectorii coloan z i p (vezi sintaxa) ce conin valorile zerourilor
i respectiv polilor funciei de transfer.
zplane(z,p)
Im
1.5

1 1

imag{z} z 0.5

Imaginary part
|z|
0

-0.5

-1 0 real{z} 1 Re -1

-1.5

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2


Real part
-1
// s-a reprezentat diagrama poli-zerouri.
b=poly(z) b =
Reprezentarea n planul Z a unui numr complez z 1.0000 -2.5000 5.2500 -2.5000 1.0000
a=poly(p) a =
Atenie: 1.0000 0.3333 0.1111
n cazul n care dispunem de valorile coeficienilor bk i ak i dorim s // s-au calculat valorile coeficienilor bk i ak ai funciei de sistem. Forma
determinm valorile polilor i zerourilor funciei de sistem respective se poate nefactorizat a acestei funcii va fi:
utiliza funcia MATLAB roots, care calculeaz rdcinile unui polinom dac 1 2,5 z 1 + 5,25 z 2 2,5 z 3 + z 4
sunt precizai coeficienii acestuia. H ( z) =
1 0,3333 z 1 + z 2

45 46
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

2. S se reprezinte diagramele poli-zerouri pentru sistemele n timp discret E4. Exerciii:


definite prin: Se dau urmtoarele SDLIT definite prin:
1 + 0,5 z 1 1. y[n] = x[n] 1,27 x[n 1] + 0,81x[n 2] 0,5 x[n 3] + 0,125 x[n 4]
a. funcia de transfer: H ( z ) =
1 1,8 cos( / 16) z 1 + 0,81z 2 2. y[n] + 0,9 y[n 1] = x[n]
(1 + 0,5 z 1 ) 2 3. y[n] + 0,13 y[n 1] + 0,52 y[n 2] + 0,3 y[n 3] =
b. funcia de transfer: H ( z ) = = 0,16 x[n] 0,48 x[n 1] + 0,48 x[n 2] 0,16 x[n 3]
1 1,8 cos( / 16) z 1 + 0,81z 2
4. y[n] + 0,9 y[n 2] = 0,3 x[n] + 0,6 x[n 1] + 0,3 x[n 2]
c. ecuaia cu diferene finite:
y[n] + 0.1 y[n 1] + 0.1 y[n 3] + 0.1 y[n 4] = 0,3 x[n] + 0,6 x[n 1] + 0,6 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
b=[1,0.5]; 1
a=[1,-1.8*cos(pi/16),0.81];
1
6. H ( z ) =
0.8
1 0,77 z 1 + 0,44 z 3
zplane(b,a)
7. H ( z ) = 1 1,27 z 1 + 0,81z 2 0,5 z 3 + 0,125 z 4 0,3z 7
0.6

0.4

Imaginary part
0.2
La intrarea acestor sisteme se pot aplica oricare din semnalele de intrare de mai
jos:
0

I. x1[n] = [n]
-0.2

-0.4 pentru 0 n 40
-0.6
II. x2 [n] = u[n] pentru 0 n 40
-0.8

n ,0 n 10
III. x3 [n] =
-1

20 n ,11 n 20
-1 -0.5 0 0.5 1
Real part

b=[1,1,0.25]; n
IV. x4 [n] = sin pentru 0 n 20
5
1
zplane(b,a)
0.8

0.6

0.4
a) S se determine rspunsul acestor sisteme la semnale de intrare IIV i s se
reprezinte grafic n domeniul timp (folosind subplot) semnalul de intrare,
Imaginary part

0.2
2
0

-0.2 funcia pondere a sistemului i semnalul de ieire.


-0.4 b) Pentru fiecare caz analizat s se reprezinte grafic n domeniul frecven
-0.6
(folosind subplot) semnalul de intrare, funcia de transfer a sistemului i
-0.8

-1
semnalul de ieire.
-1 -0.5 0
Real part
0.5 1 c) S se reprezinte diagramele poli-zerouri asociate sistemelor 17.
// se observ ordinul de multiplicitate ale zeroului. Tema de cas
b=[0.3,0.6,0.6]; 1

0.8 1. Pentru semnalele primite ca tema la lucrarea 1 s se calculeze transformata


a=[1,0.1,0,0.1,0.1]; 0.6 Fourier discret folosind funcia fft.
zplane(b,a) 0.4
Obs. Semnalul 3 de tip dreptunghiular multinivel aleator se va nlocui cu
Imaginary part

0.2

0
semnal multinivel periodic (obinut prin repetarea aceleiai succesiuni de
-0.2 niveluri).
-0.4 Semnalul 8 de tip sinusoidal de frecven variabil se va nlocui cu un
-0.6

-0.8
semnal sinusoidal de perioad 2.5 ms i amplitudine 3 limitat superior la
-1
valoarea maxim 2.
-1 -0.5 0 0.5 1

47 Real part
48
2. SEMNALE I SISTEME N TIMP DISCRET 2. SEMNALE I SISTEME N TIMP DISCRET

Lungimea N a TFD va fi aleas o putere a lui 2 (128, 256, 512 sau 1024) mai b0 + b1 z 1 + b2 z 2
mic dect lungimea secvenei. c) Se consider sistemul discret cu funcia de transfer H ( z ) =
1 + a1 z 1 + a2 z 2
avnd zerourile zk determinate la punctul b) i polii de forma p1 = zk , 0.7<<1
S se reprezinte grafic:
1) Spectrul de amplitudini (polii au acelai argument ca zerorurile dar sunt de modul subunitar).
a) n funcie de indicele k al TFD calculat. k=0N-1. Determinai expresia teoretic a coeficienilor i scriei expresiile H(z)
b) n funcie de pulsaii normate [-, ]. i H (e j ) .
c) n funcie de frecvena normat [-0.5, 0.5]. Calculai toate zerourile i toi polii funciei H(z) i reprezentai grafic
d) n funcie de frecvena nenormat [-Fs/2 Fs/2]. diagrama poli/zerouri. Se va alege 0.7<<1.
2) Spectrul de amplitudini n dB n funcie de frecvene normate. Reprezentai grafic rspunsul n frecven al sistemului. Cum se modific
3) Spectrul de faze n funcie de frecvene normate. rspunsul n frecven dac polii se apropie de cercul de raz unitate
(1)?
S se reia reprezentarea spectrelor pentru lungimea N a TFD aleas astfel ca s Reprezentai grafic rspunsul la impuls al sistemului.
ndeplineasc condiia N = k T FS , k (N s fie de ordinul sutelor, mai mic Calculai ieirea sistemului dac la intrare se aplic semnalul x[n].
dect lungimea secvenei). Explicai diferenele care apar ntre spectre n cele Reprezentai spectrul semnalului de la ieire n frecvene nenormate i n
dou situaii (dei se reprezint spectrul aceluiai semnal). pulsaii normate.

3. Reluai problema 2 nlocuind semnalul v[n] cu un semnal vocal. (se va folosi


2. exemplul din arhiva demo1.zip aflat pe site-ul laboratorului).
a) S se genereze urmtorul semnal discret: x[n] = s[n] + v[n] unde
v[n] este un semnal aleator cu distribuie normal (gaussian).
s[n] este un semnal sinusoidal de amplitudine 2 i frecvena F0 aleas
aleator n intervalul [FS/10, FS/3]. Frecvena de eantionare FS = 8kHz.
S se reprezinte semnalul x[n] n domeniul timp i spectrul semnalului n
frecvene nenormate i n pulsaii normate. Identificai din spectru pulsaia 0
corespunztoare frecvenei F0 a componentei sinusoidale de la intrare.

b) Se consider sistemul discret cu funcia de transfer H ( z ) = b0 + b1 z 1 + b2 z 2


avnd atenuare infinit n 0 determinat la punctul a). Atenuare infinit
nseamn ctig 0 adic H (e j ) = 0 deci z1 = e j0 este zerou al lui H(z).
0

Determinai zerourile astfel nct funcia H(z) s aib coeficieni reali i


scriei expresiile teoretice ale lui H(z) i H (e j ) .
Reprezentai grafic diagrama poli-zerouri.
Reprezentai grafic rspunsul n frecven al sistemului.
Reprezentai grafic rspunsul la impuls al sistemului.
Calculai ieirea sistemului dac la intrare se aplic semnalul x[n].
Reprezentai spectrul semnalului de la ieire n frecvene nenormate i n
pulsaii normate.

49 50

S-ar putea să vă placă și