Tutorial de Matlab Fourier 1

download Tutorial de Matlab Fourier 1

of 31

Transcript of Tutorial de Matlab Fourier 1

MANUAL BSICO DE MANEJO DE FOURIER UTILIZANDO LA HERRAMIENTA MATLAB

FACULTAD DE INGENIERA EN CIENCIAS APLICADASCIERCOMRosa Hermosa

NDICEContenidoObjetivos del Tutorial3INTRODUCCIN4ORIGEN4INICIACIN AL MATLAB5CARACTERSTICAS DEL ENTORNO5Toolbox especiales5Command Window6Command History6El workspace (lugar de trabajo)7Current Directory7Libreras7Matlab Editor/Debugger8Comando Help8FOURIER EN MATLAB9Representacin grfica con Matlab10Frecuencia de la seal12Amplitud de la Seal y Componente Continua13Modificacin de la fase15Valores Caractersticos de una Seal Senoidal16Suma de ondas senoidales.16SEALES ESPECIALES17Seal escaln, u(t)17Seal pulso, rect(t), amplitud 1.17Seal sampling (Sa(t) = y Sinc(t)=18COMANDOS DE FOURIER EN MATLAB18Transformada de Fourier18Transformada Rpida de Fourier19Clculo de la Transformada Rpida de Fourier19Inversa de la transformada de Fourier20TRANSFORMADA DE FOURIER DISCRETA - DFT21Transformada de Fourier Discreta21Sintaxis21PROPIEDADES DE LA DTF22LINEALIDAD22Homogeneidad22Aditibilidad22PERIODICIDAD23Dominio del tiempo24Dominio de la frecuencia24COMPRESIN Y EXPANSIN25TRANSFORMADA COSENO DISCRETO DCT28Aplicaciones de la FFT30Respuesta en Frecuencia30CONCLUSIONES34BIBLIOGRAFA35

Objetivos del Tutorial

Determinar las funciones principales para el desarrollo de anlisis de Fouier de determinadas seales. Analizar determinadas seales con ayuda de matlab, simplificando los extensos procedimientos vistos en clases. Ayudar a entender la herramienta, aplicando el anlisis terico de seales con los distintos comandos que nos ofrece matlab.INTRODUCCIN

Matlab es un programa interactivo para clculo numrico y tratamiento de datos, contiene muchas herramientas y utilidades que permiten adems diversas funcionalidades, como la presentacin grfica en 2 y 3 dimensiones.

MATLAB integraanlisisnumrico,clculomatricial,procesode seal y visualizacin grfica en un entorno completo donde losproblemasy sussolucionesson expresados del mismo modo en que se escribiran tradicionalmente, sin necesidad de hacer uso de laprogramacintradicional.

A Matlab se le pueden aadir paquetes especializados para algunas tareas (por ejemplo, para tratamiento de imgenes). Esos tiles estn agrupados en "paquetes" (toolboxes).

Matlab es un programacommand-driven, es decir, que se introducen las rdenes escribindolas una a una a continuacin del smbolo(prompt) que aparece en una interfaz de usuario (una ventana).

ORIGEN

MATLAB nace como una solucin a la necesidad de mejores y ms poderosas herramientas para resolver problemas de clculo complejos en los que es necesario aprovechas las amplias capacidades de proceso dedatosde grandes computadores.

El nombre MATLAB viene de "matrixlaboratory" (laboratoriomatricial). MATLAB fue originalmente escrito para proveer acceso fcil alsoftwarematricial desarrollado por los proyectos LINPACK y EISPACK, que juntos representanel estadodelartee software para computacin matricial. Hoy MATLAB es usado en una variedad de reas de aplicacin incluyendo procesamiento desealese imgenes,diseode sistemas de control, ingeniera financiera einvestigacinmdica. Laarquitecturaabierta facilita usar MATLAB y los productos que lo acompaan para explorar datos y crear herramientas personalizadas que proveen visiones profundas tempranas y ventajas competitivas.

INICIACIN AL MATLAB

ElLenguajede Computacin Tcnica MATLAB es unambientede computacin tcnica integrada que combina computacin numrica, grficos y visualizacin avanzada y un lenguaje de programacin de alto nivel.Sea cual fuere elobjetivo, unalgoritmo, anlisis, grficos,informeso simulacin, MATLAB lo lleva consigo.El lenguajeflexible e interactivo de MATLAB permite a ingenieros y cientficos expresar sus ideastcnicascon simplicidad. Los poderosos y ampliosmtodosde cmputo numrico y graficacin permiten la prueba y exploracin de ideas alternativas con facilidad, mientras que el ambiente de desarrollo integrado facilita producir resultados prcticos fcilmente.

MATLABes la fundacin numrica y grfica para todos los productos de The MathWorks, combina computacin numrica, grficos 2D y 3D y capacidades de lenguaje en un nico ambiente fcil de usar.Con su amplio rango de herramientas para modelar sistemas de control, anlisis, simulacin y procesamiento de prototipos, MATLAB es el sistema ideal para desarrollar sistemas avanzados.Combinando MATLAB con Signal Processing Toolbox, Wavelet Toolbox y un conjunto de herramientas complementarias - tales como Image Processing, Neural Network, Fuzzy Logic, Statistics y otras - usted puede crear un ambiente de anlisis personalizado de seales y desarrollo dealgoritmosDSP. Para simulacin y desarrollo de prototipos usted puede agregar Simulink y el DSP Blockset para modelar y simular sus sistemas DSP, y luego usar Real-Time Workshop para generar cdigo C para suhardwaredesignado.CARACTERSTICAS DEL ENTORNO

Clculos intensivos desde un punto de vista numrico. Grficos y visualizacin avanzada. Lenguaje de alto nivel basado envectores, arrays ymatrices. Coleccin muy til de funciones de aplicacin.Las poderosas capacidades de clculo tcnico de MATLAB se ponen a la disposicin de los estudiantes, aunque limita el tamao de las matrices a 8192 elementos, laedicinde estudiante mantiene toda lapotenciade la versin profesional.

Toolbox especiales

MATLAB dispone tambin en la actualidad de un amplio abanico deprogramasde apoyo especializados, denominados Toolboxes, que extienden significativamente el nmero defuncionesincorporadas en el programa principal. Estos Toolboxes cubren en la actualidad prcticamente casi todas las reas principales en el mundo de laingenieray la simulacin, destacando entre ellos el 'toolbox' de proceso de imgenes, seal,controlrobusto,estadstica, anlisis financiero,matemticassimblicas,redesneurales,lgicadifusa, identificacin desistemas, simulacin de sistemas dinmicos, etc. es un entorno de clculo tcnico, que se ha convertido en estndar de laindustria, con capacidades no superadas en computacin y visualizacin numrica.De forma coherente y sin ningn tipo de fisuras, integra los requisitos claves de unsistemade computacin tcnico: clculo numrico,grficos,herramientaspara aplicaciones especficas y capacidad de ejecucin en mltiples plataformas. Estafamiliadeproductosproporciona al estudiante un medio decarcternico, para resolver los problemas ms complejos y difciles.

Command Window

La ventana de comandos (Command Windows) es el lugar donde se ingresan las variables, se ejecutan funciones y se corren los archivos M. Los comandos se escriben a continuacin de >> y se ejecutan con la tecla Enter.

Command History

En esta ventana se van guardando los comandos ejecutados en la ventana de comandos, es muy til para visualizar funciones ejecutadas anteriormente, lo nico que se necesita hacer es seleccionar la funcin con el mouse y hacer doble click en la misma para que la funcin o comando se ejecute nuevamente.

El workspace (lugar de trabajo)

El workspace es una metfora del espacio de memoria que contiene a todas las variables con las que est trabajando. Al cerrarse Matlab toda esta informacin se pierde, por lo que es, nuevamente, recomendable el uso de programas preescritos (scripts) para volver a generar toda la informacin.

Para ver las variables del workspace as como tambin informacin de las mismas se puede utilizar el Workspace Browser (perteneciente al escritorio de Matlab) o ejecutar las funciones who y whos desde la lnea de comandos de la ventana de comandos.

Current Directory

La ventana Current Directory muestra los ficheros del directorio activo o actual. El directorio activo se puede cambiar desde la Command Window, o desde la propia ventana o a su vez desde la barra de herramientas, debajo de la barra de mens, con los mtodos de navegacin de directorios propios de Windows.

Libreras

Una librera es una serie de funciones (archivos *.m) que permiten encarar determinados problemas. Una de las ventajas de Matlab, es que su cdigo es abierto. Esto quiere decir que cualquier funcin de las libreras, estndar o no, puede ser editada y modificada. Es decir que una funcin cualquiera que ya venga incluida en el paquete no difiere demasiado de una funcin que nosotros podamos escribir.Matlab Editor/Debugger

Matlab cuenta con un editor de texto, que tambin efecta acciones de debugging, en donde pueden escribirse los scripts. El editor resalta en distintos colores las palabras reservadas, las cadenas de string.

Comando Help

Este comando nos permite solicitar ayuda sobre cualquier comando o funcin que se encuentre instalada en Matlab.Escribiendo help en la lnea de comando, el programa devuelve un listado de todas las libreras instaladas. Entonces:

help

Para pedir ms detalles sobre las funciones que pertenecen a una librera dada, ingresamos help seguido del nombre de la librera. Por ejemplo:

helptools

Nos da acceso a la ayuda en lnea de HTML, a la informacin sobre los productos de The MathWorks y soporte tcnico.

Al final de la ayuda nos remite a algunos temas relacionados para que podamos continuar la bsqueda, si es que no terminamos de encontrar lo que buscbamos.Ante cualquier duda sobre el help debemos tipear:

help help

Hay otro modo de ayuda, un poco ms cmodo, que se puede acceder desde el men desplegable Help. El contenido es el mismo que el de la lnea de comandos, solo que disponemos de un pequeo navegador.FOURIER EN MATLAB

La afirmacin de Fourier de que cualquier seal contnua y peridica poda representarse como la suma una serie de ondas senoidales adecuadamente elegidas, se tratar ahora de aplicar, pero en sentido contrario. Generaremos ondas senoidales y las sumaremos, para ver el resultado.

MATLAB es muy utilizado en la definicin, manipulacin y representacin de seales analgicas. Siendo rigurosos, el procedimiento seguido en esos ejemplos no es adecuado para el anlisis de seales analgicas; es ms, en general, MATLAB no permite analizar seales analgicas, esto se debe a que la forma natural de representar una seal en MATLAB es definir una secuencia finita de valores mediante un vector fila.

Una de las ms importantes aplicaciones es para el Procesamiento Digital de Seales donde podemos observar la Frecuencia fundamental de una seal en especial.

Por tanto, en Matlab toda seal es discreta en tiempo, mientras que en amplitud puede ser discreta (cuantizada) o continua (aunque limitada por la precisin de los tipos numricos). Sin embargo, si los intervalos temporales entre valores son suficientemente pequeos y el rango temporal en que se define la seal es suficientemente amplio, la secuencia de valores empleada para representar la seal y las operaciones realizadas para su anlisis proporcionan una buena aproximacin a los resultados tericos.

Representacin grfica con Matlab

Matlab tiene una gran librera de funciones matemticas, entre ellas las trigonomtricas como la funcin seno.

y =sin(x) Para obtener el seno de un nmero simplemente se escribe la funcin. Una de las ventajas del uso de Matlab es que las expresiones matemticas se escriben de manera muy similar a como se hara sobre el papel.

>> sin (90)ans = 0.8940

Nota: las funciones trigonomtricas en Matlab utilizan como unidades para los ngulos los radianes, no los grados. Una circunferencia de 360 tiene 2 veces radianes. Matlab utiliza las letras pi para dicho nmero >>sin(pi/2) ans = 1 Otra de las ventajas fundamentales de Matlab es el trabajo sencillo con matrices o tablas de datos. Una tabla de datos (con tantas filas y columnas) se introduce teclendola y utilizando como separadores los smbolos coma, punto y coma y corchetes.

>> [2,3,4]ans = 2 3 4>> [2;3;4]ans = 2 3 4

>> [2,3;4,5]ans = 2 3 4 5

Si aplicamos una funcin como el seno, a una tabla de datos, el resultado ser otra tabla del mismo tamao en la que se ha aplicado la funcin a cada elemento

>>sin([2,3,4])ans = 0.9093 0.1411 -0.7568

Una serie de datos puede verse como una tabla de una nica fila o columna, y podr representarse por medio de muchos tipos diferentes de grficos (lneas, barras, colores). Las seales biolgicas, una vez digitalizadas, sern slo eso: series de nmeros. Los resultados en forma de valores sueltos y series o tablas de datos, pueden guardarse para no perder la informacin. Para ello se utilizarn variables. La forma de guardar un determinado contenido en una variables es el smbolo =

>> a= [5,6,7]a = 5 6 7>> aa = 5 6 7

Las variables se podrn usar dentro de las frmulas, como veremos a continuacin, pero empezaremos usando una serie que representar el tiempo desde 0 a 1 segundo en intervalos de una dcima. >> t=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1];>> t=[0:0.1:1]t = Columns 1 through 4 0 0.1000 0.2000 0.3000 Columns 5 through 8 0.4000 0.5000 0.6000 0.7000 Columns 9 through 11 0.8000 0.9000 1.0000

