Series de Fourier de funciones pares o impares.

Onda cuadrada 1 (Per’odo T, intervalo (-T/2,T/2))

> restart:

> with(plots): setoptions(thickness=1):

Warning, the name changecoords has been redefined

> T:=2: Digits:=7:

Consideremos la siguiente funci—n onda cuadrada, de per’odo T, en el intervalo [ -T/2, t/2]

> f:=piecewise((-T/2<=t and t<0,-1),(0<=t and t<=T/2,1));
#latex(%);

f := PIECEWISE([-1, -1 <= t and t < 0], [1, 0 <= t and t <= 1])

> plot(f,t=-T/2..T/2);

[Plot]

> N:=20:t0:=-T/2: t1:=T/2:

Calculemos los coeficientes de Fourier y los coeficientes del espcctro de potencia

> for n from 0 to N do                                                                  
a[n]:=2/T*int(f*cos(n*2*Pi/T*t),t=t0..t1):                                     

b[n]:=2/T*int(f*sin(n*2*Pi/T*t),t=t0..t1):                                     

A[n]:=sqrt(a[n]^2+b[n]^2):                                                     

phi[n]:=argument((b[n]+1E-10)+I*a[n]):

od:

Con ellos construimos la serie de Fourier

> SerieFourier := (m,t)->
                a[0]/2 +

                sum(a[k]*cos((2*k*Pi*t)/T),k=1..m) +

                sum(b[k]*sin((2*k*Pi*t)/T),k=1..m) ;

SerieFourier := proc (m, t) options operator, arrow; 1/2*a[0]+(sum(a[k]*cos(2*k*Pi*t/T), k = 1 .. m))+(sum(b[k]*sin(2*k*Pi*t/T), k = 1 .. m)) end proc

Verificamos algunas expansiones para n=5 y n=10

> SerieFourier(5,t);SerieFourier(10,t);

4*sin(Pi*t)/Pi+4/3*sin(3*Pi*t)/Pi+4/5*sin(5*Pi*t)/Pi

4*sin(Pi*t)/Pi+4/3*sin(3*Pi*t)/Pi+4/5*sin(5*Pi*t)/Pi+4/7*sin(7*Pi*t)/Pi+4/9*sin(9*Pi*t)/Pi

