TTI_1_2rom

48
Lucrare de laborator nr.1 FORMAREA SEMNALELOR CONTINUE ŞI DISCRETE ÎN SISTEMUL MATLAB 1.1. Scopul lucrării: Studierea posibilităţilor de bază a sistemului MATLAB după modelarea diferitor forme a semnalelor, atât în formă continuă(analogică) cît şi în formă discretă, necesare pentru cercetarea particularităţilor acestor semnale, în particular a caracteristicilor lor spectrale, şi utilizarea lor pentru studierea diferitor sisteme de prelucrare a semnalelor şi de transmitere a informaţiei. 1.2. Îndrumări metodice Obiectul de bază a operaţiilor în MATLAB este o matrice dreptunghiulară a numerelor reale sau complexe, sau, ca caz particular ,vectorul acestor numere. Pachetul de programe pentru prelucrarea numerică a semnalelor (Signal Processing Toolbox –SPTB) are un set larg de funcţii pentru generarea semnalelor, majoritatea cărora necesită stabilirea prealabilă a vectorului momentelor de timp t sau n. Ca să formăm vectorul de

description

dada

Transcript of TTI_1_2rom

LUCRARE DE LABORATOR

Lucrare de laborator nr.1

FORMAREA SEMNALELOR CONTINUE I DISCRETE N SISTEMUL MATLAB

1.1. Scopul lucrrii: Studierea posibilitilor de baz a sistemului MATLAB dup modelarea diferitor forme a semnalelor, att n form continu(analogic) ct i n form discret, necesare pentru cercetarea particularitilor acestor semnale, n particular a caracteristicilor lor spectrale, i utilizarea lor pentru studierea diferitor sisteme de prelucrare a semnalelor i de transmitere a informaiei.

1.2. ndrumri metodice

Obiectul de baz a operaiilor n MATLAB este o matrice dreptunghiular a numerelor reale sau complexe, sau, ca caz particular ,vectorul acestor numere. Pachetul de programe pentru prelucrarea numeric a semnalelor (Signal Processing Toolbox SPTB) are un set larg de funcii pentru generarea semnalelor, majoritatea crora necesit stabilirea prealabil a vectorului momentelor de timp t sau n. Ca s formm vectorul de timp t cu pasul T=1ms pe intervalul de la 0 pn la 1s folosim comanda:

t=0:0.001:1;

Aceasta corespunde 1000 eantioanelor pe secund sau frecvenei de eantionare de 1000 Hz. Pentru ca s formm vectorul cu n valori de timp pentru semnalul descris n domeniul de timp discret de la n=0 pn la n=1000, folosim comanda: n=0:1000;

Pentru valorile date t sau n putem forma semnalul care ne intereseaz.

n MATLAB semnalul n domeniul de timp discret se prezint precis, pentru c valorile semnalului sunt descrise ca elementele unui vector. Semnalul n domeniul de timp continuu poate fi prezentat doar aproximativ cu ajutorul interpolrii valorilor sale n intervalele dintre eantioanele sale discrete. De aceea intervalul dintre eantioane trebuie s fie destul de mic ca s se garanteze c eantioanele vor reda destul de precis forma semnalului.

1.2.1. Formarea semnalelor impuls unitaren pachetul SPTB sunt prevzute cteva proceduri, care formeaz consecutivitatea datelor, care prezint nite semnale impuls unitare de forme tipice. Impulsul unitar de form dreptunghiular se poate de format cu ajutorul procedurii rectpuls, de tipul: t=rectpuls(t,w) care permite de a forma vectorul y a valorilor semnalului a aa impuls de amplitudine unitate, cu limea w, centrat fa de t=0 dup vectorul dat t a momentelor de timp. Dac limea impulsului w nu este dat, atunci valoarea ei se ia egal cu 1. n fig.1 este prezentat rezultatul procesului, care const din trei impulsuri dreptunghiulare consecutive de diferite nlimi i limi, dup consecutivitatea comenzilor:

t=0:0.01:10;

y=0.75*rectpuls(t-3.2)+1.4*rectpuls(t-5.1)+

+0.5*rectpuls(t-8.04);

plot(t,y),grid; xlabel('timpul(s)')

ylabel('procesul de ieire y(t)')

Impulsurile de form triunghiular cu amplitudine unitate se pot realiza cu ajutorul procedurii tripuls, care are forma: y=tripuls(t,w,s)

Argumentele y, t, w, au acelai sens ca i mai sus. Argumentul S () determin nclinarea triunghiului. Dac S=0, sau dac nu este indicat, atunci impulsul triunghiular este simetric.

Funcia y=tripuls(t,w) formeaz un impuls simetric de amplitudine unitate w centrat fa de t=0. Prezentm un exemplu de formare a procesului, care const din trei impulsuri:

t=0:0.01:10;

y=0.8*tripuls(t-1,0.5)+1.4*tripuls(t-3,0.8,1)+

+0.5*tripuls(t-5,0.5,-1);

plot(t,y); grid

xlabel('timpul (s)')

ylabel('y(t)')

Formarea impulsului care este sinusoida modulat de funcia Gauss se execut cu procedura gauspuls, adresarea ctre ea are forma:

yi=gauspuls(t,fc,bw)

yi=gauspuls(t,fc,bw,bwr)

[yi,yq]=gauspuls()

[yi,yq,ye]=gauspuls()

tc=gauspuls(cutoff,fc,bw,bwr,tpe)Funcia yi=gauspuls(t,fc,bw) formeaz secvena eantioanelor semnalului, calculate n momentele de timp date n vectorul t; fc determin frecvena sinusoidei; bw lrgimea benzii de frecven a semnalului. De exemplu , se poate lua fc=1000Hz i bw=0.5.

