Vous êtes sur la page 1sur 3

Programa en Matlab para Series de Fourier

Este es un programa en Matlab que permite hacer una aproximacin a una seal
cuadrada (con lmites en y max= 1, min= -1) por medio de las series de Fourier.
Los valores de los coeficientes son:A0 = 0, debido al valor medio de la funcin.B(n)
= 4/n*pi, obtenido analticamente.A(n) = 0, debido a la forma de la seal.
Programa en Matlab
% Pablo Alejandro Arreola Galvn 98482
% Febrero, 2013
% Este programa grafica una funcin escaln y sobre ella
% una aproximacin hecha con la serie de Fourier
%Introduccin al programa y limpia de pantalla
clc
clear all
disp('******************************')
disp('Serie de Fourier')
% Aqu declaramos varias cosas, en primer lugar una variable N la cual es el nmero de
armnicos que % incluir nuestra aproximacin, mientras mayor sea el nmero, ms fiel ser la
grfica obtenida a la
% original.
% Tambin se declara el intervalo (x) de nuestra funcin, que va de pi hasta pi.
% Por ltimo inicializamos la variable SUM a cero.
N= input('Nmero de muestras deseadas (N):');
x=-pi:0.001:pi;
sum=0;
% En este ciclo for est contenida la magia, inicializa en 1 y termina en N, el incremento es de 2,
para % as tener una serie de nmeros impares (1,3,5,7,9). Los valores pares de (n) se omiten
ya que el
% resultado es cero para todos ellos, no sumarn nada a la variable (sum).
% b(n) fue obtenida analticamente
for n = 1: 2: N
b(n) = 4/(n*pi);
sum = sum + b(n) * sin(n*x);
end
% Para tener el resultado aproximado de la seal, se suma a0/2, este trmino fue obtenido a partir
de % el valor promedio del rea bajo la curva de -pi a pi, como es una funcin simtrica, el valor
es 0,
% esto podra omitirse, pero para se incluye para ver ms claramente la frmula de la
serie.
sum = sum + 0;
% Esta es una manera de generar la funcin escaln (f), diciendo que toda (x) inferior a 0 valdr1, y % toda (x) mayor a 0 valdr 1. Esto slo es vlido para el intervalo de pi a pi, donde se ve
una seal % cuadrada, si se amplan los lmites se ver la grfica de valores constantes.
f=(x<0).*(-1)+(x>=0).*1;
% En esta seccin se encuentran los comandos para graficar y fin del programa.
plot(x,f); hold on
plot(x,sum)
grid
title(Serie de Fourier')
xlabel('Tiempo')

ylabel('Voltaje')
disp('Programa ejecutado exitosamente')
disp('******************************')
Algunos resultados son:
Aproximacin con N=3

Aproximacin con N=30

Publicado por Pablo Arreola en 11:25


Enviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir con FacebookCompartir en Pinterest
Etiquetas: Fourier, Matlab, Onda cuadrada, Programa, Series de Fourier

4 comentarios:
1.
Jorge vila Morales18 de octubre de 2013, 18:55
Disculpa, entonces para obtener los valores de los coeficientes, siempre debemos calcularlo de forma
analtica para luego programarlo en Matlab? existe alguna forma de solo poner la funcion deseado para
que este la aproxime? gracias
Responder
Respuestas

1.
Pablo Arreola20 de octubre de 2013, 18:33
En este caso si tendrs que hacer primero el clculo de los coeficientes, este programa
slo hace las grficas. Supongo que podras hacer un programa que te calcule los
coeficientes resolviendo las integrales, pero este programa no hace nada de eso.
Responder

2.
cristopher valencia25 de noviembre de 2013, 20:44
Este comentario ha sido eliminado por el autor.
Responder
Respuestas

1.
Pablo Arreola25 de noviembre de 2013, 21:05
Jaja, tuve que verlo un rato para acordarme. Vez que originalmente la frmula tiene el
coeficiente bn que multiplica al seno de (2pi *xn/P), entonces mi periodo P va de -pi a pi,
por lo que es de 2pi, al sustituir en el argumento del seno, queda solamente (xn)
saludos!

Vous aimerez peut-être aussi