2974

 Ejercicios en MATLAB para Procesamiento Digital de Señales Rubén Orozco Morales Humberto Bolaños Rodríguez 1999, E

Views 110 Downloads 4 File size 878KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview



Ejercicios en MATLAB para Procesamiento Digital de Señales

Rubén Orozco Morales Humberto Bolaños Rodríguez

1999, Editorial Feijóo de la Universidad Central “Marta Abreu” de Las Villas ISBN 959-250-006-1

Contenido

Prefacio

III

Introducción

1

Tema 1: Secuencias en el dominio del tiempo.

9

Tema 2: Transformada de Fourier y Respuesta de Frecuencias.

15

Tema 3: Transformada Z.

21

Tema 4: Filtros Digitales.

26

Tema 5: Secuencias Aleatorias.

36

Tema 6: Estructuras para sistemas LTI.

45

Tema 7: Muestreo, Interpolación y Diezmado de Secuencias.

52

Tema 8: Transformada de Hilbert, Cepstrum y Sistemas Homomórficos

58

Anexo I: Respuestas de algunos ejercicios.

74

Anexo II: Principales funciones de MATLAB  utilizables en la solución de los ejercicios.

93

Ejercicios en MATLAB para Procesamiento Digital de Señales

Prefacio Por muchos es conocido el impacto del Procesamiento Digital de Señales (PDS) en la vida moderna. Con los ritmos acelerados de migración hacia la digitalización, esta disciplina técnica ha sido situada en un lugar de importancia extrema, a donde necesariamente deben confluir las señales de carácter discreto, no importa la fuente de donde provengan. La amplísima gama de beneficios que reporta la utilización del PDS amerita su estudio y aplicación a profundidad, aunque las características de su naturaleza lo hacen un tema complejo. De hecho, a pesar de la basta bibliografía y base teórica con que se cuenta hasta el momento, existe un cierto grado de dificultad en su asimilación por parte de los principiantes. Este texto presenta un paquete de ejercicios que fueron concebidos para el apoyo en el entrenamiento de los estudiantes de los cursos de PDS que se imparten en las maestrías de Telecomunicaciones, Electrónica e Ingeniería Biomédica en la Universidad Central de las Villas. El uso de la computadora para la resolución de estos ejercicios, mediante el paquete matemático MATLAB, constituye una herramienta doblemente poderosa ya que el estudiante, por una parte se enfrenta a problemas utilizando un dispositivo capaz de agilizarle notablemente su resolución, y por otra parte, desarrolla habilidades correspondientes al uso de medios computacionales. Para hacer más clara la comprensión de los ejercicios de este texto, junto a la orientación los mismos se incluye una breve reseña de los objetivos del tema en cuestión y las funciones más utilizadas del MATLAB, de forma tal que constituye una ayuda sutil pero potente a la hora de enfrentar dicha tarea. En todos los ejercicios se hace énfasis en la interpretación de los resultados para que el alumno valore el significado de los mismos sobre la base de sus conocimientos teóricos. Por otra parte, no se requiere de un conocimiento previo profundo de MATLAB, ya que a lo largo de los diversos capítulos se utiliza el método de “aprender mientras se hace”; se le orienta al alumno qué funciones de MATLAB utilizar y qué pasos dar para llegar a los resultados esperados. De esta forma, una vez que se considera que el alumno ha dominado la forma de utilizar el MATLAB para la solución de un problema específico (como puede ser el cálculo de una transformada discreta de Fourier), si dicho problema se presenta en un próximo ejercicio, sólo se la pide que lo realice sin ninguna orientación. Este texto está estructurado en introducción, ocho temas y dos anexos. La introducción hace una breve descripción general del PDS, sus ventajas, aplicaciones fundamentales, así como de la utilización de la computación como medio auxiliar en su enseñanza. Por último, expone los criterios de los autores en relación con la utilización del sistema MATLAB en la enseñanza del PDS.

Ejercicios en MATLAB para Procesamiento Digital de Señales

IV

Prefacio

Los ocho temas en los que se agrupan los ejercicios son: Tema 1: Secuencias en el dominio del tiempo. Tema 2: Transformada de Fourier y Respuesta de frecuencias. Tema 3. Transformada Z. Tema 4: Filtros digitales. Tema 5: Secuencias aleatorias. Tema 6: Estructuras para sistemas LTI. Tema 7: Muestreo, Interpolación y Diezmado de Secuencias. Tema 8: Transformada de Hilbert , Cepstrum y Sistemas Homomórficos Esta división se ajusta a los programas docentes de los cursos de PDS. Al inicio de cada tema se da una breve introducción y se señalan los principales objetivos del mismo, además en el enunciado de los ejercicios muchas veces se sugiere cuales deben ser algunas de las funciones del MATLAB que pueden utilizarse para resolver el ejercicio en cuestión. Tales funciones se indican utilizando letra arial negrita. Ello no quiere decir que la función MATLAB que se sugiere sea la única a utilizar en la solución del ejercicio. Igual formato (arial negrita) se utiliza siempre que en este texto se mencione una función propia del MATLAB. La solución de algunos de los ejercicios se ofrecen en el anexo I . En el anexo II, encontrará algunas de las posibles funciones del MATLAB que pueden ser utilizadas en la solución de los ejercicios de cada tema . Al lado de cada función se incluye una breve descripción de lo que ella hace, la cual puede ser ampliada si en la ventana de comandos del MATLAB solicita la ayuda de la función con el formato [help NombreDeFunción]. Junto con este texto se oferta, en una carpeta identificada con el nombre “señales”, un conjunto de señales que deben ser utilizadas en la solución de algunos ejercicios. Es recomendable hacer una copia de la carpeta de señales en el disco duro de su máquina, y trabajar con dicha copia para evitar que cualquier error pueda borrar las señales del disquete. Dichas señales están grabadas en formato MATLAB (lo que se indica utilizando la extensión .mat), por lo cual pueden ser cargadas con la función load, indicando el camino hacia la carpeta en que se encuentran, y luego trazarlas mediante plot. Los autores agradecemos a los estudiantes que, durante la utilización de estos ejercicios, han contribuido con sus sugerencias a una gradual perfección de los mismos. Además, agradeceremos igualmente todas aquellas sugerencias que nos puedan hacer en el futuro, las que sabremos recoger en nuevas ediciones de este texto.

Rubén Orozco Morales Humberto Bolaños Rodríguez

Ejercicios en MATLAB para Procesamiento Digital de Señales

Introducción El Procesamiento Digital de Señales (PDS), en su generalidad, no es más que la representación matemática y el tratamiento (numérico) de las variables (señales) obtenidas de cualquier proceso físico de la naturaleza, ya sean señales provenientes de los procesos biológicos (bioseñales), de sistemas de comunicación, de la actividad de la corteza terrestre (sísmicas), de la economía, de procesos industriales, entre otras, siendo los rasgos fundamentales del PDS la manipulación algorítmica de estas señales para extraer la información que poseen o la transformación de las mismas para diversos fines. Una señal de tiempo discreto, denominada secuencia, se define sólo en instantes discretos de tiempo, y puede ser creada por el muestreo y la cuantificación de una señal analógica. Dado que los sistemas de cómputo sólo realizan operaciones aritméticas y lógicas, el PDS no es más que un conjunto de operaciones, cálculos aritméticos y manipulaciones numéricas, efectuadas sobre una secuencia determinada, la cual, en forma digital está representada por un conjunto de números, con el objetivo de obtener una nueva secuencia que representa la señal tratada; de esta forma, se pueden realizar disímiles operaciones como son, análisis espectral, filtrado lineal y no lineal, codificación, modulación, extracción de parámetros, transformaciones desde y hacia el dominio transformado, cambios en las razones efectivas de muestreo por interpolación o extrapolación, etc. Hay muchas razones por las cuales el procesamiento de la señal en forma digital es más ventajoso que en forma analógica. A diferencia de los circuitos analógicos, la operación de los circuitos digitales no depende de valores precisos de parámetros de los componentes del sistema, por lo cual, son menos sensible a valores de tolerancia de sus componentes y mas independientes del ambiente exterior, como por ejemplo la temperatura. Los circuitos digitales pueden ser fácilmente reproducidos en grandes cantidades y no requieren de ningún ajuste durante su fabricación o durante la vida del sistema. Además poseen gran estabilidad en las características de explotación, y son muy fáciles de supervisar. Por otro lado, con los recientes avances en los circuitos de muy alta escala de integración (VLSI), ha sido posible integrar sistemas de procesamiento digital de señales complejos y altamente sofisticados en un simple procesador. El procesamiento digital permite compartir los recursos de un DSP dado entre un número de señales, multiplexándolas por división en el tiempo, lo cual, a diferencia de los sistemas analógicos, Ejercicios en MATLAB para Procesamiento Digital de Señales

