Sunteți pe pagina 1din 12

Semnale & Spectre

SEMNALE & SPECTRE


1. Reprezentarea semnalelor periodice prin serii Fourier
Descompunerea semnalelor periodice n funcii elementare se realizeaz cu ajutorul
seriilor Fourier. Un semnal periodic s(t) de perioad T poate fi dezvoltat n serie Fourier dac
satisface condiiile lui Dirichlet, i anume:
s(t) s fie o funcie de modul integrabil pe intervalul T, adic
t 0 +T

s(t ) dt

s fie finit;

t0

s aib un numr finit de discontinuiti finite n intervalul unei perioade;


s aib un numr finit de maxime i minime n interiorul unei perioade.
ndeplinirea acestor condiii asigur convergena uniform a seriilor.
Dezvoltarea n serie Fourier poate s ia urmtoarele forme:
Forma trigonometric

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

s(t ) cos(n 0 t )dt

(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

Semnale & Spectre

Relaiile de legtur dintre coeficienii Cn i coeficienii seriilor trigonometric i


armonic sunt:
a jbn
(10)
C n = C ( n 0 ) = n
2
a + jbn
(11)
C n = C ( n 0 ) = n
2
A
a
(12)
C n = C n = n ;
C0 = 0
2
2
Alegerea limitelor de integrare n evaluarea coeficienilor seriilor Fourier este
T
T
arbitrar; esenial este ca integrarea s se fac pe o perioad (de la la + , de la 0 la T ).
2
2
Pentru semnale pare, seria trigonometric coincide cu cea armonic, deoarece bn = 0
T
conform relaiei (4) (n care se ia t 0 = ). Similar, pentru semnalele impare, a0 = an = 0 n
2
baza relaiilor (2) i (3). Se obine astfel o sum de funcii sinusoidale, care poate fi pus n
forma (5).
Caracterizarea n domeniul frecven a semnalelor periodice se face prin reprezentarea
diagramelor spectrale de amplitudini i faze.
Deoarece semnalele periodice sunt exprimate prin sume discrete de semnale
elementare de tip cosinusoidal, respectiv exponenial, rezult c spectrele de amplitudini i
cele de faze vor fi discrete, liniile spectrale asociate fiecrei componente existnd numai la
multiplii frecvenei de repetiie.
La spectrele asociate seriei armonice, liniile spectrale vor fi localizate la frecvenele:
0, 0 , 2 0 , etc., n timp ce la spectrele asociate seriei exponeniale liniile spectrale vor fi
localizate la: 0, 0 , 2 0 , etc.; dou componente exponeniale localizate simetric fa
de ordonat se nsumeaz i dau o component sinusoidal de frecven pozitiv. Frecvenele
negative sunt introduse de acest instrument matematic de analiz, care este seria Fourier
complex i care opereaz cu semnale exponeniale. Acestea nu au semnificai fizic luate
individual, ci numai n perechi de componente de frecvene k 0 . Ca atare, atunci cnd se
analizeaz spectrul unui semnal periodic utiliznd seria exponenial, trebuie s se in seama
c frecvenele componentelor cu existen real sunt cele pozitive, iar amplitudinile acestor
componente sunt duble fa de cele date de seria complex.
Analiza spectral a unui semnal ne permite s stabilim limea benzii de frecven
efectiv ocupat de acel semnal.
Considerm un semnal periodic de forma:

s( t ) =

n =

s g ( t nT ) =

n =

n=0

C n e jnt = C 0 + 2 C n cos(nt + arg Cn)

(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

Dup efectuarea calculelor se obine:

Semnale & Spectre

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)

2. Transformata Fourier discret (TFD)


n prelucrarea numeric cu TFD, prin software, semnalul trebuie discretizat att n
domeniul timp, ct i n domeniul frecvenei.
Considerm un semnal periodic care s-a obinut dintr-un semnal generator de o form
oarecare, aa cum se poate observa din fig. 1. Tot din aceast figur se poate observa c
transformata Fourier a semnalului generator sg(t) este Sg(). Vom eantiona semnalul periodic
s(t) (n domeniul timp) cu un numr de N eantioane ntr-o perioad T a acestui semnal.
Rezult c pasul de eantionare n domeniul timp este:
T
T0 =
(16)
N
s(t)
sg(t)

t
T0

T
S()

Sg()

0
Sg()

sg(t)

t
Fig. 1. Discretizarea unui semnal periodic oarecare n domeniile timp i frecven

Semnale & Spectre

Corespunztor acestor N eantioane dintr-o perioad a semnalului s(t), vom avea n


domeniul frecvenei tot N eantioane ntr-o perioad (deoarece numrul de eantioane prin
care este aproximat semnalul n interiorul unei perioade din domeniile timp i frecven este
acelai N).
Deoarece pasul de eantionare n domeniul timp este T0, rezult c frecvena de
eantionare este:
1
0 =
(17)
T0
Conform cu afirmaia de mai sus, n acest interval de frecven vom considera tot N
eantioane, deci pasul de eantionare n domeniul frecvenei va fi:

(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)

Eantionnd semnalul periodic s(t) cu N eantioane ntr-o perioad, rezult c


eantionul m al acestui semnal poate fi exprimat ca mai jos:
S ( n )
g
s( mT0 ) =
e jn mT0 , unde m = 0, , N 1
(20)
n= N T0
Semnalul eantionat din domeniul timp poate fi exprimat printr-o secven de
impulsuri unitate (Dirac):

s( t ) =

s( nT0 ) (t nT0 )

(21)

n =

Aplicnd transformata Fourier acestui semnal, obinem:

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

, unde conform cu relaia (19) avem

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

Semnale & Spectre

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

Relaia (26) definete transformata Fourier discret (TFD).


Se poate defini i inversa transformatei Fourier discrete (ITFD). Prin analogie cu
perechea de transformate Fourier pentru semnale continue, dup efectuarea calculelor se poate
obine:
1 N 1
s( nT0 ) =
(27)
S ( k ) W Nnk , n = 0, 1, , N 1
N k =0
Observnd cu atenie fig. 1, se poate remarca faptul c eantioanele S(k) nu sunt
eantioane din Sg() (din transformata Fourier a semnalului generator), ci dintr-o funcie
periodic; la fel s(nT0) nu sunt eantioane din sg(t) (din semnalul generator), ci din funcia
periodic s(t).
Ne intereseaz n ce condiii eantioanele S(k) coincid cu eantioanele Sg(k),
deoarece n acest caz eantioanele Sg(k) ar fi chiar coeficienii dezvoltrii n serie Fourier a
semnalului sg(t) prin repetarea cruia s-a obinut semnalul periodic s(t), dar multiplicai cu
1/N. Evident acest lucru se ntmpl dac vom considera semnalul generator n domeniul timp
ca fiind egal chiar cu semnalul periodic s(t), dar numai n intervalul de timp [ T/2;T/2].
s g ( t ) = s( t ); t [T / 2;T / 2]
(28)
Urmrind fig. 2 se observ c n acest caz eantioanele S(k) sunt chiar eantioanele
Sg(k), adic coeficienii dezvoltrii n serie Fourier ai semnalului periodic s(t), dar care
trebuie multiplicai cu 1/N.
Conform cu relaia (8) n care punem t0 = 0 i 0 = , coeficienii dezvoltrii n serie
Fourier pot fi exprimai astfel:
T

Ck =

1
s( t ) e jkt dt
T 0

Discretiznd intervalul de timp (t nT0), relaia de mai sus devine:


T

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)

