Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
UNIVERSIDAD DE CARABOBO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA DE TELECOMUNICACIONES DEPARTAMENTO DE SEÑALES Y SISTEMAS DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL DSK TMS320C5535 COMO HERRAMIENTA BASE DE UN LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EN TIEMPO REAL MANUEL DE OLIVEIRA Bárbula, 23 de Septiembre del 2015 UNIVERSIDAD DE CARABOBO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA DE TELECOMUNICACIONES DEPARTAMENTO DE SEÑALES Y SISTEMAS DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL DSK TMS320C5535 COMO HERRAMIENTA BASE DE UN LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EN TIEMPO REAL TRABAJO ESPECIAL DE GRADO PRESENTADO ANTE LA ILUSTRE UNIVERSIDAD DE CARABOBO PARA OPTAR AL TÍTULO DE INGENIERO DE TELECOMUNICACIONES MANUEL DE OLIVEIRA Bárbula, 23 de Septiembre del 2015 UNIVERSIDAD DE CARABOBO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA DE TELECOMUNICACIONES DEPARTAMENTO DE SEÑALES Y SISTEMAS CERTIFICADO DE APROBACIÓN Los abajo firmantes miembros del jurado asignado para evaluar el trabajo espe- cial de grado titulado «DESARROLLO DE UNA PLATAFORMA e-learning MEDIANTE EL DSK TMS320C5535 COMO HERRAMIENTA BASE DE UN LABORATORIO DE PRO- CESAMIENTO DIGITAL DE SEÑALES EN TIEMPO REAL», realizado por el bachiller MANUEL DE OLIVEIRA, cédula de identidad 19.793.045, hemos decidido otorgar la máxima calificación y la mención honorífica al presente trabajo, con base a los siguientes motivos: 1) El autor mostró una metodología exhaustiva del trabajo para resolver la problemática plantea- da. 2) El autor demostró un dominio excepcional de los contenidos desarrollados en las investigación. 3) El trabajo superó el alcance inicial, proporcionando a la facultad de ingeniería de la Universidad de Carabobo una herramienta novedosa y de gran utilidad para el desarrollo de cursos de programación dentro del entorno Moodle. Firma Prof. ING. CARLOS MEJÍAS TUTOR Firma Prof. AHMAD OSMAN JURADO Firma Prof. EDUARDO GONZALEZ JURADO Bárbula, 23 de Septiembre del 2015 Dedicatoria A mi abuela Ana Aunque no esté conmigo, fue mi inspiración para lograr esta meta. A mis padres Nancy Rodriguez y Eduardo De Oliveira Quienes son mi ejemplo a seguir. A mis hermanas Mariale y Andreina, mis fuentes de apoyo. A toda mi familia, amistades y seres queridos. MANUEL DE OLIVEIRA Agradecimientos En primer lugar, agradezco a Dios por la sabiduría que me brindo en la conse- cución de esta meta. Al Ingeniero Carlos Mejías, mi Tutor académico, por sus conocimientos impar- tidos, por la paciencia y dedicación que tuvo conmigo en el desarrollo de esta in- vestigación y además, por entender mi abstracta forma de expresar mis ideas. A la Ilustre Universidad de Carabobo, mi alma máter, y a todo el personal do- cente y administrativo de Escuela de Ingeniería de Telecomunicaciones por contri- buir en mi crecimiento personal y académico. A todo el personal del Instituto de Matemática y Calculo Aplicado (IMYCA) por facilitarme los recursos y colaborar en la ejecución de las actividades de este proyecto, en especial a el TSU Gustavo Jiménez por haberme suministrado tantos conocimientos y haber lidiado conmigo cada obstáculo. A la Dirección de Tecnología Avanzada (DTA) por hacerme sentir todos como parte de su equipo, de manera especial al ing. Oscar Davila por su apoyo y cons- tancia en este proyecto. Al profesor Juan C. Rodríguez del Pino del Departamento de Informática y Sis- temas de la Universidad de Las Palmas de Gran Canaria España, por haber diseña- do el modulo VPL de Moodle, y haber siempre contado con su apoyo para resolver mis interrogantes en este trabajo. A mis primos Yuliana y Jean Boscan por facilitarme los recursos para adquirir el modulo con el que se desarrollo este trabajo y al profesor Carlos Aponte por hacerlo llegar a mis manos. A mis amigos que siempre me apoyaron; en especial quiero agradecer a mis amigos Jennifer Sandia, Jonas Sanchez, Daniel Martinez y Roberto Linares, quienes estuvieron en cada paso que daba durante mi carrera, a mis compañeros Rossana VI Márquez, Ronald Ustariz, Yutzani Gallardo y Marelyn Sáez por apoyarme y acor- darse de mi en aquellos momentos difíciles que solo ellos conocen. A Ruben Esco- bar mi mejor amigo, por estar siempre atento y por su valiosa amistad. A Mariam Pulgar por llenarme de paz entre tanto caos, apoyarme y creer siempre en mi. . . . Índice general Índice de Figuras XI Índice de Tablas XV Acrónimos XVII Resumen XIX I. Introducción 1 1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1. Objetivos General . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2. Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3. Alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 II. Marco conceptual 7 2.1. Procesamiento digital de señales . . . . . . . . . . . . . . . . . . . . . 7 2.1.1. Procesadores digitales de señales . . . . . . . . . . . . . . . . . 9 2.1.2. Conversión analógica/digital y muestreo . . . . . . . . . . . . 10 2.1.3. Aritmética de procesadores . . . . . . . . . . . . . . . . . . . . 11 2.1.3.1. Notación de punto fijo y flotante . . . . . . . . . . . . 11 2.1.3.2. Aritmética de punto fijo . . . . . . . . . . . . . . . . . 12 2.1.4. Procesamiento digital de señales en tiempo real . . . . . . . . 14 2.1.4.1. Elementos Básicos de un sistema DSP en tiempo real 15 2.2. Serie de procesadores digitales TMS320C55x . . . . . . . . . . . . . . 16 2.3. Diseño de sistemas de procesamiento digital de señales . . . . . . . . 17 2.3.1. Metodología de diseño para procesamiento digital de señales 17 2.3.2. Selección de dispositivos DSP . . . . . . . . . . . . . . . . . . . 18 2.4. Lenguaje de programación C para desarrollo de aplicaciones DSP . . 18 2.4.1. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4.2. Punteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.3. Archivos y operaciones I/O . . . . . . . . . . . . . . . . . . . . 20 2.4.4. Búfers circulares y lineales . . . . . . . . . . . . . . . . . . . . . 21 VII VIII Índice general 2.5. Code Composer Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5.1. Emulador XDS100 JTAG . . . . . . . . . . . . . . . . . . . . . . 24 2.5.2. Librería DSPLIB . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.6. Sistema Digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.6.1. Sistemas Discretos . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.6.2. La transformada Z . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.6.3. Respuesta al impulso, de frecuencia y de fase de un sistema . 27 2.6.4. Suma de Convolución . . . . . . . . . . . . . . . . . . . . . . . 28 2.6.5. Filtros Digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.6.5.1. Tipos de filtros . . . . . . . . . . . . . . . . . . . . . . 29 2.6.5.2. El orden de un filtro . . . . . . . . . . . . . . . . . . . 31 2.6.5.3. Filtros FIR e IIR . . . . . . . . . . . . . . . . . . . . . 31 2.6.5.4. Consideraciones de longitud de datos finita para fil- tros digitales . . . . . . . . . . . . . . . . . . . . . . . 33 2.6.5.5. Efectos basado en filtros digitales: Ecualización . . . 34 2.7. Efectos de audio digital . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.7.1. Principios del mecanismo auditivo humano . . . . . . . . . . 35 2.7.1.1. Rango de frecuencias audibles . . . . . . . . . . . . . 36 2.7.2. Efectos basado en retardos . . . . . . . . . . . . . . . . . . . . . 37 2.7.2.1. Eco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.7.2.2. Reverberación . . . . . . . . . . . . . . . . . . . . . . 38 2.7.3. Efectos en el dominio dinámico . . . . . . . . . . . . . . . . . . 39 2.7.3.1. Modulación: Ring modulator . . . . . . . . . . . . . . 402.7.3.2. Distorsión . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.8. Entorno de programación virtual . . . . . . . . . . . . . . . . . . . . . 41 2.8.1. E-learnning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.8.2. Virtual Programing Lab (VPL) . . . . . . . . . . . . . . . . . . 42 2.8.2.1. Arquitectura VPL . . . . . . . . . . . . . . . . . . . . 42 2.8.2.2. Topología de Red . . . . . . . . . . . . . . . . . . . . 43 2.9. Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 III.Procedimientos de la investigación 47 3.1. Revisión Teórica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.2. Alojamiento e instalación del VPL en el servidor . . . . . . . . . . . . 49 3.3. Reconocimiento del proceso de programación . . . . . . . . . . . . . 53 3.3.1. Soporte para la programación de los módulos DSP y del am- biente integrado CCS . . . . . . . . . . . . . . . . . . . . . . . . 53 3.3.2. Generación de señales sinusoidales y tonos . . . . . . . . . . . 54 3.3.3. Estructuras para control de escritura y lectura I/O . . . . . . . 55 3.3.4. Convolución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.3.5. Sistemas discretos: Eco . . . . . . . . . . . . . . . . . . . . . . . 57 3.3.6. Sistemas Discretos: Reverberación . . . . . . . . . . . . . . . . 58 Índice general IX 3.3.7. Sistemas discretos: Distorsión . . . . . . . . . . . . . . . . . . . 59 3.3.7.1. Distorsión no lineal por saturación . . . . . . . . . . 59 3.3.7.2. Distorsión no lineal polinómica . . . . . . . . . . . . 60 3.3.8. Sistemas discretos: Modulación . . . . . . . . . . . . . . . . . . 60 3.3.9. Filtros digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.3.9.1. Metodología de diseño de filtros digitales . . . . . . 61 3.4. Elaboración de las prácticas y recursos del laboratorio PDS . . . . . . 63 IV. Análisis, interpretación y presentación de los resultados 67 4.1. Resultados de la revisión teórica de módulos, técnicas y soporte para procesamiento digital de señales en tiempo real . . . . . . . . . . . . . 67 4.2. Alojamiento e instalación del servidor VPL para el laboratorio de PDS 70 4.3. Reconocimiento de algoritmos y programación para procesamiento digital de señales en tiempo real sobre el modulo TMS320C5535 . . . 72 4.3.1. Plantilla de programación para C5505/C5535 . . . . . . . . . 72 4.3.2. Generación de señales sinusoidales . . . . . . . . . . . . . . . 73 4.3.2.1. Generación de tonos puros sinusoidales . . . . . . . 73 4.3.2.2. Generación de tonos musicales . . . . . . . . . . . . 74 4.3.2.3. Lectura y escritura de señales de voz . . . . . . . . . 76 4.3.2.4. Convolución . . . . . . . . . . . . . . . . . . . . . . . 77 4.3.3. Sistemas discretos . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.3.3.1. Eco (Mediante ecuación de diferencias) . . . . . . . . 80 4.3.3.2. Eco (Mediante función FIR) . . . . . . . . . . . . . . 85 4.3.3.3. Reverberación . . . . . . . . . . . . . . . . . . . . . . 86 4.3.3.4. Distorsión no lineal por saturación . . . . . . . . . . 91 4.3.3.5. Distorsión no lineal polinómica cuadrática . . . . . . 94 4.3.3.6. Distorsión no lineal polinómica cúbica . . . . . . . . 99 4.3.3.7. Efectos de la distorsión polinómica en audio . . . . . 104 4.3.3.8. Modulación . . . . . . . . . . . . . . . . . . . . . . . . 106 4.3.4. Filtros digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.3.4.1. Filtro pasa bajas . . . . . . . . . . . . . . . . . . . . . 110 4.3.4.2. Filtro pasa altas . . . . . . . . . . . . . . . . . . . . . 112 4.3.4.3. Filtro pasa banda . . . . . . . . . . . . . . . . . . . . 114 4.3.4.4. Filtro Notch . . . . . . . . . . . . . . . . . . . . . . . . 116 4.3.5. Efectos de filtros digitales: Ecualización . . . . . . . . . . . . . 120 4.4. Recursos y prácticas del laboratorio de procesamiento digital de se- ñales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.4.1. Introducción al laboratorio de PDS en tiempo real . . . . . . . 126 4.4.2. Iniciación a Code Composer Studio y a la serie DSK TMS320C55x 127 4.4.3. Tutorial para el software de diseño de filtros digitales Iowa Hills software for digital filters design . . . . . . . . . . . . . . . . 127 4.4.4. Prácticas del laboratorio de PDS en Tiempo Real . . . . . . . . 128 X Índice general 4.4.4.1. Práctica 0 . . . . . . . . . . . . . . . . . . . . . . . . . 128 4.4.4.2. Práctica 1 . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.4.4.3. Práctica 2 . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.4.4.4. Práctica 3 . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.4.5. Recursos de contenidos para prácticas del laboratorio de PDS 131 V. Conclusiones y recomendaciones 133 5.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 5.2. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Referencias Bibliográficas 137 Anexos A. Introducción al laboratorio de PDS en tiempo real. B. Iniciación a Code Composer Studio y a la serie DSK TMS320C55x. C. Tutorial para el software de diseño de filtros digitales Iowa Hills software for digital filters design. D. Prácticas del laboratorio de PDS en Tiempo Real. E. Recursos de contenidos para las prácticas del laboratorio de PDS. Índice de figuras 2.1. Captación de señal analógica por medio de un ADC . . . . . . . . . . 10 2.2. Formato de registro en complemento a 2. . . . . . . . . . . . . . . . . 13 2.3. Formato de registro en punto fijo. . . . . . . . . . . . . . . . . . . . . . 13 2.4. Procesamiento en tiempo real [1]. . . . . . . . . . . . . . . . . . . . . . 15 2.5. Elementos básicos de los sistemas DSP en tiempo real [1]. . . . . . . . 15 2.6. Sistema de flujo de diseño DSP [2]. . . . . . . . . . . . . . . . . . . . . 17 2.7. Línea de retardo implementado con desplazamiento de muestras [3]. 21 2.8. Línea de retardo con manipulación de puntero usando direcciona- miento circular [3]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.9. Tipos de filtros [4] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.10. Diagrama de bloques general, filtro FIR [4]. . . . . . . . . . . . . . . . 32 2.11. Diagrama de bloques general, filtro IIR[4]. . . . . . . . . . . . . . . . . 32 2.12. Diagrama de sistema de ecualización de 3 bandas. . . . . . . . . . . . 34 2.13. Curvas de igual nivel sonoro expresada en dB [5]. . . . . . . . . . . . 36 2.14. Sistema de procesamiento digital de eco. . . . . . . . . . . . . . . . . . 38 2.15. Fenomeno de reverberación [6]. . . . . . . . . . . . . . . . . . . . . . . 39 2.16. Sistema de procesamiento digital de reverberación. . . . . . . . . . . 39 2.17. Sistema modulador en anillo. . . . . . . . . . . . . . . . . . . . . . . . 40 2.18. Tipos de Ejecución: Pasos de corrida de petición no interactiva. . . . 43 2.19. Tipos de Ejecución: Pasos de corrida de petición de interactiva. . . . 43 3.1. Ventana de impulso rentangular. . . . . . . . . . . . . . . . . . . . . . 62 4.1. Diagrama de bloques modulo DSK TMS320C5535 [7]. . . . . . . . . . 68 4.2. Captura de comprobación de servidor de ejecución vpl. . . . . . . . . 70 4.3. Plantilla de programación . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.4. Señal sinusoidal f = 500Hz en el dominio del tiempo. . . . . . . . . . 73 4.5. Señal sinusoidal f = 1000Hz en el dominio del tiempo. . . . . . . . . 73 4.6. Señal sinusoidal f = 500Hz en el dominio de la frecuencia. . . . . . . 74 4.7. Señal sinusoidal f = 1000Hz en el dominio de la frecuencia. . . . . . . 74 4.8. Generación notas musicales en escala anglosajona en el dominio de la frecuencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.9. Señal de voz en el dominio del tiempo. . . . . . . . . . . . . . . . . . . 76 XI XII Índice de figuras 4.10. Señal de voz en el dominio de la frecuencia. . . . . . . . . . . . . . . . 76 4.11. Procesamiento de primer bloque de suma de convolución.. . . . . . 78 4.12. Division de bloques de procesamiento de tamaño fijo. . . . . . . . . . 79 4.13. Muestras de salida correctas y erroneas en procesamiento por bloques. 79 4.14. Diagrama de polos y ceros. k = 10 α = 0,7. . . . . . . . . . . . . . . . 81 4.15. Diagrama de polos y ceros. k = 5 α = 0,9. . . . . . . . . . . . . . . . . 81 4.16. Diagrama de polos y ceros. k = 20 α = 0,2. . . . . . . . . . . . . . . . 82 4.17. Diagrama de bode, magnitud y fase. k = 10 α = 0,7. . . . . . . . . . . 83 4.18. Diagrama de bode, magnitud y fase. k = 5 α = 0,9. . . . . . . . . . . . 83 4.19. Diagrama de bode, magnitud y fase. k = 20 α = 0,2. . . . . . . . . . . 84 4.20. Sistema que introduce eco en el dominio del tiempo usando pulso de voz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.21. Sistema que introduce eco con FIR en el dominio del tiempo usando pulso de voz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.22. Diagrama de polos y ceros. k = 10 α = 0,7. . . . . . . . . . . . . . . . 86 4.23. Diagrama de polos y ceros. k = 5 α = 0,9. . . . . . . . . . . . . . . . . 87 4.24. Diagrama de polos y ceros. k = 20 α = 0,2. . . . . . . . . . . . . . . . 87 4.25. Diagrama de bode, magnitud y fase. k = 10 α = 0,7. . . . . . . . . . . 88 4.26. Diagrama de bode, magnitud y fase. k = 5 α = 0,9. . . . . . . . . . . . 89 4.27. Diagrama de bode, magnitud y fase. k = 20 α = 0,2. . . . . . . . . . . 89 4.28. Respuesta del sistema que introduce reverberación en el dominio del tiempo a un pulso de voz. . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.29. Función de transferencia del sistema de distorsión no lineal por sa- turación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.30. Respuesta en frecuencia del sistema de distorsión por saturación, a un tono puro de 500Hz de entrada. . . . . . . . . . . . . . . . . . . . . 92 4.31. Respuesta en frecuencia del sistema de distorsión por saturación, a una pista de acordes de entrada. . . . . . . . . . . . . . . . . . . . . . 93 4.32. Función de transferencia distorsión polinómica cuadrática. . . . . . . 95 4.33. Respuesta en la frecuencia del sistema de distorsión cuadrática 4.3., a un tono puro de 500Hz de entrada. . . . . . . . . . . . . . . . . . . . 95 4.34. Función de transferencia distorsión polinómica cuadrática. . . . . . . 97 4.35. Respuesta en el tiempo del sistema de distorsión cuadrática ??, a un tono puro de 500Hz de entrada . . . . . . . . . . . . . . . . . . . . . . 97 4.36. Respuesta en frecuencia del sistema de distorsión cuadrática 4.4, a un tono puro de 500Hz de entrada. . . . . . . . . . . . . . . . . . . . . 98 4.37. Función de transferencia distorsión polinómica cúbica. . . . . . . . . 100 4.38. Respuesta en el tiempo del sistema distorsión cúbica 4.6, a un tono puro de 500Hz de entrada . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.39. Respuesta en frecuencia del sistema distorsión cúbica 4.6, a un tono puro de 500Hz de entrada. . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.40. Funcion de transferencia distorsión polinómica cúbica . . . . . . . . . 102 Índice de figuras XIII 4.41. Respuesta en el tiempo del sistema de distorsión cúbica 4.7, a un tono puro de 500Hz de entrada . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.42. Respuesta en frecuencia del sistema de distorsión cúbica 4.7, a un tono puro de 500Hz de entrada . . . . . . . . . . . . . . . . . . . . . . 103 4.43. Respuesta en el tiempo, de señal de entrada (pista de acordes). . . . . 105 4.44. Respuesta en el tiempo del sistema de distorsión cuadrática 4.4, a una pista de acordes de entrada. . . . . . . . . . . . . . . . . . . . . . 105 4.45. Respuesta en el tiempo del sistema de distorsión cúbica 4.7, a una pista de acordes de entrada . . . . . . . . . . . . . . . . . . . . . . . . 105 4.46. Respuesta en el tiempo del sistema de modulación sobre tono sinu- soidal de 500Hz y portadora 200Hz . . . . . . . . . . . . . . . . . . . . 106 4.47. Respuesta en frecuencia del sistema de modulación sobre tono sinu- soidal de 500Hz y portadora 200Hz . . . . . . . . . . . . . . . . . . . . 107 4.48. Respuesta en frecuencia del sistema de modulación sobre pista de acordes y portadora Fm: 1KHz . . . . . . . . . . . . . . . . . . . . . . 108 4.49. Respuesta en frecuencia de señal de banda entre (200 -8000)Hz. . . . 109 4.50. Respuesta en magnitud, filtro pasa bajas. . . . . . . . . . . . . . . . . 110 4.51. Respuesta en frecuencia del filtro pasa bajas, a señal de banda . . . . 110 4.52. Respuesta en frecuencia del filtro pasa altas, a señal de banda. . . . . 112 4.53. Respuesta en frecuencia del filtro pasa alta, a señal de banda. . . . . . 112 4.54. Respuesta en magnitud, filtro pasa banda. . . . . . . . . . . . . . . . . 114 4.55. Respuesta en frecuencia del filtro pasa banda, a señal de banda. . . . 114 4.56. Filtro Notch Fc = 6kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 4.57. Respuesta en frecuencia del filtro Notch, a un señal sinusoidal pura de 6kHz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 4.58. Respuesta en frecuencia de pista de acordes. . . . . . . . . . . . . . . 117 4.59. Respuesta en frecuencia del filtro Notch, a pista de acordes. . . . . . . 118 4.60. Ecualizador digital de tres bandas, para tono dual. . . . . . . . . . . . 120 4.61. Respuesta en frecuencia de la señal dual (800Hz-4kHz) sin ecualización.121 4.62. Respuesta en frecuencia del sistema de ecualización, a una señal dual (800Hz-4kHz). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4.63. Ecualizador digital de tres bandas, para señal de banda (200Hz-8kHz). 123 4.64. Respuesta en frecuencia de la señal de banda (200Hz-8kHz) sin ecua- lización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 4.65. Respuesta en frecuencia del sistema de ecualización, a una señal de banda (200Hz-8kHz). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4.66. Sesión 1: Introducción al procesamiento digital de señales. . . . . . . 126 4.67. Sesión 2: Iniciación a Code Composer Studio y a la serie DSK TMS320C55x.127 4.68. Práctica 0: Programación en C para procesamiento digital de señales. 129 4.69. Práctica 1: Generación de señales senoidales. . . . . . . . . . . . . . . 129 4.70. Práctica 2: Procesamiento de sistemas discretos. . . . . . . . . . . . . 130 4.71. Práctica 3: Diseño de filtros digitales. . . . . . . . . . . . . . . . . . . . 131 Indice de tablas 2.1. Comparación entre aritmética de los procesadores [8] . . . . . . . . . 12 2.2. Tipos de datos soportados por el TMS320C5535 [9] . . . . . . . . . . 16 2.3. Convención de argumentos para funciones DSPLIB [10] . . . . . . . . 26 3.1. Comparación paramétrica de productors de la serie C55x DSP. . . . . 49 4.1. Espectro de potencias de tonos puros. . . . . . . . . . . . . . . . . . . 73 4.2. Espectro de potencias de notas musicales en escala anglosajona. . . . 75 4.3. Espectro de potencias de armónicos generados del sistema de distor- sion por saturación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.4. Espectro de potencias de armónicos generados del sistema de distor- sión cuadrática 4.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.5. Espectro de potencias de armónicos generados del sistema de distor- sión cuadrática 4.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.6. Espectro de potencias de armónicos generados del sistema distorsión cúbica 4.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.7. Espectro de potencias de armónicos generados del sistema distorsión cúbica 4.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 4.8. Espectro de potencias de bandas lateral, modulador en anillo . . . . . 107 4.9. Espectro de potencias de señal de tono dual sin ecualización. . . . . . 121 4.10. Espectro de potencias del sistema actualizador,a una señalde tono dual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 XV Acrónimos CCS Code Composer Studio CPU Central Processing Unit DSK DSP Starter Kit DSP Digital Signal Processing FIR Finite Impulse Response IIR Infinite Impulse Response IDE Integrated Development Environment JTAG Joint Test Action Group LTI Linear Time Invariant MACS Multiply Accumulate Cycles per Second MIPS Millions Instructions Per Seconds TIC Tecnologías de la Información y Comunicación UART Universal Asynchronous Receiver Transmitter VLSI Very Large Scale Integration VPL Virtual Programing Lab XVII DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL DSK TMS320C5535 COMO HERRAMIENTA BASE DE UN LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EN TIEMPO REAL por MANUEL DE OLIVEIRA Presentado en el Departamento de Señales y Sistemas de la Escuela de Ingeniería en Telecomunicaciones el 23 de Septiembre del 2015 para optar al Título de Ingeniero de Telecomunicaciones RESUMEN El siguiente proyecto constituye el desarrollo de un laboratorio para el procesa- miento digital de señales, mediante la programación del kit de desarrollo C5535 eZdsp de Texas Instruments. Este hardware permitirá tratar digitalmente señales en tiempo real usando para esto herramientas en software de programación de alto ni- vel. De acuerdo con este enfoque, los estudiantes combinarán una doble experien- cia de aprendizaje, software-hardware durante las prácticas del laboratorio de DSP, mediante sesiones de manipulación del hardware en las instalaciones de laboratorio XIX XX Resumen con el complemento de programación virtual para la gestión y aprendizaje del soft- ware y los recursos, esta integración representa gran alcance y aporta dinamismo al proceso cognitivo mediante la experimentación de los contenidos programados. La motivación es el contacto del estudiantes con herramientas de desarrollo pa- ra que con la aplicación de los métodos y solventando pequeños problemas, adquie- ran la metodología de trabajo que requiere un ingeniero en el procesamiento digital de señales, de igual manera incrementar la capacidad desarrollo y los propósitos de esta misma línea de investigación del departamento de señales y sistemas, además de satisfacer la necesidad de los estudiante de adquirir habilidades orientadas al uso de herramientas a la par de las tendencias tecnológicas. Los nuevos retos del sector educativo Venezolano asociado a los avances en las telecomunicaciones, en nuevas técnicas de modulación, filtrado digital, proce- samiento de imágenes y vídeo entre otras aplicaciones marca la relevancia de la investigación, someter el módulo a diferentes esquemas de procesamiento permi- tirá evaluar el manejo del hardware y dará un mapa completo de manipulación de tarjetas de desarrollo de este tipo. Palabras Claves: DSP,Virtual Programing Lab (VPL), Laboratorio, Tiempo real,e- learning, DSK Tutor: ING. CARLOS MEJÍAS Profesor del Departamento de Señales y Sistemas Escuela de Telecomunicaciones. Facultad de Ingeniería adscrito al Laboratorio X Capítulo I Introducción 1.1. Motivación Los esquemas de procesamiento digital de señales (DSP) han crecido vertigi- nosamente debido al avance de las tecnologías de circuitos de gran escala de inte- gración (VLSI), lo que ha permitido la implementación de sistemas digitales más complejos, dejando a un lado los sistemas analógicos ya que estos aportan flexibi- lidad en el diseño para la programación de funciones sin necesidad de modificar el circuito integrado [11]. Así mismo, el procesamiento digital de señales en tiempo real, se ha convertido en un campo competitivo dentro de la ingeniería en estos últimos años. El DSP es un área de desarrollo, de investigación y de experimentación donde los estudian- tes y los investigadores están constantemente evaluando diferentes arquitecturas de procesadores, así como optimizando librerías necesarias para el procesamiento digital en tiempo real [1]. Actualmente, los productos de DSP representan una solución para los sistemas de intensa carga computacional, los cuales se encuentran clasificados por arquitec- tura, eficiencia de procesamiento, estructura de los datos y otras cualidades. En- tre los principales fabricantes de estos productos, Texas Instruments (TI) lidera el 1 2 Capítulo I. Introducción mercado, presentando alternativas que integran bajo costo y alto rendimiento, ade- más de soporte a una variedad de herramientas computacionales como MATLAB y LABVIEW, para el desarrollo y la experimentación de diferentes prototipos en las diversas áreas de investigación. En este mismo orden de ideas, TI proporciona el software Code Composer Studio como un ambiente de desarrollo para la evaluación y ejecución de programas en C [12], por su cualidades para aplicaciones en DSP en tiempo real como por ejemplo, el control de estructuras de tipo lógico y el manejo eficiente de memoria. Mientras tanto, en universidades y centros de investigación, las tecnologías ba- sadas en microprocesadores necesitan del apoyo de laboratorios para la experi- mentación; sin embargo, los contenidos de asignaturas como microprocesadores y diseño digital, no suelen cubrir módulos de procesadores digitales de señal ni la metodología de diseño para esto, es por ello que para poder incentivar el proceso cognitivo en esta área de la ingeniería se debe priorizar el uso de productos de DSP [13]. Por otro lado, el laboratorio actual de DSP de la Escuela de Ingeniería de Tele- comunicaciones, se basa en el trabajo de Sanjit Mitra, Digital Signal Processing Labo- ratory Using MATLAB [14], el cual asume que el estudiante no tiene antecedentes en este entorno y lo guía, a través de programas de prueba en la primera mitad del curso, en el manejo de los conceptos básicos de este lenguaje mediante la solución de problemas, y el resto del material se enfoca en el análisis y diseño de sistemas discretos para procesamiento de señales. De ahí que el trabajo anterior guarde relación directa con este proyecto ya que se expone una estrategia de aprendizaje basado en experiencias en el computador mediante el desarrollo algoritmos de procesamiento. Sin embargo, esta metodolo- gía de trabajo carece del enfoque practico asentado en el desarrollo de algoritmos en lenguaje C, del control del recurso computacional y la programación de produc- tos de DSP. Así mismo debido a lo repetitivo de los procedimientos y la falta de experiencias en términos de procesamiento en tiempo real, se presenta la necesidad de plantear un nuevo esquema de laboratorio. Capítulo I. Introducción 3 Con el propósito de que el laboratorio sea dimensionado para fines educativos y experimentales se requiere la adquisición de los productos DSPs y de la gestión del sistema de aprendizaje; no obstante, esta situación se vuelve problemática si no se cuenta con el equipo suficiente. Frente a esto la modalidad e-learning podría tomar lugar y disminuir los recursos necesarios. Es por esto que el desarrollo de Juan Carlos Rodriguéz del Pino, VPL: Laborato- rio Virtual de Programación para Moodle [15], es una solución e-learning de educación a distancia para la gestión de laboratorios de programación virtual, el cual propor- ciona la posibilidad de editar código fuente en una gran cantidad de lenguajes y ejecutar prácticas desde un navegador web. En este sentido, se exponen los aspec- tos más relevantes y se sugiere una arquitectura del sistema para el plugin VPL, lo que permite una herramienta para el manejo de los recursos de programación en la plataforma Moodle, a software DSP como el Code Composer Studio. Por otro lado, en la Universidad de Petras, Galanis Michail desarrolló un tra- bajo titulado: A DSP course for real-time systems design and implementation based on the TMS320C6211 DSK [16], el cual presenta un curso basado en un módulo DSP, enfocado al aprendizaje de algortimos para DSP sobre procesadoresembebidos, donde el autor hace énfasis en la transición de ambientes de simulación y diseño avanzado, como MATLAB. De esta manera y en el contexto general anteriormente citado, el presente tra- bajo centra toda su atención, mostrar de entre la extensa gama de posibilidades y aplicaciones posibles, las técnicas de procesamiento digital de señales de audio en tiempo real para la obtención de los efectos más frecuentes con los que se puede modificar el sonido original, con el objetivo de proporcionar al estudiante un po- tente vehículo para la expansión de sus capacidades de desarrollos en DSP . 4 Capítulo I. Introducción 1.2. Objetivos 1.2.1. Objetivos General 1. Desarrollar una plataforma e-learning mediante el módulo DSK TMS320C5535 como herramienta base de un laboratorio de procesamiento digital de señales en tiempo real. 1.2.2. Objetivos Específicos 1. Revisar las fuentes bibliográficas referentes a las técnicas de DSP para la se- lección de los algortimos adecuados. 2. Componer algoritmos en lenguaje C para el procesamiento de señales de au- dio en tiempo real sobre el módulo de DSP. 3. Describir el contenido de cada practica para la elaboración de la guía de labo- ratorio de DSP. 4. Elaborar los recursos didácticos necesarios para la estructuración de la plata- forma del laboratorio virtual. 5. Desarrollar la plataforma de trabajo bajo el entorno Moodle VPL, para la ges- tión de recursos del laboratorio de DSP. 1.3. Alcances La presente investigación precisa el diseño y la implementación de toda la pla- taforma, entre los elementos y procesos se incluyen: • Revisión de procesadores de los Texas Instruments para la selección de la he- rramienta base del laboratorio. • Elaboración de los contenidos de procesamiento digital de señales del labora- torio, para desarrollar aplicaciones propósito general. Capítulo I. Introducción 5 • Selección de los algoritmos a desarrollar sobre el modulo, adecuados a su cualidades y características, para ilustrar los contenidos programados del la- boratorio sobre el ambiente de desarrollo integrado CCS. • Ejecutar operaciones sobre señales digitales en el modulo DSP, sistemas dis- cretos como eco y reverberación, muestreo, convolución por bloques, aliasing en la frecuencia y tiempo, diseño de filtros FIR e IIR. • Instalación de plug-ing VPL sobre el servidor Moodle. • Gestión del soporte de red del servidor de ejecución. • Creación del servidor de ejecución para la plataforma VPL. Capítulo II Marco conceptual Bases Teóricas 2.1. Procesamiento digital de señales En todos los espacios nos encontramos inmersos de cientos de señales, entre ellas las generadas por las sondas espaciales, los radares y las tensiones generadas por el corazón y el cerebro así como de vibraciones sísmicas y acústicas. Cabe señalar que el oído de los seres humanos es un sensor que transforma las señales acústicas en pulsos eléctricos, que luego son transmitidos al cerebro, el cual tiene la habilidad de procesarlos e interpretarlos en tareas como por ejemplo el re- conocimiento de voces y de posiciones, permitiendo tomar decisiones para ejecutar alguna respuesta [13]. En virtud de esto, desde hace unos 25 años se ha explotado el uso de compu- tadoras para recrear el procesamiento de señales de un cerebro, Kuo S.M. define a el procesamiento digital de señales como la ciencia de la utilización de las compu- tadoras para el tratamiento de señales del tipo digital [1], esta área de la ingeniera incluye entre sus funciones, filtrado, reconocimiento de voz, procesamiento de imá- genes, compresión de datos, entre otras más. 7 8 Capítulo II. Marco conceptual El DSP es una de las tecnologías con más crecimiento en ciencia e ingeniería y los diferentes campos han desarrollado algoritmos especializados para diferentes propósitos convirtiéndose en un complemento para la adquisición de datos en mu- chas aplicaciones y consumibles[17], como teléfonos, control de motores y aparatos médicos, mejorando el rendimiento de los sistemas. Las ventajas de usar sistemas de procesamiento de señal en lugar de disposi- tivos analógicos tradicionales (como amplificadores, moduladores y filtros entre otros) son las siguientes: Flexibilidad: Las funciones del procesado digital de señal pueden ser modifi- cadas o actualizadas mediante software, usando el mismo hardware para un algoritmo específico. Reproducibilidad: El rendimiento de estos sistemas puede ser repetido exac- tamente, de una unidad a otra. Esto porque el procesamiento de las señales de estos sistemas trabajan directamente con secuencias binarias. Confiabilidad: La memoria y lógica del hardware de estos sistemas no se de- teriora con el tiempo. Por lo tanto, el rendimiento en el campo de los sistemas de procesado digital de señal, no se deteriora con el cambio de las condicio- nes ambientales o el tiempo de los componentes electrónicos, como sus contra partes analógicas lo hacen. Complejidad: Estos sistemas permiten sofisticadas aplicaciones que pueden ser implementadas en dispositivos portátiles con un bajo consumo de poten- cia, lo que resultaría impráctico con técnicas analógicas tradicionales. Capítulo II. Marco conceptual 9 2.1.1. Procesadores digitales de señales Los procesadores digitales se les conoce en el mercado internacional como DSP de sus siglas en ingles Digital Signal Processor, son dispositivos especialmente di- señados para tratar señales en formato digital, esto implica la conversión de las cantidades físicas analógicas, para esto se deben capturar muestras de valores de la señal analógica en un tiempo con una precisión limitada, este formato digital repre- senta la señal en una secuencia de números que pueden ser fácilmente manipulados por medio de una computadora o un procesador [18]. El término DSP en la práctica se refiere a microprocesadores diseñados para realizar procesado digital de señal que utilizan arquitecturas especiales para ace- lerar los cálculos matemáticos intensos implicados, dichas arquitecturas incluyen elementos circuitales para ejecución rápida de las operaciones de multiplicar y acu- mular conocidas como MAC, también poseen arquitecturas de memoria que per- miten un acceso múltiple y así cargar varias operaciones [13]. Las operaciones MAC se refieren al proceso de multiplicación y acumulación que es requerido en la mayoría de las funciones de DSP. Las aplicaciones en tiempo real son evaluadas por el rendimiento, lo que requiere optimizar el tiempo y por lo tanto unidades MACs más rápidas significan potencialmente mayor ancho de banda, sin embargo este parámetro por si mismo no define el rendimiento de es- tos procesadores. Así mismo, para desarrollar la operación MAC eficientemente, se debe integrar en el mismo flujo de datos, para poder completar la operación dentro de un ciclo de instrucción. Estos operaciones son de la forma: y = count∑ i=1 ai × xi Por otro lado uno de los desarrollos con mayor impacto en el crecimiento, aná- lisis, diseño y realización de procesadores digitales de señal, fue la investigación de Cooley y Tukey, An algorithm for the machine calculation of complex fourier series[19], el 10 Capítulo II. Marco conceptual algoritmo de la Transformada Rápida de Fourier (FFT), reduce el costo de computo y permite mayor eficiencia en la administración de los recursos. 2.1.2. Conversión analógica/digital y muestreo La captura del sonido se lleva acabo con el micrófono o algún instrumento mu- sical que realiza la transducción de audio a pulsos eléctricos como ocurre en el caso de una guitarra acústica o eléctrica. Cuando las ondas de sonido llegan al mi- crófono, el movimiento mecánico se traduce en una señal eléctrica. Esta señal se denomina señal analógica porque es una señal continua en el tiempo, análoga al sonido original. Figura 2.1: Captación de señal analógica por medio de un ADC Según el teorema de Nysquist o teorema de muestro, es posible replicar con exac- tituduna forma de onda si la frecuencia de muestreo Fs es como mínimo el doble de la frecuencia de la mayor componente espectral de la señal analógica a muestrear, de forma que se evita la apariencia de las muestras ambiguas y repetidas originadas por el fenómeno de aliasing [20]. En este sentido un convertidor analógico a digital es un dispositivo capaz de convertir señales analógicas de voltaje en una señal digital con valores binarios. La señal de entrada como se muestra en la figura 2.1 se somete a un muestreo a una Capítulo II. Marco conceptual 11 velocidad fija, para un convertidor de 16 bits se tendrán salidas dentro de un rango de 32768 a -32767. 2.1.3. Aritmética de procesadores Los DSP son dispositivos que han sido especialmente diseñados para tratar se- ñales en formato digital para el procesamiento de algoritmos complejos que re- quieren muchos cómputos. Entre las características fundamentales de los DSP se encuentra el tipo de formato aritmético utilizado por el procesador para tratar y almacenar los datos, por lo que existe una estrecha relación entre el formato nu- mérico y el número de bits, este es un factor que deben considerar los diseñadores de estos sistemas para determinar cuál es el procesador idóneo para una aplicación dada. Estos procesadores pueden ser divididos en dos categorías, de punto fijo y punto flotante, y esta clasificación se refiere a la forma en que los datos son tratados y almacenados. 2.1.3.1. Notación de punto fijo y flotante Los procesadores de punto flotante suele tener un mínimo de 32 bits para al- macenar los datos dando lugar a una cantidad de 232 = 4, 294, 967, 296 bits lo que representa un amplio rango dinámico. Una característica clave de la notación de punto flotante es que los datos no están espaciados uniformemente de tal mane- ra que la diferencia entre dos números es de unos diez millones de veces menor que el valor de los números. Esto es importante porque pone grandes espacios en- tre números grades, pero pequeños espacios entre números pequeños. El estándar (ANSI/IEEE Std.754-1985) determina el tamaño máximo de ±3,4x1038 [13]. Por otro lado los de punto fijo, usan 16 bits de datos para almacenar una can- tidad de 216 = 655364 bits para representar un número. Pueden representarse de cuatro formas, entero sin signo, formato en que el número almacenado puede tomar cualquier valor entero de 0 a 65.535, entero con signo que utiliza el complemento a dos para incluir los números negativos, de -32.768 a 32.767, notación de fracción sin 12 Capítulo II. Marco conceptual signo, donde los 65536 niveles se distribuyen uniformemente entre 0 y 1 y por últi- mo, el formato de fracción con signo que permite a números negativos, igualmente espaciados entre -1 y 0.999. Los procesadores con este tipo de manejo de datos uti- lizan menos área de silicio que sus contra partes de punto flotante, permitiendo ofrecer procesadores más económicos y con menor consumo de potencia. Sin em- bargo, debido a su limitado rango dinámico y las reglas de la aritmética asociada, el diseñador deberá decidir si los datos de 16 bits serán interpretados como enteros o fracciones, aplicar el factor de escalamiento (si es requerido), y proteger los posibles desbordamientos en los registros. En la tabla 3.1 se precisan algunas cualidades de ambos procesadores: Tabla 2.1: Comparación entre aritmética de los procesadores [8] Punto fijo Punto flotante Arquitecturas muy rápidas Arquitecturas de velocidad media Bajo costo Costo medio Margen dinámico reducido y precisión media Alto margen dinámico y alta precisión Programación con técnicas de escaldo (desbordamiento) Programación sencilla Bajo consumo de potencia consumo de potencia medio 2.1.3.2. Aritmética de punto fijo La representación finita de un numero fraccionario se conoce como punto fijo y se refiere a un método de representación de números con una parte fraccionaria en una ALU que sólo maneja operaciones de enteros. En general un número en punto fijo es una interpretación en complemento a 2 y se representa en notación Qm.n, donde m bits se utilizan para representar en complemento a 2 la cantidad de bits de la porción entera y n bits para representar en complemento a 2 la porción de bits de la parte fraccionaria, siendo el número de total de bits N = m+n+1, el bit extra es usado para almacenar, en la posición más significativa, el signo del número [8]. La representación de un entero de N-bit de punto fijo en complemento a 2, tiene la forma: Capítulo II. Marco conceptual 13 Figura 2.2: Formato de registro en complemento a 2. Cada palabra 1 tiene el mismo número de dígitos y el punto binario esta siempre fijo en la misma posición, El rango dinámico de un procesador se refiere al intervalo del tamaño de registro que puede manejar, con un procesador de N-bits podemos representar enteros con signo con un rango dinámico entre: (−2N − 1) y (2N − 1) − 1 (2.1) Esta notación presenta dificultad debido a la posibilidad de desbordamiento, por ejemplo en un procesador que utilice formato Q.15 (m=1 y n=15), el rango diná- mico es de -32768 y 32767, por lo que una operación de multiplicación por ejemplo que genere como resultado un número entero fuera de este intervalo representa un desbordamiento. Para esto se debe normalizar el número a alguna representación fraccionaria por ejemplo, entre ±1. Figura 2.3: Formato de registro en punto fijo. Como se describe en la figura 2.3, un número de punto fijo se define por su alcance y resolución, en lugar del número de bits. y el punto se encuentra fijo en la estructura de registro, el valor de n, en la expresión escala o normaliza los datos contenidos en el registro. 1Cuando se hace referencia a la palabra nos referimos en lenguaje computacional al dato o al nú- mero que almacenamos 14 Capítulo II. Marco conceptual 2.1.4. Procesamiento digital de señales en tiempo real Las aplicaciones DSP pueden manejarse en dos perspectivas dependiendo del propósito, fuera de línea o en tiempo real, la primeras implican que las señales manipuladas son previamente almacenadas en formato digital y el resultado no representa una acción actual en proceso. Por su parte las de tiempo real imponen exigencias rigurosas en hardware de DSP y en diseño de software para completar las tareas predefinidas en un plazo determinado. Para poder llevar a cabo aplicaciones en tiempo real, la mayor limitación a considerar es el ancho de banda del sistema, ya que esta determina la razón máxima a la cual una señal analógica puede ser muestreada. Por lo tanto, un sistema de DSP en tiempo real, como los que serán diseñados en este laboratorio, demanda que el tiempo de procesamiento de la señal, tp, deba ser menor que el periodo de muestreo, T , para completar el procesamiento antes de que un nueva muestra ingrese al sistema [1] lo que representa que: tp + to < T Donde to es un tiempo de cabecera que se considera por las operaciones I/O. Esta restricción limita la más alta frecuencia de la señal que puede ser procesada por el sistema DSP. Este límite de ancho de banda en tiempo real es dado como: fM 6 fs 2 < 1 2(tp + to) De la ecuación presentada es claro que para el tiempo de procesamiento tp más largo, tendremos el más corto ancho de banda que puede ser manejado por el siste- ma. El ancho de banda en tiempo real puede ser aumentado si se reduce el tiempo en operaciones I/O esto se puede conseguir usando métodos de procesamiento por bloques. Capítulo II. Marco conceptual 15 Figura 2.4: Procesamiento en tiempo real [1]. De este principio resulta que en el procesamiento de señal digital en tiempo real, las señales de entrada se puedan procesar sin generar interrupción o espera significativa durante el mismo, En la figura 2.4 se muestra como este tiempo debe estar delimitado, de tal manera que exista un margen temporal para la adquisión de la nueva muestra (tiempo de espera), de allí que el tiempo de procesamiento medio por muestrano es mayor que el periodo de muestreo. 2.1.4.1. Elementos Básicos de un sistema DSP en tiempo real Los bloques que describen la funcionalidad de los sistemas DSP son ilustrados en la figura 2.5, donde una señal analógica es convertida a digital, procesada por un hardware DSP de forma digital y convertida nuevamente en analógica, para algunas aplicaciones las entradas pueden encontrarse previamente en formato digital por ejemplo si son de alguna clase de información o incluso podrían ser generadas estas entradas por el propio procesador. Figura 2.5: Elementos básicos de los sistemas DSP en tiempo real [1]. 16 Capítulo II. Marco conceptual 2.2. Serie de procesadores digitales TMS320C55x El TMS320 es un nombre general para una serie de procesadores de señales digitales de Texas Instruments (TI). Los procesadores están disponibles en muchas variantes diferentes, algunas con aritmética de punto fijo y algunas con aritmética de punto flotante. La presente serie TMS320C5x de procesadores hace con su nombre referencia a: 1. TMS: Dispositivo calificado. 2. C: Tecnología de construcción CMOS, ROM como memoria volátil sobre el chip. 3. 5: Generación. 4. X: Numero de versión. Tabla 2.2: Tipos de datos soportados por el TMS320C5535 [9] Tipo de datos Tamaño Representación Rango Char 16-bit ASCII [−32768, 32767] Unsigned char 16-bit ASCII [0, 65535] Short 16-bit Complemento a 2 [−32768, 32767] Unsigned short 16-bit Binaria [0, 65535] Int 16-bit Complemento a 2 [−32768, 32767] Unsigned int 16-bit Binario [0, 65535] Long 32-bit Complemento a 2 [−2147483648, 2147483647] Unsigned long 32-bit Binario [0, 4294967295] Float 32-bit IEEE 32-bit [1,175494x10−38, 3,40282346x10−38] Double 32-bit IEEE 32-bit [1,175494x10−38, 3,40282346x10−38] Long double 32-bit IEEE 32-bit [1,175494x10−38, 3,40282346x10−38] Enum 16-bit Complemento a 2 [−32768, 32767] Data pointer 16-bit Memoria small [0x0, 0xFFFF] Data pointer 23-bit Memoria large [0x0, 0x7FFFFF] Program pointer 24-bit Función [0x0, 0xFFFFFF] Capítulo II. Marco conceptual 17 2.3. Diseño de sistemas de procesamiento digital de señales Para definir los requerimientos del sistema en el desarrollo de aplicaciones se deben considerar los aspectos teóricos del DSP tales como el análisis de señales, recursos y configuración de análisis. 2.3.1. Metodología de diseño para procesamiento digital de señales En lo que concierne a la generación de aplicaciones el sistema de diseño para DSP de Marven, C. y Ewers, G., mediante el módulo y el software integrado, pre- senta una solución basado en un diagrama de flujo que permite realizar el diseño de una aplicación de forma secuencial [2], el cual esta comprendido en las etapas siguientes Figura 2.6: Sistema de flujo de diseño DSP [2]. 18 Capítulo II. Marco conceptual 2.3.2. Selección de dispositivos DSP Seleccionar un procesador DSP de una gran variedad de dispositivos requiere el conocimiento acerca de las necesidades de procesamiento de los sistemas a diseñar por lo que la toma decisión se basa en la potencia computacional, resolución y costo; en DSP en tiempo real, la eficiencia (en cuanto el manejo y flujo de datos tanto dentro como hacia afuera del procesador) es una variable crítica por lo que deben tomarse para su selección los siguientes aspectos: Posibilidad de que los dispositivos presenten alto desarrollo computacional con compatibilidad de software. La medida de la velocidad de un procesador, es el tiempo de ciclo de ins- trucción, es el tiempo necesario para ejecutar la instrucción mas rápida del procesador El costo del DSP, es un parámetro asociado a las necesidades y volúmenes de aplicaciones en el, el precio varia en cuanto a las prestaciones como memoria y funcionalidad 2.4. Lenguaje de programación C para desarrollo de aplica- ciones DSP C ha sido distinguido por la eficiencia del código que produce no solo por la potencialidad de los comandos y estructuras de datos, sino también por su porta- bilidad para migrar entre plataformas y dispositivos DSP, por lo que es el lenguaje más popular para crear desarrollos de software, aplicaciones y para la programa- ción de microcontroladores de todo tipo. En este sentido, C es un lenguaje de medio nivel con muchas características de bajo nivel, como son las estructuras de control, sin embargo, también dispone de las típicas composiciones de los lenguajes de alto nivel permitiendo construir al- gortimos que mezclan lenguaje ensamblador. Cabe señalar que los compiladores Capítulo II. Marco conceptual 19 suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensambla- dor con código C o acceder directamente a memoria o a dispositivos periféricos. El compilador C traduce programas de alto nivel a lenguaje de máquina que pue- de ser ejecutado por procesadores como los pertenecientes a la serie TMS320C55x. Por otro lado, los ambientes de programación incluyen programas de depuración (debugger) para identificar errores en programas fuente. Cabe señalar que el propósito de la programación en DSP es manipular señales digitales para una aplicación específica de procesamiento. Para conseguir esto, los programas DSP deben ser capaces de: Organizar las variables, manejo de diferentes tipos de datos. Describir las acciones, operadores sobre bits y matemáticos. Controlar las operaciones, estructuras para el flujo del programa. Mover los datos de adentro y afuera entre el mundo exterior y el programa, manejo de periféricos I/O. 2.4.1. Funciones Todos los programas en C tienen una o más funciones incluyendo el main. En C las funciones o subrutinas están disponibles en las librerías. Estas funciones son un conjunto de sentencias que típicamente ejecutan una operación. Para mantener la simplicidad y la legibilidad en aplicaciones complicadas, se desarrollan programas que usen una única función main añadiendo otras adicionales, en vez de usar una sola función main muy larga. Se debe señalar que una función consiste en una definición de sentencia segui- da por el cuerpo de la función, por lo tanto la primera parte define el nombre y el tipo de valor que es devuelto por ella y una segunda dentro de un par de pa- réntesis contiene los argumentos, mientras que las llaves contienen las sentencias ejecutables. 20 Capítulo II. Marco conceptual 2.4.2. Punteros C posee un tipo de variable llamada puntero, un puntero es una variable que almacena una dirección de memoria de algún dato, estos son utilizados principal- mente para los siguientes propósitos: Apuntar a diferentes elementos de datos dentro de un arreglo (array). Permitir a un programa crear nuevas variables mientras el programa se está ejecutando (Posicionamiento dinámico de la memoria). Acceder a diferentes posiciones en una estructura de datos. Por lo tanto, para la manipulación adecuada de punteros se requiere del opera- dor de inderección (*) que es usado cuando es requerido el dato almacenado en la dirección al que apunta el puntero, y el operador de dirección (&) que se utiliza pa- ra apuntar a la dirección de una variable. La diferencia que existe entre un puntero y un arreglo es que el arreglo tiene una cantidad de memoria propia, mientras que el puntero no, este asigna la memoria de manera dinámica. 2.4.3. Archivos y operaciones I/O En DSP, las funciones para la interacción con el usuario no son utilizadas, sin embargo, con ciertas funciones podremos interactuar con el procesador y sus peri- féricos. Para usar el estándar de funciones (input/output) provista por el compilador C, debemos tener la directiva del procesador #include<stdio.h> que incluyen los ar- chivos de cabecera del estándar I/O para la declaración de funciones. Las funciones más usadas identifican los archivos para lectura o escritura usando puntero para al- macenar la dirección de la información requerida y para acceder al archivo. Capítulo II. Marco conceptual 21 2.4.4. Búfers circulares y lineales Los filtros de respuesta impulsivafinita son encontrados comúnmente en una gran cantidad de aplicaciones de procesamiento digital de señales, estos son imple- mentados basados en la siguiente ecuación: yn = N−1∑ i=0 xn−1 ∗ ai Donde ai es un coeficiente del filtro, xk es una muestra de los datos de entrada, k es el índice de control temporal y N el número de elementos del búfer. Como ve- mos en la ecuación anterior, para calcular cada salida yn, necesitamos mantener un búfer de los valores previos de la entrada junto con la muestra actual. Típicamente, un puntero es fijado al inicio del arreglo de muestras, que coincide con la muestra más antigua tomada, y luego ese puntero es manipulado para acceder a los valores consecutivos como se indica en la figura 2.7. Siempre que una nueva muestra ne- cesite ser añadida a la línea de retardo todos los valores deberán ser desplazados hacia abajo como se indica, o el valor más antiguo necesita ser sobrescrito como se indica en la figura. En este sentido La segunda técnica puede ser implementada usando modo circular para el acceso al puntero. Figura 2.7: Línea de retardo implementado con desplazamiento de muestras [3]. El direccionamiento circular usa la manipulación de punteros para añadir las nuevas muestras en la memoria o búfer sobrescribiendo las muestras más antiguas disponibles, por tanto, la reutilización de la memoria del búfer. Cuando el puntero llega a la última ubicación de la línea de retardo que necesita para volver de nuevo al principio de la línea, lo que amerita cierta cantidad de sobrecarga de software. 22 Capítulo II. Marco conceptual Cuando se usa direccionamiento circular, el puntero se ajusta automáticamente a la parte superior cada vez que se llega al final de la memoria del búfer. Como una consecuencia, las posiciones de memoria aparecen estar enlazadas de una mane- ra circular, de ahí el nombre de búfer circular. La mayoría de los procesadores de señales digitales implementan búfer circular en el hardware en para conservar la memoria y reducir al mínimo los gastos generales de software. Figura 2.8: Línea de retardo con manipulación de puntero usando direccionamien- to circular [3]. 2.5. Code Composer Studio Para el desarrollo de software DSP, Texas Instruments cuenta con Code Composer Studio (CCS) basado en Eclipse, este es un IDE, es decir un ambiente de desarro- llo integrado para incorporar herramientas de software, cuenta con un compilador que genera código optimizado del DSP en C, un ensamblador y un enlazador. Este entorno cuenta con capacidades gráficas y soporta depuración en tiempo real, lo que permite a los desarrolladores un manejo rápido y sencillo para moverse en to- das las fases del proceso de diseño de una aplicación, otorgándoles la capacidad de construir y depurar programas. El compilador C, compila código fuente con extension .c para producir un ar- chivo fuente en ensamblador con extension .asm, este se genera para producir un archivo objeto de lenguaje maquina con extension .obj. Capítulo II. Marco conceptual 23 Por otro lado el enlazador combina archivos y librerías objeto como entrada para producir un archivo de salida ejecutable con extension .out. Este tipo de for- mato de archivo de objeto común enlazado se conoce como (COFF) por sus siglas en ingles, siendo popular en los sistemas basados en Unix y es adoptado por varios fabricantes de tecnología DSP [10]. Este tipo de archivo puede cargarse y ejecutarse directamente sobre el procesador C55x. Code Composer Studio incluye los siguientes componentes: 1. Code Generation Tools: contiene los elementos principales de software necesa- rios para el desarrollo de aplicaciones bajo CCS (compilador, ensamblador, enlazadores, etc). 2. CCS Integrated Development Environment (IDE): este es el ambiente que inte- gra y maneja todos los componentes de CCS que permiten diseño, edición y depuración de la aplicación. 3. DSP/BIOS: son librerías de funciones que permiten la comunicación con la aplicación durante la corrida sobre los sistemas de hardware, el DSP/BIOS esta compuesto en dos secciones: DSP/BIOS Plug-Ins: Ofrece la posibilidad de análisis de aplicaciones con el mínimo impacto sobre desarrollos en tiempo real. DSP/BIOS API (Application Interface): Provee los componentes de soft- ware que son llamados a través de la aplicaciones fuentes. En cuanto al análisis en tiempo real, se puede llevar a cabo utilizando el inter- cambio de datos en tiempo real (RTDX), esta asociado con el DSP/BIOS y permite el intercambio de datos entre el computador y la tarjeta sin detener la operatividad de la tarjeta, pudiendo monitorear estadísticas y rendimiento en tiempo real. A tra- vés del grupo de acción conjunta de sus siglas en ingles (JTAG) se lleva a cabo la comunicación con el soporte de emulación en el chip para controlar y supervisar la ejecución del programa. 24 Capítulo II. Marco conceptual 2.5.1. Emulador XDS100 JTAG La emulación es una característica en la que el software de depuración CCS per- mite al usuario determinar si se establece o no una conexión de depuración. Esta característica aumenta la estabilidad del ambiente de desarrollo al permitir que la tarjeta aun estando desconectada CCS asuma que está depurando. Esta descone- xión puede producirse porque el dispositivo se está depurando en un estado no válido, la conexión se ha roto físicamente. Sin conexión, CCS podría esperar una respuesta indefinidamente, por lo que éste le indica al usuario que la tarjeta se des- conecta, preservando el medio ambiente de trabajo de los usuarios. El termino JTAG es un acrónimo para (Joint Test Action Group), que en español se puede entender como; grupo de acción de prueba conjunta. El objetivo era idear un método de prueba de hardware a nivel de circuito en un esfuerzo por eliminar el lento y costoso procedimiento de pruebas y construcción. Sus esfuerzos resultaron en una especificación publicada por la IEEE 1149.1 [21]. Diseñado originalmente para circuitos impresos, actualmente es utilizado para la prueba de submódulos de circuitos integrados, y es útil también como mecanis- mo de depuración de aplicaciones embebidas, puesto que provee una puerta hacia dentro del sistema. Cuando se utiliza como herramienta de depuración, un emu- lador en circuito usa JTAG como mecanismo de transporte, lo que le permite al programador acceder al módulo de depuración que se encuentra integrado dentro del CPU. Asi mismo, el módulo de depuración permite al programador corregir sus errores de código y lógica de sus sistemas. Cabe señalar que como el JTAG proporciona una sola línea de datos, el protocolo es necesariamente serial, como el Serial Peripheral Interface. Por lo tanto la entrada de la señal de reloj es por el pin TCK. Mientras que la configuración del dispositivo se realiza manipulando una máquina de estados de un bit empleando el pin TMS. Así mismo la frecuencia de trabajo de la señal de reloj del pin TCK varía en función de cada procesador, típicamente está en el rango de 10-100 MHz (10-100 ns/bit). Capítulo II. Marco conceptual 25 2.5.2. Librería DSPLIB La DSP Library (DSPLIB) es una colección de módulos de función para DSP op- timizado de alto nivel para la plataforma de la serie C55x. Esta libreria de código fuente incluye funciones llamadas en C (lenguaje ANSI-C compatible) para funcio- nes matemáticas y vectoriales para procesamiento de señales [10]. Las funciones DSPLIB suelen operar sobre operandos vectoriales para una ma- yor eficiencia. Aunque estas rutinas pueden ser usadas para procesar pequeños arreglos o escalares (a menos que se tenga un requisito mínimo), los tiempos de ejecución serán más largos en los siguientes casos: Vector paso, es siempre igual 1: operadores vectoriales se componen de ele- mentos vectoriales en posiciones de memoria consecutivas. Elementos complejos se asumen que se almacenan en un formato Re-Im. El cómputo en la posición del código (a menos que se especifique), la fuenteoperando puede ser igual al destino del operando para conservar la memoria. Las rutinas incluidas en esta librería son organizadas en 8 diferentes categorías: Trasformada rápida de Fourier (FFT) Filtrado y convolución Filtrado adaptativo Correlación Math (Operaciones matemáticas) Trigonometría Misceláneos Matrices 26 Capítulo II. Marco conceptual Las funciones que contiene la librería serán utilizadas en diferentes aplicacio- nes, las cuales usan formato Q.15 para representar los datos aritméticos. La guía de programación cuenta con una convención para describir los argumentos para cada función individual: Tabla 2.3: Convención de argumentos para funciones DSPLIB [10] Argumento Descripción x,y referidos a vectores de entrada r Refiere a un vector de salida nx,ny,nr Referencia al tamaño de los vectores x,y y r h Refiere a un vector de coeficientes (en filtros) nh Referencia al tamaño del vector h DATA Puntero a una variable short de 16 bits, valor representado en formato Q15 LDATA Puntero a una variable long de 32 bits, valor representado en formato Q31 ushort Equivale a un unsigned short 16 bits Los últimos tres argumentos que se representan en la tabla 2.3 son tipos de datos que pueden ser usados directamente, ya que están definidos en la cabecera dsplib.h. El uso de esta nomenclatura y convención permite la portabilidad de los códigos a desarrollar en diferentes dispositivos. 2.6. Sistema Digitales 2.6.1. Sistemas Discretos Un sistema de tiempo discreto es un dispositivo o algoritmo diseñado para eje- cutar ciertas operaciones o transformaciones sobre cierta señal de entrada, o ex- citación x[n] y obtener cierta señal de salida o respuesta y[n] [6]. Entre algunas cualidades se tiene que: Un sistema será lineal si satisface con el principio de superposición para dos diferentes entradas. Si la propiedad anterior se satisface, sugiere que el sistema puede caracteri- zarse completamente por su respuesta al impulso unitario. Capítulo II. Marco conceptual 27 Un sistema será invariante en el tiempo si para todo k entero, una entrada x1[n] = x[n− k] produce una respuesta y1[n] = y[n− k]. Un sistema es estable si para toda entrada acotada, se produce una salida acotada. un sistema lineal e invariante en el tiempo es estable si su respuesta al impulso es absolutamente sumable. Un sistema es causal si su salida para cualquier n = n0 depende solamente de la entrada para n 6 n0 esto implica que si x1[n] = x2[n] para n 6 n0 entonces y1[n] = y2[n] para la misma condición, se puede decir que el sistema es no predictivo o anticipativo. 2.6.2. La transformada Z La transformada z relaciona los efectos de retardos de muestras en una ima- gen de dos dimensiones de la representación en frecuencia H(f) que se denomina el plano complejo z. Los polos en dicho plano representan los picos de resonan- cia o puntos que hacen que la respuesta en frecuencia se haga infinita y los ceros representan los puntos de amplitud nula de la respuesta en frecuencia. La transformada z de una secuencia es definida por: X(z) = ∞∑ n=−∞ x[k]z −n (2.2) Cuando z−n es reemplazada con e−(jωn) la transformada z se convierte en la transformada de Fourier. 2.6.3. Respuesta al impulso, de frecuencia y de fase de un sistema La respuesta al impulso es la reacción de un sistema a un impulso unitario que se envía a su entrada, esta respuesta caracteriza al sistema en el dominio temporal. Al trabajar en el dominio digital, dicha respuesta al impulso estará discretizada en el tiempo y por tanto definida por una serie de muestras o secuencia h[n]. 28 Capítulo II. Marco conceptual Por otro lado la transformada de Fourier de una respuesta al impulso de un sis- tema corresponde a su función de transferencia o su respuesta en frecuencia que caracteriza al sistema en el dominio de la frecuencia. Dicha caracterización se reali- za a través de su espectro de magnitud y de fase. 2.6.4. Suma de Convolución El comportamiento de un sistema discreto lineal invariante en el tiempo con se- ñal de entrada x[n] y la señal de salida y[n] se describe por la suma de convolución. La señal de h[n], que se supone conocido, es la respuesta del sistema a una entrada impulso unitario. La suma de convolución tiene una interpretación gráfica simple que involucra los siguientes 4 pasos: 1. la señal de entrada x[k] es invertida en el eje k para obtener x[−k]. 2. Desplazar x[−k] por n muestres a la derecha para obtener x[n − k] donde n permanece fija. 3. Multiplicar h[k] por x[n− k] para obtener los productos de estos para todo k. 4. Sumar todos los productos para obtener la salida y[n] para todo tiempo dis- creto n. y[n] = ∞∑ i=−∞h[k]x[n− k] (2.3) Capítulo II. Marco conceptual 29 2.6.5. Filtros Digitales En su definición más general, un filtro es un sistema que altera las características amplitud-frecuencia o fase-frecuencia de una manera especifica. Un filtro digital es un proceso computacional o algoritmo implementado en hardware y/o software me- diante el cual una señal digital (secuencia de muestras) previamente digitalizadas mediante convertidores analógicos a digitales o por secuencias de números alma- cenas en registros de un computador, es transformada en una segunda secuencia de muestras o señal digital de salida [4]. Los filtros tienen amplia utilización en todos los ámbitos del procesado de se- ñal y son una componente esencial en toda cadena de comunicación, constituyen la base del procesado de señal, que puede aplicarse a señales de todo tipo (soni- dos, imágenes, vídeo, vibraciones sísmicas, etc). En el dominio de las señales de audio, se define un filtro específicamente como un objeto que altera el espectro o el contenido frecuencial de una señal [22]. 2.6.5.1. Tipos de filtros Los filtros digitales utilizados con mayor frecuencia son los filtros pasa baja (Low Pass), pasa alta (High Pass), pasa banda (Band Pass) y los filtros de rechazo de banda (Notch). En la figura 2.9 se representan estos filtros mediante su respuesta en frecuencia, en la cual se muestra la atenuacion que presenta el filtro a determinada frecuencia. 30 Capítulo II. Marco conceptual Figura 2.9: Tipos de filtros [4] Los filtros paso bajo (LP) dejan pasar las frecuencias que están por debajo de una determinada frecuencia. Los filtros paso alto (HP) dejan pasar las frecuencias que están por encima de una determinada frecuencia. Estos dos tipos de filtros están definidos por su frecuencia de corte, que es la frecuencia a la cual la amplitud de la señal se reduce a 0.707 = 1√ 2 de su valor máximo, es decir, es atenuada 3 dB. Los filtros paso banda (BP) dejan pasar las frecuencias que están situadas en una determinada banda de frecuencia. Los filtros rechazo de banda (BR) dejan pasar todas las frecuencias excepto las que están situadas en una determinada banda de frecuencia, es decir, entre dos determinadas frecuencias f1 y f2. Estas frecuencias son aquellas en la que la amplitud se reduce 0.707 = 1√ 2 de su valor máximo, es decir es atenuada 3 dB. Capítulo II. Marco conceptual 31 Por su parte estos dos tipos de filtros están definidos por su frecuencia central y su ancho de banda, que sería la diferencia entre las frecuencias de corte inferior y superior. 2.6.5.2. El orden de un filtro El número de muestras pasadas a la actual que se utilizan en un filtro para generar una muestra de salida corresponde al orden del filtro. Un filtro de primer orden, por ejemplo, utiliza una sola muestra precedente. Mientras mayor sea el orden de un filtro (cuantos más retardos se utilicen en el sistema), el corte del filtro será más abrupto y el rizado 2 en las banda de paso y rechazo reducidas. 2.6.5.3. Filtros FIR e IIR Los filtros LTI (lineales e invariantes en el tiempo) pueden clasificarse de acuer- do a la longitud de su respuesta impulsiva h[n] como IIR, si esta tiene duración infinita o FIR, si su duración es finita, esta respuesta impulsiva caracteriza comple- tamente elfiltro [22], de manera tal que las señales de entrada y de salida están relacionadas por la suma de convolución, que para filtros IIR tiene la forma: y[n] = ∞∑ k=0 h[k]x[n− k] y para filtros FIR: y[n] = N−1∑ k=0 h[k]x[n− k] 2El rizado o (ripple) es la distorsión de la respuesta en frecuencia sobre la bandas de paso y rechazo, este depende del orden del filtro 32 Capítulo II. Marco conceptual Figura 2.10: Diagrama de bloques general, filtro FIR [4]. Se puede observar de la figura 2.10 que la suma de convolución es apropiada para la implementación de filtros FIR, pero no lo es para filtros IIR debido a que la respuesta impulsiva es infinita, es por ello que este tipo de filtros se implementen con ecuaciones de diferencia que permiten calcular las muestras de salida de forma recursiva, es decir la señal de salida del filtro se introduce a la entrada del mismo. y[n] = N∑ k=0 aky[n− k] + M∑ k=0 bkx[n− k] Figura 2.11: Diagrama de bloques general, filtro IIR[4]. La salida y[n] de la ecuación anterior es función de los valores actuales y pasa- dos de la entrada, y de valores pasados de la salida (de aquí el nombre recursivo) este método permite implementar filtros con respuesta más compleja y con menos datos. El filtro IIR es un sistema realimentado como se muestra en la figura 2.11, en cambio el filtro FIR la salida y[n] solo depende de valores previos de la entrada x[n]. Capítulo II. Marco conceptual 33 Los valores asociados a los coeficiente h[n] y ak,bk, son los objetivos del problema de diseño de filtros digitales. 2.6.5.4. Consideraciones de longitud de datos finita para filtros digitales Considerando que el hardware maneja estructuras de datos de longitud finita, es necesario representar los coeficientes del filtro utilizando un número finito de bits, y realizar las operaciones indicadas por las ecuaciones de diferencia utilizando aritmética de punto fijo. El uso de un número finito de bits degrada el desempeño del filtro. Por lo que se debe tener en cuenta estos efectos, y elegir el orden del filtro así como las variables de entrada y salida, y las operaciones aritméticas [1]. Las principales causas de la disminución del desempeño en los filtros digitales debido a la longitud finita de palabra son: La cuantización de las señales de entrada y salida. La cuantización de los coeficientes. Los errores aritméticos por redondeo. El desborde (overflow) de los registros. La degradación del desempeño depende de: La longitud de palabra y tipo de aritmética utilizada para efectuar los cálcu- los. El método adoptado para cuantificar las variables y los coeficientes del filtro a la longitud de palabra elegida. La estructura del filtro. 34 Capítulo II. Marco conceptual 2.6.5.5. Efectos basado en filtros digitales: Ecualización La ecualización es el efecto basado en filtros más utilizado en dispositivos de procesamiento de señal. Por definición un ecualizador es un control de ganancia de una banda de frecuencias sin afectar la ganancia en otro rango de frecuencias [23]. Un ecualizador es simplemente un conjunto de filtros pasa banda comunes, en la figura 2.12 se muestra un diagrama de bloques simple de un ecualizador de 3 bandas, cada uno con una frecuencia central fijada que no puede cambiarse, y el único control que se tiene disponible es la ganancia a cada banda, por lo que el uso primordial de los ecualizadores es el reforzar el sonido [23]. Figura 2.12: Diagrama de sistema de ecualización de 3 bandas. 2.7. Efectos de audio digital La reproducción de efectos de audio digital están basados en sistemas de proce- samiento, estos pueden ser en tiempo real para instrumentos musicales fabricados a partir de procesadores digitales de señales o por el contrario, el procesado no en tiempo real, este tratamiento se realiza con el computador en los programas de edición musicales, en el cual primero se graba un sonido que se almacena en un archivo en memoria, después se manipula éste convenientemente [24]. Para la generación de estos efectos en tiempo real, la señal de audio es procesa- da mediante los algoritmos apropiados lo suficientemente rápido para reproducir Capítulo II. Marco conceptual 35 el resultado sin retardo apreciable por el oyente. Por otro lado, la memoria requeri- da dependerá de la necesidad de la cantidad de muestras previas o posteriores de la entrada o salida. si para generar la señal de salida en el instante actual se necesita información relativa a muestras anteriores. Entre los términos y características de- tectables en los sistemas de audio digital se encuentra, el rango dinámico, el ancho de banda, el ruido, la conversión analógico a digital [1]. 2.7.1. Principios del mecanismo auditivo humano El sonido es una vibración dependiente del medio molecular en el que se en- cuentra un individuo, una de las principales características que ha de tener el soni- do para ser audible por el ser humano, es que su frecuencia se mantenga entre los 20 Hz y 22 KHz [5]. El oído humano es un mecanismo de registro muy sensible, que cuenta con una estructura que le da dirección a los sonidos del ambiente al aparato auditivo. El oído capta el sonido siguiendo el siguiente proceso: la oreja capta las ondas sonoras que se transmiten a través del conducto auditivo hasta el tímpano, el tím- pano es una membrana flexible que vibra cuando le llegan las ondas sonoras, esta vibración llega a la cadena de huesecillos que amplifican el sonido y lo transmite al oído interno. Finalmente las vibraciones agitan los dos líquidos que existen en la cóclea (perilinfa y endolinfa), deformando las células ciliadas existentes en el inte- rior. Estas células transforman las ondas sonoras en impulsos eléctricos que llegan al nervio auditivo y de este nervio a la corteza auditiva que es el órgano encargado de interpretar los sonidos [5]. La intensidad del sonido es expresada en una escala logarítmica, denominada decibelio SPL (Sound Power Level). En esta escala, 0 dB SPL es una onda de sonido de potencia 10−16 W/cm2, este representa el sonido más débil detectable por el oído humano. En la figura 2.13 se muestra la norma (ISO 226:2003) mediante las curvas de Fletcher y Munson para campo sonoro directo [24]. 36 Capítulo II. Marco conceptual Figura 2.13: Curvas de igual nivel sonoro expresada en dB [5]. En esta curva se describen los niveles sonoros que debe alcanzar una onda sinu- soidal de una determinada frecuencia, para producir la misma sensación auditiva que otro tono puro sinusoidal y un nivel de intensidad de sonido dado. La línea isofónica es la que representa puntos de igual fuerza sonora; la dependencia de la frecuencia esta dada por las características de transferencia del oído externo y el medio. También debe notarse que a medida que aumenta el nivel de presión sonora las curvas se hacen más planas, es decir, la dependencia de la frecuencia es menor a medida que aumenta la presión sonora. 2.7.1.1. Rango de frecuencias audibles El humano puede distinguir frecuencias entre 20Hz y 20KHz, pero esta sensi- bilidad aumenta para sonidos comprendidos entre 1KHz y 4KHz, por lo que un oyente puede detectar sonidos desde 0dB SPL a 3KHz, pero a 100Hz requieren de al menos 40dB SPL 2.13, por lo que humano puede discriminar entre dos tonos siempre que estos se diferencien en más de un 0.3% a 3Khz y en 3% para 100Hz. El oído humano esta habituado a escuchar una frecuencia fundamental más los armónicos de hecho la combinación de dos tonos 1KHz y 3KHz genera un sonido Capítulo II. Marco conceptual 37 agradable y natural, caso contrario si la composición se hace con un tono de 1kHz y otro de 3,1KHz. 2.7.2. Efectos basado en retardos Este tipo de efectos están basados en el uso de muestras y/o salidas pasadas para generar la salida en el momento actual. Por lo tanto es necesario por tanto el uso de memorias, es decir, búfers circulares o lineales para su implementación digital. Estos efectos son de un gran interés
Compartir