2

Introducción

está libre de estados transitorios; permitiendo reducir el costo de operación por señal. Además, conmutando los coeficientes del procesador al arribo de cada señal y realizando la demultiplexación a la salida del mismo, podemos verlo como dos sistemas diferentes. La implementación digital permite de manera fácil realizar cambios en el sistema para su mejora; por ejemplo, con solo aumentar el número de cifras binarias en la representación de los datos y coeficientes se pueden reducir las distorsiones a un nivel deseado, ajuste que puede ser realizado durante el procesamiento. Una aplicación del cambio de dichos coeficientes se ve en la realización de sistemas con características programables como filtros selectivos en frecuencia con frecuencias de corte variables. Por otra parte ciertas características imposibles de realizar rigurosamente en el campo analógico pueden serlo de forma digital, ejemplo de esto es la linealidad de la respuesta de fase. Las señales digitales pueden ser almacenadas casi indefinidamente, sin ninguna pérdida en la información, en diferentes medios como son discos duros, cintas magnéticas, discos compactos etc, la cual queda disponible para ser transportada y/o para su procesamiento en tiempo no real (off-line) en laboratorios. Todo lo anteriormente expuesto, unido al continuo decrecimiento en los costos del hardware de los procesadores digitales, trae consigo un rápido incremento de las aplicaciones del procesamiento digital de señales. Son muchas y muy disimiles las aplicaciones que posee el procesamiento digital de las señales en nuestros

días,

sus

metodologías

han

sido

aplicadas

a

equipos

electrodomésticos,

telecomunicaciones, en el desarrollo de la electrónica automotriz, para la instrumentación y el control de procesos en la producción industrial, equipos electromédicos, procesamiento de imágenes, tratamiento de señales biológicas en medicina como son las señales electrocardiográficas y electroencefalográficas, entre otras. En muchos de estos casos se impone la restricción del procesamiento en tiempo real (on line); esto es, el medio físico en el que se inserta el sistema de PDS determina el intervalo de tiempo en que debe realizarse el procesamiento de los datos. Por tanto, en los sistemas de tiempo real los algoritmos de PDS no deben caracterizarse tan solo por su potencialidad y eficacia, sino también por su eficiencia computacional. Aplicaciones típicas del tratamiento digital de señales podemos encontrarlas actualmente en la red mundial de telecomunicaciones la cual está evolucionando de forma constante a la digitalización con objetivos definidos como la mejora en la calidad de los enlaces, introducción de nuevos

Ejercicios en MATLAB para Procesamiento Digital de Señales

3

Introducción

servicios entre los que podemos mencionar la telefonía celular, los servicios de televisión por cable, el telediagnóstico en los servicios médicos, etc. También podemos mencionar el tratamiento en señales de audio donde encontramos desde el surgimiento y expansión de los discos compactos hasta la ecualización, filtrado de señales, efectos especiales etc. En el campo de aplicaciones del PDS podemos mencionar los trabajos desarrollados por el Centro de Estudios de Electrónica y Tecnologías de la Información (CEETI) de la Universidad Central de Las Villas, dentro de los cuales se encuentran el procesamiento digital de señales biomédicas (electrocardiográficas, electromiográficas y voz). En general el procesamiento digital de señales lo podemos encontrar en casi todas las esferas de la vida actual con una tendencia siempre creciente.

Estudio del Procesamiento Digital de Señales. Teniendo en cuenta el desarrollo alcanzado por el PDS así como la gran variedad de sus aplicaciones se hace necesario su continuo estudio, razón por la cual desde la década de los años 70 se ha incluido dentro de los programas de estudio de muchas carreras y maestrías en Universidades de todo el mundo. Además, en muchas universidades se imparten asignaturas dedicadas al procesamiento digital de señales específicas como pueden ser: Procesamiento Digital de Imágenes, Procesamiento Digital de Bioseñales, etc. En La Universidad Central de Las Villas desde el curso 97-98 se incluyó el PDS como asignatura en el programa de pregrado de la carrera de Telecomunicaciones y Electrónica y desde hace algunos años, para la enseñanza de postgrado, específicamente para las maestrías en Electrónica, Telecomunicaciones y mas recientemente en Ingeniería Biomédica , enseñanza hacia la cual va dirigida el desarrollo de este texto. Los temas para los cuales hemos confeccionado los ejercicios en MATLAB son: Tema 1: Secuencias en el dominio del tiempo. En este tema el estudiante debe saber realizar operaciones con secuencias de tiempo discreto en el dominio del tiempo, clasificar los sistemas de tiempo discreto, representarlos mediante ecuaciones en diferencias finitas y diagramas de simulación, así como aplicar el concepto de la convolución discreta. Tema 2: Transformada de Fourier y Respuesta de frecuencias. Aquí debe saber representar secuencias y sistemas de tiempo discreto en el dominio de la frecuencia, conocer y aplicar el

Ejercicios en MATLAB para Procesamiento Digital de Señales

4

Introducción

concepto de respuesta de frecuencias, conocer y aplicar las propiedades de transformada de Fourier de tiempo discreto, transformada discreta de Fourier y transformada rápida de Fourier. Tema 3. Transformada Z. En él se aplica la transformada Z a: el análisis de secuencias y sistemas de tiempo discreto, la representación de sistemas mediante funciones de sistemas, los diagramas de polos y ceros, así como al análisis de la estabilidad de los sistemas de tiempo discreto. Tema # 4: Filtros digitales. En este tema el estudiante debe diseñar y analizar distintos tipos de filtros digitales IIR y FIR, además saber aplicar los métodos de aproximación para filtros analógicos: aproximantes de Butterworth, Chebyshev 1 y 2, elíptica y Bessel. Diseñar filtros IIR mediante analogía entre las ecuaciones en diferencia finita y las ecuaciones diferenciales, mediante la invarianza a la respuesta impulsiva y la invarianza al escalón, y mediante transformaciones bilineales. También dominar el diseño de filtros FIR mediante: muestreo en frecuencias, enventanado, y optimización. Comparación entre los filtros digitales IIR y FIR y transformación de frecuencias en el dominio del tiempo discreto. Tema # 5: Secuencias aleatorias. Aquí se profundizan los conocimientos acerca de los procesos estocásticos de tiempo discreto, la caracterización estadística y la caracterización probabilística de las secuencias aleatorias, los periodogramas promedio y cruzados, el comportamiento de las secuencias aleatorias ante sistemas lineales, así como la utilización de la magnitud de la coherencia cuadrada. Tema # 6: Estructuras para sistemas lineales e invariantes en el tiempo (LTI). El objetivo en este tema es conocer los problemas asociados con la precisión finita de los procesadores digitales de señales y las propiedades de diversas estructuras ante tales problemas. Se analizan diversas representaciones de los sistemas LTI, la sensibilidad, el ajuste de escala, y diversos tipos de ruidos. Tema # 7: Muestreo, Interpolación y Diezmado de Secuencias. En este tema se analizan las propiedades en los dominios del tiempo y de la frecuencia de los sistemas discretos muestreados, diezmados e interpolados. Además se analizan sistemas sencillos con razón de muestreo múltiple y los filtros polifase. Tema # 8: Transformada de Hilbert , Cepstrum y Sistemas Homomórficos. En él se persigue conocer los fundamentos y la aplicación de la transformada de Hilbert en el establecimiento de las relaciones entre la parte real y la parte imaginaria, o la magnitud y la fase de la transformada de Fourier de tiempo discreto, saber diseñar transformadores de Hilbert, así como saber calcular y utilizar las partes analíticas y antianalíticas de secuencias. Ejercicios en MATLAB para Procesamiento Digital de Señales

5

Introducción