Matlab utiliza el punto . como smbolo decimal, y la coma , para separar valores en una tabla. Puede generar listas regulares de nmeros escribiendo [inicio:paso:fin].

Si aplicamos ahora la funcin seno a nuestra variable t y guardamos el contenido en otra variable (x) tendremos una nueva tabla de valores.

x=sin(t)x = Columns 1 through 4 0 0.0998 0.1987 0.2955 Columns 5 through 8 0.3894 0.4794 0.5646 0.6442 Columns 9 through 11 0.7174 0.7833 0.8415

Para realizar la representacin grfica utilizaremos la funcin plot.

>> plot(x)

A continuacin se realizar diferentes ondas senoidales. Partiremos de una funcin sencilla e iremos modificando los valores que las caracterizan, como son la amplitud, la frecuencia y la fase. Al mismo tiempo veremos la necesidad de utilizar un nmero mnimo de puntos para representar bien una seal, a medida que realicemos cambios sobre la funcin inicial sin(t).Frecuencia de la sealModificaremos la frecuencia de la seal senoidal multiplicando la variable t por un nmero, por ejemplo 7, o 2

>> x=sin(7*t);>> plot(t,x)

>> x=sin(2*pi*t);>> plot(t,x)

Adems cuando el valor que multiplica a t es un mltiplo de 2, tendremos ciclos completos de ondas.