Semnale & Spectre

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]

3. Interpretarea geometric a transformatei Fourier discrete (TFD)


nlocuind n relaia (26) Ak = S(k) i an = s(nT0), aceasta devine:

Ak =

N 1

a nW Nnk

(30)

n= 0

n fig. 3 se poate urmri o interpretare geometric a TFD.


Astfel pentru k = 0, se obine componenta de curent continuu (fig. 3.a), care se scrie:

A0 =

N 1

an

(31)

n= 0

Pentru k = 1, se obine armonica 1 (fig. 3.b):

A1 =

N 1

n=0

a n W N n

N 1

an e

2
n
N

(32)

n=0

Pentru k = 2, se obine armonica 2 (fig. 3.c):

A2 =

N 1

n= 0

a n W N 2 n

N 1

an e

2
2 n
N

(33)

n=0

Semnale & Spectre

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

4. Algoritmul FFT (transformata Fourier rapid)


Timpul de calcul al oricrui sistem numeric este cu att mai mare cu ct numrul de
nmuliri ce trebuie efectuate este mai mare. Timpul necesar efecturii adunrilor este
neglijabil n comparaie cu timpul necesar nmulirilor. Deci se poate considera c un algoritm
de calcul este cu att mai performant cu ct va efectua un numr mai mic de nmuliri.
Algoritmul FFT se bazeaz tocmai pe reducerea numrului de nmuliri, astfel:
S presupunem c se calculeaz o serie Fourier cu 2N termeni, prin intermediul TFD.
Vom descompune aceast serie n dou serii Fourier (una corespunztoare termenilor pari i
cealalt corespunztoare termenilor impari, fiecare serie avnd N termeni).

