You are on page 1of 170

UNIVERSIDAD DE CARABOBO

FACULTAD DE INGENIERA
ESCUELA DE INGENIERA DE
TELECOMUNICACIONES
DEPARTAMENTO DE SEALES Y SISTEMAS

DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL


DSK TMS320C5535 COMO HERRAMIENTA BASE DE UN
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEALES EN
TIEMPO REAL

MANUEL DE OLIVEIRA

Brbula, 18 de Septiembre del 2015

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA DE
TELECOMUNICACIONES
DEPARTAMENTO DE SEALES Y SISTEMAS

DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL


DSK TMS320C5535 COMO HERRAMIENTA BASE DE UN
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEALES EN
TIEMPO REAL

TRABAJO ESPECIAL DE GRADO PRESENTADO ANTE LA ILUSTRE UNIVERSIDAD DE


CARABOBO PARA OPTAR AL TTULO DE INGENIERO DE TELECOMUNICACIONES

MANUEL DE OLIVEIRA

Brbula, 18 de Septiembre del 2015

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA DE
TELECOMUNICACIONES
DEPARTAMENTO DE SEALES Y SISTEMAS

CERTIFICADO DE APROBACIN
Los abajo firmantes miembros del jurado asignado para evaluar el trabajo especial de grado titulado D ESARROLLO DE UNA PLATAFORMA e-learning MEDIANTE
EL

DSK TMS320C5535 COMO HERRAMIENTA BASE DE UN LABORATORIO DE PRO -

CESAMIENTO DIGITAL DE SEALES EN TIEMPO REAL ,

realizado por el bachiller

M ANUEL D E O LIVEIRA, cdula de identidad 19.793.045, hemos decidido otorgar


la mxima calificacin y la mencin honorfica al presente trabajo, con base a los
siguientes motivos:

Firma
Prof. I NG . C ARLOS M EJAS
TUTOR

Firma

Firma

Prof. A MADH O SMAN

Prof. E DUARDO G ONZALEZ

JURADO

JURADO

Brbula, 18 de Septiembre del 2015

Dedicatoria
A mi abuela Ana
Aunque no est conmigo, fue mi inspiracin para lograr esta meta.
A mis padres Nancy Rodriguez y Eduardo De Oliveira
Quienes son mi ejemplo a seguir.
A mis hermanas Mariale y Andreina, mis fuentes de apoyo.
A toda mi familia, amistades y seres queridos.
MANUEL DE OLIVEIRA

Agradecimientos
En primer lugar, agradezco a Dios por la sabidura que me brindo en la consecucin de esta meta.
Al Ingeniero Carlos Mejas, mi Tutor acadmico, por sus conocimientos impartidos, por la paciencia y dedicacin que tuvo conmigo en el desarrollo de esta investigacin y adems, por entender mi abstracta forma de expresar mis ideas.
A la Ilustre Universidad de Carabobo, mi alma mter, y a todo el personal docente y administrativo de Escuela de Ingeniera de Telecomunicaciones por contribuir en mi crecimiento personal y acadmico.
A todo el personal del Instituto de Matemtica y Calculo Aplicado (IMYCA)
por facilitarme los recursos colaborar en la ejecucin de las actividades de este proyecto, en especial a el TSU Gustavo Jimnez por haberme suministrado tantos conocimientos y haber lidiado conmigo cada obstculo.
A la Direccin de Tecnologa Avanzada (DTA) por hacerme sentir todos como
parte de su equipo, de manera especial al ing. Oscar Davila por su apoyo y constancia en este proyecto.
Al profesor Juan C. Rodrguez del Pino del Departamento de Informtica y Sistemas de la Universidad de Las Palmas de Gran Canaria Espaa, por haber diseado 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 compaeros Rossana

VI

Mrquez, Ronald Ustariz, Yutzani Gallardo y Marelyn Sez por apoyarme y acordarse de mi en aquellos momentos difciles que solo ellos conocen. A Ruben Escobar mi mejor amigo, por estar siempre atento y por su valiosa amistad. A Mariam
Pulgar por llenarme de paz entre tanto caos, apoyarme y creer siempre en mi. . . .

ndice general
ndice de Figuras

XI

ndice de Tablas

XV

Acrnimos

XVII

Resumen
I. Introduccin
1.1. Motivacin . . . . . . . . . .
1.2. Objetivos . . . . . . . . . . .
1.2.1. Objetivos General . .
1.2.2. Objetivos Especficos
1.3. Alcances . . . . . . . . . . .

XIX

.
.
.
.
.

1
1
4
4
4
4

II. Marco conceptual


2.1. Procesamiento digital de seales . . . . . . . . . . . . . . . . . . . . .
2.1.1. Procesadores digitales de seales . . . . . . . . . . . . . . . . .
2.1.2. Conversin analgica/digital y muestreo . . . . . . . . . . . .
2.1.3. Aritmtica de procesadores . . . . . . . . . . . . . . . . . . . .
2.1.3.1. Notacin de punto fijo y flotante . . . . . . . . . . . .
2.1.3.2. Aritmtica de punto fijo . . . . . . . . . . . . . . . . .
2.1.4. Procesamiento digital de seales en tiempo real . . . . . . . .
2.1.4.1. Elementos Bsicos de un sistema DSP en tiempo real
2.2. Serie de procesadores digitales TMS320C55x . . . . . . . . . . . . . .
2.3. Diseo de sistemas de procesamiento digital de seales . . . . . . . .
2.3.1. Metodologa de diseo para procesamiento digital de seales
2.3.2. Seleccin de dispositivos DSP . . . . . . . . . . . . . . . . . . .
2.4. Lenguaje de programacin C para desarrollo de aplicaciones DSP . .
2.4.1. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.2. Punteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.3. Archivos y operaciones I/O . . . . . . . . . . . . . . . . . . . .
2.4.4. Bfers circulares y lineales . . . . . . . . . . . . . . . . . . . . .

7
7
9
10
11
11
12
14
15
16
17
17
18
18
19
20
20
21

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

VII

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

VIII

ndice general

2.5. Code Composer Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . .


2.5.1. Emulador XDS100 JTAG . . . . . . . . . . . . . . . . . . . . . .
2.5.2. Librera DSPLIB . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6. Sistema Digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.1. Sistemas Discretos . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.2. La transformada Z . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.3. Respuesta al impulso, de frecuencia y de fase de un sistema .
2.6.4. Suma de Convolucin . . . . . . . . . . . . . . . . . . . . . . .
2.6.5. Filtros Digitales . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.5.1. Tipos de filtros . . . . . . . . . . . . . . . . . . . . . .
2.6.5.2. El orden de un filtro . . . . . . . . . . . . . . . . . . .
2.6.5.3. Filtros FIR e IIR . . . . . . . . . . . . . . . . . . . . .
2.6.5.4. Consideraciones de longitud de datos finita para filtros digitales . . . . . . . . . . . . . . . . . . . . . . .
2.6.5.5. Efectos basado en filtros digitales: Ecualizacin . . .
2.7. Efectos de audio digital . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1. Principios del mecanismo auditivo humano . . . . . . . . . .
2.7.1.1. Rango de frecuencias audibles . . . . . . . . . . . . .
2.7.2. Efectos basado en retardos . . . . . . . . . . . . . . . . . . . . .
2.7.2.1. Eco . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.2.2. Reverberacin . . . . . . . . . . . . . . . . . . . . . .
2.7.3. Efectos en el dominio dinmico . . . . . . . . . . . . . . . . . .
2.7.3.1. Modulacin: Ring modulator . . . . . . . . . . . . . .
2.7.3.2. Distorsin . . . . . . . . . . . . . . . . . . . . . . . . .
2.8. Entorno de programacin virtual . . . . . . . . . . . . . . . . . . . . .
2.8.1. E-learnning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.2. Virtual Programing Lab (VPL) . . . . . . . . . . . . . . . . . .
2.8.2.1. Arquitectura VPL . . . . . . . . . . . . . . . . . . . .
2.8.2.2. Topologa de Red . . . . . . . . . . . . . . . . . . . .
2.9. Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
III.Procedimientos de la investigacin
3.1. Revisin Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Alojamiento e instalacin del VPL en el servidor . . . . . . . . . . . .
3.3. Reconocimiento del proceso de programacin . . . . . . . . . . . . .
3.3.1. Soporte para la programacin de los mdulos DSP y del ambiente integrado CCS . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2. Generacin de seales sinusoidales y tonos . . . . . . . . . . .
3.3.3. Estructuras para control de escritura y lectura I/O . . . . . . .
3.3.4. Convolucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.5. Sistemas discretos: Eco . . . . . . . . . . . . . . . . . . . . . . .
3.3.6. Sistemas Discretos: Reverberacin . . . . . . . . . . . . . . . .

22
24
25
26
26
27
27
28
29
29
31
31
33
34
34
35
36
37
37
38
39
40
40
41
41
42
42
43
45
47
47
49
53
53
54
55
56
57
58

ndice general
3.3.7. Sistemas discretos: Distorsin . . . . . . . . . . . . .
3.3.7.1. Distorsin no lineal por saturacin . . . .
3.3.7.2. Distorsin no lineal polinmica . . . . . .
3.3.8. Sistemas discretos: Modulacin . . . . . . . . . . . .
3.3.9. Filtros digitales . . . . . . . . . . . . . . . . . . . . .
3.3.9.1. Metodologa de diseo de filtros digitales
3.4. Elaboracin de las prcticas y recursos del laboratorio PDS

IX

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

59
59
60
60
61
61
63

IV. Anlisis, interpretacin y presentacin de los resultados


67
4.1. Resultados de la revisin terica de mdulos, tcnicas y soporte para
procesamiento digital de seales en tiempo real . . . . . . . . . . . . . 67
4.2. Alojamiento e instalacin del servidor VPL para el laboratorio de PDS 70
4.3. Reconocimiento de algoritmos y programacin para procesamiento
digital de seales en tiempo real sobre el modulo TMS320C5535 . . . 72
4.3.1. Plantilla de programacin para C5505/C5535 . . . . . . . . . 72
4.3.2. Generacin de seales sinusoidales . . . . . . . . . . . . . . . 73
4.3.2.1. Generacin de tonos puros sinusoidales . . . . . . . 73
4.3.2.2. Generacin de tonos musicales . . . . . . . . . . . . 74
4.3.2.3. Lectura y escritura de seales de voz . . . . . . . . . 76
4.3.2.4. Convolucin . . . . . . . . . . . . . . . . . . . . . . . 77
4.3.3. Sistemas discretos . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.3.3.1. Eco (Mediante ecuacin de diferencias) . . . . . . . . 80
4.3.3.2. Eco (Mediante funcin FIR) . . . . . . . . . . . . . . 85
4.3.3.3. Reverberacin . . . . . . . . . . . . . . . . . . . . . . 86
4.3.3.4. Distorsin no lineal por saturacin . . . . . . . . . . 91
4.3.3.5. Distorsin no lineal polinmica cuadrtica . . . . . . 94
4.3.3.6. Distorsin no lineal polinmica cbica . . . . . . . . 99
4.3.3.7. Efectos de la distorsin polinmica en audio . . . . . 104
4.3.3.8. Modulacin . . . . . . . . . . . . . . . . . . . . . . . . 106
4.3.4. Filtros digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.3.4.1. Filtro pasa bajas . . . . . . . . . . . . . . . . . . . . . 110
4.3.4.2. Filtro pasa altas . . . . . . . . . . . . . . . . . . . . . 112
4.3.4.3. Filtro pasa banda . . . . . . . . . . . . . . . . . . . . 114
4.3.4.4. Filtro Notch . . . . . . . . . . . . . . . . . . . . . . . . 116
4.3.5. Efectos de filtros digitales: Ecualizacin . . . . . . . . . . . . . 120
4.4. Recursos y prcticas del laboratorio de procesamiento digital de seales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
4.4.1. Introduccin al laboratorio de PDS en tiempo real . . . . . . . 126
4.4.2. Iniciacin a Code Composer Studio y a la serie DSK TMS320C55x 127
4.4.3. Tutorial para el software de diseo de filtros digitales Iowa
Hills software for digital filters design . . . . . . . . . . . . . . . . 127
4.4.4. Prcticas del laboratorio de PDS en Tiempo Real . . . . . . . . 128

ndice general

4.4.4.1. Prctica 0 . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.4.2. Prctica 1 . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.4.3. Prctica 2 . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.4.4. Prctica 3 . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.5. Recursos de contenidos para practicas del laboratorio de PDS

Referencias Bibliogrficas
Anexos
A. Entorno del Laboratorio de Programacin Virtual
B. Introduccin al laboratorio de PDS en tiempo real.
C. Practicas del laboratorio de PDS en Tiempo Real.
D. Soporte de contenidos para practicas del laboratorio de PDS.
E. Iniciacin a Code Composer Studio y a la serie DSK TMS320C55x.
F. Software de diseo de filtros digitales Iowa Hills software for digital filters design.

128
129
130
130
131

133

ndice de figuras
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
2.8.

Captacin de seal analgica por medio de un ADC . . . . . . . . . .


Formato de registro en complemento a 2. . . . . . . . . . . . . . . . .
Formato de registro en punto fijo. . . . . . . . . . . . . . . . . . . . . .
Procesamiento en tiempo real [1]. . . . . . . . . . . . . . . . . . . . . .
Elementos bsicos de los sistemas DSP en tiempo real [1]. . . . . . . .
Sistema de flujo de diseo DSP [2]. . . . . . . . . . . . . . . . . . . . .
Lnea de retardo implementado con desplazamiento de muestras [3].
Lnea de retardo con manipulacin de puntero usando direccionamiento circular [3]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9. Tipos de filtros [4] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.10. Diagrama de bloques general, filtro FIR [4]. . . . . . . . . . . . . . . .
2.11. Diagrama de bloques general, filtro IIR[4]. . . . . . . . . . . . . . . . .
2.12. Diagrama de sistema de ecualizacin de 3 bandas. . . . . . . . . . . .
2.13. Curvas de igual nivel sonoro expresada en dB [5]. . . . . . . . . . . .
2.14. Sistema de procesamiento digital de eco. . . . . . . . . . . . . . . . . .
2.15. Fenomeno de reverberacin [6]. . . . . . . . . . . . . . . . . . . . . . .
2.16. Sistema de procesamiento digital de reverberacin. . . . . . . . . . .
2.17. Sistema modulador en anillo. . . . . . . . . . . . . . . . . . . . . . . .
2.18. Tipos de Ejecucin: Pasos de corrida de peticin no interactiva. . . .
2.19. Tipos de Ejecucin: Pasos de corrida de peticin de interactiva. . . .

22
30
32
32
34
36
38
39
39
40
43
43

3.1. Ventana de impulso rentangular. . . . . . . . . . . . . . . . . . . . . .

62

4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.
4.8.

68
70
72
73
73
74
74

Diagrama de bloques modulo DSK TMS320C5535 [7]. . . . . . . . . .


Captura de comprobacin de servidor de ejecucin vpl. . . . . . . . .
Plantilla de programacin . . . . . . . . . . . . . . . . . . . . . . . . .
Seal sinusoidal f =
Hz en el dominio del tiempo. . . . . . . . . .
Seal sinusoidal f =
Hz en el dominio del tiempo. . . . . . . . .
Seal sinusoidal f =
Hz en el dominio de la frecuencia. . . . . . .
Seal sinusoidal f =
Hz en el dominio de la frecuencia. . . . . . .
Generacin notas musicales en escala anglosajona en el dominio de
la frecuencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.9. Seal de voz en el dominio del tiempo. . . . . . . . . . . . . . . . . . .

500
1000
500
1000

XI

10
13
13
15
15
17
21

75
76

ndice de figuras

XII

4.10. Seal de voz en el dominio de la frecuencia. . . . . . . . . . . . . . . . 76


4.11. Procesamiento de primer bloque de suma de convolucin. . . . . . . 78
4.12. Division de bloques de procesamiento de tamao fijo. . . . . . . . . . 79
4.13. Muestras de salida correctas y erroneas en procesamiento por bloques. 79
4.14. Diagrama de polos y ceros. k =
=
. . . . . . . . . . . . . . . . 81
4.15. Diagrama de polos y ceros. k = =
. . . . . . . . . . . . . . . . . 81
4.16. Diagrama de polos y ceros. k =
=
. . . . . . . . . . . . . . . . 82
4.17. Diagrama de bode, magnitud y fase. k =
=
. . . . . . . . . . . 83
4.18. Diagrama de bode, magnitud y fase. k = =
. . . . . . . . . . . . 83
4.19. Diagrama de bode, magnitud y fase. k =
=
. . . . . . . . . . . 84
4.20. Sistema que introduce eco en el dominio del tiempo usando pulso de
voz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.21. Sistema que introduce eco con FIR en el dominio del tiempo usando
pulso de voz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.22. Diagrama de polos y ceros. k =
=
. . . . . . . . . . . . . . . . 86
4.23. Diagrama de polos y ceros. k = =
. . . . . . . . . . . . . . . . . 87
4.24. Diagrama de polos y ceros. k =
=
. . . . . . . . . . . . . . . . 87
4.25. Diagrama de bode, magnitud y fase. k =
=
. . . . . . . . . . . 88
4.26. Diagrama de bode, magnitud y fase. k = =
. . . . . . . . . . . . 89
4.27. Diagrama de bode, magnitud y fase. k =
=
. . . . . . . . . . . 89
4.28. Respuesta del sistema que introduce reverberacin en el dominio del
tiempo a un pulso de voz. . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.29. Funcin de transferencia del sistema de distorsin no lineal por saturacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.30. Respuesta en frecuencia del sistema de distorsin por saturacin, a
un tono puro de 500Hz de entrada. . . . . . . . . . . . . . . . . . . . . 92
4.31. Respuesta en frecuencia del sistema de distorsin por saturacin, a
una pista de acordes de entrada. . . . . . . . . . . . . . . . . . . . . . 93
4.32. Funcin de transferencia distorsin polinmica cuadrtica. . . . . . . 95
4.33. Respuesta en la frecuencia del sistema de distorsin cuadrtica 4.3.,
a un tono puro de
Hz de entrada. . . . . . . . . . . . . . . . . . . . 95
4.34. Funcin de transferencia distorsin polinmica cuadrtica. . . . . . . 97
4.35. Respuesta en el tiempo del sistema de distorsin cuadrtica ??, a un
tono puro de
Hz de entrada . . . . . . . . . . . . . . . . . . . . . . 97
4.36. Respuesta en frecuencia del sistema de distorsin cuadrtica 4.4, a
un tono puro de
Hz de entrada. . . . . . . . . . . . . . . . . . . . . 98
4.37. Funcin de transferencia distorsin polinmica cbica. . . . . . . . . 100
4.38. Respuesta en el tiempo del sistema distorsin cbica 4.6, a un tono
puro de
Hz de entrada . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.39. Respuesta en frecuencia del sistema distorsin cbica 4.6, a un tono
puro de
Hz de entrada. . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.40. Funcion de transferencia distorsin polinmica cbica . . . . . . . . . 102

500

500

500

500
500

10
5
20

0,7
0,9
0,2
10
5
20

0,7
0,9
0,2