La computación como complemento en la enseñanza del PDS. El actual desarrollo de los dispositivos electrónicos y microelectrónicos ha disminuido los costos de producción y de ventas de las computadoras personales, propiciándose un gran desarrollo en los recursos de software y hardware lo que favorece un vertiginoso avance en el uso de la computación tanto desde el punto de vista científico como educacional en la aplicación de las computadoras como medio auxiliar del proceso de enseñanza-aprendizaje. La Enseñanza Asistida por Computadora (EAC), podemos definirla como el proceso de enseñanza y aprendizaje que incorpora a la computadora como elemento para añadir una nueva dimensión y producir cambios cualitativos que ayuden a superar la contradicción planteada entre el volumen creciente de información que deben asimilar los estudiantes y la duración limitada de los períodos de aprendizaje, en un mundo que reclama una creciente calidad profesional. Al incluir la computadora en este proceso se valora entre otras cosas la necesidad real de su utilización así como la creación y desarrollo de diferentes capacidades en los alumnos que favorezcan su futuro desempeño como profesionales. Dentro de las formas consideradas como clásicas para incorporar la computadora al proceso de enseñanza aprendizaje encontramos la simulación, la cual es un proceso que genera un ambiente representativo del objeto de estudio, que ayuda al alumno a construir una imagen que modela el objeto de referencia mediante la experimentación. La simulación aporta, entre otras cosas, la posibilidad de alterar diferentes parámetros y observar los efectos que se producen, para los cual se puede manipular a voluntad el transcurso de la variable tiempo, y observar fenómenos transitorios que no se perciben fácilmente en la realidad, además es un medio libre de riesgos, porque no se opera sobre el objeto en sí, sino sobre un modelo representativo de éste. Así, la enseñanza asistida por computadora motiva al estudiante y lo entrena en el uso de una herramienta de trabajo normal en cualquier profesión. En general la simulación utilizando computadoras personales tiene gran aplicación como medio de enseñanza, porque permite que el alumno en breve tiempo resuelva problemas que en ocasiones pueden ser complejos, aprenda procedimientos, interprete las características de diferentes fenómenos, tome decisiones, compare resultados de diferentes variantes de un mismo sistema, etc Con este texto el educando simula sistemas de procesamiento digital, utilizándose para ello señales del mundo real previamente adquiridas, discretizadas y almacenadas en disco, o generadas mediante simulación, utilizando el propio paquete MATLAB. Ejercicios en MATLAB para Procesamiento Digital de Señales

6

Introducción

Para el diseño y simulación mediante computadoras de sistemas de PDS se han desarrollado diversos paquetes de programas. En los primeros años de su enseñanza, algunas universidades desarrollaron software para estos fines, los cuales luego ganaron popularidad gracias a sus potencialidades, como lo fue el Personal Computer-Digital Signal Procesing (PC-DSP), el cual es un paquete de software usado para el análisis, diseño, e implementación de señales y sistemas de tiempo discreto que fue escrito para proveer a los estudiantes de un ambiente integrado de procesamiento de señales en el cual los problemas reales de procesamiento digital de señales pudieran ser resueltos. Este software emplea una interfaz de usuario interactiva y para su uso no es necesario poseer conocimientos previos de programación, pudiendo correr en microcomputadoras IBM-AT con poca capacidad de memoria. No obstante, desde mediados de la década de los años 90 los dos sistemas que más han ganado popularidad para el diseño y simulación en computadoras de sistemas de PDS son el LabView de National Instruments y el MATLAB de la MathWork. El LabView ha sido desarrollado para tareas de medición, procesamiento de señales, control, etc. El mismo se caracteriza por usar una interface de usuario gráfica y opera mediante la construcción de programas denominados Instrumentos Virtuales (VI) en los cuales ocurre la presentación de la información de una manera amena y eficiente. Este software posee la opción de ejecutar múltiples tareas de manera simultánea y además se pueden ejecutar otras aplicaciones, mientras se corre una aplicación. Posee gran cantidad de instrumentos virtuales implementados, los cuales ayudan grandemente en la programación y tiene funciones específicas para: generación y procesamiento de señales, filtrado, enventanado, tratamiento estadístico, regresión, álgebra lineal, así como para el trabajo con diferentes tipos de arreglos.

Utilización del paquete MATLAB en el PDS Dentro de las herramientas de software utilizadas en la actualidad tanto para la investigación científica como para la enseñanza encontramos el paquete MATLAB de MathWork, el cual es un sistema interactivo y además un lenguaje de programación fácil con un ambiente funcional y con amplias facilidades gráficas lo que hace posible observar el resultado del procesamiento y comprender mejor, operaciones complejas. Su elemento fundamental de información es una matriz numérica rectangular que puede poseer elementos complejos y que no requiere dimensión, esto permite la solución de muy diversos problemas matemáticos en lapsos pequeños de tiempo y en la forma en que los mismos han sido escrito matemáticamente. Como sabemos, la matemática es el

Ejercicios en MATLAB para Procesamiento Digital de Señales

7

Introducción

lenguaje común de muchas ciencias e ingenierías, por lo que el basamento del MATLAB lo hace una herramienta accesible y poderosa, por sus bloques fundamentales de matrices, arreglos de datos, gráficos etc. Una de las ventajas del MATLAB es que posee una poderosa biblioteca de funciones ya implementadas, muchas de las cuales son intrínsecas del software, otras vienen recogidas en diferentes toolboxes para disciplinas específicas, y además brinda la facilidad de que el usuario cree sus propias funciones sin que haya diferencia a la hora de usarlas, lo cual permite un desarrollo constante del MATLAB. Como ejemplo de los diferentes toolboxes podemos mencionar el de procesamiento de señales (Signal Processing Toolbox) que consta con comandos para procesar señales de una y dos dimensiones, análisis espectral, filtrado digital, análisis de la transformada rápida de fourier, aritmética compleja, etc, el toolbox de control de sistemas (Control System toolbox) que incluye comandos para la ingeniería del control y la teoría de sistemas, el de estadística (Statistics Toolbox),el de señales y sistemas (Signals and Systems toolbox) entre otros, los cuales son de gran ayuda para el programador ya que agrupan funciones comúnmente usadas en una u otra rama de las ciencias. Este sistema posee una ayuda (help) que puede ser invocada en cualquier momento sobre un comando específico, lo cual favorece en gran medida la programación. Todo esto hace del MATLAB una herramienta de software ideal para el estudio del procesamiento digital de señales. Independientemente de que no es requisito de este texto un conocimiento profundo de MATLAB, el alumno puede ampliar sus conocimientos sobre esta materia consultando el siguiente texto: •

Signal Processing Toolbox, for use with MATLAB, T. P. Krauss, L. Shure, and J. N. Little, The Math Works Inc., 1993.

Por otra parte, diversos eminentes profesores de las principales universidades del primer mundo, así como destacados científicos de varias instituciones de estos países, han publicado algunos textos dedicados también a la aplicación del MATLAB en el Procesamiento Digital de Señales. Tales textos pueden servir como complemento de este, así como son complementos unos de otros entre sí. Algunos de ellos, organizados por fecha de publicación, son los siguientes: •

Digital filters. A computer laboratory textbook, R. Mersereau and M. Smith, John Wiley & Sons, Inc., 1993.

Ejercicios en MATLAB para Procesamiento Digital de Señales

8

Introducción



Computer-Based Exercises for Signal Processing using MATLAB, C. S. Burrus, J. H. McClellan, A. V. Oppenheim, T. W. Parks, R. W. Schafer, and H. W. Schussler, Matlab Curriculum Series, Prentice Hall, Englewood Cliffs, NJ, 1994.



Signal processing algorithms in MATLAB, Stearn and David, Prentice Hall Signal Processing Series, 1996.

Además, diversos textos publicados recientemente dedicados al Procesamiento Digital de Señales incluyen en los ejercicios propuestos algunos en los que debe utilizarse el MATLAB. Entre ellos pueden citarse: •

Digital Signal Processing. Principles, algorithms, and applications, J. G. Proakis, and D. G. Manolakis, Third Edition, Prentice Hall, NJ, 1996.



Random Signal Processing, D. F. Mix, Electrical Engineering Series, Prentice Hall, Englewood Cliffs, NJ, 1996.

Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 1 Secuencias en el dominio del tiempo

