You are on page 1of 6
INSTITUTO POLITECNICO NACIONAL Ed Escuela Superior de Ingenieria Mecénica y Eléctrica “Unidad Culhuacan”” Practica L1 Laboratorio de Procesamiento Digital de Seitales ‘Seftales mediante series de Fourier y manejo de matlab OBJETIVOS © Aprender cosas bésicas de Matlab para asi poder desarrollar programas mis complejos que ayuden a realizar tareas de forma automatica © Utilizar algunas funciones de Matlab para realizar lo indicado en cada punto INTRODUCCION 1. Introduccién a Matlab Aunque el nombre MATLAB significa laboratorio de matrices, MATLAB puede utilizarse como una herramienta muy poderosa para todo tipo de célculos y visualizaciones cientificas, de ingenieria y otros campos. También es posible considerarlo como otro lenguaje de programacién para el desarrollo de funciones avanzadas a partir de las utilidades estindares de MATLAB. Estas caracteristicas han hecho de MATLAB una herramienta efectiva para la educacién y la investigacién. El objetivo de este documento es mostrarte lo que es utilizar MATLAB y aclemés darte una idea de lo que puede hacerse con él. 2. Iniciando MATLAB. Al iniciarse MATLAB abre una ventana de comandos con un indicador de peticién (prompt) “>>”. El indicador de peticién “>>” significa que MATLAB esta esperando que teclees comandos para su ejecucién, Por ejemplo, teclea: Cloek y deberias ver la fecha y la hora actual desplegadas en la ventana de comand. MATLAB tiene un servicio de ayuda en linea incorporado que puedes usar para obtener mas informacion sobre Jos comandos. Por ejemplo, teclee: help clock Para informacién més detallada de los comandos, puedes leer Ia guta de referencia de MATLAB y para obtener tuna lista completa de los comandos disponibles, simplemente teclea help. !Es importante notar que (a del C) Ios indices de los arreglos en MATLAB an en.Ly n0 en 3. Demos Una manera interesante de aprender las caracteristicas y bondades de MATLAB es mediante las demostraciones. Teclea el comando demo, selecciona las demostraciones (demos) de interés y sigue las instrucciones. 4. Ejemplos Los siguientes ejemplos se dan como ejercicios para obtener confianza en el uso de MATLAB. Ej. 1 Operaciones escalares Caleule los valores de 1.2*sin(pi/4 + 0.7236°2) y de 1.2*cos(pi/4 + 0.7236°2). Asigne los resultados a las variables a y b respectivamente. Sie = b + i*a, cual es la magnitud y la fase de e?. Pide ayuda sobre los comandos abs y angle. Debes notar que iy j pueden usarse para denotar la componente imaginaria de un iiimero complejo siempre que iy j no tengan asignado otro valor. Si x=[ 123 11 23 45 33] determine el valor promedio (mean) de x. Fj. 2 Operaciones con veetores a=[1 23 4] y b=[10 20 30 40). — De s(Bs(k+ PD) srandn(1000,1), p=9 5. Salida grafiea EI sistema grifico de MATLAB provee de una variedad de técnicas sofisticadas para visualizar datos. La sintaxis bésica es plot(x,y,’tipo de linea’), lo cual grafica el vector y (ordenada) contra el veetor x (abscisa) con el tipo de linea especificado (color y marcador). Por ejemplo para graficar los primeros 100 elementos de s que creamos en el ejemplo anterior, teciea: plot (s (1:100)) EL grafico aparece en una ventana separada, Poclemos agregar etiquetas a los ejes y titulo a este grafico, tecleando en la ventana de comandos: xlabel(‘Muestra #), ylabel(‘Amplitud’), title(“Uina sefial aleatoria *) Puedes solapar miiltiples salidas gréficas en una sola ventana usando diferentes estilos de linea luego de “congelar” la ventana actual de graficos con el comando hold. Hold off libera la ventana de graficos actual Para posicionar texto manualmente en el grfico utiliza el comando gtext. Existen otfas posibilidades para controlar la salida gritica. Es posible obtener grificos log-log 0 semi-log, griticos 3D, grificos de malla (mesh), ete. Para imprimir un grafico elige Print desde el meni FILE de la ventana del gréfico. También es posible copiar el grafico y pegarlo en otro documento de windows: revisa el ‘mend EDIT. 6, Herramientas de Procesamiento de sefiales En los ejemplos anteriores aprendiste a utilizar algunas funciones esténdares de MATLAB para realizar diferentes operaciones con matrices. El propésito de esta seccin es presentar la Caja de Herramientas (Toolbox) de Procesamiento Digital de Sefales, la cual contiene operaciones que se encuentran cominmente en procesamiento digital de sefiales. Estas funciones estén escritas a partir de las rutinas basicas de MATLAB, To cual te permite utilizarlas sin tener que escribirlas por ti mismo. De nuevo, el demo de MATLAB te ayudard a entender las caracteristicas y funcionalidad de esta caja de herramientas, Ejecuta de nuevo el demo, visita el icono de Toolbox y sigue las instrucciones en el icono de procesamiento de sefiales, F.A.S.0. Ag-Dic 2014 72 SEM. - I.C.E. g INSTITUTO POLITECNICO NACIONAL cd Escuela Superior de Ingenieria Mecanica y Eléctrica “Unidad Culhuacan” Generacién de sentates En MATLAB, las sefiales se representan bien sea como vectores (unidimensionales) 0 como matrices (bidimensionales). Para generar una secuencia de seftal podemos especificar cada elemento dela seftal o utilizar las funciones mateméticas estindar. Con mucha frecuencia nos interesa generar sefiales sinusoidales o sefiales aleatorias. Generemos una sefial que tenga componentes sinusoidales a 2SHz y a 35Hz, muestreada a 100Hz {0:0.01:1; yosin(2*pi*25*t) + sin(2*pit35"t); Hemos generado una sefial y de 101 elementos de longitud (101 valores © muestras). Agreguemos algo de ruido aleatorio con una desviacién estindar de 0,1 a la sefial anterior. Los comandos rand y randn son las rutins de MATLAB usadas para generar secuencias aleatorias con distribuciones uniforme normal, respectivamente. Asi, yn=y + 0.1*randn(1, length(t)); ‘Ahora grafica esta nueva sefial y observa como se ve. Infortunadamente, este gréfico no nos da ninguna informacién til sobre la sefial. Una forma alternativa de ver esta sefial es en el dominio de la frecuencia mediante Transformadas de Fourier. Obtengamos una transformada de Fourier de 128 puntos de la seftal yn, Esto se puede hacer muy fécil en MATLAB usando el siguiente comando Yn=fft(yn,128) Dado que Yn normalmente es un nimero complejo, no podemos graficarlo directamente para visualizar la transformada de Fourier. Necesitamos realizar otras dos operaciones simples para poder hacerlo, Primero necesitamos definir el eje de frecuencia, Dado que la transformada de Fourier de una sefal real es simétrica respecto a la frecuencia de Nyquist (50Hz en este caso), solamente necesitamos los primeros 65 elementos de Yn. Por lo tanto, la variable frecuencia festé dada por f= 50*(0:64)/64; y ahora grafica Ia transformada de Fourier usando plot(f, abs(¥n(1:65)); Resulta obvio a partir de este grifico que la seftal esti compuesta de dos sinusoides a las frecuencias especificadas mas algo de ruido. También podemos manipular y procesar las sefiales para analizar diferentes caracteristicas. Por ejemplo, podemos extraer el componente de 25Hz de la seftal que acabamos de generar con solo usar la informacién de la transformada de Fourier. La primera tarea para lograr esto es disefiar un filtro con una respuesta en frecuencia deseada tal que la salida del filtro contenga la componente de 25 Hz. 7. Programacién en MATLAB En MATLAB se pueden agrupar los comandos bésicos para crear archivos guién (scripts) y archivos de fancién, Estos archivos deben tener una extensién .m para indicar que son un archive-M de MATLAB. Los archivos guién son normalmente una coleccién de comandos de MATLAB que simplemente se ejecutan en forma secuencial, Los archivos de funcién permiten que se pasen argumentos y las variables se manipulan localmente para entregar los resultados especificados. Esto es itil cuando nos interesa sélo el resultado y no las operaciones intermedias ya que todas las variables de Ia funcién son locales y se eliminan del espacio de trabajo. La escritura de estos archivos es muy sencilla porque un archivo guién es solo una coleccién de comands estéindar de MATLAB almacenados en un archivo-M. Sin embargo, los archivos de funcién requieren de un comando en el inicio del archivo para indicar los argumentos y un nombre de archivo que debe ser igual al nombre de la funcién, Se presenta un ejemplo simple de una funcién que calcula la autocorrelacién de un vector columna, por lo cual se le ha nombrado como autocorr.m (Note que el nombre de la funcién es idéntico al nombre del archivo) F.A.S.0. Ag-Dic 2014 72 SEM. - LCE. INSTITUTO POLITECNICO NACIONAL C4 Escuela Superior de Ingenieria Mecénica y Eléctrica “Unidad Culhuacan” function y-autocorr(x,p) % Puedes insertar comentarios aqui para dar explicaciones. % Todos los comentarios deben ir precedidos del signo %. % A diferencia de C, se necesita un signo % por eada nueva linea % y la linea completa es tratada como un comentario. % En este caso, x es la sefal y p el niimero de retardos. n=length(x); for k= L:p+1, y(k) = 1/(n-keH1)*(a(1s(n-k+))"*x¢ken)) end; ahora al teclear z= autocorr(s, 10) ‘Se guardarain en z los estimados de la autocorrelacién de s. ADVERTENCIA: Asegtirate que el nombre de tu funcién no esté en confficto con una funcién MATLAB existente. Bibliografia: Dr. Nishan Canagarajah, Septiembre 1998 Ejemplos: Suma de Series A=2 SI=1+A=3 S2=S1+A=5 s: diny suma (x) =24x41; F.A.S.O. Ag-Dic 2014 72 SEM. -1.C.E. a INSTITUTO POLITECNICO NACIONAL Ed Escuela Superior de Ingenieria Mecénica y Eléctrica “Unidad Culhuacan” iCual es Ia diferencia entre el programa de sunatorias como escalares y Sumatorias como vector? (Observar en la ventana de comandos el resultado suma) DESARROLLO INTRUCCIONES: En una hoja de papel blanca coloque en la parte superior la fecha, el Grupo y nimero de equipo (numero de ‘mesa). Después escriba el nombre completo de cada uno de los integrantes del equipo en forma listada empezando por apellido y después haga una lista numerada del 1 al 6 en forma vertical dejando un espacio para colocar una firma de haber cumplido cada punto. Leida y entendia la Introduceién de la presente préctica proceda a realizar los siguientes ejercicios: (antes de ‘empezar desarrolle y entienda los ejemplos de la parte final de la introduceién, ya que son esenciales para entender como graficar las funciones solicitadas). ‘Como sugerencia: Desarrolle cada uno de los programas en un archivo *.m, para ejecutar las instrucciones y no tenga que volver a escribirlas una por una las instrucciones. Recordar que cada integrante del equipo debera permanecer en su respectivo lugar de trabajo, desarrollando y aportando ideas a la préctica para terminar satisfactoria y répidamente la practica, Si alguno de los integrantes esti haciendo relajo 0 en algin otro equipo ser motivo de bajar puntos en su reporte o calificacién, Si tiene dudas o desea revisién de algin punto, levantar la mano y solicitar tumno al profesor para ir a su mesa. Realizar un programa que Grafique las siguientes funciones: 48 sen[(2n+1)F] py L 10= Eee elneh n+l Pregunta: ;Podemos cambiar el periodo de la sefal? Si o No, ,Porque? Podemos cambiar la amplitud de la sefial? Si o No, 2Por qué? F.A.S. 0. Ag-Dic 2014 a INSTITUTO POLITECNICO NACIONAL EJ Escuela Superior de Ingenieria Mecénica y Eléctrica “Unidad Culhuacan” 2. De la sefial anterior graficar las primeras tres sefiales (fundamental mas dos arménicos) 4 1 Los S(O) =a, +} sen(t)+—sen(31)+—sen(5t) x 3 5 Pregunta: ;Cuéntos componentes se sumaron (sefiales sinusioidales)? £.Cudntos picos se observan en la parte positiva de un periodo de la sefial resultante? Cutintos picos se observan si ahora se suman dos componentes? 3. De la sefal del ejercicio 1 graficar f(¢) més un nivel de C.D., tanto positivo como negativo y observar que sucede. Pregunta: sul "22 ome Pregunta: ;Cémo es conocida la sefta que grafico? (Nombre de la sefial) 6. Graficar el Espectro de frecuencia de por lo menos una de las sefiales del punto niimero S Si la practica es terminada antes del tiempo de salida de laboratorio, el equipo podra retirarse y recordar que la hoja firmada por el profesor deberd ser anexada en el reporte de la prictica. F.A.S.0. Ag-Dic 2014 72 SEM. - I.E.

You might also like