Ak =

2 N 1

N 1

N 1

m =0

n=0

n=0

a m W 2Nmk =

a 2n W 2N2nk +

a 2n+1 W 2N( 2n+1)k

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

Semnale & Spectre

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

Semnale & Spectre


y(0)=0.24902
y(1)=0.44878
y(2)=0.31831
y(3)=0.15143
y(4)=0.00195
y(5)=0.08864
y(6)=0.10609
y(7)=0.06568
y(8)=0.00195
y(9)=0.04862

S se compare acest rezultat cu spectrul semnalului periodic obinut prin repetarea


acestui semnal generator (se vor considera 32 de perioade). Ce concluzie se poate desprinde?
t=[0:0.001:1.024];
x=(1*(t<0.256)+0*(t>=0.256));
N=1024
subplot(4,1,1);
plot(t,x);
Y=fft(x,N);
Py=2*sqrt(Y.*conj(Y))/(N);
Py(1)=Py(1)/2;
Pyy=Y.*conj(Y)/N;
f=1000*(0:N/2)/N;
subplot(4,1,2);
plot(f,Py(1:(N/2+1)));
%plot(f(1:100),Pyy(1:100));
subplot(4,1,3);
d=2*abs(Y)/N;
d(1)=d(1)/2;
plot(f,d(1:(N/2+1)));
subplot(4,1,4);
plot(f,Pyy(1:(N/2+1)));
i=[1:10];
a=sprintf('%2.5f\n',d(i))
mean(Pyy)

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.

Semnale & Spectre

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

Fig. 4. Analiza spectral a unui semnal vocal, realizat cu programul MATLAB

Programe MATLAB care realizeaz analiza spectral


Programul 1
N=2048 %Nr. de puncte considerate pentru calculul fft
T=0.04 %Durata totala a semnalului considerat
subplot(4,1,1);
plot(t,x);
Y=fft(x,N);
Py=2*sqrt(Y.*conj(Y))/(N); %Se calculeaza spectrul de amplitudine
Py(1)=Py(1)/2; %Se calculeaza spectrul de amplitudine
Pyy=Y.*conj(Y)/(N); %Se calculeaza DSP
f=(N/T)*(0:N/2)/N; %Se afiseaza axa frecventei
subplot(4,1,2);
plot(f,Py(1:(N/2+1)));
%plot(f(1:100),Pyy(1:100));
subplot(4,1,3);
plot(f,Pyy(1:(N/2+1)));
Pf=(180/pi)*angle(Y); %Se calculeaza spectrul de faza
10

2500

Semnale & Spectre

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

Semnale & Spectre

S se realizeze analiza spectral a semnalelor MA i MF obinute cu ajutorul


schemelor bloc reprezentate mai jos, utilizndu-se unul dintre programele MATLAB de
analiz spectral, ilustrate anterior.
Modulatia de amplitudine a unui semnal vocal
T=0.04s
N=2048 puncte de calcul

Pas calcul = T/N


f0 < N/(2T)

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

Semnal vocal modulat MF


T=0.04s
N=2048 puncte de calcul

2*pi*15e3
wo
12:34

f0 < N/(2T)

Product
MATLAB
Function

time

Sum

1
beta

Pas calcul = T/N

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

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