10
5
20

0,7
0,9
0,2
10
5
20

0,7
0,9
0,2

ndice de figuras

XIII

4.41. Respuesta en el tiempo del sistema de distorsin cbica 4.7, a un tono


puro de
Hz de entrada . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.42. Respuesta en frecuencia del sistema de distorsin cbica 4.7, a un
tono puro de
Hz de entrada . . . . . . . . . . . . . . . . . . . . . . 103
4.43. Respuesta en el tiempo, de seal de entrada (pista de acordes). . . . . 105
4.44. Respuesta en el tiempo del sistema de distorsin cuadrtica 4.4, a
una pista de acordes de entrada. . . . . . . . . . . . . . . . . . . . . . 105
4.45. Respuesta en el tiempo del sistema de distorsin cbica 4.7, a una
pista de acordes de entrada . . . . . . . . . . . . . . . . . . . . . . . . 105
4.46. Respuesta en el tiempo del sistema de modulacin sobre tono sinusoidal de
Hz y portadora
Hz . . . . . . . . . . . . . . . . . . . . 106
4.47. Respuesta en frecuencia del sistema de modulacin sobre tono sinusoidal de
Hz y portadora
Hz . . . . . . . . . . . . . . . . . . . . 107
4.48. Respuesta en frecuencia del sistema de modulacin sobre pista de
acordes y portadora Fm: 1KHz . . . . . . . . . . . . . . . . . . . . . . 108
4.49. Respuesta en frecuencia de seal de banda entre (
)Hz. . . . 109
4.50. Respuesta en magnitud, filtro pasa bajas. . . . . . . . . . . . . . . . . 110
4.51. Respuesta en frecuencia del filtro pasa bajas, a seal de banda . . . . 110
4.52. Respuesta en frecuencia del filtro pasa altas, a seal de banda. . . . . 112
4.53. Respuesta en frecuencia del filtro pasa alta, a seal de banda. . . . . . 112
4.54. Respuesta en magnitud, filtro pasa banda. . . . . . . . . . . . . . . . . 114
4.55. Respuesta en frecuencia del filtro pasa banda, a seal de banda. . . . 114
4.56. Filtro Notch Fc = kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.57. Respuesta en frecuencia del filtro Notch, a un seal sinusoidal pura
de kHz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.58. Respuesta en frecuencia de pista de acordes. . . . . . . . . . . . . . . 117
4.59. Respuesta en frecuencia del filtro Notch, a pista de acordes. . . . . . . 118
4.60. Ecualizador digital de tres bandas, para tono dual. . . . . . . . . . . . 120
4.61. Respuesta en frecuencia de la seal dual ( Hz- kHz) sin ecualizacin.121
4.62. Respuesta en frecuencia del sistema de ecualizacin, a una seal dual
( Hz- kHz). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.63. Ecualizador digital de tres bandas, para seal de banda ( Hz- kHz). 123
4.64. Respuesta en frecuencia de la seal de banda (200Hz-8kHz) sin ecualizacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.65. Respuesta en frecuencia del sistema de ecualizacin, a una seal de
banda ( Hz- kHz). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.66. Sesin 1: Introduccin al procesamiento digital de seales. . . . . . . 126
4.67. Sesin 2: Iniciacin a Code Composer Studio y a la serie DSK TMS320C55x.127
4.68. Prctica 0: Programacin en C para procesamiento digital de seales. 129
4.69. Prctica 1: Generacin de seales senoidales. . . . . . . . . . . . . . . 129
4.70. Prctica 2: Procesamiento de sistemas discretos. . . . . . . . . . . . . 130
4.71. Prctica 3: Diseo de filtros digitales. . . . . . . . . . . . . . . . . . . . 131

500

500

500

200

500

200

200 8000

800 4

800 4

200 8

200 8

Indice de tablas
2.1. Comparacin entre aritmtica de los procesadores [8] . . . . . . . . .
2.2. Tipos de datos soportados por el T MS C
[9] . . . . . . . . . .
2.3. Convencin de argumentos para funciones DSPLIB [10] . . . . . . . .

12
16
26

3.1. Comparacin paramtrica de productors de la serie C55x DSP. . . . .

49

4.1. Espectro de potencias de tonos puros. . . . . . . . . . . . . . . . . . .


4.2. Espectro de potencias de notas musicales en escala anglosajona. . . .
4.3. Espectro de potencias de armnicos generados del sistema de distorsion por saturacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4. Espectro de potencias de armnicos generados del sistema de distorsin cuadrtica 4.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5. Espectro de potencias de armnicos generados del sistema de distorsin cuadrtica 4.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6. Espectro de potencias de armnicos generados del sistema distorsin
cbica 4.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7. Espectro de potencias de armnicos generados del sistema distorsin
cbica 4.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8. Espectro de potencias de bandas lateral, modulador en anillo . . . . .
4.9. Espectro de potencias de seal de tono dual sin ecualizacin. . . . . .
4.10. Espectro de potencias del sistema actualizador, a una sealde tono
dual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73
75

320 5535

XV

93
96
98
101
104
107
121
122

Acrnimos
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

Tecnologas de la Informacin y Comunicacin

UART

Universal Asynchronous Receiver Transmitter

VLSI

Very Large Scale Integration

VPL

Virtual Programing Lab

XVII

DESARROLLO DE UNA PLATAFORMA E-LEARNING MEDIANTE EL


DSK TMS320C5535 COMO HERRAMIENTA BASE DE UN
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEALES EN
TIEMPO REAL
por

MANUEL DE OLIVEIRA

Presentado en el Departamento de Seales y Sistemas


de la Escuela de Ingeniera en Telecomunicaciones
el 18 de Septiembre del 2015 para optar al Ttulo de
Ingeniero de Telecomunicaciones

RESUMEN

El siguiente proyecto constituye el desarrollo de un laboratorio para el procesamiento digital de seales, mediante la programacin del kit de desarrollo C5535
eZdsp de Texas Instruments. Este hardware permitir tratar digitalmente seales en
tiempo real usando para esto herramientas en software de programacin de alto nivel.
De acuerdo con este enfoque, los estudiantes combinarn una doble experiencia de aprendizaje, software-hardware durante las prcticas del laboratorio de DSP,
mediante sesiones de manipulacin del hardware en las instalaciones de laboratorio
XIX

Resumen

XX

con el complemento de programacin virtual para la gestin y aprendizaje del software y los recursos, esta integracin representa gran alcance y aporta dinamismo al
proceso cognitivo mediante la experimentacin de los contenidos programados.
La motivacin es el contacto del estudiantes con herramientas de desarrollo para que con la aplicacin de los mtodos y solventando pequeos problemas, adquieran la metodologa de trabajo que requiere un ingeniero en el procesamiento digital
de seales, de igual manera incrementar la capacidad desarrollo y los propsitos de
esta misma lnea de investigacin del departamento de seales y sistemas, adems
de satisfacer la necesidad de los estudiante de adquirir habilidades orientadas al
uso de herramientas a la par de las tendencias tecnolgicas.
Los nuevos retos del sector educativo Venezolano asociado a los avances en
las telecomunicaciones, en nuevas tcnicas de modulacin, filtrado digital, procesamiento de imgenes y vdeo entre otras aplicaciones marca la relevancia de la
investigacin, someter el mdulo a diferentes esquemas de procesamiento permitir evaluar el manejo del hardware y dar un mapa completo de manipulacin de
tarjetas de desarrollo de este tipo.

Palabras Claves: DSP,Virtual Programing Lab (VPL), Laboratorio, Tiempo real,elearning, DSK

Tutor: ING. CARLOS MEJAS


Profesor del Departamento de Seales y Sistemas
Escuela de Telecomunicaciones. Facultad de Ingeniera adscrito al Laboratorio X

Captulo I

Introduccin
1.1.

Motivacin

Los esquemas de procesamiento digital de seales (DSP) han crecido vertiginosamente debido al avance de las tecnologas de circuitos de gran escala de integracin (VLSI), lo que ha permitido la implementacin de sistemas digitales ms
complejos, dejando a un lado los sistemas analgicos ya que estos aportan flexibilidad en el diseo para la programacin de funciones sin necesidad de modificar el
circuito integrado [11].
As mismo, el procesamiento digital de seales en tiempo real, se ha convertido
en un campo competitivo dentro de la ingeniera en estos ltimos aos. El DSP es
un rea de desarrollo, de investigacin y de experimentacin donde los estudiantes y los investigadores estn constantemente evaluando diferentes arquitecturas
de procesadores, as como optimizando libreras necesarias para el procesamiento
digital en tiempo real [1].
Actualmente, los productos de DSP representan una solucin para los sistemas
de intensa carga computacional, los cuales se encuentran clasificados por arquitectura, eficiencia de procesamiento, estructura de los datos y otras cualidades. Entre los principales fabricantes de estos productos, Texas Instruments (TI) lidera el

Captulo I. Introduccin

mercado, presentando alternativas que integran bajo costo y alto rendimiento, adems de soporte a una variedad de herramientas computacionales como MATLAB
y LABVIEW, para el desarrollo y la experimentacin de diferentes prototipos en las
diversas reas de investigacin. En este mismo orden de ideas, TI proporciona el
software Code Composer Studio como un ambiente de desarrollo para la evaluacin y
ejecucin de programas en C [12], por su cualidades para aplicaciones en DSP en
tiempo real como por ejemplo, el control de estructuras de tipo lgico y el manejo
eficiente de memoria.
Mientras tanto, en universidades y centros de investigacin, las tecnologas basadas en microprocesadores necesitan del apoyo de laboratorios para la experimentacin; sin embargo, los contenidos de asignaturas como microprocesadores
y diseo digital, no suelen cubrir mdulos de procesadores digitales de seal ni la
metodologa de diseo para esto, es por ello que para poder incentivar el proceso
cognitivo en esta rea de la ingeniera se debe priorizar el uso de productos de DSP
[13].
Por otro lado, el laboratorio actual de DSP de la Escuela de Ingeniera de Telecomunicaciones, se basa en el trabajo de Sanjit Mitra, Digital Signal Processing Laboratory Using MATLAB [14], el cual asume que el estudiante no tiene antecedentes
en este entorno y lo gua, a travs de programas de prueba en la primera mitad del
curso, en el manejo de los conceptos bsicos de este lenguaje mediante la solucin
de problemas, y el resto del material se enfoca en el anlisis y diseo de sistemas
discretos para procesamiento de seales.
De ah que el trabajo anterior guarde relacin 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 metodologa de trabajo carece del enfoque practico asentado en el desarrollo de algoritmos
en lenguaje C, del control del recurso computacional y la programacin de productos de DSP. As mismo debido a lo repetitivo de los procedimientos y la falta de
experiencias en trminos de procesamiento en tiempo real, se presenta la necesidad
de plantear un nuevo esquema de laboratorio.

Captulo I. Introduccin

Con el propsito de que el laboratorio sea dimensionado para fines educativos


y experimentales se requiere la adquisicin de los productos DSPs y de la gestin
del sistema de aprendizaje; no obstante, esta situacin se vuelve problemtica si
no se cuenta con el equipo suficiente. Frente a esto la modalidad e-learning podra
tomar lugar y disminuir los recursos necesarios.
Es por esto que el desarrollo de Juan Carlos Rodriguz del Pino, VPL: Laboratorio Virtual de Programacin para Moodle [15], es una solucin e-learning de educacin
a distancia para la gestin de laboratorios de programacin virtual, el cual proporciona la posibilidad de editar cdigo fuente en una gran cantidad de lenguajes y
ejecutar prcticas desde un navegador web. En este sentido, se exponen los aspectos ms relevantes y se sugiere una arquitectura del sistema para el plugin VPL, lo
que permite una herramienta para el manejo de los recursos de programacin en la
plataforma Moodle, a software DSP como el Code Composer Studio.
Por otro lado, en la Universidad de Petras, Galanis Michail desarroll un trabajo 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 mdulo DSP,
enfocado al aprendizaje de algortimos para DSP sobre procesadores embebidos,
donde el autor hace nfasis en la transicin de ambientes de simulacin y diseo
avanzado, como MATLAB.
De esta manera y en el contexto general anteriormente citado, el presente trabajo centra toda su atencin, mostrar de entre la extensa gama de posibilidades y
aplicaciones posibles, las tcnicas de procesamiento digital de seales de audio en
tiempo real para la obtencin de los efectos ms frecuentes con los que se puede
modificar el sonido original, con el objetivo de proporcionar al estudiante un potente vehculo para la expansin de sus capacidades de desarrollos en DSP .

Captulo I. Introduccin

1.2.

Objetivos

1.2.1.

Objetivos General

1. Desarrollar una plataforma e-learning mediante el mdulo DSK TMS320C5535


como herramienta base de un laboratorio de procesamiento digital de seales
en tiempo real.

1.2.2.

Objetivos Especficos

1. Revisar las fuentes bibliogrficas referentes a las tcnicas de DSP para la seleccin de los algortimos adecuados.
2. Componer algoritmos en lenguaje C para el procesamiento de seales de audio en tiempo real sobre el mdulo de DSP.
3. Describir el contenido de cada practica para la elaboracin de la gua de laboratorio de DSP.
4. Elaborar los recursos didcticos necesarios para la estructuracin de la plataforma del laboratorio virtual.
5. Desarrollar la plataforma de trabajo bajo el entorno Moodle VPL, para la gestin de recursos del laboratorio de DSP.

1.3.

Alcances

La presente investigacin precisa el diseo y la implementacin de toda la plataforma, entre los elementos y procesos se incluyen:
Revisin de procesadores de los Texas Instruments para la seleccin de la herramienta base del laboratorio.
Elaboracin de los contenidos de procesamiento digital de seales del laboratorio, para desarrollar aplicaciones propsito general.

Captulo I. Introduccin

Seleccin de los algoritmos a desarrollar sobre el modulo, adecuados a su


cualidades y caractersticas, para ilustrar los contenidos programados del laboratorio sobre el ambiente de desarrollo integrado CCS.
Ejecutar operaciones sobre seales digitales en el modulo DSP, sistemas discretos como eco y reverberacin, muestreo, convolucin por bloques, aliasing
en la frecuencia y tiempo, diseo de filtros FIR e IIR.
Instalacin de plug-ing VPL sobre el servidor Moodle.
Gestin del soporte de red del servidor de ejecucin.
Creacin del servidor de ejecucin para la plataforma VPL.

Captulo II

Marco conceptual
Bases Tericas
2.1.

Procesamiento digital de seales

En todos los espacios nos encontramos inmersos de cientos de seales, entre


ellas las generadas por las sondas espaciales, los radares y las tensiones generadas
por el corazn y el cerebro as como de vibraciones ssmicas y acsticas.
Cabe sealar que el odo de los seres humanos es un sensor que transforma las
seales acsticas en pulsos elctricos, que luego son transmitidos al cerebro, el cual
tiene la habilidad de procesarlos e interpretarlos en tareas como por ejemplo el reconocimiento de voces y de posiciones, permitiendo tomar decisiones para ejecutar
alguna respuesta [13].
En virtud de esto, desde hace unos 25 aos se ha explotado el uso de computadoras para recrear el procesamiento de seales de un cerebro, Kuo S.M. define a
el procesamiento digital de seales como la ciencia de la utilizacin de las computadoras para el tratamiento de seales del tipo digital [1], esta rea de la ingeniera
incluye entre sus funciones, filtrado, reconocimiento de voz, procesamiento de imgenes, compresin de datos, entre otras ms.
7

Captulo II. Marco conceptual


El DSP es una de las tecnologas con ms crecimiento en ciencia e ingeniera y

los diferentes campos han desarrollado algoritmos especializados para diferentes


propsitos convirtindose en un complemento para la adquisicin de datos en muchas aplicaciones y consumibles[17], como telfonos, control de motores y aparatos
mdicos, mejorando el rendimiento de los sistemas.
Las ventajas de usar sistemas de procesamiento de seal en lugar de dispositivos analgicos tradicionales (como amplificadores, moduladores y filtros entre
otros) son las siguientes:

Flexibilidad: Las funciones del procesado digital de seal pueden ser modificadas o actualizadas mediante software, usando el mismo hardware para un
algoritmo especfico.
Reproducibilidad: El rendimiento de estos sistemas puede ser repetido exactamente, de una unidad a otra. Esto porque el procesamiento de las seales
de estos sistemas trabajan directamente con secuencias binarias.
Confiabilidad: La memoria y lgica del hardware de estos sistemas no se deteriora con el tiempo. Por lo tanto, el rendimiento en el campo de los sistemas
de procesado digital de seal, no se deteriora con el cambio de las condiciones ambientales o el tiempo de los componentes electrnicos, como sus contra
partes analgicas lo hacen.
Complejidad: Estos sistemas permiten sofisticadas aplicaciones que pueden
ser implementadas en dispositivos porttiles con un bajo consumo de potencia, lo que resultara imprctico con tcnicas analgicas tradicionales.

Captulo II. Marco conceptual

2.1.1.

Procesadores digitales de seales

Los procesadores digitales se les conoce en el mercado internacional como DSP


de sus siglas en ingles Digital Signal Processor, son dispositivos especialmente diseados para tratar seales en formato digital, esto implica la conversin de las
cantidades fsicas analgicas, para esto se deben capturar muestras de valores de la
seal analgica en un tiempo con una precisin limitada, este formato digital representa la seal en una secuencia de nmeros que pueden ser fcilmente manipulados
por medio de una computadora o un procesador [18].
El trmino DSP en la prctica se refiere a microprocesadores diseados para
realizar procesado digital de seal que utilizan arquitecturas especiales para acelerar los clculos matemticos intensos implicados, dichas arquitecturas incluyen
elementos circuitales para ejecucin rpida de las operaciones de multiplicar y acumular conocidas como MAC, tambin poseen arquitecturas de memoria que permiten un acceso mltiple y as cargar varias operaciones [13].
Las operaciones MAC se refieren al proceso de multiplicacin y acumulacin
que es requerido en la mayora 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 ms rpidas significan potencialmente mayor ancho de
banda, sin embargo este parmetro por si mismo no define el rendimiento de estos procesadores. As mismo, para desarrollar la operacin MAC eficientemente, se
debe integrar en el mismo flujo de datos, para poder completar la operacin dentro
de un ciclo de instruccin.
Estos operaciones son de la forma:

y=

count
X

ai xi

i=1

Por otro lado uno de los desarrollos con mayor impacto en el crecimiento, anlisis, diseo y realizacin de procesadores digitales de seal, fue la investigacin de
Cooley y Tukey, An algorithm for the machine calculation of complex fourier series[19], el

10

Captulo II. Marco conceptual

algoritmo de la Transformada Rpida de Fourier (FFT), reduce el costo de computo


y permite mayor eficiencia en la administracin de los recursos.

2.1.2.

Conversin analgica/digital y muestreo

La captura del sonido se lleva acabo con el micrfono o algn instrumento musical que realiza la transduccin de audio a pulsos elctricos como ocurre en el
caso de una guitarra acstica o elctrica. Cuando las ondas de sonido llegan al micrfono, el movimiento mecnico se traduce en una seal elctrica. Esta seal se
denomina seal analgica porque es una seal continua en el tiempo, anloga al
sonido original.

