Anda di halaman 1dari 7

Series de Fourier

El análisis de Fourier surgió a partir del intento de éste matemático francés por hallar la
solución a un problema práctico, la conducción del calor en un anillo de hierro.

En esta página, aprenderemos a obtener los primeros términos del desarrollo en serie de
Fourier con MATLAB y a aproximar una función periódica mediante la suma de
funciones armónicas

Una función es periódica de periodo P si hay un número P>0 tal


que f(t+P)=f(t). Cualquier múltiplo n entero de P es también
periodo f(t+nP)=f(t)

La función f(t)=cos(2πt)+cos(4πt)/2, es la suma de dos funciones periódicas de


periodos 1 y 0.5, respectivamente. Como vemos en la gráfica f(t) es periódica
con periodo P=1.

Las funciones cos(t) y cos(√ 2 t)cos(2t) son periódicas de periodo 2π


y 2π/√ 2 2π/2 respectivamente, pero la suma

f(t)=cos(t)+cos(√ 2 t)f(t)=cos(t)+cos(2t)

no es periódica.

t=0:0.05:10;
x=cos(2*pi*t)+cos(4*pi*t)/2;
subplot(2,1,1)
plot(t,x);
xlabel('t')
ylabel('x')

subplot(2,1,2)
x=cos(2*pi*t)+cos(2*pi*sqrt(2)*t);
plot(t,x);
xlabel('t')
ylabel('x')
Superposición de funciones armónicas
Sea una función periódica resultado de la superposición de tres funciones
armónicas con distintas frecuencias, amplitudes y fases iniciales

x=200sin(2π·100+π/2)+100sin(2π·200+π)+100sin(2π·400+3π/2)

f=[100,200,400]; %frecuencias
A=[200,100,100]; %amplitudes
phi=[90,180,270]; %fases

subplot(2,2,1)
stem(f,A)
axis([0,500,0,210])
xlabel('Frecuencia')
ylabel('Amplitud')

subplot(2,2,2)
stem(f,phi)
axis([0,500,0,360])
xlabel('Frecuencia')
set(gca,'YTick',0:90:360)
set(gca,'YTickLabel',{'0','\pi/2','\pi','3\pi/2','2\pi'})
ylabel('Fase')

subplot(2,2,3:4) %resultante
t=(0:0.1:30)/1000; %milisegundos
x=zeros(1,length(t));
for i=1:length(f)
x=x+A(i)*sin(2*pi*f(i)*t+phi(i)*pi/180);
end
plot(t,x,'r')
xlabel('t(ms)')
ylabel('x')
title('Resultante')
ylim([-410,410])
set(gca,'XTick',(0:5:30)/1000)
set(gca,'XTickLabel',{'0','5','10','15','20','25','30'})
grid on

Serie de Fourier
Una función f(t) periódica de periodo P, se puede representar en forma de una
suma infinita de funciones armónicas es decir,

f(t)=a02+∞∑k=1(akcos(k2πPt)+bksin(k2πPt))f(t)=a02+∑k=1∞(akcos(k2πP
t)+bksin(k2πPt))

Una función periódica, se puede representar en forma de una suma infinita de funciones
armónicas
donde a0 a1 ...ak ... y b1 b2 .... bk .... son los denominados coeficientes de
Fourier.

Teniendo en cuenta los resultados de las integrales

P/2∫−P/2cos(m2πPt)sin(n2πPt)dt=P2ππ∫−πcos(mx)sin(nx)dx=0∫−P/2P/2cos(m2π
Pt)sin(n2πPt)dt=P2π∫−ππcos(mx)sin(nx)dx=0

>> syms m n t;
>> y=int('sin(m*t)*cos(n*t)',t,-pi,pi)
y =0

