158
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

DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 2: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 3: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 4: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 5: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 6: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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. . . .

Page 7: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

Í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

Page 8: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 9: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

Í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

Page 10: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 11: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

Í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

Page 12: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 13: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

Í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

Page 14: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 15: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 16: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 17: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 18: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 19: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 20: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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 .

Page 21: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 22: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 23: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 24: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 25: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 26: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE 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

Page 27: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 28: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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:

Page 29: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 30: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 31: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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].

Page 32: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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]

Page 33: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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].

Page 34: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 35: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 36: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 37: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 38: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 39: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 40: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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).

Page 41: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 42: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 43: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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].

Page 44: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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)

Page 45: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 46: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 47: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 48: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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].

Page 49: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 50: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 51: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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].

Page 52: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 53: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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:

Page 54: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 55: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 56: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 57: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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].

Page 58: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 59: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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].

Page 60: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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].

Page 61: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 62: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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].

Page 63: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 64: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 65: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 66: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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:

Page 67: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 68: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 69: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 70: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 71: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 72: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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)

Page 73: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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 .

Page 74: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 75: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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)

Page 76: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 77: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 78: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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)

Page 79: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 80: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 81: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 82: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 83: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 84: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 85: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 86: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 87: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Page 88: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 89: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 90: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 91: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 92: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 93: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 94: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 95: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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");

Page 96: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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).

Page 97: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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)’)

Page 98: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.)

Page 99: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 100: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 101: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 102: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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)

Page 103: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 104: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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,

Page 105: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 106: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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’);

Page 107: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 108: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 109: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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’);

Page 110: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 111: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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’);

Page 112: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 113: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 114: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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’);

Page 115: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 116: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 117: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 118: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 119: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 120: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 121: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 122: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 123: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 124: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 125: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 126: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 127: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 128: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 129: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 130: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 131: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 132: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 133: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 134: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 135: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 136: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 137: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 138: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 139: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 140: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 141: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 142: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 143: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 144: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 145: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 146: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 147: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 148: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 149: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 150: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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

Page 151: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 152: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 153: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

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.

Page 154: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

Anexo A

Introducción al laboratorio de PDS

en tiempo real.

Page 155: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

Anexo B

Iniciación a Code Composer Studio

y a la serie DSK TMS320C55x.

Page 156: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

Anexo C

Tutorial para el software de diseño

de filtros digitales Iowa Hills

software for digital filters design.

Page 157: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

Anexo D

Prácticas del laboratorio de PDS en

Tiempo Real.

Page 158: DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL …

Anexo E

Recursos de contenidos para las

prácticas del laboratorio de PDS.