Figura 2.1: Captacin de seal analgica por medio de un ADC

Segn el teorema de Nysquist o teorema de muestro, es posible replicar con exactitud una forma de onda si la frecuencia de muestreo Fs es como mnimo el doble de
la frecuencia de la mayor componente espectral de la seal analgica a muestrear,
de forma que se evita la apariencia de las muestras ambiguas y repetidas originadas
por el fenmeno de aliasing [20].
En este sentido un convertidor analgico a digital es un dispositivo capaz de
convertir seales analgicas de voltaje en una seal digital con valores binarios. La
seal de entrada como se muestra en la figura 2.1 se somete a un muestreo a una

Captulo II. Marco conceptual

11

velocidad fija, para un convertidor de 16 bits se tendrn salidas dentro de un rango


de 32768 a -32767.

2.1.3.

Aritmtica de procesadores

Los DSP son dispositivos que han sido especialmente diseados para tratar seales en formato digital para el procesamiento de algoritmos complejos que requieren muchos cmputos. Entre las caractersticas fundamentales de los DSP se
encuentra el tipo de formato aritmtico utilizado por el procesador para tratar y
almacenar los datos, por lo que existe una estrecha relacin entre el formato numrico y el nmero de bits, este es un factor que deben considerar los diseadores
de estos sistemas para determinar cul es el procesador idneo para una aplicacin
dada. Estos procesadores pueden ser divididos en dos categoras, de punto fijo y
punto flotante, y esta clasificacin se refiere a la forma en que los datos son tratados
y almacenados.

2.1.3.1.

Notacin de punto fijo y flotante

Los procesadores de punto flotante suele tener un mnimo de 32 bits para almacenar los datos dando lugar a una cantidad de

232 = 4, 294, 967, 296 bits lo que

representa un amplio rango dinmico. Una caracterstica clave de la notacin de


punto flotante es que los datos no estn espaciados uniformemente de tal manera que la diferencia entre dos nmeros es de unos diez millones de veces menor
que el valor de los nmeros. Esto es importante porque pone grandes espacios entre nmeros grades, pero pequeos espacios entre nmeros pequeos. El estndar
(ANSI/IEEE Std.754-1985) determina el tamao mximo de

3,4x1038 [13].

Por otro lado los de punto fijo, usan 16 bits de datos para almacenar una cantidad de

216 = 655364 bits para representar un nmero. Pueden representarse de

cuatro formas, entero sin signo, formato en que el nmero almacenado puede tomar
cualquier valor entero de 0 a 65.535, entero con signo que utiliza el complemento a
dos para incluir los nmeros negativos, de -32.768 a 32.767, notacin de fraccin sin

12

Captulo II. Marco conceptual

signo, donde los 65536 niveles se distribuyen uniformemente entre 0 y 1 y por ltimo, el formato de fraccin con signo que permite a nmeros negativos, igualmente
espaciados entre -1 y 0.999. Los procesadores con este tipo de manejo de datos utilizan menos rea de silicio que sus contra partes de punto flotante, permitiendo
ofrecer procesadores ms econmicos y con menor consumo de potencia. Sin embargo, debido a su limitado rango dinmico y las reglas de la aritmtica asociada, el
diseador deber decidir si los datos de 16 bits sern 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: Comparacin entre aritmtica de los procesadores [8]
Punto fijo
Arquitecturas muy rpidas
Bajo costo
Margen dinmico reducido y precisin media
Programacin con tcnicas de escaldo (desbordamiento)
Bajo consumo de potencia

2.1.3.2.

Punto flotante
Arquitecturas de velocidad media
Costo medio
Alto margen dinmico y alta precisin
Programacin sencilla
consumo de potencia medio

Aritmtica de punto fijo

La representacin finita de un numero fraccionario se conoce como punto fijo y


se refiere a un mtodo de representacin de nmeros con una parte fraccionaria en
una ALU que slo maneja operaciones de enteros. En general un nmero en punto
fijo es una interpretacin en complemento a 2 y se representa en notacin Qm.n,
donde m bits se utilizan para representar en complemento a 2 la cantidad de bits
de la porcin entera y n bits para representar en complemento a 2 la porcin de bits
de la parte fraccionaria, siendo el nmero de total de bits N = m+n+1, el bit extra
es usado para almacenar, en la posicin ms significativa, el signo del nmero [8].
La representacin de un entero de N-bit de punto fijo en complemento a 2, tiene la
forma:

Captulo II. Marco conceptual

13

Figura 2.2: Formato de registro en complemento a 2.

Cada palabra 1 tiene el mismo nmero de dgitos y el punto binario esta siempre
fijo en la misma posicin, El rango dinmico de un procesador se refiere al intervalo
del tamao de registro que puede manejar, con un procesador de N-bits podemos
representar enteros con signo con un rango dinmico entre:

2N 1)

2N 1) 1

(2.1)

Esta notacin 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 dinmico es de -32768 y 32767, por lo que una operacin de multiplicacin por ejemplo
que genere como resultado un nmero entero fuera de este intervalo representa un
desbordamiento. Para esto se debe normalizar el nmero a alguna representacin
fraccionaria por ejemplo, entre 1.

Figura 2.3: Formato de registro en punto fijo.

Como se describe en la figura 2.3, un nmero de punto fijo se define por su


alcance y resolucin, en lugar del nmero de bits. y el punto se encuentra fijo en
la estructura de registro, el valor de n, en la expresin escala o normaliza los datos
contenidos en el registro.
1
Cuando se hace referencia a la palabra nos referimos en lenguaje computacional al dato o al nmero que almacenamos

14

Captulo II. Marco conceptual

2.1.4.

Procesamiento digital de seales en tiempo real

Las aplicaciones DSP pueden manejarse en dos perspectivas dependiendo del


propsito, fuera de lnea o en tiempo real, la primeras implican que las seales
manipuladas son previamente almacenadas en formato digital y el resultado no
representa una accin actual en proceso. Por su parte las de tiempo real imponen
exigencias rigurosas en hardware de DSP y en diseo de software para completar las
tareas predefinidas en un plazo determinado. Para poder llevar a cabo aplicaciones
en tiempo real, la mayor limitacin a considerar es el ancho de banda del sistema,
ya que esta determina la razn mxima a la cual una seal analgica puede ser
muestreada.
Por lo tanto, un sistema de DSP en tiempo real, como los que sern diseados
en este laboratorio, demanda que el tiempo de procesamiento de la seal, 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 restriccin limita la ms alta frecuencia de la seal que puede ser procesada
por el sistema DSP. Este lmite de ancho de banda en tiempo real es dado como:

fM 6

fs

<

2(tp + to)

De la ecuacin presentada es claro que para el tiempo de procesamiento tp ms


largo, tendremos el ms corto ancho de banda que puede ser manejado por el sistema. El ancho de banda en tiempo real puede ser aumentado si se reduce el tiempo
en operaciones I/O esto se puede conseguir usando mtodos de procesamiento por
bloques.

Captulo II. Marco conceptual

15

Figura 2.4: Procesamiento en tiempo real [1].

De este principio resulta que en el procesamiento de seal digital en tiempo


real, las seales de entrada se puedan procesar sin generar interrupcin 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 adquisin
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 Bsicos 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 seal analgica es convertida a digital, procesada por un
hardware DSP de forma digital y convertida nuevamente en analgica, para algunas
aplicaciones las entradas pueden encontrarse previamente en formato digital por
ejemplo si son de alguna clase de informacin o incluso podran ser generadas estas
entradas por el propio procesador.

Figura 2.5: Elementos bsicos de los sistemas DSP en tiempo real [1].

16

Captulo II. Marco conceptual

2.2.

Serie de procesadores digitales TMS320C55x

El TMS320 es un nombre general para una serie de procesadores de seales


digitales de Texas Instruments (TI). Los procesadores estn disponibles en muchas
variantes diferentes, algunas con aritmtica de punto fijo y algunas con aritmtica
de punto flotante.
La presente serie TMS320C5x de procesadores hace con su nombre referencia a:

1. TMS: Dispositivo calificado.


2. C: Tecnologa de construccin CMOS, ROM como memoria voltil sobre el
chip.
3. 5: Generacin.
4. X: Numero de versin.
Tabla 2.2: Tipos de datos soportados por el T MS320C5535 [9]

Tipo de datos
Char
Unsigned char
Short
Unsigned short
Int
Unsigned int
Long
Unsigned long
Float
Double
Long double
Enum
Data pointer
Data pointer
Program pointer

Tamao
16-bit
16-bit
16-bit
16-bit
16-bit
16-bit
32-bit
32-bit
32-bit
32-bit
32-bit
16-bit
16-bit
23-bit
24-bit

Representacin
ASCII
ASCII
Complemento a 2
Binaria
Complemento a 2
Binario
Complemento a 2
Binario
IEEE 32-bit
IEEE 32-bit
IEEE 32-bit
Complemento a 2
Memoria small
Memoria large
Funcin

Rango

32768, 32767]
[0, 65535]
[32768, 32767]
[0, 65535]
[32768, 32767]
[0, 65535]
[2147483648, 2147483647]
[0, 4294967295]
[1,175494x1038 , 3,40282346x1038 ]
[1,175494x1038 , 3,40282346x1038 ]
[1,175494x1038 , 3,40282346x1038 ]
[32768, 32767]
[0x0, 0xFFFF]
[0x0, 0x7FFFFF]
[0x0, 0xFFFFFF]
[

Captulo II. Marco conceptual

2.3.

17

Diseo de sistemas de procesamiento digital de seales

Para definir los requerimientos del sistema en el desarrollo de aplicaciones se


deben considerar los aspectos tericos del DSP tales como el anlisis de seales,
recursos y configuracin de anlisis.

2.3.1.

Metodologa de diseo para procesamiento digital de seales

En lo que concierne a la generacin de aplicaciones el sistema de diseo para


DSP de Marven, C. y Ewers, G., mediante el mdulo y el software integrado, presenta una solucin basado en un diagrama de flujo que permite realizar el diseo
de una aplicacin de forma secuencial [2], el cual esta comprendido en las etapas
siguientes

Figura 2.6: Sistema de flujo de diseo DSP [2].

18

Captulo II. Marco conceptual

2.3.2.

Seleccin 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 disear
por lo que la toma decisin se basa en la potencia computacional, resolucin 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 crtica por lo que deben
tomarse para su seleccin 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 instruccin, es el tiempo necesario para ejecutar la instruccin mas rpida del
procesador
El costo del DSP, es un parmetro asociado a las necesidades y volmenes de
aplicaciones en el, el precio varia en cuanto a las prestaciones como memoria
y funcionalidad

2.4.

Lenguaje de programacin C para desarrollo de aplicaciones DSP

C ha sido distinguido por la eficiencia del cdigo que produce no solo por la
potencialidad de los comandos y estructuras de datos, sino tambin por su portabilidad para migrar entre plataformas y dispositivos DSP, por lo que es el lenguaje
ms popular para crear desarrollos de software, aplicaciones y para la programacin de microcontroladores de todo tipo.
En este sentido, C es un lenguaje de medio nivel con muchas caractersticas de
bajo nivel, como son las estructuras de control, sin embargo, tambin dispone de
las tpicas composiciones de los lenguajes de alto nivel permitiendo construir algortimos que mezclan lenguaje ensamblador. Cabe sealar que los compiladores

Captulo II. Marco conceptual

19

suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo en ensamblador con cdigo C o acceder directamente a memoria o a dispositivos perifricos.
El compilador C traduce programas de alto nivel a lenguaje de mquina que puede ser ejecutado por procesadores como los pertenecientes a la serie TMS320C55x.
Por otro lado, los ambientes de programacin incluyen programas de depuracin
(debugger) para identificar errores en programas fuente.
Cabe sealar que el propsito de la programacin en DSP es manipular seales
digitales para una aplicacin especfica 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 matemticos.
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 perifricos I/O.

2.4.1.

Funciones

Todos los programas en C tienen una o ms funciones incluyendo el main. En C


las funciones o subrutinas estn disponibles en las libreras. Estas funciones son un
conjunto de sentencias que tpicamente ejecutan una operacin. Para mantener la
simplicidad y la legibilidad en aplicaciones complicadas, se desarrollan programas
que usen una nica funcin main aadiendo otras adicionales, en vez de usar una
sola funcin main muy larga.
Se debe sealar que una funcin consiste en una definicin de sentencia seguida por el cuerpo de la funcin, 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 parntesis contiene los argumentos, mientras que las llaves contienen las sentencias
ejecutables.

20

Captulo II. Marco conceptual

2.4.2.

Punteros

C posee un tipo de variable llamada puntero, un puntero es una variable que


almacena una direccin de memoria de algn dato, estos son utilizados principalmente para los siguientes propsitos:

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 dinmico de la memoria).
Acceder a diferentes posiciones en una estructura de datos.

Por lo tanto, para la manipulacin adecuada de punteros se requiere del operador de indereccin (*) que es usado cuando es requerido el dato almacenado en la
direccin al que apunta el puntero, y el operador de direccin (&) que se utiliza para apuntar a la direccin 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 dinmica.

2.4.3.

Archivos y operaciones I/O

En DSP, las funciones para la interaccin con el usuario no son utilizadas, sin
embargo, con ciertas funciones podremos interactuar con el procesador y sus perifricos. Para usar el estndar de funciones (input/output) provista por el compilador
C, debemos tener la directiva del procesador #include<stdio.h> que incluyen los archivos de cabecera del estndar I/O para la declaracin de funciones. Las funciones
ms usadas identifican los archivos para lectura o escritura usando puntero para almacenar la direccin de la informacin requerida y para acceder al archivo.

Captulo II. Marco conceptual

2.4.4.

21

Bfers circulares y lineales

Los filtros de respuesta impulsiva finita son encontrados comnmente en una


gran cantidad de aplicaciones de procesamiento digital de seales, estos son implementados basados en la siguiente ecuacin:

yn =

N
X1

xn1 ai

i=0

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 nmero de elementos del bfer. Como vemos en la ecuacin anterior, para calcular cada salida yn , necesitamos mantener un
bfer de los valores previos de la entrada junto con la muestra actual. Tpicamente,
un puntero es fijado al inicio del arreglo de muestras, que coincide con la muestra
ms 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 necesite ser aadida a la lnea de retardo todos los valores debern ser desplazados
hacia abajo como se indica, o el valor ms antiguo necesita ser sobrescrito como
se indica en la figura. En este sentido La segunda tcnica puede ser implementada
usando modo circular para el acceso al puntero.

Figura 2.7: Lnea de retardo implementado con desplazamiento de muestras [3].

El direccionamiento circular usa la manipulacin de punteros para aadir las


nuevas muestras en la memoria o bfer sobrescribiendo las muestras ms antiguas
disponibles, por tanto, la reutilizacin de la memoria del bfer. Cuando el puntero
llega a la ltima ubicacin de la lnea de retardo que necesita para volver de nuevo
al principio de la lnea, lo que amerita cierta cantidad de sobrecarga de software.

22

Captulo II. Marco conceptual


Cuando se usa direccionamiento circular, el puntero se ajusta automticamente

a la parte superior cada vez que se llega al final de la memoria del bfer. Como una
consecuencia, las posiciones de memoria aparecen estar enlazadas de una manera circular, de ah el nombre de bfer circular. La mayora de los procesadores de
seales digitales implementan bfer circular en el hardware en para conservar la
memoria y reducir al mnimo los gastos generales de software.

Figura 2.8: Lnea de retardo con manipulacin de puntero usando direccionamiento 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 desarrollo integrado para incorporar herramientas de software, cuenta con un compilador
que genera cdigo optimizado del DSP en C, un ensamblador y un enlazador. Este
entorno cuenta con capacidades grficas y soporta depuracin en tiempo real, lo
que permite a los desarrolladores un manejo rpido y sencillo para moverse en todas las fases del proceso de diseo de una aplicacin, otorgndoles la capacidad de
construir y depurar programas.

El compilador C, compila cdigo 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.

Captulo II. Marco conceptual

23

Por otro lado el enlazador combina archivos y libreras objeto como entrada

para producir un archivo de salida ejecutable con extension out. Este tipo de formato de archivo de objeto comn 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 tecnologa 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 necesarios para el desarrollo de aplicaciones bajo CCS (compilador, ensamblador,
enlazadores, etc).
2. CCS Integrated Development Environment (IDE): este es el ambiente que integra y maneja todos los componentes de CCS que permiten diseo, edicin y
depuracin de la aplicacin.
3. DSP/BIOS: son libreras de funciones que permiten la comunicacin con la
aplicacin durante la corrida sobre los sistemas de hardware, el DSP/BIOS
esta compuesto en dos secciones:
DSP/BIOS Plug-Ins: Ofrece la posibilidad de anlisis de aplicaciones con
el mnimo impacto sobre desarrollos en tiempo real.
DSP/BIOS API (Application Interface): Provee los componentes de software que son llamados a travs de la aplicaciones fuentes.
En cuanto al anlisis en tiempo real, se puede llevar a cabo utilizando el intercambio 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 estadsticas y rendimiento en tiempo real. A travs del grupo de accin conjunta de sus siglas en ingles (JTAG) se lleva a cabo la
comunicacin con el soporte de emulacin en el chip para controlar y supervisar la
ejecucin del programa.

24

Captulo II. Marco conceptual

2.5.1.

Emulador XDS100 JTAG

La emulacin es una caracterstica en la que el software de depuracin CCS permite al usuario determinar si se establece o no una conexin de depuracin. Esta
caracterstica aumenta la estabilidad del ambiente de desarrollo al permitir que la
tarjeta aun estando desconectada CCS asuma que est depurando. Esta desconexin puede producirse porque el dispositivo se est depurando en un estado no
vlido, la conexin se ha roto fsicamente. Sin conexin, CCS podra esperar una
respuesta indefinidamente, por lo que ste le indica al usuario que la tarjeta se desconecta, preservando el medio ambiente de trabajo de los usuarios.
El termino JTAG es un acrnimo para (Joint Test Action Group), que en espaol
se puede entender como; grupo de accin de prueba conjunta. El objetivo era idear
un mtodo de prueba de hardware a nivel de circuito en un esfuerzo por eliminar el
lento y costoso procedimiento de pruebas y construccin. Sus esfuerzos resultaron
en una especificacin publicada por la IEEE 1149.1 [21].
Diseado originalmente para circuitos impresos, actualmente es utilizado para
la prueba de submdulos de circuitos integrados, y es til tambin como mecanismo de depuracin de aplicaciones embebidas, puesto que provee una puerta hacia
dentro del sistema. Cuando se utiliza como herramienta de depuracin, un emulador en circuito usa JTAG como mecanismo de transporte, lo que le permite al
programador acceder al mdulo de depuracin que se encuentra integrado dentro
del CPU. Asi mismo, el mdulo de depuracin permite al programador corregir
sus errores de cdigo y lgica de sus sistemas.
Cabe sealar que como el JTAG proporciona una sola lnea de datos, el protocolo
es necesariamente serial, como el Serial Peripheral Interface. Por lo tanto la entrada
de la seal de reloj es por el pin TCK. Mientras que la configuracin del dispositivo
se realiza manipulando una mquina de estados de un bit empleando el pin TMS.
As mismo la frecuencia de trabajo de la seal de reloj del pin TCK vara en funcin
de cada procesador, tpicamente est en el rango de 10-100 MHz (10-100 ns/bit).

