Formule de dualitate timp-frecventa

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

Laboratorul de Semnale, Circuite si Sisteme

http://scs4.etc.tuiasi.ro

Breviar teoretic

Scopul lucrarii:

Studiul spectrului unui semnal periodic, a spectrului unui semnal esantionat si a unui semnal periodic si esantionat.

Rezumat teoretic:

Semnalul periodic se defineste prin repetarea unui puls generator la intervale de timp T:

s[p](t) = sum(sg(t-n*T),n = -infinity .. infinity) .

Pentru semnalul periodic astfel definit se deduce o formula a spectrului semnalului periodic in functie de spectrul pulsului generator.

Semnalul discret se obtine prin esantinarea unul semnal continuu:

s[es](t) = s(t)*delta[Tes](t)

Se deduce o formula care exprima spectrul semnalului discret in functie de spectrul semnalului continuu.

> restart:with(inttrans):

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

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

Pentru esantionare lucram cu semnalul periodic:

> delta[T]:=(t,T)->sum(Dirac(t-n*T),`n`=-infinity..infinity);

delta[T] := proc (t, T) options operator, arrow; su...

Spectrul semnalului este:

> delta[Omega]:=subs(T=2*Pi/Omega,F[dir](delta[T](t,T),t,omega));

delta[Omega] := sum(Omega*Dirac(omega-n*Omega),n = ...

Reprezentarea grafica:

> T1:=1: PLOT(rpa(eval(ts(delta[T](t,T),n=-10..10),T=T1),t,interval=-5.5..5.5,tipgrafic=modul,culoare=[1,0,0]),AXESSTYLE(NORMAL),AXESLABELS("t",""),TITLE("DeltaT(t)"));PLOT(rpa(eval(ts(delta[Omega],n=-10..10),Omega=2*Pi/T1),omega,interval=-15..15,tipgrafic=modul,culoare=[1,0,0]),AXESSTYLE(NORMAL),AXESLABELS("omega",""),TITLE("DeltaOmega(omega)"));

[Maple Plot]

[Maple Plot]

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:with(inttrans):

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

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

> delta[T]:=(t,T)->sum(Dirac(t-n*T),`n`=-infinity..infinity):delta[Omega]:=subs(T=2*Pi/Omega,F[dir](delta[T](t,T),t,omega)):

Spectrele semnalului generator, semnalului periodic, semnalului esantionat sunt definite astfel:

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

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

> Ses:=(omega)->F[dir](ses(t),t,omega):

> Spes:=(omega)->F[dir](spes(t),t,omega):

Semnale Periodice

Definim pe baza pulsului generator, semnalul periodic de perioada T:

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

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

Pentru forma particulara a semnalului gererator de tip puls dreptunghiular:

> sg:=(t)->1/tau*(Heaviside(t+tau/2)-Heaviside(t-tau/2));

sg := proc (t) options operator, arrow; (Heaviside(...

Spectrul semnalului generator si al semnalului periodic:

> Sg(omega);Sp(omega);

2*sin(1/2*tau*omega)/(tau*omega)

sum(2*sin(tau*n*Pi/T)*Dirac(omega-2*n*Pi/T)/n,n = -...

Semnal periodic dreptunghiular cu factor de umplere 1/3:

> plot(eval([sg(t),ts(sp(t),n=-10..10)],[tau=1,T=3]),t=-10..10, view=[-6.2..6.2,-0.5..1.5],title="Semnalul periodic (rosu) si pulsul generator (negru)", color=[black,red],style=LINE, thickness=2 );

[Maple Plot]

Spectrul semnalului periodic si spectrul semnalui generator:

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

[Maple Plot]

Concluzie : Spectrul unui semnal periodic este discret. Spectrul semnalului periodic este o versiune discretizata a spectrului semnalului generator cu o rata de esantionare egala cu Omega .

Obs. :S-a preferat o forma a semnalului generator simpla, cu suport finit. Din acest motiv spectrul semnalului generator este infinit.

Semnalul periodic se obtine prin produs de convolutie:

sp(t) = int(sg(tau)*delta[T](t-tau),tau = -infinity...

Spectrul semnalului periodic se obtine prin produs algebric:

Sp(omega) = Sg(omega)*delta[Omega](omega) .

Semnale esantionate

> ses:=(t)->sg(t)*delta[T](t,Tes);

ses := proc (t) options operator, arrow; sg(t)*delt...

> sg:=(t)->(sin(omega0*t)/(omega0*t));

sg := proc (t) options operator, arrow; sin(omega0*...

Spectrul semnalului generator si al semnalului esantionat:

> Sg(omega);sum(Omega*S[g](omega-n*Omega),`n`=-infinity..infinity);

Pi*(-1+Heaviside(-omega+omega0)+Heaviside(omega+ome...

sum(Omega*S[g](omega-n*Omega),n = -infinity .. infi...

> PLOT(rpa(collect(expand(ts(eval(ses(t),[Tes=1,omega0=1]),n=-20..20)),Dirac),t,interval=-10..10,tipgrafic=real,culoare=[1,0,0]),rpa(eval(sg(t),omega0=1),t,interval=-10..10,tipgrafic=real,culoare=[0,0,0]),TITLE("Semnalul original (negru) si semnalul esantionat (rosu)"));

[Maple Plot]

> plot([eval( Sg(omega),[Tes=1,omega0=1]), ts(eval(Ses(omega),[Tes=1,omega0=1]),n=-5..5)],omega=-21..21, title="|Ses(omega)| (rosu) si |Sg(omega)| (negru)", color=[black,red],style=LINE, thickness=2 );

[Maple Plot]

Concluzie : Spectrul unui semnal discret este periodic . Spectrul semnalului esantionat este o versiune periodizata a spectrului semnalului generator cu perioada Omega[es] .

Obs. :S-a preferat o forma a semnalului generator mai complicata, cu suport infinit pentru ca spectrul semnalului generator sa fie finit.

Semnalul esantionat se obtine prin produs algebric:

ses(t) = sg(t)*delta[T](t)

Spectrul semnalului esantionat se obtine prin produs de convolutie:

Ses(omega) = int(Sg(w)*delta[Omega](w-omega),w = -i... .

S-a ales o frecventa de esantionare care sa respecte teorema esantionarii astfel incit sa nu apara fenomen de aliasing .

Semnale periodice si esantionate

Definim semnalul periodic armonic de pulsatie omega0 provenit dintr-un puls generator:

> sp:=(t)->cos(omega0*t):sg:=cos(omega0*t)*(Heaviside(t+Pi/omega0)-Heaviside(t-3*Pi/omega0)):

> spes:=(t)->sp(t)*delta[T](t,Tes);

spes := proc (t) options operator, arrow; sp(t)*del...

Spectrul semnalului esantionat este:

> Spes(omega);

1/2*sum(2*Pi*Dirac(omega-omega0-2*n*Pi/Tes)/Tes,n =...

> PLOT(rpa(collect(expand(ts(eval(spes(t),[Tes=1,omega0=1]),n=-20..20)),Dirac),t,interval=-10..10,tipgrafic=real,culoare=[1,0,0]),rpa(eval(sp(t),omega0=1),t,interval=-10..10,tipgrafic=real,culoare=[0,0,0]),TITLE("Semnalul periodic (negru) si semnalul periodic esantionat (rosu)"));

[Maple Plot]

> PLOT(rpa(eval(Sp(omega),[Tes =1, omega0=1]),omega,interval=-30..30,tipgrafic=modul,culoare=[0,0,0]), rpa(ts(eval(Spes(omega),[Tes=1,omega0=1]),n=-20..20),omega,interval=-30..30,tipgrafic=modul,culoare=[1,0,0]), AXESSTYLE(NORMAL),AXESLABELS("omega",""),TITLE("Spes(omega) (rosu) si Sp(omega) (negru)"));

[Maple Plot]

Concluzie : Spectrul unui semnal discret si periodic este periodic si discret .