>> x=sin(4*pi*t);>> plot(t,x)

Podemos observar que el grfico que une los puntos del muestreo cada vez se parece menos a la onda inicial continua. Estamos cerca de perder informacin.Representaremos mejor la curva con ms puntos, vamos a probar con 100 intervalos en lugar de 10.

>> t=[0:0.01:1]>> x=sin(4*pi*t)>> plot(t,x)

Amplitud de la Seal y Componente Continua

Si multiplicamos el valor de la funcin seno por una constante, estaremos multiplicando cada uno de los valores de la seal por ese nmero, y estaremos cambiando la amplitud de variacin de la curva.

>> t=[0:0.01:1]>> x=5*sin(4*pi*t)>> plot(t,x)

La seal generada tiene la misma forma que la anterior, pero ahora vara entre un mnimo de -5 y un mximo de 5. Hemos cambiado su amplitud.

Tambin se puede representar grficamente varias curvas juntas usando plot(t,x1,t,x2), en esta ocasin utilizaremos el punto y coma final para que no nos muestre todo el historial de nmeros.

>> t=[0:0.01:1]>> x1=6*sin(4*pi*t);>> x2=4*sin(4*pi*t);>> plot(t,x1,t,x2)

Si le sumamos a todos los valores una constante, habremos variado el valor medio de la seal, esta es la componente continua. Ahora el rango de variacin ha subido, tanto el mnimo como el mximo.