Captulo II. Marco conceptual

2.5.2.

25

Librera DSPLIB

La DSP Library (DSPLIB) es una coleccin de mdulos de funcin para DSP optimizado de alto nivel para la plataforma de la serie C55x. Esta libreria de cdigo
fuente incluye funciones llamadas en C (lenguaje ANSI-C compatible) para funciones matemticas y vectoriales para procesamiento de seales [10].
Las funciones DSPLIB suelen operar sobre operandos vectoriales para una mayor eficiencia. Aunque estas rutinas pueden ser usadas para procesar pequeos
arreglos o escalares (a menos que se tenga un requisito mnimo), los tiempos de
ejecucin sern ms largos en los siguientes casos:

Vector paso, es siempre igual 1: operadores vectoriales se componen de elementos vectoriales en posiciones de memoria consecutivas.
Elementos complejos se asumen que se almacenan en un formato Re-Im.
El cmputo en la posicin del cdigo (a menos que se especifique), la fuente
operando puede ser igual al destino del operando para conservar la memoria.

Las rutinas incluidas en esta librera son organizadas en 8 diferentes categoras:

Trasformada rpida de Fourier (FFT)


Filtrado y convolucin
Filtrado adaptativo
Correlacin
Math (Operaciones matemticas)
Trigonometra
Miscelneos
Matrices

26

Captulo II. Marco conceptual


Las funciones que contiene la librera sern utilizadas en diferentes aplicacio-

nes, las cuales usan formato Q.15 para representar los datos aritmticos. La gua de
programacin cuenta con una convencin para describir los argumentos para cada
funcin individual:
Tabla 2.3: Convencin de argumentos para funciones DSPLIB [10]
Argumento
x y
r
nx ny nr
h
nh
DAT A
LDAT A
ushort

, ,

Descripcin
referidos a vectores de entrada
Refiere a un vector de salida
Referencia al tamao de los vectores x,y y r
Refiere a un vector de coeficientes (en filtros)
Referencia al tamao del vector h
Puntero a una variable short de bits, valor representado en formato Q
Puntero a una variable long de bits, valor representado en formato Q
Equivale a un unsigned short 16 bits

16
32

15
31

Los ltimos tres argumentos que se representan en la tabla 2.3 son tipos de datos
que pueden ser usados directamente, ya que estn definidos en la cabecera dsplib.h.
El uso de esta nomenclatura y convencin permite la portabilidad de los cdigos a
desarrollar en diferentes dispositivos.

2.6.

Sistema Digitales

2.6.1.

Sistemas Discretos

Un sistema de tiempo discreto es un dispositivo o algoritmo diseado para ejecutar ciertas operaciones o transformaciones sobre cierta seal de entrada, o excitacin x[n] y obtener cierta seal de salida o respuesta y[n] [6]. Entre algunas
cualidades se tiene que:

Un sistema ser lineal si satisface con el principio de superposicin para dos


diferentes entradas.
Si la propiedad anterior se satisface, sugiere que el sistema puede caracterizarse completamente por su respuesta al impulso unitario.

Captulo 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 condicin, 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 imagen de dos dimensiones de la representacin en frecuencia H(f) que se denomina
el plano complejo z. Los polos en dicho plano representan los picos de resonancia 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) =

x[k]zn

(2.2)

n=

Cuando zn es reemplazada con e(jn) 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 reaccin de un sistema a un impulso unitario que


se enva a su entrada, esta respuesta caracteriza al sistema en el dominio temporal.
Al trabajar en el dominio digital, dicha respuesta al impulso estar discretizada en
el tiempo y por tanto definida por una serie de muestras o secuencia h[n].

28

Captulo II. Marco conceptual


Por otro lado la transformada de Fourier de una respuesta al impulso de un sis-

tema corresponde a su funcin de transferencia o su respuesta en frecuencia que


caracteriza al sistema en el dominio de la frecuencia. Dicha caracterizacin se realiza a travs de su espectro de magnitud y de fase.

2.6.4.

Suma de Convolucin

El comportamiento de un sistema discreto lineal invariante en el tiempo con seal de entrada x[n] y la seal de salida y[n] se describe por la suma de convolucin.
La seal de h[n], que se supone conocido, es la respuesta del sistema a una entrada
impulso unitario. La suma de convolucin tiene una interpretacin grfica simple
que involucra los siguientes 4 pasos:

1. la seal 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 discreto n.

y[n] =

X
i=

h[k]x[n k]

(2.3)

Captulo II. Marco conceptual

2.6.5.

29

Filtros Digitales

En su definicin ms general, un filtro es un sistema que altera las caractersticas


amplitud-frecuencia o fase-frecuencia de una manera especifica. Un filtro digital es
un proceso computacional o algoritmo implementado en hardware y/o software mediante el cual una seal digital (secuencia de muestras) previamente digitalizadas
mediante convertidores analgicos a digitales o por secuencias de nmeros almacenas en registros de un computador, es transformada en una segunda secuencia
de muestras o seal digital de salida [4].
Los filtros tienen amplia utilizacin en todos los mbitos del procesado de seal y son una componente esencial en toda cadena de comunicacin, constituyen
la base del procesado de seal, que puede aplicarse a seales de todo tipo (sonidos, imgenes, vdeo, vibraciones ssmicas, etc). En el dominio de las seales de
audio, se define un filtro especficamente como un objeto que altera el espectro o el
contenido frecuencial de una seal [22].

2.6.5.1.

Tipos de filtros

Los filtros digitales utilizados con mayor frecuencia son los filtros pasa baja
(Low Pass), pasa alta (High Pass), pasa banda (Band Pass) y los filtros de rechazo de
banda (Notch). En la figura 2.9 se representan estos filtros mediante su respuesta en
frecuencia, en la cual se muestra la atenuacion que presenta el filtro a determinada
frecuencia.

30

Captulo II. Marco conceptual

Figura 2.9: Tipos de filtros [4]

Los filtros paso bajo (LP) dejan pasar las frecuencias que estn por debajo de
una determinada frecuencia.
Los filtros paso alto (HP) dejan pasar las frecuencias que estn por encima de
una determinada frecuencia.

Estos dos tipos de filtros estn definidos por su frecuencia de corte, que es la
frecuencia a la cual la amplitud de la seal se reduce a 0.707 =

de su valor

mximo, es decir, es atenuada 3 dB.

Los filtros paso banda (BP) dejan pasar las frecuencias que estn situadas en
una determinada banda de frecuencia.
Los filtros rechazo de banda (BR) dejan pasar todas las frecuencias excepto las
que estn 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 =
dB.

de su valor mximo, es decir es atenuada 3

Captulo II. Marco conceptual

31

Por su parte estos dos tipos de filtros estn definidos por su frecuencia central
y su ancho de banda, que sera la diferencia entre las frecuencias de corte inferior y
superior.

2.6.5.2.

El orden de un filtro

El nmero 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 ms retardos se utilicen en el sistema), el corte del filtro
ser ms 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 acuerdo a la longitud de su respuesta impulsiva h[n] como IIR, si esta tiene duracin
infinita o FIR, si su duracin es finita, esta respuesta impulsiva caracteriza completamente el filtro [22], de manera tal que las seales de entrada y de salida estn
relacionadas por la suma de convolucin, que para filtros IIR tiene la forma:

y[n] =

h[k]x[n k]

k=0

y para filtros FIR:

y[n] =

N
X1

h[k]x[n k]

k=0

2
El rizado o (ripple) es la distorsin de la respuesta en frecuencia sobre la bandas de paso y rechazo,
este depende del orden del filtro

32

Captulo 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 convolucin es apropiada


para la implementacin 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 seal de salida del filtro se introduce a la entrada del mismo.

y[n] =

N
X
k=0

ak y[n k] +

M
X

bk x[n k]

k=0

Figura 2.11: Diagrama de bloques general, filtro IIR[4].

La salida y[n] de la ecuacin anterior es funcin de los valores actuales y pasados de la entrada, y de valores pasados de la salida (de aqu el nombre recursivo)
este mtodo permite implementar filtros con respuesta ms 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].

Captulo II. Marco conceptual

33

Los valores asociados a los coeficiente h[n] y ak ,bk , son los objetivos del problema
de diseo 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 nmero finito de
bits, y realizar las operaciones indicadas por las ecuaciones de diferencia utilizando
aritmtica de punto fijo.
El uso de un nmero finito de bits degrada el desempeo 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 aritmticas [1]. Las principales causas de la
disminucin del desempeo en los filtros digitales debido a la longitud finita de
palabra son:

La cuantizacin de las seales de entrada y salida.


La cuantizacin de los coeficientes.
Los errores aritmticos por redondeo.
El desborde (overflow) de los registros.

La degradacin del desempeo depende de:

La longitud de palabra y tipo de aritmtica utilizada para efectuar los clculos.


El mtodo adoptado para cuantificar las variables y los coeficientes del filtro
a la longitud de palabra elegida.
La estructura del filtro.

34

Captulo II. Marco conceptual

2.6.5.5.

Efectos basado en filtros digitales: Ecualizacin

La ecualizacin es el efecto basado en filtros ms utilizado en dispositivos de


procesamiento de seal. Por definicin 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 ecualizacin de 3 bandas.

2.7.

Efectos de audio digital

La reproduccin de efectos de audio digital estn basados en sistemas de procesamiento, estos pueden ser en tiempo real para instrumentos musicales fabricados
a partir de procesadores digitales de seales o por el contrario, el procesado no
en tiempo real, este tratamiento se realiza con el computador en los programas de
edicin musicales, en el cual primero se graba un sonido que se almacena en un
archivo en memoria, despus se manipula ste convenientemente [24].
Para la generacin de estos efectos en tiempo real, la seal de audio es procesada mediante los algoritmos apropiados lo suficientemente rpido para reproducir

Captulo II. Marco conceptual

35

el resultado sin retardo apreciable por el oyente. Por otro lado, la memoria requerida depender de la necesidad de la cantidad de muestras previas o posteriores de
la entrada o salida. si para generar la seal de salida en el instante actual se necesita
informacin relativa a muestras anteriores. Entre los trminos y caractersticas detectables en los sistemas de audio digital se encuentra, el rango dinmico, el ancho
de banda, el ruido, la conversin analgico a digital [1].

2.7.1.

Principios del mecanismo auditivo humano

El sonido es una vibracin dependiente del medio molecular en el que se encuentra un individuo, una de las principales caractersticas que ha de tener el sonido para ser audible por el ser humano, es que su frecuencia se mantenga entre los
20 Hz y 22 KHz [5]. El odo humano es un mecanismo de registro muy sensible, que
cuenta con una estructura que le da direccin a los sonidos del ambiente al aparato
auditivo.
El odo capta el sonido siguiendo el siguiente proceso: la oreja capta las ondas
sonoras que se transmiten a travs del conducto auditivo hasta el tmpano, el tmpano es una membrana flexible que vibra cuando le llegan las ondas sonoras, esta
vibracin llega a la cadena de huesecillos que amplifican el sonido y lo transmite
al odo interno. Finalmente las vibraciones agitan los dos lquidos que existen en la
cclea (perilinfa y endolinfa), deformando las clulas ciliadas existentes en el interior. Estas clulas transforman las ondas sonoras en impulsos elctricos 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 logartmica, denominada
decibelio SPL (Sound Power Level). En esta escala, 0 dB SPL es una onda de sonido de
potencia

1016 W/cm2, este representa el sonido ms dbil detectable por el odo

humano. En la figura 2.13 se muestra la norma (ISO 226:2003) mediante las curvas
de Fletcher y Munson para campo sonoro directo [24].

36

Captulo 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 sinusoidal de una determinada frecuencia, para producir la misma sensacin auditiva
que otro tono puro sinusoidal y un nivel de intensidad de sonido dado. La lnea
isofnica es la que representa puntos de igual fuerza sonora; la dependencia de
la frecuencia esta dada por las caractersticas de transferencia del odo externo y el
medio. Tambin debe notarse que a medida que aumenta el nivel de presin sonora
las curvas se hacen ms planas, es decir, la dependencia de la frecuencia es menor
a medida que aumenta la presin sonora.

2.7.1.1.

Rango de frecuencias audibles

El humano puede distinguir frecuencias entre 20Hz y 20KHz, pero esta sensibilidad 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 ms de un 0.3

% a 3Khz y en 3 % para 100Hz.

El odo humano esta habituado a escuchar una frecuencia fundamental ms los


armnicos de hecho la combinacin de dos tonos 1KHz y 3KHz genera un sonido

Captulo II. Marco conceptual

37

agradable y natural, caso contrario si la composicin se hace con un tono de 1kHz


y otro de 3,1KHz.

2.7.2.

Efectos basado en retardos

Este tipo de efectos estn 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, bfers circulares o lineales para su implementacin
digital. Estos efectos son de un gran inters para el procesamiento de audio digital,
a continuacin se describen los ms usados.

2.7.2.1.

Eco

El eco es un fenmeno acstico que consiste en la persistencia del sonido, despus de extinguirse la produccin del mismo, los ecos se producen cuando un sonido se recibe a travs de ms de una trayectoria de propagacin acstica [5]. En procesamiento de seales de audio digital, el efecto eco consiste simplemente en aadir
al audio original mltiples versiones retardadas y atenuadas de la misma seal 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 sealar que este tiempo de retardo del eco (), es la diferencia 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 reflexin o eco de una seal
pueden ser implementadas por el siguiente filtro 2.14, en el que se suma a la seal
directa de una copia atenuada y el retraso de la misma:

38

Captulo II. Marco conceptual

Figura 2.14: Sistema de procesamiento digital de eco.

Este es uno de los efectos ms simples de los que usan retardos pero usado adecuadamente pueden ampliar el sonido de un instrumento e incluso permite tocar
un slo sobre uno mismo. La unidad de eco es tambin un elemento constructivo
bsico para la elaboracin de otros efectos ms complejos como reverberacin y
coros.

2.7.2.2.

Reverberacin

La reverberacin es la persistencia del sonido despus de la emisin por la fuente sonora, es decir, este fenmeno complejo y natural, resulta de la interaccin entre
la fuente sonora y el lugar en el que las ondas se propagan, por lo tanto es el resultado consiste en una superposicin de la emisin original y las reflexiones que
persisten por los diferentes choques en el recinto que llegan al emisor. En este sentido, las reflexiones dependen de la geometra del recinto y lo que se encuentra
dentro de sta, por lo que disminuyen con el tiempo y atenan cada vez hasta que
se vuelven imperceptibles. La reverberacin proporciona informacin para percibir la naturaleza del entorno inmediato como materiales, y mejorar las condiciones
acusticas.
Se produce reverberacin cuando las ondas reflejadas llegan al oyente antes de
la extincin de la onda directa, es decir, en un tiempo menor que el de persistencia
acstica del sonido. Este fenmeno 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 descripcin.

Captulo II. Marco conceptual

39

Figura 2.15: Fenomeno de reverberacin [6].

Una medida que es utilizada para caracterizar la reverberacin de un recinto es


el denominado tiempo de reverberacin . Tcnicamente, es el tiempo que le toma
al nivel de presin del sonido o intensidad del mismo en decaer 60 dB de su valor original. Tiempos de reverberacin largos indican que la energa del sonido se
mantiene dentro de la habitacin por mayor tiempo, antes de ser absorbida.

Figura 2.16: Sistema de procesamiento digital de reverberacin.

2.7.3.

Efectos en el dominio dinmico

Este grupo de efectos se basa en las variaciones que producirn en el volumen


o fuerza de la seal a tratar. Estas variaciones obedecern lgicamente al fin perseguido por el efecto en cuestin, este procesameinto es no lineal y considera la
dinamica de la seal.

40

Captulo II. Marco conceptual

2.7.3.1.

Modulacin: Ring modulator

Un modulador en anillo es un dispositivo que puede ser usado para crear sonidos curiosos e inusuales a partir de la salida de un instrumento. Toma dos seales,
cada una de una frecuencia especifica, las multiplica y produce una seal que contiene la suma y la resta de esas frecuencias: fm + fx y fm fx (bandas laterales).
Estas frecuencias sern tpicamente no armnicas, de manera que el modulador en
anillo puede crear algunos sonidos muy disonantes. Por esta razn, la modulacin
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 modulacin de amplitud, concretamente


de portadora suprimida, la cual se modela simplemente multiplicando dos seales
tal y como se muestra en la figura.

Figura 2.17: Sistema modulador en anillo.

2.7.3.2.

Distorsin

Se entiende por distorsin en general, la modificacin de un sonido original. De


acuerdo a esto, cualquier efecto de audio podra ser calificado como distorsin; formalmente la distorsin es el aquel efecto que modifica la amplitud de un sonido sin
el uso para ello de ninguna informacin temporal as que cada muestra puede ser
independientemente modificada, el tratamiento de la seal en el dominio dinmico
puede ser considerado como distorsin.

Captulo II. Marco conceptual

41

La distorsin es usada normalmente para simular los efectos de un amplificador 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, componentes de frecuencias armnicas y no armnicas que no se encuentran presentes
en la seal original.
En este sentido los efectos overdrive y fuzz son aquellos generados mediante sistemas distorsionadores. Se emplean sobre todo en guitarras elctricas, por medio
de amplificadores o por medio de pedales de efectos que aportan un sonido ms caracterstico, estos efectos modifican la forma de onda del sonido original a partir de
un determinado nivel de entrada, de manera menos pronunciada en overdrive donde se utilizan ganancias con recorte simtrico suave, y mxima en fuzz utilizando
con mayor frecuencia recorte asimtrico [24].

2.8.

Entorno de programacin virtual

2.8.1. E-learnning
Las herramientas de aprendizaje en la red cada vez son ms populares, van
desde campus virtuales en universidades hasta recursos de apoyos en instituciones
financieras, una referencia de esta modalidad es el e-learning, que podra traducirse como aprendizaje electrnico, Rosenberg M. lo define como la utilizacin de las
tecnologas de Internet para ofrecer un conjunto de propuestas que permitan incrementar el conocimiento y la practica [25].
Una definicin un poco ms amplia es la de Jolliffe, A., el sugiere que puede ser
descrito como la distribucin y el acceso a colecciones coordinadas de materiales
de aprendizaje sobre un medio electrnico usando un servidor web para distribuir
los contenidos, un navegador web para acceder a ellos y los protocolos TCP/IP y
HTTP para mediar el intercambio de datos [26].

42

Captulo II. Marco conceptual


Entre las cualidades de e-learning se destacan:

1. Uso de diferentes herramientas para consolidar y facilitar el aprendizaje de


algn concepto o proceso.
2. Acceso al recurso a distancia, en cualquier lugar o momento.
3. Creacin 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 cdigo


