Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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 11.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1. Objetivos General . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.2. Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
II. Marco conceptual 72.1. Procesamiento digital de señales . . . . . . . . . . . . . . . . . . . . . 7
2.1.1. Procesadores digitales de señales . . . . . . . . . . . . . . . . . 92.1.2. Conversión analógica/digital y muestreo . . . . . . . . . . . . 102.1.3. Aritmética de procesadores . . . . . . . . . . . . . . . . . . . . 11
2.1.3.1. Notación de punto fijo y flotante . . . . . . . . . . . . 112.1.3.2. Aritmética de punto fijo . . . . . . . . . . . . . . . . . 12
2.1.4. Procesamiento digital de señales en tiempo real . . . . . . . . 142.1.4.1. Elementos Básicos de un sistema DSP en tiempo real 15
2.2. Serie de procesadores digitales TMS320C55x . . . . . . . . . . . . . . 162.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 172.3.2. Selección de dispositivos DSP . . . . . . . . . . . . . . . . . . . 18
2.4. Lenguaje de programación C para desarrollo de aplicaciones DSP . . 182.4.1. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.4.2. Punteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4.3. Archivos y operaciones I/O . . . . . . . . . . . . . . . . . . . . 202.4.4. Búfers circulares y lineales . . . . . . . . . . . . . . . . . . . . . 21
VII
VIII Índice general
2.5. Code Composer Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.5.1. Emulador XDS100 JTAG . . . . . . . . . . . . . . . . . . . . . . 242.5.2. Librería DSPLIB . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6. Sistema Digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.6.1. Sistemas Discretos . . . . . . . . . . . . . . . . . . . . . . . . . 262.6.2. La transformada Z . . . . . . . . . . . . . . . . . . . . . . . . . 272.6.3. Respuesta al impulso, de frecuencia y de fase de un sistema . 272.6.4. Suma de Convolución . . . . . . . . . . . . . . . . . . . . . . . 282.6.5. Filtros Digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.5.1. Tipos de filtros . . . . . . . . . . . . . . . . . . . . . . 292.6.5.2. El orden de un filtro . . . . . . . . . . . . . . . . . . . 312.6.5.3. Filtros FIR e IIR . . . . . . . . . . . . . . . . . . . . . 312.6.5.4. Consideraciones de longitud de datos finita para fil-
tros digitales . . . . . . . . . . . . . . . . . . . . . . . 332.6.5.5. Efectos basado en filtros digitales: Ecualización . . . 34
2.7. Efectos de audio digital . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.7.1. Principios del mecanismo auditivo humano . . . . . . . . . . 35
2.7.1.1. Rango de frecuencias audibles . . . . . . . . . . . . . 362.7.2. Efectos basado en retardos . . . . . . . . . . . . . . . . . . . . . 37
2.7.2.1. Eco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.7.2.2. Reverberación . . . . . . . . . . . . . . . . . . . . . . 38
2.7.3. Efectos en el dominio dinámico . . . . . . . . . . . . . . . . . . 392.7.3.1. Modulación: Ring modulator . . . . . . . . . . . . . . 402.7.3.2. Distorsión . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.8. Entorno de programación virtual . . . . . . . . . . . . . . . . . . . . . 412.8.1. E-learnning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.8.2. Virtual Programing Lab (VPL) . . . . . . . . . . . . . . . . . . 42
2.8.2.1. Arquitectura VPL . . . . . . . . . . . . . . . . . . . . 422.8.2.2. Topología de Red . . . . . . . . . . . . . . . . . . . . 43
2.9. Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
III.Procedimientos de la investigación 473.1. Revisión Teórica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.2. Alojamiento e instalación del VPL en el servidor . . . . . . . . . . . . 493.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 . . . . . . . . . . . 543.3.3. Estructuras para control de escritura y lectura I/O . . . . . . . 553.3.4. Convolución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.3.5. Sistemas discretos: Eco . . . . . . . . . . . . . . . . . . . . . . . 573.3.6. Sistemas Discretos: Reverberación . . . . . . . . . . . . . . . . 58
Índice general IX
3.3.7. Sistemas discretos: Distorsión . . . . . . . . . . . . . . . . . . . 593.3.7.1. Distorsión no lineal por saturación . . . . . . . . . . 593.3.7.2. Distorsión no lineal polinómica . . . . . . . . . . . . 60
3.3.8. Sistemas discretos: Modulación . . . . . . . . . . . . . . . . . . 603.3.9. Filtros digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.3.9.1. Metodología de diseño de filtros digitales . . . . . . 613.4. Elaboración de las prácticas y recursos del laboratorio PDS . . . . . . 63
IV. Análisis, interpretación y presentación de los resultados 674.1. Resultados de la revisión teórica de módulos, técnicas y soporte para
procesamiento digital de señales en tiempo real . . . . . . . . . . . . . 674.2. Alojamiento e instalación del servidor VPL para el laboratorio de PDS 704.3. Reconocimiento de algoritmos y programación para procesamiento
digital de señales en tiempo real sobre el modulo TMS320C5535 . . . 724.3.1. Plantilla de programación para C5505/C5535 . . . . . . . . . 724.3.2. Generación de señales sinusoidales . . . . . . . . . . . . . . . 73
4.3.2.1. Generación de tonos puros sinusoidales . . . . . . . 734.3.2.2. Generación de tonos musicales . . . . . . . . . . . . 744.3.2.3. Lectura y escritura de señales de voz . . . . . . . . . 764.3.2.4. Convolución . . . . . . . . . . . . . . . . . . . . . . . 77
4.3.3. Sistemas discretos . . . . . . . . . . . . . . . . . . . . . . . . . 804.3.3.1. Eco (Mediante ecuación de diferencias) . . . . . . . . 804.3.3.2. Eco (Mediante función FIR) . . . . . . . . . . . . . . 854.3.3.3. Reverberación . . . . . . . . . . . . . . . . . . . . . . 864.3.3.4. Distorsión no lineal por saturación . . . . . . . . . . 914.3.3.5. Distorsión no lineal polinómica cuadrática . . . . . . 944.3.3.6. Distorsión no lineal polinómica cúbica . . . . . . . . 994.3.3.7. Efectos de la distorsión polinómica en audio . . . . . 1044.3.3.8. Modulación . . . . . . . . . . . . . . . . . . . . . . . . 106
4.3.4. Filtros digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094.3.4.1. Filtro pasa bajas . . . . . . . . . . . . . . . . . . . . . 1104.3.4.2. Filtro pasa altas . . . . . . . . . . . . . . . . . . . . . 1124.3.4.3. Filtro pasa banda . . . . . . . . . . . . . . . . . . . . 1144.3.4.4. Filtro Notch . . . . . . . . . . . . . . . . . . . . . . . . 116
4.3.5. Efectos de filtros digitales: Ecualización . . . . . . . . . . . . . 1204.4. Recursos y prácticas del laboratorio de procesamiento digital de se-
ñales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264.4.1. Introducción al laboratorio de PDS en tiempo real . . . . . . . 1264.4.2. Iniciación a Code Composer Studio y a la serie DSK TMS320C55x 1274.4.3. Tutorial para el software de diseño de filtros digitales Iowa
Hills software for digital filters design . . . . . . . . . . . . . . . . 1274.4.4. Prácticas del laboratorio de PDS en Tiempo Real . . . . . . . . 128
X Índice general
4.4.4.1. Práctica 0 . . . . . . . . . . . . . . . . . . . . . . . . . 1284.4.4.2. Práctica 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1294.4.4.3. Práctica 2 . . . . . . . . . . . . . . . . . . . . . . . . . 1304.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 1335.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1335.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 softwarefor 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 . . . . . . . . . . 102.2. Formato de registro en complemento a 2. . . . . . . . . . . . . . . . . 132.3. Formato de registro en punto fijo. . . . . . . . . . . . . . . . . . . . . . 132.4. Procesamiento en tiempo real [1]. . . . . . . . . . . . . . . . . . . . . . 152.5. Elementos básicos de los sistemas DSP en tiempo real [1]. . . . . . . . 152.6. Sistema de flujo de diseño DSP [2]. . . . . . . . . . . . . . . . . . . . . 172.7. Línea de retardo implementado con desplazamiento de muestras [3]. 212.8. Línea de retardo con manipulación de puntero usando direcciona-
miento circular [3]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.9. Tipos de filtros [4] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.10. Diagrama de bloques general, filtro FIR [4]. . . . . . . . . . . . . . . . 322.11. Diagrama de bloques general, filtro IIR[4]. . . . . . . . . . . . . . . . . 322.12. Diagrama de sistema de ecualización de 3 bandas. . . . . . . . . . . . 342.13. Curvas de igual nivel sonoro expresada en dB [5]. . . . . . . . . . . . 362.14. Sistema de procesamiento digital de eco. . . . . . . . . . . . . . . . . . 382.15. Fenomeno de reverberación [6]. . . . . . . . . . . . . . . . . . . . . . . 392.16. Sistema de procesamiento digital de reverberación. . . . . . . . . . . 392.17. Sistema modulador en anillo. . . . . . . . . . . . . . . . . . . . . . . . 402.18. Tipos de Ejecución: Pasos de corrida de petición no interactiva. . . . 432.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]. . . . . . . . . . 684.2. Captura de comprobación de servidor de ejecución vpl. . . . . . . . . 704.3. Plantilla de programación . . . . . . . . . . . . . . . . . . . . . . . . . 724.4. Señal sinusoidal f = 500Hz en el dominio del tiempo. . . . . . . . . . 734.5. Señal sinusoidal f = 1000Hz en el dominio del tiempo. . . . . . . . . 734.6. Señal sinusoidal f = 500Hz en el dominio de la frecuencia. . . . . . . 744.7. Señal sinusoidal f = 1000Hz en el dominio de la frecuencia. . . . . . . 744.8. Generación notas musicales en escala anglosajona en el dominio de
la frecuencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754.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. . . . . . . . . . . . . . . . 764.11. Procesamiento de primer bloque de suma de convolución. . . . . . . 784.12. Division de bloques de procesamiento de tamaño fijo. . . . . . . . . . 794.13. Muestras de salida correctas y erroneas en procesamiento por bloques. 794.14. Diagrama de polos y ceros. k = 10 α = 0,7. . . . . . . . . . . . . . . . 814.15. Diagrama de polos y ceros. k = 5 α = 0,9. . . . . . . . . . . . . . . . . 814.16. Diagrama de polos y ceros. k = 20 α = 0,2. . . . . . . . . . . . . . . . 824.17. Diagrama de bode, magnitud y fase. k = 10 α = 0,7. . . . . . . . . . . 834.18. Diagrama de bode, magnitud y fase. k = 5 α = 0,9. . . . . . . . . . . . 834.19. Diagrama de bode, magnitud y fase. k = 20 α = 0,2. . . . . . . . . . . 844.20. Sistema que introduce eco en el dominio del tiempo usando pulso de
voz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844.21. Sistema que introduce eco con FIR en el dominio del tiempo usando
pulso de voz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854.22. Diagrama de polos y ceros. k = 10 α = 0,7. . . . . . . . . . . . . . . . 864.23. Diagrama de polos y ceros. k = 5 α = 0,9. . . . . . . . . . . . . . . . . 874.24. Diagrama de polos y ceros. k = 20 α = 0,2. . . . . . . . . . . . . . . . 874.25. Diagrama de bode, magnitud y fase. k = 10 α = 0,7. . . . . . . . . . . 884.26. Diagrama de bode, magnitud y fase. k = 5 α = 0,9. . . . . . . . . . . . 894.27. Diagrama de bode, magnitud y fase. k = 20 α = 0,2. . . . . . . . . . . 894.28. Respuesta del sistema que introduce reverberación en el dominio del
tiempo a un pulso de voz. . . . . . . . . . . . . . . . . . . . . . . . . . 904.29. Función de transferencia del sistema de distorsión no lineal por sa-
turación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924.30. Respuesta en frecuencia del sistema de distorsión por saturación, a
un tono puro de 500Hz de entrada. . . . . . . . . . . . . . . . . . . . . 924.31. Respuesta en frecuencia del sistema de distorsión por saturación, a
una pista de acordes de entrada. . . . . . . . . . . . . . . . . . . . . . 934.32. Función de transferencia distorsión polinómica cuadrática. . . . . . . 954.33. Respuesta en la frecuencia del sistema de distorsión cuadrática 4.3.,
a un tono puro de 500Hz de entrada. . . . . . . . . . . . . . . . . . . . 954.34. Función de transferencia distorsión polinómica cuadrática. . . . . . . 974.35. Respuesta en el tiempo del sistema de distorsión cuadrática ??, a un
tono puro de 500Hz de entrada . . . . . . . . . . . . . . . . . . . . . . 974.36. Respuesta en frecuencia del sistema de distorsión cuadrática 4.4, a
un tono puro de 500Hz de entrada. . . . . . . . . . . . . . . . . . . . . 984.37. Función de transferencia distorsión polinómica cúbica. . . . . . . . . 1004.38. Respuesta en el tiempo del sistema distorsión cúbica 4.6, a un tono
puro de 500Hz de entrada . . . . . . . . . . . . . . . . . . . . . . . . . 1004.39. Respuesta en frecuencia del sistema distorsión cúbica 4.6, a un tono
puro de 500Hz de entrada. . . . . . . . . . . . . . . . . . . . . . . . . . 1014.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 tonopuro de 500Hz de entrada . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.42. Respuesta en frecuencia del sistema de distorsión cúbica 4.7, a untono puro de 500Hz de entrada . . . . . . . . . . . . . . . . . . . . . . 103
4.43. Respuesta en el tiempo, de señal de entrada (pista de acordes). . . . . 1054.44. Respuesta en el tiempo del sistema de distorsión cuadrática 4.4, a
una pista de acordes de entrada. . . . . . . . . . . . . . . . . . . . . . 1054.45. Respuesta en el tiempo del sistema de distorsión cúbica 4.7, a una
pista de acordes de entrada . . . . . . . . . . . . . . . . . . . . . . . . 1054.46. Respuesta en el tiempo del sistema de modulación sobre tono sinu-
soidal de 500Hz y portadora 200Hz . . . . . . . . . . . . . . . . . . . . 1064.47. Respuesta en frecuencia del sistema de modulación sobre tono sinu-
soidal de 500Hz y portadora 200Hz . . . . . . . . . . . . . . . . . . . . 1074.48. Respuesta en frecuencia del sistema de modulación sobre pista de
acordes y portadora Fm: 1KHz . . . . . . . . . . . . . . . . . . . . . . 1084.49. Respuesta en frecuencia de señal de banda entre (200 -8000)Hz. . . . 1094.50. Respuesta en magnitud, filtro pasa bajas. . . . . . . . . . . . . . . . . 1104.51. Respuesta en frecuencia del filtro pasa bajas, a señal de banda . . . . 1104.52. Respuesta en frecuencia del filtro pasa altas, a señal de banda. . . . . 1124.53. Respuesta en frecuencia del filtro pasa alta, a señal de banda. . . . . . 1124.54. Respuesta en magnitud, filtro pasa banda. . . . . . . . . . . . . . . . . 1144.55. Respuesta en frecuencia del filtro pasa banda, a señal de banda. . . . 1144.56. Filtro Notch Fc = 6kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164.57. Respuesta en frecuencia del filtro Notch, a un señal sinusoidal pura
de 6kHz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.58. Respuesta en frecuencia de pista de acordes. . . . . . . . . . . . . . . 1174.59. Respuesta en frecuencia del filtro Notch, a pista de acordes. . . . . . . 1184.60. Ecualizador digital de tres bandas, para tono dual. . . . . . . . . . . . 1204.61. Respuesta en frecuencia de la señal dual (800Hz-4kHz) sin ecualización.1214.62. Respuesta en frecuencia del sistema de ecualización, a una señal dual
(800Hz-4kHz). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224.63. Ecualizador digital de tres bandas, para señal de banda (200Hz-8kHz). 1234.64. Respuesta en frecuencia de la señal de banda (200Hz-8kHz) sin ecua-
lización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234.65. Respuesta en frecuencia del sistema de ecualización, a una señal de
banda (200Hz-8kHz). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244.66. Sesión 1: Introducción al procesamiento digital de señales. . . . . . . 1264.67. Sesión 2: Iniciación a Code Composer Studio y a la serie DSK TMS320C55x.1274.68. Práctica 0: Programación en C para procesamiento digital de señales. 1294.69. Práctica 1: Generación de señales senoidales. . . . . . . . . . . . . . . 1294.70. Práctica 2: Procesamiento de sistemas discretos. . . . . . . . . . . . . 1304.71. Práctica 3: Diseño de filtros digitales. . . . . . . . . . . . . . . . . . . . 131
Indice de tablas
2.1. Comparación entre aritmética de los procesadores [8] . . . . . . . . . 122.2. Tipos de datos soportados por el TMS320C5535 [9] . . . . . . . . . . 162.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. . . . . . . . . . . . . . . . . . . 734.2. Espectro de potencias de notas musicales en escala anglosajona. . . . 754.3. Espectro de potencias de armónicos generados del sistema de distor-
sion por saturación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934.4. Espectro de potencias de armónicos generados del sistema de distor-
sión cuadrática 4.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.5. Espectro de potencias de armónicos generados del sistema de distor-
sión cuadrática 4.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.6. Espectro de potencias de armónicos generados del sistema distorsión
cúbica 4.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.7. Espectro de potencias de armónicos generados del sistema distorsión
cúbica 4.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.8. Espectro de potencias de bandas lateral, modulador en anillo . . . . . 1074.9. Espectro de potencias de señal de tono dual sin ecualización. . . . . . 1214.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 procesadores embebidos,
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-
titud una 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 flotanteArquitecturas muy rápidas Arquitecturas de velocidad media
Bajo costo Costo medioMargen 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 sencillaBajo 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 6fs
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 muestra no 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 RangoChar 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 impulsiva finita 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 fuente
operando 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ónx,y referidos a vectores de entradar Refiere a un vector de salida
nx,ny,nr Referencia al tamaño de los vectores x,y y rh 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 el filtro [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 para el procesamiento de audio digital,
a continuación se describen los más usados.
2.7.2.1. Eco
El eco es un fenómeno acústico que consiste en la persistencia del sonido, des-
pués de extinguirse la producción del mismo, los ecos se producen cuando un soni-
do se recibe a través de más de una trayectoria de propagación acústica [5]. En pro-
cesamiento de señales de audio digital, el efecto eco consiste simplemente en añadir
al audio original múltiples versiones retardadas y atenuadas de la misma señal de
entrada, imitando el eco original que se genera en la naturaleza. Para apreciar los
retardos como eco, el tiempo del retardo τ debe ser superior a 50 milisegundos [5].
τ < 50ms (2.4)
Por lo tanto, se debe señalar que este tiempo de retardo del eco (τ), es la diferen-
cia de tiempo entre el momento en que el oyente escucha el sonido directo y cuando
se escucha el reflejo (eco). Este tiempo de retardo depende de las distancias entre el
oyente, la fuente de sonido y la superficie reflectante, en consecuencia, a mayores
distancias se incrementa el tiempo de retardo. Una sola reflexión o eco de una señal
pueden ser implementadas por el siguiente filtro 2.14, en el que se suma a la señal
directa de una copia atenuada y el retraso de la misma:
38 Capítulo II. Marco conceptual
Figura 2.14: Sistema de procesamiento digital de eco.
Este es uno de los efectos más simples de los que usan retardos pero usado ade-
cuadamente pueden ampliar el sonido de un instrumento e incluso permite tocar
un sólo sobre uno mismo. La unidad de eco es también un elemento constructivo
básico para la elaboración de otros efectos más complejos como reverberación y
coros.
2.7.2.2. Reverberación
La reverberación es la persistencia del sonido después de la emisión por la fuen-
te sonora, es decir, este fenómeno complejo y natural, resulta de la interacción entre
la fuente sonora y el lugar en el que las ondas se propagan, por lo tanto es el re-
sultado consiste en una superposición de la emisión original y las reflexiones que
persisten por los diferentes choques en el recinto que llegan al emisor. En este sen-
tido, las reflexiones dependen de la geometría del recinto y lo que se encuentra
dentro de ésta, por lo que disminuyen con el tiempo y atenúan cada vez hasta que
se vuelven imperceptibles. La reverberación proporciona información para perci-
bir la naturaleza del entorno inmediato como materiales, y mejorar las condiciones
acusticas.
Se produce reverberación cuando las ondas reflejadas llegan al oyente antes de
la extinción de la onda directa, es decir, en un tiempo menor que el de persistencia
acústica del sonido. Este fenómeno es de suma importancia, ya que se produce en
cualquier recinto en el que se propaga una onda sonora, en la figura 2.15 se visualiza
esta descripción.
Capítulo II. Marco conceptual 39
Figura 2.15: Fenomeno de reverberación [6].
Una medida que es utilizada para caracterizar la reverberación de un recinto es
el denominado tiempo de reverberación . Técnicamente, es el tiempo que le toma
al nivel de presión del sonido o intensidad del mismo en decaer 60 dB de su va-
lor original. Tiempos de reverberación largos indican que la energía del sonido se
mantiene dentro de la habitación por mayor tiempo, antes de ser absorbida.
Figura 2.16: Sistema de procesamiento digital de reverberación.
2.7.3. Efectos en el dominio dinámico
Este grupo de efectos se basa en las variaciones que producirán en el volumen
o fuerza de la señal a tratar. Estas variaciones obedecerán lógicamente al fin per-
seguido por el efecto en cuestión, este procesameinto es no lineal y considera la
dinamica de la señal.
40 Capítulo II. Marco conceptual
2.7.3.1. Modulación: Ring modulator
Un modulador en anillo es un dispositivo que puede ser usado para crear soni-
dos curiosos e inusuales a partir de la salida de un instrumento. Toma dos señales,
cada una de una frecuencia especifica, las multiplica y produce una señal que con-
tiene la suma y la resta de esas frecuencias: fm + fx y fm − fx (bandas laterales).
Estas frecuencias serán típicamente no armónicas, de manera que el modulador en
anillo puede crear algunos sonidos muy disonantes. Por esta razón, la modulación
en anillo no es un efecto ampliamente extendido [24].
y[n] = x[n].m[n] (2.5)
En un modulador en anillo, se usa la modulación de amplitud, concretamente
de portadora suprimida, la cual se modela simplemente multiplicando dos señales
tal y como se muestra en la figura.
Figura 2.17: Sistema modulador en anillo.
2.7.3.2. Distorsión
Se entiende por distorsión en general, la modificación de un sonido original. De
acuerdo a esto, cualquier efecto de audio podría ser calificado como distorsión; for-
malmente la distorsión es el aquel efecto que modifica la amplitud de un sonido sin
el uso para ello de ninguna información temporal así que cada muestra puede ser
independientemente modificada, el tratamiento de la señal en el dominio dinámico
puede ser considerado como distorsión.
Capítulo II. Marco conceptual 41
La distorsión es usada normalmente para simular los efectos de un amplifica-
dor que está saturado y se emplea principalmente con guitarras [24]. Los procesos
no lineales se caracterizan por el hecho de que crean intencionalmente o no, com-
ponentes de frecuencias armónicas y no armónicas que no se encuentran presentes
en la señal original.
En este sentido los efectos overdrive y fuzz son aquellos generados mediante sis-
temas distorsionadores. Se emplean sobre todo en guitarras eléctricas, por medio
de amplificadores o por medio de pedales de efectos que aportan un sonido más ca-
racterístico, estos efectos modifican la forma de onda del sonido original a partir de
un determinado nivel de entrada, de manera menos pronunciada en overdrive don-
de se utilizan ganancias con recorte simétrico suave, y máxima en fuzz utilizando
con mayor frecuencia recorte asimétrico [24].
2.8. Entorno de programación virtual
2.8.1. E-learnning
Las herramientas de aprendizaje en la red cada vez son más populares, van
desde campus virtuales en universidades hasta recursos de apoyos en instituciones
financieras, una referencia de esta modalidad es el e-learning, que podría traducir-
se como aprendizaje electrónico, Rosenberg M. lo define como la utilización de las
tecnologías de Internet para ofrecer un conjunto de propuestas que permitan incre-
mentar el conocimiento y la practica [25].
Una definición un poco más amplia es la de Jolliffe, A., el sugiere que puede ser
descrito como la distribución y el acceso a colecciones coordinadas de materiales
de aprendizaje sobre un medio electrónico usando un servidor web para distribuir
los contenidos, un navegador web para acceder a ellos y los protocolos TCP/IP y
HTTP para mediar el intercambio de datos [26].
42 Capítulo II. Marco conceptual
Entre las cualidades de e-learning se destacan:
1. Uso de diferentes herramientas para consolidar y facilitar el aprendizaje de
algún concepto o proceso.
2. Acceso al recurso a distancia, en cualquier lugar o momento.
3. Creación de foros, para compartir ideas y solventar dudas.
2.8.2. Virtual Programing Lab (VPL)
Virtual programing lab, es una herramienta e-learning de software de código
abierto diseñada por Juan C. del Pino, que permite la gestión de practicas de pro-
gramación integrable a Moodle. Esta herramienta esta compuesta de un módulo
Moodle, un applet editor de código fuente y un dominio Linux, este permite la eje-
cución remota de programas en forma segura [15].
Entre las características más destacadas se tiene la posibilidad de editar código
fuente, ejecutar prácticas de forma interactiva desde el navegador, ejecutar pruebas
preliminares y analizar las prácticas así como la similitud entre ellas.
2.8.2.1. Arquitectura VPL
VPL se compone de tres elementos: un módulo de Moodle, un editor de código
basado en un navegador y un servidor cárcel. El editor de código es un applet de
Java que proporciona funciones básicas para editar, ejecutar, depurar y evaluar los
programas de código en un entorno de desarrollo de código simple. Para utilizar las
características completas de un navegador web con JavaScript y soporte se requiere
Java applets 1.5 [15].
El componente de la cárcel es el servidor a cargo de la compilación y ejecuta
el código presentado en un entorno seguro. Se ejecuta el comando chroot linux
para proporcionar una versión restringida del sistema de archivos host con algunas
limitaciones de sólo lectura.
Capítulo II. Marco conceptual 43
Para ejecutar o evaluar codigo fuente, se requiere una sumisión a tener al menos
un servidor cárcel. El servicio de la cárcel necesita una distribución linux compa-
tible, ya que el servidor de cárcel asiste a las solicitudes de ejecución interactivas
2.19 y no interactivas 2.18. Ahora bien la diferencia entre éstos, es que el segundo
tipo requiere que los datos de solicitud incluyen una clave, un servidor y un puer-
to de comunicación, que se utilizan para redirigir la datos de entrada/salida de
ejecución.
Figura 2.18: Tipos de Ejecución: Pasos de corrida de petición no interactiva.
Figura 2.19: Tipos de Ejecución: Pasos de corrida de petición de interactiva.
2.8.2.2. Topología de Red
En lo referente al módulo VPL, utiliza un doble proxy para comunicarse, es de-
cir, un lado con los clientes de Internet, para asistir a sus peticiones, y por otro lado
con los servidores de la cárcel, para realizar las tareas en ejecución asociados a esas
peticiones, lo que permite una variedad de topologías de red. En este sentido la
topología más simple se ejecuta el servidor la cárcel y el servidor de Moodle en
el mismo equipo sin embargo, a pesar de que tienen que comunicarse a través de
una intranet, esta solución pierde las ventajas de seguridad proporcionadas por el
aislamiento de los servidores en diferentes equipos. Por consiguiente en una topo-
logía más adecuada, se une el servidor Moodle con uno o más servidores de cárcel
separadas, los cuales que pueden estar en una red privada [15].
44 Capítulo II. Marco conceptual
Por otro lado la topología más potente, que mejora el gasto de recursos, es com-
partir varios servidores de cárcel entre varios servidores de Moodle. Esta configu-
ración puede adaptarse a la carga de trabajo al cambiar el número de servidores
de cárcel en uso por un servidor Moodle para atender de manera adecuada las va-
riaciones en los requerimientos de las tareas de ejecución. El inconveniente de esta
configuración es que los servidores de la cárcel deben estar en el dominio público
con el fin de ponerlos a disposición de todos los servidores del Moodle sin aumen-
tar la complejidad de la red [15].
El uso de múltiples cárceles no sólo sirve para la escalabilidad, apoyo y mejora
del rendimiento, sino que también proporciona tolerancia a fallas. Cuando una so-
licitud de ejecución es recibida por el módulo de VPL, toma la lista de servidores
disponibles cárcel y selecciona al azar uno que no está marcado como tener un an-
terior fallan en un rango específico de tiempo. Entonces VPL envía al servidor una
solicitud de disponibilidad; si la respuesta a esta solicitud es verdadera, la solicitud
de ejecución se asigna al servidor, de lo contrario se selecciona un nuevo servidor.
Si no se encuentra ningún servidor, se repite el proceso teniendo en cuenta los ser-
vidores fallaron anteriormente [15].
Capítulo II. Marco conceptual 45
2.9. Glosario
dB SPL: El decibelio del nivel de presión sonora (dB SPL) toma como refe-
rencia el menor nivel de presión sonora que el oído humano medio puede
detectar. El menor sonido audible para el ser humano es típicamente 0 dB
SPL (umbral de audición). En la práctica, dB a menudo significa dB SPL [24].
Moodle: Es una aplicación web de tipo ambiente educativo virtual, un sistema
de gestión de cursos, de distribución libre, que ayuda a los educadores a crear
comunidades de aprendizaje en línea [26].
Búfer: Un búfer (del inglés, buffer) es un espacio de memoria, en el que se
almacenan datos de manera temporal su principal uso es evitar que el pro-
grama o el recurso de hardware o software, quede sin datos necesarios para el
proceso [24].
XMLRPC: Es una especificación y un conjunto de implementaciones que per-
miten ejecutar software en sistemas operativos dispares, corriendo en dife-
rentes entornos para hacer llamadas de procedimiento a través de Internet.
Este procedimiento de comunicación remota se lleva acabo usando HTTP co-
mo el transporte y XML como la codificación. XML-RPC está diseñado para
ser tan simple como sea posible, al tiempo que permite transferir estructuras
de datos complejas, procesarlas y devolverlas [27].
Distorsión: Es la modificación de la señal, cuando una señal es procesada
por un sistema no lineal, algunos componentes de frecuencia aparecen que
no son parte de la señal original, estos se llaman productos de distorsión.
algunos instrumentos musicales como la guitarra eléctrica se aprovechan de
distorsiones para ampliar y variar su timbre. Esto modifica el color del sonido
mediante la introducción no lineal de productos de distorsión de la señal de
entrada, efectos relacionados son Overdrive, Fuzz, Blender, Screamer [3].
Espectro: El contenido de frecuencia de un sonido o señal de audio, puede
tener una representación gráfica de la amplitud (o nivel de intensidad) en
46 Capítulo II. Marco conceptual
contra de la frecuencia. El espectro de un sonido es un determinante principal
del timbre percibido [6].
UART: Este sistema de trasmisión y recepción asíncrono, toma bytes de in-
formación y transmite bits individualmente en una secuencia ordenada, en
el destino una segunda unidad reemsambla los bits para completar el byte,
cada unidad UART contiene un registro de desplazamiento que cuenta con el
método que puede ser en serie o en paralelo, empleando trasmisión serial por
un simple cable o por varios respectivamente [18].
SPI: Es un puerto estandarizado que soporta comunicación con una variedad
de diferentes periféricos como convertidores ADC, transmisores y receptores,
registros de desplazamiento, microcontraldores y datos de LCDs [18].
Capítulo III
Procedimientos de la investigación
En este capítulo se establecen los métodos y las técnicas para desarrollar la im-
plementación del laboratorio de DSP mediante el módulo TMS320C5535, llevándo-
se a cabo el proyecto en 4 fases.
3.1. Revisión Teórica
Durante esta fase se realizaron las siguientes actividades con la finalidad de
recolectar toda la información posible para conocer diferentes esquemas de labora-
torios que usaran sistemas embebidos para el procesamiento digital de señales. De
esta manera crear el soporte de los contenidos como recursos y algoritmos más ajus-
tables para aplicaciones en tiempo real, así como la selección de las herramientas
de programación y del hardware a utilizar.
1. Se revisaron bibliográficas especializados en procesamiento digital de señales,
destacando las referencias para DSP en tiempo real [1], tratamiento digital de
señales [20] [22], programación en C para DSP [28], la referencia de programa-
ción de la serie TMS320C55x [29] de Texas Instruments, de estas se recolectaron
las técnicas aprovechables en el laboratorio con el uso del hardware.
47
48 Capítulo III. Procedimientos de la investigación
2. Se valoraron los dos lenguajes de programación que soporta el hardware DSP,
C y ensamblador, para esto se contrastaron las cualidades que Steven Smith
considera relevantes para la correcta selección basado en las aplicaciones a
desarrollar [13]
Complejidad del programa de la aplicación.
Velocidad de respuesta del programa en el DSP.
Cantidad de desarrollo sobre el mismo hardware DSP.
Contraste entre costo del producto y costo del desarrollo para la aplica-
ción.
Soporte del programador y experiencia.
3. Así mismo, se llevó a cabo un estudio comparativo de cualidades y prestacio-
nes de módulos DSP de la serie de procesadores de bajo costo TMS320C55x
de la empresa Texas Instruments para los propósitos del laboratorio de pro-
cesamiento digital de señales. Para elegir un DSP se considero los requisitos
de procesado del sistema. Después se fijo en la potencia de cálculo y el cos-
to. También se tuvo en cuenta que el DSP tuviese un número suficiente de
herramientas de desarrollo, ademas de los requerimientos básicos siguientes:
documentación de diseño detallada, herramientas de desarrollo de código en
ensamblador o C, herramientas para el test de la funcionalidad de diseño y
notas de aplicación.
Capítulo III. Procedimientos de la investigación 49
Tabla 3.1: Comparación paramétrica de productors de la serie C55x DSP.
Parámetros TMS320C5535 TMS320C5532 TMS320C5515 TMS320C5505Aplicaciones Aplicaciones de consu-
mo de audio y voz, in-terfaz de sensores in-dustriales, equipo me-dico portable, biome-tria.
Aplicaciones de consu-mo de audio y voz, in-terfaz de sensores in-dustriales, equipo me-dico portable, biome-tria.
Comunicaciones e in-dustias de telecomuni-caciones y medica
Comunicaciones e in-dustrias de telecomuni-cacionesy medica
Sistema operativo DSP/BIOS VLX DSP/BIOS VLX DSP/BIOS VLX DSP/BIOS VLXDSP 1 C55x 1 C55x 1 C55x 1 C55xUSB 1 - 1 1SPI 1 1 1 1UART 1 1 1 1MIPS 240 - - 200DSP MHz (Max.) 50 a 100 50 a 100 100 a 120 100 a 150Rango de temperarurade operacion en Cº
-10 a 85 -10 a 85 -10 a 85 -10 a 85
Hardware acelerador Coprocesador de FFT - - Coprocesador de FFTCosto 99(USD) 79(USD) 90(USD) 49(USD)
4. Luego de esto, se examinaron laboratorios para procesamiento digital de se-
ñales que contaron con modalidades virtuales, evaluando de cada uno de es-
tos, las limitaciones respectivas y se contrastó con las prestaciones de plata-
forma a implementar.
3.2. Alojamiento e instalación del VPL en el servidor
Esta fase consta del alojamiento e instalación del plug-in VPL, se alojó la arqui-
tectura de red de la plataforma en un par de servidores del Instituto de Matemática
y Calculo Aplicado (IMYCA) de la Universidad de Carabobo. Así mismo, se debe
señalar que esta institución presto el soporte y el recurso computacional para su
instalación, ya que ésta se encargará de la futura gestión de los servidores y las
solicitudes de los administradores del laboratorio de programación.
1. Se evaluó los requisitos del host para el servidor y las arquitecturas la red
requerida para plataforma, este equipo se añadió al bastidor del IMYCA.
2. Posterior a ésto, se creó el servidor de ejecución cárcel bajo un domino de soft-
ware libre UNIX Ubuntu 14.04 que lleva por nombre draco.ing.uc.edu.ve
50 Capítulo III. Procedimientos de la investigación
y se configuró el fichero interfaces a nivel de usuario administrador o de con-
figuraciones globales, obteniendo los siguientes cambios en el fichero corres-
pondiente:
nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 190.170.97.209
netmask 255.255.255.192
network 190.170.97.0
broadcast 190.170.97.255
gateway 190.170.97.1
/etc/initd/networking restart
Para efectos de conexión de la red dentro de la Universidad de Carabobo se
estableció la dirección de proxy, una vez configurado correctamente la cone-
xión de red, se instaló el servicio OpenSSH conjunto con estos paquetes me-
diante la directiva apt-get.
apt-get install emacs24
apt-get install ntp
apt-get install php5-xmlrpc
3. Luego se descargó el paquete VPL desde el sitio web de la plataforma, donde
se incluyen el plug-in de Moodle y el sistema cárcel.
wget http://vpl.dis.ulpgc.es/releases/vpl_jail_system-2.0.1.tar.gz
tar -xvf vpl_jail_system-latest.tar.gz
cd vpl_jail_system
sudo ./install-vpl-sh
Cabe señalar que en este punto de la instalación se siguieron las instrucciones
y se esperó por las descargas necesarias, esto incluye los scripts para los soft-
wares de interpretación de los lenguajes por defecto, no obstante se pueden
instalar de forma manual otros interpretes. Posterior a ésto, al aparecer la si-
guiente petición al usuario, se seleccionó no for wildcard certificates y se detuvo
el servicio con el siguiente comando:
Capítulo III. Procedimientos de la investigación 51
sudo service vpl-jail-system stop
4. Consecutivamente, se configuró el servidor cárcel sobre el fichero en la locali-
zación /etc/vpl/vpl-jail-system.conf donde se ajustó el URLPATH que
se utilizará como enlace o clave en las conexiones con el servidor de ejecución.
URLPAT Represents the PATH expected in execution requests.
It acts as a password, if the URLPATH
in the execution request does not match, the request is rejected. By default "/"
URLPATH:/carcel
Luego, tras estas configuraciones se reinició el servicio
sudo service vpl-jail-system start
5. Al culminar la instalación se puede obtener un registro detallado del servicio
al iniciar en modo de depuración con el comando service vpl-jail-system
start -d 8, el cual guarda los registros en el fichero /var/log/syslog. Este
nos muestra la correcta configuración del servicio, al igual se pudo compro-
bar la disponibilidad del servidor de ejecución utilizando la dirección /OK al
final de la dirección del servidor.
6. El servicio requiere una configuración de Firewall que represente una alta se-
guridad ante la sensible información dispuesta en el equipo [15]. Este pará-
metro acepta valores numéricos de 0 a 4, los cuales representan el nivel de
protección:
0: No Firewall.
1: Permitir sólo las solicitudes entrantes al servicio de ejecución, las solici-
tudes de salida son ilimitadas.
2: Permitir sólo las solicitudes entrantes al servicio de ejecución, las soli-
citudes de salida se limitan a DNS y puertos 80/443, las solicitudes de
superusuario son ilimitadas.
3: Permitir sólo las solicitudes entrantes al servicio de ejecución, las peti-
ciones salientes están prohibidas, las solicitudes de superusuario son ili-
mitadas.
52 Capítulo III. Procedimientos de la investigación
4: Permitir sólo las solicitudes entrantes al servicio de ejecución, están prohi-
bidas las solicitudes de salida.
Por lo tanto, para este trabajo se ha seleccionado un nivel de Firewall numero
4, debido a que por tener un dominio de carácter universitario e institucional
podría poner en riesgo información de otros servidores de la facultad.
7. Para utilizar las características de evaluación automática de programas de
VPL debe rellenar el fichero vpl.evaluate.cases. Este fichero tiene el si-
guiente formato:
a) case: Es la descripción del caso, establece el inicio de un caso de prueba.
b) input: Contiene el texto de entrada, el cual puede ocupar varias líneas y
finaliza cuando se introduce otra instrucción.
c) output: Contiene el texto de salida, puede ocupar varias líneas y finaliza
con otra instrucción. Así mismo, se debe señalar que un caso de prueba.
Un caso de prueba puede tener varias salidas válidas, existen tres tipos
de salidas: sólo números, texto y texto exacto.
d) grade: valorporcentaje Por defecto cuando se produce un error, se descuenta
de la nota máxima rangonotanúmerodecasos , pero con esta instrucción se puede
cambiar el descuento por otro valor o porcentaje.
8. Posteriormente, se establecieron los ficheros necesarios para preparar la ejecu-
ción, depuración o evaluación de una entrega. Esto incluye ficheros de script,
ficheros de pruebas de programas y ficheros de datos. No obstante, se puede
añadir un nuevo fichero escribiendo su nombre en la caja Añadir fichero. los
ficheros que se añadan o se carguen pueden ser editados, excepto los fiche-
ros de script con extension sh como vpl.run (ejecución), vpl.debug (depura-
ción) y vpl.evaluate (evaluación), la ejecución de cualquiera de estos genera
un fichero denominado vpl.execution, el cual debe contener código binario
ejecutable. Se debe señalar que la no generación de este fichero imposibilita
ejecutar la acción seleccionada.
9. Luego de ésto, se sometió a la herramienta VPL; una vez que este instalada, a
una serie de esquemas en C para la programación del módulo, y así describir
Capítulo III. Procedimientos de la investigación 53
el comportamiento de la plataforma frente a los cálculos, tiempo de compila-
ción, ejecución.
3.3. Reconocimiento del proceso de programación
Reconocer el proceso de programación inherente al modulo DSP incluyó el reco-
nocimiento de estructuras, librerías entre otros, así como el ambiento de desarrollo
integrado (CCS) para lograr sintetizar la composición de los algoritmos aplicables
en los contenidos del laboratorio de procesamiento digital de señales.
3.3.1. Soporte para la programación de los módulos DSP y del ambiente
integrado CCS
1. Se llevo a cabo la instalación y el soporte de CCS (antes de conectar el C5535
eZdsp), el DSK incluye un CD-ROM desde el cual se pudo instalar CCS, pre-
feriblemente debe instalarse usando el directorio por defecto. Una vez instala-
do el icono del IDE, debe estar localizado en el escritorio como Code Composer
Studio v4. En el equipo donde se hizo la instalación del ambiente de desarro-
llo, se debió conectar como usuario con derechos de administración y se tuvo
que deshabilitar cualquier antivirus antes de la misma.
2. Se creó una licencia de usuario. Después de iniciar CCS, el software instó a
crear una licencia de activación, donde se direccionó al website de Texas Ins-
truments para completarlo.
3. Luego, se diseñó una plantilla en un comprimido .zip que contiene librerías,
archivos .c y .h necesarios para la operatividad del hardware, entre ellos los
necesarios para el manejo del convertidor analógico digital, Así como para
la inicialización de los periféricos y el manejo de la librería DSPLIB. Dentro
de este comprimido también se adjunta un archivo de extension .text como
instructivo para el uso de la plantilla diseñada.
54 Capítulo III. Procedimientos de la investigación
4. Debemos considerar que los tipos de datos con signo usan representación en
complemento a 2, por lo tanto, es responsabilidad del programador definir
y utilizar los tipos de datos correctamente al escribir el programa, de manera
que estas aplicaciones puedan ser portadas de un procesador a otro por lo que
es importante que la conversión de los tipos de datos sea aplicada y ajustada
a la aritmética que maneja el procesador.
5. Se utilizó una secuencia de pasos para configuración del hardware en el soft-
ware CCS, con la finalidad de establecer de forma correcta los parámetros de
ajustes que posibilitan la exitosa construcción y compilación de los programas
a diseñar, en el Anexo E se hace referencia a estos procedimientos.
3.3.2. Generación de señales sinusoidales y tonos
Las señales en tiempo discreto pueden originarse de dos maneras, una tomando
muestras de una señal analógica y luego cuantificando, y la otra es acumulando una
variable a lo largo de un determinado período de tiempo.
En ambos casos, se genera una secuencia de números en función de la variable
independiente n (numero de muestras), el cual es el equivalente discreto del tiem-
po. Debido a su velocidad, capacidad de computo y flexibilidad , los DSP se utilizan
para construir sistemas que requieran de secuencias discretas que representan las
versiones obtenidos como muestras de señales continuas.
Es por ello, que habrá que prevenir un valor de la frecuencia de muestreo Fs
para que cumpla el teorema del muestreo, Dentro de la categoría funcional trigo-
nométrica de la referencia de programación [10], se describe la función sine de la
librería DSPLIB:
ushort oflag = sine (DATA *x, DATA *r, ushort nx)
Donde cada uno de estos parámetros representan:
x[nx] puntero al vector de entrada de tamaño nx, este contiene el angulo en
radianes entre (-π,π) normalizada entre (-1,1) en formato Q.15.
Capítulo III. Procedimientos de la investigación 55
r[nx] puntero al vector de salida, contiene el seno del vector x en formato
Q.15.
nx es el numero de elementos de los vectores de entrada y de salida, donde
nx > 4.
Esta función computa el seno de los elementos del vector x, usando una serie
de Taylor. Para esto toma el angulo de x en el primer cuadrante es decir 0 a π/2. El
angulo x en otro cuadrante es calculado usando simetrías que mapean el angulo x
al primer cuadrante.
sen(x) = c1 ∗ x+ c2 ∗ x2 + c3 ∗ x3 + c4 ∗ x4 + c5 ∗ x5 (3.1)
Siendo cada uno de los coeficientes: c1 = 3,140625, c2 = 0,02026367, c3 =
5,3251, c4 = 0,5446778, c5 = 1,800293
3.3.3. Estructuras para control de escritura y lectura I/O
Se llevó a cabo un estudio de los ficheros asociados al convertidor analógico
digital que permiten la escritura y lectura en los puertos de entrada y salida, estos
ficheros contienen las funciones que permiten el manejo y control de la secciones
de memoria dedicas para este propósito.
/* --------------------------------------------------------------------- aic3204_codec_read( ) ------------------------------------------------------------------------
*/
void aic3204_codec_read(Int16* left_input, Int16* right_input)
volatile Int16 dummy;
counter1 = 0;
/* Read Digital audio inputs */
while(!(I2S2_IR & RcvR) )
counter1++; // Wait for receive interrupt
56 Capítulo III. Procedimientos de la investigación
*left_input = I2S2_W0_MSW_R; //Read Most Significant Word of first channel
dummy = I2S2_W0_LSW_R; // Read Least Significant Word (ignore)
*right_input = I2S2_W1_MSW_R;// Read Most Significant Word of second channel
dummy = I2S2_W1_LSW_R; // Read Least Significant Word of second channel (ignore)
/* ---------------------------------------------------------------------
aic3204_codec_write( ) ------------------------------------------------------------------------
*/
void aic3204_codec_write(Int16 left_output, Int16 right_output)
counter2 = 0;
while( !(I2S2_IR & XmitR) )
counter2++; // Wait for transmit interrupt
I2S2_W0_MSW_W = left_output; // Left output
I2S2_W0_LSW_W = 0;
I2S2_W1_MSW_W = right_output; // Right output
I2S2_W1_LSW_W = 0;
La adquisición de la señal de voz, se llevó a cabo mediante el uso de un mi-
crófono y el módulo TMS320C5535. El hardware acondiciona y convierte la señal de
voz a un formato digital, para ésto se debe ajustar la ganancia del sistema a 30 dB.
Se elaboró un programa que usa el convertidor ADC a una tasa de muestreo de 48
KHz, se deben declarar adecuadamente las variables usadas para la función, estas
son del tipo entero y tienen una resolución de 16 bits.
3.3.4. Convolución
Dentro de la categoría funcional filtrado y convolución de la referencia de pro-
gramación [10], se describe la función colvol de la librería DSPLIB:
ushort oflag = convol (DATA *x, DATA *h, DATA *r, ushort nr, ushort nh)
Capítulo III. Procedimientos de la investigación 57
Donde cada uno de estos parámetros representan:
x[nr+nh− 1] puntero al vector de entrada de tamaño nr+nh− 1 elementos
reales.
h[nh] puntero al vector de entrada de nh elementos reales.
r[nx] puntero al vector de salida de nr elementos reales.
nr es el numero de elementos del vector r, para el computo r = x.
nh es el numero de elementos del vector h.
Esta función computa la convolución real de dos vectores x y h, y coloca el
resultado en el vector r. Entre las consideraciones de uso, se debe tomar en cuenta
que el vector de salida es más corto en longitud que el vector de entrada, por lo que
a lo sumo r, debe ser de tamaño igual a nx.
r[j] =
nh−1∑k=0
h[k]x[j− k] 0 6 j 6 nr (3.2)
3.3.5. Sistemas discretos: Eco
Para implementar este sistema, la unidad de retardo toma una señal de audio
y la reproduce de nuevo después del retardo k, escalada α y mezclada con la señal
actual. Esta cantidad de muestras retardadas representa el tiempo de retraso que
puede oscilar en el rango de 50 y 200 milisegundos, produciendo un efecto parecido
a un coro y hasta varios segundos, produciéndose una repetición del sonido de
forma separada a la reproducción del sonido original lo que es considerado como
un eco. Siendo la ecuación de diferencia que modela el sistema:
y[n] = x[n] + αx[n− k] (3.3)
Para determinar la respuesta en frecuencia de este sistema aplicamos la trans-
formada Z .
58 Capítulo III. Procedimientos de la investigación
Y(Z) = X(Z) + αX(Z)Z−k ⇒ H(Z) =Y(Z)
X(Z)= 1+ αZ−k (3.4)
En cuanto al procesado de la señal, se realizo mediante un búfer, siendo esta
una estructura muy eficiente para el manejo de efectos basados en retardos. Así, el
procesador manejará un puntero de lectura de la entrada y un puntero de escritura
que irá marcando la posición en la que se almacenará la muestra actual o la sali-
da actual según el modelo implementado y que servirá de partida para desde él,
retrasar el puntero de lectura las muestras correspondientes al tiempo de retardo
requerido en cada período de muestreo. Estos punteros se incrementarán en cada
período de muestreo.
3.3.6. Sistemas Discretos: Reverberación
Para implementar este sistema, la unidad de retardo toma la señal de salida del
sistema y la reproduce de nuevo después del retardo k, amortiguada α y mezclada
con la señal original. Esta cantidad de muestras retardadas representa el tiempo de
retraso, produciendo un efecto de permanencia del sonido continuamente y hasta
varios segundos, lo que es considerado como una reverberación, En cuanto a la
ganancia de realimentación se impone menor que 1 por diseño para garantizar la
estabilidad. Siendo la ecuación de diferencia que modela el sistema:
y[n] = x[n] + αy[n− k] (3.5)
Para determinar la respuesta en frecuencia de este sistema aplicamos la trans-
formada Z de la ecuación anterior.
Y(Z) = X(Z) + αY(Z)Z−k ⇒ H(Z) =Y(Z)
X(Z)=
1
1+ αZ−k(3.6)
En cuanto al procesado de la señal, se realizo al igual que para el efecto del eco
mediante un búfer. El procesador manejará un puntero de lectura de la entrada y
Capítulo III. Procedimientos de la investigación 59
un puntero de escritura que irá marcando la posición en la que se almacenará la
muestra actual o la salida actual según el modelo implementado. Estos punteros se
incrementarán en cada período de muestreo.
3.3.7. Sistemas discretos: Distorsión
El procesamiento en el dominio dinámico, generalmente se basa en sistemas del
tipo no lineal, en este trabajo se consideró implementar los efectos de distorsión no
lineal por saturación y distorsión polinómica, además de un sistema de modulación
en anillo, con la finalidad de ilustrar este tipo de procesamiento de sistemas.
3.3.7.1. Distorsión no lineal por saturación
la implementación en el procesador DSP para el sistema de distorsión es real-
mente sencilla, reduciéndose todo a una comparación con el nivel +umbral, y otra
con –umbral, si estos niveles no son alcanzados por la señal de entrada, la salida
corresponde a la misma señal de entrada escalada en función de a y no se opera
sobre ella. Así mismo, los parámetros a introducir para el diseño y para el control
del efecto son:
Umbral: Nivel de comparación.
Saturación: Cantidad de nivel prefijado de saturación que se añade.
a: Factor de escala en la zona lineal.
y(n) =
saturación si x(n) > +umbral
a ∗ x(n) si −umbral 6 x 6 +umbral
−saturación si x(n) < −umbral
(3.7)
60 Capítulo III. Procedimientos de la investigación
3.3.7.2. Distorsión no lineal polinómica
Otra forma de distorsión no lineal es la denominada polinómica. Este efecto
en el dominio dinámico, esta descrito por una señal de salida que obedece una
función polinómica, es decir que la magnitud de la salida crece hasta alcanzar su
valor máximo (-1 o 1), lo que quiere decir en punto fijo (-32767 a 32768). Este se
consigue con diferentes formas de onda; no obstante, para este trabajo, se reducirá a
una función de comportamiento cuadrático y cubico, por lo que el único parámetro
de control por parte del usuario son los coeficientes de esas curvas que altera la
excentricidad y forma de las mismas.
y(n) =
a3x
3 + a2 ∗ x2 + ax si x(n) > 0
−a3x3 + a2 ∗ x2 + ax si x(n) 6 0
(3.8)
La frontera entre cada uno de los efectos de distorsión no está predefinida en
ningún manual técnico, pero esta asociado a la estética del sonido que se busque
lograr con el efecto. Por ejemplo, el overdrive se define mayoritariamente como cáli-
do y suave, dado que introduce componentes armónicos en el espectro. En cambio,
el efecto fuzz introduce componentes inarmónicos y crea un efecto más duro y dis-
cordante.
3.3.8. Sistemas discretos: Modulación
Crear un modulador en anillo basado en un procesador digital es tan simple co-
mo realizar la multiplicación de la señal de audio original por una onda sinusoidal
con una frecuencia de portada en cada intervalo de muestreo. La señal portado-
ra deberá implementarse como una función o sub rutina, por lo tanto se parte del
diagrama de bloques descrito 2.17.
Así mismo, debe recordarse que la máxima frecuencia de la salida es la suma de
las componentes más altas de cada señal usada. Para este diseño se debe considerar
que el teorema de las mínimas muestras (Nysquist) establece que la frecuencia de
Capítulo III. Procedimientos de la investigación 61
muestreo debe ser al menos el doble de la componente de mayor frecuencia de la
señal procesada que se pretende reconstruir. Un buen valor para la frecuencia Fs es
el adoptado de 48 Khz.
3.3.9. Filtros digitales
El diseño de filtros en tiempo discreto sobre dispositivos DSP usan coeficien-
tes cuantizados para procesar señales cuantizadas. El diseño se llevo a cabo en C
usando la librería DSPLIB. Por lo tanto el objetivo de diseño de filtros FIR fue de-
terminar el conjunto de coeficientes que modelara el comportamiento más cercano
a las especificaciones del diseño. Debido a la complejidad matemática de la trans-
formada z, en esta investigación se adoptó una forma más intuitiva de abordar el
estudio de filtros digitales, usando la metodología que presenta (Roads, C. 2013)
[3]. En ella, se parte de los diagramas de bloques de los filtros y se estudia casos
sencillos analizando la salida de los filtros a una serie simple de entradas.
3.3.9.1. Metodología de diseño de filtros digitales
El diseño de un filtro digital involucro la siguiente metodología:
1. Especificación de los requerimientos del filtro.
2. Cálculo y optimización los coeficientes del filtro.
3. Representación del filtro usando una estructura de programación.
4. Análisis de los efectos en el tamaño de los datos en el desempeño.
5. Implementación en hardware y/o software.
Por lo tanto, es posible que inicialmente el diseño no cuente con toda la infor-
mación necesaria para especificar completamente el filtro, pero cuanto más detalles
se conozcan más sencillo será el proceso de diseño. Sin embargo, algunos de los re-
querimientos discutidos en la metodología son dependientes de la aplicación, por
62 Capítulo III. Procedimientos de la investigación
lo que es necesario resaltar los aspectos referidos a las características del filtro. Los
requisitos del filtro digital se especifican en el dominio de frecuencia, y para el caso
de los filtros selectivos en frecuencia como el Notch, estas especificaciones toman
la forma de bandas de tolerancia. Conociendo estos factores, el diseñador puede
analizar los efectos de la longitud de palabra finita en el desempeño del filtro, y
efectuar las correcciones que sean necesarias.
Por otro lado, para llevar acabo el diseño, se utilizó el software Iowa Hills del
cual se extrajeron los coeficientes. Utilizando un prototipo de ventana de impulso
rectangular siendo esté el método más ilustrativo y canónico para el diseño FIR
ya que es el más fácil de entender y el más simple de implementar. La idea básica
es usar la transformada inversa de Fourier para obtener en el dominio de tiempo
la respuesta de impulso, de una respuesta ideal en el dominio de la frecuencia, es
decir, una ventana rectangular, como se muestra en la figura 3.1 para un filtro de
pasa bajas.
Figura 3.1: Ventana de impulso rentangular.
∫Ωc−Ωc
e2jπωm dω = 2ωcsinc(2πωcm) (3.9)
Para implementar un filtro FIR, la manera más sencilla es usar la funcion FIR
de la categoría funcional filtrado y convolución de la librería DSPLIB [10], siendo el
prototipo para la función de filtrado el siguiente:
ushort oflag = fir (DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nx,ushort nh)
Capítulo III. Procedimientos de la investigación 63
Donde cada uno de estos parámetros representan:
x[nx] puntero al vector de entrada.
h[nh] puntero al vector de coeficientes del filtro.
r[nr] puntero al vector de salida.
dbuffer puntero al búfer de retardo.
nh es el numero de coeficientes.
nr es el numero de valores de salida.
Esta función es una implementación de un bloque de filtrado FIR, donde el nu-
mero de muestras de entradas debe coincidir con nh + nr − 1. El arreglo x inicia
en x(−nh+ 1) y finaliza en x(nr− 1). el puntero al búfer de retardo es de longitud
nh = nh+2. El arreglo deberá ser inicializado a cero para el primer bloque de filtra-
do. Entre bloques consecutivos, el búfer de retardo preserva los elementos previos
necesarios, el primer elemento del búfer coincide con indice n − 1 de la muestra
más anterior de la entrada.
3.4. Elaboración de las prácticas y recursos del laboratorio
PDS
Una vez llegado a esta etapa de la investigación y tras haber creado un mar-
co teórico con las técnicas de procesamiento digital de señales en tiempo real, se
seleccionaron esquemáticamente los contenidos a desarrollar para el laboratorio.
1. Se diseño un compendio de preguntas para cada práctica de laboratorio que
permiten solucionar problemas sencillos, mediante una metodología de dise-
ño, simulación e implementación.
64 Capítulo III. Procedimientos de la investigación
2. Se elaboraron documentos para cada una de las prácticas a desarrollar, estos
documentos llevan el nombre de Lectura Recomendada, donde se esbozó en
cada una de estas una introducción teórica como contenido de soporte, con
referencias a libros de texto y enlaces en los que puede encontrar el desarrollo
teórico completo.
3. Así mismo, se incluyeron para las prácticas que requerían del uso de una
herramienta adicional, manuales de usuario con una explicación detallada
apoyada con gráficos y notas al lector.
4. Se debe señalar que las sesiones que no requieren presencialidad tienen por
objeto que sean el primer recurso al que accede el estudiante para llevar a
cabo sus actividades programadas.
5. Por otro lado se elaboraron instrumentos de cuestionario de selección simple
donde se repasan, algunos conceptos en aquellas sesiones que requieren aten-
der algún punto en particular o que se considera que el alumno debe conocer
para dar continuidad a las sesiones de laboratorio posteriores.
6. En lo que respecta al uso de VPL, para todas las sesiones se creó un elemento
llamado actividad de programación, con estas se utiliza la capacidad de eva-
luación automática. Este tipo de actividades son del tipo no presencial y tiene
carácter de prelaboratorio, en ellas se contempla los contenidos necesarios pa-
ra familiarizare con la lógica y estructura del lenguaje C para posteriormente
usarlo en los programas con CCS y el hardware respectivo.
7. En cada práctica se incluyó un pre-laboratorio de programación que lleva por
nombre Actividad de programación, con la finalidad de que el alumno pueda
abordar con el uso del laboratorio de programación virtual, sin la presencia
del profesor, en el cual experimentará con la programación en C, los cuales
son base para los desarrollos que realizan en las sesiones practicas presen-
ciales con el hardware. En este sentido, esta metodología de pre-laboratorio le
permite al estudiante armar pequeños códigos de soporte en C que luego le
servirán para realizar la práctica con el hardware (cursiva) de procesamiento.
Capítulo III. Procedimientos de la investigación 65
8. Se realizaron manuales y videotutoriales, en el que se presentó el procesa-
miento digital de señales en tiempo real, las herramientas de programación
integrada CCS, y los softwares complementarios, tomando en consideración
que el uso de este tipo recursos didácticos facilitan el proceso de aprendiza-
je. Los recursos didácticos adicionales permiten rescatar aspectos que no se
encuentran programados y necesiten un especial interés [30]. Así mismo se
añadió al laboratorio una documento que describe las modalidades del labo-
ratorio de DSP, el objetivo educativo del mismo, las herramientas a utilizar
entre otros aspectos.
9. Se alojó en el entorno de aula virtual, todo el material desarrollado que inclu-
ye: contenido multimedia, tutoriales, paginas web referenciales, herramientas
de software adicionales, practicas de laboratorio, manuales, cuestionarios, ac-
tividades de programación y lecturas recomendadas.
10. Se evaluó el impacto de la plataforma creada en la comunidad estudiantil, me-
diante la implementación del laboratorio en el periodo lectivo 2−2014 donde
se sometió a los estudiantes al nuevo esquema del laboratorio, suministrán-
dole las lecturas recomendadas y las prácticas de laboratorio integrándolos
con el uso del modulo DSP USBSTICK5505, de los cuales se seleccionó a un
grupo de 4 estudiantes cursantes del laboratorio, y se sometió a una entre-
vista, así mismo, también se seleccionó a cuatro estudiantes que cursaron el
laboratorio con la experiencia del esquema anterior evaluando los aspectos
comunes entre ambos grupos de consulta.
Capítulo IV
Análisis, interpretación y
presentación de los resultados
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
Se seleccionaron desarrollos en la banda de frecuencias audible para el diseño
de sistemas que emulen efectos de audio digital, apuntando a realizar una concep-
ción de laboratorio que sirva de complemento y que permita integrar los conte-
nidos teóricos de procesamiento digital de señales para realizar aplicaciones DSP.
Ésto permitirá actualizar y refrescar constantemente el laboratorio, disminuyendo
las repeticiones semestrales de las mismas sesiones.
Tras una revisión de la serie C55x se evaluó que los DSP de punto flotante son
generalmente más fáciles de programar que los de punto fijo, pues el programador
no debe preocuparse por la precisión o el desbordamiento, pero son usualmente
más costosos [8]; el mayor costo es resultado del requisito de una mayor compleji-
dad circuital que se traduce en un mayor tamaño de la tarjeta, es por esto que para
67
68 Capítulo IV. Análisis, interpretación y presentación de los resultados
las aplicaciones e intereses del laboratorio y el bajo presupuesto se tomo la elección
de productos DSP de punto fijo.
Desde esta perspectiva, se seleccionó un kit para desarrollos DSP llamado C5535
eZdsp que cuenta con el procesador TMS320C5535 que pertenece a la generación
C553x de productos de Texas Instruments, el cual se sometió a un estudio bajo los
criterios de selección postulados anteriormente [13], encontrando para éste un pro-
cesador de 16 bits de punto fijo con capacidad de 240 MIPS. Así mismo, permite
algoritmos matemáticos complejos y la posibilidad de ejecutar aplicaciones numé-
ricamente precisas, a bajo costo y consumo de potencia ya que la alimentación de
núcleo activo total es menos de 0.15 mW/MHz a 1.05 V y la potencia en modo de
espera menor a 0.15 mW. Se debe señalar que el paquete de 0.8 mm permite el uso
de una placa de circuito impreso (PCB) de cuatro capas para reducir el costo total
del sistema, en cuanto a periféricos de alta velocidad integrados se tiene: USB 2.0
con UART, SPI y GPIO como se indican en 4.1. Por otro lado las opciones de memo-
ria en el chip son de hasta 320 KB para ofrecer escalabilidad según las necesidades
de aplicación y capacidad de expansión de memoria. Además, cuenta con un co-
procesador de Transformada rápida de Fourier (FFT) programable de hasta 1024
puntos e incluye un controlador de pantalla LCD y ADC.
Figura 4.1: Diagrama de bloques modulo DSK TMS320C5535 [7].
Este procesador permite la evaluación rápida de sus capacidades y cuenta con
un emulador XDS100, para la capacidad de depuración y el soporte a Code Composer
Capítulo IV. Análisis, interpretación y presentación de los resultados 69
Studio. La generación de productos C553x proporciona una base para una serie de
aplicaciones de procesamiento de señales para audio de instrumentos musicales y
voz, soluciones médicas portátiles y otros productos electrónicos de consumo en
aplicaciones industriales.
Desde estos mismos criterios de selección, se tomó la decisión de incluir un
hardware destinado para la manipulación de los estudiantes. Eligiendo al USBS-
TICKC5505, este módulo de entre los dispositivos revisados, tiene similitud con el
dispositivo principal de evaluación, cuenta con el coprocesador FFT además de ser
más económico, por no contar con algunos periféricos I/O.
Se determinó a C como el lenguaje de programación para efectos del laborato-
rio, ya que C es una valiosa herramienta de programación para tareas de software
computacionalmente intensivas en tiempo real; sin embargo aunque los programas
en ensamblador suelen ser mucho más rápidos, los escritos en C representan facili-
dad de desarrollo y mantenimiento, por lo que este lenguaje es el indicado debido
a que es más intuitivo el reconocimiento de las estructuras, ciclos y declaración de
variables que se manejan en este entorno. El curso de DSP se toma a un nivel aca-
démico en el que el programador no ha tomado el curso de microprocesadores, por
lo tanto la elección de un lenguaje de alto nivel como C representa una ventaja, ya
que no es necesario con este lenguaje entender la arquitectura que es usada en el
procesador, siendo esta una tarea del compilador.
70 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.2. Alojamiento e instalación del servidor VPL para el la-
boratorio de PDS
Para el alojamiento del servidor VPL, se utilizó una máquina que integra 1 GB
de RAM y 1 núcleo procesador, por lo que se utilizo una version de 32 bits. Des-
de el IMYCA se habilitó bajo la gestión de la Dirección de Medios Electrónicos y
Telemática (DIMETEL) una dirección IP estática para el servidor cárcel dentro del
segmento de red con el que cuenta la institución siendo esta 190.170.97.209, además
de liberar los puertos 22, 80 y 443 para la operatividad de la red.
En la figura 4.2 se muestra la comprobación del servidor de ejecución, donde se
indica la correcta operación del cárcel.
Figura 4.2: Captura de comprobación de servidor de ejecución vpl.
Cabe señalar que en particular el servicio de ejecución o cárcel funciona utili-
zando los puertos 80 y 443, los cuales se utilizan normalmente para servicios web.
Por otro lado, se determinó que si se está utilizando Apache o algún servidor
web en estos puertos, se debe cambiar la configuración del servidor cárcel vpl, con
el fin de utilizar otros puertos en desuso. Sin embargo, como el equipo es de dedi-
cación exclusiva para el cárcel, se eliminó el servidor web Apache conservando las
configuraciones predeterminadas del servicio. Entre las consideraciones para hacer
ésto, se encuentra la posibilidad de riesgos en términos de seguridad además que
mantener ejecución de código por solicitudes externas pueden consumir conside-
rable memoria que podrían degradar la tasa de respuesta del servidor web.
En este mismo orden de ideas, se probó que agregar manualmente los archivos o
carpetas a la carpeta del servidor cárcel no es procedimiento correcto ya que acarrea
problemas en las estructura de compilación y ejecución de códigos, por lo que para
Capítulo IV. Análisis, interpretación y presentación de los resultados 71
actualizar o instalar un nuevo software en el servidor de ejecución, simplemente se
debe actualizar o instalar normalmente el software y reiniciar el servicio.
Es también relevante la evaluación de los límites de los recursos de ejecución,
por lo que es necesario establecer límites máximos para el tiempo de ejecución,
la memoria usada, el tamaño de los ficheros generados durante la ejecución y el
número de procesos simultáneos. Estos límites se aplican al ejecutar los ficheros
de script mencionados en la metodología de ejecución, y el fichero vpl.execution
generado por ellos. Si la actividad está basada en otra, los límites establecidos se
pueden ver restringidos por los establecidos en aquella y otras en la que la misma
se base, además de por los establecidos en la configuración global del módulo.
El servidor cárcel vpl cuenta con un demonio linux, este es responsable de la
gestión de la ejecución del código. Los archivos de origen vienen desde el servidor
moodle como una solicitud XMLRPC por http o https como se indicó en la figura 2.19.
Cuando el código se ejecuta, el servidor también requiere comunicación con el na-
vegador del usuario y ésto se lleva a cabo mediante un WebSocket (ws: o wss:). Sin
embargo, no se administraron las mismas para la arquitectura de red implementa-
da.
El servidor VPL, tiene la capacidad de interpretación y compilación de códigos
en diferentes lenguajes, para los fines de esta investigación se realizaron diferentes
pruebas en C, para describir el comportamiento frente a los cálculos, tiempo de
compilación y ejecución.
72 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.3. Reconocimiento de algoritmos y programación para pro-
cesamiento digital de señales en tiempo real sobre el
modulo TMS320C5535
4.3.1. Plantilla de programación para C5505/C5535
Se generó la plantilla de programación la cual contiene los siguientes archivos
de soporte necesarios para el desarrollo, configuración, inicialización y programa-
ción de una aplicación DSP, usando el hardware anteriormente seleccionado.
Figura 4.3: Plantilla de programación
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INFORMACION IMPORTANTE PARA USO DEL HARDWARE DEL LABORATORIO PDS
Hardware: EZDSP5535 o 5515, USBSTICK5505,
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Si se utiliza la tarjeta USBSTICK5505, puede usar la plantilla sin
realizar modificaciones. Si se utiliza la tarjeta EZDSP5535 o 5515,
descomprima el archivo C5535_eZdsp.zip que se encuentra en esta
carpeta y reemplace los archivos contenidos en la plantilla.
Archivos que debe reemplazar:
* aic3204.c
* aic3204_init.c
* csl_general.h
* usbstk5505.h
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Capítulo IV. Análisis, interpretación y presentación de los resultados 73
4.3.2. Generación de señales sinusoidales
4.3.2.1. Generación de tonos puros sinusoidales
Se generó un audio estereofónico escribiendo en el auricular izquierdo y dere-
cho respectivamente, un tono puro a una frecuencia específica. Usando la herra-
mienta para la visualización gráfica en el tiempo y el análisis en la frecuencia. En la
figura 4.4 y 4.5 se muestra la señal sinusoidal en el dominio temporal.
Por otro lado, en la figura 4.6 y 4.7 se muestra el espectro de la señal sinusoidal
en donde se puede observar que la potencia del tono generado es de -15.64 dB.
En la tabla 4.1 se muestra los valores de potencia que se obtuvo para cada señal
sinusoidal.
Figura 4.4: Señal sinusoidal f = 500Hz en el dominio del tiempo.
Figura 4.5: Señal sinusoidal f = 1000Hz en el dominio del tiempo.
Teniendo en el dominio de la frecuencia
Tabla 4.1: Espectro de potencias de tonos puros.
Frecuencia (Hz) Volumen (dB)500 −15, 643247
1000 −15, 509970
74 Capítulo IV. Análisis, interpretación y presentación de los resultados
Figura 4.6: Señal sinusoidal f = 500Hz en el dominio de la frecuencia.
Figura 4.7: Señal sinusoidal f = 1000Hz en el dominio de la frecuencia.
4.3.2.2. Generación de tonos musicales
La visualización de los tonos musicales en el dominio temporal no aporta nin-
gún resultado relevante ya que resulta difícil discriminar los cambios la forma de
Capítulo IV. Análisis, interpretación y presentación de los resultados 75
onda, debido a que las frecuencias son muy cercanas entre si. No obstante, median-
te la reproducción de los tonos se puede escuchar la diferencia entre ellos debido a
que para este rango de frecuencias con tan solo un 3% de variación entre si, puede
el oído humano discernir entre una nota y otra [5].
Figura 4.8: Generación notas musicales en escala anglosajona en el dominio de lafrecuencia.
Tabla 4.2: Espectro de potencias de notas musicales en escala anglosajona.
Nota anglosajona Frecuencia (Hz) Volumen (dB)A 440 −18, 480934
B 493,88 −22, 393906
C 261,63 −20, 746923
D 293,66 −18, 742533
E 329,63 −22, 110437
F 349,23 −18, 466793
G 392 −22, 027313
En este estudio se valoró la frecuencia de muestreo del hardware, esta frecuen-
cia ésta supeditada a unas frecuencias permitidas, ya que están asociadas a la ope-
ración del PLL, en el fichero aic3204init.c de iniciailización del codec, por lo que
las diferentes frecuencias de muestreo que pueden ser: 24000, 16000, 12000, 9600,
8000, 6857 Hz. En el siguiente cuadro de código se muestra la función que describe
76 Capítulo IV. Análisis, interpretación y presentación de los resultados
los ajustes de la frecuencia de muestreo y la ganancia del convertidos analógico-
digital.
unsigned long set_sampling_frequency_and_gain
(unsigned long SamplingFrequency, unsigned int ADCgain)
4.3.2.3. Lectura y escritura de señales de voz
Mediante el uso del convertidor analógico digital y el manejo de periféricos I/O,
se leyó una señal de voz por medio de un micrófono y fue escrita en el TMS320C5535
en tiempo real, realizar este algoritmo nos permite reconocer la capacidad del mó-
dulo tanto para el muestreo de este tipo de señales como para ser tratadas poste-
riormente.
Figura 4.9: Señal de voz en el dominio del tiempo.
Figura 4.10: Señal de voz en el dominio de la frecuencia.
Capítulo IV. Análisis, interpretación y presentación de los resultados 77
La señal de voz generada esta constituida por un conjunto de sonidos gene-
rados por el aparato fonador humano, esta señal acústica es transformada por el
micrófono en una señal eléctrica. En cuanto a la representación de esta señal digi-
tal en el tiempo 4.9 esta formada por curvas elementales (senos y cosenos). En esta
prueba se muestra la forma de onda de la frase "Procesamiento digital de señales", La
representación de la señal de voz en función del tiempo es relevante puesto a que
brinda información sobre características importantes como la energía y los cruces
por cero, cualidades utilizadas en los estudios y análisis de voz [31].
Por otro lado, se presenta el análisis en frecuencia, del cual se pueden obtener
otros parámetros relevantes de la señal de voz. La frecuencia fundamental, brinda
información sobre la velocidad a la que vibran las cuerdas vocales al producir un
sonido [31], si bien el espectro lleva una gran componente asociada a esta frecuencia
también cuenta gran contenido de armónicos.
4.3.2.4. Convolución
En el proceso descrito del código anterior, de acuerdo a los valores utilizados, se
deben descartar las primeras nh − 1 = 5 muestras de cada convolución calculada,
y para evitar perder las primeras 5 muestras, se agregan (rellenan) esa cantidad de
ceros al principio de la sucesión de entrada.
x[nx] = x[nx+ nh− 1] (4.1)
Luego de rellenar con ceros, técnica empleada solo en el 1er bloque de proce-
samiento, se procede a procesar los bloques sucesivos. En esta etapa, el segundo
bloque de la sucesión de entrada se elige de modo que se solape con las nh− 1 = 5
últimas muestras del bloque anterior, de modo que esas muestras que ya fueron
guardadas generaran las primeras 5 muestras erróneas las cuales son descartadas
de la salida parcial generada obteniendo el bloque correcto.
78 Capítulo IV. Análisis, interpretación y presentación de los resultados
Figura 4.11: Procesamiento de primer bloque de suma de convolución.
Sampling frequency 48000 Hz Gain = 0 dB
1er bloque
[-1118,-553,15,1158,-1012]
2do bloque
[-907,257,-189,-3691,1868]
3ro bloque
[3194,-844,-1070,3621,625]
4to bloque
[1368,1000,3346,-1344,108]
5to bloque
[-821,-1602,-2656,364,-451]
6to bloque
[-1355,1537,268,-2260,-1433]
7mo bloque
[-1059,-826,286,2152,295]
bloque completo
[-1118,-553,15,1158,-1012,-907,257,-189,-3691,1868,3194,-844,-1070,3621,625,1368,
1000,3346,-1344,108,-821,-1602,-2656,364,-451,-1355,1537,268,-2260,-1433,-1059,-826]
La técnica implementada para la estimación de la convolución fue diseñada pa-
ra el soporte de la función convol y para la ilustración del procesamiento por bloques
cuando el tamaño del arreglo de entrada es muy grande. Así mismo, esto permite
Capítulo IV. Análisis, interpretación y presentación de los resultados 79
mantener la restricción en tiempo real y por consiguiente mejorar el rendimiento
del sistema.
La convolución por bloques se realizó partiendo de la secuencia de la respuesta
impulsiva h[n] de tamaño nh y la de entrada x[n] de tamaño nx; no obstante, como
nx es un valor grande, se procede a dividir la secuencia en bloques de longitud L.
Figura 4.12: Division de bloques de procesamiento de tamaño fijo.
Conocido el tamaño de las secuencias y habiendo seleccionado la longitud de
los bloques a procesar se procede a calcular la convolución mediante la función
convol de la librería DSPLIB.
Figura 4.13: Muestras de salida correctas y erroneas en procesamiento por blo-ques.
Como el descarte de las primeras nh− 1 muestras ocurre, el segundo bloque de
la sucesión de entrada se debe seleccionar de manera que este 2do bloque se solape
con las nh − 1 últimas muestras del bloque anterior, de modo que estas últimas
muestras deben almacenarse para generar las primeras nh − 1 muestras erróneas
las cuales son descartadas de la salida parcial generada obteniendo el bloque de
salida correcto. Esta metodología descrita debe aplicarse al resto de los bloques
para que no haya pérdida de información.
80 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.3.3. Sistemas discretos
La realización de sistemas discretos requieren conocimiento de las estructuras
y control de búfers, estos pueden llegar a ser implementaciones triviales cuando
son del tipo lineal, sin embargo, representan tiempos de procesamiento considera-
bles para desplazar grandes cantidades de datos. En DSP en tiempo real los búfers
deben ser del tipo circular. Se implementaron dos grupos de sistemas, el prime-
ro comprende sistemas lineales para procesamiento basado en retardos y el otro,
sistemas no lineales para procesamiento en el dominio dinámico.
4.3.3.1. Eco (Mediante ecuación de diferencias)
La señal de voz original x[n], se ha retrasado N muestras y sumado, con un
factor de escala α, para construir la señal con eco y[n]. Este es un modelo razonable
para un eco producido por la reflexión de una señal en una superficie parcialmente
absorbente como una pared. Si se sitúa un micrófono entre el hablante y la pared,
éste grabará tanto la señal original como la reflejada por un cierto tiempo después.
Como la onda reflejada debe recorrer más distancia hasta llegar al micrófono, estará
retrasada. Por otra parte, como la pared presenta una cierta absorción, la amplitud
de la onda reflejada será menor.
Se diseñaron tres sistemas con diferentes retardos y factores de atenuación,
usando Octave apoyado de la librería de funciones sys. Cambiando los parámetros
k y a para cada experiencia.
## Diagrama de polos y ceros:
k = 10; # Retardo
a = 0.7; # Factor de escalado
den = 1; # numerador
num = [1.0 zeros(1, k-1) a];
zplane(num,den);
title("diagrama de polos y ceros");
Capítulo IV. Análisis, interpretación y presentación de los resultados 81
Figura 4.14: Diagrama de polos y ceros. k = 10 α = 0,7.
Figura 4.15: Diagrama de polos y ceros. k = 5 α = 0,9.
El sistema diseñado de eco, describe en su diagrama de polos y ceros, que de
numero ceros tiene coincidencia con el número de retardos que se introducen y el
patrón de distribución esta descrito para todas las frecuencias angulares ω = 2πk n
con n = (0, 1, ...k− 1).
82 Capítulo IV. Análisis, interpretación y presentación de los resultados
Figura 4.16: Diagrama de polos y ceros. k = 20 α = 0,2.
## Funcion de transferencia de eco.
k = 10; # Retardo
a = 0.7; # Factor de escalado (Ganancia)
## Diagrama de Bode para respuesta en frecuencia
w = 0:2*pi/10000:2*pi;
y = (1+a*exp(-i*k*w));
subplot(2,1,1)
plot(w,abs(y))
title(’Diagrama de bode’);
xlabel(’Frecuencia angular (rad/seg)’);
ylabel(’Magnitud’);
subplot(2,1,2);
plot(w,angle(y))
xlabel(’Frecuencia angular (rad/seg)’)
Capítulo IV. Análisis, interpretación y presentación de los resultados 83
Figura 4.17: Diagrama de bode, magnitud y fase. k = 10 α = 0,7.
Figura 4.18: Diagrama de bode, magnitud y fase. k = 5 α = 0,9.
El sistema diseñado de eco, describe en su diagrama de bode, la respuesta en
frecuencia tanto en magnitud como en fase, del que se puede analizar que para
valores de a positivos el filtro amplifica las frecuencias pares múltiplos de 1/t (t =Fsk ) y atenúa las impares. Por su parte la fase exhibe un comportamiento lineal en las
zonas donde amplifica la señal, mientras que cambia de fase bruscamente cuando
el sistema atenúa por completo al sistema (frecuencias donde se ubican los ceros.)
84 Capítulo IV. Análisis, interpretación y presentación de los resultados
Figura 4.19: Diagrama de bode, magnitud y fase. k = 20 α = 0,2.
En la figura 4.20 se muestra el resultado obtenido cuando se excita el sistema con
un pulso de voz como entrada mediante micrófono, e introduciendo eco mediante
el sistema en tiempo real, con el ajuste de los parámetros en notación de punto fijo
se tiene k = 24000 y a = 32000, y un búfer de retardo de tamaño nb = 30000, se
obtuvo un tiempo de respuesta al eco del sistema de 702ms, esta señal de voz que
ingresa al sistema no fue generada en un ambiente controlado por lo que se insertan
componentes de ruido de fondo a esta.
Figura 4.20: Sistema que introduce eco en el dominio del tiempo usando pulso devoz.
Capítulo IV. Análisis, interpretación y presentación de los resultados 85
4.3.3.2. Eco (Mediante función FIR)
El efecto eco también se puede generar con un filtro FIR, por lo que se realizó
una implementación similar a la anterior mediante el uso de la función FIR.
Figura 4.21: Sistema que introduce eco con FIR en el dominio del tiempo usandopulso de voz.
En la figura 4.21 se muestra el resultado obtenido cuando se excita el sistema con
un pulso de voz como entrada mediante micrófono, e introduciendo eco mediante
el sistema en tiempo real usando la función FIR, los coeficientes que describen el
comportamiento del sistema coinciden con la repuesta al impulso del mismo. De
acuerdo a esto se ajustaron los parámetros en notación de punto fijo donde se tiene
que el retardo k se modela como el tamaño del búfer de retardo rbuffer que coincide
con el numero de coeficientes del filtro. nh = k = 10000 y a = 22936, se obtuvo
un tiempo de respuesta al eco del sistema de 503ms, esta señal de voz que ingre-
sa al sistema no fue generada en un ambiente controlado por lo que se insertan
componentes de ruido de fondo a esta.
86 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.3.3.3. Reverberación
Se diseñaron tres sistemas con diferentes retardos y factores de atenuación,
usando Octave apoyado de la librería de funciones sys. Cambiando los parámetros
k y a para cada experiencia.
## Diagrama de polos y ceros:
k = 10; # Retardo
a = 0.7; # Factor de escalado
num = 1; # numerador
den = [1.0 zeros(1, k-1) a];
zplane(num,den);
title("diagrama de polos y ceros");
Figura 4.22: Diagrama de polos y ceros. k = 10 α = 0,7.
Capítulo IV. Análisis, interpretación y presentación de los resultados 87
Figura 4.23: Diagrama de polos y ceros. k = 5 α = 0,9.
Figura 4.24: Diagrama de polos y ceros. k = 20 α = 0,2.
El sistema diseñado de reverberación, describe en su diagrama de polos y ceros,
que el numero de polos tiene coincidencia con el número de retardos que se intro-
ducen y el patrón de distribución esta descrito para todas las frecuencias angulares
ω = 2πk n con n = (0, 1, ..., k− 1)
88 Capítulo IV. Análisis, interpretación y presentación de los resultados
## Funcion de transferencia de reverberaci n:
k = 10; #Retardo
a = 0.7; # Factor de escalado (Ganancia)
## Diagrama de Bode para respuesta en frecuenciaw = 0:2*pi/10000:2*pi;
y = (1./(1-a*exp(i*k*w)));
subplot(2,1,1)
plot(w,abs(y))
title(’Diagrama de bode’);
xlabel(’Frecuencia angular(rad/seg)’);
ylabel(’Magnitud’);
subplot(2,1,2);
plot(w,angle(y))
xlabel(’Frecuencia angular (rad/seg)’);
ylabel(’Fase’);
Figura 4.25: Diagrama de bode, magnitud y fase. k = 10 α = 0,7.
Capítulo IV. Análisis, interpretación y presentación de los resultados 89
Figura 4.26: Diagrama de bode, magnitud y fase. k = 5 α = 0,9.
Figura 4.27: Diagrama de bode, magnitud y fase. k = 20 α = 0,2.
El sistema diseñado de reverberación, describe en su diagrama de bode, la res-
puesta en frecuencia tanto en magnitud como en fase, del que se puede analizar
que para valores de a positivos el sistema atenúa las frecuencias impares múltiplos
de 1/t (t = Fsk ) y amplifica las pares. La amplitud de la señal resultante es una fun-
ción del numero de retardos del sistema por lo que a debe ser menor a 1 ya que el
sistema es inestable y cumpliendo con esta condición se mantiene estable. Por su
parte la fase exhibe un comportamiento lineal en las zonas donde amplifica la señal,
90 Capítulo IV. Análisis, interpretación y presentación de los resultados
mientras que cambia de fase bruscamente cuando el sistema atenúa por completo
al sistema (frecuencias donde se ubican los ceros.)
Figura 4.28: Respuesta del sistema que introduce reverberación en el dominio deltiempo a un pulso de voz.
Capítulo IV. Análisis, interpretación y presentación de los resultados 91
4.3.3.4. Distorsión no lineal por saturación
El sistema que modela la distorsión por saturación es descrita mediante una
función definida en tramos y presenta a las variables de que describen a la ecua-
ción en notación de punto fijo, es este sentido el valor umbral y el de saturación
estarán ajustados a las cualidades de las pistas de acordes o de la señal de entrada
en cuestión.
y(n) =
2000 si x(n) > 100
20 ∗ x(n) si −100 6 x 6 100
−2000 si x(n) < −100
(4.2)
% Funcion de transferencia distorsion no lineal (Saturacion)
% En notacion de punto fijo
x = linspace(-150,150,3000);
y = linspace(-2000,2000,3000);
sat = 2000;
umbral = 100;
y = (x<-umbral).*(-sat) + (x>umbral).*(sat) +
((x>= umbral)&(x<=umbral)).*(20*x);
plot(x,y)
title("Funcion de transferencia Distorsion no lineal");
xlabel(’Senal de entrada’);
ylabel(’Senal de salida’);
92 Capítulo IV. Análisis, interpretación y presentación de los resultados
Figura 4.29: Función de transferencia del sistema de distorsión no lineal por satu-ración.
Usando un tono puro de 500Hz generado en 4.4 como entrada al sistema obte-
nemos la respuesta en frecuencia.
Figura 4.30: Respuesta en frecuencia del sistema de distorsión por saturación, aun tono puro de 500Hz de entrada.
Capítulo IV. Análisis, interpretación y presentación de los resultados 93
Tabla 4.3: Espectro de potencias de armónicos generados del sistema de distorsionpor saturación.
Armónico Frecuencia (Hz) Volumen (dB)Fo 500 −10, 820345
3Fo 1500 −27, 12205
5Fo 2500 −30, 668192
7Fo 3500 −34, 578655
9Fo 4500 −36, 127178
Figura 4.31: Respuesta en frecuencia del sistema de distorsión por saturación, auna pista de acordes de entrada.
En la figura 4.31 se muestra el espectro de la señal resultante al aplicar una pista
de acordes en el sistema, donde las combinaciones de los parámetros umbrales y de
saturación se mantienen iguales, aunque pueden ser modificables. En este sentido
si el umbral se desea más bajo, se suprimiría una mayor porción de señal o incluso
toda ella íntegramente. Por el contrario, si el umbral es mas elevado mayores por-
ciones de la forma de onda pasarán por el sistema. Se comprobaron una variedad
combinaciones mediante el procedimiento descrito.
94 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.3.3.5. Distorsión no lineal polinómica cuadrática
El polinomio de 2do orden modela la función de transferencia del sistema de
distorsión polinómica con simetría par, la cual se muestra en la figura 4.32, por lo
que cada muestra de la señal se eleva al cuadrado y se escala por un coeficiente
cuadrático a2.
y(n) = a2x(n)2 (4.3)
% Funcion de transferencia distorsion no lineal (Polinomica).
% En notaci n de punto fijo.
x = linspace(-200,200,3000);
y = linspace(-2000,2000,3000);
% Termino cuadratico, responsable de distorsion por segunda armonica
a2 = 15;
y = a2*x.^2;
plot(x,y)
title("Funcion de transferencia Distorsion no lineal (Polinomial)");
xlabel(’Senal de entrada’);
ylabel(’Senal de salida’);
Capítulo IV. Análisis, interpretación y presentación de los resultados 95
Figura 4.32: Función de transferencia distorsión polinómica cuadrática.
Al introducir un tono puro sinusoidal de 500Hz al sistema de distorsión poli-
nómica cuadrática, se obtiene una version distorsionada de esta señal. En la figura
4.33 se muestra el análisis en el dominio de la frecuencia de esta salida.
Figura 4.33: Respuesta en la frecuencia del sistema de distorsión cuadrática 4.3., aun tono puro de 500Hz de entrada.
96 Capítulo IV. Análisis, interpretación y presentación de los resultados
En cuanto al análisis en frecuencia, se obtuvo como respuesta solo una compo-
nente armónica par y no aparece en el espectro la fundamental. En la tabla 4.4 se
recogen los niveles de potencia relativos a estas componentes.
Tabla 4.4: Espectro de potencias de armónicos generados del sistema de distorsióncuadrática 4.3
Armónico Frecuencia (Hz) Potencia (dB)Fo 500 −48, 698540
2Fo 1500 −13, 721004
Usando de nuevo el polinomio de 2do orden ahora la función de transferencia
cuadrática más la función identidad 4.4, como sistema de distorsión, la cual agrega
la componente lineal y lo escala por un coeficiente a.
y(n) = a2x(n)2 + ax(n) (4.4)
% Funcion de transferencia distorsion no lineal (Polinomica).
% En notacion de punto fijo.
x = linspace(-200,200,3000);
y = linspace(-2000,2000,3000);
% Termino cuadratico, responsable de distorsion por segunda armonica
a2 = 15;
% Termino lineal la ganancia es amplificada por este valor
a = 15;
y = a2*x.^2 + a.*x;
plot(x,y)
title("Funcion de transferencia Distorsion no lineal (Polinomial)");
xlabel(’Senal de entrada’);
ylabel(’Senal de salida’);
Capítulo IV. Análisis, interpretación y presentación de los resultados 97
Figura 4.34: Función de transferencia distorsión polinómica cuadrática.
Introduciendo para este el mismo tono puro sinusoidal de 500Hz al sistema de
distorsión polinómica cuadrático con componente lineal, se obtiene una version
distorsionada de esta señal.
Figura 4.35: Respuesta en el tiempo del sistema de distorsión cuadrática ??, a untono puro de 500Hz de entrada
En este caso, se evidencia un comportamiento altamente distorsionante de la
forma de onda, en la salida en temporal.
En cuanto al análisis en frecuencia 4.36, se obtuvo como respuesta las compo-
nentes armónicas pares como en el caso anterior, con la diferencia en que aparece
la componente fundamental. En la tabla 4.5 se recogen los niveles de potencia rela-
tivos a estas componentes.
98 Capítulo IV. Análisis, interpretación y presentación de los resultados
Figura 4.36: Respuesta en frecuencia del sistema de distorsión cuadrática 4.4, a untono puro de 500Hz de entrada.
Tabla 4.5: Espectro de potencias de armónicos generados del sistema de distorsióncuadrática 4.4.
Armónico Frecuencia (Hz) Potencia (dB)Fo 500 −6, 782156
2Fo 1000 −15, 235421
4Fo 2000 −31, 211441
6Fo 3500 −37, 421532
Se evidencia que podemos aplicar estos sistemas cuadráticos y producir el efec-
to especifico de distorsión armónica con la generación de las componentes pares.
Sin embargo, esto es reflejado únicamente cuando la señal de entrada es una onda
sinusoidal pura. como la función de transferencia tiene simetría par los armónicos
producidos solo serán (2fo, 4fo, 6fo,...), el 1fo es un armónico impar, y se elimina
al ingresar al sistema. No obstante, se puede mantener la frecuencia fundamental,
se determinó que basta con agregar la función identidad al sistema para hacerlo.
La identidad trigonométrica 4.5 para la reducción de exponentes describe las ope-
raciones asociadas a exponer al cuadrado un tono puro sinusoidal.
Capítulo IV. Análisis, interpretación y presentación de los resultados 99
sin2 x =1− cos 2x
2(4.5)
4.3.3.6. Distorsión no lineal polinómica cúbica
El polinomio de 3er orden modela la función de transferencia del sistema de
distorsión polinómica con simetría impar, la cual se muestra en la figura 4.37, por
lo que cada muestra de la señal se eleva al cubo y se escala por un coeficiente cúbico
a3.
y(n) = a3x(n)3 (4.6)
% Funcion de transferencia distorsion no lineal (Polinomica).
% En notaci n de punto fijo.
x = linspace(-200,200,3000);
y = linspace(-2000,2000,3000);
% Termino cuadr tico, responsable de distorsi n por tercera arm nica
a3 = 15;
y = a3*x.^3;
plot(x,y)
title("Funcion de transferencia Distorsion no lineal (Polinomial)");
xlabel(’Senal de entrada’);
ylabel(’Senal de salida’);
100 Capítulo IV. Análisis, interpretación y presentación de los resultados
Figura 4.37: Función de transferencia distorsión polinómica cúbica.
Al introducir un tono puro sinusoidal de 500Hz al sistema de distorsión polinó-
mica cúbica, se obtiene una version distorsionada de esta señal.
Figura 4.38: Respuesta en el tiempo del sistema distorsión cúbica 4.6, a un tonopuro de 500Hz de entrada
En la figura 4.38 se evidencia un comportamiento altamente distorsionante de
la forma de onda siguiendo cambios parecidos a la forma de onda del sistema, en
la salida en temporal.
Capítulo IV. Análisis, interpretación y presentación de los resultados 101
Figura 4.39: Respuesta en frecuencia del sistema distorsión cúbica 4.6, a un tonopuro de 500Hz de entrada.
Tabla 4.6: Espectro de potencias de armónicos generados del sistema distorsióncúbica 4.6
Armónico Frecuencia (Hz) Potencia (dB)Fo 500 −8, 483990
3Fo 1500 −19, 938459
En cuanto al análisis en frecuencia 4.39, se obtuvo como respuesta las compo-
nentes armónicas impares y la componente fundamental por ser impar, aparece en
el espectro. En la tabla 4.6 se recogen los niveles de potencia relativos a estas com-
ponentes.
102 Capítulo IV. Análisis, interpretación y presentación de los resultados
Usando de nuevo el polinomio de 3er orden ahora con la función de transferen-
cia cúbica más la función identidad 4.7, como sistema de distorsión, la cual agrega
la componente lineal y lo escala por un coeficiente a.
y(n) = a3x(n)3 + ax(n) (4.7)
% Funcion de transferencia distorsion no lineal (Polinomica).
% En notaci n de punto fijo.
x = linspace(-200,200,3000);
y = linspace(-2000,2000,3000);
% Termino cuadr tico, responsable de distorsi n por tercera arm nica
a3 = 15;
% Termino lineal la ganancia es amplificada por este valor
a = 15;
y = a3*x.^3 + a*x;
plot(x,y)
title("Funcion de transferencia Distorsion no lineal (Polinomial)");
xlabel(’Senal de entrada’);
ylabel(’Senal de salida’);
Figura 4.40: Funcion de transferencia distorsión polinómica cúbica
Capítulo IV. Análisis, interpretación y presentación de los resultados 103
Introduciendo para este el mismo tono puro sinusoidal de 500 Hz al sistema de
distorsión polinómica cubica con componente lineal, se obtiene una version distor-
sionada de esta señal.
Figura 4.41: Respuesta en el tiempo del sistema de distorsión cúbica 4.7, a un tonopuro de 500Hz de entrada
En este caso, se evidencia un comportamiento distorsionante de la forma de
onda e incluso se aprecia una suave saturación en los picos de la señal 4.41, en la
salida en temporal.
Figura 4.42: Respuesta en frecuencia del sistema de distorsión cúbica 4.7, a un tonopuro de 500Hz de entrada
104 Capítulo IV. Análisis, interpretación y presentación de los resultados
Tabla 4.7: Espectro de potencias de armónicos generados del sistema distorsióncúbica 4.7
Armónico Frecuencia (Hz) Potencia (dB)Fo 500 −2, 069880
3Fo 1500 −27, 469328
5Fo 2500 −25, 986374
7Fo 3500 −35, 391556
En cuanto al análisis en frecuencia 4.42, se obtuvo como respuesta las compo-
nentes armónicas impares como en el caso anterior, manteniéndose la componente
fundamental pero aumentando la distorsión armónica, con la aparición de otras
componentes. En la tabla 4.7 se muestran los niveles de potencia relativos a estas
componentes.
El sistema de distorsión descrito como una función de transferencia cúbica lo-
gra producir el efecto específico de distorsión armónica con la generación de las
componentes impares, al igual que su contra parte cuadrático, el efecto solo es re-
flejado únicamente cuando la señal de entrada es una onda sinusoidal pura. La
función de transferencia tiene simetría impar por lo que los armónicos producidos
serán (1fo, 3fo, 5fo,...), el 1fo es un armónico impar que este particular no se eli-
mina al ingresar al sistema. Al agregar la función identidad al sistema se obtiene
mayor contenido armónico y por ende mayor distorsión. La identidad trigonomé-
trica 4.8 para la reducción de exponentes describe, una mayor complejidad en las
operaciones asociadas a exponer al cubo un tono puro sinusoidal.
sin3 x =3 sin x− sin 3x
4(4.8)
4.3.3.7. Efectos de la distorsión polinómica en audio
Existen sistemas de cajas o pedales de distorsión con diferentes formas de onda
y funciones de transferencias para efectos musicales. A partir de los sistemas de
distorsión polinómica anteriormente descritos se introdujo en ellos una pista de
acordes.
Capítulo IV. Análisis, interpretación y presentación de los resultados 105
Figura 4.43: Respuesta en el tiempo, de señal de entrada (pista de acordes).
Al introducir la señal 4.43 como entrada al sistema de distorsión cuadrática con
componente lineal 4.4, se producen mayor contenido armónico que no tiene corres-
pondencia con una respuesta de armónicos pares, en la figura 4.44 se obtiene la
siguiente forma de onda en el tiempo.
Figura 4.44: Respuesta en el tiempo del sistema de distorsión cuadrática 4.4, a unapista de acordes de entrada.
Así mismo se introduce la señal 4.43 como entrada al sistema distorsión cúbica
4.7 por ser el que produce mayor contenido armónico se obtiene la siguiente forma
de onda en el tiempo 4.45.
Figura 4.45: Respuesta en el tiempo del sistema de distorsión cúbica 4.7, a unapista de acordes de entrada
Este estudio de los sistemas con la pista de acordes permite generalizar que ellos
no producen distorsión armónica debido a que estos productos generan distorsión
por intermodulación, por lo que no predominan componentes pares ni impares en
las salidas.
106 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.3.3.8. Modulación
La suma y diferencia de frecuencias generadas en el modulador en anillo re-
presentan resultados de frecuencias igualmente no armónicas que en los casos de
distorsión. Pero en este caso los productos de frecuencia son sumas y diferencias
de la frecuencia portadora y no entre las frecuencias de la misma señal de entrada.
Además, en la modulación en anillo, la frecuencia original no está presente, en com-
paración con los productos en la distorsión por intermodulación que sigue siendo
las que aporta más contenido espectral.
Aunque el resultado audible es fácil de comprender para señales simples, cuan-
do la complejidad de la señal original aumenta, la comprensión del resultado re-
quiere técnicas de análisis más rigurosas. Para este estudio se tomaron dos sinusoi-
dales puros para ilustrar el sistema implementado.
y(n) = x(n) ∗m(n) (4.9)
Siendo x(n) y m(n), tonos sinusoidales puros el resultado de multiplicar las dos
señales, sigue la siguiente propiedad trigonométrica:
sin(a) sin(b) =1
2[cos(a− b) − cos(a+ b)] (4.10)
Se llevo a cabo la experiencia de la multiplicación de la señal modulante 200Hz
con la señal portadora 500Hz, obteniendo lo que se visualiza en el tiempo como la
diferencia de cosenos de diferentes frecuencias.
Figura 4.46: Respuesta en el tiempo del sistema de modulación sobre tono sinu-soidal de 500Hz y portadora 200Hz
Capítulo IV. Análisis, interpretación y presentación de los resultados 107
Figura 4.47: Respuesta en frecuencia del sistema de modulación sobre tono sinu-soidal de 500Hz y portadora 200Hz
En la figura 4.47 se muestra la experiencia realizada con el modulador en ani-
llo, experiencia similar a la que se exponía a nivel teórico, donde se ha verificado
que la mezcla de la señales suprimen la portadora, obteniendo unas bandas lateras
bien definidas en el espectro de frecuencia. De este modo, con un tono sinusoidal
generado por el procesador 200Hz como señal modulante y con otro igual de 500Hz
como portadora, el modulador multiplica ambas señales produciendo la señal su-
ma de las bandas laterales (500Hz - 200Hz) y (500Hz + 200Hz) con los siguientes
niveles de potencia 4.8.
Tabla 4.8: Espectro de potencias de bandas lateral, modulador en anillo
Frecuencia (Hz) Volumen (dB)300 −24, 272306
700 −22, 620872
En efectos en audio digital, los moduladores en anillo existentes tiene una entra-
da destinada a la conexión de un instrumento. La otra señal es creada normalmente
por algún oscilador interno, la cual es considerada la portadora, este esquema coin-
dice con el implementado sobre el hardware DSP.
108 Capítulo IV. Análisis, interpretación y presentación de los resultados
Figura 4.48: Respuesta en frecuencia del sistema de modulación sobre pista deacordes y portadora Fm: 1KHz
El sonido de la pista coincide con la suma de varias ondas senoidales diferen-
tes, no un tono puro. De esta forma, el número de tonos generados crecé como se
muestra en el análisis espectral 4.48, pues cada componente produce la suma y la
diferencia con todas las señales senoidales parciales contenidas en la otra señal,
creando un sonido complejo asonante.
Capítulo IV. Análisis, interpretación y presentación de los resultados 109
4.3.4. Filtros digitales
Para el diseño de los filtros digitales se siguió la metodología precedente para el
diseño postulado en III. De esta manera se obtuvieron los coeficientes de los filtros,
los cuales se llevaron a notación de punto fijo, truncandolos para ser soportados por
el procesador TMS320C5535 el cual es de 16 bits usando representación en Q.15.
La cantidad de estos coeficientes del filtro generados por el sotfware de diseño
se limitó a 32, por lo que se deben optimizar e incluso rediseñar si es necesario para
satisfacer las especificaciones. Es destacable que entre mayor es el orden del filtro
la respuesta en la banda de paso y de rechazo es más plana, sin embargo, para los
efectos de este trabajo de investigación, el desempeño del filtro no fue un factor
relevante.
Desde esta perspectiva, para las experiencias de este trabajo se utilizó una señal
de banda 4.49 con contenido espectral en todas las bandas de paso de los filtros
diseñados.
Figura 4.49: Respuesta en frecuencia de señal de banda entre (200 -8000)Hz.
110 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.3.4.1. Filtro pasa bajas
El filtro pasa bajas que se muestra en la figura 4.50, tiene una frecuencia de corte
de Fc = 1kHz.
Figura 4.50: Respuesta en magnitud, filtro pasa bajas.
Figura 4.51: Respuesta en frecuencia del filtro pasa bajas, a señal de banda
Capítulo IV. Análisis, interpretación y presentación de los resultados 111
En la figura 4.51 se visualiza la atenuación de las componentes de alta frecuen-
cia, permitiendo el paso de las frecuencias por debajo de 1001Hz, teniendo como
potencia de una frecuencia de prueba de 1900Hz = −60, 310425dB. De acuerdo con
el análisis espectral mostrado, se puede observar que en la banda de rechazo el
rizado corresponde al generado en el diseño.
112 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.3.4.2. Filtro pasa altas
El filtro pasa altas que se muestra en la figura 4.52, tiene una frecuencia de corte
de Fc = 5, 501kHz.
Figura 4.52: Respuesta en frecuencia del filtro pasa altas, a señal de banda.
Figura 4.53: Respuesta en frecuencia del filtro pasa alta, a señal de banda.
Capítulo IV. Análisis, interpretación y presentación de los resultados 113
En la figura 4.53 se visualiza la atenuación de las componentes de baja y media
frecuencia, permitiendo el paso de las frecuencias por encima de 5501Hz, teniendo
como potencia de una frecuencia de prueba de 1200Hz= −70, 0764395dB. De acuer-
do con el análisis espectral mostrado, se puede observar que en la banda de rechazo
el rizado corresponde al generado en el diseño.
114 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.3.4.3. Filtro pasa banda
El filtro pasa banda que se muestra en la figura 4.54, tiene una frecuencia de
corte Fc = 1, 5kHz4 y un ancho de banda de BW = 4, 001kHz.
Figura 4.54: Respuesta en magnitud, filtro pasa banda.
Figura 4.55: Respuesta en frecuencia del filtro pasa banda, a señal de banda.
Capítulo IV. Análisis, interpretación y presentación de los resultados 115
En la figura 4.51 se visualiza la atenuación de las componentes de baja y alta fre-
cuencia, permitiendo el paso de las frecuencias dentro de la banda 1500Hz a 5501Hz
con ancho de banda de 4001Hz, teniendo como potencia de una frecuencia de prue-
ba de 6000Hz = −62, 027370dB. De acuerdo con el análisis espectral mostrado, se
puede observar que en la banda de rechazo el rizado corresponde al generado en el
diseño.
116 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.3.4.4. Filtro Notch
Para la implementación particular del filtro Notch, se diseñó con una frecuencia
de corte de 6kHz y un ancho de banda deBW = 2, 4kHz. A través de esta experiencia
se llevaron a cabo dos pruebas una con un tono puro, evaluando cuando selectivo
podría llegar ser el filtro, introduciendo un tono de 6kHz.
Figura 4.56: Filtro Notch Fc = 6kHz.
Capítulo IV. Análisis, interpretación y presentación de los resultados 117
Figura 4.57: Respuesta en frecuencia del filtro Notch, a un señal sinusoidal pura de6kHz
De esta experiencia se exhibe en 4.57 un nivel de potencia de −71, 315651dB
para 6Khz. Ahora bien para la prueba del filtro Notch sobre una pista de acordes se
realizó otro diseño con una frecuencia de corte de 1kHz y un BW = 680Hz, con la
intención de filtrar esta componente del contenido espectral de la pista.
Figura 4.58: Respuesta en frecuencia de pista de acordes.
118 Capítulo IV. Análisis, interpretación y presentación de los resultados
Antes de aplicar el filtro Notch a la pista de acordes se tenia un nivel de potencia
para la frecuencia de F = 1kHz de −24, 147579dB como se ilustra en la figura 4.58.
Figura 4.59: Respuesta en frecuencia del filtro Notch, a pista de acordes.
Posteriormente, al aplicar la pista de acordes al sistema de filtrado Notch, se
obtuvo a la misma frecuencia de 1kHz una potencia de −47, 696217dB. En la figura
4.59 también se puede apreciar el efecto asociado al ancho de banda del diseño que
atenúa también el contenido armónico alrededor de la frecuencia de corte.
Se debe señalar que esta selección de coeficientes acorde al manejo del tamaño
de los datos exhibe un comportamiento oscilatorio del filtro mientras mayor es la
cantidad de coeficientes, menor será el efecto en la banda de paso, además al ser
extrapolados estos coeficientes a CCS para la implementación en el hardware deben
ser truncados y este procedimiento aumenta considerablemente el rizado en las
mismas bandas.
Las desviaciones con respecto a la respuesta deseada (tanto en la banda de paso
como en la banda de rechazo) pueden expresarse en valores absolutos o en decibe-
lios (dB), indicando la ondulación máxima (rizado) tolerada en la banda de paso y
la atenuación mínima exigida en la banda de rechazo.
Capítulo IV. Análisis, interpretación y presentación de los resultados 119
En relación al diseño en el software Iowa Hills, se muestra como resultado en
la frecuencia un filtro con cualidades que pueden no ser aceptables para rigurosas
aplicaciones, por que lo más conveniente es usar una ventana, para reducir los ló-
bulos laterales. El entorno de diseño de filtros usado cuenta en particular con una
librería con funciones de ventanas que pueden mejorar el desempeño del filtro.
Otro hecho a considerar es que las transiciones entre la banda pasante y la banda
de corte no son generalmente limpias en los filtros reales. Por lo tanto, existe una
banda de transición entre la zona donde teóricamente todo pasa y la zona donde
teóricamente nada pasa. Las respuestas en frecuencia obtenidas como salida en los
filtros muestran estas transiciones rizadas y modelan el contenido espectral en las
bandas de rechazo.
En consideración a la cuantificación de entradas y salidas debido a la resolución
finita de los conversores A/D y D/A y la de los coeficientes, conducen a variaciones
de la respuesta en frecuencia de filtros FIR e IIR. Es lo mismo que ocurre cuando el
resultado de una suma excede el ancho de palabra adoptado.
Los procesadores de punto fijo tienen un acumulador con bits adicionales para
mantener la precisión (por ejemplo, el resultado de la multiplicación de dos núme-
ros de N bits es un número de 2N bits). Cuando estos resultados se almacenan en
memoria se truncan a la longitud de palabra adoptada. El error resultante, denomi-
nado ruido de redondeo, altera la respuesta del filtro.
Los filtros FIR ofrecen en general una respuesta de fase más lineal y no entran
jamás en oscilación (es decir, no se vuelven inestables), ya que no poseen realimen-
tación. Por otro lado, requieren un gran número de términos en sus ecuaciones y
eso les hace más costosos en cuanto a cálculo o carga computacional. Un filtro FIR
con un corte muy abrupto (es decir, que tenga una banda de transición muy corta)
puede requerir hasta centenas de retardos.
En cuanto a los filtros IIR, son muy eficaces y pueden proporcionar pendientes
de corte muy pronunciadas. Por otro lado, al poseer características de realimen-
tación o feedback, tienen tendencia a entrar en oscilación y en resonancia, así que
120 Capítulo IV. Análisis, interpretación y presentación de los resultados
por la limitación en el rango dinámico estas implementaciones podrían llegar a ser
obsoletas.
Por naturaleza, un filtro no puede ser a la vez preciso en el dominio temporal y
en el de frecuencia. De hecho, un filtro con una transición rápida (por ejemplo, con
una banda pasante estrecha) presenta una respuesta impulsiva larga (el impulso
resona mucho tiempo). Por el contrario, una banda pasante ancha corresponde a
una respuesta impulsiva corta.
Los filtros tienen también un efecto importante en la fase de las señales. El filtra-
do en sí mismo es una aplicación de los retardos (modificando la fase de la señal),
lo que explica su comportamiento en el dominio temporal y su implementación
digital.
4.3.5. Efectos de filtros digitales: Ecualización
Basados en las estructuras de los filtros antes descritos se procedió a realizar
un sistema de ecualización, específicamente un sistema ecualizador digital de tres
bandas. Este es un efecto basado en filtros digitales, que consiste en tres filtros FIR
que se ejecutan uno luego del otro y se multiplican sus salidas por diferentes coefi-
cientes para generar las combinaciones posibles. Los cálculos se realizan muestra a
muestra y en proceso paralelo, todos los filtros además son del mismo orden.
Figura 4.60: Ecualizador digital de tres bandas, para tono dual.
Capítulo IV. Análisis, interpretación y presentación de los resultados 121
En la figura 4.60 se muestra el ecualizador para una tono dual, con dos frecuen-
cias, 800Hz y 4KHz 4.61, las cuales fueron seleccionadas para estar en la banda de
paso del filtro pasa bajo y del pasa banda con los niveles de potencia que se mues-
tran en 4.9, pero fuera del pasa alta. No obstantes, se le predeterminó a la salida
del filtro pasa banda una ganancia nula, y para otros una ganancia de 1 (32767 en
notacion Q15 de punto fijo).
Figura 4.61: Respuesta en frecuencia de la señal dual (800Hz-4kHz) sin ecualiza-ción.
Tabla 4.9: Espectro de potencias de señal de tono dual sin ecualización.
Frecuencia (Hz) Potencia (dB)800 −6, 390619
4000 −7, 874199
122 Capítulo IV. Análisis, interpretación y presentación de los resultados
Figura 4.62: Respuesta en frecuencia del sistema de ecualización, a una señal dual(800Hz-4kHz).
Tabla 4.10: Espectro de potencias del sistema actualizador, a una señalde tonodual.
Frecuencia (Hz) Potencia (dB)800 −13, 150507
4000 −69, 586319
El estudio revela que el sistema filtra correctamente la componente de 4Khz. En
el análisis espectral de la señal de salida 4.62 se visualiza solo la componente del
tono dual. Es importante destacar que la atenuación asociada al tono de 800Hz, es
debido a varias razones, entre ellas, que las respuesta del filtro pasa baja es alterada
ligeramente por el redondeo (truncado) de los coeficientes del filtro, esto altera la
posición de los ceros en el diagrama de polos y ceros del sistema, por lo cual existe
una tolerancia de error en la frecuencia de diseño.
Capítulo IV. Análisis, interpretación y presentación de los resultados 123
Para una señal de banda de frecuencias, que puede representar un ruido blanco,
se aplicó el sistema de ecualización, con esta experiencia se permite ilustrar el efecto
auditivo de la aplicación de este sistema.
Figura 4.63: Ecualizador digital de tres bandas, para señal de banda (200Hz-8kHz).
En la figura 4.63 se muestra el ecualizador para una señal de banda que podría
describir un ruido blanco, con frecuencias, desde 200Hz a 8000Hz. 4.64, esta banda
fue seleccionada, para escontrarse dentro de la banda de paso de todo el banco de
filtro; sin embargo se le predeterminó a la salida del filtro pasa alta una ganancia
nula, y para otros una ganancia de 1 (32767 en notacion Q15 de punto fijo).
Figura 4.64: Respuesta en frecuencia de la señal de banda (200Hz-8kHz) sin ecua-lización.
124 Capítulo IV. Análisis, interpretación y presentación de los resultados
Figura 4.65: Respuesta en frecuencia del sistema de ecualización, a una señal debanda (200Hz-8kHz).
El estudio revela que el sistema filtra correctamente las componentes de fre-
cuencia por encima de 5kHz. En el análisis espectral de la señal de salida que se
muestra en la figura anterior se visualiza varios aspectos interesantes, el prime-
ro de ellos es que en la región que no esta definida por el banco de filtros desde
(1001Hz a 1500Hz) es atenuada por las bandas de rechazo de los filtros pasa bajo y
banda, lo siguiente observable es que en la banda de rechazo del filtro pasa alta la
componente de 8khz es considerablemente atenuada a unos −83dB, y por ultimo
se observa que en la salida del filtro pasa banda el espectro responde a cambios
modelados por el rizado del filtro pasa alta 4.52.
El resultado de la ecualización implementada con el hardware DSP es satisfac-
torio, pero si se pretende implementar un control más exigente, como por ejemplo
un ecualizador de 15 o 30 bandas, la distorsión de la respuesta causada por la in-
terconexión de estos podría ser relevante. En este sentido, se debe indicar que las
frecuencias centrales de los ecualizadores están linealmente espaciadas a diferencia
de los ecualizadores comerciales que están espaciados por octavas ya que existe un
estándar ISO sobre las frecuencias centrales que es preferible usar para el diseño
más especializado.
Capítulo IV. Análisis, interpretación y presentación de los resultados 125
Se evidencia que la implementación de un ecualizador digital, no consiste sim-
plemente en el control de la ganancia de bajo, medios y altos. El ecualizador usa el
banco de filtros con bandas de paso definidas y diseñadas para aislar completamen-
te ciertas bandas de frecuencias con el objetivo de tener control sobre el espectro de
audio de la señal de entrada. De esta manera, cada filtro en el ecualizador tiene
la misma entrada, por lo que el trabajo de cada filtro consiste en permitir pasar
únicamente una pequeña banda convenientemente según las necesidades del ins-
trumento o la pista. Así mismo, una vez que la señal pasa por cada filtro, el usuario
puede manipular cada banda independientemente modificando su ganancia.
126 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.4. Recursos y prácticas del laboratorio de procesamiento
digital de señales
Los resultados de la elaboración de estas prácticas y recursos de contenidos
realizados se encuentran anexos a este trabajo de investigación, la siguiente es una
descripción general de estos desarrollo.
4.4.1. Introducción al laboratorio de PDS en tiempo real
En esta primera sesión, se presenta mediante un video tutorial una introducción
al procesamiento digital de señales haciendo referencia a las posibles aplicaciones
y soluciones tecnológicas en esta área. En esta sesión se añade un documento de
lectura que contiene una síntesis del contenido en el video, aunado a una descrip-
ción del laboratorio con el objetivo educativo y el código de ética, las herramientas
a utilizar y por último un diagrama de las sesiones virtuales y presenciales.
Por otro lado se incluye la plantilla de elaboración del informe del laboratorio,
la cual se elaborará en Latex mediante Overleaf que es una herramienta de escritura
colaborativa que permite compilación on-line en tiempo real, este recurso adicional
permitirá a los estudiantes elaborar los informes asociados a los resultados de las
prácticas.
Figura 4.66: Sesión 1: Introducción al procesamiento digital de señales.
Capítulo IV. Análisis, interpretación y presentación de los resultados 127
4.4.2. Iniciación a Code Composer Studio y a la serie DSK TMS320C55x
En este documento se han resumido las herramientas básicas que se usarán en
este laboratorio para realizar procesamiento digital de señales (PDS) en tiempo real
sobre la plataforma DSK TMS320C55x. Esta iniciación le permitirá familiarizarse
con el Hardware, el ambiente de trabajo y las herramientas de Software para progra-
mar, depurar y verificar el código que será cargado en el Hardware.on
Así mismo, se suministran los manuales técnicos de cada uno de los módulos
con los que cuenta el laboratorio y la plantilla de programación elaborada con los
ficheros y librerías necesarias para la creación y compilación de algortimos.
Figura 4.67: Sesión 2: Iniciación a Code Composer Studio y a la serie DSKTMS320C55x.
4.4.3. Tutorial para el software de diseño de filtros digitales Iowa Hills
software for digital filters design
Se diseño un tutorial acerca del software de diseño de filtros, en el documento se
ilustran las técnicas usadas por el software de diseño de filtros digitales de Iowa Hills
Software, y se incluyen un video tutorial para facilitar su utilización. Este software
(de carácter gratuito) será utilizado en las sesiones de diseño de filtros FIR e IIR del
128 Capítulo IV. Análisis, interpretación y presentación de los resultados
laboratorio de PDS. Así mismo, la lectura incluida es un soporte adicional para el
reconocimiento de las técnicas implementadas.
Este programa tiene dos bancos de pruebas, con los cuales es posible probar
el filtro ya sea con una onda cuadrada, sinusoidal o un archivo de audio. En este
sentido, el programa mostrará tanto la señal filtrada y sin filtrar en el dominio de la
frecuencia y del tiempo. Así mismo, cuenta con un banco de pruebas de audio que
le permite aplicar el filtro a un archivo .wav que le permite escuchar los efectos de
filtrado.
4.4.4. Prácticas del laboratorio de PDS en Tiempo Real
4.4.4.1. Práctica 0
Para esta práctica de laboratorio de iniciación, se provee un documento al es-
tudiante con los fundamentos de programación básicos en C para el desarrollo de
aplicaciones DSP. Esta práctica tiene por objetivo reconocer similitudes y discrepan-
cias con lenguajes ya conocidos para realizar programas simples para solucionar
problemas matemáticos.
Para realizar las actividades de esta práctica el estudiante deberá usar la he-
rramienta del laboratorio de programación virtual alojada en el curso PDS del aula
virtual. Esta herramienta se usa en un pre-laboratorio de prueba en VPL (Hola mun-
do en C). Por otro lado para el laboratorio, el contenido a desarrollar sera asociado
a programación en C como funciones, manejo de matrices y manejo de punteros,
complementando esta sesión con el tutorial de programación en C en línea.
Capítulo IV. Análisis, interpretación y presentación de los resultados 129
Figura 4.68: Práctica 0: Programación en C para procesamiento digital de señales.
4.4.4.2. Práctica 1
Esta práctica de laboratorio provee al estudiante un documento de lectura acer-
ca de procesadores de aritmética de punto fijo (fixed point) para el manejo de desbor-
damiento y escalamiento y las nociones generales para el uso de la librería DSPLIB
y las consideraciones para procesamiento en tiempo real (RT).
Figura 4.69: Práctica 1: Generación de señales senoidales.
130 Capítulo IV. Análisis, interpretación y presentación de los resultados
4.4.4.3. Práctica 2
La siguiente práctica de laboratorio tiene por objetivo el diseño de sistemas dis-
cretos para aplicaciones en tiempo real sobre fenómenos acústicos mediante y la
implementación sobre el hardware TMS320C55x gestionado con CCS. Se incluyen
en esta sesión actividades de pre laboratorio usando la herramienta vpl para el do-
minio de búfers circulares y lineales en C como también el diseño de sistemas dis-
cretos usando Octave. Por otro lado se complementa esta sesión con la herramienta
de programación con Octave en línea como soporte para las librerías del software.
Figura 4.70: Práctica 2: Procesamiento de sistemas discretos.
4.4.4.4. Práctica 3
La última práctica de laboratorio para el diseño de filtros digitales tiene por
objetivo el diseño de sistemas FIR e IIR con la metodología para el diseño de filtros
presentada en la lectura recomendada.
Por otro lado esta sesión no cuenta con actividad de pre laboratorio, sin embar-
go se usó una estrategia de repaso en línea con un cuestionario, ya que se considera
fundamental que se consoliden algunos aspectos previos al diseño y los parámetros
Capítulo IV. Análisis, interpretación y presentación de los resultados 131
requeridos por el software. En cuanto a los complementos, se suministran al estu-
diante los dos software estos al ser del tipo ejecutables son de muy bajo consumo
computacional.
Figura 4.71: Práctica 3: Diseño de filtros digitales.
4.4.5. Recursos de contenidos para prácticas del laboratorio de PDS
Para cada una de las prácticas de laboratorio se agregó una lectura previa como
preámbulo a las sesiones del laboratorio donde se recopilaron los aspectos gene-
rales necesarios para que el estudiante pueda llevar a cabo las diferentes sesiones.
Estos documentos cuentan con una reseña del contenido y agregan las fuentes bi-
bliográficas para que pueda ser extendido y profundizado por lo que se crearon
cuatro lecturas asociadas a cada una de las prácticas elaboradas.
Capítulo V
Conclusiones y recomendaciones
5.1. Conclusiones
La ventaja más significativa de los sistemas basados en DSP sobre los sistemas
análogicos es que los sistemas basados en DSP se benefician por los rápidos avan-
ces en las tecnologías de chips digitales. En este sentido, actualmente se pueden
encontrar en el mercado dispositivos de bajo costo y tamaño, con un incremento
significativo en la velocidad de los procesadores lo que permite reducir el tiempo
en la ejecución.
Por otro lado, los sistemas de DSP tienen la ventaja, sobre los sistemas analó-
gicos, de que los componentes analógicos sólo garantizan su precisión dentro de
un estado de tolerancia, por tanto dos sistemas analógicos pueden tener ligeras
diferencias de respuestas a las mismas entradas; En cambio los sistemas digitales
siempre producen la misma salida a partir de las mismas entradas.
Por su parte, Code Composer Studio es una herramienta realmente efectiva, la cual
nos ofrece, como característica principal, la administración de las herramientas ne-
cesarias para el desarrollo de proyectos destinados al trabajo con DSP, compilación,
ensamblado y enlazado de un programa, en una sola aplicación, lo cual en compa-
ración con experiencias con microprocesadores u otros lenguajes se deben utilizar
133
134 Capítulo V. Conclusiones y recomendaciones
distintos programas lo cual aumenta el tiempo de trabajo. Así mismo, CCS, ade-
más ofrece al usuario la capacidad de realizar aplicaciones sencillas con sólo crear
un nuevo proyecto en lenguaje C, siendo éste un lenguaje conocido y de mediana
complejidad.
Para seleccionar un dispositivo DSP, es necesario obtener una comprensión de
cómo las representaciones de hardware difieren y cómo afectan a la precisión y el
rango dinámico. También se necesita una comprensión del tipo de aplicación a im-
plementar y las motivaciones de diseño de los fabricantes del hardware. Otra consi-
deración es la disponibilidad de buenas herramientas de desarrollo y los paradig-
mas de programación que soportan. Por último, ya que el rendimiento es un factor
que impulsa el uso de DSP, el costo, la velocidad y el consumo de energía son los
parámetros claves para la selección del dispositivo.
Por otro lado, se debe considerar el efecto de cuantización basados en la longi-
tud de palabras, por lo tanto, cuando se realiza el diseño de las aplicaciones imple-
mentadas en hardware DSP, como filtros digitales es necesario definir ciertas restric-
ciones de precision que pueden ser alteradas como consecuencia de estos efectos.
El trabajo y desarrollo de nuevas aplicaciones a través de tarjetas de DSP y su
respectivo software, abre la posibilidad del ejercicio independiente de la profesión,
diseñando e ideando diferentes modelos de elementos como filtros, generadores de
onda, efectos de audio digital, equipos para evaluaciones médicas, etc.
Instaurar la plataforma del laboratorio de programación virtual, para el soporte
de la enseñanza de lenguaje de programación C para DSP, aporta un nuevo pa-
radigma de aprendizaje adecuado a las necesidades de este proyecto, siendo la
principal ventaja impartir sesiones paralelas no presenciales que requieran sinte-
tizar algún concepto de programación o ser previamente analizado e interpretado
con detenimiento, delegando así la tarea de depuración, ejecución y evaluación de
códigos a la plataforma.
Capítulo V. Conclusiones y recomendaciones 135
5.2. Recomendaciones
Mediante las técnicas de tratamiento de señales se puede realizar innumerables
aplicaciones, algunas podrían llegar a demandar mayores rendimientos, para esto
podría llegar a ser necesario alterar algunas de las condiciones impuestas para este
laboratorio, entre ellas el lenguaje de programación. C permite la escritura de pro-
gramas que incluyan secciones que requieran ejecuciones más rápidas en lenguaje
ensamblador y manejar directamente el hardware del dispositivo.
El laboratorio propuesto se encuentra con todo el equipamiento dispuesto para
la ejecución de la practicas, sin embargo, se recomienda complementar el contenido
de las lecturas de soporte, en función de las experiencias que se obtenga de los
estudiantes y profesores.
Se recomienda la futura ampliación de los experimentos desarrollados para que
cubran todos los contenidos del curso, añadiendo un proyecto como actividad final
del curso sobre aplicaciones dentro de la banda de frecuencia con la que operan
estos dispositivos.
En principio, este tipo de laboratorio fue concebido para un numero reducido de
estudiantes, sin embargo, como solo se dispone de un conjunto de dispositivos DSP,
se recomienda la planificación de los grupos de trabajo conservando un esquema
de pequeños grupos para el aprovechamiento y mayor seguimiento de las sesiones.
El uso de la herramienta de programación virtual es potencialmente útil para
desarrollos de este tipo de laboratorios, siendo extrapolable a otras disciplinas de
la ingeniería. Además, podría representar para la Facultad de Ingeniería un avance
significativo en sus esquemas pedagógicos. Esta investigación estuvo supeditada
a la implementación de la plataforma, no obstante se sugiere un estudio dedicado
para la evaluación de su potencialidad en el área de programación, ya que permite
interpretación de código como Phyton, Fortran,PHP, Ruby entre otros.
Referencias Bibliográficas
[1] S.M. Kuo, B.H. Lee, and W. Tian. Real-Time Digital Signal Processing: Imple-
mentations and Applications. Wiley, 2006. ISBN 9780470035511. URL http:
//books.google.co.ve/books?id=QIj9Pthp_T8C.
[2] C. Marven and G. Ewers. A Simple Approach to Digital Signal Processing. Topics
in Digital Signal Processing. Wiley, 1996. ISBN 9780471152439. URL http:
//books.google.co.ve/books?id=RcwZAQAAIAAJ.
[3] C. Roads, S.T. Pope, A. Piccialli, and G. De Poli. Musical Signal Processing.
Studies on new music research. Taylor & Francis, 2013. ISBN 9781134379774.
URL https://books.google.co.ve/books?id=m79mAgAAQBAJ.
[4] J. O. Smith. troduction to digital filters with audio applications. URL http:
//www.stanford.edu/jos/filters/.
[5] H.R. Schiffman. La percepción sensorial. Editorial Limusa S.A. De C.V.,
1997. ISBN 9789681853075. URL https://books.google.co.ve/books?id=
vcMARAAACAAJ.
[6] S.J. Orfanidis. Introduction to Signal Processing. Prentice Hall international edi-
tions. Prentice Hall, 1996. ISBN 9780132403344. URL https://books.google.
co.ve/books?id=4oC7QgAACAAJ.
[7] TMS320C5535 eZdsp: Technical Reference, Spectrum Digital, Inc., 2011. URL
http://support.spectrumdigital.com/boards/ezdsp5535/revc/files/
ezdsp5535_TechRef_RevC.pdf.
137
138 Referencias Bibliográficas
[8] Christopher Inacio and Denise Ombres. The DSP decision: Fixed point or
floating? IEEE Spectr., 33(9):72–74, September 1996. ISSN 0018-9235. doi:
10.1109/6.535397.
[9] Texas Instruments. C55x digital signal processor selection. URL http://www.
ti.com/lsds/ti/processors/dsp/c5000_dsp/c55x/products.page.
[10] Texas Instruments. TMS320C55X DSP Library Programmers Reference,
SPRU422J. Dallas, TX, 2000. Revised - May 2013.
[11] An-Yeu Wu. Algorithm-based Low-power Digital Signal Processing System Desings.
PhD thesis, The University of Maryland, 1995.
[12] TMS320C55xx Code composer Studio: Tutorial,Texas Instruments, 2011. URL http:
//www.ti.com/.
[13] Steven W. Smith. The Scientist and Engineer’s Guide to Digital Signal Processing.
California Technical Publishing, San Diego, CA, USA, 1997. ISBN 0-9660176-
3-3.
[14] S.K. Mitra. Digital Signal Processing Laboratory Using MATLAB. Computer
science series. WCB/McGraw-Hill, 1999. ISBN 9780071165921. URL http:
//books.google.co.ve/books?id=qGqKQgAACAAJ.
[15] Enrique Rubio R. Juan Carlos Rodríguez del Pino, Zenón J. Hernández F. Vpl:
Laboratorio virtual de programación para moodle. In XVI Jornadas de Enseñan-
za Universitaria de la Informática, 2010.
[16] M.D. Galanis, A. Papazacharias, and E. Zigouris. A DSP course for real-time
systems design and implementation based on the tms320C6211 DSk. In Digi-
tal Signal Processing, 2002. DSP 2002. 2002 14th International Conference on, volu-
me 2, pages 853–856vol.2, 2002. doi: 10.1109/ICDSP.2002.1028224.
[17] S.H. Mousavinezhad and I.M. Abdel-Qader. Digital signal processing in
theory and practice. In Frontiers in Education Conference, 2001. 31st Annual, vo-
lume 1, pages T2C–13–16vol.1, 2001. doi: 10.1109/FIE.2001.963878.
Referencias Bibliográficas 139
[18] L.W. Couch. Sistemas de comunicación digitales y analógicos. Pearson Educa-
ción, 2008. ISBN 9789702612162. URL https://books.google.co.ve/books?
id=A6imOgAACAAJ.
[19] J. W. Cooley and J. W. Tukey. An algorithm for the machine calculation of
complex fourier series. Math. Comput., 19:297–301, 1965.
[20] A.V. Oppenheim, R.W. Schafer, and J.R. Buck. Tratamiento de señales en tiem-
po discreto. Fuera de colección Out of series. Pearson Educaci000. ISBN
9788420529875. URL http://books.google.co.ve/books?id=q6c-AAAACAAJ.
[21] Supplement to ieee std 1149.1-1990, ieee standard test access port and
boundary-scan architecture. IEEE Std 1149.1b-1994, pages i–, 1995. doi:
10.1109/IEEESTD.1995.122623.
[22] J.G. Proakis and D.G. Manolakis. Digital Signal Processing. Pearson Prentice
Hall, 2007. ISBN 9780132287319. URL https://books.google.co.ve/books?
id=twtGPwAACAAJ.
[23] B. Owsinski and M. O’Brien. The Mixing Engineer’s Handbook. Mix pro audio
series. Mix Books, 1999. ISBN 9780872887237. URL https://books.google.co.
ve/books?id=cb00zXmqOpQC.
[24] J.D. Reiss and A. McPherson. Audio Effects: Theory, Implementation and Applica-
tion. CRC Press, 2014. ISBN 9781466560291. URL https://books.google.co.
uk/books?id=mlHSBQAAQBAJ.
[25] M. Rosenberg. E-Learning: Strategies for Delivering Knowledge in the Digital
Age. The Knowledge management magazine series. Mcgraw-hill, 2000. ISBN
9780071362689. URL http://books.google.co.ve/books?id=hI8643XS3SIC.
[26] A. Jolliffe, J. Ritter, and D. Stevens. The Online Learning Handbook: Developing
and Using Web-based Learning. The Times higher education supplement. Kogan
Page, 2001. ISBN 9780749432089. URL http://books.google.co.ve/books?id=
2wi7uPGt0c4C.
140 Referencias Bibliográficas
[27] S.S. Laurent, J. Johnston, and E. Dumbill. Programming Web Services with
XML-RPC. O’Reilly Series. O’Reilly Media, Incorporated, 2001. ISBN
9780596001193. URL https://books.google.co.ve/books?id=l40nvlrjWL0C.
[28] P.M. Embree. C Algorithms for Real-time DSP. Prentice Hall PTR, 1995. ISBN
9780133373530. URL https://books.google.co.ve/books?id=NG4eAQAAIAAJ.
[29] TMS320C5535 eZdsp: Technical Reference, Spectrum Digital, Inc., 2011. URL
http://support.spectrumdigital.com/boards/ezdsp5535/revc/files/
ezdsp5535_TechRef_RevC.pdf.
[30] Mercedes Rodenas Pastor. La utilización de los videos tutoriales en educación.
ventajas e inconvenientes. Revista Digital Sociedad de la Informaci, 2012.
[31] Fernando Peralta Reyes. Reconocedor y analizador de voz. Universidad Nacio-
nal Mayor de San Marcos., 2002.
Anexo A
Introducción al laboratorio de PDS
en tiempo real.
Anexo B
Iniciación a Code Composer Studio
y a la serie DSK TMS320C55x.
Anexo C
Tutorial para el software de diseño
de filtros digitales Iowa Hills
software for digital filters design.
Anexo D
Prácticas del laboratorio de PDS en
Tiempo Real.
Anexo E
Recursos de contenidos para las
prácticas del laboratorio de PDS.