Documente Academic
Documente Profesional
Documente Cultură
Semnale Spectre
Semnale Spectre
s(t ) dt
s fie finit;
t0
a
s( t ) = 0 + [a n cos n 0 t + bn sin n 0 t ]
2 n =1
Coeficienii a0, an, bn se calculeaz cu relaiile:
2
a0 =
T
2
an =
T
bn =
2
T
(1)
t 0 +T
s(t )dt
(2)
t0
t 0 +T
(3)
t0
t 0 +T
s( t ) sin( n 0 t )dt
(4)
t0
1 0
=
reprezint frecvena de repetiie a semnalului periodic (frecvena
T 2
fundamental).
Forma armonic
a
s( t ) = 0 + An cos(n 0 t + n )
(5)
2 n =1
unde:
b
An = a n2 + bn2 i n = arctan n
(6)
an
Forma complex sau exponenial
unde
f0 =
s( t ) =
C n e jn t
(7)
n =
unde:
1
Cn =
T
t 0 +T
s(t )e
jn 0 t
(8)
dt
t0
Coeficienii Cn sunt mrimi complexe i deci pot fi reprezentate prin modul i faz:
C n = C n e j n
(9)
1
s( t ) =
n =
s g ( t nT ) =
n =
n=0
(13)
unde sg(t) este semnalul generator prin repetarea cruia s-a obinut semnalul periodic s(t).
n cele ce urmeaz ne propunem s determinm coeficienii dezvoltrii n serie Fourier
Cn a semnalului periodic considerat.
T
Conform cu relaia (8), n care considerm 0 = , iar t 0 = , se poate scrie:
2
1
Cn =
T
T/2
s( t ) e
T / 2
jnt
1
dt =
T
T/2
s g ( t kT ) e jnt dt
k
=
T / 2
Cn =
S g ( n )
(14)
T
unde Sg() este transformata Fourier a semnalului generator s(t).
Deci n final se poate scrie:
S ( n )
g
s( t ) = C n e jnt =
e jnt
T
n =
n =
(15)
t
T0
T
S()
Sg()
0
Sg()
sg(t)
t
Fig. 1. Discretizarea unui semnal periodic oarecare n domeniile timp i frecven
(18)
N
Din relaiile (16), (17) i (18) se poate scrie:
T
2
N=
= 0 , unde =
T0
T
Conform cu relaia (15), semnalul periodic s(t) se poate scrie:
S ( n )
g
s( t ) = s g ( t nT0 ) =
e jnt
T
n =
n=
(19)
s( t ) =
s( nT0 ) (t nT0 )
(21)
n =
F{s(t)} = S( ) =
- j t
s(t) e dt =
n=
s( nT0 )
jt
s( nT0 ) ( t nT0 ) e jt dt =
n
=
( t nT0 )dt =
(22)
s(nT0 ) e jnT
n =
n realitate, semnalele cu care opereaz TFD sunt cauzale (deci nule la t < 0), iar
durata n timp este limitat la numrul de eantioane prin care este aproximat semnalul
respectiv.
nlocuind n relaia (22) variabila curent cu variabila discret k, se obine:
S ( k ) =
N 1
s(nT0 ) e jk nT
n= 0
2
T
=
N
N
n final rezult:
T0 =
S ( k ) =
N 1
s(nT0 ) e
(23)
j
2
nk
N
(24)
n= 0
Notnd W N = e
Relaia (24) devine:
2
N
(25)
N 1
s( nT0 ) W Nnk , k = 0, 1, , N 1
S ( k ) =
(26)
n= 0
Ck =
1
s( t ) e jkt dt
T 0
1
C k = s( nT0 ) e jk nT0 T0 , unde dt T0, iar T = NT0, T = 2
T 0
Aproximnd integrala de mai sus prin sum i innd cont de relaia (27) i
observaia (28), rezult:
1
Ck =
N
N 1
s(nT0 ) e
n=0
2
nk
N
1
N
N 1
s( nT0 ) W Nnk = N S g (k )
n= 0
(29)
s(t)
sg(t)
- T/2
T/2
T0
S()
Sg()
Sg()
sg(t)
t
Fig. 2. Cazul cnd semnalul generator este chiar semnalul periodic s(t) n intervalul [-T/2;T/2]
Ak =
N 1
a nW Nnk
(30)
n= 0
A0 =
N 1
an
(31)
n= 0
A1 =
N 1
n=0
a n W N n
N 1
an e
2
n
N
(32)
n=0
A2 =
N 1
n= 0
a n W N 2 n
N 1
an e
2
2 n
N
(33)
n=0
A0
a0
a1
a2
aN - 1
a
a0
2/N
A1
a1
a2
aN - 1
a0
4/N a1
am
a2
A2
c
b
Fig. 3. Interpretarea geometric a transformatei Fourier discrete;
a) componenta continu; b) armonica 1; c) armonica 2
Ak =
2 N 1
N 1
N 1
m =0
n=0
n=0
a m W 2Nmk =
a 2n W 2N2nk +
Dac notm a2n = bn i a2n+1 = cn, (bn Bk, cn Ck) relaia de mai sus devine:
Ak =
N 1
N 1
n= 0
n=0
bn W Nnk + W Nk c n W Nnk = Bk + W Nk C k
Este de remarcat faptul c pentru calculul seriei Fourier iniiale cu 2N termeni sunt
necesare 4N2 nmuliri, iar pentru calculul celor dou serii Fourier, fiecare avnd N termeni
(n care s-a descompus seria iniial de 2N termeni) sunt necesare 2N2 nmuliri. n urma
acestei operaii timpul de calcul scade, practic s-a redus la jumtate. n continuare fiecare din
cele dou serii poate fi descompus la rndul ei n alte dou serii Fourier .a.m.d., pn cnd
7
se ajunge la o serie cu doi termeni, care se calculeaz foarte uor. Prin intermediul acestui
algoritm, se obine o reducere important a timpului de calcul a oricrei serii Fourier.
5. Aplicaii
Exist numeroase pachete de programe care folosesc algoritmul FFT, dar rezultatele
furnizate de acestea nu sunt ntotdeauna n concordan.
De exemplu dac efectum FFT cu ajutorul programului MATLAB pentru o serie cu
N termeni, rezultatul algoritmului va fi un vector complex avnd tot N termeni, dar numai
N/2+1 dintre acetia au semnificaie fizic, restul termenilor fiind corespunztori frecvenelor
negative. Dac ne intereseaz seria Fourier armonic se calculeaz modulul fiecrui termen al
seriei, dar inndu-se cont de relaia (12), astfel:
C0
Ci
A0 =
Ai = 2
,
, i = 1,2, , N / 2 + 1
(34)
N
N
unde C i = x i + j y i este termenul complex al seriei Fourier.
Pentru a se obine un rezultat ct mai corect este necesar ca numrul eantioanelor
dintr-o perioad, precum i numrul total de eantioane n care se calculeaz FFT s fie de
forma 2N (o putere a lui 2).
n cazul programului MATHCAD, vectorul eantioanelor semnalului cruia i se aplic
FFT trebuie s conin 2m termeni, iar rezultatul va fi un vector avnd 1+2m-1 elemente.
n acest caz coeficienii seriei Fourier armonice se calculeaz cu relaia:
C0
Ci
A0 =
Ai = 2
,
, i 1
(35)
N
N
1. Deoarece n calculele inginereti intereseaz valoarea amplitudinilor armonicelor s se
verifice corectitudinea relaiilor (34) i (35) pentru diferite semnale.
2. S se realizeze prin soft un analizor spectral folosindu-se programele MATLAB sau
MATHCAD.
3. Cu ajutorul analizoarelor spectrale realizate, s se determine spectrele diferitor tipuri de
semnale, folosindu-se programele SIMULINK, MATHCAD i SPICE. S se verifice
corectitudinea rezultatelor obinute.
4. Se consider un semnal generator de tip dreptunghiular, avnd factorul de umplere 1/4,
apoi semnalul periodic obinut prin repetarea acestui semnal generator (se vor lua de
exemplu 32 de perioade). S se determine spectrele celor dou semnale i s se explice
rezultatul obinut.
Spectrul unui semnal generator dreptunghiular, avnd factorul de umplere 1/4, poate fi
determinat cu urmtoarea secven MATLAB:
N=1024
i=[1:N];
v(i)=(1*(i<N/4)+0*(i>=N/4));
plot(v(i));
z=fft(v);
d=abs(z)/N;
x(i)=2*d(i);
x(1)=x(1)/2;
%i=[1:(N/2+1)];
i=[1:10];
y=sprintf('%2.5f\n',x(i))
Primele 10 armonice obinute n acest caz sunt:
8
5. Se determin spectrul semnalului vocal din fig.4 preluat pe calculator prin intermediul
unui OSCILOSCOP TEKTRONIX 210, cu ajutorul analizorului spectral prezentat n
continuare.
n urma prelurii semnalului vocal pe calculator rezult dou fiiere de date de tip txt.
Primul fiier (date1.txt) conine valorile armonicelor, iar al doilea (time1.txt) momentele
de eantionare. Ambele fiiere trebuie ncrcate n directorul MATLAB/BIN.
Pentru transferarea datelor din aceste fiiere ntr-un vector MATLAB se utilizeaz
comenzile:
load date1.txt
x=date1
x=x(1:2048) % se consider doar primele 2048 de eantioane
load time1.txt
t=time1
t=t(1:2048)
Pentru vizualizarea rezultatelor obinute n urma analizei spectrale se salveaz rezultatele
furnizate de analizorul spectral ntr-un fiier de tip txt, astfel:
save date2.txt X -ascii
unde X este vectorul furnizat de analizorul spectral.
Semnalul temporal
4
2
x(t)
[V] 0
-2
-4
-0.05
-0.04
0.5
0
0.01 0.02
t[s]
Analiza spectral a unui semnal vocal
-0.03
-0.02
-0.01
0.03
0.04
0.4
X(f) 0.3
[V]
0.2
0.1
0
0
500
1000
f[Hz]
1500
2000
2500
subplot(4,1,4);
plot(f,Pf(1:(N/2+1)));
i=[1:10];
Mag=sprintf('%2.5f\n',Py(i))
DSP=sprintf('%2.5f\n',Pyy(i))
Total_Power=mean(Pyy) %Se calculeaza puterea totala a semnalului
Programul 2
function [f,X]=afft(x,t)
%Acest program realizeaza analiza spectrala a unui semnal vocal, folosind fft.
%x=x';
%t=t';
fe=1/(t(2)-t(1)); % frecventa de esantionare
N=length(x) % lungimea secventei
Xt=fft(x); % transformata Fourier
%Xf=Xt(1,1:N/2+1);
%Xf=(180/pi)*angle(Xf); % spectrul de faze
Xm=abs(Xt); % determina modulul
X=Xm(1,1:N/2+1)/(N/2); % selecteaza primele N/2+1 esantione
X(1)=X(1)/2;
for i=1:N/2+1
S(i)=2*pi*X(i)*X(i); % calculeaza densitatea spectrala de putere
end
S=S(1,1:N/2+1);
f=[0:N/2]*fe/N; % frecventele pozitive
subplot(211) % selecteaza fereastra superioara
plot(t,x) % reprezinta semnalul continuu
grid % traseaza retea grid
xlabel('t[s]') % eticheteaza axa x
ylabel('x(t) [V]') % eticheteaza axa y
title('Semnalul temporal') % pune titlul
subplot(212) % selecteaza fereastra inferioara
%stem(f,Xf); % reprezinta valori discrete
f=[0:N/10]*fe/N;
X=X(1:N/10+1);
plot(f,X);
xlabel('f[Hz]')
ylabel('X(f) [V]')
grid
title('Analiza spectrala a unui semnal')
11
1
A
Product1
Product2
Semnal MA
0.4
Mag purtatoare=U0
Sum
Purtatoare (f0)
1
m
To Workspace
Sma=[U0+u(t)]*cos(w0*t)
Product
[t d]
From
Workspace
Semnal vocal
2*pi*15e3
wo
12:34
f0 < N/(2T)
Product
MATLAB
Function
time
Sum
1
beta
MATLAB Fcn
Product1
Product3
Semnal MF
Mag=U0
To Workspace
0.03
alfa
[t d]
From
Workspace
Product2
Smf=U0*cos{w0*t+alfa*Integr[u(t)]}
2*pi*15e3
s
Transfer Fcn
Semnal vocal
12