abierto diseada por Juan C. del Pino, que permite la gestin de practicas de programacin integrable a Moodle. Esta herramienta esta compuesta de un mdulo
Moodle, un applet editor de cdigo fuente y un dominio Linux, este permite la ejecucin remota de programas en forma segura [15].
Entre las caractersticas ms destacadas se tiene la posibilidad de editar cdigo
fuente, ejecutar prcticas de forma interactiva desde el navegador, ejecutar pruebas
preliminares y analizar las prcticas as como la similitud entre ellas.

2.8.2.1.

Arquitectura VPL

VPL se compone de tres elementos: un mdulo de Moodle, un editor de cdigo


basado en un navegador y un servidor crcel. El editor de cdigo es un applet de
Java que proporciona funciones bsicas para editar, ejecutar, depurar y evaluar los
programas de cdigo en un entorno de desarrollo de cdigo simple. Para utilizar las
caractersticas completas de un navegador web con JavaScript y soporte se requiere
Java applets 1.5 [15].
El componente de la crcel es el servidor a cargo de la compilacin y ejecuta
el cdigo presentado en un entorno seguro. Se ejecuta el comando chroot linux
para proporcionar una versin restringida del sistema de archivos host con algunas
limitaciones de slo lectura.

Captulo II. Marco conceptual

43

Para ejecutar o evaluar codigo fuente, se requiere una sumisin a tener al menos
un servidor crcel. El servicio de la crcel necesita una distribucin linux compatible, ya que el servidor de crcel asiste a las solicitudes de ejecucin 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 puerto de comunicacin, que se utilizan para redirigir la datos de entrada/salida de
ejecucin.

Figura 2.18: Tipos de Ejecucin: Pasos de corrida de peticin no interactiva.

Figura 2.19: Tipos de Ejecucin: Pasos de corrida de peticin de interactiva.

2.8.2.2.

Topologa de Red

En lo referente al mdulo VPL, utiliza un doble proxy para comunicarse, es decir, un lado con los clientes de Internet, para asistir a sus peticiones, y por otro lado
con los servidores de la crcel, para realizar las tareas en ejecucin asociados a esas
peticiones, lo que permite una variedad de topologas de red. En este sentido la
topologa ms simple se ejecuta el servidor la crcel y el servidor de Moodle en
el mismo equipo sin embargo, a pesar de que tienen que comunicarse a travs de
una intranet, esta solucin pierde las ventajas de seguridad proporcionadas por el
aislamiento de los servidores en diferentes equipos. Por consiguiente en una topologa ms adecuada, se une el servidor Moodle con uno o ms servidores de crcel
separadas, los cuales que pueden estar en una red privada [15].

44

Captulo II. Marco conceptual


Por otro lado la topologa ms potente, que mejora el gasto de recursos, es com-

partir varios servidores de crcel entre varios servidores de Moodle. Esta configuracin puede adaptarse a la carga de trabajo al cambiar el nmero de servidores
de crcel en uso por un servidor Moodle para atender de manera adecuada las variaciones en los requerimientos de las tareas de ejecucin. El inconveniente de esta
configuracin es que los servidores de la crcel deben estar en el dominio pblico
con el fin de ponerlos a disposicin de todos los servidores del Moodle sin aumentar la complejidad de la red [15].
El uso de mltiples crceles no slo sirve para la escalabilidad, apoyo y mejora
del rendimiento, sino que tambin proporciona tolerancia a fallas. Cuando una solicitud de ejecucin es recibida por el mdulo de VPL, toma la lista de servidores
disponibles crcel y selecciona al azar uno que no est marcado como tener un anterior fallan en un rango especfico de tiempo. Entonces VPL enva al servidor una
solicitud de disponibilidad; si la respuesta a esta solicitud es verdadera, la solicitud
de ejecucin se asigna al servidor, de lo contrario se selecciona un nuevo servidor.
Si no se encuentra ningn servidor, se repite el proceso teniendo en cuenta los servidores fallaron anteriormente [15].

Captulo II. Marco conceptual

2.9.

45

Glosario
dB SPL: El decibelio del nivel de presin sonora (dB SPL) toma como referencia el menor nivel de presin sonora que el odo humano medio puede
detectar. El menor sonido audible para el ser humano es tpicamente 0 dB
SPL (umbral de audicin). En la prctica, dB a menudo significa dB SPL [24].
Moodle: Es una aplicacin web de tipo ambiente educativo virtual, un sistema
de gestin de cursos, de distribucin libre, que ayuda a los educadores a crear
comunidades de aprendizaje en lnea [26].
Bfer: Un bfer (del ingls, buffer) es un espacio de memoria, en el que se
almacenan datos de manera temporal su principal uso es evitar que el programa o el recurso de hardware o software, quede sin datos necesarios para el
proceso [24].
XMLRPC: Es una especificacin y un conjunto de implementaciones que permiten ejecutar software en sistemas operativos dispares, corriendo en diferentes entornos para hacer llamadas de procedimiento a travs de Internet.
Este procedimiento de comunicacin remota se lleva acabo usando HTTP como el transporte y XML como la codificacin. XML-RPC est diseado para
ser tan simple como sea posible, al tiempo que permite transferir estructuras
de datos complejas, procesarlas y devolverlas [27].
Distorsin: Es la modificacin de la seal, cuando una seal es procesada
por un sistema no lineal, algunos componentes de frecuencia aparecen que
no son parte de la seal original, estos se llaman productos de distorsin.
algunos instrumentos musicales como la guitarra elctrica se aprovechan de
distorsiones para ampliar y variar su timbre. Esto modifica el color del sonido
mediante la introduccin no lineal de productos de distorsin de la seal de
entrada, efectos relacionados son Overdrive, Fuzz, Blender, Screamer [3].
Espectro: El contenido de frecuencia de un sonido o seal de audio, puede
tener una representacin grfica de la amplitud (o nivel de intensidad) en

46

Captulo II. Marco conceptual


contra de la frecuencia. El espectro de un sonido es un determinante principal
del timbre percibido [6].
UART: Este sistema de trasmisin y recepcin asncrono, toma bytes de informacin 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
mtodo que puede ser en serie o en paralelo, empleando trasmisin serial por
un simple cable o por varios respectivamente [18].
SPI: Es un puerto estandarizado que soporta comunicacin con una variedad
de diferentes perifricos como convertidores ADC, transmisores y receptores,
registros de desplazamiento, microcontraldores y datos de LCDs [18].

Captulo III

Procedimientos de la investigacin
En este captulo se establecen los mtodos y las tcnicas para desarrollar la implementacin del laboratorio de DSP mediante el mdulo TMS320C5535, llevndose a cabo el proyecto en 4 fases.

3.1.

Revisin Terica

Durante esta fase se realizaron las siguientes actividades con la finalidad de


recolectar toda la informacin posible para conocer diferentes esquemas de laboratorios que usaran sistemas embebidos para el procesamiento digital de seales. De
esta manera crear el soporte de los contenidos como recursos y algoritmos ms ajustables para aplicaciones en tiempo real, as como la seleccin de las herramientas
de programacin y del hardware a utilizar.

1. Se revisaron bibliogrficas especializados en procesamiento digital de seales,


destacando las referencias para DSP en tiempo real [1], tratamiento digital de
seales [20] [22], programacin en C para DSP [28], la referencia de programacin de la serie TMS320C55x [29] de Texas Instruments, de estas se recolectaron
las tcnicas aprovechables en el laboratorio con el uso del hardware.

47

48

Captulo III. Procedimientos de la investigacin


2. Se valoraron los dos lenguajes de programacin que soporta el hardware DSP,
C y ensamblador, para esto se contrastaron las cualidades que Steven Smith
considera relevantes para la correcta seleccin basado en las aplicaciones a
desarrollar [13]
Complejidad del programa de la aplicacin.
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 aplicacin.
Soporte del programador y experiencia.
3. As mismo, se llev a cabo un estudio comparativo de cualidades y prestaciones de mdulos DSP de la serie de procesadores de bajo costo TMS320C55x
de la empresa Texas Instruments para los propsitos del laboratorio de procesamiento digital de seales. Para elegir un DSP se considero los requisitos
de procesado del sistema. Despus se fijo en la potencia de clculo y el costo. Tambin se tuvo en cuenta que el DSP tuviese un nmero suficiente de
herramientas de desarrollo, ademas de los requerimientos bsicos siguientes:
documentacin de diseo detallada, herramientas de desarrollo de cdigo en
ensamblador o C, herramientas para el test de la funcionalidad de diseo y
notas de aplicacin.

Captulo III. Procedimientos de la investigacin

49

Tabla 3.1: Comparacin paramtrica de productors de la serie C55x DSP.


Parmetros
Aplicaciones

Sistema operativo
DSP
USB
SPI
UART
MIPS
DSP MHz (Max.)
Rango de temperarura
de operacion en C
Hardware acelerador
Costo

TMS320C5535
Aplicaciones de consumo de audio y voz, interfaz de sensores industriales, equipo medico portable, biometria.
DSP/BIOS VLX
1 C55x
1
1
1
240
50 a 100
-10 a 85

TMS320C5532
Aplicaciones de consumo de audio y voz, interfaz de sensores industriales, equipo medico portable, biometria.
DSP/BIOS VLX
1 C55x
1
1
50 a 100
-10 a 85

TMS320C5515
Comunicaciones e industias de telecomunicaciones y medica

TMS320C5505
Comunicaciones e industrias de telecomunicacionesy medica

DSP/BIOS VLX
1 C55x
1
1
1
100 a 120
-10 a 85

DSP/BIOS VLX
1 C55x
1
1
1
200
100 a 150
-10 a 85

Coprocesador de FFT
99(USD)

79(USD)

90(USD)

Coprocesador de FFT
49(USD)

4. Luego de esto, se examinaron laboratorios para procesamiento digital de seales que contaron con modalidades virtuales, evaluando de cada uno de estos, las limitaciones respectivas y se contrast con las prestaciones de plataforma a implementar.

3.2.

Alojamiento e instalacin del VPL en el servidor

Esta fase consta del alojamiento e instalacin del plug-in VPL, se aloj la arquitectura de red de la plataforma en un par de servidores del Instituto de Matemtica
y Calculo Aplicado (IMYCA) de la Universidad de Carabobo. As mismo, se debe
sealar que esta institucin presto el soporte y el recurso computacional para su
instalacin, ya que sta se encargar de la futura gestin de los servidores y las
solicitudes de los administradores del laboratorio de programacin.

1. Se evalu los requisitos del host para el servidor y las arquitecturas la red
requerida para plataforma, este equipo se aadi al bastidor del IMYCA.
2. Posterior a sto, se cre el servidor de ejecucin crcel bajo un domino de software libre UNIX Ubuntu 14.04 que lleva por nombre draco.ing.uc.edu.ve

50

Captulo III. Procedimientos de la investigacin


y se configur el fichero interfaces a nivel de usuario administrador o de configuraciones globales, obteniendo los siguientes cambios en el fichero correspondiente:
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 conexin de la red dentro de la Universidad de Carabobo se


estableci la direccin de proxy, una vez configurado correctamente la conexin de red, se instal el servicio OpenSSH conjunto con estos paquetes mediante 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 crcel.
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 sealar que en este punto de la instalacin se siguieron las instrucciones


y se esper por las descargas necesarias, esto incluye los scripts para los softwares de interpretacin de los lenguajes por defecto, no obstante se pueden
instalar de forma manual otros interpretes. Posterior a sto, al aparecer la siguiente peticin al usuario, se seleccion no for wildcard certificates y se detuvo
el servicio con el siguiente comando:

Captulo III. Procedimientos de la investigacin

51

sudo service vpl-jail-system stop

4. Consecutivamente, se configur el servidor crcel sobre el fichero en la localizacin /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 ejecucin.
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 instalacin se puede obtener un registro detallado del servicio


al iniciar en modo de depuracin 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 configuracin del servicio, al igual se pudo comprobar la disponibilidad del servidor de ejecucin utilizando la direccin /OK al
final de la direccin del servidor.
6. El servicio requiere una configuracin de Firewall que represente una alta seguridad ante la sensible informacin dispuesta en el equipo [15]. Este parmetro acepta valores numricos de 0 a 4, los cuales representan el nivel de
proteccin:
0: No Firewall.
1: Permitir slo las solicitudes entrantes al servicio de ejecucin, las solicitudes de salida son ilimitadas.
2: Permitir slo las solicitudes entrantes al servicio de ejecucin, las solicitudes de salida se limitan a DNS y puertos 80/443, las solicitudes de
superusuario son ilimitadas.
3: Permitir slo las solicitudes entrantes al servicio de ejecucin, las peticiones salientes estn prohibidas, las solicitudes de superusuario son ilimitadas.

52

Captulo III. Procedimientos de la investigacin


4: Permitir slo las solicitudes entrantes al servicio de ejecucin, estn prohibidas 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 carcter universitario e institucional
podra poner en riesgo informacin de otros servidores de la facultad.
7. Para utilizar las caractersticas de evaluacin automtica de programas de
VPL debe rellenar el fichero vpl.evaluate.cases. Este fichero tiene el siguiente formato:
a) case: Es la descripcin del caso, establece el inicio de un caso de prueba.
b) input: Contiene el texto de entrada, el cual puede ocupar varias lneas y
finaliza cuando se introduce otra instruccin.
c) output: Contiene el texto de salida, puede ocupar varias lneas y finaliza
con otra instruccin. As mismo, se debe sealar que un caso de prueba.
Un caso de prueba puede tener varias salidas vlidas, existen tres tipos
de salidas: slo nmeros, texto y texto exacto.
d) grade:

valor
porcentaje

Por defecto cuando se produce un error, se descuenta

de la nota mxima

rango nota
nmerodecasos ,

pero con esta instruccin se puede

cambiar el descuento por otro valor o porcentaje.


8. Posteriormente, se establecieron los ficheros necesarios para preparar la ejecucin, depuracin o evaluacin de una entrega. Esto incluye ficheros de script,
ficheros de pruebas de programas y ficheros de datos. No obstante, se puede
aadir un nuevo fichero escribiendo su nombre en la caja Aadir fichero. los
ficheros que se aadan o se carguen pueden ser editados, excepto los ficheros de script con extension sh como vpl.run (ejecucin), vpl.debug (depuracin) y vpl.evaluate (evaluacin), la ejecucin de cualquiera de estos genera
un fichero denominado vpl.execution, el cual debe contener cdigo binario
ejecutable. Se debe sealar que la no generacin de este fichero imposibilita
ejecutar la accin 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 programacin del mdulo, y as describir

Captulo III. Procedimientos de la investigacin

53

el comportamiento de la plataforma frente a los clculos, tiempo de compilacin, ejecucin.

3.3.

Reconocimiento del proceso de programacin

Reconocer el proceso de programacin inherente al modulo DSP incluy el reconocimiento de estructuras, libreras entre otros, as como el ambiento de desarrollo
integrado (CCS) para lograr sintetizar la composicin de los algoritmos aplicables
en los contenidos del laboratorio de procesamiento digital de seales.

3.3.1.

Soporte para la programacin de los mdulos DSP y del ambiente


integrado CCS

1. Se llevo a cabo la instalacin y el soporte de CCS (antes de conectar el C5535


eZdsp), el DSK incluye un CD-ROM desde el cual se pudo instalar CCS, preferiblemente debe instalarse usando el directorio por defecto. Una vez instalado el icono del IDE, debe estar localizado en el escritorio como Code Composer
Studio v4. En el equipo donde se hizo la instalacin del ambiente de desarrollo, se debi conectar como usuario con derechos de administracin y se tuvo
que deshabilitar cualquier antivirus antes de la misma.
2. Se cre una licencia de usuario. Despus de iniciar CCS, el software inst a
crear una licencia de activacin, donde se direccion al website de Texas Instruments para completarlo.
3. Luego, se dise una plantilla en un comprimido .zip que contiene libreras,
archivos .c y .h necesarios para la operatividad del hardware, entre ellos los
necesarios para el manejo del convertidor analgico digital, As como para
la inicializacin de los perifricos y el manejo de la librera DSPLIB. Dentro
de este comprimido tambin se adjunta un archivo de extension .text como
instructivo para el uso de la plantilla diseada.

54

Captulo III. Procedimientos de la investigacin


4. Debemos considerar que los tipos de datos con signo usan representacin 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 conversin de los tipos de datos sea aplicada y ajustada
a la aritmtica que maneja el procesador.
5. Se utiliz una secuencia de pasos para configuracin del hardware en el software CCS, con la finalidad de establecer de forma correcta los parmetros de
ajustes que posibilitan la exitosa construccin y compilacin de los programas
a disear, en el Anexo E se hace referencia a estos procedimientos.

3.3.2.

Generacin de seales sinusoidales y tonos

Las seales en tiempo discreto pueden originarse de dos maneras, una tomando
muestras de una seal analgica y luego cuantificando, y la otra es acumulando una
variable a lo largo de un determinado perodo de tiempo.
En ambos casos, se genera una secuencia de nmeros en funcin de la variable
independiente n (numero de muestras), el cual es el equivalente discreto del tiempo. 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 seales 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 categora funcional trigonomtrica de la referencia de programacin [10], se describe la funcin sine de la
librera DSPLIB:
ushort oflag = sine (DATA *x, DATA *r, ushort nx)

Donde cada uno de estos parmetros representan:


x[nx] puntero al vector de entrada de tamao nx, este contiene el angulo en

11

radianes entre (,) normalizada entre ( , ) en formato Q.15.

