Tutorial Serie de Fourier Con Matlab
Tutorial Serie de Fourier Con Matlab
Tutorial Serie de Fourier Con Matlab
GRAFICARLAS EN MATLAB
% Este programa grafica una función escalón y sobre ella
% una aproximación hecha con la serie de Fourier
% Introducción al programa y limpia de pantalla
clc
clear all
disp('******************************')
disp('Serie de Fourier')
for n = 1: 2: N
b(n) = 4/(n*pi);
sum = sum + b(n) * sin(n*x);
end
sum = sum + 0;
f=(x<0).*(-1)+(x>=0).*1;
plot(x,f); hold on
plot(x,sum)
grid
title('Serie de Fourier')
xlabel('Tiempo')
ylabel('Voltaje')
disp('Programa ejecutado exitosamente')
disp('******************************')
******************************
Serie de Fourier
Número de muestras deseadas (N): 1
1.5
0.5
-0.5
-1
-1.5
-4 -3 -2 -1 0 1 2 3 4
Para N = 3
1.5
0.5
-0.5
-1
-1.5
-4 -3 -2 -1 0 1 2 3 4
1 0t
g (t )
1 t 2
Representaremos esta señal por la serie trigonométrica de Fourier. Se observa que la señal g(t)
es una función impar por lo que an=0 y contiene términos seno.
2
T = 2
2 2 2
bn
T
0
sen n 0 t
T sen n 0 tdt 0
T
1
entonces
2
2 cos nt 2 cos nt
bn
2 n 2 n
0
1 1
=
n
cos n 1
n
1 cos n
4
......................... para n impar
b n n
0 ...........................para n par
4 4 4
g(t) =
n 1
bn sen n 0 t =
sen t
3
sen3t
5
sen5t
0 1 4
f0 hertz y de volts de amplitud
2 2
3 4
más una señal senoidal de frecuencia f = Hertz y una amplitud de volts + ...
2 3
se obtiene una señal de pulsos rectangulares.
Componentes armónicos para la señal polar de pulsos rectangulares.
B) Una vez escrito el código, salvar como (siempre se salva en la carpeta work), y se
corre el programa run(f5) o bien dar clik en icono con flecha azul (run), la figura se
muestra automáticamente
1.5
0.5
-0.5
-1
-1.5
0 1 2 3 4 5 6 7 8 9 10
e x
Utilizando la fórmula integral: xe
x
dx x 1 Tenemos:
2
Ae jn o t
Fn 2 2 2 jn o t 1
T
T n o 0
2
o
i 1
2
A jn 2 A
2 2 e
4n
j 2n 1
4n 2 2
Cuando n = 0 el resultado anterior no tiene sentido por lo que calculando Fn cuando n=o.
T T
1 1 T A A t 2
Fo =
T 0
f ( t )dt
T 0 T
tdt 2
T 20
A T 2 A
= Fo = ao
T2 2 2
Agrupando ambos resultados:
jA
Para n 0 Utilizando este resultado para expresar g(t) en serie exponencial de Fourier
n
Fn 2A
2 Para n = 0
Tenemos:
jA j 3ot jA jA A jA jot jA j 2ot
g(t) = - e - - + + e e .......
6 4 e j 2 t 2 e j t 2 2 4
A
A C
Fn = j tg 1 2 n
2n e 0 0
tg 1 ( ) 90 0
2
A
Fn Fn an 2 bn 2
2n
Para n = 1, 2, 3, . . . .
` n
2
2
Para n = -1, -2, -3, . . . . .
Espectro de amplitud y espectro de fase para la señal diente de sierra.
T
1 A
a f (t )dt
T 0
2
2 T A
an
T 0 T
t cos n ot
T
2 A cos n 0 t tsen n 0 t
2 2
T
n 0 n 0 0
NOTA:
cos ax x sen ax
x cos ax a 2 a
2 2
cos n T senn T
2A T T 1
T
T2 2 2 2
n
n 0 n 0 2
T
2A 1 1
0
T 2 n 2 n 2
0 0
A A A A A
g(t) = sen 0 t sen2 0 t sen3 0 t - sen4 0 t . . . . . . .
2 2 3 4
Cn= an 2 bn 2 bn
A
1 bn 1
2n 1
n tg a n t g 0 tg ( )
2
t=0:0.1:15;
y=1/2-sin(t)/pi;
plot(t,y,'g')
hold on
y=1/2-sin(2*t)/(2*pi);
plot(t,y,'b')
hold on
y=1/2-sin(3*t)/(3*pi);
plot(t,y,'r')
hold on
y=1/2-sin(4*t)/(4*pi);
plot(t,y,'g')
hold on
y=1/2-sin(t)/pi-sin(2*t)/(2*pi)-sin(3*t)/(3*pi)-sin(4*t)/(4*pi);
plot(t,y,'b')
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 5 10 15
TRANSFORMADA DE FOURIER
Creamos un script para realizar las siguientes tareas:
n=2^14;
dt=0.4;
x=cos(t)+0.5*cos(3*t)+0.4*cos(3.5*t)+0.7*cos(4*t)+0.2*cos(6*t);
g=fft(x);
power=abs(g).^2;
dw=2*pi/(n*dt);
plot(w,power)
xlabel('\omega')
ylabel('P(\omega)')
title('Espectro de potencia')
7
x 10 Espectro de potencia
7
4
P()
0
0 2 4 6 8 10 12 14 16
%serie temporal
n=2^14;
dt=0.4;
t=(0:n-1)*dt; %vector de tiempos
x=cos(t)+0.5*cos(3*t)+0.4*cos(3.5*t)+0.7*cos(4*t)+0.2*cos(6*t);
plot(w,power)
xlabel('\omega')
ylabel('P(\omega)')
grid on
title('Espectro de potencia')
7
x 10 Espectro de potencia
7
4
P()
0
-8 -6 -4 -2 0 2 4 6 8
n=2^14;
dt=0.4;
t=(0:n-1)*dt; %vector de tiempos
x=cos(t)+0.5*cos(3*t)+0.4*cos(3.5*t)+0.7*cos(4*t)+0.2*cos(6*t);
xlabel('\omega')
ylabel('P(\omega)')
grid on
title('Espectro de potencia')
7
x 10 Espectro de potencia
7
4
P()
0
0 1 2 3 4 5 6 7