P/2∫−P/2cos(m2πPt)cos(n2πPt)dt=P2ππ∫−πcos(mx)cos(nx)dx={0m≠nP2m=n∫−P/2P/
2cos(m2πPt)cos(n2πPt)dt=P2π∫−ππcos(mx)cos(nx)dx={0
m≠nP2 m=n

>> syms m n t;
>> y=int('cos(m*t)*cos(n*t)',t,-pi,pi);
>> assume(m,'integer')
>> assume(n,'integer')
>> assume(m==n)
>> simplify(y)
ans =pi

P/2∫−P/2sin(m2πPt)sin(n2πPt)dt=P2ππ∫−πsin(mx)sin(nx)dx={0m≠nP2m=n∫−P/2P/2
sin(m2πPt)sin(n2πPt)dt=P2π∫−ππsin(mx)sin(nx)dx={0 m≠nP2
m=n

Los coeficientes del desarrollo en serie valen

ak=2PP/2∫−P/2f(t)cos(k2πPt)dtk=0,1,2,3...bk=2PP/2∫−P/2f(t)sin(k2πPt)dtk=1,2,3...ak=
2P∫−P/2P/2f(t)cos(k2πPt)dt
k=0,1,2,3...bk=2P∫−P/2P/2f(t)sin(k2πPt)dt k=1,2,3...

La suma parcial de las series de Fourier es

sn(t)=a02+n∑k=1(akcos(k2πPt)+bksin(k2πPt))sn(t)=a02+∑k=1n(akcos(k2π
Pt)+bksin(k2πPt))

Si la función f(t) tiene simetría, algunos de los coeficientes resultan nulos.

 Si f(t) es una función par, f(t)=f(-t), los términos bk son nulos


 Si f(t) es impar f(t)=-f(-t), los coeficientes ak son nulos

Función par
Si la función es par bk=0
Por ejemplo, para el pulso rectangular simétrico de anchura 1 y periodo P=2 se
obtienen los siguientes coeficientes.
a0=220.5∫−0.5dt=1ak=220.5∫−0.5cos(kπt)dt=2kπ(sin(kπ2)){0kpar2kπ(−1)(k−1)/2kimpara0=
22∫−0.50.5dt=1ak=22∫−0.50.5cos(kπt)dt=2kπ(sin(kπ2)) {0
k par2kπ(−1)(k−1)/2 k impar

>> syms t P k;
>> ak=int(cos(pi*k*t),t,-0.5,0.5);
>> subs(ak,k,sym('[1 2 3 4 5 6 7]'))
ans =[ 2/pi, 0, -2/(3*pi), 0, 2/(5*pi), 0, -2/(7*pi)]
Vamos a reconstruir la función f(t) a partir del desarrollo en serie de Fourier.

sn(t)=12+2cos(πt)π−2cos(3πt)3π+2cos(5πt)5π−2cos(7πt)7π+...sn(t)=12+2cos
(πt)π−2cos(3πt)3π+2cos(5πt)5π−2cos(7πt)7π+...

n=7; %número de términos


hold on
x=[-1 -0.5 -0.5 0.5 0.5 1];
y=[0 0 1 1 0 0];
plot(x,y,'b','linewidth',2)
x=linspace(-1,1,100);
y=zeros(length(x),1);
for i=1:length(x)
y(i)=1/2;
for k=1:2:n
y(i)=y(i)+(-1)^((k-1)/2)*2*cos(k*pi*x(i))/(k*pi);
end
end
plot(x,y, 'r');
title(sprintf('Aproximación de Fourier: %i términos',n))
xlabel('t');
ylabel('f(t)')
grid on
hold off
Función impar
Si la función es impar, ak=0
Sea ahora la función de periodo P=2

Es una función impar, los coeficientes ak son nulos

bk=0∫−1sin(kπt)dt−1∫0sin(kπt)dt=1kπ(−2+2cos(kπ))={0kpar−4kπkimparbk=∫−10
sin(kπt)dt−∫01sin(kπt)dt=1kπ(−2+2cos(kπ))={0 k par−4kπ
k impar

>> syms t P k;
>> bk=int(sin(pi*k*t),t,-1,0)-int(sin(pi*k*t),t,0,1);
>> subs(bk,k,sym('[1 2 3 4 5 6 7]'))
ans =[ -4/pi, 0, -4/(3*pi), 0, -4/(5*pi), 0, -4/(7*pi)]
El desarrollo en serie es

sn(t)=−4sin(πt)π−4sin(3πt)3π−4sin(5πt)5π−4sin(7πt)7π+...sn(t)=−4sin(πt)π
−4sin(3πt)3π−4sin(5πt)5π−4sin(7πt)7π+...

n=7; %Número de términos;


hold on
x=[-1 -1 0 0 1 1];
y=[0 1 1 -1 -1 0];
plot(x,y,'b','linewidth',2)
x=linspace(-1,1,100);
y=zeros(length(x),1);
for i=1:length(x)
y(i)=0;
for k=1:2:n
y(i)=y(i)-4*sin(k*pi*x(i))/(k*pi);
end
end
plot(x,y, 'r');
title(sprintf('Aproximación de Fourier: %i términos',n))
xlabel('t');
ylabel('f(t)')
grid on
hold off

Anda mungkin juga menyukai