Captulo III. Procedimientos de la investigacin

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 .
Esta funcin 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 simetras 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 analgico


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 propsito.
/* --------------------------------------------------------------------*/
void aic3204_codec_read(Int16* left_input, Int16* right_input)
{
volatile Int16 dummy;
counter1 = 0;
/* Read Digital audio inputs */
while(!(I2S2_IR & RcvR) )
{
counter1++; // Wait for receive interrupt
}

56

Captulo III. Procedimientos de la investigacin


*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 adquisicin de la seal de voz, se llev a cabo mediante el uso de un micrfono y el mdulo TMS320C5535. El hardware acondiciona y convierte la seal 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 funcin, estas
son del tipo entero y tienen una resolucin de 16 bits.

3.3.4.

Convolucin

Dentro de la categora funcional filtrado y convolucin de la referencia de programacin [10], se describe la funcin colvol de la librera DSPLIB:

ushort oflag = convol (DATA *x, DATA *h, DATA *r, ushort nr, ushort nh)

Captulo III. Procedimientos de la investigacin

57

Donde cada uno de estos parmetros representan:

x[nr + nh ] puntero al vector de entrada de tamao nr + nh 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 funcin computa la convolucin 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 ms corto en longitud que el vector de entrada, por lo que
a lo sumo r, debe ser de tamao igual a nx.

r[j] =
3.3.5.

nh
X1
k=0

h[k]x[j k] 6 j 6 nr

(3.2)

Sistemas discretos: Eco

Para implementar este sistema, la unidad de retardo toma una seal de audio
y la reproduce de nuevo despus del retardo k, escalada y mezclada con la seal
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, producindose una repeticin del sonido de
forma separada a la reproduccin del sonido original lo que es considerado como
un eco. Siendo la ecuacin 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 transformada Z .

58

Captulo III. Procedimientos de la investigacin

Y(Z) = X(Z) + X(Z)Zk H(Z) =

Y(Z)
= + Zk
X(Z)

(3.4)

En cuanto al procesado de la seal, se realizo mediante un bfer, 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 posicin en la que se almacenar la muestra actual o la salida actual segn 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 perodo de muestreo. Estos punteros se incrementarn en cada
perodo de muestreo.

3.3.6.

Sistemas Discretos: Reverberacin

Para implementar este sistema, la unidad de retardo toma la seal de salida del
sistema y la reproduce de nuevo despus del retardo k, amortiguada y mezclada
con la seal 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 reverberacin, En cuanto a la
ganancia de realimentacin se impone menor que 1 por diseo para garantizar la
estabilidad. Siendo la ecuacin de diferencia que modela el sistema:

(3.5)

y[n] = x[n] + y[n k]

Para determinar la respuesta en frecuencia de este sistema aplicamos la transformada Z de la ecuacin anterior.

Y(Z) = X(Z) + Y(Z)Zk H(Z) =

Y(Z)
=
X(Z)

1
1 + Zk

(3.6)

En cuanto al procesado de la seal, se realizo al igual que para el efecto del eco
mediante un bfer. El procesador manejar un puntero de lectura de la entrada y

Captulo III. Procedimientos de la investigacin

59

un puntero de escritura que ir marcando la posicin en la que se almacenar la


muestra actual o la salida actual segn el modelo implementado. Estos punteros se
incrementarn en cada perodo de muestreo.

3.3.7.

Sistemas discretos: Distorsin

El procesamiento en el dominio dinmico, generalmente se basa en sistemas del


tipo no lineal, en este trabajo se consider implementar los efectos de distorsin no
lineal por saturacin y distorsin polinmica, adems de un sistema de modulacin
en anillo, con la finalidad de ilustrar este tipo de procesamiento de sistemas.

3.3.7.1.

Distorsin no lineal por saturacin

la implementacin en el procesador DSP para el sistema de distorsin es realmente sencilla, reducindose todo a una comparacin con el nivel +umbral, y otra
con umbral, si estos niveles no son alcanzados por la seal de entrada, la salida
corresponde a la misma seal de entrada escalada en funcin de a y no se opera
sobre ella. As mismo, los parmetros a introducir para el diseo y para el control
del efecto son:

Umbral: Nivel de comparacin.


Saturacin: Cantidad de nivel prefijado de saturacin que se aade.
a: Factor de escala en la zona lineal.

saturaci n
si
x(n) > +umbral

y(n) =
a x(n)
si umbral 6 x 6 +umbral

saturaci n si
x(n) < umbral

(3.7)

60

Captulo III. Procedimientos de la investigacin

3.3.7.2.

Distorsin no lineal polinmica

Otra forma de distorsin no lineal es la denominada polinmica. Este efecto


en el dominio dinmico, esta descrito por una seal de salida que obedece una
funcin polinmica, es decir que la magnitud de la salida crece hasta alcanzar su
valor mximo (-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 funcin de comportamiento cuadrtico y cubico, por lo que el nico parmetro
de control por parte del usuario son los coeficientes de esas curvas que altera la
excentricidad y forma de las mismas.

3
2

a3 x + a2 x + ax
y(n) =

si x(n) >

a3 x3 + a2 x2 + ax si x(n) 6

0
0

(3.8)

La frontera entre cada uno de los efectos de distorsin no est predefinida en


ningn manual tcnico, pero esta asociado a la esttica del sonido que se busque
lograr con el efecto. Por ejemplo, el overdrive se define mayoritariamente como clido y suave, dado que introduce componentes armnicos en el espectro. En cambio,
el efecto fuzz introduce componentes inarmnicos y crea un efecto ms duro y discordante.

3.3.8.

Sistemas discretos: Modulacin

Crear un modulador en anillo basado en un procesador digital es tan simple como realizar la multiplicacin de la seal de audio original por una onda sinusoidal
con una frecuencia de portada en cada intervalo de muestreo. La seal portadora deber implementarse como una funcin o sub rutina, por lo tanto se parte del
diagrama de bloques descrito 2.17.
As mismo, debe recordarse que la mxima frecuencia de la salida es la suma de
las componentes ms altas de cada seal usada. Para este diseo se debe considerar
que el teorema de las mnimas muestras (Nysquist) establece que la frecuencia de

Captulo III. Procedimientos de la investigacin

61

muestreo debe ser al menos el doble de la componente de mayor frecuencia de la


seal procesada que se pretende reconstruir. Un buen valor para la frecuencia Fs es
el adoptado de 48 Khz.

3.3.9.

Filtros digitales

El diseo de filtros en tiempo discreto sobre dispositivos DSP usan coeficientes cuantizados para procesar seales cuantizadas. El diseo se llevo a cabo en C
usando la librera DSPLIB. Por lo tanto el objetivo de diseo de filtros FIR fue determinar el conjunto de coeficientes que modelara el comportamiento ms cercano
a las especificaciones del diseo. Debido a la complejidad matemtica de la transformada z, en esta investigacin se adopt una forma ms intuitiva de abordar el
estudio de filtros digitales, usando la metodologa 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.

Metodologa de diseo de filtros digitales

El diseo de un filtro digital involucro la siguiente metodologa:


1. Especificacin de los requerimientos del filtro.
2. Clculo y optimizacin los coeficientes del filtro.
3. Representacin del filtro usando una estructura de programacin.
4. Anlisis de los efectos en el tamao de los datos en el desempeo.
5. Implementacin en hardware y/o software.
Por lo tanto, es posible que inicialmente el diseo no cuente con toda la informacin necesaria para especificar completamente el filtro, pero cuanto ms detalles
se conozcan ms sencillo ser el proceso de diseo. Sin embargo, algunos de los requerimientos discutidos en la metodologa son dependientes de la aplicacin, por

62

Captulo III. Procedimientos de la investigacin

lo que es necesario resaltar los aspectos referidos a las caractersticas 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 diseador puede
analizar los efectos de la longitud de palabra finita en el desempeo del filtro, y
efectuar las correcciones que sean necesarias.
Por otro lado, para llevar acabo el diseo, se utiliz el software Iowa Hills del
cual se extrajeron los coeficientes. Utilizando un prototipo de ventana de impulso
rectangular siendo est el mtodo ms ilustrativo y cannico para el diseo FIR
ya que es el ms fcil de entender y el ms simple de implementar. La idea bsica
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.

Z c

e2jm d = c sinc( c m)

(3.9)

Para implementar un filtro FIR, la manera ms sencilla es usar la funcion FIR


de la categora funcional filtrado y convolucin de la librera DSPLIB [10], siendo el
prototipo

para

la

funcin

de

filtrado

el

siguiente:

ushort oflag = fir (DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nx,ushort nh)

Captulo III. Procedimientos de la investigacin

63

Donde cada uno de estos parmetros 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 bfer de retardo.
nh es el numero de coeficientes.
nr es el numero de valores de salida.
Esta funcin es una implementacin de un bloque de filtrado FIR, donde el nu-

mero de muestras de entradas debe coincidir con nh + nr . El arreglo x inicia

en x(nh + ) y finaliza en x(nr ). el puntero al bfer de retardo es de longitud

nh = nh+ . El arreglo deber ser inicializado a cero para el primer bloque de filtrado. Entre bloques consecutivos, el bfer de retardo preserva los elementos previos
necesarios, el primer elemento del bfer coincide con indice n

1 de la muestra

ms anterior de la entrada.

3.4.

Elaboracin de las prcticas y recursos del laboratorio


PDS

Una vez llegado a esta etapa de la investigacin y tras haber creado un marco terico con las tcnicas de procesamiento digital de seales en tiempo real, se
seleccionaron esquemticamente los contenidos a desarrollar para el laboratorio.

1. Se diseo un compendio de preguntas para cada prctica de laboratorio que


permiten solucionar problemas sencillos, mediante una metodologa de diseo, simulacin e implementacin.

64

Captulo III. Procedimientos de la investigacin


2. Se elaboraron documentos para cada una de las prcticas a desarrollar, estos
documentos llevan el nombre de Lectura Recomendada, donde se esboz en
cada una de estas una introduccin terica como contenido de soporte, con
referencias a libros de texto y enlaces en los que puede encontrar el desarrollo
terico completo.
3. As mismo, se incluyeron para las prcticas que requeran del uso de una
herramienta adicional, manuales de usuario con una explicacin detallada
apoyada con grficos y notas al lector.
4. Se debe sealar 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 seleccin simple
donde se repasan, algunos conceptos en aquellas sesiones que requieren atender algn 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 programacin, con estas se utiliza la capacidad de evaluacin automtica. Este tipo de actividades son del tipo no presencial y tiene
carcter de prelaboratorio, en ellas se contempla los contenidos necesarios para familiarizare con la lgica y estructura del lenguaje C para posteriormente
usarlo en los programas con CCS y el hardware respectivo.
7. En cada prctica se incluy un pre-laboratorio de programacin que lleva por
nombre Actividad de programacin, con la finalidad de que el alumno pueda
abordar con el uso del laboratorio de programacin virtual, sin la presencia
del profesor, en el cual experimentar con la programacin en C, los cuales
son base para los desarrollos que realizan en las sesiones practicas presenciales con el hardware. En este sentido, esta metodologa de pre-laboratorio le
permite al estudiante armar pequeos cdigos de soporte en C que luego le
servirn para realizar la prctica con el hardware (cursiva) de procesamiento.

Captulo III. Procedimientos de la investigacin

65

8. Se realizaron manuales y videotutoriales, en el que se present el procesamiento digital de seales en tiempo real, las herramientas de programacin
integrada CCS, y los softwares complementarios, tomando en consideracin
que el uso de este tipo recursos didcticos facilitan el proceso de aprendizaje. Los recursos didcticos adicionales permiten rescatar aspectos que no se
encuentran programados y necesiten un especial inters [30]. As mismo se
aadi al laboratorio una documento que describe las modalidades del laboratorio 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 incluye: contenido multimedia, tutoriales, paginas web referenciales, herramientas
de software adicionales, practicas de laboratorio, manuales, cuestionarios, actividades de programacin y lecturas recomendadas.
10. Se evalu el impacto de la plataforma creada en la comunidad estudiantil, me-

2 2014 donde

diante la implementacin del laboratorio en el periodo lectivo

se someti a los estudiantes al nuevo esquema del laboratorio, suministrndole las lecturas recomendadas y las prcticas de laboratorio integrndolos
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 entrevista, as mismo, tambin se seleccion a cuatro estudiantes que cursaron el
laboratorio con la experiencia del esquema anterior evaluando los aspectos
comunes entre ambos grupos de consulta.

Captulo IV

Anlisis, interpretacin y
presentacin de los resultados
4.1.

Resultados de la revisin terica de mdulos, tcnicas y


soporte para procesamiento digital de seales en tiempo
real

Se seleccionaron desarrollos en la banda de frecuencias audible para el diseo


de sistemas que emulen efectos de audio digital, apuntando a realizar una concepcin de laboratorio que sirva de complemento y que permita integrar los contenidos tericos de procesamiento digital de seales para realizar aplicaciones DSP.
sto permitir actualizar y refrescar constantemente el laboratorio, disminuyendo
las repeticiones semestrales de las mismas sesiones.
Tras una revisin de la serie C55x se evalu que los DSP de punto flotante son
generalmente ms fciles de programar que los de punto fijo, pues el programador
no debe preocuparse por la precisin o el desbordamiento, pero son usualmente
ms costosos [8]; el mayor costo es resultado del requisito de una mayor complejidad circuital que se traduce en un mayor tamao de la tarjeta, es por esto que para

67

68

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

las aplicaciones e intereses del laboratorio y el bajo presupuesto se tomo la eleccin


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 generacin
C553x de productos de Texas Instruments, el cual se someti a un estudio bajo los
criterios de seleccin postulados anteriormente [13], encontrando para ste un procesador de 16 bits de punto fijo con capacidad de 240 MIPS. As mismo, permite
algoritmos matemticos complejos y la posibilidad de ejecutar aplicaciones numricamente precisas, a bajo costo y consumo de potencia ya que la alimentacin de
ncleo 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 sealar 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 perifricos 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 memoria en el chip son de hasta 320 KB para ofrecer escalabilidad segn las necesidades
de aplicacin y capacidad de expansin de memoria. Adems, cuenta con un coprocesador de Transformada rpida 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 evaluacin rpida de sus capacidades y cuenta con


un emulador XDS100, para la capacidad de depuracin y el soporte a Code Composer

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

69

Studio. La generacin de productos C553x proporciona una base para una serie de
aplicaciones de procesamiento de seales para audio de instrumentos musicales y
voz, soluciones mdicas porttiles y otros productos electrnicos de consumo en
aplicaciones industriales.
Desde estos mismos criterios de seleccin, se tom la decisin de incluir un
hardware destinado para la manipulacin de los estudiantes. Eligiendo al USBSTICKC5505, este mdulo de entre los dispositivos revisados, tiene similitud con el
dispositivo principal de evaluacin, cuenta con el coprocesador FFT adems de ser
ms econmico, por no contar con algunos perifricos I/O.
Se determin a C como el lenguaje de programacin para efectos del laboratorio, ya que C es una valiosa herramienta de programacin para tareas de software
computacionalmente intensivas en tiempo real; sin embargo aunque los programas
en ensamblador suelen ser mucho ms rpidos, los escritos en C representan facilidad de desarrollo y mantenimiento, por lo que este lenguaje es el indicado debido
a que es ms intuitivo el reconocimiento de las estructuras, ciclos y declaracin de
variables que se manejan en este entorno. El curso de DSP se toma a un nivel acadmico en el que el programador no ha tomado el curso de microprocesadores, por
lo tanto la eleccin de un lenguaje de alto nivel como C representa una ventaja, ya
que no es necesario con este lenguaje entender la arquitectura que es usada en el
procesador, siendo esta una tarea del compilador.

70

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.2.

Alojamiento e instalacin del servidor VPL para el laboratorio de PDS

Para el alojamiento del servidor VPL, se utiliz una mquina que integra 1 GB
de RAM y 1 ncleo procesador, por lo que se utilizo una version de 32 bits. Desde el IMYCA se habilit bajo la gestin de la Direccin de Medios Electrnicos y
Telemtica (DIMETEL) una direccin IP esttica para el servidor crcel dentro del
segmento de red con el que cuenta la institucin siendo esta 190.170.97.209, adems
de liberar los puertos 22, 80 y 443 para la operatividad de la red.
En la figura 4.2 se muestra la comprobacin del servidor de ejecucin, donde se
indica la correcta operacin del crcel.

Figura 4.2: Captura de comprobacin de servidor de ejecucin vpl.

Cabe sealar que en particular el servicio de ejecucin o crcel funciona utilizando 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 algn servidor
web en estos puertos, se debe cambiar la configuracin del servidor crcel vpl, con
el fin de utilizar otros puertos en desuso. Sin embargo, como el equipo es de dedicacin exclusiva para el crcel, 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 trminos de seguridad adems que
mantener ejecucin de cdigo por solicitudes externas pueden consumir considerable memoria que podran 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 crcel no es procedimiento correcto ya que acarrea
problemas en las estructura de compilacin y ejecucin de cdigos, por lo que para

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

71

actualizar o instalar un nuevo software en el servidor de ejecucin, simplemente se


debe actualizar o instalar normalmente el software y reiniciar el servicio.
Es tambin relevante la evaluacin de los lmites de los recursos de ejecucin,
por lo que es necesario establecer lmites mximos para el tiempo de ejecucin,
la memoria usada, el tamao de los ficheros generados durante la ejecucin y el
nmero de procesos simultneos. Estos lmites se aplican al ejecutar los ficheros
de script mencionados en la metodologa de ejecucin, y el fichero vpl.execution
generado por ellos. Si la actividad est basada en otra, los lmites establecidos se
pueden ver restringidos por los establecidos en aquella y otras en la que la misma
se base, adems de por los establecidos en la configuracin global del mdulo.
El servidor crcel vpl cuenta con un demonio linux, este es responsable de la
gestin de la ejecucin del cdigo. 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 cdigo se ejecuta, el servidor tambin requiere comunicacin con el navegador 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 implementada.
El servidor VPL, tiene la capacidad de interpretacin y compilacin de cdigos
en diferentes lenguajes, para los fines de esta investigacin se realizaron diferentes
pruebas en C, para describir el comportamiento frente a los clculos, tiempo de
compilacin y ejecucin.

72

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.3.

Reconocimiento de algoritmos y programacin para procesamiento digital de seales en tiempo real sobre el
modulo TMS320C5535

4.3.1.

Plantilla de programacin para C5505/C5535

Se gener la plantilla de programacin la cual contiene los siguientes archivos


de soporte necesarios para el desarrollo, configuracin, inicializacin y programacin de una aplicacin DSP, usando el hardware anteriormente seleccionado.

Figura 4.3: Plantilla de programacin


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

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.3.2.
4.3.2.1.

73

Generacin de seales sinusoidales


Generacin de tonos puros sinusoidales

Se gener un audio estereofnico escribiendo en el auricular izquierdo y derecho respectivamente, un tono puro a una frecuencia especfica. Usando la herramienta para la visualizacin grfica en el tiempo y el anlisis en la frecuencia. En la
figura 4.4 y 4.5 se muestra la seal sinusoidal en el dominio temporal.
Por otro lado, en la figura 4.6 y 4.7 se muestra el espectro de la seal 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 seal
sinusoidal.

Figura 4.4: Seal sinusoidal f = 500Hz en el dominio del tiempo.

Figura 4.5: Seal 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)

500
1000

Volumen (dB)

15, 643247
15, 509970

74

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.6: Seal sinusoidal f = 500Hz en el dominio de la frecuencia.

Figura 4.7: Seal sinusoidal f = 1000Hz en el dominio de la frecuencia.

4.3.2.2.

Generacin de tonos musicales

La visualizacin de los tonos musicales en el dominio temporal no aporta ningn resultado relevante ya que resulta difcil discriminar los cambios la forma de

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

75

onda, debido a que las frecuencias son muy cercanas entre si. No obstante, mediante la reproduccin de los tonos se puede escuchar la diferencia entre ellos debido a
que para este rango de frecuencias con tan solo un 3

% de variacin entre si, puede

el odo humano discernir entre una nota y otra [5].

Figura 4.8: Generacin notas musicales en escala anglosajona en el dominio de la


frecuencia.
Tabla 4.2: Espectro de potencias de notas musicales en escala anglosajona.

Nota anglosajona
A
B
C
D
E
F
G

Frecuencia (Hz)

440
493,88
261,63
293,66
329,63
349,23
392

Volumen (dB)

18, 480934
22, 393906
20, 746923
18, 742533
22, 110437
18, 466793
22, 027313

En este estudio se valor la frecuencia de muestreo del hardware, esta frecuencia sta supeditada a unas frecuencias permitidas, ya que estn asociadas a la operacin del PLL, en el fichero aic3204init.c de iniciailizacin 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 cdigo se muestra la funcin que describe

76

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

los ajustes de la frecuencia de muestreo y la ganancia del convertidos analgicodigital.


unsigned long

set_sampling_frequency_and_gain

(unsigned long SamplingFrequency, unsigned int ADCgain)

4.3.2.3.

Lectura y escritura de seales de voz

Mediante el uso del convertidor analgico digital y el manejo de perifricos I/O,


se ley una seal de voz por medio de un micrfono y fue escrita en el TMS320C5535
en tiempo real, realizar este algoritmo nos permite reconocer la capacidad del mdulo tanto para el muestreo de este tipo de seales como para ser tratadas posteriormente.

Figura 4.9: Seal de voz en el dominio del tiempo.

Figura 4.10: Seal de voz en el dominio de la frecuencia.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

77

La seal de voz generada esta constituida por un conjunto de sonidos generados por el aparato fonador humano, esta seal acstica es transformada por el
micrfono en una seal elctrica. En cuanto a la representacin de esta seal digital 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 seales", La
representacin de la seal de voz en funcin del tiempo es relevante puesto a que
brinda informacin sobre caractersticas importantes como la energa y los cruces
por cero, cualidades utilizadas en los estudios y anlisis de voz [31].
Por otro lado, se presenta el anlisis en frecuencia, del cual se pueden obtener
otros parmetros relevantes de la seal de voz. La frecuencia fundamental, brinda
informacin 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
tambin cuenta gran contenido de armnicos.

4.3.2.4.

Convolucin

En el proceso descrito del cdigo anterior, de acuerdo a los valores utilizados, se


deben descartar las primeras nh

1 = 5 muestras de cada convolucin calculada,

y para evitar perder las primeras 5 muestras, se agregan (rellenan) esa cantidad de
ceros al principio de la sucesin de entrada.

x[nx] = x[nx + nh ]

(4.1)

Luego de rellenar con ceros, tcnica empleada solo en el 1er bloque de procesamiento, se procede a procesar los bloques sucesivos. En esta etapa, el segundo

1 5

bloque de la sucesin de entrada se elige de modo que se solape con las nh =

ltimas muestras del bloque anterior, de modo que esas muestras que ya fueron
guardadas generaran las primeras 5 muestras errneas las cuales son descartadas
de la salida parcial generada obteniendo el bloque correcto.

78

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.11: Procesamiento de primer bloque de suma de convolucin.


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 tcnica implementada para la estimacin de la convolucin fue diseada para el soporte de la funcin convol y para la ilustracin del procesamiento por bloques
cuando el tamao del arreglo de entrada es muy grande. As mismo, esto permite

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

79

mantener la restriccin en tiempo real y por consiguiente mejorar el rendimiento


del sistema.
La convolucin por bloques se realiz partiendo de la secuencia de la respuesta
impulsiva h[n] de tamao nh y la de entrada x[n] de tamao 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 tamao fijo.

Conocido el tamao de las secuencias y habiendo seleccionado la longitud de


los bloques a procesar se procede a calcular la convolucin mediante la funcin
convol de la librera DSPLIB.

Figura 4.13: Muestras de salida correctas y erroneas en procesamiento por bloques.

Como el descarte de las primeras nh muestras ocurre, el segundo bloque de


la sucesin de entrada se debe seleccionar de manera que este 2do bloque se solape

1 ltimas muestras del bloque anterior, de modo que estas ltimas


muestras deben almacenarse para generar las primeras nh 1 muestras errneas
con las nh

las cuales son descartadas de la salida parcial generada obteniendo el bloque de


salida correcto. Esta metodologa descrita debe aplicarse al resto de los bloques
para que no haya prdida de informacin.

80

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.3.3.

Sistemas discretos

La realizacin de sistemas discretos requieren conocimiento de las estructuras


y control de bfers, estos pueden llegar a ser implementaciones triviales cuando
son del tipo lineal, sin embargo, representan tiempos de procesamiento considerables para desplazar grandes cantidades de datos. En DSP en tiempo real los bfers
deben ser del tipo circular. Se implementaron dos grupos de sistemas, el primero comprende sistemas lineales para procesamiento basado en retardos y el otro,
sistemas no lineales para procesamiento en el dominio dinmico.

4.3.3.1.

Eco (Mediante ecuacin de diferencias)

La seal de voz original x[n], se ha retrasado N muestras y sumado, con un


factor de escala , para construir la seal con eco y[n]. Este es un modelo razonable
para un eco producido por la reflexin de una seal en una superficie parcialmente
absorbente como una pared. Si se sita un micrfono entre el hablante y la pared,
ste grabar tanto la seal original como la reflejada por un cierto tiempo despus.
Como la onda reflejada debe recorrer ms distancia hasta llegar al micrfono, estar
retrasada. Por otra parte, como la pared presenta una cierta absorcin, la amplitud
de la onda reflejada ser menor.
Se disearon tres sistemas con diferentes retardos y factores de atenuacin,
usando Octave apoyado de la librera de funciones sys. Cambiando los parmetros
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");

Captulo IV. Anlisis, interpretacin y presentacin 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 diseado de eco, describe en su diagrama de polos y ceros, que de


numero ceros tiene coincidencia con el nmero de retardos que se introducen y el
patrn de distribucin esta descrito para todas las frecuencias angulares =

0, 1, ...k 1).

