TTI_lab1_2.pdf
February 17, 2018 | Author: Rusu Alexandru | Category: N/A
Short Description
Download TTI_lab1_2.pdf...
Description
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 1.2.1. Noţiuni generale 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 timp t cu pasul T=1ms pe intervalul de la 0 până la 1s folosim comanda: t=0:0.001:1; Aceasta corespunde 1000 eşantioanelor pe secundă sau frecvenţei de eşantionare de 1000 Hz. Pentru ca să formăm vectorul cu n valori de timp pentru semnalul descris în domeniul de timp discret de la n=0 până 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 interpolării 3
valorilor sale în intervalele dintre eşantioanele sale discrete. De aceea intervalul dintre eşantioane trebuie să fie destul de mic ca să se garanteze că eşantioanele vor reda destul de precis forma semnalului. 1.2.1.1. Formarea semnalelor impuls unitare În pachetul SPTB sunt prevăzute câteva proceduri, care formează consecutivitatea datelor, care prezintă nişte 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 aşa impuls de amplitudine unitate, cu lăţimea w, centrat faţă de t=0 după vectorul dat t a momentelor de timp. Dacă lăţimea 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 înălţimi şi lăţimi, 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 ieşire y(t)')
Fig.1 Construirea a trei impulsuri dreptunghiulare 4
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 acelaşi sens ca şi mai sus. Argumentul S ( 1 S 1) determină înclinarea triunghiului. Dacă S=0, sau dacă nu este indicat, atunci impulsul triunghiular este simetric. Funcţia y=tripuls(t,w) formează un impuls simetric de amplitudine unitate w centrat faţă de t=0. Prezentăm 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)')
Fig.2 Impulsuri triunghiulare Formarea impulsului care este sinusoida modulată de funcţia Gauss se execută cu procedura gauspuls, adresarea către ea are forma: yi=gauspuls(t,fc,bw) yi=gauspuls(t,fc,bw,bwr) 5
[yi,yq]=gauspuls(…) [yi,yq,ye]=gauspuls(…) tc=gauspuls(‘cutoff’,fc,bw,bwr,tpe) Funcţia yi=gauspuls(t,fc,bw) formează secvenţa eşantioanelor semnalului, calculate în momentele de timp date în vectorul t; fc determină frecvenţa sinusoidei; bw –lărgimea benzii de frecvenţă a semnalului. De exemplu , se poate lua fc=1000Hz şi bw=0.5. Funcţia yi=gauspuls(t,fc,bw,bwr)calculează secvenţa eşantioanelor semnalului cu următorii parametri: amplitudinea=1,lăţimea benzii de frecvenţă=100bw. Graniţele 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. Funcţia [yi,yq]=gauspuls(…) calculează doi vectori. Vectorul yi conţine eşantioanele semnalului iniţial ,iar vectorul yq conţine eşantioanele semnalului în care faza sinusoidei este schimbată cu 90 de grade. Funcţia [yi,yq,ye]=gauspuls(…) calculează adăugător semnalul ye. Funcţia tc=gauspuls(‘cutoff’,fc,bw,bwr,tpe) calculează timpul tc, corespunzător momentului de timp în care amplitudinea semnalului scade până la trei (dB).Mărimea 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)')
6
Fig.3 Impuls gaussian
Procedura sinc permite de a calcula valoarea vectorului funcţiei sinc(t), care se determină de formulele:
1, t 0 sin c( t ) sin t t , t 0 care prezintă o transformare inversă Fourier a impulsului dreptunghiular cu înălţimea 1 şi lăţimea 2π:
sinc(t)=1/2π ej td
Exemplu: t=0:0.01:50; » yi=0.9*sinc(pi*(t-25)/5); » plot(t,yi),grid » xlabel('timpul(s)') » ylabel('yi(t)')
7
Fig.4 Transformata Fourier a impulsului dreptunghiular 1.2.1.2. Formarea oscilaţiilor periodice Formarea oscilaţiilor care constau din numărul finit a componentelor armonice, adică aşa numitor oscilaţii poliarmonice, se poate realiza cu ajutorul procedurilor obişnuite 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)')
Fig.5 Formarea unei sinusoide 8
Generarea secvenţei impulsurilor dreptunghiulare se face cu ajutorul procedurii square. Adresarea către ea are forma: y=square(t) y=square(t,duty) Funcţia square (t) formează oscilaţii dreptunghiulare cu perioada 2π şi amplitudinea 1. Funcţia 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ă dăm 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
Fig.6 Segvenţă de impulsuri Formarea semnalelor “dinte de ferestrău” şi triunghiulare cu amplitudinea 1 şi perioada 2π se face cu procedura sawtooth : x=sawtooth(t) x=sawtooth(t,width) Funcţia x=sawtooth(t) formează semnal de forma “dinte de ferestrău”, care ia valoarea -1 în momentul 2π şi crescând liniar pe intervalul 2π cu panta 1/π. Funcţia x=sawtooth(t,width) formează semnalul “dinte de ferestrău” modificat. Parametrul width se dă în diapazonul de la 0 9
la 1 şi determină o parte a perioadei, în care semnalul creşte. Semnalul creşte de la –1 până la 1, pe intervalul de la 0 până la 2π*width, iar pe urmă scade de la 1 până la –1 pe intervalul de la 2π*width până la 2π. Dacă width=0.5, atunci se formează o undă simetrică. Funcţia sawtooth(t,1) este echivalentă cu funcţia sawtooth(t). Aducem un exemplu de generare a unui semnal de tip „dinte de ferestrău” pe intervalul 0-6π: » t=0:0.1:6*pi; » x=sawtooth(t); » plot(t,x)
Fig.7 Crearea semnalelor “dinte de ferestrău” Procedura pulstran permite de a forma oscilaţii, care sunt secvenţe a impulsurilor dreptunghiulare, triunghiulare sau gaussiene. Adresarea către 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 corespunzătoare; parametrul func determină forma impulsului şi poate avea una din următoarele sensuri: rectpuls (pentru impuls dreptunghiular), tripuls (pentru impuls triunghiular), gauspuls(sinusoidă modulată 10
cu funcţia gauss). Semnalul de ieşire y se calculează pentru valorile argumentului, date în vectorul t, după formula: y=funct(t-d(1)+func(t-d(2)+... Numărul impulsurilor în diapazonul dat a argumentelor este length(d). Parametrii p1, p2... determină parametrii necesari a impulsului în dependenţă de forma de adresare către procedura, care determină acest impuls. Funcţia y=pulstran(t,d,p,Fs )permite de a determina impulsul cu secvenţa eşantioanelor date în vectorul p. Frecvenţa de discretizare este dată de parametrul Fs. La folosirea funcţiei y=pulstran(t,d,p), frecvenţa 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
Fig.8 Utilizarea funcţiei pulstran la semnale dreptunghiulare 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 11
Fig.9 Utilizarea funcţiei pulstran la semnale triunghiulare 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
Fig.10 Utilizarea funcţiei pulstran la semnale gaussiene Formarea cosinusoidei frecvenţa căreia se schimbă liniar în timp, se face cu ajutorul procedurii chirp: y=chirp(t,f0,t1,f1) Ea formează eşantioanele din semnalul cosinusoidal cu frecvenţa schimbată liniar pentru momentele de timp date în vectorul t; f0-frecvenţa momentană în momentul de timp t=0; f1frecvenţa momentană în momentul de timp t=1. Frecvenţele f0 şi f1 se dau în Hz. De exemplu f0=0, t1=1, f1=100. 12
Exemplu: » t=0:0.001:1; » y=0.8*chirp(t); » plot(t,y),grid
Fig. 11 Formarea unei cosinusoide cu frecvenţa variabilă 3.Lucru pentru acasă După literatura recomandată şi indicaţiile îndrumarului de laborator la lucrarea dată, să se facă cunoştinţă cu metodele de formare a semnalelor tipice descrise mai sus în punctul 2. 4.Lucru în laborator Trebuie de efectuat formarea semnalelor descrise în exemplele de mai jos şi de asemenea a unor semnale adăugătoare la indicaţia 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 corespunzătoare şi oscilograma semnalului format. În afară de semnalele standarde realizate în SP Toolbox, folosind mijloacele limbajului Matlab este posibil de creat practic un număr nelimitat de semnale diferite. 13
Exemplul 1. Să se creeze din 256 eşantioane o oscilaţie armonică cu amplitudinea unitate şi perioada de 50 eşantioane. Pentru aceasta în regiunea de comandă MATLAB trebuie de cules următoarea serie de comenzi: » k=0:255; » x=sin(2*pi*k/50); » plot(x); grid on; title('sine wave'); » xlabel('sample number'); ylabel('Amplitude')
Fig.12 Prima comandă creează vectorul k=[0,1,…255]. Următoarea comandă generează vectorul x care conţine mărimea eşantioanelor oscilaţiei sinusoidale la un număr corespunzător k. Comanda plot împreună cu comenzile următoare afişează graficul oscilaţiei formate sub forma unui semnal continuu şi nu a unei succesiuni de eşantioane discrete datorită unirii eşantioanelor vecine cu segmente de dreaptă. Dacă ar fi fost necesară prezentarea graficului sub forma de eşantioane discrete, atunci în loc de comanda plot trebuie de folosit comanda stem. Exemplul 2. Să se creeze un semnal ce conţine 1024 eşantioane a unui proces tranzitoriu a unui sistem oarecare, descris de următoarea relaţie: 14
x t 0; t 0.1s t 0.1 2t 0.1 x t exp 0.2 sin 0.16 ;0.1 t 1.024s Intervalul de timp între eşantioanele vecine T=0,001s. Formarea unui aşa tip de semnal este posibilă cu ajutorul următoarei 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')
Fig.13 Prima comandă generează vectorul valorilor argumentelor timpului care conţine 1024 de elemente: 0, 0.001, 0.002, ..., 1.023. În rândul al treilea se instalează vectorul k din 924 de numere ale eşantioanelor în domeniul de timp unde x(t)0. Vectorul [Xk] se creează prin unirea (concatenarea) vectorului [Zk] ce conţine 100 de eşantioane nule, creat cu comanda a patra şi vectorul valorilor nenule ale eşantioanelor X(t) calculate în corespundere cu relaţia 15
dată x(t). Aducem aminte că operatorul “.*” este operatorul înmulţirii element cu element a vectorilor “sin” şi “exp”. Comanda plot are aici două argumente arătând că se construieşte graficul x funcţie de t. Exemplul 3. Să se creeze un semnal în intervalul de timp 0 t 1 s care constă din suma unei oscilaţii armonice cu amplitudinea de 1V şi frecvenţa 50Hz , unei oscilaţii sinusoidale cu amplitudinea de 2V şi frecvenţa de 120Hz şi a unui semnal de zgomot distribuit normal cu valoarea medie zero şi valoarea medie pătratică 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));grid
Fig.14 Conform comenzii plot pe ecran sunt afişate primele 50 de eşantioane ale semnalului. Exemplul 4. Să se creeze în intervalul 0 t 1 s semnale sinusoidale de forma: 16
a) 5exp(-6t); folosind frecvenţa eşantioanelor comenzilor poate fi următoarea: a) » B=5; » a=6; » t=0:0.001:1; » x=B*exp(-a*t); » plot(t,x), grid
b) exp(5t), fd=1000Hz. Succesiunea
Fig.15 b)» B=1; » a=5; » t=0:0.001:1; » x=B*exp(a*t); » plot(t,x), grid
Fig.16
17
Exemplul 5. Să se creeze un impuls exponenţial discret de forma x(n)=Brn, unde B=1, r=0.8 pe intervalul 10 n 10 . Pentru aceasta pot fi folosite următoarele comenzi: » B=1; » r=0.8; » n=-10:10; » x=B*r.^n; » stem(n,x)
Fig.17 Observăm 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. Exemplul 6. Să se creeze un semnal sinusoidal discret cu perioada de 12 eşantioane şi amplitudinea de 2V: 2 x n 2 sin n ,10 n 10 12 Pentru aceasta poate fi folosit următorul set de comenzi: » A=1; » omega=2*pi/12; » n=-10:10; » y=A*sin(omega*n); » stem(n,y) 18
Fig.18 Exemplul 7. Să se creeze un semnal discret exponenţial atenuat, pe baza înmulţirii exponentei atenuatoare formate în exemplul 5 şi a semnalului sinusoidal creat în exemplul 6, ambele primite pentru intervalul 10 n 10 . Soluţie: notând rezultatul înmulţirii cu Z(n) putem folosi următoarele comenzi pentru generarea şi vizualizarea semnalului: » Z=x.*y; » stem(n,Z)
Fig.19 Remarcăm 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. 19
Exemplul 8. Să se creeze următoarele serii de impulsuri , care se descriu, după cum se ştie, de relaţia:
1, k 0 0, k 0
=
a) x1=2(k-3), 1 k 10 ; b) x2=0.6(k), 10 k 10 ; c) x3=1.5(k+7), 10 k 0 Soluţie: a) » k=1:10; » x1=zeros(size(k)); » x1(3)=2; » figure;stem(k,x1);grid;xlabel('k');ylabel('x1(k)')
Fig.20
b) » k=-10:10; » x2=zeros(size(k)); » x2(11)=0.6; » figure;stem(k,x2); grid; » xlabel('k');ylabel('x2(k)')
20
Fig.21 c) » k=-10:0; » x3=zeros(size(k)); » x3(4)=1.5; » figure;stem(k,x3);grid; » xlabel('k');ylabel('x3(k)')
Fig.22 Exemplul 9. Crearea impulsului dreptunghiular de amplitudine unitate şi durata 1s, amplasat simetric în originea de coordonate t=0 0.5s t 0.5s descris în intervalul de timp 1s t 1s cu pasul T=2ms. 21
Soluţie: impulsul dreptunghiular poate fi creat cu ajutorul diferenţei a două funcţii de tip “treaptă” deplasate în timp cu un interval egal cu durata impulsului. Acest semnal poate fi format cu ajutorul următorului 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)
Fig.23 Exemplul 10. Crearea unui şir discret de impulsuri dreptunghiulare cu amplitudinea A=1 şi viteza unghiulară =/4 în intervalul 10 n 10 se efectuează cu ajutorul următoarelor 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) 22
Fig.24 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 arăta mai jos exemple de creare a unor semnale complexe cu separarea părţii lor reale şi imaginare. Exemplul 11. Crearea semnalului exponenţial complex x exp j n . Poate fi folosit următorul set de comenzi: 3 » 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)')
23
Fig.25 Exemplul 12. Crearea semnalului exponenţial complex xn exp 0.1 j 0.3n . Pe intervalul 10 n 10 : » 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')
Fig.26
24
Întrebări de control: 1) Enumeraţi procedeele standarde folosite pentru crearea impulsurilor unitare. 2) Descrieţi sintaxa procedurii de formare a impulsurilor de formă triunghiulară. 3) În ce mod se poate de creat un şir periodic de impulsuri dreptunghiulare? 4) Scrieţi setul de comenzi pentru crearea unei oscilaţii periodice cu forma “dinte de ferestrău”, perioada 0,2s în intervalul 0-1s. 5) Descrieţi sintaxa procedurii pulstran. 6) Scrieţi setul de comenzi pentru crearea în intervalul t=0-2s a oscilaţiei y 0.5 sin4t 2 cos2t . 7) Scrieţi setul de comenzi pentru crearea exponentei discrete xn exp 0.3n în intervalul 0 n 10 .
25
Lucrare de laborator nr.2 CERCETAREA SPECTRELOR SEMNALELOR 2.1. Scopul lucrării: Analiza şi sinteza semnalelor periodice şi aperiodice. 2.2. Îndrumări metodice 2.2.1. Noţiuni generale. Spectrele semnalelor periodice. Un semnal periodic S(t) de perioada T, poate fi dezvoltat în serie Fourier dacă satisface condiţiile lui Dirichlet. Sînt câteva forme ale seriei Fourier: exponenţială (complexă), trigonometrică şi armonică. Formele seriei Fourier şi relaţiile de calcul ale coeficienţilor sînt prezentate în tabelul 1. 2 reprezintă frecvenţa unghiulară (pulsaţia) 1 T fundamentală, iar f1=1/T este frecvenţa fundamentală (prima armonică); se mai numeşte şi frecvenţă de repetiţie a semnalului periodic. Alegerea limitelor de integrare în evaluarea coeficienţilor seriilor Fourier este arbitrară; esenţial este ca integrarea să se facă pe o perioadă (de la –T/2 la T/2, de la 0 la T etc). Seria Fourier complexă dă o descompunere a semnalului periodic într-o sumă de componente elementare de tip exponenţial
e jk1t . Utilizarea ei este comodă în problemele teoretice. Din punct de vedere experimental interesează seria Fourier armonică. Aceasta descompune semnalul într-o sumă de componente cosinusoidale (sinusoidale) ale căror frecvenţe sînt multipli ai frecvenţei fundamentale. Aceste componente se mai numesc armonici. Armonica întâia (k=1) se numeşte fundamentală, A0 reprezintă componenta continuă a semnalului periodic.
26
Forma seriei Exponenţială (complexă) Trigonometrică
Reprezentarea analitică
S (t )
C e
k
S (t )
jk1t
k
a0 a k cos k1t bk sin k1t 2 k 1 k 1
Tabelul 1. Relaţiile pentru coeficienţi t T 1 0 Ck S (t )e jk1t dt T t0
ak
2 T
2 bk T Armonică
S (t ) A0 Ak cos(k 1t k ) k 1
t 0 T
a0 1 2 T
A0
S (t )dt
t0 t 0 T
s(t ) cos k tdt 1
t0
t 0 T
s(t ) sin k tdt 1
t0
a0 2
Ak a k2 bk2
k arctg
bk ak
27
Caracterizarea în domeniul frecvenţă a semnalului periodic se face prin reprezentarea spectrelor de amplitudini şi faze. În acest scop, fiecărei componente Ak şi k din dezvoltare i se alocă cîte un segment de dreaptă (linie spectrală) în cele două spectre, localizate la frecvenţa componentei şi avînd mărimea segmentului proporţională cu amplitudinea Ak, respectiv faza k a componentei. Deoarece semnalele periodice sînt reprezentate prin sume discrete de semnale elementare, rezultă că spectrele de amplitudini şi faze vor fi discrete, ca în fig. 1. A A1
A3
A2
1
A4
0 f1 2f 3f 4f 1
1
2
3
4
0 f1 2f 3f 4f
1
1
1
f
1
Fig.1 Spectrele de amplitudini şi faze Dacă S(t) este funcţie pară, adică S(t)=S(-t), atunci:
4 ak T
T/2
S(t ) cos k tdt , 1
bk=0
0
(4) şi seria Fourier în acest caz va avea forma:
s(t )
a0 a k cos k 1t 2 k 1
(5)
Dacă S(t) este funcţie impară, adică S(t)=-S(-t), atunci: ak=0,
4 bk T
T /2
S (t ) sin k tdt 1
(6)
0
28
iar seria Fourier va avea forma:
S( t ) b k sin k1 t k 1
(7)
Teoretic spectrele semnalelor periodice se întind de la f=0 la f=. Practic, spectrele sînt limitate din cauza de descreştere a amplitudinilor, permiţându-ne să limităm seria la un termen, începând cu care amplitudinea componentelor este neglijabilă. Trunchierea seriei la un anumit termen depinde de cerinţele impuse tipului de comunicaţie care utilizează semnalul respectiv. Prin urmare analiza spectrală a unui semnal ne permite să stabilim lăţimea benzii de frecvenţe efectiv ocupată de semnal. În teoria telecomunicaţiei o deosebită importanţă o au semnalele periodice sub formă de succesiuni de impulsuri dreptunghiulare. În lucrarea de faţă ne vom ocupa de determinarea teoretică şi experimentală a spectrului de amplitudini al semnalului periodic reprezentat prin succesiune de impulsuri dreptunghiulare (fig. 2) cu amplitudinea A, perioada T şi durata . Pe intervalul de o T T perioadă , acest semnal se descrie prin expresia: 2 2 A, -/2 t /2
S(t)=
0, -T/2 t -/2, /2 t T/2
Fig.2 Spectru de amplitudini a semnalului periodic 29
Semnalul fiind par, amplitudinile bk din seria trigonometrică sînt nule şi deci Ak=ak. Din punct de vedere al spectrului de amplitudini nu prezintă importanţă paritatea semnalului, ştiut fiind faptul că o deplasare pe axa timpului atrage după sine doar modificarea fazelor k nu şi a amplitudinilor Ak. Utilizând relaţiile din tabelul 1 se găseşte: /2 a0 1 T/2 1 A A A0 S ( t ) dt Adt 2 T T/ 2 T / 2 T Q
(8)
unde Q=T/ este coeficientul de umplere: /2
T/2
2 2A Ak a k S ( t ) cos k tdt cos k1 tdt 1 T T/ 2 T / 2
k 2A 2A sin 1 k 2 T
k k1 sin Q 2 2A k1 Q k ,k (1, ) Q 2
sin
astfel, pentru Q=T/=2 relaţia (9) devine:
Ak 1 A1 k
sin k sin
2
1/k pentru k impar 0, pentru k par
2
Reprezentarea grafică a spectrului de amplitudini normat în acest caz, este dată în fig. 3.
30
Fig.3 Spectru de amplitudini normat În tabelul 2 sînt date exemple de reprezentare a semnalelor în domeniul timp şi spectrele lor pentru câteva forme tipice ale semnalelor periodice.
31
Nr. 1 1
Forma semnalului 2
Reprezentarea analitică 3 -A, -T/2 t 0 S(t)=
2
A, 0 t T/2
0, -T/2 t 0 S(t)=
A, 0 t T/2
Tabelul 2. Coeficienţii Fourier 4 ak=0 2A bk (1 cos k ) k 4A b2k=0; b2 k 1 ; (2k 1) k=1, 2, … 4A , A2 k 1 (2k 1) k=1, 2, 3… a0=A/2; ak=0, k=1, 2, … 2A b2k=0; b2 k 1 ; (2k 1) k=1, 2, … A0=a0/2=A/2; A2k=0
A2 k 1 b2 k 1
2A (2k 1) 33
3 S(t)=
2 A 2 A ; bk=0 T Q
A, -T/2 t T/2
a0
0, -T/2 t /2, /2 t T/2
k 2 A sin kT 2 A sin Q ak T kT Q kQ
A0
a0 A A 2 T Q
k 2 A sin Q Ak a k Q kQ
4 S(t)=
A, -T/4 t T/4
a0=A; bk=0 a k A
0, -T/2 t -T/4, T/4 t T/2
A0
sin k2 k 2
a0 A ; 2 2
2A sin k k 2 2A A2k=0; A2 k 1 (2k 1) Ak a k
34
5
ak=0; b2k=0 At/T, -T/4 t T/4 S(t)= 4A/T(T/2-t), T/4 t T/2, 4A/T(T/2+t), -T/2 t -T/4
6
2A(t/T+½), -T/2 t 0 S(t)=
2A(½-t/T, 0 t T/2
b2 k 1
8A
2 (2k 1) 2
sin(2k 1)
2
k=1, 2, …; A0=0; A2k=0
A2 k 1
8A (2k 1) 2 2
a0=A; b2k=0; a2k=0; a 2 k 1
4A (2k 1) 2 2
A ; A2k=0; 2 4A , A2 k 1 2 (2k 1) k=1, 2, … A0
35
După cum se vede din formulele tabelei 1 există aşa relaţii între coeficienţii seriilor Fourier: a C0 A 0 0 2 1 C k Ak e j k a k jbk 2 a k 2 C k cos k Ak cos k bk 2 C k sin k Ak sin k
(11)
Ak 2 C k a k2 bk2 bk ak Mărimea A0 se numeşte componenta continuă a semnalului
k arg( C k ) arctg
S(t). Mărimile
Ak 2
se numesc valorile efective ale armonicilor
(k>0). Reprezentarea numerelor Ak şi k funcţie de k1 se numeşte respectiv spectru de amplitudine şi spectru de fază. Puterea semnalului periodic de perioada T este: 1 2 PS S (t ) dt TT Au loc următoarele relaţii de tip Parseval: 2
A (12) PS C k A k k k 1 2 Deoarece puterea unei sinusoide este egală cu pătratul valorii sale efective, rezultă că puterea unui semnal periodic este suma dintre puterea componentei continue şi puterile semnalelor sinusoidale care apar în dezvoltarea sa în seria Fourier armonică.
2
2 0
36
2.2.2. Spectrele semnalelor aperiodice. Semnalele neperiodice pot fi considerate un caz aparte al semnalelor periodice cînd perioada T tinde la infinit. Fie semnalul periodic oarecare din fig. 2 este constituit din impulsuri f(t) cu durate finite, ce se succed la intervale egale cu perioada T. Evident, la limita T semnalul periodic fT(t) degenerează într-un impuls f(t).
f ( t ) T f ( t )
Fig.4 Semnal periodic analizat
0
T / 2 T / 2 Pentru semnalul periodic se scrie seria Fourier exponenţială: f T (t )
C e
n
jnt
n
T (13)
unde =2/T, iar T/2 T/2 1 1 1 jnt jnt Cn f ( t ) e dt f ( t ) e dt f ( t )e jnt dt (14) T T T/ 2 T T/ 2 T
T T deoarece în intervalul , funcţiile fT(t) şi f(t) sunt identice, 2 2 iar în afara intervalului precizat f(t)=0. Dacă (14) se înlocuieşte în (13) rezultă:
1 f T (t ) n T
jnt - jnt f ( t ) e dt e
(15)
Cînd T, frecvenţa unghiulară se micşorează foarte mult, astfel că se poate scrie ==d este infinit mic. Totodată, 37
mărimea n=n corespunde, pentru n=0, 1, 2, …, unor puncte echidistante, separate de intervale mici, pe o axă a frecvenţei n=n. Deoarece, cînd T, se obţine fT(t)f(t), =d, iar parametrul n poate lua orice valoare pe axa frecvenţei, avînd semnificaţia unei frecvenţe curente şi suma (15) devine o integrală:
1 f (t ) 2
e
jt
jt f (t )e dt d
(16).
Se notează a doua integrală cu
F ( )
f (t )e
jt
dt
(17)
şi rezultă:
1 (18) F ( )e jt d 2 Funcţia F() este transformata Fourier a semnalului f(t); ea este numită uneori funcţia spectrală sau densitatea spectrală de amplitudine complexă. Relaţia (18) exprimă semnalul f(t) ca o sumă continuă de funcţii exponenţiale avînd frecvenţele , şi amplitudinile F ( )d infinit mici . Funcţia F() este continuă existând pentru 2 orice a şi se determină prin transformata Fourier directă (17). În general F() este o funcţie complexă şi poate fi scrisă sub forma de modul şi fază: f (t )
F ( ) F ( ) e j ( ) A( ) jB ( )
(19)
F ( ) reprezintă spectrul de amplitudini, iar () reprezintă spectrul de fază. Expresia (17) rezolvă problema analizei spectrale a impulsului în sensul că ea efectuează o trecere din domeniul timp, unde este definită funcţia f(t), în domeniul frecvenţă unde este 38
conceput spectrul F(). Expresia (18) rezolvă problema sintezei spectrale a impulsului deoarece ea permite trecerea de la componentele spectrale F() la funcţia de timp f(t). Pentru lămurirea sensului fizic al funcţiei F() relaţia (18) se poate rescrie, cel puţin aproximativ, sub forma: 1 F ( n ) e j nt aproximaţia fiind cu atît mai f T (t ) f (t ) 2 n bună cu cît T este mai mare, iar este mai mic. Se deduce că impulsul f(t) se exprimă ca sumă de oscilaţii armonice. Frecvenţele unghiulare ale acestora n n sunt foarte apropiate unele de altele, pe axa frecvenţei; amplitudinile sunt egale cu: 1 1 . Se observă că F ( n ) F ( n ) f , dacă f 2 2 funcţia F(n) sau F(fn) se exprimă ca raportul dintre o amplitudine şi intervalul de frecvenţă sau f; este deci firească denumirea de densitate spectrală de amplitudine complexă care se măsoară nu în V sau A, ci în V/Hz sau A/Hz. La limita T componentele spectrale devin infinit apropiate, ele “se lipesc” unele de altele, constituind un spectru continuu al impulsului. 1 Trebuie observat că amplitudinea F ( n ) 0 cînd 2 0 ; aşadar amplitudinea componentei spectrale asociate unui punct anumit al axei frecvenţei este nulă; amplitudinea ei este nenulă numai dacă se asociază punctului o vecinătate oricât de 1 F ( n ) mică, dar finită , şi se determină amplitudinea 2 corespunzătoare acestei vecinătăţi. Funcţia F() este o funcţie complexă şi poartă informaţia cît despre amplitudine atît şi despre fază a sinusoidelor elementare. jt cos t j sin t se poate Folosind formula lui Euler e scrie
39
A() f ( t ) cos tdt ; B() f ( t ) sin tdt
(20)
Modulul şi argumentul densităţii spectrale se determină cu expresiile
F() A 2 () B 2 ()
(21)
B() (22) A() Relaţia (21) exprimă caracteristica amplitudine-frecvenţă (CAF), iar (22) caracteristica fază-frecvenţă (CFF) al spectrului continuu al semnalului neperiodic. () arctg
Ca şi pentru seria Fourier F() este funcţie pară, iar ( ) este o funcţie impară a frecvenţei . Din aceasta rezultă că relaţia (18) poate fi transformată la forma trigonometrică: 1 1 f (t) F() cos(t )d F() cos(t )d (23) 2 0 Din relaţia (23) rezultă că spectrul semnalului poate fi considerat fie pe întreaga axă a frecvenţei între , , fie că el este definit numai pentru frecvenţele 0 ; în acest al doilea caz densitatea spectrală este dublă faţă de cea din cazul anterior.
Se poate remarca că la 0 , F(0)=
f (t )dt aria sub
curba f(t). Aşadar, pentru orice semnal f(t) densitatea spectrală F( ) la frecvenţa nulă e egală numeric cu “aria semnalului”.
40
2.2.3. Legătura dintre spectrele impulsului şi succesiunii periodice a impulsurilor Fie este dat un impuls x(t) şi densitatea spectrală a lui X( ) reprezentate respectiv în fig. 5. La repetarea periodică a impulsurilor cu perioada T se obţine semnalul periodic prezentat în fig. 5b (stânga). Spectrul discret al acestei succesiuni e prezentat în partea dreaptă a fig. 5b. Coeficientul Cn a armonicii n în corespundere cu (14): T 1 1 jnt (24) C n x(t )e dt x(t )e jnt dt T 0 T 0 unde =2/T.
Fig. 5. Densitatea spectrală a impulsului simplu la aceiaşi frecvenţă
=n, ţinînd cont durata finită va fi egală:
X ( n) x(t )e jnt dt
(25)
0
Din comparaţia relaţiilor (24) şi (25) rezultă că are loc relaţia simplă: 1 C n X (n) ; X (n) T C n (26) T 2 iar amplitudinea armonicii An 2 C n X ( ) . T 41
Deci modulul densităţii spectrale a impulsului singur şi anvelopa spectrului discret a succesiunii periodice, obţinute prin repetarea impulsului dat coincid după formă şi se deosebesc numai cu o scară. Aceasta este ilustrată în figura 5b, în care prin linie 1 punctată a fost trasat modulul X (2f ) , iar cu linie plină au fost T indicate amplitudinile componentelor semnalului periodic. Relaţiile (26) permit de a calcula coeficienţii C n a seriei Fourier din densitatea spectrală X (n) şi invers. Ele arată deasemenea că dacă coeficienţii C n se măsoară în V, sau A atunci X( ) se măsoară respectiv în V*s sau V/Hz etc. 2.2.4.Sinteza semnalelor. Problema sintezei semnalului este inversă problemei de analiză. De exemplu, pentru semnalul periodic S(t) dat problema de analiză constă în determinarea coeficienţilor seriei Fourier, sau altfel spus amplitudinilor, frecvenţelor şi fazelor armonicilor. Problema de sinteză constă în determinarea formei semnalului S(t) după valorile coeficienţilor seriei Fourier. Dacă sunt cunoscuţi parametrii funcţiei Fourier Ak, k=k1, k restabilirea formei semnalului poate fi efectuată prin calculul sumei finite a seriei: M
S( t ) A 0 A k cos(k1 t k ) k 1
(27)
în punctele dorite t i pe axa timpului t. Pentru semnal periodic acest calcul se efectuează numai pe interval de o perioadă. E clar că restabilirea formei S(t) va fi cu atît mai corectă, cu cît mai mare este numărul M al armonicilor considerate şi cu atît mai mică este distanţa dintre punctele t i învecinate. Deobicei punctele t i se plasează pe axa t echidistanţate cu pasul T dT/(5M), unde T este perioada semnalului.
42
2.2.5. Transformata Fourier discretă (TFD). TFD este folosită în implementarea multor algoritmi de prelucrare numerică a semnalelor. Pe baza TFD a fost elaborat algoritmul transformării Fourier rapide (TFR), procedeu esenţial în utilizarea calculatorului electronic în probleme de analiză spectrală a semnalelor (în limba engleză FFT, Fast Fourier Transform.). La TFD semnale analizate se consideră numai pe o mulţime finită a punctelor pe axele timpului şi frecvenţei. De exemplu, un semnal x(t) cu durata finită se descrie prin secvenţa eşantioanelor xn=x(nT d) adică valorilor semnalului luate în momentele echidistanţate de-a lungul axei de timp cu pasul de discretizare (eşantionare) T d (fig. 6a). Intuitiv este clar că pasul de eşantionare Td trebuie să fie destul de mic pentru prezentarea corectă a variaţiilor rapide posibile a semnalului. În teorema de eşantionare a lui Kotelnikov-Shannon se arată că dacă semnalul x(t) are spectrul X() limitat la frecvenţa maximă fS atunci pasul de eşantionare trebuie să fie ales din condiţia: Td 1/2fS (27), numită condiţia lui Nyquist. Fie semnalul x(t) se repetă periodic cu o perioadă T=NT d. Semnalul discret xn dat pe segmentul [0,T] cu eşantioanele sale x0, x1, …, xN-1 luate în momentele corespunzătoare de timp 0, T d, …, (N-1)Td cu numărul total al eşantioanelor N=T/T d. Dacă acest semnal discret se repetă periodic (fig. 6b) atunci se poate arăta că spectrul lui va fi discret ca pentru orice semnal periodic şi în acelaşi timp va fi periodic pe axa frecvenţelor din cauza discretizării în timp. Coeficienţii Ck Fourier corespunzătoare semnalului discret xn se determină din relaţia
1 N 1 j 2kn / N Ck xn e , k=0, 1, …, N-1 N n 0
(28a)
numită TFD directă.
43
x(t)
a) 0 Td 2Td
T
XT(t)
b) Fig.6 Există şi TFD inversă care permite de a determina valorile 0 C1k: 2 3 eşantioanelor -T xn din valorile coeficienţilor T N 1
xn Ck e j 2kn / N
(29a)
k 0
În literatura de specialitate, în afară de formulele (28a) şi (29a) se folosesc şi alte definiţii:
1 N 1 Ck xn e j 2kn / N N n 0 1 N1 xn C k e j2 kn / N N k 0
(28b)
(29b)
N 1
C k x n e j2 kn / N xn
n 0 N 1
1 Ck e j 2kn / N N k 0
(28c)
(29c) 44
aceste deosebiri nu sunt principiale. În lucrarea dată va fi folosită definiţia (a). Coeficienţii Ck reprezintă componentele spectrale X(k). Forma tipică a spectrului X(k) este dată în fig. 7, din care se vede că el are caracter discret şi periodic cu perioada Nf=1/T. Distanţa între componentele spectrale f=1/T=1/N*Td.
Fig.7 Vom descrie câteva proprietăţi ale spectrului Xk: 1) Numărul coeficienţilor diferiţi Ck=X(k): C0, C1, …, CN-1, calculat după formula (28a) este egal cu numărul N a eşantioanelor pe perioadă; la k=N coeficientul CN=C0. 2) Coeficientul C0=X0 (componenta continuă) este valoarea medie a tuturor eşantioanelor
1 N 1 C0 x n N n 0
45
x( n ) a )
1
0
2
(N -1
x ( t) b )
0 x ( t) c) 1
T
0 Fig. 8. ( t) C N 3) Dacă N este număr parx 1atunci 2
N 1
1 (1) n x n N n 0
d ) este un semnal real, atunci coeficienţii numerele de 4) Dacă x(t) ordine ale cărora 1sunt poziţionate simetric faţă de N/2 sunt complex conjugate Ck=C*N-k. De aceea se poate considera că coeficienţii C n/2+1, …, CN-1 corespund frecvenţelor0 negative. La cercetarea spectrului Tde amplitudini ele nu dau informaţia nouă. Au loc aşa relaţii: Re[X(k)]=Re[X(N-k)], Im[X(k)]=-Im[X(N-k)]; X(k)= X(N-k) , arg X(k)=-argX(N-k) (30) 46
Relaţiile (30) arată că este suficient de a calcula componentele spectrale numai pentru k=0, …, N/2. Celelalte pot fi determinate din proprietăţile de simetrie. Din condiţia X(N/2)=X*(N/2) rezultă că X(N/2) este întotdeauna un număr real. Aceasta este valabilă şi pentru X(0). Dacă pasul de eşantionare Td este ales suficient de mic pentru păstrarea informaţiei conţinute în semnalul x(t) atunci totalitatea N a coeficienţilor spectrali X(k) reflectă corect informaţia despre spectrul X() al semnalului continuu x(t). Ţinînd cont de relaţia (26) densitatea spectrală X() a semnalului continuu la frecvenţele k=k*2/T se determină prin relaţia X(k)=TCk. Pentru evaluarea cu calculatoare a (28), (29) sunt elaborate multe algoritme efective cunoscute sub denumirea generală a algoritmilor de transformare Fourier rapidă (TFR) care micşorează esenţial numărul total al operaţiilor aritmetice necesare. Ca regulă algoritmii TFR necesită ca numărul N a eşantioanelor să fie egal cu puterea întreagă a numărului 2, adică N=2m (2, 4, 8, 16, …). Această restricţie nu este prea esenţială. În caz de necesitate semnalul dat Xn poate fi complectat întotdeauna cu câteva eşantioane nule pentru a căpăta numărul total N al eşantioanelor pînă la valoarea ce satisface condiţia N=2 m. Dacă semnalul x(t) are o durată lungă se aplică tehnica înmulţirii semnalului cu diverse “ferestre” w(t) adică în loc de x(t) se consideră semnalul x1(t)=x(t)*w(t). Fereastra dreptunghiulară (fig. 8) este cea mai simplă, dar, pentru evitarea apariţiei fenomenului Gibbs se utilizează şi ferestre mai evoluate (Hann, Hanning etc). 2.3. 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 câteva din aceste mijloace. Cel mai simplu mod de utilizare a MATLAB-ului pentru calculul spectrelor este utilizarea lui ca “calculator” pentru calculul 47
spectrelor după expresiile analitice gata, obţinute 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). 1 t -T/2
0
T/2
Fig.9 Semnal dreptunghiular Este cunoscut că spectrul unui astfel de semnal se descrie de expresia: sin T / 2 ; X T T 2 Xf TSa fT ; Pentru calculul graficului spectrului poate fi utilizată următorul program: » f=-10:0.1:10; » T=1; x=pi*T*f+0.001; % Adăugarea valorii foarte mici 0.001este necesară pentru excluderea împărţirii la zero în calculele următoare la f=0 » y=Sa(x);plot(f,y);grid O 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) 48
x=fft(y) x=fft(y,n) Grupa funcţiilor fft calculează TFD a succesiunilor date de vectorul x, ce se determină de relaţia: N 1
yk 1 x n 1e j2 kn / N n 0
unde N=length(x)– lungimea vectorului x, folosind algoritmul TFR. Dacă x este o matrice, se calculează transformata fiecărei coloane. Cel mai efectiv, adică cu cel mai mic număr de operaţii, şi implicit timp de calcul, algoritmul TFR lucrează atunci când N 2 m , unde m–un număr întreg. Câştigul în timpul de calcul după algoritmul TFR, în acest caz, în raport cu algoritmul clasic TFD poate atinge valoarea: TTFR 1 log 2 N TTFD 2 N şi pentru N foarte mare poate fi destul de important. m Dacă N 2 , atunci se utilizează descompunerea lui N în factori şi realizarea TFR nu în baza 2, ci în alte baze. Aceasta duce la creşterea cheltuielilor şi a timpului de calcul. Cea mai defavorabilă situaţie este atunci când N este număr prim şi nu poate fi descompus în factori. În acest caz se utilizează un algoritmul obişnuit de calcul al TFD după formula (31), ce necesită N
2
operaţii aritmetice în loc de
N log 2 N pentru 2
algoritmul TFR, cu condiţia că N 2 . Ca rezultat volumul calculelor, la lungimea masivului N=1024, va fi mult mai mic decât la valorile lui apropiate N=1019 sau 1013. de aceea uneori este mai convenabil de a completa masivul disponibil de date cu m dimensiunea N1 2 cu un număr oarecare de zerouri, astfel încât m
N 2 m (zero padding). 49
La comanda y=fft(y) se calculează TFD din N puncte, independent de lungimea adevărată a masivului x. Dacă length(x)n, elementele în plus se şterg. Funcţia x=ifft(y) calculează TFR inversă consecutivităţii date în vectorul y în corespundere cu expresia: N 1
x n 1 1 N yk 1 exp j2kn N
(32)
k o
unde N=length(x). Trebuie de remarcat faptul că scrierea formulelor pentru TFD directă (31) şi pentru TFD inversă (32) se deosebeşte 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. Funcţia 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ă acelaşi algoritm ca şi pentru funcţia fft. Pentru prezentarea graficelor spectrelor semnalelor în formă obişnuită, cu deplasarea frecvenţei nule în centrul spectrului, se utilizează regruparea masivului de ieşire al transformatelor Fourier, efectuată în MATLAB cu ajutorul comenzii: y=fftshift(x). Dacă x–vector, se efectuează reamplasarea ciclică a jumătăţilor din dreapta şi din stânga. 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 3 Trebuie de remarcat că, în virtutea periodicităţii funcţiilor exponenţiale exp(j2kn/N) în (31) cu perioada N, periodice sunt de asemenea elementele masivului transformatei Fourier y, adică ym=ym+N. 50
În afară de aceasta, dacă x este masivul valorilor unui semnal real, atunci exponentele masivului y satisfac condiţia * simetriei complex-conjugate, adică y N m y m . Aceasta permite de a micşora de două ori numărul elementelor calculate ale masivului: y0, y1,...,yN/2, deoarece elementele rămase pot fi găsite din condiţia de simetrie. Vom ilustra proprietăţi prin exemple: » x=[1,1,0,0]; » y=fft(x) y = 2.0000 1.0000 - 1.0000i 0 1.0000 + 1.0000i Masivele x şi y au dimensiunea N=4. Deoarece x este masiv real, atunci masivul y satisface condiţia conjugării complexe a elementelor de forma: y m y *N m , N 1 N impar sau N N par , m=0,1,2,..., 2 2 la enumerarea elementelor masivului începând cu zero, adică 0,1,...,N-1, sau condiţia simetriei elementelor de forma: y m y N 2m , N 1 N impar sau N N par , m=1,2,..., 2 2 la indexarea elementelor acceptată în MATLAB începând cu 1:1,2,...,N. Următorul exemplu arată că la mărirea lungimii masivului x şi utilizarea funcţiei fft(x,N), cu aceeaşi valoare N=4, rezultatul transformării va fi acelaşi. » x=[1 1 0 0 3]; » y=fft(x,4) y = 2.0000 1.0000 - 1.0000i 0 1.0000 + 1.0000i
51
Un rezultat analogic se obţine ş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:
x t
Cme
j m1 t
m
unde amplitudinile complexe C(m) se calculează după formula: T
T
1 2 1 2 jm1t Cm x t e dt x t e j2 f1mt dt T T T T 2
(33)
2
În aşa fel, spectrul de frecvenţă al semnalului periodic constă din frecvenţe multiple frecvenţei de bază f1 =1/T, adică din frecvenţele fm=m f1 (m=0,1,2...). Părţile reale şi imaginare ale C m formează, corespunzător, spectre reale şi imaginare de oscilaţie. Dacă amplitudinea complexă Cm o vom prezenta sub forma exponenţială C m
A m j e , atunci 2 m
mărimea Am va reprezenta amplitudinea componentei armonice cu frecvenţa fm=m f1, iar m–faza iniţială, adică x(t) poate fi reprezentat, de asemenea, sub aspectul aşa numitei forme armonice a şirului Fourier:
x t A 0 A m cos2mf 1 t m
(34)
m 1
Pentru semnalele reale x(t) sunt adevărate relaţiile: ReCm ReC m ImCm ImC m Cm C m m m
52
unde părţile reale ale spectrelor şi amplitudinile spectrelor sunt funcţii pare de frecvenţă, iar părţile imaginare spectrele fazei – funcţii impare. La calculele numerice a amplitudinilor spectrale C m, semnalul x(t) dat în diapazonul de timp (-T/2, T/2) sau (0, T) trebuie să fie dat de valorile sale într-un număr limitat de puncte. În acest caz integrarea se înlocuieşte prin sumare şi integrala din (31) se reprezintă aproximativ prin suma de forma: t N1 kmt 2 1 N1 2km C k x mt exp j x m exp j (35) T m 0 T N m 0 N unde se presupune că T=Nt, t–pasul de discretizare a x(t). Comparând (35) cu forma generală de scriere a TFD: N 1 2km X k x m exp j k=0,1,...,N-1 (36a) , N m 0 1 N 1 2km x m X k exp j m=0,1,...,N-1 (36b) , N k 0 N se poate de conchis că amplitudinile complexe Ck sunt legate de elementele corespunzătoare ale masivului TFD directe (36a) prin relaţia: 1 Ck X k N Aici, însă, trebuie de făcut o remarcă importantă. Seria Fourier are în caz general un număr infinit de termeni. Din formula (36a) în virtutea proprietăţilor periodicităţii (cu perioada N) şi proprietăţilor simetriei complex conjugate a elementelor * X k X N k pentru semnalele reale se poate de determinat coeficienţii
Ck
doar
pentru
k N 2 (pentru N par) şi
k N 1 2 (pentru N impar). Pentru a determina coeficienţii Ck
pentru un număr mai mare de armonici este necesar de a mări numărul N de eşantioane a semnalului luate pe o perioadă de oscilaţie T. Dacă este necesar de calculat M armonici atunci 53
numărul se alege din condiţia N M , sau N 2M . Această 2 condiţie poate fi prezentată şi în altă formă. Dacă frecvenţa maximă a spectrului calculat este egală cu fm=Mf1=M/T, atunci frecvenţa de discretizare f s 1 se alege din condiţia: t f (38) N T s 2M t f1 sau f s 2f m ce corespunde cunoscutei condiţii a teoremei KotelnicovShannon. Aceasta aduce la concluzia că pasul de discretizare t trebuie să fie nu mai puţin de două ori mai mic ca perioada componentei spectrale cu frecvenţa cea mai înaltă, adică t 2 M . În caz contrar este posibilă distorsionarea spectrului T calculat din cauza efectului de suprapunere (alising effect). Următoarea remarcă se referă la intervalul de observare a semnalului x(t). Nu-i obligatoriu ca acest interval să fie egal cu perioada oscilaţiei de bază T=T1 cum se presupunea mai sus, dar poate fi ales şi mai mare, însă astfel încât să conţină un număr întreg de perioade ale oscilaţiei de bază, adică T=lT 1, unde l este un număr întreg. În acest caz frecvenţele armonicilor semnalului analizat: kl f k kf1 k kl kl f T1 T Nt N s vor intra în submulţimea frecvenţelor în care se calculează TFD. Dacă însă l=T/T1 nu este un număr întreg, atunci calculul spectrului efectiv se realizează pe frecvenţele ce nu corespund cu frecvenţele adevărate ale armonicilor, ce aduce la distorsionarea formei spectrului, aşa numitei întinderi a spectrului(leakage-effect). În acest caz, chiar şi la calculul spectrului unei oscilaţii monotone, spectrul care conţine doar o componentă discretă, în spectrul calculat vor apărea un şir de componente suplimentare false. În fig.10, în calitate de material ilustrativ, este prezentat spectrul 54
oscilaţiei sinusoidale cu frecvenţa f=200Hz la frecvenţa fs=800Hz(fs/f=l=4) şi a oscilaţiei cu frecvenţa f=130Hz la fs=800Hz(fs/f=6,2).
f, Hz
200 a)
150
100
f, Hz
b)
Fig.10. Spectrul oscilaţiei sinusoidale la 200Hz (a) şi 130Hz(b) În acele cazuri, când perioada oscilaţiei analizate nu este cunoscută din timp şi de aceea intervalul de analiză se alege egal cu T, care poate şi să nu satisfacă cerinţelor impuse, se recomandă de a se utiliza funcţii de pondere (ferestre de pondere) w(t) la care se înmulţeşte procesul analizat x(t) înainte de a se efectua operaţia TFD. Printre cele mai cunoscute pot fi menţionate funcţiile de pondere Hamming, Hann, Cebîşev, 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: X
xt exp jt dt ;
(39a)
x t
1 (39b) X exp jt d 2 La calculele numerice se poate opera doar cu procese de o durată T limitată, şi anume însuşi procesul în intervalul dat de timp trebuie să fie dat de valorile sale într-un număr limitat de puncte N=T/t, unde t – pasul de calcul după timp. În acest caz integrarea în (39a) pe interval finit T se înlocuieşte prin sumare, iar 55
calculul spectrului se efectuează nu pe o mulţime continuă , ci pe o mulţime limitată de frecvenţe, care conţine N frecvenţe k=k sau fk=kf, unde f=fs/N=1/Nt=1/T, iar k=0,1,...,N-1. Acceptând notarea xm=x(mt) formula (39a) poate fi scrisă sub forma: N 1 2km Xkf t x m exp j t X k ,k=0,1,...,N-1 N m o (40a) unde Xk– TFD a şirului xm scrisă în forma (36a). La indexarea masivelor acceptată în MATLAB, începând nu cu 0, ci cu 1, expresia (40a) poate fi transcrisă în altă formă echivalentă: N 2k 1m 1 Xk 1f t xm 1t exp j ; N m 1 k=0,1,...,N(40b) Dacă vom nota t prin T s, vom introduce notaţia x(m)=xm=x[(m-1)t], şi avînd în vedere că numărul de puncte în care este definit acest proces este egal cu N=T/Ts=1/fTs, atunci (40b) poate fi reprezentată ca: Xk 1f Ts X k k=0,1,...,N unde Xk– TFD a şirului xm în forma acceptată de MATLAB (37). Din (40) rezultă că prin procedura fft MATLAB găseşte imaginea Fourier discretă a semnalului x(t) dat discret în timp, raportată la Ts. Pentru a folosi procedura fft cu scopul de a obţine prezentarea semnalului în domeniul frecvenţă reieşind din reprezentarea lui în domeniul timp este necesar de a efectua următoarele: 1) După valoarea aleasă a lui Ts să se calculeze mărimea Fmax a gamei de frecvenţe(în Hertzi) după formula: Fmax=1/ Ts 2) După durata dată a procesului T să se calculeze df după formula: df=1/T 56
3) După valorile calculate să se formeze vectorul valorilor frecvenţelor în care se va calcula imaginea Fourier, de exemplu, în forma: f=0:df: Fmax În rezultatul utilizării procedurii fft se va obţine valoarea vectorului Xk–TFD a succesiunii xm dată în domeniul timp. Pentru a obţine spectrul este necesar de a mai efectua următorii paşi: 1) Rezultatele acţiunii procedurii fft trebuiesc înmulţite cu factorul Ts şi supuse acţiunii procedurii fftshift, care schimbă cu locurile prima şi a doua jumătate a vectorului obţinut. 2) Să se reconstruiască vectorul frecvenţelor după algoritmul: f=-Fmax/2:df:Fmax/2 Afişarea 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.4. Lucru pentru acasă 1. După literatura recomandată, conspectul lecţiilor şi materialele acestui îndrumar să se facă cunoştinţă cu metodele de calcul şi particularităţile spectrelor semnalelor deterministe. 2. Să se efectueze calculul spectrului unuia din semnalele tipice date. 2.5. Sarcina de laborator 2.5.1. Să se efectueze calculul spectrului discret a succesiunii periodice de impulsuri dreptunghiulare cu ajutorul programului fourier2, sintaxa căreia are forma: fourier2(0,N,1) unde 0=/T=1/Q– durata relativă a impulsurilor; N– numărul armonicilor calculate. Se recomandă valorile pentru 57
calcul: 0=0.1; 0.2; 0.5; N=50. Calculul amplitudinilor şi fazelor armonicelor se efectuează după relaţiile: sin k0 A k 2 C k 20 k0 sin k0 k 1 sign 2 k0 cu presupunerea că amplitudinea impulsurilor A=1. Cercetaţi cum influenţează durata relativă 0 asupra spectrului. Pentru aceasta analizaţi 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, afişate pe ecran cu comanda fourier3. 2.5.2. Să se cerceteze procedura de sinteză a semnalului de tip meandru după numărul limitat al primelor n armonici a acestui semnal. Să se convingă de faptul că, cu creşterea lui n calitatea aproximaţiei se îmbunătăţeşte. Remarcaţi prezenţa oscilaţiilor în vecinătatea salturilor de semnal, legate cu aşa numitul efectul Gibbs, ce apare la tăierea seriei Fourier. Cercetarea se efectuează cu ajutorul programului gibbs1 adresarea la care are forma: gibbs1(n,1) unde n– numărul de armonici considerate (se recomandă valorile n=2, 5, 10). Cu ajutorul programului gibbs2 să se afişeze pe ecran concomitent trei oscilograme ale semnalului sintetizat la n=2, 10, 20. 2.5.3. Analiza spectrelor semnalelor poliarmonice Vom analiza ca exemplu semnalul ce constă din trei oscilaţii armonice cu frecvenţele 1, 2 şi 3Hz şi amplitudinile corespunzător 3, 1 şi 4. y(t)= 3cos(2t)+ sin(4t)+ 4cos(6t)
58
Vom afişa graficele a însuşi semnalului, a spectrului de amplitudine (modulul spectrului) şi de asemenea a părţilor 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);grid
Fig.11 Aflăm 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')
Fig.12
F i g . 1 1
F i g
59
În rezultat se obţine modulul spectrului complex, ce corespunde formei complexe a seriei Fourier cu coeficienţii C k A k 2 de două ori mai mici ca amplitudinile reale Ak, deoarece ele sunt “distribuite” egal între eşantioanele pozitive şi cele negative. Pentru construcţia spectrului de fază este suficient că operatorul calculului modulului A=abs(xs) să-l schimbăm cu operatorul calculului unghiului de fază P=angle(xs) cu schimbările corespunzătoare în operatorii de afişare a graficelor stem şi ylabel. Evidenţiem 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')
Fig.13 După graficele obţinute se poate judeca nu doar despre frecvenţele şi amplitudinile, dar şi despre fazele unor armonici separate. 60
2.5.4. Analizaţi posibilitatea apariţiei în spectrul calculat a componentelor spectrale false la alegerea incorectă a frecvenţei f s de discretizare a semnalului (efectul de suprapunere sau alising effect). Dacă semnalul armonic cu frecvenţa fm se eşantionează cu frecvenţa fs, atunci în spectrul semnalului discret calculat după TFR(TFD) vor apărea componente cu frecvenţa f f m kf s k 0,1,2,... . Pentru anumite valori ale lui k şi fm> fs în spectrul calculat în gama de la 0 la fs pot apărea componente false. De exemplu la fm=4300Hz şi fs=1000Hz la k=-4 apare o componentă falsă cu frecvenţa f 4300 4 1000 300 Hz, iar la k=-5 componenta cu frecvenţa f 4300 5 1000 700 Hz şi cu faza opusă fazei iniţiale la frecvenţa 700Hz, care de asemenea este falsă. Cu ajutorul programului fourier4 priviţi graficele semnalelor cu frecvenţele f1=100Hz, f2=4300Hz şi frecvenţa de discretizare fs=1000Hz, şi de asemenea spectrele sumei acestor semnale. Graficul spectrului ilustrează că în afară de componentele reale cu frecvenţele de 100, 1000-100=900Hz sunt două componente spectrale false cu frecvenţele 300 şi 700Hz, ce lipsesc în semnalul de intrare. Pentru eliminarea efectului de suprapunere a spectrelor este necesar ca frecvenţa de discretizare să satisfacă condiţia f s 2f m , unde fm– frecvenţa maximă în spectrul semnalului analizat. 2.5.5. Cu ajutorul programului fourier5 să se efectueze calculul spectrelor semnalelor armonice cu frecvenţele f1=130Hz şi f2=200Hz, utilizând intervalul de observare T=50ms şi frecvenţa de discretizare fs=800Hz. Deoarece pentru primul semnal intervalul de observare conţine un număr fracţionar 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 lipseşte. Este arătată de asemenea influenţa utilizării funcţiei Hanning cu scopul micşorării influenţei acestui efect. 61
2.5.6. Să se genereze un semnal sub unui impuls unitar dreptunghiular cu amplitudinea A=0.8 şi lăţimea 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)); grid
Fig.14 Vom 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);grid
Fig.15
F i g .
62
Graficul spectrului din figura 15 este prezentat în intervalul de frecvenţe de la 0 la fs. Pentru construcţia graficului modulului spectrului în formă obişnuită, în gama de frecvenţe de la -fs/2 la fs/2 utilizăm comenzile » xp=fftshift(x);f1=-Fm/2:df:Fm/2; » a=abs(xp);stem(f1,a),grid;xlabel('Frecventa, Hz'); »ylabel('Modulul')
Fig.16 Vom construi graficele părţilor 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')
63
Fig.17 2.5.7. Să se calculeze şi să se construiască graficele spectrului semnalului periodic ales la recomandaţiile profesorului. 2.5.8. Să se calculeze şi să se construiască graficul spectrului semnalului neperiodic ales la recomandaţiile profesorului. Întrebări de control 1. Cum apare noţiunea de frecvenţă negativă? 2. Ce caracter au spectrele semnalelor neperiodice? 3. Cum se calculează amplitudinile şi fazele spectrelor semnalelor neperiodice? 4. Cum se schimbă spectrul unei succesiuni periodice de impulsuri la schimbarea perioadei impulsurilor? 5. Cum se schimbă spectrul unei succesiuni periodice de impulsuri la schimbarea duratei impulsurilor? 6. Ce caracter are spectrul semnalului neperiodic? 7. Ce particularităţi are densitatea spectrală a semnalului real? 8. În ce constă particularitatea spectrului impulsului delta? 9. Care este legătura dintre durata impulsului şi lărgimea spectrului său? 10. Cum sunt legate între ele densităţile spectrale ale impulsurilor radio şi video? 11. În ce constă asemănarea şi deosebirea spectrelor semnalelor discrete şi analogice? 64
12. În ce constă şi cum se manifestă suprapunerea spectrelor la discretizarea semnalului? 13. Din ce condiţii se alege frecvenţa de discretizare a semnalului analogic? 14. Prezentaţi relaţiile de calcul a TFD directe şi inverse? 15. Prezentaţi relaţiile pentru transformata Fourier directă şi inversă? 16. Descrieţi posibilităţile de bază a utilizării sistemului MATLAB în analiza spectrală a semnalelor?
BIBLIOGRAFIE 1. Ю. Лазарев, MATLAB 5.x,K.,2000 2. В. Г. Потемкин, П. И. Рудаков, MATLAB 5 для студентов, М. 1999 3. В. Дьяконов, И. Абраменкова, MATLAB. Обработка сигналов и изображений. Специальный справочник, Питер, 2002 4. Signal processing Toolbox. User’s Guide, The MATHWORKS Inc, 1999С. 5. И. Баскаков, Радиотехнические цепи и сигналы. М.,1988 6. И. С. Гоноровский, Радиотехнические цепи и сигналы. М.,1986 7. Iu. Lazarev, MATLAB 5.X, Kiev, 2000
65
CUPRINS: Lucrare de laborator nr.1 FORMAREA SEMNALELOR CONTINUE ŞI DISCRETE ÎN SISTEMUL MATLAB.....................................................................3 Lucrare de laborator nr.2 CERCETAREA SPECTRELOR SEMNALELOR........................26 BIBLIOGRAFIE............................................................................65
66
View more...
Comments