En el análisis de los sistemas de procesamiento de señales de tiempo discreto las secuencias son generadas y manipuladas de diferentes formas, una vez estudiado el tema #1: Secuencias en el dominio del tiempo, el estudiante debe saber realizar operaciones con secuencias de tiempo discreto en el dominio del tiempo y también conocer las clases de señales y la clasificación de las secuencias. Con la realización de los ejercicios que a continuación se proponen se podrán realizar operaciones elementales con matrices, generación de distintos tipos de secuencias así como se conocerán funciones propias del MATLAB para generar secuencias útiles en el procesamiento digital de señales. Se podrán determinar gráficamente las partes de una secuencia. Así como parámetros de las mismas, Periodicidad, medidas de distancia, etc. En el anexo I se encuentran algunas de las respuestas a los ejercicios lo que permitirá ir corrigiendo posibles errores y comparar diferentes variantes de solución, , Además el anexo IX recoge las funciones del MATLAB que pueden ser de mayor utilidad agrupadas por temas. Todo esto permitirá una mejor comprensión desde el punto de vista gráfico y una profundización de lo estudiado en clases.

Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 1: Secuencias en el dominio del tiempo.

10

Ejercicios 1. Genere una matriz cuadrada T(4x4)cuyo determinante (det) no sea nulo, un vector columna t1(1x4) y un vector fila t2(4x1). a). Calcule: El producto matricial o producto interno de t1 y t2. El vector fila correspondiente al producto de arreglos de t1 y t2. b). Determine la matriz inversa de T (inv) y el resultado de multiplicar T por su inversa. c). Determine la descomposición en valores singulares de T (svd) y compruebe el resultado. 2. Genere las siguientes secuencias y trácelas en una figura (plot) indicando n en el eje de las abcisas. a) x1[n] = 0.65δ[n],

-15 ≤ n ≤ 15.

b) x2[n] = sen(3πn + π/4),

-20 ≤ n ≤ 20.

c) Exponencial alternante, x3[n], muestreada a 100 muestras por segundo. d) Un impulso en base a la suma de escalones. e) Un escalón en base a la suma de impulsos. f) La secuencia y[n] = x3[-n + 2], siendo x3[n] la generada en el inciso c). g) La secuencia de ondas triangulares n  20  n x5[n] = 2 −  20  n −4  20

0 ≤ n < 20, 20 ≤ n < 60, 60 ≤ n < 80.

h) El diente de sierra  n  x6[n] =  20 n  −2  20

0 ≤ n < 20 20 ≤ n < 40.

3. Para la secuencia compleja

x4[n] = (0.6 + j0.7)n,

0 ≤ n ≤ 100

Genere y grafique: a) Las partes real e imaginaria. Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 1: Secuencias en el dominio del tiempo.

11

b) La conjugada. c) Su magnitud y argumento. d) La partes par e impar. 4. En la carpeta nombrada “señales” que se encuentra en el disquete que acompaña este texto encontrará el fichero nombrado “signal1.mat”. Este contiene dos segmentos de tres segundos cada uno de señales electrocardiográficas (ECG) que se han grabado en formato MATLAB (extensión .mat), con nombres de variables “ecg1” y “ecg2”. Las mismas han sido digitalizadas, luego de pasar por un filtro activo de premuestreo (anti-aliasing) con banda de paso de 0.01 a 100 Hz, utilizando un convertidor A/D unipolar con frecuencia de muestreo de 500 Hz y 11 bits de resolución sobre un rango de 0-10mV, lo que se corresponde con valores de las muestras en el rango de 0 a 2047, por lo que el valor 1024 corresponde con el nivel de 5 mV. Utilizando la secuencias “ecg1” y “ecg2 del fichero “signal1.mat”: a) Calcule sus valores medios. b) Elimínele sus niveles de corriente directa y grafíquelas. d) Grafíquelas con su eje de abcisas convertido a unidades de tiempo en lugar de número de muestras. Recuerde que la frecuencia de muestreo es de 500 Hz. e) Calcule sus potencias promedio con el nivel de la componente directa (DC) incluido y con el nivel DC suprimido. Compruebe sus resultados teniendo en cuenta la potencia de la componente directa. 5. De la secuencia que posee nombre de variable “ecg1” que se encuentra en el fichero “signal1.mat” de la carpeta de señales, tome el latido que se encuentra en las muestras correspondientes al intervalo (501:1012) y asígnelas a la variable “ec”; esto es, a la secuencia ec[n]. a). Elimine el nivel de corriente directa de la secuencia ec[n]. b). Genere y observe la autocorrelación (xcorr) de la secuencia periódica b = [ec ec ec]; c). Genere y observe la autocorrelación de la secuencia cuasiperiódica ecg1[n]. Analice el resultado obtenido y compárelo con el obtenido para el caso de la secuencia absolutamente periódica ec[n].

Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 1: Secuencias en el dominio del tiempo.

12

6. Genere y observe las secuencias x[n] y y[n] dadas por: » t = [0:0.001:1]; » x = 10*sin(2*pi*10*t).*exp(-4*t); » y = 1-[0:100]/100; a) Utilizando la función xcorr de MATLAB grafique la secuencia de correlación entre x[n] y y[n]. b) Haga un análisis del resultado obtenido y proponga una solución que resuelva cualquier discrepancia entre sus conocimientos teóricos y el resultado que ofrece MATLAB.

Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 2 Transformada de Fourier y Respuesta de Frecuencias

La transformada de Fourier juega un papel fundamental en el análisis de sistemas de tiempo discreto en el dominio de la frecuencia, por lo cual, saber representar estos sistemas, así como conocer y aplicar el concepto de respuesta de frecuencias, y las propiedades de la transformada de Fourier de tiempo discreto, están dentro de los objetivos fundamentales de este tema. Con los siguientes ejercicios y utilizando en muchos de ellos señales reales como es el caso de las señales electrocardiográficas, se estudiarán las respuestas de frecuencias de diversos sistemas, la Transformada de Fourier de tiempo discreto (DTFT) de secuencias elementales así como sus propiedades, además, se verán distintos tipos de secuencias y sus espectros. También podrán ser verificadas algunas implicaciones del teorema de la convolución lineal en el dominio de la transformada de Fourier. y se obtendrán criterios gráficos para la selección del número de puntos en el cálculo de la DFT de las diferentes secuencias. También, se ejercitarán conceptos como densidad espectral de potencia (DEP), principio de ortogonalidad y otros. Al igual que en el tema 1 en el Anexo II se encuentran algunas de las respuestas de estos ejercicios para su verificación..

Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 2: Transformada de Fourier y respuesta de frecuencias.

14

Ejercicios 1. Cargue (load) las señales electrocardiográficas que se encuentran en el fichero “signal1.mat” de la carpeta de señales. Elimine el nivel de corriente directa de la secuencia ecg1[n] y calcule su espectro en un número de puntos, k, que sea potencia de dos. Esta señal está muestreada a 500 Hz. Determine: a) El punto k correspondiente a los 60 Hz. b) El nivel de corriente directa de la señal a partir de su espectro y a partir del valor medio de la secuencia. 2. Calcule la densidad espectral de potencia (DEP) de la secuencia ecg1[n] que se encuentra en el fichero “signal1.mat” de la carpeta de señales. Grafique la secuencia de DEP en el intervalo 0 ≤ f ≤ 100 Hz. Determine: a) La banda de frecuencia en que se concentra la mayor cantidad de potencia de la señal electrocardiográfica utilizada. 3. Utilizando la exponencial compleja c[n] = e jwo n ,

n = 0, 1, … , N-1.

a) Para wo = 6π/N y N = 16, visualice la secuencia c[n] y su DFT X16[k]. Observe la cantidad de puntos de la transformada que son ceros y analice este resultado teniendo en cuenta que: 1) la exponencial compleja es también el operador base de la DFT y 2) el principio de ortogonalidad. b) El dual de la exponencial compleja es el impulso desplazado cuando wo es un entero múltiplo de 2π/N. Calcule la secuencia c1[n] de 16 puntos cuya DFT es X16[k] = exp(j6πk/16). Argumente su resultado en base al principio de dualidad entre los dominios del tiempo y la frecuencia. c) Utilice ahora wo = 5π/N para construir una nueva secuencia c1[n] y calcule la nueva DFT Y16[k]. Explique por qué no hay puntos de valor cero en la transformada para este caso. Tenga en cuenta calcular el período de la secuencia c1[n].

Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 2: Transformada de Fourier y respuesta de frecuencias.

