Documente Academic
Documente Profesional
Documente Cultură
x[n]
N1 n N 2
(2.1)
n MATLAB aceste secvene se pot defini ca vectori linie sau coloan, avnd elemente reale sau complexe. O prim limitare apare din faptul c aceti vectori sunt de lungime finit n timp ce n problemele de prelucrarea numeric a semnalelor se poate lucra cu secvene de lungime infinit.
2.1.1. Definirea semnalelor n timp discret
n studiul semnalelor i sistemelor n timp discret se utilizeaz cteva secvene de baz ce vor fi prezentate n continuare, mpreun cu modul lor de definire n MATLAB.
Impulsul unitate Din punct de vedere matematic este definit astfel: 1 , n = 0 [ n] = 0 , n 0 Utiliznd proprietatea de deplasare n timp se poate scrie c 1 , n = n0 [ n n0 ] = 0 , n n0
27
(2.2)
(2.3)
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 %-sintaxe: %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] %-parametrii de intrare: %li=limita inferioara a suportului temporal; %ls=limita superioara a suportului temporal; %k=indicele din delta(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 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
Exemple: Utiliznd funcia MATLAB impuls creat anterior, s se defineasc i s se reprezinte grafic secvenele: 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 Utiliznd 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 funcie MATLAB pentru definirea secvenelor 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
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 secvenele: 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. Exerciii: S se defineasc i s se reprezinte grafic urmtoarele secvene: 1. x1[n] = [n] [n 1] pentru 2. x2 [n] = [n] 0,5 [n 1] + 0,3 [n 2] 2 [n + 1] pentru 3. x3 [n] = u[n] + 0,5u[n 4] 0,5u[n + 4] pentru 4. x4 [n] = [n 1] + u[n 5] + [n + 2] 2 [n 9] pentru
10 n 10 10 n 10 10 n 10 10 n 20
Produsul de convoluie liniar a dou secvene numerice x1[n] i x2[n] este definit astfel: x[n] = x1[n] x2 [n] =
k =
x1[k ] x2 [n k ]
(2.6)
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 poate fi zero (se efectueaz o indexare cu 1) atunci definiia de mai sus devine: x[n + 1] = x1[k + 1] x2 [n k ]
k =0 N 1
(2.7)
31
E2. Exerciii: S se calculeze i s se reprezinte grafic (ca n exemplul precedent) produsul de convoluie liniar a urmtoarelor perechi de secvene:
x2 [n] = 10 n x2 [n] = [n 5]
pentru 0 n 20 pentru 0 n 20
x2 [n] = (1) n
pentru 0 n 20
Transformata Fourier n timp discret (DTFT Discrete Time Fourier Transform) a unei secvene x[n] este dat de relaia:
X (e j ) = x[n]e jn
n
(2.8)
F . FS F este frecvena nenormat (exprimat n Hz) iar FS este frecvena de eantionare. F f = Similar, frecvena normat este: . FS unde este pulsaia normat:
= 2
Funcia X (e j ) este periodic de perioad 2 , deci este suficient s cunoatem comportarea sa n intervalul [ , ) (interval de baz). Datorit faptului c aceast funcie este continu, variabila putnd lua o infinitate de valori, nu este posibil o implementare pe o main de calcul. Pentru a realiza totui o analiz n frecven se utilizeaz transformata Fourier discret TFD (DFT Discret Fourier Transform), obinut prin discretizarea variabilei pe intervalul [0,2 ) n N puncte: k k = 2 , cu k = 0,1,, N 1 . N Astfel, transformata Fourier discret a unei secvene x[n] este dat de relaia:
X [k ] = x[n]e
n
2 kn N
cu
k = 0,1,, N 1
(2.9)
32
n figur sunt prezentate reprezentrile spectrului unui semnal discret n funcie de pulsaie sau frecven normat i corespondena cu frecvena analogic. De asemenea se observ corespondena ntre componentele spectrale de indice k calculate cu TFD i spectrul reprezentat n pulsaii normate.
X a ( j )
S 2
-max -Fmax 0 0 max Fmax FS/2 FS
S 2
S > 2 max
[rad/s] F[Hz]
X ( e j )
=
f =
FS F FS
X (k )
k = 0,..., N 1
k = 2
k N
k
0 123 N/2 N-1
n MATLAB, pentru calculul transformatei Fourier discrete se folosete funcia fft. Denumirea sa reprezint prescurtarea de la Fast Fourier Transform (transformata Fourier rapid) i indic faptul c este folosit pentru calcul un algoritm rapid.
Sintaxe: y = fft(x) dac x este un vector se returneaz un vector y de aceeai dimensiune cu vectorul x ce conine valorile transformatei Fourier discrete aplicat elementelor vectorului x; lungimea transformatei Fourier (numrul de puncte
33
N n care se calculeaz transformata) este egal n acest caz cu lungimea vectorului x. dac x este o matrice se va returna matricea y de aceeai dimensiune cu matricea x; coloana i din matricea y va conine valorile transformatei Fourier discrete aplicat elementelor coloanei i din matricea x.
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. Exemple: S se calculeze transformata Fourier discret a secvenei: 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 obine 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 numr de puncte egal cu lungimea vectorului x1 (vezi sintaxa de la fft); pentru o mai bun reprezentare vom efectua calculul ntr-un numr mai mare de puncte (N = 512): X1=fft(x1,512); figure(3),plot(abs(X1)),grid
10 9 8 7 6 5 4 3 2 1 0
100
200
300
400
500
600
// Aceast reprezentare corespunde ns intervalului de frecven [0,2 ) (pe abscis avem numrul de puncte al vectorului X1 pentru c n sintaxa funciei plot nu s-a specificat nimic altceva). De obicei se dorete ns reprezentarea n intervalul de baz [ , ) . Avnd n vedere faptul c funcia este periodic de perioad 2 atunci reprezentarea din intervalul [ ,0) corespunde cu reprezentarea din intervalul [ ,2 ) . Prin urmare trebuie realizat o inversare a
34
celor dou jumti ale vectorului X1. Acest lucru se realizeaz n MATLAB prin utilizarea comenzii fftshift (schimb ntre ele cele dou jumti ale 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 numr 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 9 8 7 6 5 4 3 2 1 0 -4
-3
-2
-1
// n figura 4 s-a reprezentat spectrul de amplitudini iar n figura 5 se va reprezenta spectrul de faz calculat cu ajutorul funciei angle(). figure(5),plot(w,fftshift(angle(X1))),grid
3 2
-1
-2
-3 -4
-3
-2
-1
// n final putem reprezenta prile real i imaginar ale TFD observndu-se simetria, respectiv antisimetria acestora. figure(6) subplot(2,1,1),plot(w,fftshift(real(X1))),grid subplot(2,1,2),plot(w,fftshift(imag(X1))),grid
10 5
-5 -4 10 5 0 -5 -10 -4
-3
-2
-1
-3
-2
-1
35
Observaii: Reprezentarea spectrelor a fost fcut n funcie de pulsaia normat [ , ) . Valorile calculate n X1=fft(x1,512) reprezint spectrul calculat n k k = 2 , cu k = 0,1,, N 1 . Astfel, numrul de puncte N n care se N calculeaz fft determin rezoluia spectral. Cu ct N este mai mare cu att aproximarea spectrului de frecvene continue X (e j ) este mai bun. Dac lungimea secvenei x[n] este mai mic dect N, secvena se completeaz cu zeroruri, spectrul calculat reprezentnd convoluia ntre spectrul secvenei de lungime infinit i spectrul funciei poart de lungime egal cu a secvenei date. Spectrul calculat cu funcia fft poate fi reprezentat i n funcie de o indicele TFD: k = 0,1,, N 1 . F o frecvena normat: f = = , f [0.5,0.5) . FS 2 f = -0.5:1/N:0.5-1/N; o frecvena nenormat F = f FS [Hz]. F [ FEs / 2, FEs / 2) . E3. Exerciii: 1. a) S se genereze secvena discret s[n] obinut prin eantionarea cu frecvena de eantionare FS = 8kHz a semnalului s (t ) = sin ( 2F0t ) de frecven F0 = 500Hz i durat tMAX = 40ms . Cte eantioane are secvena discret? 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 d) S se reprezinte spectrul de amplitudini n pulsaii normate [ , ) e) S se reprezinte spectrul de amplitudini n frecvene normate f [ 0.5,0.5) f) S se reprezinte spectrul de amplitudini n frecvene nenormate [Hz] 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 frecvena normat. Fiecare spectru va fi reprezentat ntr-o figur separat (funcia figure()). Graficul va fi completat cu funciile: grid, title i xlabel. 2. Pentru programul de la exerciiul anterior modificai pe rnd urmtorii parametri i explicai schimbrile aprute n reprezentarea spectrului semnalului. a) Frecvena semnalului F0 = 200Hz . b) Numrul de puncte al TFD N=1024 (pentru semnalul iniial cu F0 = 500Hz ).
36
S{}
y[n]
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 ieirea sistemului dac la intrare s-a aplicat impulsul unitate [n] : h[n] = S{ [n]} Astfel, un alt mod de a reprezenta simbolic un sistem n timp discret este: x[n]
h[n]
(2.11)
y[n]
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] : y[n] = x[n] h[n] = x[k ]h[n k ]
k
(2.12)
SDLIT pot fi reprezentate prin ecuaii cu diferene finite cu coeficieni constani, care dau legtura ntre secvena de intrare i cea de ieire:
k =0
ak y[n k ] = bk x[n k ]
k =0
(2.13)
Pentru analiza n frecven a SDLIT reamintim formula pentru transformata Z a unei semnal n timp discret x[n] : X ( z ) = x[n]z n
n
(2.14)
37
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 secvenei de intrare (excitaia x[n] ), reprezentnd de fapt transformata Z a funciei pondere h[n] :
H ( z) =
(2.15)
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 scrie astfel:
H ( z) =
1 + ak z k
k =1
k =0 N
bk z k
(2.16)
n care s-a presupus c a0 = 1 . Rdcinile polinomului de la numrtor se 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 trebuie s fie situai n interiorul cercului de raz unitate (modulul lor s fie subunitar).
[h,t] = impz(b,a,n) se precizeaz numrul de puncte n n care se dorete a fi calculat rspunsul la impuls h; vectorul coloan t va conine valorile acestor puncte (acestea vor fi 0, 1, 2, ..., n-1); parametrul de ieire t poate s lipseasc din sintax n cazul n care ne intereseaz doar rspunsul la impuls h. [h,t] = impz(b,a,n,Fs) aceleai considerente ca n sintaxa precedent cu deosebirea c cele n valori din vectorul t vor fi distanate cu pasul 1/Fs (0, 1/Fs, 2/Fs, ..., (n-1)/Fs). [h,t] = impz(b,a,[],Fs) aceleai considerente ca n sintaxa precedent cu deosebirea c se alege n mod implicit numrul de puncte n care se calculeaz rspunsul la impuls h. impz(b,a,...) reprezint grafic rspunsul la impuls calculat; punctele de suspensie au fost introduse pentru a sugera faptul c se poate folosi oricare combinaie a parametrilor de intrare din sintaxele precedente. Exemple: S se determine i s se reprezinte grafic funcia 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]
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
n mod asemntor procedm i pentru cel de al doilea exemplu: b=[1,0.5]; a=[1,-1.8*cos(pi/16),0.81]; h=impz(b,a); // vectorul coloan h va contine valorile eantioanelor rspunsului la impuls al sistemului definit prin funcia de transfer H ( z ) din exemplu. impz(b,a),grid
5 4 3
-1
10
20
30
40
50
60
70
80
90
coeficienii ak ai sistemului la valoarea primului element din vectorul a (astfel primul element din vectorul a devine 1); vectorul obinut y reprezint rspunsul sistemului definit de coeficienii din vectorii b i a, dac la intrare este aplicat secvena definit de vectorul x. dac x este o matrice atunci se returneaz o matrice y de aceeai dimensiune cu matricea x; funcia filter va opera n acest caz pe coloane: coloana k din matricea y reprezint rspunsul sistemului definit de coeficienii din vectorii b i a, dac la intrare este aplicat coloana k din matricea x.
Exemple: S se determine i s se reprezinte grafic rspunsul 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 conin valorile coeficienilor bk i ak . x=treapta(0,40,0)-treapta(0,40,10); // s-a definit vectorul x corespunztor secvenei de intrare. y=filter(b,a,x); // s-a calculat rspunsul sistemului la secvena 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 25 30 35 40
0.5
0 0 5 5 10 15 20 h[n] 25 30 35 40
-5 40 20 0 -20
10
20
30
40 y[n] 50
60
70
80
90
10
15
20
25
30
35
40
aceleai considerente ca n cazul primei sintaxe cu deosebirea c valorile celor n puncte de calcul, coninute n vectorul W, vor fi cuprinse ntre 0 i 2; dac n nu se specific se alege n mod implicit 512.
[H,F] = freqz(b,a,n,whole,Fs) aceleai considerente ca n cazul celei de a doua sintaxe cu deosebirea c valorile celor n puncte de calcul, coninute 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) rspunsul n frecven H se calculeaz la frecvenele specificate n vectorul W; valorile acestor frecvene 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) rspunsul n frecven H se calculeaz la frecvenele specificate n vectorul F; valorile acestor frecvene trebuie s fie cuprinse ntre 0 i Fs (frecvena de eantionare n Hz). freqz(b,a,...) reprezint grafic caracteristicile amplitudine-frecven i faz-frecven ale rspunsului n frecven calculat; punctele de suspensie au fost introduse pentru a sugera faptul c se poate folosi oricare combinaie a parametrilor de intrare din sintaxele precedente. Exemple: S se determine rspunsul 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 rspunsului n frecven calculat.
b=[0.3,0.6,0.3]; a=[1,0.9]; [H,W]=freqz(b,a); // s-a calculat rspunsul n frecven H n 512 puncte de frecven cuprinse n intervalul [0, ] . Reprezentrile 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
figure(2)freqz(b,a)
0.1
0.2
0.8
0.9
0.1
0.2
0.8
0.9
n mod asemntor procedm i pentru cel de al doilea exemplu: b=[0.634,0,-0.634]; a=[1,0,-0.268]; [H,W]=freqz(b,a); freqz(b,a)
dac b i a sunt doi vectori linie ce conin valorile coeficienilor bk i ak atunci se va afia diagrama poli-zerouri a funciei de transfer H ( z ) (calculndu-se rdcinile polinoamelor de la numrtorul i numitorul funciei de sistem). Reprezentarea polilor i zerourilor unei funcii de sistem (diagrama polizerouri) se face n planul Z, n raport cu cercul de raz unitate, avnd pe abscis partea real i pe ordonat partea imaginar. Fiind privite deci ca numere complexe, valorile respective pot fi exprimate n form polar sau form cartezian. Orice numr complex z poate fi exprimat n form polar astfel:
z = z e
j
(2.17)
n care: - z = modulul numrului complex z ; - = argumentul (faza) numrului complex z ; n form cartezian numrul complex z se exprim sub forma:
z = real ( z ) + j imag ( z )
Im
(2.18)
1
imag{z} |z| z
-1
real{z}
Re
-1
Reprezentarea n planul Z a unui numr complez z Atenie: n cazul n care dispunem de valorile coeficienilor bk i ak i dorim s determinm valorile polilor i zerourilor funciei de sistem respective se poate utiliza funcia MATLAB roots, care calculeaz rdcinile unui polinom dac sunt precizai coeficienii acestuia.
45
Dac se dorete determinarea valorilor coeficienilor bk i ak , avnd valorile polilor i zerourilor funciei de sistem, putem utiliza funcia MATLAB poly, care calculeaz coeficienii unui polinom dac sunt precizate rdcinile acestuia. Verificai sintaxele celor dou funcii folosind comanda help.
Exemple:
1 j 1. Funcia de transfer a unui SDLIT are un zerou de valoare r = e 3 . tiind c 2 2 1 1 j3 1 aceast funcie 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 funciei de transfer (s se gseasc valorile coeficienilor 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 conin valorile zerourilor i respectiv polilor funciei de transfer. zplane(z,p)
1.5 1
Imaginary part
0.5
0 -0.5
-1
-1.5
-2
-1.5
-1
-0.5
1.5
// s-a reprezentat diagrama poli-zerouri. b=poly(z) b = 1.0000 -2.5000 5.2500 -2.5000 1.0000 a=poly(p) a = 1.0000 0.3333 0.1111 // s-au calculat valorile coeficienilor bk i ak ai funciei de sistem. Forma nefactorizat a acestei funcii va fi: 1 2,5 z 1 + 5,25 z 2 2,5 z 3 + z 4 H ( z) = 1 0,3333 z 1 + z 2
46
2. S se reprezinte diagramele poli-zerouri pentru sistemele n timp discret definite prin: 1 + 0,5 z 1 a. funcia de transfer: H ( z ) = 1 1,8 cos( / 16) z 1 + 0,81z 2 (1 + 0,5 z 1 ) 2 b. funcia de transfer: H ( z ) = 1 1,8 cos( / 16) z 1 + 0,81z 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]
b=[1,0.5]; a=[1,-1.8*cos(pi/16),0.81]; zplane(b,a)
Imaginary part 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -1 -0.5 0 Real part 0.5 1
b=[1,1,0.25]; zplane(b,a)
1 0.8 0.6 0.4 Imaginary part 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -1 -0.5 0 Real part 0.5 1 2
47
0 Real part
0.5
E4. Exerciii: Se dau urmtoarele 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 1 0,8 z 1 + 0,64 z 2 0,4 z 3 + 0,024 z 4 1 6. H ( z ) = 1 1 0,77 z + 0,44 z 3 7. H ( z ) = 1 1,27 z 1 + 0,81z 2 0,5 z 3 + 0,125 z 4 0,3z 7 La intrarea acestor sisteme se pot aplica oricare din semnalele de intrare de mai jos: I. x1[n] = [n] pentru 0 n 40 pentru 0 n 40 II. x2 [n] = u[n] ,0 n 10 n III. x3 [n] = 20 n ,11 n 20 n IV. x4 [n] = sin pentru 0 n 20 5 5. H ( z ) = 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, funcia pondere a sistemului i semnalul de ieire. b) Pentru fiecare caz analizat s se reprezinte grafic n domeniul frecven (folosind subplot) semnalul de intrare, funcia de transfer a sistemului i semnalul de ieire. c) S se reprezinte diagramele poli-zerouri asociate sistemelor 17.
Tema de cas 1. Pentru semnalele primite ca tema la lucrarea 1 s se calculeze transformata Fourier discret folosind funcia fft. Obs. Semnalul 3 de tip dreptunghiular multinivel aleator se va nlocui cu semnal multinivel periodic (obinut prin repetarea aceleiai succesiuni de niveluri). Semnalul 8 de tip sinusoidal de frecven variabil se va nlocui cu un semnal sinusoidal de perioad 2.5 ms i amplitudine 3 limitat superior la valoarea maxim 2.
48
Lungimea N a TFD va fi aleas o putere a lui 2 (128, 256, 512 sau 1024) mai mic dect lungimea secvenei. S se reprezinte grafic: 1) Spectrul de amplitudini a) n funcie de indicele k al TFD calculat. k=0N-1. b) n funcie de pulsaii normate [-, ]. c) n funcie de frecvena normat [-0.5, 0.5]. d) n funcie de frecvena nenormat [-Fs/2 Fs/2]. 2) Spectrul de amplitudini n dB n funcie de frecvene normate. 3) Spectrul de faze n funcie de frecvene normate. S se reia reprezentarea spectrelor pentru lungimea N a TFD aleas astfel ca s ndeplineasc condiia N = k T FS , k (N s fie de ordinul sutelor, mai mic dect lungimea secvenei). Explicai diferenele care apar ntre spectre n cele dou situaii (dei se reprezint spectrul aceluiai semnal).
2.
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). 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.
0
49
b0 + b1 z 1 + b2 z 2 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 (polii au acelai argument ca zerorurile dar sunt de modul subunitar). Determinai expresia teoretic a coeficienilor i scriei expresiile H(z) i H (e j ) . Calculai toate zerourile i toi polii funciei H(z) i reprezentai grafic diagrama poli/zerouri. Se va alege 0.7<<1. Reprezentai grafic rspunsul n frecven al sistemului. Cum se modific rspunsul n frecven dac polii se apropie de cercul de raz unitate (1)? 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.
3. Reluai problema 2 nlocuind semnalul v[n] cu un semnal vocal. (se va folosi exemplul din arhiva demo1.zip aflat pe site-ul laboratorului).
50