Seria Fourier

Partea a III-a: Exemple

Universitatea Tehnica "Gh. Asachi", Iasi, Facultatea de Electronica si Telecomunicatii

Laboratorul de Semnale, Circuite si Sisteme

http://scs4.etc.tuiasi.ro

Breviar teoretic

> restart:with(inttrans):

> libname:="../SCSlib",libname:

> addtable(fourier,sg(t),Sg(omega),t,omega);

Pornind de la semnalul generator sg(t) se obtine semnalul periodic de perioada T:

> sp(t):=sum(sg(t-n*T),`n`=-infinity..infinity);

sp(t) := sum(sg(t-n*T),n = -infinity .. infinity)

Semnalul periodic se poate descompune sub forma seriei Fourier complexe:

> spsfc(t):=subs(T=2*Pi/Omega,SFC(sp(t),t));

spsfc(t) := sum(1/2*Omega*Sg(n*Omega)*exp(I*n*Omega...

unde Omega = 2*Pi/T iar coeficientii seriei Fourier complexe sunt c[n] = Sg(n*Omega)/T .

Semnalul periodic se descompune sub forma seriei Fourier reale:

> spsfr(t):=subs(T=2*Pi/Omega,SFR(sp(t),t));

spsfr(t) := 1/2*Omega*Sg(0)/Pi+sum(1/2*Omega*(Sg(n*...

unde Omega = 2*Pi/T iar coeficientii seriei Fourier complexe sunt a[0] = c[0] , a[n] = c[n]+c[-n] , b[n] = I*(c[n]-c[-n]) .

Pentru acelasi semnal transformata Fourier este:

> Sp(omega)=subs(T=2*Pi/Omega,FOURIER(sp(t),t,omega0));

Sp(omega) = sum(Omega*Sg(n*Omega)*Dirac(omega0-n*Om...

Mod de lucru

In afara de functiile incluse in libraria standard Maple, in aceasta lucrare vor fi utilizate cateva functii din libraria aditionala SCSlib.

Pentru calcularea transformatei Fourier a unor semnale:

Pentru trunchierea unor serii:

Pentru reprezentarea spectrelor unor semnale:

> restart:

> libname:="../SCSlib",libname:

> F:=table([dir=FOURIER,inv=inttrans[invfourier]]):

> Sg:=(omega)->F[dir](sg(t),t,omega):

> Sp:=(omega)->F[dir](sp(t),t,omega):

Exemplu

Pentru semnalul periodic obtinut prin repetarea pulsului generator de forma: PIECEWISE([cos(t), abs(t) < 1/2*Pi],[0, 1/2*Pi <= a...

> sg:=(t)->cos(Pi/tau*t)*(Heaviside(t+tau/2)-Heaviside(t-tau/2));plot(eval(sg(t),tau=Pi/2),t=-1.1*Pi..1.1*Pi,numpoints=1000,color=[black,red],title="sg(t)",view=[DEFAULT,-0.5..1.5], style=LINE, thickness = 2);

sg := proc (t) options operator, arrow; cos(Pi*t/ta...

[Maple Plot]

Spectrul pulsului generator este:

> Sg(omega);

(-I*Pi^2*Dirac((-tau*omega+Pi)/tau)+I*Dirac((-tau*o...

Semnalul periodic este definit sub forma:

> sp:=(t)->sum(sg(t-n*T),`n`=-infinity..infinity);

sp := proc (t) options operator, arrow; sum(sg(t-n*...

Seria Fourier complexa a semnalului periodic este:

> SFC(sp(t),t);

sum(-2*Pi*cos(tau*n*Pi/T)*tau*exp(2*I*n*Pi*t/T)/(T*...

Seria Fourier reala a semnalului periodic este:

> SFR(sp(t),t);

2*tau/(T*Pi)+sum(-4*Pi*cos(tau*n*Pi/T)*tau*cos(2*n*...

Spectrul acestui semnal este discret:

> Sp(omega);

sum(2*I*cos(tau*n*Pi/T)*T*Dirac((2*tau*n+T)/(T*tau)...
sum(2*I*cos(tau*n*Pi/T)*T*Dirac((2*tau*n+T)/(T*tau)...

Reprezentarea formelor de unda ale pulsului generator si semnalului periodic corespunzator:

> plot(eval([sg(t),ts(sp(t),n=-5..5),cos(2*t)],[tau=Pi/2,T=2*Pi]),t=-5*Pi..5*Pi,numpoints=1000,color=[black,red,gray],title="sg(t) (negru), sp(t) (rosu), cos(w0*t) (gri)",view=[DEFAULT,-1.5..1.5], style=LINE, thickness = 2);

[Maple Plot]

Reprezentarea armonicelor din compozitia spectrala a semnalului periodic:

> plot([ts(eval(sp(t),[tau=Pi/2,T=2*Pi]),n=-20..20),seq(SFR(eval(sp(t),[tau=Pi/2,T=2*Pi]),t,armonica=i),i=0..4)],t=-5*Pi..5*Pi,title="Reprezentarea componentelor spectrale",view=[DEFAULT,-1.5..1.5]);

[Maple Plot]

> plot([ts(eval(sp(t),[tau=Pi/2,T=2*Pi]),n=-20..20), ts(SFR(eval(sp(t),[tau=Pi/2,T=2*Pi]),t),n=0..10)],t=-3.25*Pi..3.25*Pi,color = [red, black],title="Aproximarea cu numar finit de componente din SFR",numpoints=1000, view=[DEFAULT,-1.5..1.5], style=LINE, thickness = 2);

[Maple Plot]

> INTERFACE_PLOT(ANIMATE(seq( [op(plot( [ ts(SFR(eval(sp(t),[tau=Pi/2,T=2*Pi]),t),n=0..i), ts(eval(sp(t),[tau=Pi/2,T=2*Pi]),n=-20..20)],t=-3.25*Pi..3.25*Pi, numpoints=200,color=[black,red]))[1..2],TEXT([2,0.5],cat("N=",i))],i=0..10)),TITLE("Efectul aproximarii cu numar finit de componente"));

[Maple Plot]

Reprezentarea spectrelor pulsului generator si semnalului periodic:

> PLOT3D(rpa(ts(eval(Sp(omega),[tau=Pi/2,T=2*Pi,w0=2]),n=-20..20),omega,interval=-20..20,tipgrafic=D3,culoare=[1,0,0]),rpa(eval(Sg(omega),[tau=Pi/2,T=2*Pi,w0=2]),omega,interval=-20..20,tipgrafic=D3),AXESSTYLE(NORMAL),AXESLABELS("omega","Re","Im"),TITLE("Sg(omega) (rosu) si Sp(omega) (negru)"));

[Maple Plot]

> PLOT(rpa(ts(eval(Sp(omega),[tau=Pi/2,T=2*Pi,w0=2]),n=-20..20),omega,interval=-20..20,tipgrafic=modul,culoare=[1,0,0]),rpa(eval(Sg(omega),[tau=Pi/2,T=2*Pi,w0=2]),omega,interval=-20..20,tipgrafic=modul),AXESSTYLE(NORMAL),AXESLABELS("omega",""),TITLE("|Sg(omega)| (rosu) si |Sp(omega)| (negru)"));

[Maple Plot]

> PLOT(rpa(ts(eval(Sp(omega),[tau=Pi/2,T=2*Pi,w0=2]),n=-20..20),omega,interval=-20..20,tipgrafic=faza,culoare=[1,0,0]),rpa(eval(Sg(omega),[tau=Pi/2,T=2*Pi,w0=2]),omega,interval=-20..20,tipgrafic=faza),AXESSTYLE(NORMAL),AXESLABELS("omega",""),TITLE("argument(Sg(omega)) (rosu) si argument(Sp(omega)) (negru)"));

[Maple Plot]

Probleme. Intrebari

1. Refaceti calculele pentru un puls generator deplasat.

2. Cum este spectrul pulsului generator? Comparati cu spectrul pulsului dreptunghiular si a pulsului triunghiular. Cum este spectrul semnalului periodic?

3. Comparati aproximarea cu numar finit de componente din SFR pentru puls generator dreptunghiular si pentru puls generator de tip cosinus. In ce caz aproximarea este mai buna? Explicati concluzia!

4. Refaceti calculele pentru puls generator de tip Gauss.