Funcia yi=gauspuls(t,fc,bw,bwr) calculeaz secvena eantioanelor semnalului cu urmtorii parametri: amplitudinea=1,limea benzii de frecven=100bw. Graniele benzii de frecven se determin de nivelul de atenuare bwr(dB) n raport cu amplitudinea normat a semnalului. Parametrul bwr trebuie s fie negativ, de exemplu bwr=-6dB.

Funcia [yi,yq]=gauspuls() calculeaz doi vectori. Vectorul yi conine eantioanele semnalului iniial ,iar vectorul yq conine eantioanele semnalului n care faza sinusoidei este schimbat cu 90 de grade.

Funcia [yi,yq,ye]=gauspuls() calculeaz adugtor semnalul ye.

Funcia tc=gauspuls(cutoff,fc,bw,bwr,tpe) calculeaz timpul tc, corespunztor momentului de timp n care amplitudinea semnalului scade pn la trei (dB).Mrimea pe trebuie s fie negativ, de exemplu tpe=-60dB.

Exemplu:

t=0:0.01:10;

yi=0.8*gauspuls(t-4,1,0.5);

plot(t,yi),grid

xlabel('timpul(s)')

ylabel('yi(t)')Procedura sinc permite de a calcula valoarea vectorului funciei sinc(t), care se determin de formulele:

care prezint o transformare invers Fourier a impulsului dreptunghiular cu nlimea 1 i limea 2:sinc(t)=1/2ejtd

EMBED Equation.3 Exemplu:

EMBED Equation.3

EMBED Equation.3

EMBED Equation.3 t=0:0.01:50;

yi=0.9*sinc(pi*(t-25)/5);

plot(t,yi),grid

xlabel('timpul(s)')

ylabel('yi(t)')

1.2.2. Formarea oscilaiilor periodice

Formarea oscilaiilor care constau din numrul finit a componentelor armonice, adic aa numitor oscilaii poliarmonice, se poate realiza cu ajutorul procedurilor obinuite sin(x) i cos(x).

De exemplu:

t=0:0.01:50;

y1=0.6*sin(pi*t/5);

plot(t,y1),grid

xlabel('timpul(s)'); ylabel('y1(t)')

Generarea secvenei impulsurilor dreptunghiulare se face cu ajutorul procedurii square. Adresarea ctre ea are forma:

y=square(t)

y=square(t,duty)

Funcia square (t) formeaz oscilaii dreptunghiulare cu perioada 2 i amplitudinea 1.

Funcia y=square(t,duty) formeaz o secven de impulsuri cu durata semiundei pozitive, care se determin de parametrul duty n procente de la perioad. De obicei se ia duty=50. S dm un exemplu de utilizare a acestei proceduri:

t=-20:0.1:20;

y=square(t,20);

plot(t,y),axis([min(t) max(t)-22]),grid

Formarea semnalelor dinte de ferestru i triunghiulare cu amplitudinea 1 i perioada 2 se face cu procedura sawtooth :

x=sawtooth(t)

x=sawtooth(t,width)

Funcia x=sawtooth(t) formeaz semnal de forma dinte de ferestru, care ia valoarea -1 n momentul 2 i crescnd liniar pe intervalul 2 cu panta 1/.

Funcia x=sawtooth(t,width) formeaz semnalul dinte de ferestru modificat. Parametrul width se d n diapazonul de la 0 la 1 i determin o parte a perioadei, n care semnalul crete. Semnalul crete de la 1 pn la 1, pe intervalul de la 0 pn la 2*width, iar pe urm scade de la 1 pn la 1 pe intervalul de la 2*width pn la 2. Dac width=0.5, atunci se formeaz o und simetric. Funcia sawtooth(t,1) este echivalent cu funcia sawtooth(t). Aducem un exemplu de generare a unui semnal de tip dinte de ferestru pe intervalul 0-6:

t=0:0.1:6*pi;

x=sawtooth(t);

plot(t,x)

Procedura pulstran permite de a forma oscilaii, care sunt secvene a impulsurilor dreptunghiulare, triunghiulare sau gaussiene. Adresarea ctre ea are forma:

y=pulstran(t,d,func)

y=pulstran(t,d,func,p1,p2,)

y=pulstran(t,d,p,Fs)

y=pulstran(t,d,p)Aici d determin valoarea vectorului acelor momente de timp unde trebuie s fie centrele impulsurilor corespunztoare; parametrul func determin forma impulsului i poate avea una din urmtoarele sensuri: rectpuls (pentru impuls dreptunghiular), tripuls (pentru impuls triunghiular), gauspuls(sinusoid modulat cu funcia gauss). Semnalul de ieire y se calculeaz pentru valorile argumentului, date n vectorul t, dup formula:

y=funct(t-d(1)+func(t-d(2)+...

Numrul impulsurilor n diapazonul dat a argumentelor este length(d). Parametrii p1, p2... determin parametrii necesari a impulsului n dependen de forma de adresare ctre procedura, care determin acest impuls.

Funcia y=pulstran(t,d,p,Fs) permite de a determina impulsul cu secvena eantioanelor date n vectorul p. Frecvena de discretizare este dat de parametrul Fs. La folosirea funciei y=pulstran(t,d,p), frecvena de discretizare se ia egal cu 1Hz. Mai jos sunt prezentate trei exemple de utilizare a procedurii pulstran:

Pentru o consecutivitate de impulsuri dreptunghiulare:

t=0:0.01:50;

d=[0:10:50];

y=0.6*pulstran(t,d,'rectpuls',3);

plot(t,y),grid

Pentru o consecutivitate de impulsuri triunghiulare:

t=0:0.01:50;

d=[0:10:50];

y1=0.8*pulstran(t,d,'tripuls',5);

plot(t,y1),grid

Pentru o consecutivitate de impulsuri gaussiene:

t=0:0.01:50; d=[0:10:50];

y2=0.7*pulstran(t,d,'gauspuls',1,0.5); plot(t,y2),grid

Formarea cosinusoidei frecvena creia se schimb liniar n timp, se face cu ajutorul procedurii chirp:

y=chirp(t,f0,t1,f1)

Ea formeaz eantioanele din semnalul cosinusoidal cu frecvena schimbat liniar pentru momentele de timp date n vectorul t; f0-frecvena momentan n momentul de timp t=0; f1-frecvena momentan n momentul de timp t=1. Frecvenele f0 i f1 se dau n Hz. De exemplu f0=0, t1=1, f1=100.

Exemplu:

t=0:0.001:1;

y=0.8*chirp(t);

plot(t,y),grid

1.3. Lucru pentru acas

Dup literatura recomandat i indicaiile ndrumarului de laborator la lucrarea dat, s se fac cunotin cu metodele de formare a semnalelor tipice descrise mai sus n punctul 2.

1.4. Lucru n laborator

Trebuie de efectuat formarea semnalelor descrise n exemplele de mai jos i de asemenea a unor semnale adugtoare la indicaia profesorului. De verificat cum se schimb forma semnalului generat, la schimbarea unor parametri caracteristici ai lui. De nregistrat i de prezentat n darea de seam la fiecare punct forma de adresare la procedura corespunztoare i oscilograma semnalului format.

n afar de semnalele standarde realizate n SP Toolbox, folosind mijloacele limbajului Matlab este posibil de creat practic un numr nelimitat de semnale diferite.

1.4.1. S se creeze din 256 eantioane o oscilaie armonic cu amplitudinea unitate i perioada de 50 eantioane.

Pentru aceasta n regiunea de comand MATLAB trebuie de cules urmtoarea serie de comenzi:

k=0:255;

x=sin(2*pi*k/50);

plot(x); grid on; title('sine wave');

xlabel('sample number'); ylabel('Amplitude')Prima comand creeaz vectorul k=[0,1,255]. Urmtoarea comand genereaz vectorul x care conine mrimea eantioanelor oscilaiei sinusoidale la un numr corespunztor k. Comanda plot mpreun cu comenzile urmtoare afieaz graficul oscilaiei formate sub forma unui semnal continuu i nu a unei succesiuni de eantioane discrete datorit unirii eantioanelor vecine cu segmente de dreapt. Dac ar fi fost necesar prezentarea graficului sub forma de eantioane discrete, atunci n loc de comanda plot trebuie de folosit comanda stem.1.4.2. S se creeze un semnal ce conine 1024 eantioane a unui proces tranzitoriu a unui sistem oarecare, descris de urmtoarea relaie:

Intervalul de timp ntre eantioanele vecine T=0,001s. Formarea unui aa tip de semnal este posibil cu ajutorul urmtoarei serii de comenzi:

t=0:0.001:1.023;

T=0.001;

k=101:1024;

Z=zeros(1,100);

x=[Z exp(-(k*T-0.1)/0.2).*sin(2*pi*(k*T-0.1)/0.16)];

plot(t,x); grid on; title('Transient process');

xlabel('Time(s)'); ylabel('Amplitude')Prima comand genereaz vectorul valorilor argumentelor timpului care conine 1024 de elemente: 0, 0.001, 0.002, ..., 1.023. n rndul al treilea se instaleaz vectorul k din 924 de numere ale eantioanelor n domeniul de timp unde x(t)(0. Vectorul [Xk] se creeaz prin unirea (concatenarea) vectorului [Zk] ce conine 100 de eantioane nule, creat cu comanda a patra i vectorul valorilor nenule ale eantioanelor X(t) calculate n corespundere cu relaia dat x(t). Aducem aminte c operatorul .* este operatorul nmulirii element cu element a vectorilor sin i exp. Comanda plot are aici dou argumente artnd c se construiete graficul x funcie de t.

1.4.3. S se creeze un semnal n intervalul de timp s care const din suma unei oscilaii armonice cu amplitudinea de 1V i frecvena 50Hz , unei oscilaii sinusoidale cu amplitudinea de 2V i frecvena de 120Hz i a unui semnal de zgomot distribuit normal cu valoarea medie zero i valoarea medie ptratic 0.5V, folosind o frecven de discretizare de 1000Hz, adic intervalul de discretizare T=0.001s.

Setul de comenzi necesar pentru crearea unui astfel de semnal are forma:

t=0:0.001:1;

y=sin(2*pi*50*t)+2*sin(2*pi*120*t);

randn('state',0);

yn=y+0.5*randn(size(t));

plot(t(1:50), yn(1:50));gridConform comenzii plot pe ecran sunt afiate primele 50 de eantioane ale semnalului.

1.4.4. S se creeze n intervalul s semnale sinusoidale de forma: a) 5exp(-6t); b) exp(5t), folosind frecvena eantioanelor fd=1000Hz. Succesiunea comenzilor poate fi urmtoarea:

a) B=5;

a=6;

t=0:0.001:1;

x=B*exp(-a*t);

plot(t,x), gridb) B=1;

a=5;

t=0:0.001:1;

x=B*exp(a*t);

plot(t,x), grid1.4.5. S se creeze un impuls exponenial discret de forma x(n)=Brn, unde B=1, r=0.8 pe intervalul . Pentru aceasta pot fi folosite urmtoarele comenzi:

B=1;

r=0.8;

n=-10:10;

x=B*r.^n;

stem(n,x)Observm c, operatorul .^ nseamn ridicarea la putere element cu element, iar comanda stem reprezint graficul sub forma unei serii de valori discrete, i nu un semnal continuu ca la comanda plot.

1.4.6. S se creeze un semnal sinusoidal discret cu perioada de 12 eantioane i amplitudinea de 2V:

Pentru aceasta poate fi folosit urmtorul set de comenzi:

A=1;

omega=2*pi/12;

n=-10:10;

y=A*sin(omega*n);

stem(n,y)1.4.7. S se creeze un semnal discret exponenial atenuat, pe baza nmulirii exponentei atenuatoare formate n exemplul 4.5 i a semnalului sinusoidal creat n exemplul 4.6, ambele primite pentru intervalul .

Soluie: notnd rezultatul nmulirii cu Z(n) putem folosi urmtoarele comenzi pentru generarea i vizualizarea semnalului:

Z=x.*y;

stem(n,Z)Remarcm c aici nu este necesitatea de a da regiunea de modificare a lui n, deoarece ea este n comenzile pentru formarea semnalelor x i y.

1.4.8. S se creeze urmtoarele serii de impulsuri (, care se descriu, dup cum se tie, de relaia:

(=

a) x1=2((k-3),

;

b) x2=0.6((k),

;

c) x3=1.5((k+7),

Soluie: a) k=1:10;

x1=zeros(size(k));

x1(3)=2;

figure;stem(k,x1);grid;xlabel('k');ylabel('x1(k)') b) k=-10:10;

x2=zeros(size(k));

x2(11)=0.6;

figure;stem(k,x2); grid;

xlabel('k');ylabel('x2(k)')c) k=-10:0;

x3=zeros(size(k));

x3(4)=1.5;

figure;stem(k,x3);grid;

xlabel('k');ylabel('x3(k)')1.4.9. Crearea impulsului dreptunghiular de amplitudine unitate i durata 1s, amplasat simetric n originea de coordonate t=0 descris n intervalul de timp cu pasul T=2ms.

Soluie: impulsul dreptunghiular poate fi creat cu ajutorul diferenei a dou funcii de tip treapt deplasate n timp cu un interval egal cu durata impulsului. Acest semnal poate fi format cu ajutorul urmtorului set de comenzi:

t=-1:0.002:1;

U1=[zeros(1,250), ones(1,751)];

U2=[zeros(1,751), ones(1,250)];

U=U1-U2;