15

4. Genere el tren de impulsos de longitud 207 muestras 8

p[n] =

∑ δ[n

r=0

- rM o ] ,

con Mo = 23.

a) Calcule la DFT de 207 puntos de p[n]: P207[n] y justifique el resultado obtenido. b) En base a la justificación dada anteriormente argumente el resultado de calcular la DFT en 207 puntos también de 22

p1[n] =

∑ δ[n

r=0

- rM 1 ] ,

con M1 = 9.

Tenga presente que en ambos casos se utilizan secuencias de (9)(23) = 207 muestras. c) Utilizando p[n], y teniendo en cuenta que en ella las últimas 22 muestras son cero, calcule su DFT en tan solo 200 puntos. Argumente el resultado. 5. Para preservar la propiedad de la TF que dice “un desplazamiento en un dominio equivale a la multiplicación por una exponencial compleja en el otro”, se define el desplazamiento utilizando el operador módulo; así  x[n - m], x[n − m] → x[((n - m)) N ] =  x[n + N − m],

n = m, m + 1, ... , N - 1 n = 0, 1, ... , m - 1

lo que asume que 0 ≤ m < N. La DFT de una secuencia desplazada circularmente es la DFT de la secuencia original multiplicada por el vector exponencial compleja WNkm . a) Utilizando la secuencia x[n] = δ[n], n = 0, 1, …, 15; grafique la secuencia x[n] y la secuencia y[n] = x[n-1]. b) Obtenga la DFT en N = 16 puntos de x[n] y y[n], argumentando el resultado. c) Para y[n] = x[n-m] con m = N/2 = 8, obtenga su DFT en 16 puntos y justifique el resultado. 6. Utilizando la respuesta impulsiva h[n] de un sistema LTI, que se encuentra guardada en la carpeta de señales con nombre de fichero “respimp1.mat” y nombre de variable “h”, calcule su respuesta de frecuencias expresando el eje de frecuencias en unidades de Hz [Este sistema trabaja a frecuencia de muestreo de 500 Hz]. Determine: a) El tipo de respuesta de magnitud contra frecuencias del sistema. b) Si el sistema es dispersivo o no, en base a su respuesta de fase. Para confirmar su análisis puede utilizar también la respuesta de demora de grupo del sistema. Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 2: Transformada de Fourier y respuesta de frecuencias.

16

c) Las partes real e imaginaria de la respuesta de frecuencia.

7. Utilizando las secuencias ecg1[n],

que se encuentra en el fichero “signal1.mat”, y h[n]

correspondiente a la respuesta impulsiva de un sistema, la que se encuentra en el fichero “respimp1.mat”, ambas ubicadas en la carpeta de señales, determine: a) La respuesta del sistema (secuencia de salida y[n]) mediante su convolución con la señal de entrada ecg1[n]. b) La respuesta en el tiempo del sistema, y[n], a través del dominio de la transformada de Fourier. c) Compare los resultados. 8. Se sabe que la resolución espectral de una secuencia de longitud N se aumenta incrementando el número de puntos, M, en que se calcula su transformada. No obstante, en este ejercicio comprobará que también depende del número de muestras que se tomen de la secuencia. a) Para un número entero de muestras por ciclo. a1) Genere y grafique la secuencia » n1 = [0:1/8:1-1/8]; » x1 = sin(2*pi*n1); observe que esta posee frecuencia de 1 Hz y se ha muestreado a 8 Hz, lo que implica que posea 8 muestras por ciclo. De ella se han tomado sus primeras N = 8 muestras; esto es, n = 0, 1, …, 7. a2) Calcule la DFT de x1[n] en M = 8 puntos. Observe los valores de la DFT y grafique su magnitud expresando el eje de abcisas en Hz-s. a3) Justifique teóricamente los valores de la DFT obtenidos. a4) Compruebe que, en general, para cualquier número natural K > 2, y para cualquier número natural M, el espectro de x[n] = Asen(2πn/K),

n = 0, 1, 2, …, MK-1

toma valores  0,  X[ k ] =  AMK  ,  j2

k≠M k=M

Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 2: Transformada de Fourier y respuesta de frecuencias.

17

b) Para un número no entero de muestras por ciclo. b1) Genere y grafique la secuencia » n2 = [0:1/8:1+1/8]; » x2 = sin(2*pi*n2); observe que x2[n] tiene como origen la misma señal continua x(t) que x1[n] pero tomando ahora 10 muestras; esto es, n = 0, 1, …, 10; por lo que N = 10. b2) Calcule la DFT de x2[n] en M = 10 puntos. Observe los valores de la DFT y grafique su magnitud expresando el eje de abcisas en Hz-s. b3) Justifique teóricamente los valores de la DFT obtenidos. Para ello tenga presente la propiedad del enventanado de la transformada de Fourier. El fenómeno ocurrido se conoce como fuga (“leakage”) espectral. c) No siempre es posible tomar un número entero de muestras por ciclo de una señal, ya que generalmente las señales deterministas están compuestas por múltiples componentes espectrales, o peor aún, son estocásticas; en tales casos puede reducirse la fuga espectral aumentando el ancho de la ventana de señal a la que se le calcula la DFT. c1) Genere y grafique la secuencia » n3 = [0:1/8:40+1/8]; » x3 = sin(2*pi*n3); observe que x3[n] tiene como origen la misma señal continua x(t) que x1[n] y x2[n], pero tomando ahora 40 ciclos completos más dos muestras del ciclo 41; esto es, n = 0, 1, …, 321; por lo que N = 322. c2) Calcule la DFT de x2[n] en M = 322 puntos. Observe los valores de la DFT y grafique su magnitud expresando el eje de abcisas en Hz-s. c3) Compare la amplitud de las líneas espectrales, adyacentes a la frecuencia del tono, que se obtienen en los incisos b) y c). c4) Verifique que la fuga espectral no se modifica con el incremento de la resolución espectral; esto es, con el número de puntos de la transformada, utilizando M = 512 o 1024 puntos 9. a) Genere un pulso rectangular con 16 muestras de amplitud 0.5 y duración 128 muestras, de forma tal que las muestras diferentes de cero queden en la zona central del pulso. Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 2: Transformada de Fourier y respuesta de frecuencias.

18

b) Obtenga el espectro de magnitud contra frecuencias del pulso generado a través de la FFT.

Explique los valores obtenidos de: intervalo de frecuencias entre líneas espectrales, ancho del lóbulo principal y posición de los ceros de la envolvente del espectro. c) Analice las consecuencias sobre los resultados obtenidos si se utiliza un pulso rectangular de

32 muestras de amplitud 0.5 con 128 muestras de duración igualmente. d) ¿Que sucede si el ancho del pulso es de 8 muestras y su duración siguen siendo 128 muestras?

Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 3

Transformada Z El conocimiento y la aplicación de la transformada Z (TZ) tiene gran importancia pues permite obtener una generalización de la transformada de Fourier que incluye una amplia gama de secuencias y nos brinda la utilidad del uso de la teoría de variable compleja, entre otras cosas. La utilización en sistemas de tiempo discreto, representación de sistemas mediante funciones de sistemas, diagramas de polos y ceros, así como en el análisis de estabilidad están dentro de las ventajas que proporciona el uso de la transformada Z. En los siguientes ejercicios se estudiará la definición y cálculo de la transformada Z, sus regiones de convergencia, la TZ inversa, así como propiedades de la TZ. Se obtendrán diagrama de polos y ceros de los sistemas de tiempo discreto y respuesta de frecuencias a partir de los mismos. También se analizará la estabilidad y causalidad a partir de la función de sistema y sistemas de tiempo discreto de primer y segundo orden. En el Anexo III se encuentran algunas de las respuestas de los ejercicios de este capítulo.

Ejercicios en MATLAB para Procesamiento Digital de Señales

20

Tema # 3 : Transformada Z

Ejercicios 1. Para el sistema cuya relación de transferencia M

H(z) =

∑ bkz

−k

∑ a jz

−j

k=0 N

j= 0

posee como coeficientes de los polinomios en z-1 del numerador y denominador los respectivos vectores » bk = [ 0.0026

0.0155

» aj = [ 1.0000

-2.3797

0.0388

0.0517

2.9104 -2.0551

0.0388

0.0155

0.0026 ]

0.8779 -0.2099

0.0218 ]

