14 de marzo de 2010

Serie de Fourier Discreta en Matlab

Este post está pensado para le gente geek que quiere ser aun más geek.



El siguiente código trata de la serie de Fourier para el espectro de un tren de pulsos discretizada que podemos visualizar en Matlab, antes de colocar el código y las imagenes de como se visualiza esa interpretación de la señal vamos con algo de teoría de manera muy breve.

En principio sabemos que para una señal periódica x(t) con periodo t=To=1/fo, su serie de Fourier exponencial es:





donde:


Una vez reduciendo la expresión mediante la buena aplicación de los conocimientos que todo geek posee de calculo integral y considerando la siguiente función

f(t)= A... 0 (menor que) t (mayor que) d
0... d (menor que) t (mayor que) To
asi la Cn queda como a continuación:

Cn = (Ad/To) sinc(nd/To)

de la expresión anterior vease que puse sinc, no es ningún error, sinc esta expresado de la siguiente manera:
sinc(x) = sen(pi*x)/(pi*x)

ya una vez aclarado ese punto, pasemos a lo que queremos, el poderoso código en matlab


*****Código****

%se definen las constantes del programa
A=5
To=1000
d=.25

%rango de la señal discreta
n=-15000:100:15000

%operaciones
Z=(A*d)/To
x=(n*d)/To
a=pi*x
b=sin(a)
%función sinc
sinc=b./a

%se define la función Cn

Cn=Z*sinc
stem(n,abs(Cn))
%Gráfica
hold on
plot(n,abs(Cn))
hold off
xlabel('n Frecuencia')
ylabel('Amplitud')
grid


Gráfica



3 comentarios:

Alejandra Nataly dijo...

Este post es como una verdadera mentada de madre!!!!!

Anónimo dijo...

no dices nada adems tu codigo como dice la compañera es una mendada de madre...... si fuese maestro quedavas reprovado de por vida por las estupideces que dices

Anónimo dijo...

Bueno, tampoco para que sea una mendada de madre, como dicen,
la verdad el chico no está graficando la serie discreta de fourier, más bien está usando matlab para graficar la serie de fourier continua, permitiendo solo unos valores, al usar el comando steam. Pero creo que quien más ofende, quien es más pedante es más ignorante aún.