>> t=[0:0.01:1]>> x1=6*sin(4*pi*t);>> x2=3+6*sin(4*pi*t);>> plot(t,x1,t,x2)

Modificacin de la fase

Si sumamos un valor constante a la escala de tiempo, veremos que estamos desplazando la seal, que ya no comenzar en cero. Esa diferencia temporal la llamaremos fase (a veces tambin desfase).

>> t=[0:0.01:1]>> x=6*sin(4*pi*t+3)>> plot(t,x)

Realizamos una comparacin

>> x1=6*sin(4*pi*t);>> x2=6*sin(4*pi*t+1);>> x3=6*sin(4*pi*t+2);>> plot(t,x1,t,x2,t,x3)

Valores Caractersticos de una Seal Senoidal

Hemos visto como modificar la frecuencia, la amplitud y la fase de una seal senoidal. En el caso ms general, una onda senoidal vendr dada nicamente por esos tres nmeros.

x = Asin(2ft + )

En Matlab

>>x=A*sin(2*pi*f*t+delta)

En donde:A ser nuestra amplitudf la frecuencia o nmero de ciclos por segundodelta la faset puede ser un nmero o bien una tabla de valores para la que queremos ver el resultado y dibujar un grfico.

Suma de ondas senoidales.

Al igual que sumamos nmeros, en Matlab podemos sumar tablas. La nica condicin es que deben tener el mismo nmero de elementos, para as ser sumados uno a uno. Si las tablas representan seales con la misma escala de tiempo, estaremos sumando seales.