con n = (

2
k

82

Captulo IV. Anlisis, interpretacin y presentacin 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))

Captulo IV. Anlisis, interpretacin y presentacin 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 diseado 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 mltiplos de 1/t (t =
Fs
k ) y atena las impares. Por su parte la fase exhibe un comportamiento lineal en las

zonas donde amplifica la seal, mientras que cambia de fase bruscamente cuando
el sistema atena por completo al sistema (frecuencias donde se ubican los ceros.)

84

Captulo IV. Anlisis, interpretacin y presentacin 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 micrfono, e introduciendo eco mediante
el sistema en tiempo real, con el ajuste de los parmetros en notacin de punto fijo

24000 y a = 32000, y un bfer de retardo de tamao nb = 30000, se


obtuvo un tiempo de respuesta al eco del sistema de 702ms, esta seal de voz que

se tiene k =

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

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


4.3.3.2.

85

Eco (Mediante funcin FIR)

El efecto eco tambin se puede generar con un filtro FIR, por lo que se realiz
una implementacin similar a la anterior mediante el uso de la funcin FIR.

Figura 4.21: Sistema que introduce eco con FIR en el dominio del tiempo usando
pulso 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 micrfono, e introduciendo eco mediante
el sistema en tiempo real usando la funcin FIR, los coeficientes que describen el
comportamiento del sistema coinciden con la repuesta al impulso del mismo. De
acuerdo a esto se ajustaron los parmetros en notacin de punto fijo donde se tiene
que el retardo k se modela como el tamao del bfer de retardo rbuffer que coincide
con el numero de coeficientes del filtro. nh = k =
un tiempo de respuesta al eco del sistema de

10000 y a = 22936, se obtuvo

503ms, esta seal de voz que ingre-

sa al sistema no fue generada en un ambiente controlado por lo que se insertan


componentes de ruido de fondo a esta.

86

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.3.3.3.

Reverberacin

Se disearon tres sistemas con diferentes retardos y factores de atenuacin,


usando Octave apoyado de la librera de funciones sys. Cambiando los parmetros
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.

Captulo IV. Anlisis, interpretacin y presentacin 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 diseado de reverberacin, describe en su diagrama de polos y ceros,


que el numero de polos tiene coincidencia con el nmero de retardos que se introducen y el patrn de distribucin esta descrito para todas las frecuencias angulares
=

2
k

0, 1, ..., k 1)

n con n = (

88

Captulo IV. Anlisis, interpretacin y presentacin 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.

Captulo IV. Anlisis, interpretacin y presentacin 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 diseado de reverberacin, 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 sistema atena las frecuencias impares mltiplos
de 1/t (t =

Fs
k )

y amplifica las pares. La amplitud de la seal resultante es una fun-

cin 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 condicin se mantiene estable. Por su
parte la fase exhibe un comportamiento lineal en las zonas donde amplifica la seal,

90

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

mientras que cambia de fase bruscamente cuando el sistema atena por completo
al sistema (frecuencias donde se ubican los ceros.)

Figura 4.28: Respuesta del sistema que introduce reverberacin en el dominio del
tiempo a un pulso de voz.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


4.3.3.4.

91

Distorsin no lineal por saturacin

El sistema que modela la distorsin por saturacin es descrita mediante una


funcin definida en tramos y presenta a las variables de que describen a la ecuacin en notacin de punto fijo, es este sentido el valor umbral y el de saturacin
estarn ajustados a las cualidades de las pistas de acordes o de la seal de entrada
en cuestin.

y(n) =

2000

si

20 x(n)

si

2000

x(n) >

100

100 6 x 6 100

si

100

x(n) <

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

(4.2)

92

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.29: Funcin de transferencia del sistema de distorsin no lineal por saturacin.

Usando un tono puro de 500Hz generado en 4.4 como entrada al sistema obtenemos la respuesta en frecuencia.

Figura 4.30: Respuesta en frecuencia del sistema de distorsin por saturacin, a


un tono puro de 500Hz de entrada.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

93

Tabla 4.3: Espectro de potencias de armnicos generados del sistema de distorsion


por saturacin.

Armnico
Fo
Fo
Fo
Fo
Fo

3
5
7
9

Frecuencia (Hz)

500
1500
2500
3500
4500

Volumen (dB)

10, 820345
27, 12205
30, 668192
34, 578655
36, 127178

Figura 4.31: Respuesta en frecuencia del sistema de distorsin por saturacin, a


una pista de acordes de entrada.

En la figura 4.31 se muestra el espectro de la seal resultante al aplicar una pista


de acordes en el sistema, donde las combinaciones de los parmetros umbrales y de
saturacin se mantienen iguales, aunque pueden ser modificables. En este sentido
si el umbral se desea ms bajo, se suprimira una mayor porcin de seal o incluso
toda ella ntegramente. Por el contrario, si el umbral es mas elevado mayores porciones de la forma de onda pasarn por el sistema. Se comprobaron una variedad
combinaciones mediante el procedimiento descrito.

94

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.3.3.5.

Distorsin no lineal polinmica cuadrtica

El polinomio de 2do orden modela la funcin de transferencia del sistema de


distorsin polinmica con simetra par, la cual se muestra en la figura 4.32, por lo
que cada muestra de la seal se eleva al cuadrado y se escala por un coeficiente
cuadrtico a2 .

y(n) = a2 x(n)2
% Funcion de transferencia distorsion no lineal (Polinomica).
% En n o t a c i 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);

(4.3)

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

95

Figura 4.32: Funcin de transferencia distorsin polinmica cuadrtica.

Al introducir un tono puro sinusoidal de

500Hz al sistema de distorsin poli-

nmica cuadrtica, se obtiene una version distorsionada de esta seal. En la figura


4.33 se muestra el anlisis en el dominio de la frecuencia de esta salida.

Figura 4.33: Respuesta en la frecuencia del sistema de distorsin cuadrtica 4.3., a


un tono puro de 500Hz de entrada.

96

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


En cuanto al anlisis en frecuencia, se obtuvo como respuesta solo una compo-

nente armnica 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 armnicos generados del sistema de distorsin
cuadrtica 4.3

Armnico
Fo
Fo

Frecuencia (Hz)

500
1500

Potencia (dB)

48, 698540
13, 721004

Usando de nuevo el polinomio de 2do orden ahora la funcin de transferencia


cuadrtica ms la funcin identidad 4.4, como sistema de distorsin, la cual agrega
la componente lineal y lo escala por un coeficiente a.

y(n) = a2 x(n)2 + ax(n)


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

(4.4)

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

97

Figura 4.34: Funcin de transferencia distorsin polinmica cuadrtica.

Introduciendo para este el mismo tono puro sinusoidal de

500Hz al sistema de

distorsin polinmica cuadrtico con componente lineal, se obtiene una version


distorsionada de esta seal.

Figura 4.35: Respuesta en el tiempo del sistema de distorsin cuadrtica ??, a un


tono 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 anlisis en frecuencia 4.36, se obtuvo como respuesta las componentes armnicas 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 relativos a estas componentes.

98

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.36: Respuesta en frecuencia del sistema de distorsin cuadrtica 4.4, a un


tono puro de 500Hz de entrada.

Tabla 4.5: Espectro de potencias de armnicos generados del sistema de distorsin


cuadrtica 4.4.

Armnico
Fo
Fo
Fo
Fo

2
4
6

Frecuencia (Hz)

500
1000
2000
3500

Potencia (dB)

6, 782156
15, 235421
31, 211441
37, 421532

Se evidencia que podemos aplicar estos sistemas cuadrticos y producir el efecto especifico de distorsin armnica con la generacin de las componentes pares.
Sin embargo, esto es reflejado nicamente cuando la seal de entrada es una onda
sinusoidal pura. como la funcin de transferencia tiene simetra par los armnicos
producidos solo sern (2fo , 4fo , 6fo ,...), el 1fo es un armnico impar, y se elimina
al ingresar al sistema. No obstante, se puede mantener la frecuencia fundamental,
se determin que basta con agregar la funcin identidad al sistema para hacerlo.
La identidad trigonomtrica 4.5 para la reduccin de exponentes describe las operaciones asociadas a exponer al cuadrado un tono puro sinusoidal.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

2x
sin2 x = 1 cos
2
4.3.3.6.

99

(4.5)

Distorsin no lineal polinmica cbica

El polinomio de 3er orden modela la funcin de transferencia del sistema de


distorsin polinmica con simetra impar, la cual se muestra en la figura 4.37, por
lo que cada muestra de la seal se eleva al cubo y se escala por un coeficiente cbico
a3 .

y(n) = a3 x(n)3
% Funcion de transferencia distorsion no lineal (Polinomica).
% En n o t a c i n de punto fijo.
x = linspace(-200,200,3000);
y = linspace(-2000,2000,3000);
% Termino cuadr tico , responsable de distorsi n por tercera a r m n i c a
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);

(4.6)

100

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.37: Funcin de transferencia distorsin polinmica cbica.

Al introducir un tono puro sinusoidal de

500Hz al sistema de distorsin polin-

mica cbica, se obtiene una version distorsionada de esta seal.

Figura 4.38: Respuesta en el tiempo del sistema distorsin cbica 4.6, a un tono
puro 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.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

101

Figura 4.39: Respuesta en frecuencia del sistema distorsin cbica 4.6, a un tono
puro de 500Hz de entrada.
Tabla 4.6: Espectro de potencias de armnicos generados del sistema distorsin
cbica 4.6

Armnico
Fo
Fo

Frecuencia (Hz)

500
1500

Potencia (dB)

8, 483990
19, 938459

En cuanto al anlisis en frecuencia 4.39, se obtuvo como respuesta las componentes armnicas 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 componentes.

102

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Usando de nuevo el polinomio de 3er orden ahora con la funcin de transferen-

cia cbica ms la funcin identidad 4.7, como sistema de distorsin, la cual agrega
la componente lineal y lo escala por un coeficiente a.

y(n) = a3 x(n)3 + ax(n)


% Funcion de transferencia distorsion no lineal (Polinomica).
% En n o t a c i n de punto fijo.
x = linspace(-200,200,3000);
y = linspace(-2000,2000,3000);
% Termino cuadr tico , responsable de distorsi n por tercera a r m n i c a
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 distorsin polinmica cbica

(4.7)

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

103

Introduciendo para este el mismo tono puro sinusoidal de 500 Hz al sistema de


distorsin polinmica cubica con componente lineal, se obtiene una version distorsionada de esta seal.

Figura 4.41: Respuesta en el tiempo del sistema de distorsin cbica 4.7, a un tono
puro de 500Hz de entrada

En este caso, se evidencia un comportamiento distorsionante de la forma de


onda e incluso se aprecia una suave saturacin en los picos de la seal 4.41, en la
salida en temporal.

Figura 4.42: Respuesta en frecuencia del sistema de distorsin cbica 4.7, a un tono
puro de 500Hz de entrada

104

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.7: Espectro de potencias de armnicos generados del sistema distorsin
cbica 4.7

Armnico
Fo
Fo
Fo
Fo

3
5
7

Frecuencia (Hz)

500
1500
2500
3500

Potencia (dB)

2, 069880
27, 469328
25, 986374
35, 391556

En cuanto al anlisis en frecuencia 4.42, se obtuvo como respuesta las componentes armnicas impares como en el caso anterior, mantenindose la componente
fundamental pero aumentando la distorsin armnica, con la aparicin de otras
componentes. En la tabla 4.7 se muestran los niveles de potencia relativos a estas
componentes.
El sistema de distorsin descrito como una funcin de transferencia cbica logra producir el efecto especfico de distorsin armnica con la generacin de las
componentes impares, al igual que su contra parte cuadrtico, el efecto solo es reflejado nicamente cuando la seal de entrada es una onda sinusoidal pura. La
funcin de transferencia tiene simetra impar por lo que los armnicos producidos
sern (1fo , 3fo , 5fo ,...), el 1fo es un armnico impar que este particular no se elimina al ingresar al sistema. Al agregar la funcin identidad al sistema se obtiene
mayor contenido armnico y por ende mayor distorsin. La identidad trigonomtrica 4.8 para la reduccin de exponentes describe, una mayor complejidad en las
operaciones asociadas a exponer al cubo un tono puro sinusoidal.

sin3 x = 3 sin x 4 sin 3x


4.3.3.7.

(4.8)

Efectos de la distorsin polinmica en audio

Existen sistemas de cajas o pedales de distorsin con diferentes formas de onda


y funciones de transferencias para efectos musicales. A partir de los sistemas de
distorsin polinmica anteriormente descritos se introdujo en ellos una pista de
acordes.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

105

Figura 4.43: Respuesta en el tiempo, de seal de entrada (pista de acordes).

Al introducir la seal 4.43 como entrada al sistema de distorsin cuadrtica con


componente lineal 4.4, se producen mayor contenido armnico que no tiene correspondencia con una respuesta de armnicos 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 distorsin cuadrtica 4.4, a una
pista de acordes de entrada.

As mismo se introduce la seal 4.43 como entrada al sistema distorsin cbica


4.7 por ser el que produce mayor contenido armnico se obtiene la siguiente forma
de onda en el tiempo 4.45.

Figura 4.45: Respuesta en el tiempo del sistema de distorsin cbica 4.7, a una
pista de acordes de entrada

Este estudio de los sistemas con la pista de acordes permite generalizar que ellos
no producen distorsin armnica debido a que estos productos generan distorsin
por intermodulacin, por lo que no predominan componentes pares ni impares en
las salidas.

106

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.3.3.8.

Modulacin

La suma y diferencia de frecuencias generadas en el modulador en anillo representan resultados de frecuencias igualmente no armnicas que en los casos de
distorsin. Pero en este caso los productos de frecuencia son sumas y diferencias
de la frecuencia portadora y no entre las frecuencias de la misma seal de entrada.
Adems, en la modulacin en anillo, la frecuencia original no est presente, en comparacin con los productos en la distorsin por intermodulacin que sigue siendo
las que aporta ms contenido espectral.
Aunque el resultado audible es fcil de comprender para seales simples, cuando la complejidad de la seal original aumenta, la comprensin del resultado requiere tcnicas de anlisis ms rigurosas. Para este estudio se tomaron dos sinusoidales 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
seales, sigue la siguiente propiedad trigonomtrica:

sin(a) sin(b) = 12 [cos(a b) cos(a + b)]


Se llevo a cabo la experiencia de la multiplicacin de la seal modulante
con la seal portadora

(4.10)

200Hz

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 modulacin sobre tono sinusoidal de 500Hz y portadora 200Hz

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

107

Figura 4.47: Respuesta en frecuencia del sistema de modulacin sobre tono sinusoidal de 500Hz y portadora 200Hz

En la figura 4.47 se muestra la experiencia realizada con el modulador en anillo, experiencia similar a la que se expona a nivel terico, donde se ha verificado
que la mezcla de la seales 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 seal modulante y con otro igual de 500Hz

como portadora, el modulador multiplica ambas seales produciendo la seal su-

500Hz - 200Hz) y (500Hz + 200Hz) con los siguientes

ma de las bandas laterales (


niveles de potencia 4.8.

Tabla 4.8: Espectro de potencias de bandas lateral, modulador en anillo

Frecuencia (Hz)

300
700

Volumen (dB)

24, 272306
22, 620872

En efectos en audio digital, los moduladores en anillo existentes tiene una entrada destinada a la conexin de un instrumento. La otra seal es creada normalmente
por algn oscilador interno, la cual es considerada la portadora, este esquema coindice con el implementado sobre el hardware DSP.

108

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.48: Respuesta en frecuencia del sistema de modulacin sobre pista de


acordes y portadora Fm: 1KHz

El sonido de la pista coincide con la suma de varias ondas senoidales diferentes, no un tono puro. De esta forma, el nmero de tonos generados crec como se
muestra en el anlisis espectral 4.48, pues cada componente produce la suma y la
diferencia con todas las seales senoidales parciales contenidas en la otra seal,
creando un sonido complejo asonante.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.3.4.

109

Filtros digitales

Para el diseo de los filtros digitales se sigui la metodologa precedente para el


diseo postulado en III. De esta manera se obtuvieron los coeficientes de los filtros,
los cuales se llevaron a notacin de punto fijo, truncandolos para ser soportados por
el procesador TMS320C5535 el cual es de 16 bits usando representacin en Q.15.
La cantidad de estos coeficientes del filtro generados por el sotfware de diseo
se limit a 32, por lo que se deben optimizar e incluso redisear 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 ms plana, sin embargo, para los
efectos de este trabajo de investigacin, el desempeo del filtro no fue un factor
relevante.
Desde esta perspectiva, para las experiencias de este trabajo se utiliz una seal
de banda 4.49 con contenido espectral en todas las bandas de paso de los filtros
diseados.

Figura 4.49: Respuesta en frecuencia de seal de banda entre (200 -8000)Hz.

110

Captulo IV. Anlisis, interpretacin y presentacin 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 seal de banda

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

111

En la figura 4.51 se visualiza la atenuacin de las componentes de alta frecuen-

1001Hz, teniendo como


potencia de una frecuencia de prueba de 1900Hz = 60, 310425dB. De acuerdo con
cia, permitiendo el paso de las frecuencias por debajo de

el anlisis espectral mostrado, se puede observar que en la banda de rechazo el


rizado corresponde al generado en el diseo.

112

Captulo IV. Anlisis, interpretacin y presentacin 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 seal de banda.

Figura 4.53: Respuesta en frecuencia del filtro pasa alta, a seal de banda.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

113

En la figura 4.53 se visualiza la atenuacin de las componentes de baja y media

5501Hz, teniendo
como potencia de una frecuencia de prueba de 1200Hz= 70, 0764395dB. De acuer-

frecuencia, permitiendo el paso de las frecuencias por encima de

do con el anlisis espectral mostrado, se puede observar que en la banda de rechazo


el rizado corresponde al generado en el diseo.

114

Captulo IV. Anlisis, interpretacin y presentacin 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 seal de banda.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

115

En la figura 4.51 se visualiza la atenuacin de las componentes de baja y alta frecuencia, permitiendo el paso de las frecuencias dentro de la banda

1500Hz a 5501Hz

4001Hz, teniendo como potencia de una frecuencia de prueba de 6000Hz = 62, 027370dB. De acuerdo con el anlisis espectral mostrado, se

con ancho de banda de

puede observar que en la banda de rechazo el rizado corresponde al generado en el


diseo.

116

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.3.4.4.

Filtro Notch

Para la implementacin particular del filtro Notch, se dise con una frecuencia

de corte de kHz y un ancho de banda de BW =

2, 4kHz. A travs de esta experiencia

se llevaron a cabo dos pruebas una con un tono puro, evaluando cuando selectivo

podra llegar ser el filtro, introduciendo un tono de kHz.

Figura 4.56: Filtro Notch Fc = 6kHz.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

117

Figura 4.57: Respuesta en frecuencia del filtro Notch, a un seal sinusoidal pura de
6kHz

71, 315651dB

De esta experiencia se exhibe en 4.57 un nivel de potencia de

para Khz. Ahora bien para la prueba del filtro Notch sobre una pista de acordes se

realiz otro diseo con una frecuencia de corte de kHz y un BW =

680Hz, con la

intencin de filtrar esta componente del contenido espectral de la pista.

Figura 4.58: Respuesta en frecuencia de pista de acordes.

118

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Antes de aplicar el filtro Notch a la pista de acordes se tenia un nivel de potencia

24, 147579dB como se ilustra en la figura 4.58.

para la frecuencia de F = kHz de

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

47, 696217dB. En la figura

obtuvo a la misma frecuencia de kHz una potencia de

4.59 tambin se puede apreciar el efecto asociado al ancho de banda del diseo que
atena tambin el contenido armnico alrededor de la frecuencia de corte.
Se debe sealar que esta seleccin de coeficientes acorde al manejo del tamao
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, adems al ser
extrapolados estos coeficientes a CCS para la implementacin 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 decibelios (dB), indicando la ondulacin mxima (rizado) tolerada en la banda de paso y
la atenuacin mnima exigida en la banda de rechazo.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

119

En relacin al diseo 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 ms conveniente es usar una ventana, para reducir los lbulos laterales. El entorno de diseo de filtros usado cuenta en particular con una
librera con funciones de ventanas que pueden mejorar el desempeo 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 transicin entre la zona donde tericamente todo pasa y la zona donde
tericamente 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 consideracin a la cuantificacin de entradas y salidas debido a la resolucin
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 precisin (por ejemplo, el resultado de la multiplicacin de dos nmeros de N bits es un nmero de 2N bits). Cuando estos resultados se almacenan en
memoria se truncan a la longitud de palabra adoptada. El error resultante, denominado ruido de redondeo, altera la respuesta del filtro.
Los filtros FIR ofrecen en general una respuesta de fase ms lineal y no entran
jams en oscilacin (es decir, no se vuelven inestables), ya que no poseen realimentacin. Por otro lado, requieren un gran nmero de trminos en sus ecuaciones y
eso les hace ms costosos en cuanto a clculo o carga computacional. Un filtro FIR
con un corte muy abrupto (es decir, que tenga una banda de transicin 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 caractersticas de realimentacin o feedback, tienen tendencia a entrar en oscilacin y en resonancia, as que

120

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

por la limitacin en el rango dinmico estas implementaciones podran 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 transicin rpida (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 tambin un efecto importante en la fase de las seales. El filtrado en s mismo es una aplicacin de los retardos (modificando la fase de la seal),
lo que explica su comportamiento en el dominio temporal y su implementacin
digital.

4.3.5.

Efectos de filtros digitales: Ecualizacin

Basados en las estructuras de los filtros antes descritos se procedi a realizar


un sistema de ecualizacin, especficamente 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 coeficientes para generar las combinaciones posibles. Los clculos se realizan muestra a
muestra y en proceso paralelo, todos los filtros adems son del mismo orden.

Figura 4.60: Ecualizador digital de tres bandas, para tono dual.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

121

En la figura 4.60 se muestra el ecualizador para una tono dual, con dos frecuencias,

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 muestran 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 seal dual (800Hz-4kHz) sin ecualizacin.


Tabla 4.9: Espectro de potencias de seal de tono dual sin ecualizacin.

Frecuencia (Hz)

800
4000

Potencia (dB)

6, 390619
7, 874199

122

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.62: Respuesta en frecuencia del sistema de ecualizacin, a una seal dual
(800Hz-4kHz).
Tabla 4.10: Espectro de potencias del sistema actualizador, a una sealde tono
dual.

Frecuencia (Hz)

800
4000

Potencia (dB)

13, 150507
69, 586319

El estudio revela que el sistema filtra correctamente la componente de Khz. En


el anlisis espectral de la seal de salida 4.62 se visualiza solo la componente del
tono dual. Es importante destacar que la atenuacin 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
posicin de los ceros en el diagrama de polos y ceros del sistema, por lo cual existe
una tolerancia de error en la frecuencia de diseo.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

123

Para una seal de banda de frecuencias, que puede representar un ruido blanco,
se aplic el sistema de ecualizacin, con esta experiencia se permite ilustrar el efecto
auditivo de la aplicacin de este sistema.

Figura 4.63: Ecualizador digital de tres bandas, para seal de banda (200Hz-8kHz).

En la figura 4.63 se muestra el ecualizador para una seal de banda que podra
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 seal de banda (200Hz-8kHz) sin ecualizacin.

124

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.65: Respuesta en frecuencia del sistema de ecualizacin, a una seal de


banda (200Hz-8kHz).

El estudio revela que el sistema filtra correctamente las componentes de fre-

cuencia por encima de kHz. En el anlisis espectral de la seal de salida que se


muestra en la figura anterior se visualiza varios aspectos interesantes, el primero de ellos es que en la regin 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

83

componente de khz es considerablemente atenuada a unos dB, 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 ecualizacin implementada con el hardware DSP es satisfactorio, pero si se pretende implementar un control ms exigente, como por ejemplo
un ecualizador de 15 o 30 bandas, la distorsin de la respuesta causada por la interconexin de estos podra ser relevante. En este sentido, se debe indicar que las
frecuencias centrales de los ecualizadores estn linealmente espaciadas a diferencia
de los ecualizadores comerciales que estn espaciados por octavas ya que existe un
estndar ISO sobre las frecuencias centrales que es preferible usar para el diseo
ms especializado.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

125

Se evidencia que la implementacin de un ecualizador digital, no consiste simplemente en el control de la ganancia de bajo, medios y altos. El ecualizador usa el
banco de filtros con bandas de paso definidas y diseadas para aislar completamente ciertas bandas de frecuencias con el objetivo de tener control sobre el espectro de
audio de la seal 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 pequea banda convenientemente segn las necesidades del instrumento o la pista. As mismo, una vez que la seal pasa por cada filtro, el usuario
puede manipular cada banda independientemente modificando su ganancia.

126

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.4.

Recursos y prcticas del laboratorio de procesamiento


digital de seales

Los resultados de la elaboracin de estas prcticas y recursos de contenidos


realizados, se encuentran anexos a este trabajo de investigacin, la siguiente es una
descripcin general de estos desarrollo.

4.4.1.

Introduccin al laboratorio de PDS en tiempo real

En esta primera sesin, se presenta mediante un video tutorial una introduccin


al procesamiento digital de seales haciendo referencia a las posibles aplicaciones
y soluciones tecnolgicas en esta rea. En esta sesin se aade un documento de
lectura que contiene una sntesis del contenido en el video, aunado a una descripcin del laboratorio con el objetivo educativo y el cdigo de tica, las herramientas
a utilizar y por ultimo un diagrama de las sesiones virtuales y presenciales.
Por otro lado se incluye la plantilla de elaboracin del informe del laboratorio,
esta se elaborara en Latex, mediante Overleaf que es una herramienta de escritura
colaborativa que permite compilacin on-line en tiempo real, este recurso adicional
permitir a los estudiantes elaborar los informes asociados a los resultados de las
prcticas.

Figura 4.66: Sesin 1: Introduccin al procesamiento digital de seales.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.4.2.

127

Iniciacin a Code Composer Studio y a la serie DSK TMS320C55x

En este documento se han resumido las herramientas bsicas que se usarn en


este laboratorio para realizar procesamiento digital de seales (PDS) en tiempo real
sobre la plataforma DSK TMS320C55x. Esta iniciacin le permitir familiarizarse
con el Hardware, el ambiente de trabajo y las herramientas de Software para programar, depurar y verificar el cdigo que ser cargado en el Hardware.

Figura 4.67: Sesin 2: Iniciacin a Code Composer Studio y a la serie DSK


TMS320C55x.

4.4.3.

Tutorial para el software de diseo de filtros digitales Iowa Hills


software for digital filters design

Se diseo un tutorial acerca del software de diseo de filtros, en el documento se


ilustran las tcnicas usadas por el software de diseo de filtros digitales de Iowa Hills
Software, y se incluyen un video tutorial para facilitar su utilizacin. Este software
de carcter gratuito ser utilizado en las sesiones de diseo de filtros FIR e IIR
del laboratorio de PDS. El fin de esta lectura es ser un soporte adicional para el
reconocimiento de las tcnicas implementadas.

128

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Este programa tiene dos bancos de pruebas, el primero le permite probar el

filtro con una onda cuadrada o senoidal, y tambin le permite leer en una seal a
filtrar. El programa mostrar tanto la seal filtrada y sin filtrar en el dominio de la
frecuencia y del tiempo. Tambin 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.
4.4.4.1.

Prcticas del laboratorio de PDS en Tiempo Real


Prctica 0

Para esta prctica de laboratorio de iniciacin, se provee un documento al estudiante con los fundamentos de programacin bsicos en C para el desarrollo de
aplicaciones DSP. Esta practica tiene por objetivo reconocer similitudes y discrepancias con lenguajes ya conocidos para realizar programas simples para solucionar
problemas matemticos.
Para realizar las actividades de esta prctica deber usar la herramienta del laboratorio de programacin virtual alojada en el curso PDS del aula virtual. Esta
herramienta se usa en un pre-laboratorio de prueba en VPL (Hola mundo en C).
Por otro lado para el laboratorio, el contenido a desarrollar sera asociado a programacin en C como Funciones, Manejo de matrices y manejo de punteros, complementando esta sesin con el tutorial de programacin en C en lnea.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

129

Figura 4.68: Prctica 0: Programacin en C para procesamiento digital de seales.

4.4.4.2.

Prctica 1

Esta prctica de laboratorio provee al estudiante un documento de lectura acerca de procesadores de aritmtica de punto fijo (fixed point) para el manejo de desbordamiento y escalamiento y las nociones generales para el uso de la librera DSPLIB
y las consideraciones para procesamiento en tiempo real(RT).

Figura 4.69: Prctica 1: Generacin de seales senoidales.

130

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.4.4.3.

Prctica 2

La siguiente prctica de laboratorio tiene por objetivo el diseo de sistemas discretos para aplicaciones en tiempo real sobre fenmenos acsticos mediante y la
implementacin sobre el hardware TMS320C55x gestionado con CCS. Se incluyen
en esta sesin actividades de pre laboratorio usando la herramienta vpl para el dominio de bfers circulares y lineales en C, como tambin diseo de sistemas discretos usando Octave. Por otro lado se complementa esta sesin con la herramienta de
programacin con Octave en lnea como soporte para las libreras del software.

Figura 4.70: Prctica 2: Procesamiento de sistemas discretos.

4.4.4.4.

Prctica 3

La ultima sesin prctica de laboratorio para el diseo de filtros digitales tiene


por objetivo el diseo de sistemas FIR e IIR, con la metodologa para el diseo de
filtros presentada en la lectura recomendada.
Por otro lado esta sesin no cuenta con actividad de pre laboratorio, sin embargo
se uso una estrategia de repaso en linea con un cuestionario, ya que se considera
fundamental que se consoliden algunos aspectos previos al diseo y los parmetros
requeridos por el software.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

131

Figura 4.71: Prctica 3: Diseo de filtros digitales.

4.4.5.

Recursos de contenidos para practicas del laboratorio de PDS

Para cada una de las prcticas de laboratorio se agreg una lectura previa como
prembulo a las sesiones del laboratorio donde se recopilaron los aspectos generales necesarios para que el estudiante pueda llevar a cabo las diferentes sesiones.
Estos documentos cuentan con una resea del contenido y agregan las fuentes bibliogrficas para que pueda ser extendido y profundizado. Se crearon cuatro lecturas asociadas a cada una de las prcticas elaboradas.

Referencias Bibliogrficas
[1] S.M. Kuo, B.H. Lee, and W. Tian. Real-Time Digital Signal Processing: Implementations 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.


1997.

La percepcin sensorial.

ISBN 9789681853075.

Editorial Limusa S.A. De C.V.,

URL https://books.google.co.ve/books?id=

vcMARAAACAAJ.

[6] S.J. Orfanidis. Introduction to Signal Processing. Prentice Hall international editions. Prentice Hall, 1996. ISBN 9780132403344. URL https://books.google.
co.ve/books?id=4oC7QgAACAAJ.

[7] TMS320C5535 eZdsp: Technical Reference, Spectrum Digital, Inc., 2011.


http://support.spectrumdigital.com/boards/ezdsp5535/revc/files/
ezdsp5535_TechRef_RevC.pdf.

133

URL

134

Referencias Bibliogrficas

[8] Christopher Inacio and Denise Ombres. The DSP decision: Fixed point or
floating? IEEE Spectr., 33(9):7274, 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 Engineers Guide to Digital Signal Processing.
California Technical Publishing, San Diego, CA, USA, 1997. ISBN 0-96601763-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 Rodrguez del Pino, Zenn J. Hernndez F. Vpl:
Laboratorio virtual de programacin para moodle. In XVI Jornadas de Enseanza Universitaria de la Informtica, 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 Digital Signal Processing, 2002. DSP 2002. 2002 14th International Conference on, volume 2, pages 853856vol.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, volume 1, pages T2C1316vol.1, 2001. doi: 10.1109/FIE.2001.963878.

Referencias Bibliogrficas

135

[18] L.W. Couch. Sistemas de comunicacin digitales y analgicos. Pearson Educacin, 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:297301, 1965.
[20] A.V. Oppenheim, R.W. Schafer, and J.R. Buck. Tratamiento de seales en tiempo discreto.

Fuera de coleccin 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. OBrien. The Mixing Engineers 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 Application. 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.

136

Referencias Bibliogrficas

[27] S.S. Laurent, J. Johnston, and E. Dumbill.


XML-RPC.

Programming Web Services with

OReilly Series. OReilly 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 utilizacin de los videos tutoriales en educacin.


ventajas e inconvenientes. Revista Digital Sociedad de la Informaci, 2012.
[31] Fernando Peralta Reyes. Reconocedor y analizador de voz. Universidad Nacional Mayor de San Marcos., 2002.

Anexo A

Introduccin al laboratorio de PDS


en tiempo real.

Anexo B

Iniciacin a Code Composer Studio


y a la serie DSK TMS320C55x.

Anexo C

Tutorial para el software de diseo


de filtros digitales Iowa Hills
software for digital filters design.

Anexo D

Prcticas del laboratorio de PDS en


Tiempo Real.

Anexo E

Recursos de contenidos para


practicas del laboratorio de PDS.

You might also like