Este es un programa en Matlab que permite hacer una aproximación a una señal cuadrada (con límites 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 función.B(n) = 4/n*pi, obtenido analíticamente.A(n) = 0, debido a la forma de la señal.
Programa en Matlab
% Pablo Alejandro Arreola Galván 98482
% Febrero, 2013
% 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')
% Aquí declaramos varias
cosas, en primer lugar una variable N la cual es el número de armónicos que % incluirá nuestra aproximación, mientras
mayor sea el número, más fiel será la gráfica obtenida a la
% original.
% También se declara el
intervalo (x) de nuestra función, que va de –pi hasta pi.
% Por último inicializamos
la variable SUM a cero.
N= input('Número
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 números
impares (1,3,5,7,9…). Los valores pares de (n) se omiten ya que el
% resultado es cero para
todos ellos, no sumarán nada a la variable (sum).
% b(n) fue obtenida
analíticamente
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
señal, se suma a0/2,
este término fue obtenido a partir de
% el valor promedio del área
bajo la curva de -pi a pi, como es una función simétrica, el valor es 0, %
esto podría omitirse, pero para se incluye para ver más claramente la
fórmula de la serie.
sum = sum + 0;
% Esta es una manera de generar la función
escalón (f), diciendo que toda (x) inferior a 0 valdrá- 1, y % toda (x) mayor a 0 valdrá 1. Esto sólo es
válido para el intervalo de –pi a pi, donde se ve una señal % cuadrada, si se amplían los límites se verá
la gráfica de valores constantes.
f=(x<0).*(-1)+(x>=0).*1;
% En esta sección 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('******************************')
Aproximación con N=3

Aproximación con N=30
Disculpa, entonces para obtener los valores de los coeficientes, siempre debemos calcularlo de forma analítica para luego programarlo en Matlab? existe alguna forma de solo poner la funcion deseado para que este la aproxime? gracias
ResponderEliminarEn este caso si tendrás que hacer primero el cálculo de los coeficientes, este programa sólo hace las gráficas. Supongo que podrías hacer un programa que te calcule los coeficientes resolviendo las integrales, pero este programa no hace nada de eso.
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarJaja, tuve que verlo un rato para acordarme. Vez que originalmente la fórmula 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)
Eliminarsaludos!
SONSO NO ES UNA FUNCION ESCALON SINO UNA ONDA CUADDRADA
ResponderEliminarPara obtener la serie exponencial de fourier, como sería?
ResponderEliminarTe amo Pablo me salvaste de una <3
ResponderEliminarexcelente aporte... muchas gracias
ResponderEliminary si quiero hacer lo mismo para una triangular como seria la ecuacion ?
ResponderEliminarDisculpa, sabes como hacer el mismo procedimiento para una señal triangular ?
Eliminarlove you
ResponderEliminarPlaytech debuts in the UK for three weeks | Business Wire
ResponderEliminarPlaytech's live 속초 출장마사지 dealer studios are available for 의왕 출장안마 free in London. Here's 전주 출장샵 a breakdown of the 세종특별자치 출장안마 games offered for 충주 출장샵 the