a). Represéntelo mediante: Secciones de segundo orden en cascada puede utilizar la función zp2tf de MATLAB . Secciones de segundo orden en paralelo utilizando la función residuez de MATLAB. En cada caso compruebe que la respuesta de frecuencias y la respuesta de demora de grupo de la representación mediante descomposición es igual que la respuesta de frecuencias y la respuesta de demora de grupo del sistema total sin descomponer. b). Obtenga la respuesta impulsiva a partir de los polos y sus residuos, calculados durante la representación en serie. Analice la causalidad del sistema. 2. Dada la función de sistema del filtro pasobajo Y(z) 0.0022 + 0.0089z −1 + 0.0134 z −2 + 0.0089z -3 + 0.0022z -4 H(z) = = X(z) 1 − 2.6926z −1 + 2.8674 z − 2 - 1.4035z -3 + 0.2645z -4

a) Determine su respuesta impulsiva, h[n], utilizando la función impz de MATLAB. b) Filtre la secuencia ecg1[n] que se encuentra en el fichero “signal1.mat” de la carpeta de señales, utilizando la opción filter de MATLAB. c) Filtre la secuencia ecg1[n] mediante su convolución con la respuesta impulsiva h[n]. Compare con el resultado obtenido utilizando filter. d) Calcule y trace el diagrama de polos y ceros (tf2zp) de la función de sistema dada. Analice su estabilidad.

Ejercicios en MATLAB para Procesamiento Digital de Señales

21

Tema # 3 : Transformada Z

3. Se dispone de los ceros y polos de la función de sistema, H(z), de un filtro digital pasobajo de quinto orden diseñado mediante la transformación bilineal, el que trabaja a una frecuencia de muestreo de 500 Hz. Estos son: Ceros:

c : -1.0007 ± j0.0005,

-0.9997 ± j0.0008,

-0.9991

Polos

p : 0.2896 ± j0.8711,

0.4936 ± j0.5675,

0.6524

Ganancia: k = 0.0079 a) Obtenga la función de sistema total H(z) utilizando la función de MATLAB zp2tf y trace su respuesta de frecuencias. b) Trace el diagrama de polos y ceros del sistema utilizando la función zplane de MATLAB. c) Obtenga una subfunción de segundo orden para cada una de las parejas de polos y ceros complejos conjugados, y un término de primer orden apareando el cero real con el polo real. Utilice zp2tf. La ganancia debe distribuirse por igual para las tres subfunciones. d) Trace simultáneamente en la misma figura la respuesta de frecuencias de cada una de las subfunciones obtenidas (utilice hold on) y analice cual es la contribución de cada subfunción en la respuesta total. Analice en cada respuesta de frecuencias cómo depende el factor de sobrecresta de la proximidad del par de polos al círculo de radio unitario. 4. Con este problema se probarán algunas de las propiedades de la transformada Z mediante la utilización de MATLAB. Se dispone de la función de sistema H(z) dada por los coeficientes del numerador y denominador bk y aj respectivamente: » bk = [ 0.0485

0.1940

0.2910

0.1940

0.0485 ]

» aj = [ 1.0000

-0.8808

0.9803

-0.4270

0.1127 ]

Calcule las 30 primeras muestras de la respuesta impulsiva (impz) y obsérvela. Usted dispone ahora del par transformado h[n]

TZ

H(z)

Determine la posición de los polos y ceros (roots). Dibújelos (zplane). a) Si se produce el abatimiento h[-n]

TZ

H(z-1)

Ejercicios en MATLAB para Procesamiento Digital de Señales

22

Tema # 3 : Transformada Z

a1) Realice un abatimiento de los coeficientes del numerador y denominador de H(z). Llame a la nueva función H1(z). a2) Determine la posición de los polos y ceros de la nueva función H1(z). Explique lo que ha ocurrido. a3) Determine la respuesta impulsiva del sistema correspondiente a H1(z). Justifique el resultado. a4) Compare las respuestas de magnitud y fase contra frecuencias de los sistemas H(z) y H1(z). Comente sobre la diferencia entre ambas. 5. Sean los sistemas pasobanda dados por H1(z) =

0.21 1 − 0.545z − 1 + 0.778z − 2

H2(z) =

0.07 1 − 1.52z − 1 + 0.88z − 2

a) Trace la respuesta de frecuencias de cada uno de ellos. b) Trace la respuesta de frecuencias de la cascada de ambos sistemas. c) Trace la respuesta de frecuencias de la combinación paralelo de ambos. Compárela con la obtenida en el inciso b). 6. Dada la función de sistema H(z), en la cual los polos y ceros se indican en notación polar H ( z) =

( z − rc e jw c )( z − rc e − jw c ) jw − jw ( z − rp e p )( z − rp e p )

a) Utilizando rc = 0.8, wc = 2, rp = 0.7 y wp = 0.5: a1) Trace el diagrama de polos y ceros. a2) Determine los coeficientes de H(z) en forma de cociente de polinomios en z-1. Puede utilizar la función zp2tf de MATLAB. a3) Trace las respuestas de magnitud y fase de H(z) expresando el eje de frecuencias en unidades de radianes-segundos; esto es, 0 ≤ w ≤ π. b) Repita los pasos del inciso a) modificando los radios de los ceros haciendo rc = 0.98. Saque

conclusiones.

Ejercicios en MATLAB para Procesamiento Digital de Señales

23

Tema # 3 : Transformada Z

c) Repita los pasos del inciso a) pero modificando ahora los radios de los polos haciendo rp =

0.9. El resto de los parámetros de H(z) manténgalos con los valores que se indican en a). Saque conclusiones. d) Repita los pasos del inciso a) pero utilizando ahora wp = 0.3. Saque conclusiones. e) Repita los pasos del inciso a) pero utilizando ahora wc = 1. Saque conclusiones.

Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 4 Filtros Digitales

Una clase particularmente importante de sistemas LTI digitales son los filtros IIR y FIR, por lo que saber diseñar y analizar distintos tipos de filtros digitales de este tipo así como las propiedades de los mismos son de vital importancia para el procesamiento de señales. Con los problemas propuestos en este capítulo se pretende ejercitar técnicas de diseño para filtros digitales, y técnicas de diseño de filtros a partir de su equivalente analógico; también se verán distintos métodos de aproximación para filtros analógicos: aproximantes de Butterworth, Chebyshev 1 y 2, Legendre, elíptico y Bessel. En este tema se tratará el diseño de filtros mediante: analogía entre las ecuaciones en diferencia finita y las ecuaciones diferenciales, mediante la invarianza a la respuesta impulsiva y la invarianza al escalón, y mediante transformaciones bilineales. Se proponen comparaciones entre los métodos de diseño de filtros digitales a partir de un equivalente analógico. Diseño de filtros FIR mediante: muestreo en frecuencias, enventanado y optimización; así como comparación entre los filtros digitales IIR y FIR. En el anexo IV se encuentran algunas de las respuestas a los problemas aquí propuestos.

Ejercicios en MATLAB para Procesamiento Digital de Señales

25

Tema # 4: Filtros Digitales.

Ejercicios 1. a) Diseñe un filtro pasobanda con aproximante de Chebyshev 1 (cheby1) con : • Amplitud máxima del rizado en la banda de paso: 1 dB. • Atenuación mínima en la banda de parada: 30 dB. • Frecuencia de muestreo: fs = 15 KHz. • Frecuencias de esquinas de la banda de paso: 4500 y 5400 Hz. • Frecuencias de esquinas de las bandas de parada: 4000 y 6000 Hz. b) Obtenga la respuesta al impulso utilizando impz. c) Trace sus respuestas de magnitud (freqz, abs) y fase (angle) contra frecuencias, así como la característica de demora de grupo (grpdelay). Valore los resultados obtenidos. 2. a) Diseñe un filtro FIR pasobajo por el método de ventanas (fir1), con los parámetros siguientes: • Orden: 18. • Ventana: Kaiser con ß = 5.5. • Frecuencia esquina de la banda de paso: fp = 2500 Hz. • Frecuencia de muestreo: fs = 10 KHz. b) Grafíque sus coeficientes (stem). c) Trace su respuesta impulsiva utilizando impz. Compárela con los coeficientes del filtro. d) Trace sus respuestas de magnitud y fase contra frecuencias, así como la característica de demora de grupo. Valore los resultados obtenidos. 3. Cuando un filtro posee respuesta de magnitud contra frecuencias con rizado en las bandas de paso y rechazo, tales ondulaciones implican una lógica partición de la respuesta de frecuencias del filtro en bandas de paso, transición y rechazo. Sin embargo, para el caso de los filtros con respuesta de magnitud monotónica esta partición no es evidente. Para el filtro FIR que trabaja a una frecuencia de muestreo de 8 kHz, dado por: H(z) = -0.1302 - 0.599z-1 - 1.0415z-2 - 0. 7812z-3 - 0. 1302z-4 + 0. 1302z-5 + 0.052z-6