plot(t,U)1.4.10. Crearea unui ir discret de impulsuri dreptunghiulare cu amplitudinea A=1 i viteza unghiular (=(/4 n intervalul se efectueaz cu ajutorul urmtoarelor comenzi:

A=1;

omega=pi/4;

rho=0.5; %parametrul rho determina partea perioadei in care semnalul e pozitiv

n=-10:10;

x=A*square(omega*n*rho);

stem(n,x)Cu toate c n realitate folosim semnale reale, foarte util n teoria semnalelor este faptul c avem posibilitatea de a prezenta semnalul real ca partea real sau imaginar a unui semnal complex. Vom arta mai jos exemple de creare a unor semnale complexe cu separarea prii lor reale i imaginare.

1.4.11. Crearea semnalului exponenial complex . Poate fi folosit urmtorul set de comenzi:

n=0:25;

x=exp(j*n/3);

subplot(2,1,1);

stem(n,real(x));

title('real part');xlabel('index(n)');

subplot(2,1,2);

stem(n,imag(x));

title('imag part');xlabel('index(n)')1.4.12. Crearea semnalului exponenial complex . Pe intervalul :

n=[-10:1:10];alpha=-0.1+0.3j;

x=exp(alpha*n);

subplot(2,2,1);stem(n,real(x));title('real part');xlabel('n');

subplot(2,2,2);stem(n,imag(x));title('imaginare part');

xlabel('n');

subplot(2,2,3);stem(n,abs(x));title('magnitudine');

xlabel('n');

subplot(2,2,4);stem(n,(180/pi)*angle(x));title('phase');

xlabel('n')Lucrare de laborator nr.2

CERCETAREA SPECTRELOR SEMNALELOR

2.1. Scopul lucrrii: Analiza i sinteza semnalelor periodice i aperiodice.

2.2. Analiza spectral a semnalelor cu ajutorul sistemului MATLAB

MATLAB este un sistem de modelare matematic a diferitor procese i sisteme, ce include de asemenea, mijloacele bine dezvoltate ale analizei spectrale a semnalului. n lucrarea de fa se vor analiza doar cteva din aceste mijloace.

Cel mai simplu mod de utilizare a MATLAB-ului pentru calculul spectrelor este utilizarea lui ca calculator pentru calculul spectrelor dup expresiile analitice gata, obinute din analiza teoretic. De exemplu, este necesar de calculat i de construit graficul spectrului impulsului dreptunghiular cu amplitudinea A=1, durata T, situat simetric fa de t=0 (fig.9).

Este cunoscut c spectrul unui astfel de semnal se descrie de expresia:

;

;

Pentru calculul graficului spectrului poate fi utilizat urmtorul program:

f=-10:0.1:10;

T=1; x=pi*T*f+0.001;

% Adugarea valorii foarte mici 0.001este necesar pentru excluderea mpririi la zero n calculele urmtoare la f=0

y=Sa(x);plot(f,y);gridO mult mai mare importan o are utilizarea MATLAB-ului n calculul numeric al spectrelor, bazate pe utilizarea procedurilor, realizate n MATLAB, ale + -

transformatei Fourier discrete(TFD), realizate pe baza unor algoritme foarte efective ale transformatei Fourier rapide(TFR, FFT Fast Fourier Transform).

Adresarea la aceste proceduri are forma:

y=fft(x)

y=fft(x,n)

x=fft(y)

x=fft(y,n)Grupa funciilor fft calculeaz TFD a succesiunilor date de vectorul x, ce se determin de relaia:

unde N=length(x) lungimea vectorului x, folosind algoritmul TFR. Dac x este o matrice, se calculeaz transformata fiecrei coloane.

Cel mai efectiv, adic cu cel mai mic numr de operaii, i implicit timp de calcul, algoritmul TFR lucreaz atunci cnd , unde mun numr ntreg. Ctigul n timpul de calcul dup algoritmul TFR, n acest caz, n raport cu algoritmul clasic TFD poate atinge valoarea:

i pentru N foarte mare poate fi destul de important.

Dac , atunci se utilizeaz descompunerea lui N n factori i realizarea TFR nu n baza 2, ci n alte baze. Aceasta duce la creterea cheltuielilor i a timpului de calcul. Cea mai defavorabil situaie este atunci cnd N este numr prim i nu poate fi descompus n factori. n acest caz se utilizeaz un algoritmul obinuit de calcul al TFD dup formula (31), ce necesit operaii aritmetice n loc de pentru algoritmul TFR, cu condiia c . Ca rezultat volumul calculelor, la lungimea masivului N=1024, va fi mult mai mic dect la valorile lui apropiate N=1019 sau 1013. de aceea uneori este mai convenabil de a completa masivul disponibil de date cu dimensiunea cu un numr oarecare de zerouri, astfel nct (zero padding).

La comanda y=fft(y) se calculeaz TFD din N puncte, independent de lungimea adevrat a masivului x. Dac length(x)n, elementele n plus se terg.

Funcia x=ifft(y) calculeaz TFR invers consecutivitii date n vectorul y n corespundere cu expresia:

(32)

unde N=length(x). Trebuie de remarcat faptul c scrierea formulelor pentru TFD direct (31) i pentru TFD invers (32) se deosebete de cea acceptat n literatur din cauza c indexarea masivelor n MATLAB se ncepe de la 1 i nu de la 0. Dac y este matrice, atunci fiecare coloan se transform separat.

Funcia x=ifft(y,N) efectueaz TFR invers din N puncte. Dac length(y) length(y), elementele de prisos se elimin. Transformata invers se efectueaz dup acelai algoritm ca i pentru funcia fft.

Pentru prezentarea graficelor spectrelor semnalelor n form obinuit, cu deplasarea frecvenei nule n centrul spectrului, se utilizeaz regruparea masivului de ieire al transformatelor Fourier, efectuat n MATLAB cu ajutorul comenzii:

y=fftshift(x).

Dac xvector, se efectueaz reamplasarea ciclic a jumtilor din dreapta i din stnga. Vom forma, de exemplu, vectorul x:

x=[1,2,3,4,5,6];

i vom efectua reamplasarea ciclic:

y=fftshift(x)

y = 4 5 6 1 2 3Trebuie de remarcat c, n virtutea periodicitii funciilor exponeniale exp(j2(kn/N) n (31) cu perioada N, periodice sunt de asemenea elementele masivului transformatei Fourier y, adic ym=ym+N.

n afar de aceasta, dac x este masivul valorilor unui semnal real, atunci exponentele masivului y satisfac condiia simetriei complex-conjugate, adic . Aceasta permite de a micora de dou ori numrul elementelor calculate ale masivului: y0, y1,...,yN/2, deoarece elementele rmase pot fi gsite din condiia de simetrie.

Vom ilustra proprieti prin exemple:

x=[1,1,0,0];

y=fft(x)

y = 2.0000 1.0000 - 1.0000i 0 1.0000 + 1.0000iMasivele x i y au dimensiunea N=4. Deoarece x este masiv real, atunci masivul y satisface condiia conjugrii complexe a elementelor de forma:

,

m=0,1,2,...,,

la enumerarea elementelor masivului ncepnd cu zero, adic 0,1,...,N-1, sau condiia simetriei elementelor de forma:

, m=1,2,...,,

la indexarea elementelor acceptat n MATLAB ncepnd cu 1:1,2,...,N.

Urmtorul exemplu arat c la mrirea lungimii masivului x i utilizarea funciei fft(x,N), cu aceeai valoare N=4, rezultatul transformrii va fi acelai.

x=[1 1 0 0 3];

y=fft(x,4)

y = 2.0000 1.0000 - 1.0000i 0 1.0000 + 1.0000iUn rezultat analogic se obine i la folosirea comenzii:

x=[1 1];

y=fft(x,4)Vom analiza posibilitatea folosirii TFD pentru calculul spectrului semnalului periodic x(t) cu perioada T, care poate fi reprezentat sub forma unei serii Fourier complexe:

unde amplitudinile complexe C(m) se calculeaz dup formula:

(33)

n aa fel, spectrul de frecven al semnalului periodic const din frecvene multiple frecvenei de baz f1=1/T, adic din frecvenele fm=m f1 (m=0,1,2...).

Prile reale i imaginare ale Cm formeaz, corespunztor, spectre reale i imaginare de oscilaie. Dac amplitudinea complex Cm o vom prezenta sub forma exponenial , atunci mrimea Am va reprezenta amplitudinea componentei armonice cu frecvena fm=m f1, iar (mfaza iniial, adic x(t) poate fi reprezentat, de asemenea, sub aspectul aa numitei forme armonice a irului Fourier:

(34)

Pentru semnalele reale x(t) sunt adevrate relaiile:

unde prile reale ale spectrelor i amplitudinile spectrelor sunt funcii pare de frecven, iar prile imaginare spectrele fazei funcii impare.

La calculele numerice a amplitudinilor spectrale Cm, semnalul x(t) dat n diapazonul de timp (-T/2, T/2) sau (0, T) trebuie s fie dat de valorile sale ntr-un numr limitat de puncte. n acest caz integrarea se nlocuiete prin sumare i integrala din (31) se reprezint aproximativ prin suma de forma:

(35)

unde se presupune c T=N(t, (tpasul de discretizare a x(t).

Comparnd (35) cu forma general de scriere a TFD:

k=0,1,...,N-1(36a)

m=0,1,...,N-1(36b)

se poate de conchis c amplitudinile complexe Ck sunt legate de elementele corespunztoare ale masivului TFD directe (36a) prin relaia:

Aici, ns, trebuie de fcut o remarc important. Seria Fourier are n caz general un numr infinit de termeni. Din formula (36a) n virtutea proprietilor periodicitii (cu perioada N) i proprietilor simetriei complex conjugate a elementelor pentru semnalele reale se poate de determinat coeficienii Ck doar pentru (pentru N par) i (pentru N impar). Pentru a determina coeficienii Ck pentru un numr mai mare de armonici este necesar de a mri numrul N de eantioane a semnalului luate pe o perioad de oscilaie T. Dac este necesar de calculat M armonici atunci numrul se alege din condiia , sau . Aceast condiie poate fi prezentat i n alt form. Dac frecvena maxim a spectrului calculat este egal cu fm=Mf1=M/T, atunci frecvena de discretizare se alege din condiia:

(38)

sau

ce corespunde cunoscutei condiii a teoremei Kotelnicov-Shannon. Aceasta aduce la concluzia c pasul de discretizare (t trebuie s fie nu mai puin de dou ori mai mic ca perioada componentei spectrale cu frecvena cea mai nalt, adic . n caz contrar este posibil distorsionarea spectrului calculat din cauza efectului de suprapunere (alising effect).

Urmtoarea remarc se refer la intervalul de observare a semnalului x(t). Nu-i obligatoriu ca acest interval s fie egal cu perioada oscilaiei de baz T=T1 cum se presupunea mai sus, dar poate fi ales i mai mare, ns astfel nct s conin un numr ntreg de perioade ale oscilaiei de baz, adic T=lT1, unde l este un numr ntreg. n acest caz frecvenele armonicilor semnalului analizat:

vor intra n submulimea frecvenelor n care se calculeaz TFD.

Dac ns l=T/T1 nu este un numr ntreg, atunci calculul spectrului efectiv se realizeaz pe frecvenele ce nu corespund cu frecvenele adevrate ale armonicilor, ce aduce la distorsionarea formei spectrului, aa numitei ntinderi a spectrului(leakage-effect). n acest caz, chiar i la calculul spectrului unei oscilaii monotone, spectrul care conine doar o component discret, n spectrul calculat vor aprea un ir de componente suplimentare false. n fig.10, n calitate de material ilustrativ, este prezentat spectrul oscilaiei sinusoidale cu frecvena f=200Hz la frecvena fs=800Hz(fs/f=l=4) i a oscilaiei cu frecvena f=130Hz la fs=800Hz(fs/f=6,2).

n acele cazuri, cnd perioada oscilaiei analizate nu este cunoscut din timp i de aceea intervalul de analiz se alege egal cu T, care poate i s nu satisfac cerinelor impuse, se recomand de a se utiliza funcii de pondere (ferestre de pondere) w(t) la care se nmulete procesul analizat x(t) nainte de a se efectua operaia TFD. Printre cele mai cunoscute pot fi menionate funciile de pondere Hamming, Hann, Cebev, Kaiser, Bartlett, etc.

Acum vom analiza posibilitatea folosirii TFD n calculul spectrelor semnalelor neperiodice x(t). Dup cum se tie spectrul X(() a unor astfel de semnale se determin din transformata Fourier:

;

(39a)

(39b)

La calculele numerice se poate opera doar cu procese de o durat T limitat, i anume nsui procesul n intervalul dat de timp trebuie s fie dat de valorile sale ntr-un numr limitat de puncte N=T/(t, unde (t pasul de calcul dup timp. n acest caz integrarea n (39a) pe interval finit T se nlocuiete prin sumare, iar calculul spectrului se efectueaz nu pe o mulime continu (, ci pe o mulime limitat de frecvene, care conine N frecvene (k=k(( sau fk=k(f, unde (f=fs/N=1/N(t=1/T, iar k=0,1,...,N-1. Acceptnd notarea xm=x(m(t) formula (39a) poate fi scris sub forma:

,k=0,1,...,N-1 (40a)

unde Xk TFD a irului xm scris n forma (36a). La indexarea masivelor acceptat n MATLAB, ncepnd nu cu 0, ci cu 1, expresia (40a) poate fi transcris n alt form echivalent:

k=0,1,...,N

(40b)

Dac vom nota (t prin Ts, vom introduce notaia x(m)=xm=x[(m-1)(t], i avnd n vedere c numrul de puncte n care este definit acest proces este egal cu N=T/Ts=1/(fTs, atunci (40b) poate fi reprezentat ca:

k=0,1,...,N

unde Xk TFD a irului xm n forma acceptat de MATLAB (37).

Din (40) rezult c prin procedura fft MATLAB gsete imaginea Fourier discret a semnalului x(t) dat discret n timp, raportat la Ts.

Pentru a folosi procedura fft cu scopul de a obine prezentarea semnalului n domeniul frecven reieind din reprezentarea lui n domeniul timp este necesar de a efectua urmtoarele:

1) Dup valoarea aleas a lui Ts s se calculeze mrimea Fmax a gamei de frecvene(n Hertzi) dup formula:

Fmax=1/ Ts

2) Dup durata dat a procesului T s se calculeze df dup formula:

df=1/T

3) Dup valorile calculate s se formeze vectorul valorilor frecvenelor n care se va calcula imaginea Fourier, de exemplu, n forma:

f=0:df: Fmaxn rezultatul utilizrii procedurii fft se va obine valoarea vectorului XkTFD a succesiunii xm dat n domeniul timp. Pentru a obine spectrul este necesar de a mai efectua urmtorii pai:

1) Rezultatele aciunii procedurii fft trebuiesc nmulite cu factorul Ts i supuse aciunii procedurii fftshift, care schimb cu locurile prima i a doua jumtate a vectorului obinut.

2) S se reconstruiasc vectorul frecvenelor dup algoritmul:

f=-Fmax/2:df:Fmax/2

Afiarea graficelor spectrelor discrete ale semnalelor periodice este mai bine de efectuat cu comanda MATLAB-ului stem(...), iar a spectrelor continue ale semnalelor neperiodice cu comanda plot(...).

2.3. Lucru pentru acas

1. Dup literatura recomandat, conspectul leciilor i materialele acestui ndrumar s se fac cunotin cu metodele de calcul i particularitile spectrelor semnalelor deterministe.

2. S se efectueze calculul spectrului unuia din semnalele tipice date.

2.4. Sarcina de laborator

2.4.1. S se efectueze calculul spectrului discret a succesiunii periodice de impulsuri dreptunghiulare cu ajutorul programului fourier2, sintaxa creia are forma:

fourier2((0,N,1)

unde (0=(/T=1/Q durata relativ a impulsurilor; N numrul armonicilor calculate. Se recomand valorile pentru calcul: (0=0.1; 0.2; 0.5; N=50. Calculul amplitudinilor i fazelor armonicelor se efectueaz dup relaiile:

cu presupunerea c amplitudinea impulsurilor A=1.

Cercetai cum influeneaz durata relativ (0 asupra spectrului. Pentru aceasta analizai rezultatele calculului spectrelor cu programul fourier2 pentru diferite valori (0: 0.1; 0.2; 0.5 i de asemenea rezultatele calcului spectrelor pentru trei valori (0: 0.1; 0.05; 0.01, afiate pe ecran cu comanda fourier3.2.4.2. S se cerceteze procedura de sintez a semnalului de tip meandru dup numrul limitat al primelor n armonici a acestui semnal. S se conving de faptul c, cu creterea lui n calitatea aproximaiei se mbuntete. Remarcai prezena oscilaiilor n vecintatea salturilor de semnal, legate cu aa numitul efectul Gibbs, ce apare la tierea seriei Fourier. Cercetarea se efectueaz cu ajutorul programului gibbs1 adresarea la care are forma:

gibbs1(n,1)

unde n numrul de armonici considerate (se recomand valorile n=2, 5, 10).

Cu ajutorul programului gibbs2 s se afieze pe ecran concomitent trei oscilograme ale semnalului sintetizat la n=2, 10, 20.

2.4.3. Analiza spectrelor semnalelor poliarmoniceVom analiza ca exemplu semnalul ce const din trei oscilaii armonice cu frecvenele 1, 2 i 3Hz i amplitudinile corespunztor 3, 1 i 4.

y(t)= 3cos(2(t)+ sin(4(t)+ 4cos(6(t)

Vom afia graficele a nsui semnalului, a spectrului de amplitudine (modulul spectrului) i de asemenea a prilor reale i imaginare ale spectrului.

Ts=0.01;T=100;t=0:Ts:T;

y=3*cos(2*pi*t)+sin(4*pi*t)+4*cos(6*pi*t);

plot(t,y);gridAflm modulul spectrului acestui semnal:

df=1/T;Fm=1/Ts;len=length(t);

f=-Fm/2:df:Fm/2;x=fft(y)/len; xs=fftshift(x);

A=abs(xs);s1=len/2-500;s2=len/2+500;

stem(f(s1:s2), A(s1:s2));grid

xlabel('frecventa(Hz)');ylabel('Modulul')n rezultat se obine modulul spectrului complex, ce corespunde formei complexe a seriei Fourier cu coeficienii de dou ori mai mici ca amplitudinile reale Ak, deoarece ele sunt distribuite egal ntre eantioanele pozitive i cele negative. Pentru construcia spectrului de faz este suficient c operatorul calculului modulului A=abs(xs) s-l schimbm cu operatorul calculului unghiului de faz

P=angle(xs)

cu schimbrile corespunztoare n operatorii de afiare a graficelor stem i ylabel.Evideniem partea real i cea imaginar ale spectrului complex:

Re=real(xs);Im=imag(xs);

s1=len/2-500;s2=len/2+500;

subplot(2,1,1)

plot(f(s1:s2),Re(s1:s2));grid

ylabel('Partea reala')

subplot(2,1,2)

plot(f(s1:s2),Im(s1:s2));grid

ylabel('Partea imaginara')Dup graficele obinute se poate judeca nu doar despre frecvenele i amplitudinile, dar i despre fazele unor armonici separate.

2.4.4. Analizai posibilitatea apariiei n spectrul calculat a componentelor spectrale false la alegerea incorect a frecvenei fs de discretizare a semnalului (efectul de suprapunere sau alising effect). Dac semnalul armonic cu frecvena fm se eantioneaz cu frecvena fs, atunci n spectrul semnalului discret calculat dup TFR(TFD) vor aprea componente cu frecvena . Pentru anumite valori ale lui k i fm> fs n spectrul calculat n gama de la 0 la fs pot aprea componente false. De exemplu la fm=4300Hz i fs=1000Hz la k=-4 apare o component fals cu frecvena Hz, iar la k=-5 componenta cu frecvena Hz i cu faza opus fazei iniiale la frecvena 700Hz, care de asemenea este fals.

Cu ajutorul programului fourier4 privii graficele semnalelor cu frecvenele f1=100Hz, f2=4300Hz i frecvena de discretizare fs=1000Hz, i de asemenea spectrele sumei acestor semnale. Graficul spectrului ilustreaz c n afar de componentele reale cu frecvenele de 100, 1000-100=900Hz sunt dou componente spectrale false cu frecvenele 300 i 700Hz, ce lipsesc n semnalul de intrare. Pentru eliminarea efectului de suprapunere a spectrelor este necesar ca frecvena de discretizare s satisfac condiia , unde fm frecvena maxim n spectrul semnalului analizat.

2.4.5. Cu ajutorul programului fourier5 s se efectueze calculul spectrelor semnalelor armonice cu frecvenele f1=130Hz i f2=200Hz, utiliznd intervalul de observare T=50ms i frecvena de discretizare fs=800Hz. Deoarece pentru primul semnal intervalul de observare conine un numr fracionar de perioade m1=Tf1=6.5 se observ efectul, amintit mai sus, de ntindere a spectrului(leakage effect). Pentru al doilea semnal, la care m2=Tf2=10, acest efect lipsete. Este artat de asemenea influena utilizrii funciei Hanning cu scopul micorrii influenei acestui efect.

2.4.6. S se genereze un semnal sub unui impuls unitar dreptunghiular cu amplitudinea A=0.8 i limea w=0.5s. Vom da pasul de discretizare Ts=0.01s, iar durata analizei T= 1s.

Ts=0.01;T=1;

A=0.8;

w=0.5;N=T/Ts;t=0:Ts:T;

y=A*rectpuls(t,w);

plot(t(1:100),y(1:100)); gridVom aplica procedura fft la vectorul y i vom construi graficul modulului rezultatului de frecven.

x=fft(y)/N;df=1/T;Fm=1/Ts;

f=0:df:Fm;a=abs(x);

stem(f,a);gridGraficul spectrului este prezentat n intervalul de frecvene de la 0 la fs. Pentru construcia graficului modulului spectrului n form obinuit, n gama de frecvene de la -fs/2 la fs/2 utilizm comenzile

xp=fftshift(x);f1=-Fm/2:df:Fm/2;

a=abs(xp);stem(f1,a),grid;xlabel('Frecventa, Hz');

ylabel('Modulul')Vom construi graficele prilor reale i imaginare ale imaginii Fourier a impulsului dreptunghiular:

Re=real(xp);Im=imag(xp);

plot(f1,Re,f1,Im),grid

xlabel('Frecventa, Hz')

ylabel('Partea reala si imaginara')2.5. ntrebri de control

1. Clasificarea semnalelor.

2. Descompunerea semnalului periodic n serie Fourier trigonometric.

3. Descompunerea semnalului periodic n serie Fourier armonic.

4. Proprietile seriilor Fourier.

5. Analiza spectral a semnalelor neperiodice.

6. Distribuia puterii n spectru i limea spectrului

7. Eantionarea semnalelor. Conversia analogic-discret

8. Conversia discret-analogic9. Analiza spectral a semnalelor discrete. BIBLIOGRAFIE

1. . , MATLAB 5.x,K.,2000

2. . . , . . , MATLAB 5 , . 1999

3. . , . , MATLAB. . , , 20024. Signal processing Toolbox. Users Guide, The MATHWORKS Inc, 1999. 5. . , . .,1988

6. . . , . .,1986

7. Iu. Lazarev, MATLAB 5.X, Kiev, 2000Fig.1 Construirea a trei impulsuri dreptunghiulare Fg..a impulsului w nu este dat

Fig.2 Impulsuri triunghiulare

Fig.3 Impuls gaussian

EMBED MSPhotoEd.3

Fig.4 Transformata Fourier a impulsului dreptunghiular

Fig.5 Formarea unei sinusoide

Fig.6 Segven de impulsuri

Fig.7 Crearea semnalelor dinte de ferestru

Fig.8 Utilizarea funciei pulstran la semnale dreptunghiulare

Fig.9 Utilizarea funciei pulstran la semnale triunghiulare

Fig.10 Utilizarea funciei pulstran la semnale gaussiene

Fig. 11 Formarea unei cosinusoide cu frecvena variabil

1

0

T/2

-T/2

t

Fig.9 Semnal dreptunghiular

200

a)

f, Hz

f, Hz

100

150

b)

Fig.10. Spectrul oscilaiei sinusoidale la 200Hz (a) i 130Hz(b)

PAGE

_1079436804.unknown

_1086179825.unknown

_1086179914.unknown

_1086180209.unknown

_1086180357.unknown

_1086180517.unknown

_1086180544.unknown

_1086180647.unknown

_1086180657.unknown

_1086180539.unknown

_1086180376.unknown

_1086180504.unknown

_1086180365.unknown

_1086180222.unknown

_1086180229.unknown

_1086180215.unknown

_1086180043.unknown

_1086180178.unknown

_1086180192.unknown

_1086180200.unknown

_1086180062.unknown

_1086179952.unknown

_1086180021.unknown

_1086179922.unknown

_1086179869.unknown

_1086179899.unknown

_1086179906.unknown

_1086179892.unknown

_1086179846.unknown

_1086179858.unknown

_1086179839.unknown

_1085493624.unknown

_1086179746.unknown

_1086179787.unknown

_1086179814.unknown

_1086179750.unknown

_1086174457.unknown

_1086174554.unknown

_1085493768.unknown

_1080310259.unknown

_1080545219.unknown

_1085392448.unknown

_1085393256.unknown

_1080545431.unknown

_1080902369.unknown

_1081843285.unknown

_1080900912.unknown

_1080545378.unknown

_1080375245.unknown

_1080381357.unknown

_1080374899.unknown

_1079437486.unknown

_1080297990.unknown

_1079437453.unknown

_1077616479.unknown

_1077616808.unknown

_1079185065.unknown

_1079436556.unknown

_1079436628.unknown

_1079250097.bin

_1077622746.unknown

_1077623933.unknown

_1077616875.unknown

_1077616590.unknown

_1077616768.unknown

_1077616518.unknown

_1077527750.unknown

_1077616124.unknown

_1077616364.unknown

_1077531481.unknown

_1077541348.unknown

_1077543002.unknown

_1077531030.unknown

_1077527547.unknown

_1077527648.unknown

_1077519517.unknown