Logo Studenta

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

¡Este material tiene más páginas!

Vista previa del material en texto

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

Continuar navegando