Ejercicios en MATLAB para Procesamiento Digital de Señales

26

Tema # 4: Filtros Digitales.

Trace su respuesta de magnitud contra frecuencias (freqz). Observe que no existe una división natural entre las diferentes bandas, al no poderse definir las frecuencias de esquina de la banda de paso, fp, y la frecuencia esquina de la banda de rechazo, fr. En tal caso, lo usual es especificar la frecuencia de corte como la frecuencia a la cual la ganancia cae a -3 dB o

2

2

de su valor nominal en la banda de paso. Determine la frecuencia

de corte, fc, de H(z) en unidades de Hz. Una convención para definir la desviación en la banda de paso, P, en los filtros con respuesta de magnitud monotónica, es tomar como P el 90 % de la ganancia nominal en la banda de paso (-0.915 dB). Determine el valor de P y de fp en la respuesta de magnitud de H(z). Así mismo, para definir la frecuencia esquina de la banda de rechazo fr se utiliza por convención aquella en la cual la ganancia cae al 10 % de su valor nominal en la banda de paso (-20 dB). Determine el valor de R y de fr. Construya el filtro de potencia complementaria al anteriormente diseñado; eso es, si la TF de H(z) es H(ejw), encuentre el filtro de potencia complementaria H1(z), cuya TF es H1(ejw), y que satisface que |H(ejw)|2 + |H1(ejw)|2 = 1. Compruebe su resultado trazando simultáneamente en la misma gráfica las dos respuestas de magnitud cuadrática. 4. Este ejercicio está relacionado con el diseño de filtros FIR utilizando el método de muestreo en frecuencias. a) Diseñe un filtro FIR pasobajo de longitud 32 con frecuencia de corte nominal en ¼ Hz-s haciendo  1,  H [ k ] =  0,  1, 

k = 0, 1, ..., 7 k = 8, 9, ..., 24 k = 25, 26, ..., 31.

donde H[k] es la DFT de 32 puntos de h[n]. Para ello: Calcule h[n] tomando la parte real de la IDFT (ifft) de 32 puntos de H[k]. Trace la respuesta impulsiva, h[n], del filtro diseñado. Trace las verdaderas respuestas de magnitud y fase contra frecuencias, evaluadas en 512 puntos en el intervalo 0 ≤ w ≤ 1 Hz-s. Mida las amplitudes de los rizados en las bandas de paso y rechazo.

Ejercicios en MATLAB para Procesamiento Digital de Señales

27

Tema # 4: Filtros Digitales.

Verifique si el filtro diseñado satisface los requerimientos de respuesta de magnitud a las frecuencias especificadas como datos (frecuencias críticas). Valore si se logra un buen filtro pasobajo. b) Diseñe un segundo filtro reemplazando las 32 muestras de la DFT anterior por los valores Hm[k] = (-1)kH[k]. Trace las muestras de Hm[k] y la respuesta impulsiva de este filtro. Compare con el inciso a). Trace las verdaderas respuestas de magnitud y fase de este filtro evaluadas en 512 puntos del intervalo 0 ≤ w ≤ 1 Hz-s. Verifique nuevamente si posee los valores apropiados de respuesta de magnitud a las frecuencias especificadas. Mida las amplitudes de los rizados en las bandas de paso y rechazo y compárelos con los obtenidos en el inciso a). Mida el ancho de la banda de transición. Saque conclusiones de todos los resultados obtenidos. c) Los dos diseños anteriores corresponden a casos especiales de la especificación más general H p [k] = e

−j

2πpk N H[ k ]

para los casos en que p = 0 y p = N/2. Determine le valor de p que minimiza la amplitud del rizado en la banda de paso haciendo varios diseños dentro de esta familia de filtros. Tenga en cuenta valores de p enteros y no enteros. Determine si el mismo valor de p que minimiza la amplitud del rizado en la banda de paso lo hace también en la banda de rechazo. d) Con los valores de ancho de la banda de transición y amplitud de los rizados en las bandas de paso y rechazo obtenidos en el inciso b) diseñe un filtro FIR utilizando el método de la ventana de Kaiser y valore los méritos de ambas técnicas a partir de los resultados obtenidos. 5. En este ejercicio se analiza el efecto de considerar una banda de transición, dentro de la respuesta de magnitud, en el método de diseño de filtros FIR mediante muestreo en frecuencias. Considere la familia de filtros FIR de longitud 32 diseñados por el método de muestreo en frecuencias cuyos valores de la DFT están dados por Ejercicios en MATLAB para Procesamiento Digital de Señales

28

Tema # 4: Filtros Digitales.

 ( −1) k ,  β  F[ k ] =  0  β  ( −1) k

k = 0, 1, ..., 7 k=8 k = 9 , 10, ..., 23 k = 24 k = 25, 26, ..., 31.

donde el parámetro β representa la magnitud de la respuesta en las bandas de transición. a) Diseñe un filtro con respuesta impulsiva h1[n] utilizando β = 0 mediante el procedimiento siguiente: Genere H1[k], la DFT de h1[n], evaluando F[k] para β = 0. Calcule la parte real de la IDFT de H1[k] para obtener h1[n]. Trace la respuesta impulsiva y las respuestas de magnitud y fase del filtro obtenido. Examínelas. b) Diseñe otro filtro, h2[n] = 0.0625cos(πn/2), de longitud 32 a partir de n = 0. Este filtro lo utilizará para controlar el valor de β en su diseño. Genere el filtro cuya respuesta impulsiva sea h[n] = h1[n] + βh2[n]. Experimente sistemáticamente con diversos valores de β y examine en cada caso la amplitud del rizado en las bandas de paso y rechazo. Determine el valor de β que minimice la amplitud del rizado en la banda de paso. c) Utilizando β = 0.5 mida la amplitud del rizado y el ancho de la banda de transición. Con los valores de amplitud del rizado y frecuencias esquinas de la banda de transición medidos, diseñe un filtro FIR utilizando el método de enventanado con ventana de Kaiser. Enumere las ventajas de cada uno de los métodos. 6. a) Diseñe de un filtro digital pasobajo con función aproximante elíptica (ellip) cuya frecuencia esquina de la banda de paso sea wp = 3π/8, frecuencia esquina de la banda de rechazo wr = 5π/8, amplitud del rizado en las bandas de paso y rechazo δp = δr = 0.1. Tal filtro debe tener como respuesta impulsiva una versión discretizada de la respuesta impulsiva que posee un filtro analógico que presenta las mismas amplitudes del rizado en las bandas de paso y rechazo, pero cuyas frecuencias esquinas en el campo analógico sean Ωp y Ωr. La frecuencia de muestreo en el sistema en que opera el filtro digital es fs = 44 100 Hz (audio digital). Utilice la función impinvar de MATLAB. Trace las respuestas de frecuencias y las Ejercicios en MATLAB para Procesamiento Digital de Señales

29

Tema # 4: Filtros Digitales.

