Inicio Oscilaciones Forzadas Tipos de fuerza
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 (√2t) son periódicas de periodo 2π y 2π/√2 respectivamente,
pero la suma
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',[Link])
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',([Link])/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,
∞
a0 2π 2π
f (t) = + ∑ (ak cos (k t) + bk sin (k t))
2 P P
k=1
donde a0 a1 ...ak ... y b1 b2 .... bk .... son los
Una función periódica, se puede
denominados coeficientes de Fourier.
representar en forma de una
Teniendo en cuenta los resultados de las suma infinita de funciones
integrales
armónicas
P /2 π
2π 2π
P
∫ cos (m t) sin (n t) dt = ∫ cos (mx) sin (nx) dx = 0
2π
P P
−P /2 −π
>> syms m n t;
>> y=int('sin(m*t)*cos(n*t)',t,-pi,pi)
y =0
P /2 π
2π 2π 0 m ≠ n
P
∫ cos (m t) cos (n t) dt = ∫ cos (mx) cos (nx) dx = {
2π P
P P m = n
2
−P /2 −π
>> 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 π
2π 2π 0 m ≠ n
P
∫ sin (m t) sin (n t) dt = ∫ sin (mx) sin (nx) dx = {
2π P
P P m = n
2
−P /2 −π
Los coeficientes del desarrollo en serie valen
P /2
2π
2
ak = ∫ f (t) cos (k t) dt k = 0,1,2,3...
P
P
−P /2
P /2
2π
2
bk = ∫ f (t) sin (k t) dt k = 1,2,3...
P
P
−P /2
La suma parcial de las series de Fourier es
n
a0 2π 2π
sn (t) = + ∑ (ak cos (k t) + bk sin (k t))
2 P P
k=1
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
Por ejemplo, para el pulso rectangular simétrico de anchura
1 y periodo P=2 se obtienen los siguientes coeficientes.
Si la función es par bk=0
0.5
2
a0 = ∫ dt = 1
2
−0.5
0.5
0 k par
2 2 kπ
ak = ∫ cos (kπt) dt = (sin ( )) {
2 kπ 2 2 (k−1)/2
(−1) k impar
kπ
−0.5
>> 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.
1 2 cos(πt) 2 cos(3πt) 2 cos(5πt) 2 cos(7πt)
sn (t) = + − + − + ...
2 π 3π 5π 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=[Link]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
Sea ahora la función de periodo P=2
Si la función es impar, ak=0
Es una función impar, los coeficientes ak son nulos
0 1
1 0 k par
bk = ∫ sin (kπt) dt − ∫ sin (kπt) dt = (−2 + 2 cos(kπ)) = { −4
kπ k impar
kπ
−1 0
>> 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
4 sin(πt) 4 sin(3πt) 4 sin(5πt) 4 sin(7πt)
sn (t) = − − − − + ...
π 3π 5π 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=[Link]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
Energías Renovables Curso Interactivo de Física en Internet
Angel Franco García, Copyright © 2016