Ejemplo:

>> t=[0:0.01:1];>> x1=5*sin(4*pi*t);>> x2=2*sin(8*pi*t+1);>> x3=x1+x2;>> plot(t,x1,t,x2,t,x3)

El objetivo final del anlisis de Fourier ser separar cualquier seal en componentes ms sencillas (senoidales) y en su caso, eliminar las que sobran, como el ruido.SEALES ESPECIALESSeal escaln, u(t)

>> t=-10:0.01:10;>> a_escalon=[zeros(1,1000), ones(1,1001)];>> plot(t,a_escalon);

Seal pulso, rect(t), amplitud 1.

>> t=-10:0.01:10;>> a_pulso=[zeros(1,950),ones(1,101),zeros(1,950)];>> plot(t,a_pulso);

Seal sampling (Sa(t) = y Sinc(t)=

>> t=-10:0.01:10;>> a_sampling = sin(t)./t;Warning: Divide by zero.>> plot(t,a_sampling);>> a_sinc=sinc(t);>> plot(t,a_sinc);

COMANDOS DE FOURIER EN MATLABTransformada de FourierSintaxisFourier(f,trans_var,eval_point)

Transformada Rpida de FourierSintaxisY=fft(x)Y=fft(X,n)

Ejemplo 1:

fs= 1000;t= 0 : 1/fs : 1.5 - 1/fs;f1= 20;f2= 30;f3=40;x=3*cos(2*pi*f1*t + 0.2) + 1*cos(2*pi*f2*t - 0.3) + 2*cos(2*pi*f3*t+2.4);plot(x)

Clculo de la Transformada Rpida de Fourier

X = fft(x);>> length(x)ans = 1500>> length(X)ans = 1500>> x(2:6)ans = 2.0717 1.7535 1.4794 1.2572 1.0884>> X(30:34)ans = 1.0e+003 * Columns 1 through 4 -0.0000 - 0.0000i 2.2051 + 0.4470i 0.0000 - 0.0000i 0.0000 + 0.0000i Column 5 -0.0000 - 0.0000i>> X_mag = abs(X);>> X_mag(30:34)ans = 1.0e+003 * 0.0000 2.2500 0.0000 0.0000 0.0000>> plot(X_mag)

Inversa de la transformada de FourierSintaxisy=ifft()y=ifft(X,n)

Ejemplo 1:

>> x=3*cos(2*pi*f1*t + 0.2) + 1*cos(2*pi*f2*t - 0.3) + 2*cos(2*pi*f3*t+2.4);plot(x)>> X = ifft(x);>> length(x)ans = 1500>> >> length(X)ans = 1500>> x(2:6)ans = 2.0717 1.7535 1.4794 1.2572 1.0884>> X(30:34)ans = -0.0000 + 0.0000i 1.4701 - 0.2980i 0.0000 + 0.0000i 0.0000 - 0.0000i -0.0000 + 0.0000i>> X_mag = abs(X);>> X_mag(30:34)ans = 0.0000 1.5000 0.0000 0.0000 0.0000>> plot(X_mag)

TRANSFORMADA DE FOURIER DISCRETA - DFT En DSP se utiliza la DFT (Transformada de Fourier Discreta) porque es la que se puede procesar en un microcontrolador por ser discreta y finita.

Para resolver muchos problemas de ingeniera es conveniente descomponer una seal dada en suma de funciones bsicas. Una forma razonable es tomar la seal de entrada y representarla con la funciones bsicas con exponenciales complejas o seales senoidales. Para seales discretas se usan la Transformada de Fourier Discreta DFT y un clculo eficiente de ella es la transformada Rpida de Fourier FFT.

Transformada de Fourier Discreta

SintaxisX(k) = DFT[x(n)], y x(n) = IDFT[X(k)]PROPIEDADES DE LA DTF LINEALIDAD La Transformada de Fourier en lineal, esto es, tiene las propiedades de homogeneidad y aditibilidad. Homogeneidad

Aditibilidad

PERIODICIDADDominio del tiempo

Dominio de la frecuencia

COMPRESIN Y EXPANSIN Una compresin de la seal en un dominio resulta en una expansin en el otro y viceversa. Para seales continuas, si X(f) es la Transformada de Fourier de x(t), entonces, 1/k. X(f/k) es la Transformada de Fourier de x(kt) donde k es el parmetro que controla la expansin o compresin.

Ejemplo:

Obtener la parte real y parte imaginaria. A continuacin se tiene la parte real e imaginaria de la seal de su DFT

ejn/3

>> %DFT Parte Real e Imaginaria>> n=0:15;>> xn=exp(j*n/3);>> Xk=fft(xn);>> k=n;>> subplot(221)>> stem(k,real(Xk));>> title('Parte Real de X(k)')>> subplot(223)>> stem(k,imag(Xk));>> title('Parte Imaginaria de X(k)')>> %Recuperar la seal x(n)>> xn=ifft(Xk);>> subplot(222)>> stem(n,real(xn));>> title('Parte Real de x(n)')>> subplot(224)>> stem(n,imag(xn));>> title('Parte Imaginaria de x(n)')

Ejemplo:

Obtener la magnitud y la fase de la DFT de la seal

>> %Magnitud Y Fase>> t=0:0.01:9.99; % 1000 puntos>> f1=15;f2=40;>> xn=sin(2*pi*f1*t)+ sin(2*pi*f2*t);>> Xk=fft(xn);>> mag=abs(Xk);>> f=0:0.1:99.9;>> subplot(121)>> plot(f,mag)>> title('Magnitud de X(k)')>> set(gca,'Xtick',[15 40 60 85])>> subplot(122)>> fase=unwrap(angle(Xk));>> plot(f,fase*180/pi)>> title('Fase de X(k)')>> set(gca,'Xtick',[15 40 60 85])

TRANSFORMADA COSENO DISCRETO DCT Tiene mejor compactacin de energa que la DFT con pocos coeficientes transformados til en aplicaciones de comunicacin de datos. La DCT es una transformada completamente real a diferencia de la DFT que requiere nmeros complejos. Matemticamente para una secuencia de entrada x(n), la DCT es:

Donde,

La transformada Inversa coseno discreto IDCT es;

Donde,

Ejemplo:

Generar una secuencia senoidal de 25 Hz con frecuencia de muestreo de 1000 Hz, calcular la DCT y reconstruir la seal usando solamente los componentes con valor mayor a 0.9 (17 coeficientes de los 1000 originales)

>> t= (0:1/999:1); % 1000 puntos>> x= sin(2*pi*25*t);>> y= dct(x);% calcula la DCT>> y2= find(abs(y) < 0.9);>> y(y2)= zeros(size(y2));

>> %size(y2)=983, solo se usarn 17 componentes >> z= idct(y);% Seal Reconstruida>> subplot(2,1,1); plot(t,x);>> title('Seal Original')>> subplot(2,1,2);>> plot(t,z), axis([0 1 -1 1])>> title('Seal reconstruida')

Respuesta en Frecuencia

Ejemplo:

Obtener la FFT de una seal senoidal de 20Hz sumada a una seal tipo chirp con un desplazamiento desde 5 hasta 40Hz en un tiempo D.

>> D=1; N=128; >> ts=D/N; >> d=ts/2;>> t=0:ts:D-d;>> x=sin(2*pi*20*t)+chirp(t,5,D,40);

>> X=fft(x);>> % Reordenar X>> M=N/2;

>> Xaux=X;>> X(M+1:N)=Xaux(1:M);>> X(1:M)=Xaux(M+1:N);>> Xm=abs(X)/N;

>> Xf=unwrap(angle(X))*180/pi; >> %Reordenar los ndices k>> faux(M+1:N)=0:M-1;

>> faux(1:M)=-M:-1;>> f=faux/D;

>> % Grfica de la seal>> figure;>> plot(t,x,'-g');zoom;

>> xlabel('Tiempo (s)');ylabel('x(t)');>> title('x(t)=sin(2Pi20t)+chirp(5-40)');

>> % Graficar fft de xn Xk>> figure;>> stem(f,Xm,'r')

>> zoom;>> xlabel('Frecuencia (Hz)');ylabel('|X[k]|'); >> title('Mdulo de Coeficientes Espectrales |X[k]|');

>> %Grfica de la fase>> figure;>> stem (f,Xf,'g');zoom;>> xlabel('Frecuencia (Hz)');ylabel('Fase ()');

>> title('Fase de Coeficientes Espectrales X[k]');

>> %Reconstruccin de la seal a partir de los X[k]>> %Utilizamos un mayor nmero de puntos fs=500Hz>> fs=500;>> ts=1/fs;

>> d=ts/2; >> t=0:ts:D-d;>> Ns=length(t); >> %x=sin(2*pi*20*t)+chirp([5 40]*ts,Ns);

>> x=sin(2*pi*20*t)+chirp(t,5,D,40);>> xr=zeros(1,Ns); >> for i=1:Nsfor k=1:N xr(i)=xr(i)+X(k)*exp(j*2*pi*f(k)*ts*(i-1))/N; end end

>> figure;plot(t,x,'g-');hold on;plot(t,xr,'r--');zoom;

Warning: Imaginary parts of complex X and/or Y arguments ignored.>> title('Comparacin entre x(t) y su reconstruccin a partir de X[k]');

>> xlabel('Tiempo (t)');ylabel('x(t)');

CONCLUSIONES

Matlab es una herramienta muy til y de gran ayuda que nos facilita el entendimiento de todo tipo de seales, adems de que nos muestra ms detalladamente el proceso y los cambios que realizamos en ellas.

Para realizar un proceso ntido de las seales en matlab hay que tener conocimiento de los comandos que tiene este software, en este caso de Fourier pudimos realizar un proceso de una manera mucho ms sencilla.

En la manipulacin de seales ya sean discretas o continuas se puede realizar los cambios necesarios para poder estudiar y entender cada uno de sus componentes, tanto en el dominio del tiempo como en el dominio de la frecuencia.

BIBLIOGRAFA

http://es.wikipedia.org/wiki/MATLAB http://mit.ocw.universia.net/13.00/NR/rdonlyres/27BBA896-7C03-4CCB-8810-B02382E5B5D0/0/matlab_handout.pdf http://www.monografias.com/trabajos5/matlab/matlab.shtml#ixzz2ldae7sby http://www.ingelec.uns.edu.ar/icd2763/TECD_aux/Curso%20B%C3%A1sico%20de%20MATLAB.pdf http://matlabgeeks.com/tips-tutorials/how-to-do-a-fourier-transform-in-matlab/ http://pds-fiuner.wdfiles.com/local--files/descargas/clase02_fourier-laplace.pdf https://www.youtube.com/watch?v=iKOrK1lHfmE http://personal.us.es/contreras/practica4.pdf http://www.ceduvirt.com/resources/Dsp1%20Fourier.pdf https://www.youtube.com/watch?v=5I3Jt3Mg_3c http://www2.imse-cnm.csic.es/~belen/Ficherospdf/practica2.pdf http://www2.imse-cnm.csic.es/~belen/Ficherospdf/ficom-pr1.pdf http://seriefouriererrorcuadraticomedio.wikispaces.com/Pulso+Triangular+y+su+transformada+de+Fourier+Ejemplo+Desarrollado http://www.slideshare.net/psyrcd/sa-fourier-con-matlab