respuestas impulsivas de ambos filtros (analógico y digital) utilizando las funciones de MATLAB freqs, freqz, impulse e impz. 7. El propósito de este ejercicio es comparar los resultados que ofrecen los métodos de diseño de filtros IIR que parten de un equivalente analógico, basados en la invarianza de la respuesta impulsiva y en la transformación bilineal. Para ello se utilizará como equivalente analógico un filtro con función aproximante de Bessel. a) Diseñe un filtro pasobajo analógico de quinto orden con función aproximante de Bessel (besself). La frecuencia de corte debe ser fc = 10 Hz. Trace sus respuestas de magnitud y fase contra frecuencias en el intervalo 0 ≤ f ≤ 150 Hz. Determine si la respuesta de magnitud satisface los requerimientos de diseño. Analice la linealidad de la respuesta de fase. Construya la función de sistema, Ha(s), del filtro analógico. b) En este inciso se diseña una versión digital mediante la invarianza de la respuesta impulsiva. Utilizando la función impinvar de MATLAB transforme el filtro analógico Ha(s) en su versión digital. Utilice frecuencia de muestreo fs = 300 Hz. Trace las respuestas de magnitud y fase contra frecuencias del filtro digital. Compare ambas respuestas con las de la versión analógica. Observe que la función impinvar de MATLAB no hace una adecuada normalización de los coeficientes del filtro digital que calcula, por lo que la respuesta de magnitud del filtro obtenido no posee ganancia unitaria. Introduzca la modificación necesaria en los coeficientes del filtro digital para que la respuesta de magnitud tenga ganancia aproximadamente unitaria. Modifique la frecuencia de muestreo hasta que consiga una versión definitiva de filtro digital que brinde una respuesta de frecuencias más próxima a la que ofrece el filtro analógico de partida. Trace la característica de demora de grupo de la versión definitiva de filtro de Bessel diseñado mediante el método de la invarianza a la respuesta impulsiva. Analícela. Utilizando el filtro que diseñó con frecuencia de muestreo de 300 Hz, pero con ganancia normalizada, introduzca una transformación de frecuencias digital pasobajo-pasobajo con el

Ejercicios en MATLAB para Procesamiento Digital de Señales

30

Tema # 4: Filtros Digitales.

fin de llevar la frecuencia de corte al mismo valor que exhibe la versión analógica. Observe las consecuencias sobre la respuesta de fase y la característica de demora de grupo. c) La función bilinear de MATLAB implementa la transformación bilineal del tipo 2  z − 1   T  z + 1

En este inciso se utilizará para obtener una versión digital de un filtro analógico ya diseñado, para el cual no se realizó una predistorsión de frecuencias antes del diseño, como ocurre con el filtro de Bessel obtenido en el inciso a). Construya una versión digital del filtro analógico diseñado en el inciso a), utilizando en este caso la transformación bilineal (bilinear). Utilice como frecuencia de muestreo fs = 1/T = 300 Hz. Fije el parámetro Fp en un valor apropiado que garantice que las respuestas de magnitud del filtro analógico y digital sean lo más semejante posible. Trace las respuestas de magnitud y fase contra frecuencias de este filtro digital. Compárelas con las obtenidas por la versión analógica. Trace la característica de demora de grupo de este filtro diseñado por el método de la transformación bilineal. Compárela con la que posee el filtro diseñado mediante invarianza de la respuesta impulsiva en el inciso b). Descarte la posibilidad de predistorsión en frecuencias que ofrece la función bilinear de MATLAB y ejecute las siguientes acciones: I.

Calcule la frecuencia de corte predistorsionada, que deba tener el filtro analógico, en base a la frecuencia de corte que se desea para el filtro digital (10 Hz), la frecuencia de muestreo (300 Hz) y el tipo de transformación bilineal que se utiliza.

II. Haga la transformación de frecuencias pasobajo-pasobajo analógica sobre el filtro

diseñado en el inciso a) para que tenga como frecuencia de corte la que calculó en el paso anterior. III. Ejecute la transformación bilineal sin utilizar la opción de predistorsión en frecuencias;

esto es, no utilice el parámetro Fp de la función bilinear. Compare los resultados de las dos vías. Trace la característica de demora de grupo de este segundo filtro diseñados por el método de la transformación bilineal. Compárela con las que poseen los diseñado mediante

Ejercicios en MATLAB para Procesamiento Digital de Señales

31

Tema # 4: Filtros Digitales.

invarianza de la respuesta impulsiva en el inciso b) y mediante el primer paso de este inciso. Construya una señal escalón unitario o paso que posea inicialmente 10 “ceros” y luego 49 “unos”. Utilizando la función filter obtenga la respuesta a esta señal del mejor de los filtros diseñados mediante el método de la transformación bilineal. Analice la amplitud de la sobrecresta y el tiempo de establecimiento (número de muestras en alcanzar el 1% del valor máximo absoluto). d) En este inciso se utiliza nuevamente el método de la transformación bilineal, pero haciendo una predistorsión de frecuencias antes de diseñar el filtro analógico; esto es, se descarta la posibilidad de predistorsión en frecuencias que ofrece la función bilinear de MATLAB. Haga un nuevo diseño de filtro analógico que tenga como frecuencia de corte predistorsionada la que usted calcule, de forma tal que su versión digital, diseñada por el método de la transformación bilineal del tipo

2  z − 1   tenga la misma respuesta de T  z + 1

magnitud a 10 Hz que el filtro analógico diseñado en el inciso a). Compare sus resultados anteriores. Construya la función de sistema, Hbl(z), del filtro diseñado mediante la transformación bilineal. 8. En los filtros digitales es muy común que la respuesta de magnitud en la banda de paso se especifique con una desviación δp alrededor de 1; esto es 1-δp ≤ |H(ejw)| ≤ 1+δp para la banda de paso. Se desea diseñar un filtro digital pasobajo, por el método de la transformación bilineal de tipo 2(z-1)/(z+1), con función aproximante elíptica que cumpla al máximo con las especificaciones siguientes. La respuesta de magnitud en la banda de paso debe poseer ondulaciones en el rango 1± δp con δp ≤ 0.05 desde frecuencia cero hasta wp =8π/20. La banda de rechazo debe comenzar en 9π/20 con una amplitud máxima δr = 0.03. a) Calcule los coeficientes de la función de sistema del filtro utilizando las funciones de

MATLAB ellipord y ellip evaluadas para los parámetros indicados (Nota: Estas funciones utilizan la transformación bilineal indicada). Tenga en cuenta que las unidades en que se especifican los parámetros en el problema no son las mismas que utilizan las funciones indicadas de MATLAB, por lo que se hace necesario una conversión. Trace la

Ejercicios en MATLAB para Procesamiento Digital de Señales

32

Tema # 4: Filtros Digitales.

respuesta de magnitud expresando el eje de frecuencias en unidades de rad-seg en el intervalo [0, π]. Compruebe sus resultados. b) Es muy posible que la respuesta de magnitud lograda en la banda de paso oscile entre 1 y 1-

δp en lugar de oscilar entre 1+δp y 1-δp. En tal caso: Sustituya el valor de δp por el nuevo valor 2δp/(1+δp) y el valor de δr por el nuevo valor δr/(1+δp); luego recalcule los coeficientes del filtro. Multiplique los coeficientes del numerador por el factor (1+δp/2). Compruebe el resultado.

Ejercicios en MATLAB para Procesamiento Digital de Señales

Tema # 5 Secuencias Aleatorias

En este tema el estudiante debe profundizar los conocimientos acerca de los procesos estocásticos de tiempo discreto, así como el comportamiento de estos, ante sistemas LTI. Entre los objetivos fundamentales de este tema y por lo tanto, de los ejercicios que en él se proponen, están definir, y caracterizar estadísticamente secuencias aleatorias (SA). También la caracterización probabilística de SA con independencia del tiempo. Se verán expresiones para las curvas de distribución de frecuencias y para las funciones de densidad probabilística (fdp) así como las transformaciones de la fdp de una variable aleatoria (VA). En algunos de estos ejercicios se podrán determinar la densidad espectral de potencia de secuencias aleatorias, el periodograma promedio y el periodograma cruzado; la transformación lineal de secuencias estacionarias ergódicas y la densidad espectral de potencia de la secuencia de salida de un sistema LTI y de secuencias cruzadas. Además, se estudian algunos tipos de secuencias de ruido utilizadas en la práctica. Al igual que en temas anteriores ,el anexo V recoge varias de las respuestas a los ejercicios de este tema.

Ejercicios en MATLAB para Procesamiento Digital de Señales

34

Tema # 5: Secuencias Aleatorias.

Ejercicios 1. Genere tres secuencias aleatorias(SA) con fdp de Rayleigth  x x2  e − 2 λ2 ,  2 f(x) =  λ  0, 

x≥0

con λ > 0 y real.

x