> plot([f,SerieFourier(3,t),SerieFourier(7,t), SerieFourier(20,t)],t=-T..T,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=20 (negro) ",color=[red,green,blue,black],numpoints=100);
plot([f,SerieFourier(3,t),SerieFourier(7,t), SerieFourier(20,t)],t=-2*T..2*T,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=20 (negro) ",color=[red,green,blue,black],numpoints=100);

[Plot]

[Plot]

> SeProm:=evalf(a[0]/2):

El espectro de potencia se puede graficar como

> Amp_a0:=plot([[0,0],[0,SeProm]],thickness=3 ):          
Amp_coef:=[seq(plot([[n,0],[n,A[n]]]),n=1..N)]:

display(Amp_a0,Amp_coef,title=`Espectro de Potencia de la Se–al`);

[Plot]

Onda cuadrada 2

À quŽ hubiera pasado si el intervalo de integraci—n, o el per’odo  hubiera sido diferente ?

Obvio que es la misma funci—n pero la contruimos de manera distinta. Consideremos la misma funci—n s—lo que diferente:

> restart:

> with(plots):  

Warning, the name changecoords has been redefined

> T:=2: Digits:=7:

Consideremos la siguiente funci—n onda cuadrada, de per’odo T, en el intervalo [ -T/2, t/2]

> f:=piecewise((0 <=t and t<T/2,1),(T/2<=t and t<=T,-1));
#latex(%);

f := PIECEWISE([1, 0 <= t and t < 1], [-1, 1 <= t and t <= 2])

> plot(f,t=0..T);

[Plot]

> N:=20:t0:=0: t1:=T:

Calculemos los coeficientes de Fourier y los coeficientes espectrales

> for n from 0 to N do                                                                  
a[n]:=2/T*int(f*cos(n*2*Pi/T*t),t=t0..t1):                                     

b[n]:=2/T*int(f*sin(n*2*Pi/T*t),t=t0..t1):                                     

A[n]:=sqrt(a[n]^2 + b[n]^2):                                    

phi[n]:=argument((b[n]+1E-10)+I*a[n]):

od:

Con ellos construimos la serie de Fourier

> SerieFourier := (m,t)->
                a[0]/2 +

                sum(a[k]*cos((2*k*Pi*t)/T),k=1..m) +

                sum(b[k]*sin((2*k*Pi*t)/T),k=1..m) ;

SerieFourier := proc (m, t) options operator, arrow; 1/2*a[0]+(sum(a[k]*cos(2*k*Pi*t/T), k = 1 .. m))+(sum(b[k]*sin(2*k*Pi*t/T), k = 1 .. m)) end proc

Verificamos algunas expansiones para n=5 y n=10

> SerieFourier(5,t);SerieFourier(10,t);

4*sin(Pi*t)/Pi+4/3*sin(3*Pi*t)/Pi+4/5*sin(5*Pi*t)/Pi

4*sin(Pi*t)/Pi+4/3*sin(3*Pi*t)/Pi+4/5*sin(5*Pi*t)/Pi+4/7*sin(7*Pi*t)/Pi+4/9*sin(9*Pi*t)/Pi

Como es la misma funci—n expresada en la base de Fourier, obviamente dan los mismos coeficientes. Con ello, la conclusi—n es que uno puede escoger a voluntad el intervalo (si es la misma funci—n) para que las integrales sean m‡s f‡ciles de evaluar.

claramente las gr‡ficas ser‡n las mismas.

> plot([f,SerieFourier(3,t),SerieFourier(7,t), SerieFourier(20,t)],t=-T..T,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=20 (negro) ",color=[red,green,blue,black],numpoints=100);

plot([f,SerieFourier(3,t),SerieFourier(7,t), SerieFourier(20,t)],t=-3*T..3*T,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=20 (negro) ",color=[red,green,blue,black],numpoints=100);

[Plot]

[Plot]

y el espectro de potencia, tambiŽn ser‡ el mismo....

> SeProm:=evalf(a[0]/2):

> Amp_a0:=plot([[0,0],[0,SeProm]],thickness=3):                             
Amp_coef:=[seq(plot([[n,0],[n,A[n]]]),n=1..N)]:

display(Amp_a0,Amp_coef,title=`Espectro de la Se–al`);

[Plot]

Diente de sierra 1 Intervalo [0,T]

Consideremos ahora la funci'on diente de sierra

> restart:

> with(plots): setoptions(thickness=2): assume(k,integer):

Warning, the name changecoords has been redefined

> T:=2: Digits:=7:t0:=0: t1:=T:

Esta funci'on viene descrita como

> f:=piecewise((t0<=t and t<t1,3*t));

f := PIECEWISE([3*t, 0 <= t and t < 2], [0, otherwise])

> plot(f,t=t0..t1);

[Plot]

calculamos entonces los 20 primeros tŽrminos de la Serie de Fourier para esta funci—n.

> N:=20:

> for n from 0 to N do                                                                  
a[n]:=2/T*int(f*cos(n*2*Pi/T*t),t=t0..t1):

b[n]:=2/T*int(f*sin(n*2*Pi/T*t),t=t0..t1):

A[n]:=sqrt(a[n]^2+b[n]^2):        

phi[n]:=argument((b[n]+1E-10)+I*a[n]):

od:

anal'iticamente hubiera sido

> aa[0]:=2/TT*int(a*x,x=0..TT);

aa[0] := TT*a

para el am—nico fundamental

> aa[k]:=2/TT*int(a*x*cos(k*2*Pi/TT*x),x=0..TT);

aa[k] := 0

para los arm—nicos pares de orden superior y

> bb[k]:=2/TT*int(a*x*sin(k*2*Pi/TT*x),x=0..TT);#latex(%);

bb[k] := -TT*a/(Pi*k)

para la contribuci—n de los arm—nicos impares

> a[0],a[4],a[7],b[3],b[9];

6, 0, 0, -2/Pi, -2/3/Pi

Constrimos, entonces la serie de Fourier

> SerieFourier := (m,t)->
                a[0]/2 +

                sum(a[k]*cos((2*k*Pi*t)/T),k=1..m) +

                sum(b[k]*sin((2*k*Pi*t)/T),k=1..m) ;

SerieFourier := proc (m, t) options operator, arrow; 1/2*a[0]+(sum(a[k]*cos(2*k*Pi*t/T), k = 1 .. m))+(sum(b[k]*sin(2*k*Pi*t/T), k = 1 .. m)) end proc

y evaluamos la serie para un par de desarrollos posibles n = 5 y n=10

> SerieFourier(5,t);#latex(%);
SerieFourier(10,t);

3-6*sin(Pi*t)/Pi-3*sin(2*Pi*t)/Pi-2*sin(3*Pi*t)/Pi-3/2*sin(4*Pi*t)/Pi-6/5*sin(5*Pi*t)/Pi

3-6*sin(Pi*t)/Pi-3*sin(2*Pi*t)/Pi-2*sin(3*Pi*t)/Pi-3/2*sin(4*Pi*t)/Pi-6/5*sin(5*Pi*t)/Pi-sin(6*Pi*t)/Pi-6/7*sin(7*Pi*t)/Pi-3/4*sin(8*Pi*t)/Pi-2/3*sin(9*Pi*t)/Pi-3/5*sin(10*Pi*t)/Pi

graficamos las representaciones de la funci—n para n=3, n=7 n=10

> plot([f,SerieFourier(3,t),SerieFourier(7,t), SerieFourier(10,t)],t=-T..T,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=10 (negro) ",color=[red,green,blue,black],numpoints=100);

[Plot]

El promedio de la funci—n ser‡ la contribuci—n del arm—nico fundamental

> SeProm:=evalf(a[0]/2):

y esta ser‡ la contribuci—n del resto de los arm—nicos al espectro de potencia

> Amp_a0:=plot([[0,0],[0,SeProm]],thickness=3 ):    
Amp_coef:=[seq(plot([[n,0],[n,A[n]]]),n=1..N)]:  

display(Amp_a0,Amp_coef,title=`Espectro de la Se–al`);

[Plot]

Diente de sierra 2 (impar) Intervalo [-T/2,T/2]

> restart:

> with(plots): setoptions(thickness=2): assume(k,integer):

Warning, the name changecoords has been redefined

> T:=2:Digits:=7:t0:=-T/2: t1:=T/2:

> f:=piecewise((t0<=t and t<=t1,3*t));

f := PIECEWISE([3*t, -1 <= t and t <= 1], [0, otherwise])

> plot(f,t=t0..t1);

[Plot]

> N:=20:

> for i from 0 to N do                                                                  
a[i]:=2/T*int(f*cos(i*2*Pi/T*t),t=t0..t1):

b[i]:=2/T*int(f*sin(i*2*Pi/T*t),t=t0..t1):        

A[i]:=sqrt(a[i]^2+b[i]^2):                                    

phi[i]:=argument((b[i]+1E-10)+I*a[i]):

od:

anal'iticamente hubiera sido

> aa[0]:=2/TT*int(a*x,x=-TT/2..TT/2);

aa[0] := 0

para el am—nico fundamental

> aa[k]:=2/TT*int(a*x*cos(k*2*Pi/TT*x),x=-TT/2..TT/2);

aa[k] := 0

para los arm—nicos pares de orden superior y

> bb[k]:=2/TT*int(a*x*sin(k*2*Pi/TT*x),x=-TT/2..TT/2);#latex(%);

bb[k] := -TT*a*(-1)^k/(k*Pi)

> a[0],a[4],a[7],b[3],b[9];

0, 0, 0, 2/Pi, 2/3/Pi

> SerieFourier := (m,t)->
                a[0]/2 +

                sum(a[k]*cos((2*k*Pi*t)/T),k=1..m) +

                sum(b[k]*sin((2*k*Pi*t)/T),k=1..m) ;

SerieFourier := proc (m, t) options operator, arrow; 1/2*a[0]+(sum(a[k]*cos(2*k*Pi*t/T), k = 1 .. m))+(sum(b[k]*sin(2*k*Pi*t/T), k = 1 .. m)) end proc

> SerieFourier(5,t); # latex(%);

6*sin(Pi*t)/Pi-3*sin(2*Pi*t)/Pi+2*sin(3*Pi*t)/Pi-3/2*sin(4*Pi*t)/Pi+6/5*sin(5*Pi*t)/Pi

> SerieFourier(10,t);

6*sin(Pi*t)/Pi-3*sin(2*Pi*t)/Pi+2*sin(3*Pi*t)/Pi-3/2*sin(4*Pi*t)/Pi+6/5*sin(5*Pi*t)/Pi-sin(6*Pi*t)/Pi+6/7*sin(7*Pi*t)/Pi-3/4*sin(8*Pi*t)/Pi+2/3*sin(9*Pi*t)/Pi-3/5*sin(10*Pi*t)/Pi

> plot([f,SerieFourier(3,t),SerieFourier(7,t), SerieFourier(20,t)],t=-T..T,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=20 (negro) ",color=[red,green,blue,black],numpoints=100);

[Plot]

> SeProm:=evalf(a[0]/2):

> Amp_a0:=plot([[0,0],[0,SeProm]],thickness=3 ):                                Amp_coef:=[seq(plot([[n,0],[n,A[n]]]),n=1..N)]:                               display(Amp_a0,Amp_coef,title=`Espectro de la Se–al`);

[Plot]

Diente de Sierra 3 (par) Intervalo [-T/2,T/2]

> restart:

> with(plots):  setoptions(thickness=2):   

Warning, the name changecoords has been redefined

> T:=2: Digits:=7:t0:=-T/2: t1:=T/2:

> f:=piecewise((t0<=t and t<=0,-3*t),(0<t and t<=t1,3*t));

f := PIECEWISE([-3*t, -1 <= t and t <= 0], [3*t, 0 < t and t <= 1])

> plot(f,t=t0..t1);

[Plot]

> N:=20:

> for n from 0 to N do                                                                  
a[n]:=2/T*int(f*cos(n*2*Pi/T*t),t=t0..t1):               

b[n]:=2/T*int(f*sin(n*2*Pi/T*t),t=t0..t1):               

A[n]:=sqrt(a[n]^2+b[n]^2):                              

phi[n]:=argument((b[n]+1E-10)+I*a[n]):

od:

anal'iticamente hubiera sido

> assume(k,integer):

> aa[0]:=2/TT*(int(-a*x,x=-TT/2..0) + int(a*x,x=0..TT/2));

aa[0] := 1/2*TT*a

para el am—nico fundamental

> aa[k]:=2/TT*(int(-a*x*cos(k*2*Pi/TT*x),x=-TT/2..0) +
               int(a*x*cos(k*2*Pi/TT*x),x=0..TT/2));

aa[k] := 2*(int(-a*x*cos(2*k*Pi*x/TT), x = -1/2*TT .. 0)+1/2*a*TT^2*(-1/2/Pi^(1/2)+1/2*(-1)^k/Pi^(1/2))/(k^2*Pi^(3/2)))/TT

para los arm—nicos pares de orden superior y

> bb[k]:=2/TT*(int(-a*x*sin(k*2*Pi/TT*x),x=-TT/2..0) +
              int(a*x*sin(k*2*Pi/TT*x),x=0..TT/2));#latex(%);

bb[k] := 2*(int(-a*x*sin(2*k*Pi*x/TT), x = -1/2*TT .. 0)-1/4*a*TT^2*(-1)^k/(Pi*k))/TT

> a[0],a[4],a[7],b[3],b[9];

3, 0, -12/49/Pi^2, 0, 0

> SerieFourier := (m,t)->
                a[0]/2 +

                sum(a[k]*cos((2*k*Pi*t)/T),k=1..m) +

                sum(b[k]*sin((2*k*Pi*t)/T),k=1..m) ;

SerieFourier := proc (m, t) options operator, arrow; 1/2*a[0]+(sum(a[k]*cos(2*k*Pi*t/T), k = 1 .. m))+(sum(b[k]*sin(2*k*Pi*t/T), k = 1 .. m)) end proc

> SerieFourier(5,t);#latex(%);

3/2-12*cos(Pi*t)/Pi^2-4/3*cos(3*Pi*t)/Pi^2-12/25*cos(5*Pi*t)/Pi^2

> SerieFourier(10,t);

3/2-12*cos(Pi*t)/Pi^2-4/3*cos(3*Pi*t)/Pi^2-12/25*cos(5*Pi*t)/Pi^2-12/49*cos(7*Pi*t)/Pi^2-4/27*cos(9*Pi*t)/Pi^2

> plot([f,SerieFourier(3,t),SerieFourier(7,t), SerieFourier(20,t)],t=-T..T,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=20 (negro) ",color=[red,green,blue,black],numpoints=100);

[Plot]

> SeProm:=evalf(a[0]/2):

> Amp_a0:=plot([[0,0],[0,SeProm]],thickness=3 ):
Amp_coef:=[seq(plot([[n,0],[n,A[n]]]),n=1..N)]:

display(Amp_a0,Amp_coef,title=`Espectro de la Se–al`);

[Plot]

Par‡bola invertida

> restart:

> with(plots):  

Warning, the name changecoords has been redefined

> T:=2: Digits:=7:t0:=-T/2: t1:=T/2:

> f:=piecewise((t0<=t and t<=t1,t^2));

f := PIECEWISE([t^2, -1 <= t and t <= 1], [0, otherwise])

> plot(f,t=t0..t1);

[Plot]

> N:=20:

> for n from 0 to N do                                                                  
a[n]:=2/T*int(f*cos(n*2*Pi/T*t),t=t0..t1):

b[n]:=2/T*int(f*sin(n*2*Pi/T*t),t=t0..t1):                                     

A[n]:=sqrt(a[n]^2+b[n]^2):

phi[n]:=argument((b[n]+1E-10)+I*a[n]):

od:

> SerieFourier := (m,t)->
                a[0]/2 +

                sum(a[k]*cos((2*k*Pi*t)/T),k=1..m) +

                sum(b[k]*sin((2*k*Pi*t)/T),k=1..m) ;

SerieFourier := proc (m, t) options operator, arrow; 1/2*a[0]+(sum(a[k]*cos(2*k*Pi*t/T), k = 1 .. m))+(sum(b[k]*sin(2*k*Pi*t/T), k = 1 .. m)) end proc

> SerieFourier(5,t);

1/3-4*cos(Pi*t)/Pi^2+cos(2*Pi*t)/Pi^2-4/9*cos(3*Pi*t)/Pi^2+1/4*cos(4*Pi*t)/Pi^2-4/25*cos(5*Pi*t)/Pi^2

> SerieFourier(10,t);

1/3-4*cos(Pi*t)/Pi^2+cos(2*Pi*t)/Pi^2-4/9*cos(3*Pi*t)/Pi^2+1/4*cos(4*Pi*t)/Pi^2-4/25*cos(5*Pi*t)/Pi^2+1/9*cos(6*Pi*t)/Pi^2-4/49*cos(7*Pi*t)/Pi^2+1/16*cos(8*Pi*t)/Pi^2-4/81*cos(9*Pi*t)/Pi^2+1/25*cos(10...

> plot([f,SerieFourier(3,t),SerieFourier(5,t), SerieFourier(10,t)],t=-T..T,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=20 (negro) ",color=[red,green,blue,black],numpoints=100);
plot([f,SerieFourier(3,t),SerieFourier(5,t), SerieFourier(10,t)],t=-3*T..3*T,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=20 (negro) ",color=[red,green,blue,black],numpoints=100);

[Plot]

[Plot]

> SeProm:=evalf(a[0]/2):

> Amp_a0:=plot([[0,0],[0,SeProm]],thickness=3 ):                                Amp_coef:=[seq(plot([[n,0],[n,A[n]]]),n=1..N)]:                               display(Amp_a0,Amp_coef,title=`Espectro de la Se–al`);

[Plot]

Una cuerda de longitud L

Sobre el eje x, consideremos una cuerda de longitud L fija en sus dos extremos. En x = xL/4  se desplaza y0. Encentre las expansiones en series de Fourier

> restart:

> with(plots):  

Warning, the name changecoords has been redefined

> Digits:=7: L :=2: tp := L/4; y0:=L/10;

tp := 1/2

y0 := 1/5

> f:=piecewise(( 0<=t and t<=tp,4*y0*t/L),
        (tp<t and t<=L,(4*y0/3)*(-t/L +1)) );

f := PIECEWISE([2/5*t, 0 <= t and t <= 1/2], [-2/15*t+4/15, 1/2 < t and t <= 2])

> plot(f,t=0..L);

[Plot]

La serie con un per’odo L

> T:=L: t0:=0: t1:=L:

> N:=20:

> for n from 0 to N do
    a[n]:=2/T*int(f*cos(n*2*Pi/T*t),t=t0..t1):

    b[n]:=2/T*int(f*sin(n*2*Pi/T*t),t=t0..t1):

    A[n]:=sqrt(a[n]^2+b[n]^2):                          

    phi[n]:=argument((b[n]+1E-10)+I*a[n]):

od:

> a[0],a[4],a[7],b[3],b[9];

1/5, 0, -1/245*(2+7*Pi)/Pi^2+1/735*(21*Pi-2)/Pi^2, -8/135/Pi^2, 8/1215/Pi^2

> SerieFourier := (m,t)->
                a[0]/2 +

                sum(a[k]*cos((2*k*Pi*t)/T),k=1..m) +

                sum(b[k]*sin((2*k*Pi*t)/T),k=1..m) ;

SerieFourier := proc (m, t) options operator, arrow; 1/2*a[0]+(sum(a[k]*cos(2*k*Pi*t/T), k = 1 .. m))+(sum(b[k]*sin(2*k*Pi*t/T), k = 1 .. m)) end proc

> SerieFourier(5,t);simplify(%);

1/10+(1/5*(-2+Pi)/Pi^2-1/15*(3*Pi+2)/Pi^2)*cos(Pi*t)-4/15*cos(2*Pi*t)/Pi^2+(-1/45*(3*Pi+2)/Pi^2+1/135*(9*Pi-2)/Pi^2)*cos(3*Pi*t)+(1/125*(-2+5*Pi)/Pi^2-1/375*(15*Pi+2)/Pi^2)*cos(5*Pi*t)+8/15*sin(Pi*t)/...

-1/6750*(-675*Pi^2+3600*cos(Pi*t)+1800*cos(2*Pi*t)+400*cos(3*Pi*t)+144*cos(5*Pi*t)-3600*sin(Pi*t)+400*sin(3*Pi*t)-144*sin(5*Pi*t))/Pi^2

> SerieFourier(10,t);simplify(%);

1/10+(1/5*(-2+Pi)/Pi^2-1/15*(3*Pi+2)/Pi^2)*cos(Pi*t)-4/15*cos(2*Pi*t)/Pi^2+(-1/45*(3*Pi+2)/Pi^2+1/135*(9*Pi-2)/Pi^2)*cos(3*Pi*t)+(1/125*(-2+5*Pi)/Pi^2-1/375*(15*Pi+2)/Pi^2)*cos(5*Pi*t)-4/135*cos(6*Pi*...1/10+(1/5*(-2+Pi)/Pi^2-1/15*(3*Pi+2)/Pi^2)*cos(Pi*t)-4/15*cos(2*Pi*t)/Pi^2+(-1/45*(3*Pi+2)/Pi^2+1/135*(9*Pi-2)/Pi^2)*cos(3*Pi*t)+(1/125*(-2+5*Pi)/Pi^2-1/375*(15*Pi+2)/Pi^2)*cos(5*Pi*t)-4/135*cos(6*Pi*...

-1/2976750*(-297675*Pi^2+1587600*cos(Pi*t)+793800*cos(2*Pi*t)+176400*cos(3*Pi*t)+63504*cos(5*Pi*t)+88200*cos(6*Pi*t)+32400*cos(7*Pi*t)+19600*cos(9*Pi*t)+31752*cos(10*Pi*t)-1587600*sin(Pi*t)+176400*sin...-1/2976750*(-297675*Pi^2+1587600*cos(Pi*t)+793800*cos(2*Pi*t)+176400*cos(3*Pi*t)+63504*cos(5*Pi*t)+88200*cos(6*Pi*t)+32400*cos(7*Pi*t)+19600*cos(9*Pi*t)+31752*cos(10*Pi*t)-1587600*sin(Pi*t)+176400*sin...

> plot([f,SerieFourier(3,t),SerieFourier(7,t), SerieFourier(10,t)],t=-T..T,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=10 (negro) ",color=[red,green,blue,black],numpoints=100);

[Plot]

> SeProm:=evalf(a[0]/2):

> Amp_a0:=plot([[0,0],[0,SeProm]],thickness=3 ):
Amp_coef:=[seq(plot([[n,0],[n,A[n]]]),n=1..N)]:

display(Amp_a0,Amp_coef,title=`Espectro de la Se–al`);

[Plot]

La Serie antisimŽtrica respecto al eje x = 0 (per’odo 2 Lº)

> f:=piecewise( (-L <=t and t<-tp,(4*y0/3)*(-t/L -1)),
                ( -tp<=t and t<=tp,4*y0*t/L),

                (tp<t and t<=L,(4*y0/3)*(-t/L +1)) );

f := PIECEWISE([-2/15*t-4/15, -2 <= t and t < (-1)/2], [2/5*t, (-1)/2 <= t and t <= 1/2], [-2/15*t+4/15, 1/2 < t and t <= 2])

> plot(f,t=-L..L);

[Plot]

> T:=2*L: t0:=-L: t1:=L:

> N:=20:

> for n from 0 to N do                                                                  
a[n]:=2/T*int(f*cos(n*2*Pi/T*t),t=t0..t1):                        

b[n]:=2/T*int(f*sin(n*2*Pi/T*t),t=t0..t1):                         

A[n]:=sqrt(a[n]^2+b[n]^2):                                                     phi[n]:=argument((b[n]+1E-10)+I*a[n]):

od:

> a[0],a[4],a[7],b[3],b[9];

0, 0, 0, -1/135*2^(1/2)*(-4+9*Pi)/Pi^2+1/45*2^(1/2)*(4+3*Pi)/Pi^2, 1/1215*2^(1/2)*(4+27*Pi)/Pi^2-1/405*2^(1/2)*(-4+9*Pi)/Pi^2

> SerieFourier := (m,t)->
                a[0]/2 +

                sum(a[k]*cos((2*k*Pi*t)/T),k=1..m) +

                sum(b[k]*sin((2*k*Pi*t)/T),k=1..m) ;

SerieFourier := proc (m, t) options operator, arrow; 1/2*a[0]+(sum(a[k]*cos(2*k*Pi*t/T), k = 1 .. m))+(sum(b[k]*sin(2*k*Pi*t/T), k = 1 .. m)) end proc

> SerieFourier(5,t);simplify(%);

(1/15*2^(1/2)*(4+3*Pi)/Pi^2-1/5*2^(1/2)*(-4+Pi)/Pi^2)*sin(1/2*Pi*t)+8/15*sin(Pi*t)/Pi^2+(-1/135*2^(1/2)*(-4+9*Pi)/Pi^2+1/45*2^(1/2)*(4+3*Pi)/Pi^2)*sin(3/2*Pi*t)+(-1/375*2^(1/2)*(4+15*Pi)/Pi^2+1/125*2^...

8/3375*(450*2^(1/2)*sin(1/2*Pi*t)+225*sin(Pi*t)+50*2^(1/2)*sin(3/2*Pi*t)-18*2^(1/2)*sin(5/2*Pi*t))/Pi^2

> SerieFourier(10,t);simplify(%);

(1/15*2^(1/2)*(4+3*Pi)/Pi^2-1/5*2^(1/2)*(-4+Pi)/Pi^2)*sin(1/2*Pi*t)+8/15*sin(Pi*t)/Pi^2+(-1/135*2^(1/2)*(-4+9*Pi)/Pi^2+1/45*2^(1/2)*(4+3*Pi)/Pi^2)*sin(3/2*Pi*t)+(-1/375*2^(1/2)*(4+15*Pi)/Pi^2+1/125*2^...(1/15*2^(1/2)*(4+3*Pi)/Pi^2-1/5*2^(1/2)*(-4+Pi)/Pi^2)*sin(1/2*Pi*t)+8/15*sin(Pi*t)/Pi^2+(-1/135*2^(1/2)*(-4+9*Pi)/Pi^2+1/45*2^(1/2)*(4+3*Pi)/Pi^2)*sin(3/2*Pi*t)+(-1/375*2^(1/2)*(4+15*Pi)/Pi^2+1/125*2^...

8/1488375*(198450*2^(1/2)*sin(1/2*Pi*t)+99225*sin(Pi*t)+22050*2^(1/2)*sin(3/2*Pi*t)-7938*2^(1/2)*sin(5/2*Pi*t)-11025*sin(3*Pi*t)-4050*2^(1/2)*sin(7/2*Pi*t)+2450*2^(1/2)*sin(9/2*Pi*t)+3969*sin(5*Pi*t))...8/1488375*(198450*2^(1/2)*sin(1/2*Pi*t)+99225*sin(Pi*t)+22050*2^(1/2)*sin(3/2*Pi*t)-7938*2^(1/2)*sin(5/2*Pi*t)-11025*sin(3*Pi*t)-4050*2^(1/2)*sin(7/2*Pi*t)+2450*2^(1/2)*sin(9/2*Pi*t)+3969*sin(5*Pi*t))...

> plot([f,SerieFourier(3,t),SerieFourier(7,t), SerieFourier(10,t)],t=-T..T,y=-0.3..0.3,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=10 (negro) ",color=[red,green,blue,black],numpoints=100);

[Plot]

> SeProm:=evalf(a[0]/2):

> Amp_a0:=plot([[0,0],[0,SeProm]],thickness=3):                                
Amp_coef:=[seq(plot([[n,0],[n,A[n]]]),n=1..N)]:                               

display(Amp_a0,Amp_coef,title=`Espectro de la Se–al`);

[Plot]

La Serie simŽtrica respecto al eje x = 0 (per’odo 2 Lº)

> f:=piecewise(         (-L <=t and t<-tp,(-4*y0/3)*(-t/L -1)),
                        ( -tp<=t and t<=0,-4*y0*t/L),

                        ( 0<t and t<=tp,4*y0*t/L),

                        (tp<t and t<=L,(4*y0/3)*(-t/L +1)) );

f := PIECEWISE([2/15*t+4/15, -2 <= t and t < (-1)/2], [-2/5*t, (-1)/2 <= t and t <= 0], [2/5*t, 0 < t and t <= 1/2], [-2/15*t+4/15, 1/2 < t and t <= 2])

> plot(f,t=-L..L);

[Plot]

> T:=2*L: t0:=-L: t1:=L:

> N:=20:

> for n from 0 to N do                              
a[n]:=2/T*int(f*cos(n*2*Pi/T*t),t=t0..t1):                          

b[n]:=2/T*int(f*sin(n*2*Pi/T*t),t=t0..t1):                         

A[n]:=sqrt(a[n]^2+b[n]^2):                                                     phi[n]:=argument((b[n]+1E-10)+I*a[n]):

od:

> a[0],a[4],a[7],b[3],b[9];

1/5, -4/15/Pi^2, 1/735*(8+4*2^(1/2)+21*2^(1/2)*Pi)/Pi^2-1/245*(-4*2^(1/2)+7*2^(1/2)*Pi+8)/Pi^2, 0, 0

> SerieFourier := (m,t)->
                a[0]/2 +

                sum(a[k]*cos((2*k*Pi*t)/T),k=1..m) +

                sum(b[k]*sin((2*k*Pi*t)/T),k=1..m) ;

SerieFourier := proc (m, t) options operator, arrow; 1/2*a[0]+(sum(a[k]*cos(2*k*Pi*t/T), k = 1 .. m))+(sum(b[k]*sin(2*k*Pi*t/T), k = 1 .. m)) end proc

> SerieFourier(5,t):simplify(%);

1/10+(-1/15*(-8-4*2^(1/2)+3*2^(1/2)*Pi)/Pi^2+1/5*(4*2^(1/2)+2^(1/2)*Pi-8)/Pi^2)*cos(1/2*Pi*t)+(1/5*(-2+Pi)/Pi^2-1/15*(3*Pi+2)/Pi^2)*cos(Pi*t)+(-1/135*(-8+4*2^(1/2)+9*2^(1/2)*Pi)/Pi^2+1/45*(-8-4*2^(1/2...1/10+(-1/15*(-8-4*2^(1/2)+3*2^(1/2)*Pi)/Pi^2+1/5*(4*2^(1/2)+2^(1/2)*Pi-8)/Pi^2)*cos(1/2*Pi*t)+(1/5*(-2+Pi)/Pi^2-1/15*(3*Pi+2)/Pi^2)*cos(Pi*t)+(-1/135*(-8+4*2^(1/2)+9*2^(1/2)*Pi)/Pi^2+1/45*(-8-4*2^(1/2...

-1/6750*(-675*Pi^2+7200*cos(1/2*Pi*t)-7200*cos(1/2*Pi*t)*2^(1/2)+3600*cos(Pi*t)+800*cos(3/2*Pi*t)+800*cos(3/2*Pi*t)*2^(1/2)+1800*cos(2*Pi*t)+288*cos(5/2*Pi*t)+288*cos(5/2*Pi*t)*2^(1/2))/Pi^2

> SerieFourier(10,t):simplify(%);

-1/2976750*(-297675*Pi^2+3175200*cos(1/2*Pi*t)-3175200*cos(1/2*Pi*t)*2^(1/2)+1587600*cos(Pi*t)+352800*cos(3/2*Pi*t)+352800*cos(3/2*Pi*t)*2^(1/2)+793800*cos(2*Pi*t)+127008*cos(5/2*Pi*t)+127008*cos(5/2*...-1/2976750*(-297675*Pi^2+3175200*cos(1/2*Pi*t)-3175200*cos(1/2*Pi*t)*2^(1/2)+1587600*cos(Pi*t)+352800*cos(3/2*Pi*t)+352800*cos(3/2*Pi*t)*2^(1/2)+793800*cos(2*Pi*t)+127008*cos(5/2*Pi*t)+127008*cos(5/2*...-1/2976750*(-297675*Pi^2+3175200*cos(1/2*Pi*t)-3175200*cos(1/2*Pi*t)*2^(1/2)+1587600*cos(Pi*t)+352800*cos(3/2*Pi*t)+352800*cos(3/2*Pi*t)*2^(1/2)+793800*cos(2*Pi*t)+127008*cos(5/2*Pi*t)+127008*cos(5/2*...

> plot([f,SerieFourier(3,t),SerieFourier(7,t), SerieFourier(10,t)],t=-T..T,y=-0.3..0.3,title="Aproximaciones de Fourier: n=3 (Verde),n=7 (Azul), n=20 (negro) ",color=[red,green,blue,black],numpoints=100);

[Plot]

> SeProm:=evalf(a[0]/2):

> Amp_a0:=plot([[0,0],[0,SeProm]],thickness=3 ):
Amp_coef:=[seq(plot([[n,0],[n,A[n]]]),n=1..N)]:

display(Amp_a0,Amp_coef,title=`Espectro de la Se–al`);

[Plot]

Onda cuadrada y Funci—n Teta de Heaviside

Consideremos la siguiente onda cuadrada

> restart;assume(n,integer):with(plots):
setoptions(thickness=2): # se hacen las lineas mas gruesas

Warning, the name changecoords has been redefined

> T :=2; y0 := 1;

T := 2

y0 := 1

> OndaCuad[0] := y0*(Heaviside(t)-Heaviside(t-T/2))
                        -y0*(Heaviside(t + T/2)-Heaviside(t));

OndaCuad[0] := 2*Heaviside(t)-Heaviside(t-1)-Heaviside(t+1)

> plot(OndaCuad[0],t=-2..2,y=-2..2,title="La Onda Cuadrada Basica");

[Plot]

> NT :=3:
for i from -NT to NT do

        tt := t - i*T;

        OndaCuad[i] := y0*(Heaviside(tt)-Heaviside(tt-T/2))

                        -y0*(Heaviside(tt +T/2)-Heaviside(tt));

end do:

> plot(sum(OndaCuad[j],j=-NT..NT),t=-4..4,y=-2..2,
                title="La Onda Cuadrada de periodo L");

[Plot]

> f1 := -1;
f2 := 1;

f1 := -1

f2 := 1

El coeficiente a[0] y los coeficientes pares a[n] se anulan porque la funci'on es impar

> a[0]:=(2/T)*Int('f(t)',t=-T/2..T/2) = (2/T)*(int(f1,t=-T/2..0)+int(f2,t=0..T/2));A[0]:=rhs(%);

a[0] := Int(f(t), t = -1 .. 1) = 0

A[0] := 0

> a[n]:=(2/T)*Int('f(t)'*cos((2*n*t*Pi)/(T)),t=-T/2..T/2) = simplify((2/T)*(int(f1*cos((2*n*t*Pi)/(T)),t=-T/2..0)+int(f2*cos((2*n*t*Pi)/(T)),t=0..T/2)));

a[n] := Int(f(t)*cos(n*t*Pi), t = -1 .. 1) = 0

> A[k]:=subs(n=k,simplify((2/T)*(int(f1*cos((2*n*t*Pi)/(T)),t=-T/2..0)+int(f2*cos((2*n*t*Pi)/(T)),t=0..T/2))));

A[k] := 0

sobreviven los coeficientes impares

> b[n]:=(2/T)*Int('f(t)'*sin((2*n*t*Pi)/(T)),t=-T/2..T/2) = simplify((2/T)*(int(f1*sin((2*n*t*Pi)/(T)),t=-T/2..0)+int(f2*sin((2*n*t*Pi)/(T)),t=0..T/2)));

b[n] := Int(f(t)*sin(n*t*Pi), t = -1 .. 1) = -2*((-1)^n-1)/(n*Pi)

> B[k]:=subs(n=k,simplify((2/T)*(int(f1*sin((2*n*t*Pi)/(T)),t=-T/2..0)+int(f2*sin((2*n*t*Pi)/(T)),t=0..T/2))));

B[k] := -2*((-1)^k-1)/(k*Pi)

> SerieFourier := (m,t)->
                A[0]/2 +

                sum(A[k]*cos((2*k*Pi*t)/T),k=1..m) +

                sum(B[k]*sin((2*k*Pi*t)/T),k=1..m)         ;

SerieFourier := proc (m, t) options operator, arrow; 1/2*A[0]+(sum(A[k]*cos(2*k*Pi*t/T), k = 1 .. m))+(sum(B[k]*sin(2*k*Pi*t/T), k = 1 .. m)) end proc

> SerieFourier(5,t);

4*sin(Pi*t)/Pi+4/3*sin(3*Pi*t)/Pi+4/5*sin(5*Pi*t)/Pi

> SerieFourier(10,t);

4*sin(Pi*t)/Pi+4/3*sin(3*Pi*t)/Pi+4/5*sin(5*Pi*t)/Pi+4/7*sin(7*Pi*t)/Pi+4/9*sin(9*Pi*t)/Pi

> plot([OndaCuad[0],SerieFourier(3,t),SerieFourier(7,t), SerieFourier(20,t)],t=-1..1,title="Higher approximations: n=3 (Green),n=7 (Blue)",color=[red,green,blue,black],numpoints=100);

[Plot]

>