Anda di halaman 1dari 198

UNIVERSIDAD DE CARABOBO

FACULTAD DE INGENIERA
ESCUELA DE INGENIERA DE
TELECOMUNICACIONES
DEPARTAMENTO DE
ELECTROMAGNETISMO Y RADIACIN

SIMULACIN Y EVALUACIN DE ALGORITMOS DE DIRECCIN


DE ARRIBO (DOA) EN DISTINTOS PROCESADORES DIGITALES DE
SEALES (DSPS) USADOS EN ANTENAS INTELIGENTES

DAVID A. RANGEL B.
e-mail: jedara1@hotmail.com
JOS D. MADURO H.
e-mail: danielmaduroh@hotmail.com

Brbula, 4 de Marzo del 2015

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA DE
TELECOMUNICACIONES
DEPARTAMENTO DE
ELECTROMAGNETISMO Y RADIACIN

SIMULACIN Y EVALUACIN DE ALGORITMOS DE DIRECCIN


DE ARRIBO (DOA) EN DISTINTOS PROCESADORES DIGITALES DE
SEALES (DSPS) USADOS EN ANTENAS INTELIGENTES

TRABAJO ESPECIAL DE GRADO PRESENTADO ANTE LA ILUSTRE UNIVERSIDAD DE


CARABOBO PARA OPTAR AL TTULO DE INGENIERO DE TELECOMUNICACIONES E
INGENIERO ELECTRICISTA, RESPECTIVAMENTE

DAVID A. RANGEL B.
JOS D. MADURO H.

Brbula, 4 de Marzo del 2015

UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA DE
TELECOMUNICACIONES
DEPARTAMENTO DE
ELECTROMAGNETISMO Y RADIACIN

CERTIFICADO DE APROBACIN
Los abajo firmantes miembros del jurado asignado para evaluar el trabajo especial de grado titulado S IMULACIN Y EVALUACIN DE ALGORITMOS DE D IREC CIN DE

A RRIBO (D O A) EN DISTINTOS P ROCESADORES D IGITALES DE S EALES

(DSP S ) USADOS EN A NTENAS I NTELIGENTES, realizado por los bachilleres D A VID

A. R ANGEL B., cdula de identidad 21.653.185, J OS D. M ADURO H., cdula de

identidad 20.194.455, hemos decidido otorgar la mxima calificacin y la mencin


honorfica al presente trabajo, con base a los siguientes motivos:

1) Los estudiantes lograron un dominio muy amplio del tema tratado, abarcando otros campos
del saber y excediendo ampliamente el logro de los objetivos iniciales. 2) Los estudiantes desarrollaron un alcance que sobrepasa los lmites iniciales planteados. 3) El material desarrollado qued
estructurado como una plataforma de amplio uso, para investigaciones futuras en el rea de Antenas
Inteligentes.

Firma
Prof. R AFAEL A LBORNOZ
TUTOR
Firma

Firma

Prof. PAULINO D EL P INO

Prof. C ARLOS M EJAS

JURADO

JURADO

Brbula, 4 de Marzo del 2015

Dedicatoria
A mi Seor Jesucristo, la fuente de mi vida
A mi amada y dulce esposa, Karen Prez
A mis padres Eugenio Rangel y Gregoria Bolcan
DAVID A. RANGEL B.

A mi amado Cristo, Rey, Seor y Salvador de mi vida


A mis padres Gregorio y Dumidin y a mi ta Nene, mis pilares
A mis hermanos, Jess, Adriana y Gregori, mis fuentes de apoyo
JOS D. MADURO H.

Agradecimientos
A nuestro Seor Jesucristo, quien muri por nuestros pecados y resucit para
darnos redencin y vida eterna. A l que en todo momento estuvo con nosotros
y escuch nuestras oraciones, y tal como dira el Apstol Pablo: Toda la gloria sea
para Dios, quien puede lograr mucho ms de lo que pudiramos pedir o incluso imaginar
mediante su gran poder, que acta en nosotros. Gloria a l en la iglesia y en Cristo Jess
por todas las generaciones desde hoy y para siempre! Amn Efesios 3:20-21.
A nuestros padres, por su apoyo incondicional, por los principios y valores sembrados en nuestras vidas, por ser ellos el motor que nos impulsa a alcanzar nuestras
metas.
Al Profesor Rafael Albornoz, nuestro Tutor acadmico, por sus conocimientos
impartidos en la ctedra de Antenas y Propagacin, por la paciencia y dedicacin
que tuvo con nosotros en el desarrollo de esta investigacin y adems, por su agradable humor.
A la Ilustre Universidad de Carabobo, nuestra alma mter, por ser nuestro segundo hogar y quien nos brind tan preciados conocimientos.
Al cuerpo docente de la Facultad de Ingeniera que han sido parte de nuestra
formacin profesional.
A nuestro amigo Gabriel Santamara porque siempre contamos con su apoyo
y por brindarnos su ayuda para resolver varias de nuestras interrogantes en este
trabajo.
A la familia Maduro Henrquez por acogerme con amor y atencin en su hogar
durante el transcurso de esta investigacin, estando atentos a todas nuestras necesidades, gracias al Seor Gregorio por estar dispuesto en todo momento y a la Seora
Dumidin por su atencin tan especial. Agradezco a Dios el haberme dado la oportunidad de tener como compaero de tesis a mi hermano y amigo Daniel Maduro,

VI

por su valioso trabajo en esta investigacin, su gran esfuerzo en no perder cada detalle, estoy seguro que cada lnea de esta investigacin han llevado sus excelentes
correcciones. Dios bendiga su vida y el fruto de sus manos, (David Rangel).
A mis amigos que en todo tiempo estuvieron para apoyarme; en especial quiero
agradecer a Janeitti Matos, quien con mucho cario siempre me escuch cada vez
que necesitaba hablar con alguien, sus palabras alimentaron mi ser de ese nimo
que necesitaba para continuar. A Rossana Mrquez que cada da estuvo pendiente
de cmo iba todo y estuvo presente en cada paso que daba. A Karen Mendoza por
estar siempre atenta, contar con su motivacin fue de gran estima. A Marelyn Sez
quien desde inicios de la carrera ha batallado conmigo, y por haberme ofrecido
su ayuda para lo que necesitara. Gracias especiales a mi mejor amigo y hermano
David Rangel, adems de excelente compaero de tesis, por su valiosa amistad y
por estar siempre presente en todo momento, (Daniel Maduro H).

ndice general
ndice de Figuras

XI

ndice de Tablas

XV

Acrnimos

XIX

Lista de Smbolos

XXI

Resumen
I. Introduccin
1.1. MOTIVACIN. . . . . . . . .
1.2. OBJETIVOS. . . . . . . . . . .
1.2.1. Objetivo General. . . .
1.2.2. Objetivos Especficos.
1.3. ALCANCES. . . . . . . . . . .

XXV

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

II. Marco conceptual


2.1. INTRODUCCIN A LOS SISTEMAS DE ANTENAS INTELIGENTES.
2.1.1. Limitaciones de las tcnicas de Acceso Mltiples convencionales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2. Acceso Multiple por Divisin de Espacio (SDMA). . . . . . . .
2.1.3. Tecnologa de Antenas Inteligentes. . . . . . . . . . . . . . . .
2.1.3.1. Tcnicas de implementacin. . . . . . . . . . . . . . .
Haz Conmutado. . . . . . . . . . . . . . . . . . . . . . .
Haz de Seguimiento. . . . . . . . . . . . . . . . . . . . .
Haz Adaptativo. . . . . . . . . . . . . . . . . . . . . . .
2.1.3.2. Sistema de Antena Inteligente de haz adaptativo. . .
2.2. ESTIMACIN DE LA DIRECCIN DE ARRIBO (DOA). . . . . . . .
2.2.1. Modelo general del sistema. . . . . . . . . . . . . . . . . . . . .
2.2.1.1. Sistema de coordenadas a usar. . . . . . . . . . . . .
2.2.1.2. Propagacin de ondas. . . . . . . . . . . . . . . . . .
2.2.1.3. Modelo paramtrico de los datos. . . . . . . . . . . .
VII

1
1
4
4
4
5
7
7
7
8
9
11
12
12
13
14
15
15
16
16
18

VIII

ndice general

2.2.1.4. Agrupacin de antena. . . . . . . . . . . . . . . . . . 20


2.2.1.5. Consideraciones generales del modelo. . . . . . . . . 22
2.2.1.6. Matriz de observaciones. . . . . . . . . . . . . . . . . 24
2.2.2. Algoritmo de Clasificacin de Seales Mltiples (MUSIC-MUltiple
SIgnal Classification). . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.2.1. Espectro MUSIC. . . . . . . . . . . . . . . . . . . . . . 29
2.2.3. Mtodo de Mxima Verosimilitud (ML-Maximum Likelihood). 31
2.2.3.1. Mxima Verosimilitud Determinstica (DML-Deterministic
Maximum Likelihood). . . . . . . . . . . . . . . . . . 32
2.3. PROCESAMIENTO DIGITAL DE LAS SEALES. . . . . . . . . . . . 34
2.3.1. Procesador Digital de Seal (DSP). . . . . . . . . . . . . . . . . 36
2.3.2. Elementos bsicos de un sistema de DSP en tiempo real. . . . 36
2.4. GENERACIN Y OPTIMIZACIN DE CDIGO PARA DSPs. . . . 37
2.4.1. Embedded MATLAB. . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.1.1. Limitaciones de Embedded MATLAB. . . . . . . . . 41
2.4.1.2. Funciones C-MEX (C-Matlab Executable). . . . . . . 42
2.4.2. Compilador C de propsito general. . . . . . . . . . . . . . . . 43
2.4.3. Code Composer Studio (CCS). . . . . . . . . . . . . . . . . . . 43
III.Procedimientos de la investigacin.
3.1. Estudio de la estimacin de llegada y los mtodos MUSIC y ML. . . .
3.1.1. Naturaleza de las seales del entorno. . . . . . . . . . . . . . .
3.1.2. Respuesta del Arreglo de antena. . . . . . . . . . . . . . . . . .
3.1.3. Matriz de Covarianza . . . . . . . . . . . . . . . . . . . . . . .
3.2. Simulaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Evaluacin de la respuesta computacional de distintos DSPs. . . . .
3.3.1. Optimizacin de MUSIC y DML. . . . . . . . . . . . . . . . . .
3.3.2. Estimacin del tiempo de ejecucin del algoritmo DoA en el
DSP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3. Mtodo para el desarrollo de software de sistemas embebidos, Harmony/ESW. . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Creacin de un procedimiento general. . . . . . . . . . . . . . . . . . .
3.4.1. Modificacin del cdigo en MATLAB con las restricciones interpuestas por Embedded MATLAB. . . . . . . . . . . . . . . .
3.4.2. Generacin de cdigo fuente C. . . . . . . . . . . . . . . . . . .
3.4.3. Depuracin y validacin del cdigo C resultante. . . . . . . .
3.4.4. Compilacin de los cdigos en CCS. . . . . . . . . . . . . . . .

45
46
47
48
52
52
56
56

IV. Anlisis, interpretacin y presentacin de los resultados


4.1. ANLISIS DEL PROBLEMA DE ESTIMACIN Y LOS MTODOS
MUSIC Y DML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1. MUSIC Y DML. . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. SIMULACIONES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

57
60
62
62
63
65
66

67
68
69

ndice general

IX

4.2.1. Escenario 1: Comportamiento de MUSIC y DML variando


(SNR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2. Escenario 2: Comportamiento de MUSIC y DML variando el
nmero de observaciones (N). . . . . . . . . . . . . . . . . . .
4.2.3. Escenario 3: Comportamiento de MUSIC y DML en condiciones desfavorables. . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.4. Escenario 4: Comportamiento de MUSIC y DML para distintas portadoras que se encuentran dentro del ancho de banda
del dipolo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.5. Escenario 5: Comportamiento de MUSIC y DML con fuentes
muy prximas entre s. . . . . . . . . . . . . . . . . . . . . . . .
4.3. EVALUACIN DE LA RESPUESTA COMPUTACIONAL DE PROCESADORES DIGITALES DE SEAL (DSPs). . . . . . . . . . . . . .
4.3.1. Simulaciones en Code Composer Studio (CCS). . . . . . . . .
4.3.2. Tiempo de ejecucin de los algoritmos DoA. . . . . . . . . . .
4.4. CREACIN DE UN PROCEDIMIENTO GENERAL. . . . . . . . . . .
4.4.1. Modificacin del cdigo en MATLAB con las restricciones interpuestas por Embedded MATLAB. . . . . . . . . . . . . . . .
4.4.2. Generacin de cdigo fuente C. . . . . . . . . . . . . . . . . . .
4.4.3. Depuracin y validacin del cdigo C resultante. . . . . . . .
4.4.4. Simulacin en Code Composer Studio (CCS). . . . . . . . . . .

70
76
82

84
88
92
92
102
110
111
113
118
119

V. Conclusiones y recomendaciones
129
5.1. Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.2. Recomendaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

A. Cdigos en Embedded MATLAB de algoritmos DoA.


1.1. MATRIZ DE COVARIANZA. . . . . . . . . . . . .
1.2. RUIDO AWGN. . . . . . . . . . . . . . . . . . . . .
1.3. ALGORITMO MUSIC. . . . . . . . . . . . . . . . .
1.3.1. Funcin SVD. . . . . . . . . . . . . . . . . .
1.3.2. FUNCION MAXIMO . . . . . . . . . . . .
1.4. DML . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

133
133
136
137
137
137
140

B. DoA Y BF en un solo DSP.


143
2.1. Conformacin de Haz (BF-Beamforming). . . . . . . . . . . . . . . . . 143
2.1.1. Conformacin de Haz digital (DBF-Digital Beamforming). . . 144
2.2. DoA y BF usando tcnicas de multiprogramacin. . . . . . . . . . . . 148
C. Consideracin de la frecuencia de portadora.
157
3.1. Algoritmo DML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
3.2. Algoritmo MUSIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Referencias Bibliogrficas

ndice general
163

ndice de figuras
2.1. Posible escenario de SDMA. . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Diferencia entre un patrn de radiacin de una estacin base tradicional y una de Antena Inteligente. . . . . . . . . . . . . . . . . . . . .
2.3. Tcnicas de implementacin para sistemas de Antena Inteligente. . .
2.4. Sistema de Antenas Inteligentes en un sistema de comunicacin full
Duplex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5. Sistema de coordenadas a usar. . . . . . . . . . . . . . . . . . . . . . .
2.6. Frente de onda en el plano de una fuente puntual en funcin de la
distancia de propagacin |r| [1]. . . . . . . . . . . . . . . . . . . . . . .
2.7. Geometra de un arreglo genrico. . . . . . . . . . . . . . . . . . . . .
2.8. Arreglo Lineal Uniforme (ULA) de un conjunto de antenas. . . . . . .
2.9. Arreglo lineal de antena generalizado. . . . . . . . . . . . . . . . . . .
2.10. Diagrama de bloque de la estimacin de DoA usando MUSIC [1]. . .
2.11. Diagrama de bloque bsico de un sistema de DSP en tiempo real [2].

10
12
13
15
16
18
19
21
25
28
37

3.1. Etapas de la investigacin. . . . . . . . . . . . . . . . . . . . . . . . . . 46


3.2. Arreglo lineal uniforme usado en comunicaciones mviles con diversidad espacial y polarizacin vertical. . . . . . . . . . . . . . . . . . . 48
3.3. Arreglo linealmente uniforme a usar para la simulacin. . . . . . . . 49
3.4. Diagrama de flujo del algoritmo MUSIC. . . . . . . . . . . . . . . . . 53
3.5. Diagrama de flujo del algoritmo DML. . . . . . . . . . . . . . . . . . . 54
3.6. Escenario del usuario crtico . . . . . . . . . . . . . . . . . . . . . . . . 59
3.7. Tiempo a satisfascer en la ejecucin del algoritmo DoA. . . . . . . . . 60
3.8. Mtodo adoptado para desarrollo de software de sistemas embebidos, Harmony/ESW). . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.9. Proceso para la generacin de aplicaciones embebidas mediante MATLAB,
lenguaje C y Code Composer Studio (CCS). . . . . . . . . . . . . . . . 62
4.1.
4.2.
4.3.
4.4.
4.5.

Mximos del espectro MUSIC con SNR = 30dB. .


Mximos del espectro MUSIC con SNR = 20dB. .
Mximos del espectro MUSIC con SNR = 10dB. .
Mximos del espectro MUSIC con SNR = 0dB. . .
 por DML con SNR = 30dB.
ngulos estimados ()
XI

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

71
72
72
73
74

XII

ndice de figuras
 por DML con SNR = 20dB. . . . . . . . . . . . 74
4.6. ngulos estimados ()
 por DML con SNR = 10dB. . . . . . . . . . . . 75
4.7. ngulos estimados ()
 por DML con SNR = 0dB. . . . . . . . . . . . 75
4.8. ngulos estimados ()
4.9. Mximos del espectro MUSIC con N = 500. . . . . . . . . . . . . . . . 77
4.10. Mximos del espectro MUSIC con N = 200. . . . . . . . . . . . . . . . 77
4.11. Mximos del espectro MUSIC con N = 100. . . . . . . . . . . . . . . . 78
4.12. Mximos del espectro MUSIC con N = 10. . . . . . . . . . . . . . . . . 78
 por DML con N = 500. . . . . . . . . . . . . . 79
4.13. ngulos estimados ()
 por DML con N = 200. . . . . . . . . . . . . . 80
4.14. ngulos estimados ()
 por DML con N = 100. . . . . . . . . . . . . . 80
4.15. ngulos estimados ()
 por DML con N = 10. . . . . . . . . . . . . . . 81
4.16. ngulos estimados ()
4.17. Mximos del espectro MUSIC en ambiente desfavorable. . . . . . . . 82
 por DML en ambiente desfavorable. . . . . . 83
4.18. ngulos estimados ()
4.19. Mximos del espectro MUSIC para distintas frecuencias de portadoras. 85
 por DML para distintas frecuencias de porta4.20. ngulos estimados ()
doras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.21. Mximos del espectro MUSIC con fuentes prximas entre s. . . . . . 89
 por DML con fuentes prximas entre s. . . . 90
4.22. ngulos estimados ()
4.23. Espectro MUSIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.24. Mximos del espectro MUSIC con la modificacin de la funcin Mximo.110
4.25. Mensaje de error de compilacin. . . . . . . . . . . . . . . . . . . . . . 113
4.26. Reporte de error de compilacin. . . . . . . . . . . . . . . . . . . . . . 114
4.27. Mensaje de reporte de compilacin satisfactorio. . . . . . . . . . . . . 115
4.28. Resultados de la matriz de covarianza usando la funcin original de
MATLAB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.29. Resultados de la matriz de covarianza usando la funcin C-MEX. . . 116
4.30. Generacin de cdigo fuente C libre de plataforma mediante RTW. . 116
4.31. Reporte de compilacin de la generacin de cdigo C mediante RTW. 117
4.32. Validacin de los resultados de la matriz de covarianza en el IDE
Code::Blocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.33. Secuencia inicial para crear un nuevo proyecto . . . . . . . . . . . . . 120
4.34. Configuraciones del proyecto . . . . . . . . . . . . . . . . . . . . . . . 121
4.35. Opcin para aadir archivos al proyecto . . . . . . . . . . . . . . . . . 122
4.36. Linker Command File para el TMS320C6727 . . . . . . . . . . . . . . 123
4.37. Nombre de las secciones de memoria. . . . . . . . . . . . . . . . . . . 124
4.38. Configuracin del simulador de Texas Instruments. . . . . . . . . . . 126
4.39. Simulador de Texas instruments. . . . . . . . . . . . . . . . . . . . . . 126
4.40. Interfaz del Simulador donde se observan la funcin Clock y la ventana de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

2.1. Estructura de BF [3]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144


2.2. Secuencia de muestreo en DBF [3]. . . . . . . . . . . . . . . . . . . . . 145

ndice de figuras
2.3.
2.4.
2.5.
2.6.
2.7.

Secuencia de muestreo en /2 . . . . .
Etapa de DoA, Tarea 1. . . . . . . . . .
Etapa de BF, Tarea 2. . . . . . . . . . .
Multitarea en una ventana de tiempo.
Esquema de memoria principal. . . . .

XIII

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

147
150
150
154
155

3.1. Espectro MUSIC con f = 100KHz. . . . . . . . . . . . . . . . . . . . . 159


3.2. Espectro MUSIC con dos seales a la misma frecuencia de portadora. 159

Indice de tablas
2.1. Variables e ndices utilizadas para definir las dimensiones de las matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Diferencias entre MATLAB y lenguaje C. . . . . . . . . . . . . . . . .

27
42

3.1. Rangos de frecuencias para comunicaciones mviles ms usados; establecidos por CONATEL. . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Variables de inters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Comando para la generacin de funciones C-MEX. . . . . . . . . . . .
3.4. Comando para la generacin de cdigo fuente C. . . . . . . . . . . . .

47
58
63
65

4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.
4.8.
4.9.
4.10.
4.11.
4.12.

Variables de entrada para evaluar los algoritmos MUSIC y DML. . .


Media y varianza de MUSIC con SNR = 10dB. . . . . . . . . . . . . .
Media y varianza de DML con SNR = 0dB. . . . . . . . . . . . . . . .
Media y varianza de DML con N = 10. . . . . . . . . . . . . . . . . . .
Media y varianza de DML con N = 10. . . . . . . . . . . . . . . . . . .
Distintas frecuencias de portadora. . . . . . . . . . . . . . . . . . . . .
Media y varianza de MUSIC para distintas frecuencias de portadoras.
Frecuencias portadora de las seales. . . . . . . . . . . . . . . . . . . .
Media y varianza de DML para distintas frecuencias de portadoras. .
Modificacin de variables para fuentes prximas entre s. . . . . . . .
Media y varianza de MUSIC para fuentes prximas entre s. . . . . .
Ciclos de reloj de la matriz de covarianza y MUSIC con 500 observaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13. Ciclos de reloj de la matriz de covarianza y MUSIC con 200 observaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.14. Ciclos de reloj de la matriz de covarianza y MUSIC con 100 observaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.15. Resultados de la estimacin de MUSIC con 500 observaciones. . . . .
4.16. Resultados de la estimacin de MUSIC con 200 observaciones. . . . .
4.17. Resultados de la estimacin de MUSIC con 100 observaciones. . . . .
4.18. Requisitos de memoria del algoritmo MUSIC. . . . . . . . . . . . . . .
4.19. Ciclos de reloj de la matriz de covarianza y DML con 500 observaciones y una iteracin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XV

70
73
76
81
84
85
86
86
87
88
89
93
93
94
95
95
95
96
97

XVI

Indice de tablas

4.20. Ciclos de reloj de la matriz de covarianza y DML con 500 observaciones y dos iteraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.21. Ciclos de reloj de la matriz de covarianza y DML con 500 observaciones y tres iteraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.22. Ciclos de reloj de la matriz de covarianza y DML con 200 observaciones y una iteracin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.23. Ciclos de reloj de la matriz de covarianza y DML con 200 observaciones y dos iteraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.24. Ciclos de reloj de la matriz de covarianza y DML con 200 observaciones y tres iteraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.25. Ciclos de reloj de la matriz de covarianza y DML con 100 observaciones y una iteracin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.26. Ciclos de reloj de la matriz de covarianza y DML con 100 observaciones y dos iteraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.27. Ciclos de reloj de la matriz de covarianza y DML con 100 observaciones y tres iteraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.28. Resultados de la estimacin de DML con 500 observaciones para las
tres iteraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.29. Resultados de la estimacin de DML con 200 observaciones para las
tres iteraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.30. Resultados de la estimacin de DML con 100 observaciones para las
tres iteraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.31. Requisitos de memoria del algoritmo DML. . . . . . . . . . . . . . . . 102
4.32. Ciclos de reloj de MUSIC con 100 observaciones en modo release. . 103
4.33. Tiempo de ejecucin de MUSIC con 100 observaciones en modo release.103
4.34. Resultados de la estimacin de MUSIC con 100 observaciones en modo release. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.35. Requisitos de memoria del algoritmo MUSIC. . . . . . . . . . . . . . . 104
4.36. Ciclos de reloj de DML con 100 observaciones y dos iteraciones en
modo release. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.37. Tiempo de ejecucin de DML con 100 observaciones y dos iteraciones
en modo release. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.38. Resultados de la estimacin de MUSIC con 100 observaciones en modo release. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.39. Requisitos de memoria del algoritmo MUSIC. . . . . . . . . . . . . . . 105
4.40. Tiempo de ejecucin para la matriz de covarianza usando la plataforma C672x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.41. Tiempo de ejecucin para la matriz de covarianza usando la plataforma C674x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.42. Tiempo de ejecucin para la matriz de covarianza usando la plataforma C66xx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.43. Optimizacin de la funcin Mximo. . . . . . . . . . . . . . . . . . . . 109

Indice de tablas

XVII

4.44. Equivalencias de los tipos de variables bsicas en MATLAB, lenguaje


C y Real-Time Workshop. . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.45. Niveles de simulacin dispuestas en Texas Instruments . . . . . . . . 127
3.1. Resultados de las estimaciones a fp = 850MHz. . . . . . . . . . . . . . 158
3.2. Prueba de resolucin a fp = 850MHz. . . . . . . . . . . . . . . . . . . . 158

Acrnimos
ADC

Analogic Digital Converter

ASIC

Application Specific Integrated Circuit

AWGN

Additive White Gaussian Noise

BER

Bit Error Rate

BF

BeamForming

CCS

Code Composer Studio

CDMA

Code Division Multiple Access

C-MEX

C-Matlab Executable

CRB

Cramer-Rao Bound

DBF

Digital BeamForming

DML

Deterministic Maximum Likelihood

DoA

Direction of Arrival

DSP

Digital Signal Processor

EVD

Eigen Value Descomposition

FDMA

Frecuency Division Multiple Access

FPGA

Field Programmable Gate Array

GFLOPS

Giga FLoating Point Per Second

IDE

Integrated Development Environment

ML

Maximun Likelihood

MIT

Massachusetts Institute of Technology

MUSIC

MUltiple SIgnal Classification

nULA

non Uniform Linear Array

PDF

Probability Density Function

RTOS

Real-Time Operating System


XIX

Acrnimos

XX

SDMA

Space Division Multiple Access

SNR

Signal to Noise Ratio

SVD

Singular Value Descomposition

TDMA

Time Division Multiple Access

TI

Texas Instruments

UC

Universidad de Carabobo

ULA

Uniform Linear Array

Lista de Smbolos
al ()

Respuesta del l simo elemento de antena

a()

Vector de direccionamiento o respuesta del arreglo de antenas

aULA ()

Vector de direccionamiento de un arreglo ULA

A(), A

Matriz de direccionamiento

Pseudoinversa de Moore-Penrose de A

Induccin magntica

Velocidad de la luz

Distancia entre dos elementos de antena consecutivos

Campo elctrico

E(r, t)

Campo elctrico en direccin de r

Matriz identidad

Vector de onda

k, |k|

Nmero de onda

l simo elemento de antena

Nmero de elementos de antena

Nmero de observaciones

n(t)

Vector de ruido AWGN

N(t)

Matriz de ruido AWGN

Matriz de covarianza de las fuentes

PMUSIC

Espectro MUSIC

Vector de posicin desde la fuente al punto r

rl

Vector de posicin desde el origen al l simo elemento de antena

R

R

Matriz de covarianza
Matriz de covarianza estimada para N observaciones
XXI

Lista de Smbolos

XXII

s(t)

Seal transmitida

si (t)

i sima seal en banda base

s(t)

Estimado de la seal transmitida

S(t)

Vector de seales

Tiempo

ul

Autovectores de seal y ruido

Matriz de unitaria

US

Subespacio de seal

Un

Subespacio de ruido

xl

Coordenada en x del l simo elemento de antena

xl (t)

Seal de salida en banda base del l simo elemento de antena

x(t)

Vector de salida del arreglo

yl

Coordenada en y del l simo elemento de antena

Constante dielctrica

Constante magntica

Frecuencia angular

Longitud de onda

Autovalores de seal y ruido

Direccin de llegada de la fuente

i


Direccin de llegada de la i sima seal

DML

Direccin estimada usando DML

Varianza del ruido

2

Varianza de ruido estimada

ts

Delta de Dirac

Matriz diagonal con los autovalores 1 , . . . , L

Matriz diagonal con los autovalores del subespacio de seal

Matriz diagonal con los autovalores del subespacio de ruido

Matriz de proyeccin del subespacio de seal

n ,
S

Matriz de proyeccin del subespacio de ruido

Direccin de llegada estimada

Proyector ortogonal sobre el espacio nulo de AH

Lista de Smbolos
E{}

Esperanza estadstica

()

Operador de divergencia

()

Operador rotacional

2 ()

Operador laplaciano

()T

Transpuesta

()H

Hermitiano o complejo conjugado transpuesto

()

Complejo conjugado


()

Estimado

()

Pseudoinversa de Moore-Penrose

kk

Norma Euclidiana

LDML ()

Funcin de verosimilitud determinstica

T r{}

Traza de una matriz cuadrada

arg{}

Argumento de un nmero complejo

XXIII

SIMULACIN Y EVALUACIN DE ALGORITMOS DE DIRECCIN


DE ARRIBO (DOA) EN DISTINTOS PROCESADORES DIGITALES DE
SEALES (DSPS) USADOS EN ANTENAS INTELIGENTES
por

DAVID A. RANGEL B. y JOS D. MADURO H.

Presentado en el Departamento de Electromagnetismo y Radiacin


de la Escuela de Ingeniera en Telecomunicaciones
el 4 de Marzo del 2015 para optar al Ttulo de
Ingeniero de Telecomunicaciones e Ingeniero Electricista
respectivamente

RESUMEN

En los ltimos aos, el constante crecimiento del nmero de usuarios en los


sistemas de comunicaciones mviles ha creado la necesidad de aumentar su capacidad. Adems, los sistemas actuales radian potencia sobre la zona de cobertura
de forma omnidireccional o sectorizada, emitiendo de esta manera, seal a usuarios no deseados ocasionando la aparicin de interferencias y, tambin, la recepcin
de seales de otros usuarios y de las componentes multitrayecto. En este trabajo,
se evala la respuesta computacional de distintos Procesadores Digitales de Seal
(DSPs) cuando trabajan con algoritmos de Direccin de Arribo (DoA) usados en
XXV

XXVI

Resumen

Antenas Inteligentes. De esta manera, se pretende conocer el tiempo de ejecucin y


requisitos de memoria de cada algoritmo, as como la precisin en las estimaciones.
Los DoA exigen una gran carga computacional mientras que deben procesarse en
tiempo real, por lo que suponen una seria limitacin, de all la importancia de realizar cdigos optimizados. Inicialmente, se disea el algoritmo DoA haciendo uso de
MATLAB quien dispone de herramientas que permiten la conversin de una parte
del lenguaje MATLAB, llamado Embedded MATLAB, a cdigo C embebido que
sirve como puente para la generacin de cdigo objeto ejecutable por el DSP. Este trabajo, adems, sirve como una gua referencial para desarrollar cualquier tipo
de algoritmo para sistemas embebidos desde su conceptualizacin, hasta su simulacin en Code Composer Studio, un Entorno de Desarrollo Integrado (IDE) para
DSPs de Texas Instruments (TI). Finalmente, se adopta un procedimiento iterativo
mediante el modelo Harmony Embedded, un mtodo que consiste en desarrollar
un software funcional y, a partir de l, depurarlo y mejorarlo gradualmente mediante cambios incrementales, hasta satisfacer los requisitos deseados. Se avaluaron
distintos procesadores digitales de seal de la familia C6000 de Texas Instruments.
Se consigui obtener el tiempo de ejecucin de los algoritmos MUSIC y DML, as
como los requisitos de memoria y la precisin en las estimaciones para cada procesador. Se determin que MUSIC ofreca una menor carga computacional que DML,
pudiendo establecer que s es posible implementar este algoritmo en las plataformas C672x, C674x y C66xx.

Palabras Claves: Antenas Inteligentes, Direccin de Arribo, Procesadores Digitales


de Seal

Tutor: RAFAEL ALBORNOZ


Profesor del Departamento de Electrnica y Comunicaciones.
Escuela de Elctrica. Facultad de Ingeniera

Captulo I

Introduccin
1.1.

MOTIVACIN.

Desde sus inicios, los sistemas de comunicaciones mviles han empleado antenas que proporcionan un diagrama de radiacin fijo estableciendo, de este modo,
una cobertura determinada. Debido a este diseo, existen sectores pertenecientes al
rea de cobertura que en ciertos instantes de tiempo no son aprovechados por los
usuarios por el hecho de no encontrarse en ellos y, adems, no se puede discernir
aquellos sectores donde se encuentran fuentes que generan interferencia al sistema.
Aun cuando esta tecnologa pudo satisfacer las necesidades de capacidad del
sistema en relacin al flujo de datos, no obstante, el constante crecimiento de las
comunicaciones mviles en los ltimos aos ha trado como consecuencia un agotamiento de esta capacidad [4].
Dicho aumento ha creado un colapso en el sistema, generando as un desmejoramiento en la Relacin Seal a Ruido (SNR-Signal to Noise Ratio) y en la Tasa de
Error Binario (BER-Bit Error Rate). Por lo tanto, han surgido nuevas tecnologas con
el propsito de aumentar la capacidad y confiabilidad del sistema en conjunto con
una mejora en la calidad de la transmisin de la informacin.

Captulo I. Introduccin
En este sentido, emerge la tecnologa de Antenas Inteligentes que combina un

arreglo de antenas (arrays) con un Procesador Digital de Seal (DSP-Digital Signal


Processor) que optimiza los diagramas de transmisin y recepcin dinmicamente
en respuesta a una seal de inters en el entorno [5] [6].
Una Antena Inteligente procesa, en tiempo real, las seales recibidas por los
sensores (arreglo de antenas), en dos etapas: El algoritmo de Direccin de Arribo
(DoA-Direction of Arrival) y el algoritmo de la sntesis del diagrama de radiacin
conocido como Conformacin de Haz (BF-Beamforming) [1].
En 2005, Amvir Castillo y Elimes Rodrguez realizaron la simulacin y estudio
comparativo de los algoritmos de Direccin de Arribo (DoA). Esta tesis de grado,
fue llevada a cabo en la Universidad de Carabobo (UC). En esta investigacin se
compara funcional y econmicamente mediante simulaciones de prueba bajo distintas condiciones, siete algoritmos DoA, entre los que se encuentra el de Clasificacin de Seales Mltiples (MUSIC-MUltiple SIgnal Classification) y el de Mxima
Verosimilitud (ML-Maximum Likelihood). Para la simulacin, se codifican los algoritmos en el lenguaje propio de MATLAB [7].
En 2007, en la Escuela Superior de Ingeniera Mecnica y Elctrica del Instituto
Politcnico Nacional de Mxico, Jos Guadalupe Arceo Olague realiz un estudio
donde desarroll algoritmos para la sntesis del diagrama de radiacin en comunicaciones mviles celulares basadas en Antenas Inteligentes. All, se plantea el
problema de estimacin de DoA, al usar un Arreglo Linealmente Uniforme (ULAUniform Linear Array) de antenas y un Arreglo Lineal no Uniforme (nULA-non Uniform Linear Array) de antenas. Se utilizan los algoritmos MUSIC y ML para abordar
el problema de estimacin de llegada. Se presenta el desarrollo matemtico de ambos y se realiza una simulacin para comparar su rendimiento en campo lejano y
campo cercano en funcin de la relacin seal a ruido, cantidad de observaciones,
nmero de sensores y separacin espacial entre las fuentes [1].
En 2010-2011, Arantxa Miquel Estrugo de la Escuela Superior de Ingeniera de
la Universidad de Sevilla. Realiza un estudio de las Aportaciones metodolgicas al
procesado de bioseales en sistemas embebidos. All, propone un procedimiento

Captulo I. Introduccin

general que sirve de gua para la implementacin de aplicaciones en sistemas embebidos de DSP, para procesar seales (en cuyo caso se usaron seales biomdicas)
en tiempo real. En esta metodologa se explica detalladamente las herramientas
(Embedded MATLAB y Real-Time Workshop) que permiten llevar cdigo fuente
MATLAB a un cdigo fuente C eficiente para sistema embebidos, para luego trabajar con CCS [8].
Este trabajo, se enfocar en la etapa de DoA, usando distintos algoritmos que
permiten estimar la posicin angular de las seales de los usuarios. De all la importancia de realizar la simulacin y evaluacin de los mismos sobre distintas plataformas de DSPs, que trabajan en tiempo real, para proveer informacin respecto a la
respuesta computacional de distintos procesadores para su futura implementacin
en sistemas de Antenas Inteligentes.
Por ltimo, esta tarea se llevar a cabo utilizando el Entorno de Desarrollo Integrado (IDE-Integrated Development Environment) para procesadores embebidos que
proporciona el software MATLAB, herramienta que permite la traduccin de cdigos de MATLAB a lenguaje C. Luego, se realizar la depuracin y validacin de los
cdigos traducidos mediante el IDE Code::Blocks para lenguaje C, para su posterior
evaluacin en Code Composer Studio (CCS) un IDE para procesadores digitales de
seal, microcontroladores y procesadores de aplicacin de Texas Instruments (TI).
La importancia de las Antenas Inteligentes radica en los beneficios que ofrecen a
los sistemas de comunicaciones mviles, como el incremento tanto de la capacidad
como de la confiabilidad, reduccin de potencia de transmisin, reduccin de propagacin multitrayecto, reduccin de nivel de interferencia, incremento del nivel
de seguridad, as como un aumento de cobertura [9] [10]. La tcnica de haz adaptativo representa el mximo nivel de inteligencia que se podra dar a un sistema
de antenas. Este procedimiento requiere el uso de algoritmos DoA y, su principal
ventaja, es la conformacin de un diagrama de radiacin dinmico que dirige el
haz principal hacia la posicin del usuario deseado, los haces o lbulos secundarios hacia las direcciones de las componentes de multitrayecto de la seal deseada
y mnimos o nulos de radiacin en direccin de las fuentes interferentes [6] [11].

Captulo I. Introduccin
En los ltimos aos, estos sistemas han venido tomando auge a nivel mundial,

y han captado especial inters por parte de los investigadores siendo, de igual manera, parte de la lnea de investigacin en Telecomunicaciones del Departamento
de Electromagnetismo y Radiacin, de la Escuela de Ingeniera de Telecomunicaciones de la Universidad de Carabobo (UC). Por tanto, en este trabajo se realiza la
evaluacin del rendimiento, requisitos de memoria y precisin que ofrecen distintos Procesadores Digitales de Seal (DSPs), cuando trabajan con algoritmos DoA
usados en sistemas de Antenas Inteligentes para, de esta manera, conocer qu tan
eficientes pueden ser cada uno de ellos usando este tipo de algoritmos y qu tan
factible puede ser su implementacin en estos sistemas.
Por ltimo, esta investigacin aporta un procedimiento general de los pasos que
se deben seguir, desde la conceptualizacin de cualquier algoritmo que se desee
ejecutar en tiempo real, hasta que son introducidos en Code Composer Studio simulando plataformas de DSPs.

1.2.

OBJETIVOS.

1.2.1.

Objetivo General.

Evaluar mediante simulaciones la respuesta computacional de distintos Procesadores Digitales de Seal (DSPs) cuando trabajan con algoritmos de Direccin de
Arribo (DoA) usados en Antenas Inteligentes.

1.2.2.

Objetivos Especficos.
Estudiar el problema de estimacin de DoA, as como los mtodos MUSIC
(Multiple SIgnal Classification) y ML (Maximum Likelihood) empleados para
este propsito.
Simular los algoritmos DoA usando las herramientas de MATLAB que permiten la compatibilizacin con las plataformas de DSPs.

Captulo I. Introduccin

Evaluar la respuesta computacional de distintos DSPs cuando trabajan con


los algoritmos DoA seleccionados.
Crear un procedimiento general que se debe seguir, desde la conceptualizacin de cualquier algoritmo que permite la ejecucin en tiempo real, hasta la
implementacin en un DSP.

1.3.

ALCANCES.

La simulacin y evaluacin en distintos Procesadores Digitales de Seal, de algoritmos de Direccin de Arribo usados en Antenas Inteligentes, es una investigacin que tomar como referencia los algoritmos MUSIC y ML codificados y simulados en [7] para que, posteriormente, sean transformados a cdigos fuente en
lenguaje C, que pueden ser compilados en el entorno de desarrollo integrado para
DSPs como Code Composer Studio (CCS) perteneciente a Texas Instruments.
La transformacin a cdigo fuente C, se har posible al someter los algoritmos
DoA a las modificaciones que realizan las herramientas Embedded MATLAB y
Real-Time Workshop que proporciona el software MATLAB.
De esta manera, se buscar conocer la respuesta computacional de distintos
DSPs cuando trabajan con algoritmos DoA. Tal respuesta se medir en funcin
de tres parmetros principales, a saber:

Rendimiento. Tiempo que tarda un DSP en ejecutar un algoritmo DoA. El


rendimiento es el recproco del tiempo de ejecucin, por tanto, cuando se hable de un mejor rendimiento se referir a un incremento de rendimiento y
disminucin del tiempo de ejecucin [12].
Consumo de memoria. Ocupacn en memoria necesaria para ejecutar cada
algoritmo.
Precisin. Dado por el tamao que pueden tener los datos.

Captulo I. Introduccin
Finalmente, se establecern tablas de resultados que reflejen la respuesta que

ofrecen distintas tarjetas DSPs, la cual ser una fuente de consulta que permita
realizar una eleccin certera de estos dispositivos para aplicaciones de Antenas Inteligentes.

Captulo II

Marco conceptual
2.1.

INTRODUCCIN A LOS SISTEMAS DE ANTENAS


INTELIGENTES.

2.1.1.

Limitaciones de las tcnicas de Acceso Mltiples convencionales.

Los sistemas de comunicaciones mviles, cada vez se ven ms limitados para


satisfacer la creciente demanda de mayor velocidad y ancho de banda por parte de
los usuarios asignados a la red. Dicha demanda, toma lugar por los avances que
se ha tenido en la telefona celular generando aplicaciones que, adems de prestar
un servicio de voz, tambin permitan al usuario disponer de servicios de datos
(multimedia, imgenes) [1]. Para lograr que mltiples usuarios accedan a la red, se
utilizan tres tcnicas principales de acceso, las cuales se mencionan a continuacin:
Acceso Mltiple por Divisin de Frecuencia (FDMA).
Acceso Mltiple por Divisin de Tiempo (TDMA).
Acceso Mltiple por Divisin de Cdigo (CDMA).

Captulo II. Marco conceptual


Estos mtodos resultaron ptimos para la trasmisin de seales de voz y datos

al principio de su implementacin, pero en la actualidad las redes de telefona mvil se encuentran sobrecargadas ya que el nmero de usuarios que deben atender
supera su capacidad nominal. Este desbalance de la oferta y la demanda genera
una disminucin en la calidad del servicio, ya que degrada los indicadores de rendimiento como son la Relacin Seal a Ruido (SNR), la Tasa de Error Binario (BER),
la relacin de energa de bit con respecto a la densidad de potencia de ruido Eb /No ,
entre otros [11] [13].
Para abordar este problema, se presentan distintas soluciones. La primera consiste, principalmente, en aumentar el nmero de radio bases para cubrir los sectores
donde existen nulos de cobertura, y donde se concentre un gran nmero de usuarios. Aunque esta solucin es realizable y fcil de ejecutar, lleva consigo grandes
inversiones para su implementacin y un gasto permanente para su mantenimiento, lo que a la larga genera un incremento de los costos por la prestacin del servicio
telefnico [7].
La segunda solucin se basa en identificar las deficiencias de los subsistemas
(antenas, transmisores, receptores, etc.) pertenecientes a una estacin base de comunicaciones mviles, esto con el objetivo de incrementar el rendimiento de la plataforma ya existente tanto como sea posible, realizando cambios especficos que
impliquen pequeas inversiones. Un ejemplo de esta solucin, es la tcnica de acceso SDMA, la cual explota el dominio espacial cuando hace que la antena de la
radio base pueda variar su diagrama de radiacin de forma dinmica y, ademas,
esta tcnica permite usar los mtodos de acceso multiples ya existentes [5].

2.1.2.

Acceso Multiple por Divisin de Espacio (SDMA).

El mtodo SDMA es una de las ltimas fronteras que estn siendo implementadas en los nuevos sistemas de comunicaciones mviles. sta permite realizar una
transmisin y recepcin espacialmente selectiva. SDMA, se basa en la tecnologa
de Antenas Inteligentes empleadas en las estaciones bases de comunicaciones mviles [5].

Captulo II. Marco conceptual

En este sentido, como cada usuario mvil ocupa una localizacin espacial nica, esta nueva tcnica de acceso permite que mltiples usuarios que se encuentren
angularmente espaciados, puedan acceder a la red, al mismo tiempo y con la misma frecuencia (en caso de FDMA) o con el mismo cdigo (en caso de CDMA) sin
causar interferencia unos con otros, de modo que se trata de un hbrido de las tcnicas de acceso mltiple existentes y la nueva tcnica SDMA. Esto es posible, puesto
que al habilitar el diagrama de radiacin para transmisin/recepcin en un sector especfico, existe la posibilidad de incluir en ese instante de tiempo a mltiples
usuarios que estn ubicados en dicho sector, a travs de los mtodos TDMA, FDMA
o CDMA [14].
La Figura 2.1 muestra un ejemplo ilustrativo, donde P usuarios acceden a la red
en condiciones ms favorables de desvanecimiento por multitrayectoria e interferencia cocanal, las cuales limitan de forma considerable los sistemas de comunicaciones mviles [11]. As mismo, se observa grficamente como SDMA est constituida por la combinacin de las tcnicas de acceso ya existente, CDMA para el caso
de la Figura 2.1a y FDMA para la Figura 2.1b.
Adicionalmente, todo el beneficio de SDMA se traduce en un aumento de la
capacidad del sistema. La capacidad de un sistema de comunicaciones mviles se
puede definir como la tasa binaria que puede ofrecerse en el ancho de banda disponible y en un rea geogrfica determinada, es decir bits/s/Hz/m2 [9].
La realizacin de esta tcnica de filtrado espacial se realiza mediante Antenas
Inteligentes, que son sistemas capaces de modificar el tiempo, la frecuencia y la
respuesta espacial [5].

2.1.3.

Tecnologa de Antenas Inteligentes.

Los sistemas de comunicaciones mviles, han empleado antenas que radian sobre la zona de cobertura de forma omnidireccional1 o sectorizada2 . Esto puede ser
1
2

La radiacin de una antena omnidireccional es igual en todas direcciones.


La radiacin de una antena sectorizada se divide por sector para cubrir 360 grados.

10

Captulo II. Marco conceptual

Tx - Rx
CDMA

(a) CDMA

Tx - Rx
FDMA

(b) FDMA

Figura 2.1: Posible escenario de SDMA.

considerado como una prdida de potencia, pues la mayor parte de ella ser radiada
en otras direcciones y no hacia el usuario deseado [5].

Captulo II. Marco conceptual

11

El concepto de Antenas Inteligentes, radica en el uso de diagramas de radiacin que no son fijos sino que, ms bien, dirigen un haz hacia un usuario especfico. Por lo tanto, la diferencia entre una antena adaptativa/inteligente y una
tradicional/fija, es la propiedad de tener una adaptacin y un patrn fijo, res-

pectivamente [9].
Para los nuevos servicios de 3G, se plantea como solucin el empleo de la novedosa tecnologa de Antenas Inteligentes ya que, aprovechando las caractersticas
particulares de estos sistemas, se consigue aumentar la capacidad de conexin a
mltiples usuarios simultneamente con las siguientes ventajas adicionales [6]:

Incremento de la Capacidad y Confiabilidad.


Reduccin de Potencia de Transmisin.
Reduccin de Propagacin Multitrayecto.
Reduccin de Nivel de Interferencia.
Incremento del Nivel de Seguridad.

En la Figura 2.2 se muestra la diferencia entre el concepto de antena fija e inteligente, donde se observa una antena tradicional cuyo patrn de radiacin se divide
en tres sectores para cubrir 120 espaciales cada uno y el otro es un patrn de radiacin de una Antena Inteligente que se adapta a los usuarios deseados.

2.1.3.1.

Tcnicas de implementacin.

La caracterstica fundamental de un sistema de Antena Inteligente, es la capacidad de seleccionar espacialmente a los distintos usuarios. Existen varias formas de
implementacin que se describen, a continuacin, por orden de complejidad. En la
Figura 2.3 se detalla cada una de estas tcnicas.

12

Captulo II. Marco conceptual

Figura 2.2: Diferencia entre un patrn de radiacin de una estacin base tradicional y una de Antena Inteligente.

Haz Conmutado. Est formado por mltiples haces o lbulos principales que se
conmutan alternativamente en posiciones fijas, los cuales tienen una alta sensibilidad en direcciones especficas. Adems, se logra tener una alta ganancia y lbulos
laterales bajos, o ancho de haz controlado [15]. No obstante, esta tcnica no garantiza que el usuario se encuentra en un mximo de radiacin, ni que las seales
interferentes sean notablemente reducidas.

Haz de Seguimiento.

Se utiliza un arreglo de antenas con una red de excitacin,

que permite controlar electrnicamente las fases de las corrientes de excitacin que
llegan a los elementos del arreglo, de manera que puede modificarse a voluntad la
direccin en la que apunta el haz y, de este modo, establecer comunicacin con el
usuario deseado [6]. A su vez, es necesario utilizar algn algoritmo de deteccin de
la Direccin de Arribo (DoA), de modo que pueda reorientarse dinmicamente el

Captulo II. Marco conceptual

13

Seal
Interferencia

(a) Haz Conmutado

(b) Haz de Seguimiento

(c) Haz Adaptativo

Figura 2.3: Tcnicas de implementacin para sistemas de Antena Inteligente.

haz para apuntar al usuario deseado. Con esta tcnica s se garantiza que el usuario est en el lbulo principal en todo momento y con mxima ganancia (teniendo
en cuenta las limitaciones de los algoritmos empleados). Sin embargo, tampoco se
puede evitar que las interferencias entren por algn lbulo secundario del diagrama de radiacin [11].

Haz Adaptativo.

Esta tcnica representa el mximo nivel de inteligencia que pue-

de tener una antena. Las antenas adaptativas son controlados de forma dinmica
para dirigir el lbulo principal hacia los usuarios deseados, esto se hace a travs
ajustes de los elemento de excitacin, en lugar de simplemente mediante la realizacin de una operacin de conmutacin [15], adems de dirigir lbulos secundarios
en la componente multitrayecto y mnimos o nulos en las direcciones interferentes.
Esta tcnica tambin usa algoritmos DoA y, adicionalmente, es posible detectar la
direccin de las fuentes interferentes. As, el sistema adaptativo se aprovecha de

14

Captulo II. Marco conceptual

su capacidad para localizar y rastrear varios tipos de seales lo que minimiza la


interferencia y maximiza dinmicamente la recepcin de la seal deseada [5].

2.1.3.2.

Sistema de Antena Inteligente de haz adaptativo.

Un sistema de Antena Inteligente de haz adaptativo combina mltiples elementos de antenas con un procesador digital de seal. En la Figura 2.4 se representa el
esquema de este tipo de sistemas, donde las P seales arriban al arreglo. En telefona mvil, se hace uso de Duplexers que separan la frecuencia de bajada (Downlink)
y de subida (Uplink) para que, con un mismo arreglo de antena, se pueda operar
tanto en transmisin (Tx) como en recepcin (Rx).
Para que el DSP pueda identificar las posiciones angulares () de los usuarios,
es necesario tomar muestras de la informacin percibida por cada sensor, mediante
acopladores direccionales. Luego, el DSP procesa algoritmos de Direccin de Arribo (DoA) arrojando como resultado la informacin angular de los P usuarios que
arriban al arreglo de antenas.
Por ltimo, una etapa de Conformacin de Haz (BF) es requerida para la sntesis
del diagrama de radiacin que obedecen a caractersticas particulares interpuestas
en la etapa del DoA. De igual forma que en el caso de DoA, se genera una serie
de vectores que contienen la informacin de los pesos (1 , 2 , l , . . . , L ). Cada
peso i es un nmero complejo escrito en su forma polar, el cual indica las modificaciones en amplitud y fase que sufre la corriente que alimenta a cada sensor del
arreglo. En la Figura 2.4 se muestra este procedimiento, para un sistema de Antenas
Inteligentes en un sistema de comunicacin full Duplex, donde se resalta la etapa en
la que est enfocada este trabajo.

Captulo II. Marco conceptual

15

Uplink

DUPLEXER

DUPLEXER

COUPLER

COUPLER

Tx

DUPLEXER

COUPLER

Downlink

DoA

DSP

BF

Rx

Figura 2.4: Sistema de Antenas Inteligentes en un sistema de comunicacin full


Duplex.

2.2.

ESTIMACIN DE LA DIRECCIN DE ARRIBO (DOA).

2.2.1.

Modelo general del sistema.

Se plantea el modelo general del problema de estimacin de DoA, comenzando


desde el problema fsico de propagacin de las ondas electromagticas, y se hace
uso de un arreglo de antenas como el conjunto de sensores a utilizar. Adems, se
generaliza el problema para un arreglo lineal uniforme de antenas. Por otro lado, se
analizan las consideraciones generales del modelo, las cuales son parte importante

16

Captulo II. Marco conceptual

para cada algoritmo. Finalmente, se estudian los dos algoritmos que sern usados
en este trabajo, MUSIC y ML3

2.2.1.1.

Sistema de coordenadas a usar.

Figura 2.5: Sistema de coordenadas a usar.

Se usar un sistema de coordenadas esfrico cuyos ngulos y son medidos


segn se muestra en la Figura 2.5.

2.2.1.2.

Propagacin de ondas.

El problema fsico de propagacin de onda, parte de las ecuaciones de Maxwell


en el espacio libre, donde hay ausencia de carga o corriente [16] [17]. Se soluciona el
problema de propagacin mediante la ecuacin de onda para un medio homogneo [17]. As, se tiene lo siguiente:
3
Existen muchos mtodos de Mxima Verosimilitud, en este estudio se ha seleccionado el de Mxima Verosimilitud Determinstica (DML-Deterministic Maximum Likelihood).

Captulo II. Marco conceptual

17

E=0

(2.1)

B=0

(2.2)

E=

B
t

B = 0 0

E
t

(2.3)
(2.4)

donde () y () representan la divergencia y rotacional, respectivamente. Adicionalmente, B es la induccin magntica y E es el campo elctrico. Mientra que 0 y 0
son las constantes dielctrica y magntica, respectivamente. Usando la ecuacin (2.1)
en la siguiente identidad vectorial, resulta:
( E) = ( E) 2 E = 2 E

(2.5)

De las ecuaciones (2.3) y (2.4), se tiene:


( E) =

2 E
( B) = 0 0 2
t
t

(2.6)

Con la expresin anterior y combinada con la identidad vectorial de la ecuacin


(2.5), se tiene la forma homognea de la ecuacin de onda [17]:
2 E

1 2
E=0
c2 t2

(2.7)

En el espacio libre c es la velocidad de propagacin de una onda electromagn


tica, donde c = 1/ 0 0 = 3 108 m/s. Al resolver la ecuacin de onda, el campo
elctrico E(r, t) en direccin de r es [17]:
s(t)ej(trT k)
E(r, t) =

(2.8)

18

Captulo II. Marco conceptual


donde s(t) es la seal transmitida y vara lentamente en comparacin a la porTk

tadora ejt de frecuencia angular . El trmino ejr

representa la variacin es-

pacial del campo elctrico, el superndice T indica la transpuesta, k es el vector de


onda y su magnitud |k| = k = /c = 2/ es el nmero de onda y es la longitud
de onda.
Una fuente puntual isotrpica genera ondas electromagnticas que se propagan
idnticamente en todas direcciones, de manera que, en el caso de tres dimensiones
esta fuente forma una esfera. Sin embargo, la condicin de zona lejana (en la ecuacin (2.8) est implcita la condicin de zona lejana) implica que |r| es mucho mayor
que la longitud de onda y, en consecuencia, el frente de onda en r es plano. Dicha
condicin es usada, generalmente, en el problema de estimacin de llegada, donde
la distancia |r| es mucho mayor que la dimensin de la agrupacin de antena. En la
Figura 2.6 se ilustra un frente de onda esfrico observado en el plano.
Frente de Onda
Esfrico

Frente de Onda
Plano

Onda
Electromagntica

Fuente Puntual

Figura 2.6: Frente de onda en el plano de una fuente puntual en funcin de la


distancia de propagacin |r| [1].

2.2.1.3.

Modelo paramtrico de los datos.

La mayora de los enfoques modernos al procesamiento de seales, se basan en


ciertas suposiciones hechas a los datos observados [17]. A continuacin, se presenta
el modelo adoptado a lo largo de este trabajo.

Captulo II. Marco conceptual

19

Para simplificar la notacin de los siguientes anlisis, se asume que el vector de


onda est contenido en el plano x y, en cuyo caso = 90 . En la Figura 2.7 se
muestra un arreglo genrico, donde la direccin de llegada de la fuente (usuario)
se simboliza con [3], y se mide respecto al eje x, tal como se observa.

Sensor
Fuente

Figura 2.7: Geometra de un arreglo genrico.

Para el modelo asumido, el vector de onda queda descrito como:


k=k

cos sin

T

(2.9)

y para el sensor, se tiene:


rl =

xl yl

T

(2.10)

donde el superndice T indica la transpuesta. Usando las ecuaciones (2.8) y (2.9),


el campo elctrico medido en el sensor l para un arreglo genrico es:
E(rl , t) = s(t)ej[tk(xl cos +yl sin )]

(2.11)

Para que todos los elementos del arreglo se comporten exactamente igual, se
necesita que cada uno tenga una ganancia unidad en todo el ancho de banda de
la seal y, en consecuencia, la salida que resulta ser proporcional al campo elctrico recibido. Con esta condicin, y descartando por conveniencia el trmino de

20

Captulo II. Marco conceptual

la portadora pues en la prctica, generalmente, la seal es reducida a banda base4


antes del muestreo [17], entonces la seal de salida xl (t) del l simo elemento se
modela por:
xl (t) = ejk(xl cos +yl sin ) s(t) = al ()s(t)

(2.12)

Para un arreglo de antenas de L elementos con geometra arbitraria, el vector de


salida del arreglo se obtiene como:
(2.13)

x(t) = a()s(t)

donde a() es llamado vector de direccionamiento, accin vector o vector de


propagacin del arreglo, el cual representa la respuesta del arreglo dada una direccin de llegada [17].

2.2.1.4.

Agrupacin de antena.

Para el problema de estimacin de DoA, el aspecto espacial juega un papel importante [1]. La radiacin de la agrupacin de antenas, depende del tipo de elementos, la posicin relativa y la alimentacin con amplitudes y fases [9] [18].
En el desarrollo de este trabajo se considera un sistema de comunicaciones mviles, el cual hace uso de una agrupacin lineal de antenas. En la Figura 2.8 se ilustra
un Arreglo Lineal Uniforme (ULA-Uniform Linear Array) de L elementos.

De la ecuacin (2.10), para un ULA se tiene que:


rl =

xl 0

T

ld 0

T

(2.14)



donde l = 0, 1, 2, . . . , L 1 , d es la distancia entre dos elementos de antenas
consecutivos y rl representa el vector de posicin desde el origen de coordenadas
4
En este caso es banda base de radiofrecuencia o, lo que es igual, una seal trasladada a frecuencia
intermedia que sigue conservando las mismas propiedades de la onda plana.

Captulo II. Marco conceptual

21

Fuente

Onda
Plana
Sensor

Figura 2.8: Arreglo Lineal Uniforme (ULA) de un conjunto de antenas.

al l simo elemento (sensor) del arreglo. Adicionalmente, el elemento 0 de la


agrupacin de antena est en el origen y sirve de referencia para el resto de los
elementos.
Adems, de la ecuacin (2.12) se obtiene:
xl (t) = ejkxl cos s(t) = ejkld cos s(t) = al ()s(t)

(2.15)

As, para un ULA el vector de direccionamiento toma la siguiente forma:


aULA () =

1 ejkd cos ejk2d cos . . . ejk(L1)d cos

T

(2.16)

Se asume que es un escalar real [17], y para la referencia tomada en la Figu



ra 2.8, 0 , 180 . Esta es una restriccin de los ULAs, pues las ondas planas
proveniente de dos fuentes simtricas con respecto al eje del arreglo arriban al mismo en iguales instantes de tiempo, por lo que no se puede distinguir una de la
otra [19]. Esta ambiguedad de los ULAs se elimina mediante el uso de sensores


que slo procesan seales cuyas DoAs estn entre 0 , 180 .

22

Captulo II. Marco conceptual


Si P seales inciden en el ULA en distintas direcciones 1 , . . . , P entonces, el

vector de salida complejo se puede escribir como:


x(t) = a(1 )s1 (t) + . . . + a(P )sP (t) =

P
X

a(i )si (t)

(2.17)

i=1

donde si (t), con i = 1, . . . , P representa la i sima seal en banda base. La


ecuacin (2.17) se puede escribir de forma compacta si se define una matriz de
direccionamiento y un vector de seales de la siguiente forma:
A() =

S(t) =

a(1 ), a(2 ), . . . , a(P )


s1 (t), s2 (t), . . . , sP (t)


LP

T
P1

(2.18)

(2.19)

De esta manera, y tomando en cuenta la presencia de Ruido Blanco Gaussiano


Aditivo (AWGN-Additive White Gaussian Noise), se obtiene un modelo lineal del sistema que es comnmente usado en el procesamiento de seales con agrupacin de
antena:
x(t) = A()S(t) + n(t)

(L 1)

(2.20)

Todos los mtodos de estimacin de DoA requieren que P < L [17]. Por lo tanto,
esto se asume a lo largo de este trabajo.

2.2.1.5.

Consideraciones generales del modelo.

Los parmetros de las seales que interesan en este trabajo, son de naturaleza
espacial. Por lo tanto, es necesario obtener la covarianza entre los distintos sensores, es decir, la matriz de covarianza espacial, que se define de la siguiente manera [17] [19]:


R = E x(t)xH (t) = AE S(t)SH (t) AH + E n(t)nH (t)

(2.21)

Captulo II. Marco conceptual

23

Los trminos cruzados desaparecen pues se asume que la seal y el ruido no


estn correlacionados y la media del ruido es cero. Adems, E{} denota la esperanza
estadstica, donde:


E S(t)SH (t) = P

(2.22)

es la matriz de covarianza de las fuentes y:


E n(t)nH (t) = 2 I

(2.23)

es la matriz de covarianza del ruido. El superndice H indica el Herminitano,


definido como la transpuesta del complejo conjugado [20], e I es la matriz identidad. Para el caso de la covarianza del ruido, se tiene una varianza 2 comn en
todos los sensores e incorrelados entre s. Usualmente, este ruido se denomina espacialmente blanco. Por otro lado, se asume que la matriz P de covarianza de las
fuentes es no singular5 . De las condiciones anteriores, y si R es positiva se garantiza
la siguiente descomposicin espectral [17] [21]:
R = APAH + 2 I = UUH

(2.24)



donde A = A(), U es una matriz unitaria6 [20], y = diag 1 , 2 , . . . , L es
una matriz diagonal con los valores propios reales, con 1 > 2 > . . . L > 0. Por
otro lado, de la ecuacin (2.24) se observa que si z es cualquier vector ortogonal a
A, es decir:
AH z = 0

(2.25)

entonces z es un autovector de R con autovalor correspondiente 2 :



R 2 I z = 0

(2.26)

5
Una matriz cuadrada es no singular si su determinante es distinto de cero y, en consecuencia, es
invertible.
6
Una matriz compleja cuadrada tal que UUH = I

24

Captulo II. Marco conceptual


Muchos esquemas de estimacin de DoA que se encuentran en la literatura,

confan en la autodescomposicin de la matriz de covarianza R como la suma de


dos partes, una relacionada a los autovectores que corresponden a los autovalores
iguales a la varianza del ruido, y otra parte relacionada con la seal. Esta descomposicin, a veces llamada factorizacin espectral, se usa comnmente cuando se trata
con estimacin basada en subespacio.
Por ltimo, toda la formulacin anterior supone la existencia de cantidades
exactas, es decir, tiempo de observacin infinito. Sin embargo, en la prctica es necesario realizar la estimacin de DoA a partir de un conjunto finito de datos de x(t),
 De esta manera, soque se obtiene en t = 1, 2, . . . , N, y se denota con el smbolo ().
lo se puede tener una estimacin de la matriz de covarianza de observacin, de la
siguiente manera [17] [19]:
X
= 1
x(t)xH (t)
R
N t=1
N

2.2.1.6.

(2.27)

Matriz de observaciones.

En esta seccin se deduce la matriz de observaciones a partir de un arreglo lineal


de antenas, generalizado en cuanto a la separacin de sus elementos. En la Figura
2.9 se observa dicho arreglo:
En la prctica, el procesamiento de seales para la estimacin de DoA se hace
para un conjunto finito de datos [1]. Partiendo del vector de salida x(t), se genera
una matriz X(t) que contiene las N observaciones de L elementos de antena, para
t = 1, 2, . . . , N. De forma similar a la ecuacin (2.20), la expresin matricial para un
conjunto de observaciones es:
X(t) = A()S(t) + N(t)

(L N)

(2.28)

Captulo II. Marco conceptual

25

Fuente

Onda
Plana
Sensor

Figura 2.9: Arreglo lineal de antena generalizado.

Explcitamente, se tiene que:

X(t) =

x(1), x(2), . . . , x(N)

x1 (2) . . . x1 (N)

x2 (1) x2 (2) . . . x2 (N)


=
..
..
..

..

.
.
.
.

xL (1) xL (2) . . . xL (N)

x1 (1)

(2.29)

LN

Adicionalmente, se puede expresar de forma explcita la matriz de direccionamiento A() de la siguiente manera:
A() =

a(1 ), a(2 ), . . . , a(P )

(2.30)

26

Captulo II. Marco conceptual

...

ejkd1 cos 2

...

ejkd1 cos P

ejkd2 cos 2
..
.

...
..
.

ejkd2 cos P
..
.

jkd1 cos 1
e

A() = ejkd2 cos 1

..

ejkdL1 cos 1

ejkdL1 cos 2

. . . ejkdL1 cos P

LP

y la matriz de observaciones de las fuentes S(t) como:

s (t)
1

s2 (t)
S(t) =
..
.

sP (t)

s (1) s1 (2) . . . s1 (N)


1

s
(
1
)
s
(
2
)
.
.
.
s
(N)
2

2
2
=

..
..
..

..
.

.
.
.

sP (1) sP (2) . . . sP (N)

(2.31)

PN

Tambin, se puede definir la matriz N(t) de Ruido Blanco Gaussiano Aditivo


(AWGN) cuya media es cero y varianza 2 , de la siguiente manera:

N(t) =

n(1), n(2), . . . , n(N)

n1 (2) . . . n1 (N)

n2 (1) n2 (2) . . . n2 (N)


=
..
..
..

..

.
.
.
.

nL (1) nL (2) . . . nL (N)

n1 (1)

(2.32)

LN

En la Tabla 2.1 se muestra un resumen de las diferentes variables e ndices que


definen las dimensiones de las matrices utilizadas.

Captulo II. Marco conceptual

27

Tabla 2.1: Variables e ndices utilizadas para definir las dimensiones de las matrices.

2.2.2.

Variable

Significado

Nmero de elementos

Nmero de fuentes

Separacin entre elementos de antena

Nmero de observaciones

ndice de elementos de antena

ndice de fuentes

Algoritmo de Clasificacin de Seales Mltiples (MUSIC-MUltiple


SIgnal Classification).

El algoritmo MUSIC fue desarrollado por Schmidt [22], como un estimador para
el problema de DoA [17]. Este mtodo, basado en subespacios, propone las siguientes propiedades de la matriz de covarianza:
El espacio que contiene los eigenvectores (vectores propios o autovectores)
puede ser dividido en dos subespacios, llamado el subespacio de seal y el
subespacio de ruido.
Los vectores de direccin que corresponden a las fuentes son ortogonales al
subespacio de ruido.
En este sentido, el algoritmo MUSIC aprovecha las consideraciones realizadas
sobre las seales y el ruido, las cuales estn espacialmente incorreladas [1]. En la Figura 2.10 se observa el mecanismo de estimacin de DoA usado por este algoritmo,
en el que partiendo de la matriz de covarianza estimada a partir de un conjunto de
N observaciones, se extraen las caractersticas espaciales de dicha matriz mediante
la descomposicin en valores y vectores propios. Luego, y a partir de la descomposicin de valores propios (EVD-Eigen Value Descomposition) se forman los subespacios de seal y ruido US y Un respectivamente, los cuales son utilizados para

28

Captulo II. Marco conceptual

calcular el espectro PMUSIC y a partir de ste se estiman las direcciones de llegada



.

Descomposicin
EVD

Figura 2.10: Diagrama de bloque de la estimacin de DoA usando MUSIC [1].

Como se seal anteriormente, la estructura exacta de la matriz de covarianza,


asumiendo ruido espacialmente blanco, implica la descomposicin espectral expresada en la ecuacin (2.24). La hiptesis del algoritmo MUSIC est basada en que el
vector de direccionamiento a() est determinado por la posicin de cada elemento de antena y est en funcin de la direccin de llegada. Un vector de direccionamiento contiene, entonces, la direccin de llegada de una fuente. Si las fuentes son
diferentes, se tendr un conjunto P de vectores columnas independientes entre s.
De la ecuacin (2.30) se observa que la matriz de direccionamiento A() tiene rango P dentro del espacio L dimensional. Entonces, la descomposicin en
valores y vectores propios de la matriz de covarianza contendr un espacio P dimensional correspondiente a las seales y, adems, de las ecuaciones (2.25) y (2.26)
cualquier vector ortogonal a A = A() es un autovector de R con autovalor correspondiente 2 . Hay L P de estos vectores linealmente independientes que forman
el subespacio de ruido. As se tiene que la descomposicin en valores y vectores
propios de R, partiendo de la ecuacin (2.24) es [17]:
H
R = US S UH
S + Un n Un

(2.33)

De la misma forma, para la estimacin de la matriz de covarianza se tiene que:


 =U
 S
 SU
H +U
 n
 nU
H
R
S
n

(2.34)

Captulo II. Marco conceptual

29

Los subespacios de seal US y de ruido Un se forma de acuerdo a la relacin


que existe entre los valores propios l y vectores propios ul , donde los P vectores
propios correspondientes a los valores propios mayores forman el subespacio de
seal y el resto de los vectores forman el subespacio de ruido, como se indica a
continuacin [1]:
US =
Un =

u1 , u2 , ..., uP

uP+1 , uP+2 , ..., uL

S = diag
n = diag

(2.35)

LP


L(LP)

1 , 2 ..., P

P+1 , P+2 , ..., L

(2.36)
(2.37)

(2.38)

donde S es una matriz diagonal con los valores propios correspondiente al


subespacio de seal, con 1 > 2 , ..., > P > 2 y n es una matriz diagonal de dimensiones (L P) con los valores propios correspondiente al subespacio de ruido.
Como los autovalores del subespacio de ruido son P+1 = P+2 = L = 2 , entonces la matriz diagonal del subespacio de ruido puede escribirse como n = 2 In .
Finalmente, la descomposicin espectral puede ser expresada de la siguiente
manera [17]:
H
2
R = APAH + 2 I = US S UH
S + Un U n

(2.39)

De la ecuacin (2.39), se observa que el subespacio de seales US coincide con


A(). De esta manera, se comprueba la hiptesis que se propone en el algoritmo
MUSIC, donde la combinacin lineal de los frentes de onda de las seales y del
ruido est contenida en la matriz de covarianza y los subespacios de seal y ruido
se obtienen de la EVD. A partir de dichos subespacios, es posible definir el espectro
MUSIC [1].

2.2.2.1.

Espectro MUSIC.

Considerando la ecuacin (2.25), el problema de estimacin de DoA es resuelto


con MUSIC al tener en cuenta que, cualquier vector propio asociado al subespacio

30

Captulo II. Marco conceptual

de ruido Un , es ortogonal al espacio columna de la matriz de direccionamiento


A(), en cuyo caso su producto ser cero. De esta manera, se tiene que [1] [17]:
AH ul = 0




1 , 2 , . . . , P

a(1 ), a(2 ), . . . , a(P )

(2.40)

uP+1 , uP+2 , . . . , uL

(2.41)

con que denota ortogonalidad. Lo anterior muestra la esencia del algoritmo


MUSIC, donde al encontrar los vectores de direccionamiento que son aproximadamente ortogonales al subespacio de ruido, es posible estimar la direccin de
llegada. De esta manera, encontrar la direccin de llegada es posible al proyectar
el vector de direccionamiento por medio de una matriz de proyeccin dentro del
subespacio del ruido. Entonces, se define la matriz de proyeccin para cada uno
de los subespacios de la siguiente forma [17] [19]:
S = US UH
S

(2.42)

H
H
n =
S = Un Un = I US US

(2.43)

donde n es la proyeccin complementaria de S , y se denota como


S . As
mismo, la ortogonalidad de los subespacios, implica que al proyectar el vector de


direccionamiento dentro del dominio de min , max , que contiene las direcciones de llegada, entonces la proyeccin S a() ser mxima cuando el parmetro


coincida con las direcciones de llegada 1 , 2 , . . . , P , o bien que n a() 0.
Teniendo en cuenta que la matriz de proyeccin estimada para el subespacio
del ruido es [17]:
n =
 = U
 nU
H = IU
 SU
H

n
S
S

(2.44)

Entonces, el espectro espacial MUSIC es definido de la siguiente forma [17] [22]:


PMUSIC =

1
 nU
 H a()
aH ()U
n

1
 SU
 H )a()
aH ()(I U
S

(2.45)

Captulo II. Marco conceptual

31

En sentido estricto ste no es un espectro sino que, ms bien, representa la distancia entre dos subespacios, presentando picos en las proximidades de los verdaderos DoAs [17]. El algoritmo MUSIC ha sido ampliamente estudiado y en una
evaluacin detallada basada en miles de simulaciones, el Laboratorio Lincoln del
MIT (Massachusetts Institute of Technology) concluy que, entre los algoritmos de alta
resolucin aceptados, MUSIC es uno de ellos [23]. No obstante, para casos de bajo
SNR o fuentes cercanas el algoritmo pierde resolucin. Esta prdida de resolucin

se vuelve ms evidente para seales altamente correladas [17]. Para estas condiciones, se requieren de los llamados mtodos ptimos o de Mxima Verosimilitud
(ML-Maximum Likelihood), los cuales son estadsticamente eficientes y superiores a
los mtodos basados en subespacios.

2.2.3.

Mtodo de Mxima Verosimilitud (ML-Maximum Likelihood).

Aun cuando MUSIC es computacionalmente atractivo, no siempre produce suficiente precisin. Una alternativa a esto, es explotar completamente el modelo de
data subyacente, conduciendo a los llamados mtodos paramtricos de procesamiento de arreglo [17]. Estos mtodos ofrecen un mayor rendimiento en trminos
de precisin y resolucin, por lo que exigen una mayor complejidad y carga computacional [24], sin embargo, para ULAs se presentan algoritmos mucho menos exigentes [17].
En este sentido, se necesita una nueva medida de rendimiento, ya que las estimaciones de DoA se obtienen sin calcular un espectro. En lugar de ello, se utilizan
dos propiedades estadsticas para las estimaciones de DOA, como una medida de
rendimiento [1] [24].

Consistencia. Un estimador es consistente si converge al valor verdadero


cuando el nmero de datos tiende a infinito. Matemticamente se expresa
de la siguiente forma:
 | > ) = 0
lm P(|

(2.46)

32

Captulo II. Marco conceptual


Insesgadez. Un estimador es insesgado, si en promedio los valores estimados
son iguales a los valores reales. Matemticamente expresado de la siguiente
manera:
 =
E()

(2.47)

Eficiencia estadstica. Un estimador insesgado es eficiente desde el punto de


vista estadstico si la covarianza del valor estimado alcanza la cota de CramerRao (CRB-Cramer Rao Bound).

Uno de los mtodos paramtricos ms conocidos y utilizados es la tcnica de


Mxima Verosimilitud (ML-Maximum Likelihood), la cual es una de las principales
tcnicas sistemticas de procesamiento estadstico de la seal [24] [25]. El mtodo
ML asume un modelo para las seales y tambin una estructura estadstica para la
generacin de la informacin. Aqu, se usar el modelo de la seal introducido en
la seccin 2.2.1. Existen varias versiones de ML, en este trabajo se usar la Mxima
Verosimilitud Determinstica (DML-Deterministic Maximum Likelihood).

2.2.3.1.

Mxima Verosimilitud Determinstica (DML-Deterministic Maximum


Likelihood).

Mientras que el ruido en el receptor se considera que emana de un largo nmero


de fuentes independientes, usualmente no ocurre lo mismo con las seales. Por
lo tanto, es posible modelar el ruido como un proceso aleatorio estacionario de
tipo blanco Gaussiano, mientras que la forma de las seales son determinsticas y
desconocidas; las frecuencias de las portadoras son conocidas [17]. El momento de
segundo orden, para el trmino del ruido toma la siguiente forma [17] [24]:


E n(t)nH (t) = 2 Its

(2.48)


E n(t)nT (t) = 0 t, s

(2.49)

Captulo II. Marco conceptual

33

Como consecuencia de estos supuestos estadsticos, el vector de salida x(t) es


un proceso aleatorio temporalmente blanco de distribucin Gaussiana, con media
As(t) y matriz de covarianza 2 I. La funcin de verosimilitud (likelihood function) es la
Funcin de Densidad de Probabilidad (PDF-Probability Density Function) de todas
las observaciones dada por los parmetros desconocidos. La PDF para un vector
medido x(t) es el complejo L-variable Gaussiano [17]:
2
2
1
ekx(t)As(t)k /
2
L
( )

(2.50)

donde k k denota la norma Euclidiana. Ya que las mediciones son independientes, la funcin de verosimilitud se obtiene como [17]:
N

 Y
2
2
LDML , s(t), 2 =
(2 )L ekx(t)As(t)k /

(2.51)

t=1

Los parmetros desconocidos en la funcin de verosimilitud son los ngulos


de las seales, las formas de onda de las seales s(t) y la varianza del ruido 2 . Las
estimaciones de ML para los parmetros desconocidos se calculan maximizando

los argumentos de L , s(t), 2 . Por conveniencia la estimacin se realiza minimi
zando la funcin negativa logartmica de probabilidad log L , s(t), 2 . Normalizando para N e ignorando el parmetro independiente L log , se tiene [17]:


lDML , s(t), 2 = L log 2 +


1 X
x(t) As(t) 2
2 N t=1
N

(2.52)

cuyos argumentos de minimizacin son las estimaciones DML. Explcitamente,


se tiene que la minimizacin respecto a 2 y s(t) estn dadas por [17]:
2 =

1

T r A R
L

s(t) = A x(t)

(2.53)
(2.54)

34

Captulo II. Marco conceptual


 es la matriz de covarianza estimada, A denota la pseudoinversa de
donde R

H
Moore-Penrose de A y
A es el proyector ortogonal sobre el espacio nulo de A [20].

La matriz de covarianza estimada se calcula segn la ecuacin (2.27) y, adems, se


tiene que [17]:


1
A = AH A
AH

(2.55)

A = AA

(2.56)

A = I A

(2.57)

Sustituyendo las ecuaciones (2.53) y (2.54) en (2.52) el ngulo estimado de la


seal, entonces, se obtiene resolviendo el siguiente problema de minimizacin [17]:

DML = arg mn T r

AR

(2.58)

donde T r{} denota la traza7 de una matriz cuadrada, y arg{} es el argumento


de un nmero complejo. La interpretacin es que las mediciones de x(t) se proyectan sobre un modelo de subespacio ortogonal para todas las componentes de las
seales previstas, entonces la medida de potencia es igual a [17]:
N



1 X
 2 = T r R

R
A
A
N t=1

2.3.

(2.59)

PROCESAMIENTO DIGITAL DE LAS SEALES.

El procesamiento digital de seales abarca todo lo concerniente con la representacin digital de seales y el uso de sistemas digitales para analizar, modificar,
almacenar, transmitir o extraer informacin de estas seales. El avance rpido en
tecnologa digital en los ltimos aos ha creado la implementacin de sofisticados
algoritmos de procesado digital de seales que hacen que realizar tareas en tiempo
real sea factible. Las ventajas de usar sistemas de procesamiento de seal en lugar
7

pal.

La traza de una matriz cuadrada se define como la suma de los elementos de su diagonal princi-

Captulo II. Marco conceptual

35

de dispositivos analgicos tradicionales (como amplificador, moduladores y filtros)


son las siguientes [2]:

Flexibilidad. Las funciones del procesado digital de seal pueden ser modificadas o actualizadas mediante software y, usando el mismo hardware, para
un algoritmo especfico.
Reproductibilidad. 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 contrapartes 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.

Algoritmos de procesado de pueden ser desarrollados, analizados y simulados


usando herramientas de lenguaje de alto nivel como C/C++ y MATLAB. El rendimiento de estos algoritmos puede ser verificado usando una computadora personal. Por lo tanto, un sistema de procesado digital de seal es relativamente fcil de
analizar, simular, y probar [2].
Sin embargo, existen limitaciones; por ejemplo, el ancho de banda de estos sistemas esta limitado por la tasa de muestreo y los perifricos del hardware. El costo de
diseo inicial de estos sistemas puede ser elevado, especialmente cuando un largo
ancho de banda de las seales estn implicados. Para aplicaciones en tiempo real,
algoritmos de procesamiento digital de seal son implementados usando un nmero fijo de bits, que resulta en un limitado rango dinmico produciendo errores
aritmticos [2].

36

Captulo II. Marco conceptual

2.3.1.

Procesador Digital de Seal (DSP).

Un DSP es, bsicamente, un microprocesador con una arquitectura y un conjunto de instrucciones diseados especficamente para aplicaciones de procesamiento
digital de seales [2]. Este tipo de dispositivo tiene ventajas que optimizan el diseo
de circuitos electrnicos, tales ventajas son: alta flexibilidad, bajo tiempo de diseo,
bajo consumo de potencia y un bajo costo en el desarrollo.
Para la programacin de algoritmos de DSP, las compaas que fabrican estos
dispositivos han generado IDEs que contienen herramientas como compiladores
de lenguaje C y Assembler para la interpretacin de las reglas secuenciales de los
algoritmos y llevarlos al lenguaje mquina del procesador. Tambin cuenta con optimizadores, enlazadores, depuradores, simuladores y emuladores.

2.3.2.

Elementos bsicos de un sistema de DSP en tiempo real.

Hay dos tipos de aplicaciones de sistemas de DSPs: aplicaciones en tiempo no


real y en tiempo real. La primera establece que el procesamiento de los datos que
son adquiridos, generalmente, por un Convertidor Analgico Digital (ADC-Analog
to Digital Converter) debe ser ejecutado antes que se capturen los prximos datos.
Estas aplicaciones procesan las seales digitales sin tales restricciones de tiempo. La
segunda es el propsito principal de uso de un DSP e indica que el procesamiento
de las seales siguen el ritmo de un evento externo [26]. En la Figura 2.11 se observa
un esquema bsico de un sistema de DSP en tiempo real [2]. La seal de entrada es
amplificada y luego entra a un filtro anti-aliasing. El ADC captura esa seal de entrada y, la representacin digital que resulta de esta seal captada, es procesada por un
DSP. Luego la salida se reconstruye con un DAC y entra a un filtro de reconstruccin
para suavizar o reconstruir la seal de salida [2] [26].

Captulo II. Marco conceptual

37

Figura 2.11: Diagrama de bloque bsico de un sistema de DSP en tiempo real [2].

2.4.

GENERACIN Y OPTIMIZACIN DE CDIGO PARA DSPs.

Sistema embebido es el nombre genrico que reciben los equipos electrnicos que
incluyen un procesamiento de datos, pero que, a diferencia de una computadora
personal, estn diseados para satisfacer una funcin especfica. El cerebro de un
sistema embebido es tpicamente un microcontrolador, aunque los datos tambin
pueden ser procesados por un DSP, una FPGA (Field Programmable Gate Array), un
microprocesador o un ASIC (Application Specific Integrated Circuit), y su diseo est
optimizado para reducir su tamao y su costo, aumentar su confiabilidad y mejorar
su desempeo [27]. En esta seccin se estudiarn las herramientas para la generacin de cdigo para sistemas embebidos de DSPs.
Los entornos de desarrollo de procesado matemtico, son tiles para el diseo
de algoritmos pues permiten la implementacin y prueba de cdigos de forma relativamente sencilla y rpida [8]. Las caractersticas de estos lenguajes subyace en su
flexibilidad y simplicidad a la hora de codificar, as como la claridad de su interfaz
grfica, lo que facilita el desarrollo de algoritmos que necesiten un procesamiento de seal, para su posterior implementacin en sistemas embebidos. Uno de los

38

Captulo II. Marco conceptual

lenguajes de computacin matemtico de alto nivel ms potentes es MATLAB de


Mathworks.
Los DSPs ejecutan cdigo objeto8 , los cuales son interpretados por la unidad
central de procesamiento de cualquier circuito integrado programable, como DSPs,
microcontroladores, microprocesadores, entre otros. El cdigo objeto se genera a
partir del cdigo fuente de un determinado software de lenguaje medio o alto nivel,
que bien puede o no ser el mismo lenguaje de computacin matemtica en el que,
inicialmente, se disea la aplicacin.
Los indicadores ms utilizados para evaluar el rendimiento de un sistema en
tiempo real son el tiempo de ejecucin de un programa y la ocupacin en memoria y,
generalmente, la optimizacin de un indicador conlleva a la desmejora del otro.
Por lo tanto, es necesario realizar una evaluacin de los requisitos del sistema9 en
cuestin, para establecer cul indicador es ms crtico, para mejorar uno de ellos o
bien para encontrar un equilibrio entre ambos, si eso resulta ms beneficioso.
A continuacin, se describirn las herramientas que permiten la codificacin de
un algoritmo que admite la ejecucin en tiempo real, desde su conceptualizacin
hasta la simulacin en los entornos de desarrollo integrados para DSPs.

2.4.1.

Embedded MATLAB.

MATLAB es un lenguaje de alto nivel y un entorno interactivo sencillo, gil y


dinmico para el diseo y resolucin de problemas, cuyas herramientas de desarrollo permiten una mejora en la calidad del cdigo, facilidad de mantenimiento
y maximizacin del rendimiento. No obstante, por lo general no es posible generar a partir de l, aplicaciones ejecutables por dispositivos integrados. Por lo tanto,
es necesario convertir el cdigo elaborado en MATLAB a un determinado lenguaje de programacin que se denomina lenguaje intermedio para que, a partir de ste,
se pueda generar el cdigo objeto ejecutable por el DSP. Uno de los lenguajes ms
comnmente usados es C.
8
9

Cdigo en lenguaje mquina.


Esta tesis est basada en sistemas de Antena Inteligente, ms especficamente la etapa de DoA.

Captulo II. Marco conceptual

39

En un primer momento, se podra pensar en reescribir manualmente el cdigo


MATLAB a lenguaje C. Uno de los retos que esto conlleva son las diferencias funcionales y de comportamiento, entre ambos lenguajes, introducidos en su diseo.
Por tal motivo, el principal problema de esta aproximacin, es que se deben mantener dos implementaciones que no estn automticamente sincronizadas entre ellas.
De esta manera, si los requisitos cambian durante el desarrollo, que es algo que
siempre ocurre, es bastante ineficiente modificar el cdigo C, para probarlo nuevamente y asegurar que su funcionalidad es la misma que el cdigo original de
MATLAB [28].
Los errores de codificacin se traducen habitualmente durante el proceso de traduccin manual, conduciendo a tiempos de pruebas ms largos y sin garanta que
se capturen todos los errores introducidos. Con la traduccin automtica de algoritmos de MATLAB a C, se dedica mucho menos tiempo a la escritura y depuracin
de cdigo C y ms tiempo en desarrollo y sintonizacin de algoritmos [28].
En este sentido, MATLAB dispone de herramientas que abordan esta cuestin y
que facilitan la conversin de MATLAB a lenguaje C reduciendo el costo en el desarrollo y verificacin del algoritmo final. Estas herramientas pueden convertir una
parte del lenguaje MATLAB, llamado Embedded MATLAB, a cdigo C portable y
multiplataforma.
Embedded MATLAB es un subconjunto del lenguaje MATLAB que soporta la
generacin de cdigo eficiente para su implementacin en sistemas embebidos y
aceleracin de algoritmos de punto fijo [29]. Est compuesto por ms de 270 operadores y funciones tradicionales de MATLAB y 90 funciones para el desarrollo de
aplicaciones en punto fijo [30].
Entre las caractersticas de MATLAB que soporta Embedded MATLAB se encuentran los arreglos N-dimensional, operaciones con matrices, nmeros complejos, diferentes tipos de variables y clases numricas, aritmtica de simple y doble
precisin, aritmtica de punto fijo, estructuras de control de flujo (if, switch, while, for), subfunciones, variables persistentes, estructuras, caracteres o llamadas a
funciones de MATLAB entre otras caractersticas [29].

40

Captulo II. Marco conceptual


En este sentido, trabajando dentro de dicho subconjunto, el diseo de algo-

ritmos es ms fcil pues el algoritmo Embedded MATLAB es todava cdigo de


MATLAB, y conserva las capacidades interactivas de depuracin y visualizacin
en MATLAB. Este enfoque permite generar automticamente cdigo C a partir del
cdigo Embedded MATLAB, eliminando el costo de produccin y verificacin de
cdigo escrito a mano en lenguaje C [30]. La conversin de un algoritmo tpico
MATLAB en cdigo C, implica considerar varios requerimientos de implementacin [30]:

Gestin de tipo de datos. Los tipos de datos se deben determinar antes de su


implementacin.
Asignacin de memoria esttica. MATLAB perfectamente maneja variables
que cambian dinmicamente de tamao en tiempo de ejecucin. En aplicaciones embebidas, sin embargo, se recomienda evitar la asignacin de memoria
dinmica, definiendo as tipo de datos de tamao especfico antes de ser utilizados.
Reduccin de la complejidad computacional. Se recomienda disear algoritmos ptimos, pues existe limitacin de recursos computacionales para el
hardware de destino, este esfuerzo resulta en afinar el diseo para el conjunto de instrucciones y datos de los algoritmos.
Soporte de punto fijo. La implementacin en software o hardware embebido
puede requerir que el algoritmo se definina completamente con tipos de datos
de punto fijo.

Embedded MATLAB puede emplearse en diversas tareas como la generacin


de cdigo C desde cdigo MATLAB, generacin de funciones C-MEX (C-MATLAB
Executable) para la verificacin desde MATLAB del cdigo C generado, integracin
de cdigo MATLAB en Simulink o integrar cdigo C en MATLAB, entre otros. De
estas caractersticas, recibe especial inters la capacidad de generacin de cdigo
C a partir de cdigo MATLAB y la verificacin del cdigo C generado dentro del
entorno MATLAB.

Captulo II. Marco conceptual

41

Para ello es necesario el Real-Time Workshop (RTW), una herramienta para la


generacin de cdigo C embebido a partir de funciones de Embedded MATLAB
en Simulink, Stateflow o en cdigo MATLAB plano por medio de su caracterstica
Real-Time Workshop Embedded Coder. De esta manera, Real-Time Workshop genera y ejecuta cdigo C independiente para desarrollo y verificacin de algoritmos
modelados en Simulink o en cdigo Embedded MATLAB, de modo que permite obtener cdigo eficiente para aplicaciones en tiempo real, al mismo tiempo que
permite realizar todo el proceso, desde el diseo del algoritmo hasta la consecucin
del cdigo C, sin salir del entorno MATLAB [8] [31].

2.4.1.1.

Limitaciones de Embedded MATLAB.

No todos los elementos de MATLAB soportan la conversin a lenguaje C. Si


existe este tipo de elementos, entonces se generar un informe en formato html con
los errores de compilacin. En el desarrollo de algoritmos en MATLAB, normalmente no se toma en cuenta estas consideraciones, no obstante, para la codificacin
de algoritmos mediante la herramienta Embedded MATLAB es importante tenerlas
presentes desde un principio, y as evitar la reprogramacin de los cdigos producto de los errores de compilacin.
Embedded MATLAB no soporta cell array (matrices cuyas celdas contienen distintos tipos de datos) , dualidad10 comando/funcin, variables dinmicas11 , variables globales, funciones anidadas, eliminacin de matriz, objetos, matrices dispersas y las declaraciones try/catch [29].
Es menester considerar algunas de las diferencias entre el lenguaje MATLAB y
el lenguaje C para la posterior conversin de uno a otro, de esta forma es posible
salvar algunas de las limitaciones de Embedded MATLAB. La Tabla 2.2 muestra
algunas de estas diferencias [30].
10

Embedded MATLAB soporta la sintaxis de estilo de funcin Embedded, pero no sintaxis de estilo
comando para llamadas a funciones. MATLAB soporta ambos estilos.
11
No soporta variables que cambian de tamao.

42

Captulo II. Marco conceptual


Tabla 2.2: Diferencias entre MATLAB y lenguaje C.

MATLAB
No necesita declaracin de variable
y tamao antes de ser usadas
Permite el cambio de tamao de las
variables sin necesidad de programacin
No necesita declarar nombre, tipo y
longitud de un array
Incorporacin de variables de tipo
complejas
Soporte extensivo para libreras de
lgebra lineal y aplicaciones especficas organizadas en toolboxes

Cdigo C
Necesita declaracin de variable y
tamao antes de ser usadas
Los cambios en el tamao de las
variables son permitidos explcitamente a travs de la asignacin de
memoria dinmica
Necesita declarar nombre, tipo y
longitud de un array
No incorpora variables de tipo
complejas
No soporte para libreras de lgebra lineal y aplicaciones especficas

Por otra parte, un algoritmo diseado en MATLAB no considera la importancia


de su anlisis para asegurar que opera de forma eficiente, dentro de la ocupacin
en memoria requerida y de los recursos de los que se dispone a fin de reducir la
complejidad computacional y el total de memoria ocupada, algo que si debe ser
considerado para aplicaciones embebidas.

2.4.1.2.

Funciones C-MEX (C-Matlab Executable).

Una de las caractersticas resaltantes de Embedded MATLAB, es que permite


verificar dentro de MATLAB el cdigo C generado, es decir, se puede compilar
cdigo C en funciones que son llamadas desde MATLAB [29]. Aun cuando no es
posible hacer el llamado del cdigo C, directamente desde el Command Window de
MATLAB, existe una herramienta para poder generar un ejecutable de este archivo
para poder ser usado en el entorno de MATLAB.
El archivo que se genera, es llamado mex que sera el equivalente en espaol a
ejecutable de MATLAB y es este tipo de funciones las que posteriormente se pueden
llamar en el Command Window o en cualquier fichero o funcin de MATLAB. De

Captulo II. Marco conceptual

43

esta manera, es posible verificar escaladamente cada parte del cdigo C generado
mediante estas funciones C-MEX.

2.4.2.

Compilador C de propsito general.

C se ha convertido en uno de los lenguajes mayormente usados para desarrollos


de software para DSPs, no slo debido a sus poderosos comandos y estructuras de
datos, sino tambin debido a su portabilidad entre distintas plataformas y dispositivos DSPs. El hecho que los compiladores de C estn disponibles para una amplia
gama de unas plataformas de computadoras y DSPs hace que C sea el software ms
portable para aplicaciones en tiempo real [2]. Con un diseo cuidadoso, es posible
escribir programas en C que sean portables para la mayora de las computadoras o
dispositivos [32].
Code::Blocks es un entorno de desarrollo integrado libre y multiplataforma para
el desarrollo de programas en lenguaje C, C++ y Fortran, diseado para satisfacer
las necesidades ms exigentes de sus usuarios [33]. Es til para el desarrollo de
aplicaciones, pues permite la verificacin de un programa en lenguaje C de forma
independiente, en un entorno totalmente separado de otras herramientas que se
emplean en el proceso de desarrollo de software embebido.
El propsito es conseguir que el cdigo escrito sea independiente de cualquier
plataforma, de manera que pueda ser compilado por cualquier herramienta de
desarrollo de software e implementado en cualquier entorno ya sea un DSP, un
microcontrolador, entre otros.

2.4.3.

Code Composer Studio (CCS).

Code Composer Studio es un IDE que soporta microcontroladores de Texas Instruments (TI) y procesadores integrados. CCS cuenta con un conjunto de herramientas que se utilizan para desarrollar y depurar aplicaciones integradas. Incluye

44

Captulo II. Marco conceptual

una optimizacin del compilador C/C++, editor de cdigo fuente, entorno de construccin de proyectos, depurador, y muchas otras caractersticas. Es un IDE intuitivo que proporciona una nica interfaz de usuario, cuyas herramientas permiten
a los usuarios empezar ms rpido que nunca, dando la posibilidad de seleccionar
un target concreto dentro de la familia de DSPs de TI [34].
En su interfaz, proporciona el abordaje de cada uno de los pasos a seguir en el
proceso de desarrollo de aplicaciones embebidas, lo que permite reducir el tiempo
que se invierte en el desarrollo e integracin de software para DSPs.
CCS incluye herramientas para la generacin de cdigo, tal como un compilador de C, un ensamblador y un enlazador. Tiene capacidades grficas y apoya la
depuracin en tiempo real. Proporciona una herramienta fcil de usar software para construir y depurar programas. El compilador de C compila un programa fuente
con extensin .c para producir un archivo de origen asembler con extension .asm.
El ensamblador ensambla el archivo fuente .asm para producir un archivo objeto
en lenguaje mquina con extension .obj. El enlazador combina archivos objeto y
bibliotecas de objetos como entrada para producir un archivo ejecutable con extension .out. Este archivo ejecutable es quien finalmente se puede cargar y ejecutar
directamente en el procesador [26].

Captulo III

Procedimientos de la
investigacin.
Con el objeto de evaluar los algoritmos DoA en Code Composer Studio, se analizan dos alternativas posibles:

Codificacin manual de cdigo en lenguaje C.


Conversin automtica de cdigo en lenguaje de computacin matemtica
(MATLAB) a un cdigo fuente C.

Evaluando estas dos alternativas y tomando en cuenta que en [7] ya se han codificados los algoritmos MUSIC y DML en el lenguaje propio de MATLAB, resulta
de gran provecho hacer uso de las herramientas que dispone MATLAB para la generacin automtica de cdigo fuente C. Por lo tanto, se tomaron dichos cdigos
como punto de partida y se hizo uso de las herramientas que dispone MATLAB
para la generacin automtica de cdigo fuente C.
En este sentido, esta investigacin se divide en cuatro etapas principales como
se muestra en la Figura 3.1. Cada una de ellas se explica de manera detallada en las
siguientes secciones.

45

46

Captulo III. Procedimientos de la investigacin.

ETAPA 1

Estudio de la estimacin
de llegada y los mtodos MUSIC y ML

ETAPA 2

Simulaciones

ETAPA 3

Evaluacin de la respuesta
computacional de distintos DSPs

ETAPA 4

Creacin de un procedimiento general

Figura 3.1: Etapas de la investigacin.

3.1.

Estudio de la estimacin de llegada y los mtodos MUSIC y ML.

Se realiz mediante la documentacin sobre el problema general de estimacin


de la direccin de llegada y, luego, se hizo un anlisis de los dos algoritmos DoA
utilizados en este estudios, MUSIC y DML. Por consiguiente, se seleccion MUSIC por ser uno de los mtodos ms ampliamente usado (es un mtodo basado en
subespacio) y el cual ha recibido bastante atencin por parte de investigadores [21].
Por otro lado, se seleccion DML por ser un mtodo paramtrico y mucho ms
preciso que MUSIC aun cuando ofrece una mayor carga computacional [17].

Captulo III. Procedimientos de la investigacin.

3.1.1.

47

Naturaleza de las seales del entorno.

Las seales que se usaron para la simulacin, tienen un comportamiento de tipo


senoidal. De esta forma, la i sima seal de informacin est representada por la
siguiente ecuacin:
s(t) = Ai sin(2fi t)

(3.1)

donde Ai y fi representan la amplitud y la frecuencia, respectivamente. El ndice i, toma valores de 1, 2, ..., P.


Ahora bien, las componentes frecuenciales deben estar contenidas en un rango
que sea menor o igual al ancho de banda del dipolo de /2. Dicho ancho de banda
es menor o igual al diez por ciento de la frecuencia de trabajo nominal del dipolo
(BWd = 0,1fd ) [35].
En la Tabla 3.1 se muestran algunos rangos de frecuencia, donde las empresas de
telecomunicaciones pueden operar en Venezuela como servicio primario [36]. Por
lo tanto, conocido algunos rangos de frecuencias por la Tabla 3.1, y considerando el
alto nivel computacional de los algoritmos DoA, la frecuencia de trabajo nominal
del dipolo se tom como:
fd =

(806 + 890)MHz
= 848MHz 850MHz
2

(3.2)

Tabla 3.1: Rangos de frecuencias para comunicaciones mviles ms usados; establecidos por CONATEL.

Rango de frecuencias
[806 890]MHz
[947, 58 960]MHz
[1710 2170]MHz

Atribucin Venezuela
MOVIL, FIJO
MOVIL, FIJO
MOVIL, FIJO

De esta manera, se tiene que :


BWd = 85MHz

(3.3)

48

Captulo III. Procedimientos de la investigacin.


Las seales de radiofrecuencia que arriban al arreglo se rigen por la siguiente

ecuacin:
Ai sin(2fi t)ej2fpi t

(3.4)

donde fi es la frecuencia de la i sima seal de informacin, cuyo ancho de


banda es de 10KHz [37], y fpi es la frecuencia de la portadora de la i sima seal
y [850 80]MHz.
Finalmente, se asumi que el ruido que se superpone a las seales es de tipo
AWGN, el cual se denota por n(t).

3.1.2.

Respuesta del Arreglo de antena.

En los sistemas de comunicaciones mviles, los elementos principales de las antenas son, generalmente, dipolos de /2 que tienen una ganancia unitaria y la misma respuesta en una banda estrecha de frecuencias [1]. En la prctica, un arreglo de
antenas de una radio base, obedece a un arreglo linealmente uniforme, donde cada
antena perteneciente al arreglo, contiene diversidad espacial [5]. En la Figura 3.2 se
aprecia el modelo de un arreglo de antenas con diversidad espacial y polarizacin
vertical.

Figura 3.2: Arreglo lineal uniforme usado en comunicaciones mviles con diversidad espacial y polarizacin vertical.

Captulo III. Procedimientos de la investigacin.

49

Para objeto de esta investigacin, los elementos de este arreglo fueron representados por dipolos de /2 que operan a una frecuencia de 850MHz, tal como se
propuso en la seccin 3.1.1. Este cambio es posible pues en la simulacin se consideran ondas planas cuyo vector de onda est contenido en el plano x y. Los
elementos de antenas estuvieron separados 0,5 para evitar lbulos de difraccin
y acoplamiento mutuo entre los elementos. En la Figura 3.3, se observa el modelo del arreglo que se us en las simulaciones. En cuanto al nmero de elementos
empleados en una Antena Inteligente, se recomienda, que est entre [6 10] [9].

Figura 3.3: Arreglo linealmente uniforme a usar para la simulacin.

Por lo tanto, se seleccion un nmero de L = 10 dipolos. El definir la configuracin del arreglo es importante, ya que el mismo condiciona la calidad de la
estimacin de las seales y la etapa de BF. Sin embargo, esto limita la estimacin,
ya que la matriz de observacin est formada por el producto de la matriz de direccionamiento y la matriz de las seales.
En cuanto a la etapa de BF, el arreglo afecta de forma directa la resolucin angular que tiene el haz principal del patrn de radiacin, as como en la carga computacional procesada por el DSP puesto que, a mayor nmero de elementos del arreglo, mayor es el nmero de informacin a procesar.

50

Captulo III. Procedimientos de la investigacin.


Despus de haber configurado el arreglo, se gener la matriz de observaciones

al discretizar las seales que se obtienen de cada sensor. De esta forma, se obtuvo
una matriz de L N donde cada elemento estuvo integrado por un nmero complejo.
Por otro lado, la etapa de muestreo debe realizarse a frecuencias inferiores a
las frecuencias de la onda plana que arriba al arreglo ya que, cuando se realizan
simulaciones para analizar el rendimiento de los DSPs, se debe considerar las limitaciones del hardware (por ejemplo: la velocidad de muestreo de los convertidores
A/D). Por tal motivo, y atendiendo lo recomendado en [17], las seales se analizaron en una frecuencia intermedia (fI ) y, es desde all, donde se realiz la etapa
de muestreo. Para este estudio, la frecuencia intermedia fue de 50MHz y la frecuencia de muestreo se calcul mediante la ecuacin 3.5, atendiendo al criterio de
Nyquist [37].
fs = 3fI = 150MHz

(3.5)

Y a partir de la frecuencia de muestreo, el tiempo de muestreo fue de:


ts = 1/fs 6,67ns

(3.6)

Por otra parte, el trmino s(t) se ha utilizado para describir las seales de informacin que arriban al arreglo. Sin embargo, para conservar la misma notacin, a
partir de ahora cuando se haga referencia a s(t), son las seales que se encuentran
alrededor de fI , esto se describe en la ecuacin 3.7. De esta manera, las seales que
usaron los algoritmos MUSIC y DML, fueron seales de radiofrecuecia trasladadas
a una frecuencia intermedia. La siguiente ecuacin describe la seal que se us para
el problema de estimacin:
s(t) = Ai sin(2fi t)ejfI t

(3.7)

Captulo III. Procedimientos de la investigacin.

51

Antes de calcular la matriz de covarianza, se debe aclarar la expresin de la


ecuacin 3.8.
k=

2
o

(3.8)

donde o es referido a la onda plana. Esta aclaratoria toma lugar porque la


distancia entre los elementos de la antena, mejor conocida como d, tambin est en
funcin de pero, a diferencia de o , ste se encuentra en funcin de la frecuencia
de trabajo nominal del dipolo fd . De esta forma, se tiene la siguiente ecuacin:
kd(l 1) cos(i ) = (l 1)

fpi fi
cos(i )
fd

(3.9)

donde d = 0,5 e i es un ndice que toma valores de 1, 2, . . . , P. La matriz de N


observaciones est compuesta por la siguiente ecuacin:
(3.10)

X = AS + N

donde A toma la siguiente forma:

A=

1
j

fp1 f1
fd

cos(1 )

fp2 f2
fd

..
.
j(L1)

cos(2 )

..
.

fp1 f1
fd

cos(1 )

j(L1)

fp2 f2
fd

cos(2 )

..
.

fp fP
P
fd

cos(P )

..
.
j(L1)

fp fP
P
fd

cos(P )

LP

(3.11)

S se describe, a continuacin, y N es la matriz de ruido AWGN.

0 s1 (ts ) s1 ((N 1)ts )

S=

0 s2 (ts ) s2 ((N 1)ts )


..
..
..
..
.
.
.
.

0 sP (ts ) sP ((N 1)ts )

LP

(3.12)

52

Captulo III. Procedimientos de la investigacin.

3.1.3.

Matriz de Covarianza

Para calcular la matriz de covarianza, se tiene como variable de entrada la matriz de observacin de N muestras (X). La ecuacin 2.27 resulta semejante a la siguiente expresin.
R=

XXH
N

(3.13)

Para obtener precisin en los datos finales, el nmero de muestras (N) estuvo
entre 100 y 500 para el algoritmo MUSIC [7]. Sin embargo, esta condicin hace que
la matriz de observaciones tenga un excesivo consumo de memoria y resulta casi
imposible que todos sus datos puedan estar en la memoria interna de los DSPs. No
obstante, esta matriz se redujo a un vector de L elementos y con ste, se construy
la matriz de covarianza estimada, pero este proceso de optimazacin ser abordado
posteriormente.
La matriz R es la variable de salida del problema de estimacin, despus de haberla calculado, es la que se us como variable de entrada en los algoritmos MUSIC
y DML.

3.2.

Simulaciones.

En esta etapa, inicialmente, se codificaron los algoritmos con las restricciones


impuestas por Embedded MATLAB. Se comenz con la matriz de covarianza, la
cual es usada tanto para MUSIC como para DML. En las Figuras 3.4 y 3.5 se observan los diagramas de flujo de MUSIC y DML, respectivamente. De esta forma,
ambos algoritmos tienen como salida un vector que contiene las posiciones estimadas de las fuentes de inters.
Luego de codificar y confirmar el correcto funcionamiento de los algoritmos,
se procedi a evaluar un conjunto de cinco escenarios para determinar cul era el
comportamiento de ambos. Para el primer escenario, se consider la variacin de
la relacin seal a ruido, manteniendo constante el nmero de muestras.

Captulo III. Procedimientos de la investigacin.

53

Rxx
Declarar
variables
Descomposicin SVD

No

i = 1
j = 1
Un(i,j) = U(i,P+j)

S
j = j+1
S

j <= L - P
No
i = i+1
aux=z; z=g; g=k; k =aux
i <= L
No

Fin
No
Incremento

k = 1

No

k = k+1

S
S g=2
z=1
No

Figura 3.4: Diagrama de flujo del algoritmo MUSIC.

54

Captulo III. Procedimientos de la investigacin.

Rxx
Declarar
variables
i = 1
Inicializar
mnimo

Valor = traza{Proy*Rxx}
S

Valor < mnimo

mnimo = Valor

No
Incremento

S
No

i = i+1
S

i <= P
No

Figura 3.5: Diagrama de flujo del algoritmo DML.

Captulo III. Procedimientos de la investigacin.

55

Para el segundo escenario, se vari el nmero de muestras manteniendo la relacin seal a ruido constante. Seguidamente, el tercer escenario consisti en el comportamiento de MUSIC y DML en condiciones desfavorables, es decir, un nmero
bajo tanto de observaciones como de la relacin seal a ruido. Para el cuarto escenario, se consider distintas portadoras que se encontraban dentro del ancho de
banda del dipolo. Finalmente, para el quinto escenario se evalu la resolucin de
los algoritmos cuando fuentes se localizaban muy prximas entre s.
Segn lo establecido en la seccin 3.1.2, para todos los escenarios, se consider
constante el nmero de dipolos y la distancia entre ellos. Adicionalmente, segn
la seccin 2.2.1.4 se estableci que el nmero de fuentes fuese menor al nmero
de dipolos. Para todos los escenarios, se us MATLAB1 para realizar los grficos
pertinentes. Es menester acotar que, para DML, se requiri un nmero de iteraciones
que dependi del escenario en cuestin.
Para generar cdigo fuente C, de cada funcin perteneciente a los algoritmos
MUSIC y DML, se sigui el procedimiento descrito en la seccin 3.4, mismo que
ser detallado en la seccin 4.4 usando la MATRIZDECOVARIANZA.m. En el proceso
de la conversin, se gener un error de compilacin en cuyo reporte se estableca
que la funcin awgn, que aade ruido AWGN al vector de observaciones, no era
soportada por Embedded MATLAB impidiendo as la generacin de las funcines
C-MEX de ambos algoritmos. Pese a esto, se realiz una funcin llamada Rawgn
con funciones que si soporta Embedded MATLAB (randn, var, sqrt) y que tuvo el
mismo comportamiento de la funcin no soportada awgn.
Por otro lado, para corroborar el correcto funcionamiento de los algoritmos MUSIC y DML en lenguaje C, se utiliz el IDE Code::Blocks. Al ejecutar los dos algoritmos en Code::Blocks se pudo constatar que los archivos generados por Real-Time
Workshop para cada algoritmo no contenan errores. Adems, los valores de las variables de salida de MUSIC y DML fueron similares a los que se obtuvieron desde
el entorno MATLAB.
1

En esta investigacin se us la versin R2010a de MATLAB.

56

Captulo III. Procedimientos de la investigacin.

3.3.

Evaluacin de la respuesta computacional de distintos


DSPs.

En esta etapa, se determin el costo computacional de cada algoritmo, para conocer cunto tiempo se necesita para ser ejecutados por los DSPs, as como los
requisitos de memoria y la precisin de las estimaciones.

3.3.1.

Optimizacin de MUSIC y DML.

La optimizacin del algoritmo MUSIC sigui un proceso sistemtico, ya que


se evaluaron cada una de las etapas que lo integran, incluyendo sus variables de
entrada y de salida. La secuencia que sigue el algoritmo est representado en la
Figura 2.10.
 que entra a ambos algoritEn principio, la matriz de covarianza estimada (R),

mos, se genera al multiplicar la matriz de observaciones X, por el hermitiano de la


misma XH y, luego, se divide este producto entre el nmero de observaciones N.
La generacin de la matriz de observacin X consume una seccin considerable
en la memoria de datos ya que, en MUSIC, para tener buenas estimaciones, se necesitan ms de 100 observaciones. Por lo tanto, si se considera crear una matriz de
covarianza para N = 500 y L = 10, la matriz de observaciones de punto flotante de
simple precisin tiene el siguiente tamaos en bytes:

Tamao en bytes = 500 10 4 2 = 40KB

(3.14)

De la ecuacin 3.14, se tiene que la matriz de observaciones tiene un tamao


de 40KB, el cual es casi la mitad del tamao que ocupan todos los archivos en
lenguaje C del algoritmo MUSIC. En este sentido, se observ que este problema se
poda solucionar si se obedece la secuencia que tiene la ecuacin 2.27, puesto que es
posible realizar la matriz de covarianza para cada una de las observaciones, usando
solo un vector de observacin que se actualice para cada muestra, cuyo tamao

Captulo III. Procedimientos de la investigacin.

57

est en funcin del nmero de dipolos, es decir, se genera la multiplicacin de la


primera observacin, luego se genera la multiplicacin de la segunda observacin y
se suma con la anterior, este proceso se repite sucesivamente hasta llegar al nmero
de muestras deseadas, tal como lo establece la ecuacin 3.15 . Al final, solo resta
dividir toda la sumatoria por el nmero de muestras N.

R|N=500 =


1 
x(1)x(1)H + x(2)x(2)H + . . . + x(500)x(500)H
500

(3.15)

Usando este tipo de secuencia, solo se utiliz un vector cuyo tamao mximo
fue de 40 bytes. Adems, ya que el proceso se realiza en tiempo real, la construccin
de la matriz de covarianza se realiz en paralelo con la toma de observaciones. De
esta forma, se elabor el cdigo de la matriz de covarianza, y se verific que los
resultados fueron los correctos.
En el anlisis del cdigo fuente C de los algoritmos MUSIC y DML, se observ que algunas veces, RTW generaba funciones que son llamadas desde el cdigo
primario, las cuales estn formadas por operaciones matemticas que necesitan los
mismo archivos de cabecera que ya el cdigo primario contiene. Un ejemplo de esto, es la creacin de la funcin exp, la cual est formada solo por las funciones cos y
sin. Teniendo en cuenta lo anterior, se evit el llamado de una funcin codificando

directamente en MATLAB.
Para ambos algoritmos, se cuid de tener variables de gran tamao para que
pudieran ser almacenadas en la memorias internas del ncleo, o los ncleos del
DSP. De esta forma, se mejor el rendimiento de la ejecucin del programa. Todas
las varibles de MUSIC ocuparon aproximadamente un tamao de 2, 8KB.

3.3.2.

Estimacin del tiempo de ejecucin del algoritmo DoA en el DSP.

En esta seccin, se calcula un estimado del tiempo que se debe satisfacer en la


ejecucin del algoritmo DoA, considerando las caractersticas de las seales y la

58

Captulo III. Procedimientos de la investigacin.

configuracin del arreglo que fue definido en la seccin 3.1.2. Dicha estimacin,
servi de referencia para comparar el tiempo que tarda el DSP en ejecutar los algoritmos MUSIC y DML.
En la Tabla 3.2, se resumen todas las variables de inters usadas en este proceso.
Tabla 3.2: Variables de inters.

Parmetros de inters
Nmero de dipolos
Frecuencia del dipolo
Nmero de observaciones
Frecuencia de muestreo
Velocidad del usuario critico
Ancho de media potencia
Zona lejana de la antena

Simbolo
L
fd
N
fs

MP
rzl

Valor
10
850MHz
500
150MHz
90km/h
5
80m

Inicialmente, para el problema de estimacin de DoA, es necesario adquirir las


observaciones. El tiempo para llevar a cabo esto, con 500 observaciones, est definido por la siguiente ecuacin:
t|N=500 = 500ts = 3,33s

(3.16)

Como se mencion en la seccin 3.3.1, la matriz de covarianza se construye


al mismo tiempo que se toman las observaciones. Cuando las fuentes presentan
movilidad, la informacin espacial contenida en las observaciones es vlida para
un pequeo instante de tiempo. La Figura 3.6 sirve de referencia para tener un
estimado del tiempo para el cual un usuario crtico2 sale de una determinada rea
de cobertura.
Considerando un usuario crtico que se desplace por una autopista a una velocidad de 90km/h [38], y adems est ubicado justamente donde inicia la zona lejana
de la antena, que para efectos de esta investigacin corresponde a rzl = 80m, entonces, el tac de la ecuacin 3.17 es el tiempo aproximado que tardara dicho usuario
2

La condicin ms crtica de un sistema de Antena Inteligente, es una fuente que se mueva a una
determinada velocidad.

Captulo III. Procedimientos de la investigacin.

59

Estacin base

Usuario

Usuario
crtico

Figura 3.6: Escenario del usuario crtico

en salir del rea de cobertura. Dicho tiempo puede aproximarse por la siguiente
ecuacin:
tac

x
139ms

(3.17)

Para usuarios que se encuentren a distancias mayores a 80m, el tac siempre


ser mayor. Para que el usuario tenga disponible la potencia del lbulo principal
del patrn de radiacin, las estimaciones de las posiciones de las seales deben actualizarse cada tac . Por tal motivo, a ste se le denomina tiempo de refrescamiento
o de actualizacin de DoA.
El tiempo para el cual se debe realizar la estimacin de DoA, debe ser mucho
menor que tac . De esta manera, se garantiza la actualizacin de la posicin del
usuario, la cual es usada en la etapa de BF, misma que se encarga de trazar los
diagramas de radiacin (DR1 , DR2 , . . . , DRP )
tDoA << tac

(3.18)

60

Captulo III. Procedimientos de la investigacin.


En la Figura 3.7 se ilutra un diagrama de bloque con el tiempo que debe satisfa-

cer el algoritmo DoA.

No

MUSIC

DML

BF

Figura 3.7: Tiempo a satisfascer en la ejecucin del algoritmo DoA.

3.3.3.

Mtodo para el desarrollo de software de sistemas embebidos, Harmony/ESW.

Finalmente, se adopt un mtodo que permite obtener los mejores resultados en


el desarrollo de software embebido, que se denomina Harmony Embedded Software (Harmony/ESW), perteneciente a la familia de procesos Harmony. Este mtodo
consiste en desarrollar un software funcional para despus, a partir de l, depurarlo y mejorarlo progresivamente mediante cambios incrementales, hasta cumplir los
requisitos deseados. Es un procedimiento iterativo, en el que las fases que lo componen se recorren cclicamente de forma que los resultados de un ciclo determinan
las acciones a llevar a cabo en el siguiente, lo que permite aprovechar la experiencia

Captulo III. Procedimientos de la investigacin.

61

recogida para mejorar el diseo en el siguiente ciclo y, de esta manera, realizar una
optimizacin rpida y dinmica [8] [39].
Cabe sealar, que el mtodo iterativo propuesto es un modelo implcito en el
procedimiento general propuesto en la Figura (3.8), en donde cada una de las fases
no se contempla como una etapa cerrada que comienza cuando termina la anterior
sino que, ms bien, cada fase se repite ms de una vez a lo largo del proceso, hasta que se obtenga la aplicacin embebida de acuerdo a los requisitos planteados
inicialmente. En la Figura (3.8) se muestra este procedimiento:

Hacer cambio
incremental

Validar
cambios

No

Requisitos
validados?

Figura 3.8: Mtodo adoptado para desarrollo de software de sistemas embebidos,


Harmony/ESW).

62

Captulo III. Procedimientos de la investigacin.

3.4.

Creacin de un procedimiento general.

En la Figura 3.9 se refleja todo el proceso para la generacin de aplicaciones


embebidas mediante MATLAB, lenguaje C y Code Composer Studio (CCS).
Esta etapa se dividi en varias actividades. Por tal motivo, para abordar cada
una de ellas, se particulariz todo el procedimiento tomando como ejemplo la funcin MATRIZDECOVARIANZA.m para ilustrar los pasos de este proceso de desarrollo.
Dicha funcin fue usada como entrada tanto en MUSIC como en DML.
Todos estos pasos fueron seguidos de la misma manera para la simulacin de
ambos algoritmos, desde su codificacin en MATLAB hasta llegar a CCS para la
evaluacin de la respuesta computacional. Se realizaron optimizaciones a los cdigos teniendo en cuenta los recursos limitados de memoria de los DSPs. El mismo
procedimiento planteado es aplicable a cualquier algoritmo que se desee implementar en aplicaciones embebidas usando DSPs.

MATLAB

Embedded
MATLAB

C-MEX

Error

Depuracin en
Code::Blocks

Simulaciones

Cdigo .c
libre de
plataforma

CCS

Entorno C

IDE de DSP

No
MUSIC.m
DML.m

Proceso de
optimizacin

Real-Time
Workshop

Entorno MATLAB

Figura 3.9: Proceso para la generacin de aplicaciones embebidas mediante


MATLAB, lenguaje C y Code Composer Studio (CCS).

3.4.1.

Modificacin del cdigo en MATLAB con las restricciones interpuestas por Embedded MATLAB.

Una vez verificado el correcto funcionamiento de los cdigos en MATLAB, se


procedi a considerar las restricciones de Embedded MATLAB, esto es, la declaracin de la clase de cada una de las variables, as como el tamao y complejidad las

Captulo III. Procedimientos de la investigacin.

63

mismas. La funcin assert [29], se us para especificar los parmetros de entrada


a las funciones.

3.4.2.

Generacin de cdigo fuente C.

Una de las caractersticas de Embedded MATLAB es que permite la verificacin


del cdigo resultante C, dentro del entorno de MATLAB. Para esto, se usaron las
funciones C-MEX, herramienta que permite realizar esta verificacin. En este paso,
se pudo constatar que no se genera cdigo fuente C libre de plataforma sino que,
ms bien, se crea una funcin C-MEX que est en cdigo C pero que solo puede
ejecutarse desde MATLAB. Por lo tanto, se verific que al traducir el cdigo de
MATLAB a C, el mismo se comportaba de la misma manera, es decir, el algoritmo
no fue alterado a causa de la conversin por lo que la funcin C-MEX realizaba
la misma tarea que la funcin original de MATLAB. Para generar las funciones
C-MEX se utiliz el pragma %#eml para cada una de las funciones que se quiso
comprobar.
Luego, desde la ventana de comando de MATLAB se escribe el comando de la
Tabla 3.3 [8] [30]:

Tabla 3.3: Comando para la generacin de funciones C-MEX.

emlc -o nombrefuncionmex -report nombrefuncion.m -eg {W}

donde:
-o: Indica que se genere funcin C-MEX.
nombrefuncionmex: Es la funcin C-MEX generada.
nombrefuncion.m: Es la funcin original con las restricciones interpuestas por Embedded MATLAB.
-report: Indica que se genere un informe de compilacin.
eg {W}: La entrada de la funcin se especifica mediante un ejemplo en
la variable W, misma que debe ser declarada previamente.

64

Captulo III. Procedimientos de la investigacin.


Cada vez que se present un reporte de error de compilacin, se regres a Em-

bedded MATLAB y se corrigieron los errores reportados. Este procedimiento se


realiz hasta que el proceso de compilacin fuera exitoso. Cabe sealar que para
funciones no soportadas por Embedded MATLAB se presentaron dos alternativas
para solucionar este problema:

1. La funcin no soportada puede declararse como una funcin extrnseca que


se ejecuta desde MATLAB, pero esto tiene como desventaja que no permite la
generacin de cdigo fuente C [29].
2. Hacer un cdigo que tenga la misma caracterstica de la funcin no soportada
bien desde MATLAB o desde C.

Se tom en cuenta que la entrada de la funcin, se especifica mediante una variable que sirve de ejemplo del tipo de parmetros de entrada que ha de tener dicha
funcin. Adicionalmente, se consider que la funcin C-MEX admite como vlidas
solo aquellas entradas que son de la misma longitud, tipo y tamao que la variable
que se utiliz como ejemplo al momento de ser generada.
Seguidamente, la funcin C-MEX generada se llam desde el entorno MATLAB
como si se tratara de cualquier funcin ordinaria de MATLAB. As, sustituyendo la
funcin original por su correspondiente funcin C-MEX se comprob que el cdigo
generado realizaba el mismo propsito que el cdigo original MATLAB.
Una vez verificada la funcin, y a partir del cdigo de Embedded MATLAB, se
procedi a generar el cdigo fuente C junto con los dems archivos necesarios para
su compilacin. Esto se hizo mediante la herramienta Real-Time Workshop [31]. El
motivo por el cual se genera cdigo en lenguaje C, es debido a que CCS trabaja con
este lenguaje, que en este estudio representa el cdigo intermedio.
Desde la ventana de comando de MATLAB, se escribe el comando de la Tabla
3.4 [8] [30]:

donde:

Captulo III. Procedimientos de la investigacin.

65

Tabla 3.4: Comando para la generacin de cdigo fuente C.

emlc -c -T RTW -report nombrefuncion.m -eg {W}

-c: Indica que se genere el cdigo C.


T RTW: Genera el cdigo C embebido y lo compila en una librera.
-report: Indica que se genere un informe de compilacin.
nombrefuncion.m: Es la funcin original con las restricciones interpuestas por Embedded MATLAB.
eg {W}: La entrada de la funcin se especifica mediante un ejemplo en
la variable W, misma que debe ser declarada previamente.
De esta manera, RTW genera un cdigo ptimo para ser utilizado en aplicaciones de tiempo real y sistemas embebidos. Cabe sealar que, para cumplir con estas
condiciones, el cdigo que se ha generado en lenguaje C, no siempre mantendr
la misma estructura del cdigo que se hizo en el lenguaje propio de MATLAB. Entre las modificaciones ms relevantes hechas por Real-Time Workshop, se tiene lo
siguiente [31]:

La clase de las variables que se defini en MATLAB podr cambiar a una clase
ms simple, si la misma no afecta el comportamiento del cdigo.
El nmero de variables definidas en MATLAB se reducir, si no afecta el comportamiento del cdigo.

3.4.3.

Depuracin y validacin del cdigo C resultante.

Se realiz una depuracin al cdigo y una validacin del mismo mediante el


IDE Code::Blocks, una herramienta de acceso libre y multiplataforma que permite
el desarrollo de programas en C. Aun cuando el cdigo generado por Real-Time
Workshop, resulta ptimo para aplicaciones en tiempo real, es conveniente examinar dicho cdigo para que, de ser necesario, se logre una mejor optimizacin.

66

Captulo III. Procedimientos de la investigacin.

3.4.4.

Compilacin de los cdigos en CCS.

Una vez obtenido el cdigo C, de la MATRIZDECOVARIANZA.m, se trabaj en CCS


y se detall el procedimiento para la creacin de un nuevo proyecto, la seleccin de
las tarjetas, la simulacin del algoritmo, el clculo del ciclo de reloj y las configuraciones de memoria necesaria para la compilacin de los cdigos.

Captulo IV

Anlisis, interpretacin y
presentacin de los resultados
4.1.

ANLISIS DEL PROBLEMA DE ESTIMACIN Y LOS


MTODOS MUSIC Y DML.

El problema de estimacin de la direccin de llegada, se concentra en la inferencia de las posiciones angulares de las fuentes de inters que estn dentro del
rea de cobertura de una estacin base. Para efectos de este trabajo, se abord el
problema para un arreglo lineal uniforme de una antena sectorizada, donde cada
arreglo cubre un sector de cobertura de 120 espaciales [5], tal como se muestra en
la Figura 2.2. En este sentido, tomando uno de esos arreglos, las estimaciones solo
son posibles para seales que se encuentren entre 30 y 150 con respecto al eje del
arreglo.
Las seales que arriban al arreglo, pueden presentar movilidad, estar muy cerca
una de la otra, as como tambin estar o no correlacionadas. De esta manera, la
movilidad y la correlacin de las seales complica el problema de estimacin. Por
otro lado, la configuracin del arreglo elegido impone condiciones al tipo de seales
que pueden adquirir, adems influir sobre el nivel computacional al que el DSP
ser sometido, afectando los indicadores como: tiempo de ejecucin, precisin y
67

68

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

memoria. Para el arreglo lineal uniforme de la Figura 3.3, se estiman las posiciones
que varan en . Por otra parte, se tiene que el ancho de banda de los elementos
del arreglo son de banda estrecha, en consecuencia, el ancho de banda donde se
concentra la energa de las seales debe ser mucho menor a la frecuencia de la
portadora usada para la transmisin.
Para construir la matriz de observacin, se debe discretizar la seal que sale
de los sensores, la cual est formada por la superposicin de las seales de inters
y el ruido. En la prctica, este muestreo se realiza a la frecuencia intermedia [17],
lo que amerita que la frecuencia de muestreo deber ser como mnimo, dos veces
la frecuencia intermedia. La matriz de observacin est formada por N vectores
columnas, y L vectores filas.
Luego que la matriz de observaciones fue sido construida, la misma fue la variable de entrada que necesita la etapa encargada de construir la matriz de covarianza,
con la cual se pudo obtener la covarianza entre los elementos pertenecientes a la
agrupacin de la antena, que contiene informacin de las seales y el ruido.

4.1.1.

MUSIC Y DML.

Existen muchos algoritmos que son usados para abordar el problema de estimacin, los cuales se encuentran clasificados en tres familias o subconjuntos. En primer lugar, existen los mtodos convencionales, donde el proceso se basa en hacer
un barrido electrnico del lbulo principal del arreglo para detectar las direcciones
de mxima potencia. Por tal motivo, este mtodo es el que se utiliza en la tecnologa
de haz conmutado y no es primordial contar con una unidad de DSP. El segundo
mtodo, se basa en la descomposicin espectral de la matriz de covarianza para
estimar las direcciones de llegada de las fuentes y las frecuencias de las seales.
De manera que las propiedades intrnsecas de la eigen estructura de la matriz de
covarianza son utilizadas para resolver el problema de estimacin. En el tercer mtodo, se encuentran los estimadores de Mxima Verosimilitud, siendo estos, uno de
los ms ptimos ya que estiman con mayor precisin los ngulos de llegada, aun
cuando se encuentren en ambientes de baja relacin seal a ruido (SNR) o cuenten

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

69

con un nmero pequeos de observaciones (N) de las seales que arriban a cada
sensor de la antena. En consecuencia, la estimacin est basada en la teora de la
inferencia estadsticas de las seales el cual utiliza un conjunto de observaciones
del arreglo de antena lo que maximiza el logaritmo de la funcin de verosimilitud.
De esta manera, sta es la funcin de probabilidad conjunta de los datos obtenidos
dado un conjunto de direcciones de arribo [1] [5].
En fin, de los tres mtodos que se nombran anteriormente, los ltimos se utilizan
para un sistema de Antena Inteligente con tecnologa de haz adaptativo, donde una
unidad de procesamiento digital de seales es requerida.
Con el propsito de evaluar la respuesta computacional de la unidad de DSP,
se seleccionaron dos algoritmos donde uno represent a los mtodos basados en
subespacio y, el otro, a los mtodos de Mxima Verosimilitud para obtener resultados que permitan tener conclusiones con un mayor alcance, esto es, la respuesta
del DSP en:

Ambientes favorables utilizando algoritmos basados en subespacios.


Ambientes desfavorables utilizando algoritmos basados en los estimadores
de Mxima Verosimilitud.

De esta manera, MUSIC es el que se ha seleccionado para representar a los mtodos basados en subespacio y DML para representar los mtodos de Mxima Verosimilitud. En la siguiente seccin, se inicia con un conjunto de simulaciones en
el entorno de MATLAB. Cabe sealar que todos los resultados fueron validados en
lenguaje C usando el IDE Code::Blocks.

4.2.

SIMULACIONES.

En esta seccin, se muestran las simulaciones de MUSIC y DML realizadas en


MATLAB despus de haber realizado la codificacin de ambos algoritmos. Adicionalmente, se consideraron las restricciones impuestas por Embedded MATLAB y

70

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

se verific el correcto funcionamiento de los algoritmos desde MATLAB. Posteriormente, se procedi a realizar varias simulaciones de ambos algoritmos en diferentes
escenarios.
Para las grficas de MUSIC se usaron coordenadas cartesianas. De esta manera,
cada grfico contiene los mximos del espectro MUSIC, donde el eje horizontal
representa los ngulos, mientras que el eje vertical corresponde a los mximos en
dB.

Por otra parte, DML requiere un nmero de iteraciones para converger a los valores reales de las posiciones de inters, que dependi del escenario en cuestin
(nmero de muestras, relacin seal a ruido, proximidad entre las direcciones de
llegada, frecuencia de portadoras). En este sentido, el eje horizontal corresponde a
los ngulos, mientras que el eje vertical corresponde al nmero de iteraciones. En la
Tabla 4.1 se resumen los datos de las variables de entrada a los algoritmos MUSIC
y DML.
Tabla 4.1: Variables de entrada para evaluar los algoritmos MUSIC y DML.

Variables de entrada de MUSIC y DML


Separacin entre dipolos
Nmero de dipolos
Frecuencia del dipolo
Separacin entre portadoras
Nmero de fuentes
Posiciones de las seales

4.2.1.

Smbolo
d
L
fd
f
P

Valor
0,5
10
850MHz
1MHz
5
[30 42 50 79 145]

Escenario 1: Comportamiento de MUSIC y DML variando (SNR).

A continuacin, se presentan las grficas de ambos algoritmos, para un nmero


de observaciones N = 500, y una variacin de la relacin seal a ruido de 30dB a
0dB en pasos de 10dB.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

71

Grficas de MUSIC:

La Figura 4.1 muestra los mximos del espectro MUSIC para una SNR de 30dB.
Por otro lado, la Figura 4.2 corresponde a una SNR de 20dB. Por su parte, la Figura
4.3 corresponde a una SNR de 10dB mientras que la Figura 4.4 corresponde a una
SNR de 0dB. Por otro lado, la Tabla 4.2 muestra los resultados de la media y la

varianza de las posiciones estimadas para una SNR de 10dB.


50

Max de MUSIC (dB)

40 37.86

= 30 42 50 79 145

40.72
36.69
32.49

30
18.38

20
10
0
9.50

9.63

97

109

10
20

30

42

50

79

9.51

122

145

Figura 4.1: Mximos del espectro MUSIC con SNR = 30dB.

En el primer escenario, se mantuvo el nmero de muestras en 500 y se vari la


relacin seal a ruido. Para MUSIC se obtienen estimaciones exactas para una SNR
de 30dB y 20dB. Por otro lado, a medida que disminuye la relacin seal a ruido, las
estimaciones de MUSIC pierden precisin. En este sentido, para una SNR = 10dB
se calcul la media y la varianza de las estimaciones como se muestra en la Tabla
4.2. Para este caso, en promedio los resultados de las estimaciones se encuentran
alrededor de los valores reales y existe una variabilidad mnima en los datos estimados. Por ltimo, para una SNR = 0dB las estimaciones de MUSIC pierden precisin, debido a que la informacin espacial contenida en la matriz de covarianza
ha sido contaminada con un alto nivel de ruido. En este sentido, no fue posible
calcular la media y la varianza para este caso ya que en ocasiones algunos ngulos
no eran estimados, lo que confirma la hiptesis que establece que en condiciones

72

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

de bajo SNR el algoritmo MUSIC pierde precisin. Por tal motivo, para compensar
esta prdida se debe aumentar el nmero de muestras.
50
= 30 42 50 79 145

Max de MUSIC (dB)

40

36.13

32.11

32.03

30

29.82
18.58

20
10
0
9.51

9.63

9.51

97

109

122

10
20

30

42

50

79

145

Figura 4.2: Mximos del espectro MUSIC con SNR = 20dB.

Max de MUSIC (dB)

30 26.88

= 30 42 50 79 145
26.35

26.11
22.83
17.76

20

10

0
9.52

10

20

30

43

49

79

97

9.62

109

9.53

122

Figura 4.3: Mximos del espectro MUSIC con SNR = 10dB.

145

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

73

Tabla 4.2: Media y varianza de MUSIC con SNR = 10dB.

Estimaciones
30

43

49

79

145

31

43

50

79

143

30

42

51

79

143

31

42

50

79

143

31

42

50

79

143

Media

30,60

42,40

50,00

79,00

143,40

Varianza

0,30

0,30

0,50

0,80

25

= 30 42 50 79 145

Max de MUSIC (dB)

20
17.02
15

11.93

11.10

11.21

10
5
0
5

8.75

9.50

10
15
20

32

48

79

99

121

144

Figura 4.4: Mximos del espectro MUSIC con SNR = 0dB.

Grficas de DML:
La Figura 4.5 muestra las estimaciones de DML para una SNR de 30dB y tres
iteraciones. Por su parte, la Figura 4.6 corresponde a una SNR de 20dB con tres
iteraciones. Por otro lado, la Figura 4.7 corresponde a una SNR de 10dB con cuatro
iteraciones mientras que la Figura 4.8 corresponde a una SNR de 0dB con cuatro
iteraciones. Por ltimo, la Tabla 4.3 muestra los resultados de la media y la varianza

74

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

de las posiciones estimadas para una SNR de 0dB en cuyo caso las estimaciones se

Nro de iteraciones de DML

realizaron con cuatro iteraciones.

2
Iteracin 1 = 45, 33, 79, 144, 48
Iteracin 2 = 42, 31, 79, 145, 50
Iteracin 3 = 42, 30, 79, 145, 50
1

30

42

50

79

145

Nro de iteraciones de DML

 por DML con SNR = 30dB.


Figura 4.5: ngulos estimados ()

2
Iteracin 1 = 45, 33, 79, 144, 48
Iteracin 2 = 42, 31, 79, 144, 50
Iteracin 3 = 42, 30, 79, 145, 50
1

30

42

50

79

 por DML con SNR = 20dB.


Figura 4.6: ngulos estimados ()

145

Nro de iteraciones de DML

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

75

2
Iteracin 1 = 45, 33, 79, 144, 48
Iteracin 2 = 43, 31, 79, 145, 50
Iteracin 3 = 43, 30, 79, 145, 50
Iteracin 4 = 42, 30, 79, 145, 50

1
30

42

50

79

145

Nro de iteraciones de DML

 por DML con SNR = 10dB.


Figura 4.7: ngulos estimados ()

2
Iteracin 1 = 44, 33, 79, 144, 49
Iteracin 2 = 45, 30, 145, 80, 49
Iteracin 3 = 41, 32, 144, 79, 50
Iteracin 4 = 47, 30, 79, 145, 44

1
30

42

50

79

 por DML con SNR = 0dB.


Figura 4.8: ngulos estimados ()

145

76

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.3: Media y varianza de DML con SNR = 0dB.

Estimaciones
30

44

47

79

145

30

45

52

79

143

30

40

51

80

143

30

37

50

79

143

30

40

49

79

143

Media

30,00

41,20

49,80

79,20

143,40

Varianza

10,70

3,70

0, 2

0,80

Para el caso de DML, con 30dB y 20dB se necesit realizar tres iteraciones para
que los valores estimados pudiesen converger a los valores reales. No obstante,
para una SNR de 10dB, se hizo uso de una cuarta iteracin, necesaria para obtener
una estimacin sin error. Por ltimo, en el caso de 0dB con cuatro iteraciones existe
un pequeo error en la estimacin. Por tal razn, se calcul la media y la varianza
de las posiciones estimadas y se observ que en promedio los resultados de las
estimaciones se encuentran alrededor de los valores reales y existe una variabilidad
mnima en las posiciones estimadas. De esta manera, se confirma que para bajos
niveles de relacin seal a ruido, el algoritmo DML estima de manera ms precisa
que MUSIC.

4.2.2.

Escenario 2: Comportamiento de MUSIC y DML variando el nmero de observaciones (N).

Ahora, se presentan grficos para un valor constante de SNR = 30dB y una variacin de N = 500, 200, 100, 10.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

77

Grficas de MUSIC:
La Figura 4.9 muestra los mximos del espectro MUSIC para un nmero de
muestras N = 500. Por otro lado, la Figura 4.10 corresponde a un nmero de observaciones N = 200. Por su parte, la Figura 4.11 corresponde a un nmero de
muestras igual a 100 mientras que la Figura 4.12 corresponde a N = 10.
50

Max de MUSIC (dB)

40 37.86

= 30 42 50 79 145

40.72
36.69
32.49

30
18.38

20
10
0
9.50

9.63

97

109

10
20

30

42

50

79

9.51

122

145

Figura 4.9: Mximos del espectro MUSIC con N = 500.

50

= 30 42 50 79 145

Max de MUSIC (dB)

40 35.70

37.70
33.28

30

30.75
18.73

20
10
0
9.49

9.62

9.52

109

122

10
20

30

42

50

79

97

Figura 4.10: Mximos del espectro MUSIC con N = 200.

145

78

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Max de MUSIC (dB)

40

= 30 42 50 79 145

37.93
33.89

32.93

32.26

30
18.51

20
10
0
9.49

9.61

97

110

9.53

10
20

30

42

50

79

123

145

Figura 4.11: Mximos del espectro MUSIC con N = 100.

= 30 42 50 79 145

Max de MUSIC (dB)

2.71

2
0
2
4

4.13
4.96

6
8.71

8
10

48

79

98

8.01

115

145

Figura 4.12: Mximos del espectro MUSIC con N = 10.

En el segundo escenario, se mantuvo la SNR constante en 30dB y se vari el


nmero de muestras. En este sentido, respecto a MUSIC, N igual a 500 es la misma condicin de la Figura 4.9 del primer escenario, analizado anteriormente. Por
otra parte, para N igual a 200 y 100 se obtienen, de igual forma, estimaciones exactas que son similares a las obtenidas con 500 observaciones indicando que, en un

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

79

margen entre 500 a 100 muestras, la diferencia entre estas estimaciones radica slo
en la potencia de sus mximos. Por ltimo, para 10 observaciones MUSIC pierde
resolucin considerablemente que provoca estimaciones errneas. En este sentido,
no fue posible realizar un anlisis estadstico de la media y la varianza pues las
estimaciones no eran certeras.
Grficas de DML:
La Figura 4.13 muestra las estimaciones de DML para un nmero de observaciones de 500 con tres iteraciones. Por su parte, la Figura 4.14 corresponde a un
nmero de 200 muestras con tres iteraciones. Por otro lado, la Figura 4.15 corresponde a N = 100 con tres iteraciones mientras que la Figura 4.16 corresponde a un
nmero de 10 observaciones con cuatro iteraciones. Por ltimo, la Tabla 4.4 muestra los resultados de la media y la varianza de las posiciones estimadas para 10

Nro de iteraciones de DML

observaciones en cuyo caso las estimaciones se realizaron con cuatro iteraciones.

2
Iteracin 1 = 45, 33, 79, 144, 48
Iteracin 2 = 42, 31, 79, 145, 50
Iteracin 3 = 42, 30, 79, 145, 50
1

30

42

50

79

 por DML con N = 500.


Figura 4.13: ngulos estimados ()

145

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Nro de iteraciones de DML

80

2
Iteracin 1 = 45, 33, 79, 144, 48
Iteracin 2 = 42, 31, 79, 145, 50
Iteracin 3 = 42, 30, 79, 145, 50
1

30

42

50

79

145

Nro de iteraciones de DML

 por DML con N = 200.


Figura 4.14: ngulos estimados ()

2
Iteracin 1 = 45, 34, 144, 79, 48
Iteracin 2 = 40, 30, 145, 79, 50
Iteracin 3 = 42, 30, 145, 79, 50
1

30

42

50

79

 por DML con N = 100.


Figura 4.15: ngulos estimados ()

145

Nro de iteraciones de DML

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

81

Iteracin 1 = 48, 143, 80, 36, 77


Iteracin 2 = 48, 144, 83, 38, 78
Iteracin 3 = 47, 144, 82, 39, 77
Iteracin 4 = 47, 144, 52, 32, 79

1
30

42

50

79

145

 por DML con N = 10.


Figura 4.16: ngulos estimados ()

Tabla 4.4: Media y varianza de DML con N = 10.

Estimaciones
32

47

52

79

145

30

42

50

79

143

30

43

50

80

143

30

41

50

79

143

30

42

50

79

143

Media

30,40

43,00

50,40

79, 00

143,40

Varianza

0, 80

5, 50

0,80

0,80

En lo que respecta a DML, igual que en el escenario anterior, se necesit un


nmero de iteraciones para converger a los ngulos reales. Con un nmero de observaciones de 500, 200 y 100, fue necesario realizar tres iteraciones para que las
estimaciones convergieran a los valores reales. Por otro lado, para 10 observaciones
se necesit una cuarta iteracin, para obtener los ngulos estimados con un mnimo
error. Por tal motivo, se calcul la media y la varianza de las posiciones estimadas

82

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

y se observ que en promedio los resultados de las estimaciones se encuentran alrededor de los valores reales y existe una variabilidad mnima en las posiciones
estimadas. De esta manera, se confirma que para bajo nmero de muestras, el algoritmo DML estima de manera ms precisa que MUSIC.

4.2.3.

Escenario 3: Comportamiento de MUSIC y DML en condiciones


desfavorables.

En este caso, se evalu ambos algoritmos en condiciones desfavorables, con un


SNR = 10dB y un nmero de observaciones N = 10.

Grfica de MUSIC:
La Figura 4.17 muestra los mximos del espectro MUSIC en condiciones desfavorables.
1

Max de MUSIC (dB)

= 30 42 50 79 145
2.31
2.97

3
4

4.60
5
6
7.12
7
8.18

8
9

56

74

94

109

142

Figura 4.17: Mximos del espectro MUSIC en ambiente desfavorable.

En el tercer escenario, se evalu el comportamiento de ambos algoritmos en


condiciones desfavorables, es decir, para una SNR de 10dB, y un nmero de 10
observaciones. En el caso del algoritmo MUSIC, las estimaciones no son favorables
lo que confirma la hiptesis que establece que en condiciones de bajo nivel de SNR

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

83

y/o pocas muestras, el algoritmo pierde precisin. En este sentido, no fue posible
calcular la media y la varianza para este caso ya que no se producan estimaciones
certeras. Por tal motivo, para compensar esta prdida se debe aumentar el nmero
de muestras.
Grfica de DML:
La Figura 4.18 muestra las estimaciones de DML en condiciones desfavorables
con cuatro iteraciones. Por otro lado, la Tabla 4.5 muestra los resultados de la media
y la varianza de las posiciones estimadas en cuyo caso las estimaciones se realizaron

Nro de iteraciones de DML

con cuatro iteraciones.

Iteracin 1 = 144, 80, 59, 30, 49


Iteracin 2 = 144, 36, 80, 51, 58
Iteracin 3 = 46, 146, 79, 36, 113
Iteracin 4 = 145, 47, 80, 124, 32

1
30

42

50

79

 por DML en ambiente desfavorable.


Figura 4.18: ngulos estimados ()

145

84

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.5: Media y varianza de DML con N = 10.

Estimaciones
32

47

80

124

145

34

47

80

99

145

35

47

66

80

145

40

41

53

78

145

35

47

67

80

143

30

42

50

79

143

Media

35,20

45,80

69,20

92, 20

144,60

Varianza

8, 70

7, 20

127, 70

389, 20

0,80

Para el caso de DML, sin embargo, independientemente del nmero de iteraciones que se realicen, los valores estimados nunca llegan a converger a los valores
reales. Por tal razn, se calcul la media y la varianza como se muestra en la Tabla
4.5. En este sentido, las estimaciones no son favorables puesto que algunos ngulos estimados en promedio no estn cercanos a los valores reales, en cuyo caso la
varianza para estas estimaciones es alta, lo que indica que para bajo nmero de
muestras aunado a la baja relacin seal a ruido, las estimaciones de DML pierden
precisin.

4.2.4.

Escenario 4: Comportamiento de MUSIC y DML para distintas portadoras que se encuentran dentro del ancho de banda del dipolo.

A continuacin, se presentan los resultados del comportamiento de ambos algoritmos para distintas frecuencias de portadora, para un SNR y N dados, tal como
se observa en la Tabla 4.6.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

85

Tabla 4.6: Distintas frecuencias de portadora.

Variables de entradas de MUSIC y DML


Frecuencias de las portadoras
Relacin Seal a Ruido
Nmero de observaciones

Smbolo
fp
SNR
N

Valor
[790 838]MHz
30dB
1000

Grfica de MUSIC:
La Figura 4.19 presenta los mximos del espectro MUSIC para distintas frecuencias de portadora. Por otro lado, la Tabla 4.7 muestra el clculo de la media y la
varianza para las estimaciones de MUSIC en este escenario.
50

= 30 42 50 79 145

45.57
37.88

Max de MUSIC (dB)

40
30.46
30

18.31

20

16.01

10
0
9.51

10
20

31

44

52

80

98

9.58

114

140

Figura 4.19: Mximos del espectro MUSIC para distintas frecuencias de portadoras.

86

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.7: Media y varianza de MUSIC para distintas frecuencias de portadoras.

Estimaciones
31

44

52

80

140

30

42

51

79

143

30

42

51

79

143

30

42

51

79

143

30

42

51

79

143

Media

30,20

42,40

51,20

79, 20

142,40

Varianza

0, 20

0, 80

0, 20

0, 20

1, 80

El cuarto escenario, consisti en portadoras de distintas frecuencias. En la Figura 4.19 se aprecia como el algoritmo MUSIC no estima de manera exacta. No
obstante, en la Tabla 4.7 se aprecia que las estimaciones se concentran alrededor del
valor promedio con una variabilidad mnima en los datos. Por otro lado, el mayor
error de estimacin se encuentra en la seal que arriba con = 145 , por ser quien
tiene una frecuencia de portadora que se encuentra ms lejos de fd . En la Tabla 4.8
se expone la frecuencia portadora de cada una de las seales.
Tabla 4.8: Frecuencias portadora de las seales.

Seales
s1 (t)
s2 (t)
s3 (t)
s4 (t)
s5 (t)

30
42
50
79
145

fp
838MHz
826MHz
814MHz
802MHz
790MHz

De esta manera, este error de estimacin est presente pues el ancho de banda
del dipolo es de banda angosta. Por otro lado se tiene que, en el vector de direccionamiento, el asociado al nmero de onda (k) es igual al que corresponde al
dipolo, de tal manera que se cumple la siguiente ecuacin:
/o = 1

(4.1)

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

87

Grfica de DML:
La Figura 4.20 presenta las estimaciones de DML para distintas frecuencias de
portadora. Por otro lado, la Tabla 4.9 muestra el clculo de la media y la varianza

Nro de iteraciones de DML

para las estimaciones de DML en este escenario.

2
Iteracin 1 = 45, 33, 140, 79, 54
Iteracin 2 = 46, 30, 141, 80, 56
Iteracin 3 = 45, 30, 140, 80, 55
1

30

42

50

79

145

 por DML para distintas frecuencias de portaFigura 4.20: ngulos estimados ()


doras.

Tabla 4.9: Media y varianza de DML para distintas frecuencias de portadoras.

Estimaciones
30

45

55

80

140

31

44

52

80

140

31

44

52

80

140

31

44

52

80

140

31

44

52

80

140

Media

30,80

44,20

52,60

80, 00

140,00

Varianza

0, 20

0, 20

1, 80

Para el caso de DML, independientemente del nmero de iteraciones que se

88

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

realicen, los valores estimados nunca llegan a converger a los valores reales de manera exacta. No obstante, de la Tabla 4.9 que en promedio los valores estimados
se encuentran alrededor de los valores reales, con una mnima variabilidad en los
datos.

4.2.5.

Escenario 5: Comportamiento de MUSIC y DML con fuentes muy


prximas entre s.

A continuacin, se modificaron los ngulos de llegada, para representar fuentes


que se encuentran prximas entre s. De esta manera, se presentan los resultados
del comportamiento de ambos algoritmos para un SNR y N dados, tal como se
observa en la Tabla 4.10.
Tabla 4.10: Modificacin de variables para fuentes prximas entre s.

Variables de entradas de MUSIC y DML


Posiciones de las seales
Relacin Seal a Ruido
Nmero de observaciones

Smbolo

SNR
N

Valor
[55 60 65 70 75]
30dB
1000

Grfica de MUSIC:
La Figura 4.21 presenta los mximos del espectro MUSIC para fuentes prximas
entre s. Por otro lado, la Tabla 4.11 muestra el clculo de la media y la varianza para
las estimaciones de MUSIC en este escenario.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

20 18.0076

Max de PMUSIC (dB)

= 55 60 65 70 75

15.3081 16.1829

15

89

10.2425 11.4477

10
5
0
5
10
15
20

16.8168
55

61

66

71

76

17.3960

107

138

Figura 4.21: Mximos del espectro MUSIC con fuentes prximas entre s.

Tabla 4.11: Media y varianza de MUSIC para fuentes prximas entre s.

Estimaciones
55

61

66

71

76

55

61

65

71

75

55

60

66

69

76

55

60

66

70

75

55

61

65

69

75

Media

55,00

60,60

65,60

70, 00

75,40

Varianza

0, 30

0, 30

1, 00

0, 30

En el quinto escenario, se realiz la evaluacin de la resolucin de los algoritmos, en un ambiente favorable con 1000 muestras y 30dB de relacin seal a ruido.
De esta manera, se consideraron fuentes que se encontraban angularmente muy
prximas entre s. Para el caso de MUSIC, la estimacin que realiza no converge a
los valores reales de manera exacta. No obstante, en la Tabla 4.11 se observa que en
promedio los valores estimados tienden a aproximarse a los valores reales con una
mnima variabilidad en los datos.

90

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Grfica de DML:
La Figura 4.22 presenta las estimaciones de DML para fuentes que se encontra-

ban prximas entre s.


De esta manera, para el caso de DML, la resolucin en este escenario es mayor
que la de MUSIC estimando, para cuatro iteraciones, la ubicacin de las fuentes de

Nro de iteraciones de DML

manera precisa.

Iteracin 1 = 61, 74, 55, 73, 66


Iteracin 2 = 62, 75, 55, 72, 66
Iteracin 3 = 59, 75, 55, 71, 65
Iteracin 4 = 60, 75, 55, 70, 65

1
55

60

65

70

75

 por DML con fuentes prximas entre s.


Figura 4.22: ngulos estimados ()

En otro orden de ideas, el anlisis del algoritmo MUSIC se realiza con la curva
generada por el espectro MUSIC. Dicho espectro se encuentra en funcin de , la
cual vara dentro de un dominio angular [min , max ] que contiene las direcciones
de llegada.
En la Figura 4.23 se presenta, a modo ilustrativo, un tpico espectro1 MUSIC. A
diferencia de sta, en la presente investigacin slo se han graficado, para los cinco
escenarios, los mximos que se generan en el espectro del algoritmo MUSIC ya que,
slo es de nuestro inters, obtener el vector que contiene los DoAs de las fuentes.
1

Para N = 500 y SNR = 30dB.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

91

50

PMUSIC (dB)

40

30

20

10

10

30

42

50

79

145

Figura 4.23: Espectro MUSIC.

Por otro lado, es importante acotar que los mximos que se generaron en el
espectro MUSIC con un nivel de potencia muy bajo se consideraron que estn inmersos en una plataforma de ruido. De acuerdo a las simulaciones efectuadas, se
ignoraron aquellos mximos que se encuentran por debajo de 5dB.
De esta manera, se han presentado cinco escenario en los que se ha podido evaluar el comportamiento de MUSIC y DML. Para el caso de DML, se necesit un
nmero de iteraciones del cdigo que dependi del escenario en cuestin, esto confirma lo estudiado en la seccin 2.2.3, acerca de los mtodos de Mxima Verosimilitud, respecto a la exigencia de una mayor carga computacional.
Luego de simular los algoritmos MUSIC y DML, se gener el cdigo C de cada uno de ellos siguiendo el procedimiento descrito en la seccin 4.4. Una de las
ventajas de trabajar de esta manera, fue el generar cdigo C a partir de MATLAB
sin codificar directamente en C, lo que representa una herramienta para verificar y
realizar pruebas de los algoritmos. Por otro lado, el tiempo de codificacin y validacin de los cdigos se hace mucho ms rpido si se realiza de esta manera.
Por ltimo, posterior a realizar la depuracin respectiva de MUSIC y DML, se
validaron los resultados en el IDE Code::Blocks, para los distintos escenarios, lo

92

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

que proporciona cdigos fuente C libres de plataforma, los cuales pueden ser introducidos en los simuladores de DSPs para evaluar la respuesta computacional de
distintas plataformas cuando trabajan con estos algoritmos.

4.3.

EVALUACIN DE LA RESPUESTA COMPUTACIONAL


DE PROCESADORES DIGITALES DE SEAL (DSPs).

En la seccin 4.3.1 se realizaron las simulaciones en CCS para distintas plataformas de la familia C6000 (C672x, C674x y C64xx) de Texas Instruments (TI), cuya
compilacin se ha llevado a cabo en modo debug. Esto con el fin de verificar el correcto funcionamiento de los algoritmos que se cargan en la imagen de hardware
virtual de cada plataforma y, adicionalmente, ubicar cada seccin del cdigo en los
bancos de memoria dispuestos en el DSP. De esta manera, se calcul el nmero de
ciclos de reloj, precisin en las estimaciones y requisitos de memoria, tanto de la
matriz de covarianza como de los algoritmos MUSIC y DML. Posterior a esto, en la
seccin 4.3.2, una segunda simulacin fue efectuada en modo release en las plataformas C672x, C674x y C66xx para eliminar toda la informacin adicional que se
tiene en modo debug y obtener cdigos con una mayor optimizacin permitiendo,
de esta forma, una ejecucin ms rpida. En todas las pruebas se ha mantenido
constante el SNR en 30dB.

4.3.1.

Simulaciones en Code Composer Studio (CCS).

Para las plataformas C672x y C674x se ha variado el nmero de observaciones


en N = 500, 200, 100 para ambos algoritmos. En el caso de la plataforma C64xx, solo
se realiz la simulacin de MUSIC con 100 observaciones.
ALGORITMO MUSIC:
A continuacin, se presentan los ciclos de reloj de la matriz de covarianza y el
algoritmo MUSIC para las plataformas de DSPs. Adems, se muestran tablas de
las estimaciones y de los requisitos de memoria.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

93

Resultados de los ciclos de reloj:


La Tabla 4.12, Tabla 4.13 y Tabla 4.14 presentan resultados de los ciclos de reloj
con N = 500, N = 200 y N = 100 respectivamente usando las plataformas C672x y
C674x. Adicionalmente, la plataforma C64xx es incluida para N = 100.
Tabla 4.12: Ciclos de reloj de la matriz de covarianza y MUSIC con 500 observaciones.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

80477288

80117542

SVD

647989

629898

Mximo

5211098

5068011

86336375

85815451

MUSIC

Total ciclos de reloj

Tabla 4.13: Ciclos de reloj de la matriz de covarianza y MUSIC con 200 observaciones.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

31898613

31752438

SVD

640752

622544

Mximo

5209364

5068192

37748729

37443174

MUSIC

Total ciclos de reloj

94

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.14: Ciclos de reloj de la matriz de covarianza y MUSIC con 100 observaciones.

C672x

C674x

C64xx

Funcin

Ciclos de reloj

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

15942368

15858711

169632553

SVD

662572

644313

3498824

Mximo

5208293

5068141

27418478

21813233

21571165

200549855

MUSIC

Total ciclos de reloj

Se realiz el clculo de los ciclos de reloj de la matriz de covarianza y MUSIC


para 500, 200 y 100 observaciones. En este sentido, a medida que el nmero de observaciones disminuye tambin lo hace los ciclos de reloj. De esta manera, para la
plataforma C672x se registr con 200 observaciones una disminucin de 128, 71 %
del total de ciclos de reloj respecto a la misma plataforma con 500 observaciones.
Por otro lado, para la misma plataforma con 100 observaciones hubo una disminucin del 295, 798 % del total de ciclos de reloj respecto al total de ciclos de reloj
registrados con 500 muestras.
Por su parte, para la plataforma C674x se registran porcentajes similares, por lo
que la comparacin que se har a continuacin ser respecto a la plataforma C672x.
De esta manera, con 500 observaciones se registr una disminucin en los ciclos
de reloj del 0, 6 % para la plataforma C674x respecto a la C672x. Por otro lado, con
200 observaciones se registr una disminucin en los ciclos de reloj del 0, 81 % para

la plataforma C674x respecto a la C672x. Finalmente, con N = 100 se registr una


disminucin en los ciclos de reloj del 1, 12 % para la plataforma C674x respecto a la
C672x.
Por ltimo, la plataforma C64xx ofrece un alto nmero de ciclos de reloj. Por tal
razn, la misma no fue usada para el clculo del tiempo de ejecucin de DoA hecho
en la seccin 4.3.2.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

95

Resultados de las estimaciones:


La Tabla 4.15, Tabla 4.16 y Tabla 4.17 presentan resultados de las estimaciones
con N = 500, N = 200 y N = 100 respectivamente usando las plataformas C672x y
C674x. Adicionalmente, la plataforma C64xx es incluida para N = 100.
Tabla 4.15: Resultados de la estimacin de MUSIC con 500 observaciones.

C672x

C674x

[30, 42, 50, 79, 145]

[30, 42, 50, 79, 145]

Tabla 4.16: Resultados de la estimacin de MUSIC con 200 observaciones.

C672x

C674x

[30, 42, 50, 79, 145]

[30, 42, 50, 79, 145]

Tabla 4.17: Resultados de la estimacin de MUSIC con 100 observaciones.

C672x

C674x

C64xx

[31, 42, 50, 79, 145]

[31, 42, 50, 79, 145]

[31, 42, 50, 79, 145]

De acuerdo a las simulaciones efectuadas en la seccin 4.2, se concluy que


con una SNR igual a 30dB y para un nmero de observaciones entre 100 y 500 las
estimaciones de MUSIC convergan a los valores reales. En este sentido, la Tabla
4.15, Tabla 4.16 y la Tabla 4.17 confirma el anlisis hecho previamente usando las
plataformas de DSPs.
Requisitos de memoria:
La Tabla 4.18 muestra los requisitos de memoria para las plataformas C672x,
C674x y C64xx. Cabe sealar que la compilacin se ha hecho en modo debug.

96

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.18: Requisitos de memoria del algoritmo MUSIC.

Memoria

C672x

C674x

C64xx

MUSIC.out (KB)

198, 305

182, 651

266, 432

MUSIC.map (KB)

48, 420

38, 740

85, 736

Para el algoritmo MUSIC, los requisitos de memoria se muestran en la Tabla


4.18. Cabe sealar que debido a las modificaciones hechas al cdigo, el consumo
de memoria es independiente del nmero de observaciones N ya que se us un
solo vector que se actualiz para cada observacin y cuya dimensin estuvo en
funcin del nmero de dipolos. El .out es un ejecutable mientras que el .map es
un archivo donde se encuentra el mapa de la memoria del programa. All se halla
informacin sobre el consumo de memoria referente a cada seccin del cdigo, las
funciones perteneciente a la librera usada, el consumo de la pila, entre otros. De
esta manera, a travs de la informacin del archivo .map se calcul el consumo total
de memoria del programa cuando se corri en los simuladores correspondientes a
las plataforma C672x, C674x y C64xx de Texas Intruments.
Por lo tanto, a partir de la Tabla 4.18 del archivo .map, hubo una disminucin
en el consumo de memoria del 24, 98 % de la plataforma C674x respecto a la C672x.
Por otro lado, hubo un aumento en el consumo de memoria del 77, 06 % de la plataforma C64xx respecto a la C672x.
ALGORITMO DML:
A continuacin, se presentan los ciclos de reloj de la matriz de covarianza y el algoritmo DML para las plataformas de DSPs; se presentan resultados para distintos
nmero de observaciones. Cabe sealar que para este algoritmo se necesit un nmero de iteraciones para que las estimaciones convergieran a los valores reales. Por
otro lado, se muestran tablas de las estimaciones y de los requisitos de memoria.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

97

Resultados de los ciclos de reloj:


Para N = 500 la Tabla 4.19, Tabla 4.20 y Tabla 4.21 presentan resultados de los
ciclos de reloj para una, dos y tres iteraciones respectivamente. Por otro lado, para
N = 200 la Tabla 4.22, Tabla 4.23 y Tabla 4.24 presentan resultados de los ciclos de
reloj para una, dos y tres iteraciones respectivamente. Por su parte, para N = 100
la Tabla 4.25, Tabla 4.26 y Tabla 4.27 presentan resultados de los ciclos de reloj para
una, dos y tres iteraciones respectivamente. Para todos los resultados se han usado
las plataformas C672x y C674x.
Tabla 4.19: Ciclos de reloj de la matriz de covarianza y DML con 500 observaciones
y una iteracin.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

79819499

80055247

DML

215398762

220416643

Total ciclos de reloj

295218261

300471890

Tabla 4.20: Ciclos de reloj de la matriz de covarianza y DML con 500 observaciones
y dos iteraciones.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

79819426

80055247

DML

508890315

519081308

Total ciclos de reloj

588709741

599136555

98

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.21: Ciclos de reloj de la matriz de covarianza y DML con 500 observaciones
y tres iteraciones.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

79779099

80055247

DML

803856586

819270800

Total ciclos de reloj

883635685

899326047

Tabla 4.22: Ciclos de reloj de la matriz de covarianza y DML con 200 observaciones
y una iteracin.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

31614893

31727759

DML

215397674

220415556

Total ciclos de reloj

247012567

252143315

Tabla 4.23: Ciclos de reloj de la matriz de covarianza y DML con 200 observaciones
y dos iteraciones.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

31615220

31727759

DML

508851730

519043756

Total ciclos de reloj

540466950

550771515

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.24: Ciclos de reloj de la matriz de covarianza y DML con 200 observaciones
y tres iteraciones.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

31615220

31727759

DML

804404793

819820328

Total ciclos de reloj

836020013

851548087

Tabla 4.25: Ciclos de reloj de la matriz de covarianza y DML con 100 observaciones
y una iteracin.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

15794818

15846592

DML

215032768

220047367

Total ciclos de reloj

230827586

235893949

Tabla 4.26: Ciclos de reloj de la matriz de covarianza y DML con 100 observaciones
y dos iteraciones.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

15794818

15846592

DML

509389944

519583929

Total ciclos de reloj

525184762

535430521

99

100

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.27: Ciclos de reloj de la matriz de covarianza y DML con 100 observaciones
y tres iteraciones.

C672x

C674x

Funcin

Ciclos de reloj

Ciclos de reloj

Matriz de covarianza

15794818

15846592

DML

804356558

819772965

Total ciclos de reloj

820151376

835619557

Se realiz el clculo de los ciclos de reloj de la matriz de covarianza y DML para


500, 200 y 100 observaciones usando tres iteraciones, y se observ que a mayor n-

mero de iteraciones mayor es la carga computacional. De esta manera, a continuacin se realizar una comparacin de los porcentajes de variacin de DML respecto
a MUSIC. As, para la plataforma C672x con 500 observaciones y tres iteraciones se
registr un aumento en el total de ciclos de reloj para DML del 481, 88 % respecto
a MUSIC. Por otro lado, para N = 200 y tres iteraciones se registr un aumento en
el total de ciclos de reloj para DML del 2114, 69 % respecto a MUSIC. Finalmente,
para N = 100 y tres iteraciones se registr un aumento en el total de ciclos de reloj
para DML del 3659, 87 % respecto a MUSIC. Por lo tanto, a partir de los porcentajes
obtenidos para DML se confirma la hiptesis que establece que el algoritmo DML
exige una mayor carga computacional que MUSIC.
Resultados de las estimaciones:
La Tabla 4.28, Tabla 4.29 y Tabla 4.30 presentan resultados de las estimaciones
con N = 500, N = 200 y N = 100 respectivamente usando las plataformas C672x y
C674x. Los resultados mostrados fueron realizados para las tres iteraciones.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

101

Tabla 4.28: Resultados de la estimacin de DML con 500 observaciones para las
tres iteraciones.

C672x

C674x

Iteracin 1

[45, 33, 79, 144, 48]

[45, 32, 79, 144, 48]

Iteracin 2

[42, 31, 79, 145, 50]

[42, 31, 79, 145, 50]

Iteracin 3

[42, 30, 79, 145, 50]

[42, 30, 79, 145, 50]

Tabla 4.29: Resultados de la estimacin de DML con 200 observaciones para las
tres iteraciones.

C672x

C674x

Iteracin 1

[45, 33, 79, 144, 48]

[45, 33, 79, 144, 48]

Iteracin 2

[42, 31, 79, 145, 50]

[42, 31, 79, 145, 50]

Iteracin 3

[42, 30, 79, 145, 50]

[42, 30, 79, 145, 50]

Tabla 4.30: Resultados de la estimacin de DML con 100 observaciones para las
tres iteraciones.

C672x

C674x

Iteracin 1

[45, 34, 79, 144, 48]

[45, 34, 79, 144, 48]

Iteracin 2

[40, 30, 79, 145, 50]

[42, 31, 79, 145, 50]

Iteracin 3

[42, 30, 79, 145, 50]

[42, 30, 79, 145, 50]

De acuerdo a las simulaciones efectuadas en la seccin 4.2, se concluy que con


una SNR igual a 30dB y para un nmero de observaciones entre 100 y 500 las estimaciones de DML convergan a los valores reales para tres iteraciones. En este
sentido, la Tabla 4.28, Tabla 4.29 y la Tabla 4.30 confirma el anlisis hecho previamente usando las plataformas de DSPs.
Requisitos de memoria:
La Tabla 4.31 muestra los requisitos de memoria para las plataformas C672x,
C674x. Cabe sealar que la compilacin se ha hecho en modo debug.

102

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.31: Requisitos de memoria del algoritmo DML.

Memoria

C672x

C674x

DML.out (KB)

207, 039

281, 001

DML.map (KB)

52, 500

65, 792

Para el algoritmo DML, los requisitos de memoria se muestran en la Tabla 4.31.


De la misma forma que en MUSIC, el consumo de memoria es independiente del
nmero de observaciones N. A travs de la informacin del archivo .map se calcul
el consumo total de memoria del programa cuando se corri en los simuladores
correspondientes a las plataforma C672x y C674x de Texas Intruments.
Por lo tanto, a partir de la Tabla 4.18 del archivo .map, hubo un aumento en
el consumo de memoria del 25, 31 % de la plataforma C674x respecto a la C672x.
Adicionalmente, para la plataforma C672x referido al .map hubo un aumento en
el consumo de memoria por parte de DML del 8, 42 % respecto a MUSIC, mientras
que para la plataforma C674x hubo un aumento en el consumo de memoria por
parte de DML del 69, 82 % respecto a MUSIC. De esta manera, se confirma el hecho
de que el algoritmo DML exige un mayor consumo de memoria que el algoritmo
MUSIC.

4.3.2.

Tiempo de ejecucin de los algoritmos DoA.

A partir de los resultados obtenidos en la seccin 4.3.1, se realizaron simulaciones con un nmero de observaciones igual a 100 y para el caso de DML, se calcularon dos iteraciones. De esta forma, se obtuvo buenas estimaciones y se tom
en cuenta el compromiso que se tiene para satisfacer el tiempo de ejecucin de los
algoritmos DoA definido en la seccin 3.3.2.
El tiempo de ejecucin de cada algoritmo, est determinado al conocer la frecuencia de reloj al que trabaja cada DSP [40]. De acuerdo al datasheet de la plataforma C672x la frecuencia de operacin es de 350MHz, para la C674x la frecuencia
en la que opera es de 456MHz y para la C66xx la frecuencia de reloj es de 1, 25GHz

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

103

ALGORITMO MUSIC:
A continuacin, se presentan los resultados tanto de los ciclos de reloj como del
tiempo de ejecucin del algoritmo MUSIC para las plataformas de DSPs. Adems,
se muestran tablas de las estimaciones y de los requisitos de memoria.
Resultados de los ciclos de reloj y tiempo de ejecucin:
La Tabla 4.32 muestra los ciclos de reloj de MUSIC en modo release mientras
que la Tabla 4.33 presenta los resultados del tiempo de ejecucin que se calcul con
la frecuencia de reloj de cada DSP.
Tabla 4.32: Ciclos de reloj de MUSIC con 100 observaciones en modo release.

C672x

C674x

C66xx

Ciclos de reloj

Ciclos de reloj

Ciclos de reloj

SVD

253577

264319

109611

Mximo

1359892

1317227

494544

1613469

1581546

604155

Funcin
MUSIC

Total ciclos de reloj

Tabla 4.33: Tiempo de ejecucin de MUSIC con 100 observaciones en modo


release.

C672x

C674x

C66xx

Tiempo

Tiempo

Tiempo

SVD

0, 72ms

0, 57ms

0, 087ms

Mximo

3, 88ms

2, 88ms

0, 39ms

4, 6ms

3, 45ms

0, 477ms

Funcin
MUSIC

Total ciclos de reloj

Resultados de las estimaciones:


La Tabla 4.34 presenta los resultados de las estimaciones en modo release para
las plataformas C672x, C674x y C66xx.

104

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.34: Resultados de la estimacin de MUSIC con 100 observaciones en modo
release.

C672x

C674x

C66xx

[31, 42, 50, 79, 145]

[31, 42, 50, 79, 145]

[30, 41, 50, 79, 145]

Requisitos de memoria:
La Tabla 4.35 muestra los requisitos de memoria para las plataformas C672x,
C674x y C66xx en modo release.
Tabla 4.35: Requisitos de memoria del algoritmo MUSIC.

Memoria

C672x

C674x

C66xx

MUSIC.out (KB)

143, 305

137, 381

138, 0792

MUSIC.map (KB)

41, 648

34, 901

34, 772

ALGORITMO DML:
A continuacin, se presentan los resultados tanto de los ciclos de reloj como del
tiempo de ejecucin del algoritmo DML para las plataformas de DSPs. Adems, se
muestran tablas de las estimaciones y de los requisitos de memoria. Cabe sealar
que los resultados presentados se han llevado a cabo para dos iteraciones.
Resultados de los ciclos de reloj y tiempo de ejecucin:
La Tabla 4.36 muestra los ciclos de reloj de MUSIC en modo release mientras
que la Tabla 4.37 presenta los resultados del tiempo de ejecucin que se calcul con
la frecuencia de reloj de cada DSP.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

105

Tabla 4.36: Ciclos de reloj de DML con 100 observaciones y dos iteraciones en
modo release.

C672x

C674x

C66xx

Funcin

Ciclos de reloj

Ciclos de reloj

Ciclos de reloj

DML

117390882

119353182

21380590

Tabla 4.37: Tiempo de ejecucin de DML con 100 observaciones y dos iteraciones
en modo release.

C672x

C674x

C66xx

Funcin

Tiempo

Tiempo

Tiempo

DML

335, 40ms

261, 74ms

17, 1ms

Resultados de las estimaciones:


La Tabla 4.38 presenta los resultados de las estimaciones en modo release para
las plataformas C672x, C674x y C66xx.
Tabla 4.38: Resultados de la estimacin de MUSIC con 100 observaciones en modo
release.

C672x

C674x

C66xx

[30, 79, 145, 40, 50]

[30, 79, 145, 40, 50]

[30, 79, 145, 40, 50]

Requisitos de memoria:
La Tabla 4.39 muestra los requisitos de memoria para las plataformas C672x,
C674x y C66xx en modo release.
Tabla 4.39: Requisitos de memoria del algoritmo MUSIC.

Memoria

C672x

C674x

C66xx

MUSIC.out (KB)

146, 738

230, 581

136, 812

MUSIC.map (KB)

44, 308

60, 787

34, 665

106

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


De acuerdo a los resultados obtenidos en la Tabla 4.37, se determina que el algo-

ritmo DML no cumple con los requisitos referidos al tiempo de ejecucin de DoA,
impuestos en la seccin 3.3.2. Por lo tanto, los clculos de tiempo restante referente a la matriz de covarianza se realizaron con el algoritmo MUSIC ya que ste si
satisface la ecuacin 3.17.
Consideraciones de tiempo de la matriz de covarianza usando las plataformas
C672x y C674x.
Hasta ahora, se tiene solo el tiempo en que se ejecuta el algoritmo MUSIC. De
esta manera, para calcular el tiempo total de DoA, es necesario conocer el tiempo
de ejecucin de la matriz de covarianza y sumarlo con el tiempo de MUSIC.
Ahora bien, antes de calcular el tiempo restante, se debe considerar que parte
del cdigo de la matriz de covarianza, se ha dedicado a la generacin de las seales
que arriban al arreglo, ya que no se cuenta con datos reales de entrada. No obstante,
en un ambiente real, las seales no son codificadas, sino que las mismas se adquieren a travs de los dipolos de /2 y, luego, son muestreadas por los convertidores
A/D. Para cada muestra, se genera un vector de observacin cuya dimensin est
en funcin del nmero de dipolos.
Se tiene que el nmero de ciclos de reloj que realmente consume la matriz de covarianza, se encuentra en la seccin del cdigo responsable de realizar la ecuacin
anterior.
for t = 0:ts:(N-1)*ts

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SECCIN DEL CDIGO QUE GENERA
EL VECTOR X(t)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Matriz de covarianza de una observacin.


for x=1:L

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

107

for xh=1:L
ReRn(x,xh) = RXaux(x)*RXaux(xh)+IXaux(x)*IXaux(xh);
ImRn(x,xh) = IXaux(x)*RXaux(xh)-RXaux(x)*IXaux(xh);
end
end

%Matriz de acumulacin.
ReRN = ReRN+ReRn;
ImRN = ImRN+ImRn;

%Parte real e imaginaria de la matriz de covarianza para N


%observaciones.
ReRN = ReRN/N;
ImRN = ImRN/N;

end

En la Tabla 4.40, Tabla 4.41 y Tabla 4.42 se observan, para las tres plataformas,
los ciclos de reloj de la matriz de covarianza para una observacin, y los ciclos de
reloj necesarios para dividir XXH entre el nmero de observaciones.
Tabla 4.40: Tiempo de ejecucin para la matriz de covarianza usando la plataforma
C672x.

Clculo de la Matriz de covarianza

Ciclos de reloj

Tiempo de ejecucin

Clculo de una observacin

1303

3, 72s

Dividir entre N

21542

61,54s

108

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Tabla 4.41: Tiempo de ejecucin para la matriz de covarianza usando la plataforma
C674x.

Clculo de la Matriz de covarianza

Ciclos de reloj

Tiempo de ejecucin

Clculo de una observacin

1206

2, 64s

Dividir entre N

22389

49, 908s

Tabla 4.42: Tiempo de ejecucin para la matriz de covarianza usando la plataforma


C66xx.

Clculo de la Matriz de covarianza

Ciclos de reloj

Tiempo de ejecucin

Clculo de una observacin

1118

0, 89s

Dividir entre N

2165

1,73s

Entonces, el tiempo de ejecucin de DoA para la plataforma C672x es:

tDoA = 4, 6ms + (100 3, 72s + 61, 54s) = 5, 03ms

(4.2)

Adicionalmente, el tiempo de ejecucin de DoA para la plataforma C674x es:

tDoA = 3, 45ms + (100 2, 64s + 49, 908s) = 3, 79ms

(4.3)

Por ltimo, el tiempo de ejecucin de DoA para la plataforma C66xx es:

tDoA = 0, 477ms + (100 0, 89s + 1, 73s) = 0, 57ms

(4.4)

Al determinar el tiempo de ejecucin de cada funcin del algoritmo MUSIC, se


obtiene que la funcin Mximo consume el 77 % del tiempo total de ejecucin de

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

109

DoA, lo que amerit analizar esta funcin para realizar las optimizaciones requeridas. Una forma de hacerlo fue evitar todo el potencial de MATLAB, esto es, llamados a funciones como conjugados, transpuesta, absoluto y las frecuentes operaciones con nmeros complejos. Luego de modificar la funcin Mximo, se procedi a
realizar las simulaciones respectivas en CCS con la plataforma C672x, teniendo una
mejora de casi 400000 ciclos de reloj, tal como se oberva en la Tabla 4.43.
Tabla 4.43: Optimizacin de la funcin Mximo.

Funcin

Ciclos de reloj

Tiempo de ejecucin

SVD

253577

0, 72ms

Mximo

992240

2, 83ms

Total

1245817

3, 55ms

Entonces, el tiempo de ejecucin de DoA con la optimizacin, usando la plataforma C672x es:

tDoA = 3, 55ms + (100 3, 72s + 61, 54s) = 3, 98ms

(4.5)

Sin embargo, aunque se logr una disminucin en el tiempo de ejecucin, los


mximos se encuentran con un nivel menor de potencia. En la Figura 4.24 se expone
lo descrito.

110

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

20
15

PMUSIC (dB)

10
5
0
5
10
15
20

30

42

50

79

145

Figura 4.24: Mximos del espectro MUSIC con la modificacin de la funcin


Mximo.

De esta forma, un aumento del rendimiento conllev a una disminucin en la


potencia de los mximos por lo que a menor tiempo de ejecucin, menor es la potencia en las estimaciones.

4.4.

CREACIN DE UN PROCEDIMIENTO GENERAL.

A continuacin, se particulariza usando la funcin MATRIZDECOVARIANZA.m, el


procedimiento seguido para la simulacin de algoritmos en procesadores digitales de seal, desde que el mismo es concebido hasta que son introducidos en los
entornos de desarrollo integrado para DSPs.
Una vez analizado el problema matemtico en cuestin, referente a la matriz de
covarianza, se procede a codificarlo en MATLAB como si se tratara de cualquier
funcin. Una vez hecho esto, y luego de comparar los resultados con los reportados en [7] bajo los mismos parmetros de las variables de entrada comprobando el
correcto funcionamiento de la misma, se procede a modificar la funcin con las restricciones interpuestas por Embedded MATLAB. En el siguiente apartado se habla
de ello.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

4.4.1.

111

Modificacin del cdigo en MATLAB con las restricciones interpuestas por Embedded MATLAB.

A continuacin, se presenta el cdigo de la MATRIZDECOVARIANZA.m con las


restricciones que impone Embedded MATLAB. Inicialmente, se agreg el pragma
%#eml segn lo reportado en la seccin 3.4. Luego, se utiliz la funcin assert
para especificar la clase, tamao y complejidad de las entradas de la funcin [29].
function [ReRN, ImRN] = MATRIZDECOVARIANZA(DeltF,theta,SNR,d,L,N)%#eml
%Propiedades de las variables de entradas.
%Clase de las variables: Punto flotante de simple presicion.
assert(isa(DeltF, 'single'))
assert(isa(SNR,'single'))
assert(isa(L,

'single'))

assert(isa(N,

'single'))

assert(isa(theta,'single'))
assert(isa(d,

'single'))

%Tamao de las variables.


assert ( all ( size (DeltF)

== (1) ) )

assert ( all ( size (SNR)

== (1) ) )

assert ( all ( size (d)

== (1) ) )

assert ( all ( size (L)

== (1) ) )

assert ( all ( size (N)

== (1) ) )

assert ( all ( size(theta) == [1 3] ) )


%Declaracion e inicializacion de las variables.
ReRN = single(zeros(4,4)); %Parte real e imaginaria de
ImRN = single(zeros(4,4)); %la matriz de covarianza.
P = int8(length(theta)); %Numero de senhales.
f = single((DeltF*(0:2)+DeltF)/3); %Frecuencia de senhales banda base.
fp = single(850e6 - f); %Frecuencia de la portadora.
fd = single(850e6); %Frecuencia del dipolo.
W = 2*pi*f; %Vector de frecuencia angular de las senhales.
ts = single(1/(3*50e6)); %Vector del tiempo de cada muestra.

112

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

t = single(0); %Incializacion del tiempo.

while t <= (N-1)*ts


%Las variables RXaux y IXaux son variables auxiliares
RXaux

= single(zeros(4,1));

IXaux

= single(zeros(4,1));

ReRn

= single(zeros(4,4));

ImRn

= single(zeros(4,4));

for l=1:L
for i = int8(1:P)
RXaux(l) = RXaux(l)+ cos(2*pi*(50e6-f(i))*t)*cos(pi*(l-1)*...
cos((pi/180)*theta(i))*((fp(i))/fd));
IXaux(l) = IXaux(l)+ cos(2*pi*(50e6-f(i))*t)*sin(pi*(l-1)*...
cos((pi/180)*theta(i))*((fp(i))/fd));
end
end
%Ruido AWGN.
RXaux = awgn(RXaux,SNR);
IXaux = awgn(IXaux,SNR);

%Hermitiano
for x=1:L
for xh=1:L
ReRn(x,xh) = RXaux(x)*RXaux(xh)+IXaux(x)*IXaux(xh);
ImRn(x,xh) = IXaux(x)*RXaux(xh)-RXaux(x)*IXaux(xh);
end
end

%Matriz de acumulacion.
ReRN = ReRN+ReRn;
ImRN = ImRN+ImRn;

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

113

%Incremento de tiempo de muestreo.


t = t + ts;
end

%Matriz de covarianza
ReRN = ReRN/N;
ImRN = ImRN/N;

end

Cabe sealar que MATLAB no necesita declaracin de variables, no obstante,


Embedded MATLAB define la clase, tamao y complejidad de las mismas, por defecto asume que toda variable es de clase double y de complejidad real, por lo tanto
las variables fueron modificadas en su declaracin de acuerdo a los propsitos de
nuestra aplicacin.

4.4.2.

Generacin de cdigo fuente C.

Luego de lo anteriormente descrito, se procedi a generar la funcin C-MEX


para verificar desde el entorno de MATLAB, el correcto funcionamiento del cdigo
C generado. Para ello, se introdujo el comando de la primera lnea de la Figura 4.25,
donde se observa un mensaje reportando el error de compilacin.
>> emlc -o MATRIZDECOVARIANZAMEX -report MATRIZDECOVARIANZA.m
??? The function 'awgn' is not supported by Embedded MATLAB
for code generation. See the documentation for eml.extrinsic
to learn how you can use this function in simulation.
Error in ==> MATRIZDECOVARIANZA Line: 44 Column: 10
Compilation failed: Open error report.
??? Error using ==> emlc

Figura 4.25: Mensaje de error de compilacin.

114

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Seguidamente, se abre este reporte, y se muestra la ventana de la Figura 4.26

indicando la lnea que genera el error. En la descripcin se seala que la funcin


awgn no es soportada por Embedded MATLAB.

Figura 4.26: Reporte de error de compilacin.

Ante esto, se presentaron las dos posibilidades2 sealadas en la seccin 3.4.2. Sin
embargo, a modo ilustrativo, para efectos del presente procedimiento, la funcin
awgn se elimin del script y se generar nuevamente el cdigo C-MEX. Luego de

introducir nuevamente el comando, se present el reporte de compilacin satisfactorio tal como se observa en la Figura 4.27. Por otro lado, en el directorio de trabajo
se cre la carpeta emcprj, dentro de la cual se encuentra la carpeta mexfcn donde
se guardan las funciones C-MEX generadas, lo que indica que la funcin C-MEX ha
sido generada de manera exitosa.
2

Para las simulaciones de MUSIC y DML se introdujo ruido AWGN mediante codificacin manual
(ver seccin 3.2).

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

115

>> emlc -o MATRIZDECOVARIANZAMEX -report MATRIZDECOVARIANZA.m


Compilation successful: Open compilation report.

Figura 4.27: Mensaje de reporte de compilacin satisfactorio.

Para comprobar que la funcin C-MEX arroja los mismos resultados que la funcin original de MATLAB, se introdujeron como parmetros de entrada los siguientes valores:
DeltF = single(5e6)
theta = single([50 75 125])
SNR = single(0)
d = single(0,5)
L = single(4)

N = single(500)

Puesto que la funcin awgn fue eliminada para efectos de este procedimiento, el
valor de SNR es indiferente.
De esta manera, ejecutando la funcin original se obtienen los valores de la parte
real e imaginaria de la matriz de covarianza que se muestran en la Figura 4.28.
En este sentido, para comprobar que la funcin C-MEX original arroja los mismos resultados, la misma se llama tal como se muestra en la Figura 4.29. De esta
forma, se comprueba el correcto funcionamiento de la funcin C-MEX.
Una vez verificado el cdigo C desde MATLAB, se procede a generar el cdigo
fuente C libre de plataforma mediante Real-Time Workshop. Esto se hace introduciendo el comando de la primera lnea de la Figura 4.30.

116

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

>> [ReRN, ImRN] = MATRIZDECOVARIANZA(DeltF,theta,SNR,d,L,N)


ReRN =
1.4978
0.0151
-0.7942
0.4221

0.0151
1.4956
0.0320
-0.7953

-0.7942
0.0320
1.5041
0.0069

0.4221
-0.7953
0.0069
1.5090

-0.3213
0
0.3260
0.3286

-0.3180
-0.3260
0
0.3332

-0.6009
-0.3286
-0.3332
0

ImRN =
0
0.3213
0.3180
0.6009

Figura 4.28: Resultados de la matriz de covarianza usando la funcin original de


MATLAB.
>> [ReRN, ImRN] = MATRIZDECOVARIANZAMEX(DeltF,theta,SNR,d,L,N)
ReRN =
1.4978
0.0151
-0.7942
0.4221

0.0151
1.4956
0.0320
-0.7953

-0.7942
0.0320
1.5041
0.0069

0.4221
-0.7953
0.0069
1.5090

-0.3213
0
0.3260
0.3286

-0.3180
-0.3260
0
0.3332

-0.6009
-0.3286
-0.3332
0

ImRN =
0
0.3213
0.3180
0.6009

Figura 4.29: Resultados de la matriz de covarianza usando la funcin C-MEX.


>> emlc -c -T RTW -report MATRIZDECOVARIANZA.m
Compilation successful: Open compilation report.

Figura 4.30: Generacin de cdigo fuente C libre de plataforma mediante RTW.

El mensaje da una compilacin satisfactoria que apunta a un reporte de compilacin. En el directorio de trabajo se crea la carpeta emcprj, y dentro sta se encuentra la carpeta rtwlib donde se guardan las funciones C generadas junto con

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

117

sus archivos de cabecera.

Figura 4.31: Reporte de compilacin de la generacin de cdigo C mediante RTW.

Por su parte, en la Figura 4.31 se observa el reporte de compilacin. De esta


manera, se ha generado la funcin MATRIZDECOVARIANZA.c la cual es una funcin
void. Es menester mencionar algunos de los archivos necesarios para su genera-

cin, los cuales son:

rt_GetInf.c: Es una funcin de Real-Time Workshop que contiene la defini-

cin de las funciones que trabajan con variables no finitas como Inf y MinusInf.
rt_GetNaN.c: Es una funcin de RTW que contiene la definicin de las fun-

ciones que trabajan con variables no finitas como NaN.


rt_nonfinite.c: Es una funcin de RTW para inicializar variables no finitas

como Inf, NaN y Inf.


rtwtypes.h: Es un fichero de cabecera que define tipos genricos (typedef).

118

Captulo IV. Anlisis, interpretacin y presentacin de los resultados


Cabe resaltar que la conversin automtica que lleva a cabo Real-Time Works-

hop, define los tipos de datos en todos los casos. En este sentido, a partir del archivo de cabecera denominado rtwtypes.h que se genera durante la compilacin, se
construye la Tabla 4.44 donde se muestra cada una de las equivalencias.

Tabla 4.44: Equivalencias de los tipos de variables bsicas en MATLAB, lenguaje


C y Real-Time Workshop.

MATLAB
double
single
int32
int16
int8
uint32
uint16
uint8
int
uint
boolean
char

4.4.3.

lenguaje C
double
float
long long int
long int
short int
unsigned long long int
unsigned long int
unsigned short int
int
unsigned int
char

Real-Time Workshop
real_T
real32_T
int32_T
int16_T
int8_T
uint32_T
uint16_T
uint8_T
int_T
uint_T
boolean_T
char_T

Depuracin y validacin del cdigo C resultante.

Luego de la conversin automtica de cdigo MATLAB a lenguaje C, se depur


el cdigo C generado con el compilador Code::Blocks, con la finalidad de obtener
un cdigo libre de plataforma, de modo que pueda ser compilado por diversas herramientas segn el entorno en el que se desee implementar. Para este trabajo se uso
el IDE CCS. Adicionalmente, este paso permite la optimizacin en mayor medida
del cdigo en caso de ser necesario. El cdigo generado por RTW resulta bastante ptimo para aplicaciones en tiempo real, no obstante, siempre es bueno realizar
una verificacin del mismo. Por ello, se ha considerado conveniente examinar si el
cdigo necesita una mayor optimizacin y cules son los aspectos de la aplicacin
que es preciso optimizar (velocidad de ejecucin, ocupacin en memoria, precisin)
pues depende de cada aplicacin concreta.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

119

Luego de verificar y depurar la funcin MATRIZDECOVARIANZA.c en el entorno


de Code::Blocks, se procedi a validar el cdigo con los mismos parmetros que
generaron los resultados anteriores, esto se muestra en la Figura 4.32.

Figura 4.32: Validacin de los resultados de la matriz de covarianza en el IDE


Code::Blocks.

4.4.4.

Simulacin en Code Composer Studio (CCS).

En el siguiente procedimiento se explican los pasos bsicos que debe seguirse,


para simular cdigo generado por RTW, en las plataformas de los DSPs que ofrece
Texas Intruments (TI). CCS es un software muy didctico que, al ser acompaado
con la gran variedad de documentacin tcnica y tutoriales disponibles en el sitio
web de TI, su aprendizaje resulta muy amigable y rpido. Cabe sealar que Texas
Intruments, dispone de una versin gratuita de CCS cuya licencia es para un tiempo
limitado de 90 das [41] [42] [43].
Una vez que se obtiene el cdigo fuente C generado por RTW, y luego de haber
depurardo y validado el mismo en Code::Blocks, se inici un nuevo proyecto en
CCS donde se simul el algoritmo en la plataforma que se adeca a la aplicacin
de inters. Al igual que en cualquier software de programacin, para acceder a un
nuevo proyecto, se debe seguir la siguiente secuencia expuesta en la Figura 4.33.

120

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.33: Secuencia inicial para crear un nuevo proyecto

Al seleccionar el icono CCS project, aparecer una ventana con las opciones
de configuracin del proyecto, como se observa en la Figura 4.34.
En esta ventana se tiene lo siguiente:
Nombre del proyecto.
Tipo de archivo de salida. Por defecto, se genera un ejecutable del programa con el nombre del proyecto (New projec.Out), siendo ste, el que ser
cargado a la memoria del DSP.
Configuraciones del DSP. En primer lugar, se debe definir la familia del DSP,
y luego, la variante de esa familia. De esta forma, el proyecto ser desarrollado sobre las caractersticas de una tarjeta especfica. Por ejemplo, para trabajar sobre la tarjeta TMS320C6727, se debe elegir la familia C6000, variante
TMS320C6727.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

121

Figura 4.34: Configuraciones del proyecto

Configuraciones avanzadas. En esta etapa, se tiene la opcin de elegir el


Device endianness, el cual puede ser little o big. Con esta opcin, se in-

dica el orden en que son almacenados los datos en la memoria [44]. En la


ventana de Linker command file, se elige el mapa de memoria que utiliza
el proyecto; CCS contiene por defecto una serie de archivos (.cmd) para cada tarjeta. Sin embargo, las configuraciones de memoria de estos archivos no
siempre son compatibles con las aplicaciones del proyecto en cuestin, por lo
que deben ser modificado. Ms adelante se explica como construir un Linker
command file.

Luego de haber elegido las caracterstica del proyecto, y dado click a Finish,
se abrir la ventana del entorno de CCS. En este sentido, el proyecto no contiene

122

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

archivos fuentes, solo el entorno de main y los archivos de cabeceras que contiene la
familia C6000. Por lo tanto, antes de aadir los archivos del cdigo, se recomienda
crear una carpeta donde estn todos los archivos necesario para compilar el cdigo
en Code::Blocks. No obstante, para efectos de este procedimiento, se ha creado una
carpeta con el nombre MatrizDeCovarianza donde se encuentra el cdigo usado a
lo largo de este procedimiento. En efecto, para aadir todos los archivos que estn
en la carpeta, se debe seleccionar el nombre del proyecto, luego presionar click
derecho y seleccionar la opcin Add files, tal como se observa en la Figura 4.35.

Figura 4.35: Opcin para aadir archivos al proyecto

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

123

De esta forma, todos los archivos del algoritmo de la matriz de covarianza estn
dentro del proyecto New project. Se debe notar que en el proyecto no se encuentra
el archivo Linker Command file (.cmd). Este archivo es necesario para generar
el cdigo ejecutable, por lo que a continuacin se explica como configurar el linker
command file.

Un linker command file puede ser construido tomando como referencia el


archivo .cmd perteneciente a la tarjeta seleccionada en el proyecto, o bien con el
resumen de memoria que ofrece el datasheet. En la Figura 4.36, se tiene un archivo
.cmd que ha sido configurado para la tarjeta TMS320C6727.

Figura 4.36: Linker Command File para el TMS320C6727

La interpretacin de la Figura 4.36, consiste en que la tarjeta est compuesta por


tres memorias. La primera se encuentra dentro del ncleo (256KB Internal RAM)
y las otras dos son memorias externas (128MB External SDRAM y 128MB External

124

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Async/Flash) que permiten un mayor almacenamiento pero, generalmente, trabajan a una frecuencia de reloj inferior a la de la memoria interna. Por otro lado, se
tiene que la memoria se ha dividido en secciones, las cuales se describen en la Figura 4.37.

Figura 4.37: Nombre de las secciones de memoria.

Por otro lado, aparte de estas secciones, es posible definir nuevas secciones que
sern almacenadas en una determinada memoria, con el propsito de ordenar a
conveniencia el programa que se cargar luego al DSP. Entonces, si se tiene un cdigo que est formado por varias funciones, cada una de ellas se puede alojar bien
sea en la memoria interna o externa del DSP.
Para alojar una seccin del programa, por ejemplo la seccin main, se debe colocar el siguiente pragma, justo antes que comience la funcin.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

125

pragma CODE_SECTION(main,".main")

Luego, se localiza .cmd de la aplicacin y, en la parte de SECTIONS, se introduce


el siguiente comando.

.main < IRAM

Con esta serie de instrucciones, lo que se hace es almacenar la seccin del cdigo main en la memoria RAM interna del DSP. Si se desea especificar an ms, la
localizacin de main, se puede usar el siguiente comando:

.main < MAIN

Donde MAIN se ha definido en MEMORY como: MAIN :

o = 0x10000000

l =

0x00000400. Esto se hizo con las secciones del cdigo de la matriz de covarianza

usado a lo largo de este procedimiento.


Hasta ahora, el proyecto cuenta con los archivos de cdigo fuente C y sus respectivos archivos de cabecera, as como el archivo de configuracin de memoria
(.cmd). Con estos archivos, se pudo compilar el programa para generar cdigo

ensamblador ejecutable, apto para ser cargado en la memoria del DSP que se ha
elegido para el proyecto [8].
Luego de haber compilado el programa y verificar que se ha construido el archivo de salida (New project.Out), el prximo paso es depurar el cdigo ejecutable. Para ello, se debe crear un nuevo archivo que tiene por nombre: target
configuration file (.ccxml).

En este archivo se configura el target, el cual puede ser un software que simula
la plataforma donde se est realizando el proyecto o un emulador que ser conectado a la tarjeta. En nuestro caso, el target se configura para trabajar en modo de
simulacin. Para abrir dicho archivo, se sigue la secuencia ilustrada en la Figura
4.38.

126

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.38: Configuracin del simulador de Texas Instruments.

Cuando se abre el target configuration file, se debe identificar la ventana


conection y seleccionar la opcin Texas Instruments Simulator. Luego, en la

ventana Borad or Device se selecciona el simulador que es compatible con la tarjeta que se ha elegido en el proyecto y, adems, el tipo de simulacin que se desea
realizar.

Figura 4.39: Simulador de Texas instruments.

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

127

Tabla 4.45: Niveles de simulacin dispuestas en Texas Instruments

Nivel de simulacin
Nivel 1. Se comprueba la funcionalidad del CPU al ejecutar el algoritmo y algun perefrico puede ser simualdo si se amerita
Nivel 2. Se realizan pruebas sobre el
rendimiento del CPU, se analiza el
tamao del cdigo y se utilizan las
herramientas de optimizacin
Nivel 3. Simula los perifricos, usa
la DMA para la transferencia de datos entre el programa y los perifricos y
Nivel 4. Permite una simulacin del
hardware y usa herramientas de
optimizacin en DMA y la CACHE

Tipo de simulador a usar


CPU Functional simulator

CPU Cycle-accurate simulator

Device Functional simulator

Device Cycle-accurate Simulator

Existen varios niveles de simulacin los cuales se presentan en la Tabla 4.45. En


esta investigacin, solo se ha llegado al nivel 2, ya que las simulaciones se hicieron
sobre CPU Cycle-accurate simulator, utilizando un sistema de memoria plana.
En este nivel se pueden realizar las mediciones del rendimiento del CPU del DSP,
calculando el tamao de los cdigos y los ciclos de reloj que se necesita para ejecutar
cada aplicacin.
Luego de haber explicado los niveles de simulacin, se contina con la ejecucin de la matriz de covarianza, donde se ha usado el simulador C672x CPU Cycle
Accurate Simulator, Litter Endian. Para calcular los ciclos de reloj del algo-

ritmo, se debe habilitar la funcin Clock que, en la versin 5.3, la forma de hacerlo
es seleccionando Run clock Enable [40].
Luego de haber ejecutado el algoritmo de la matriz de covarianza, se comprob
que los resultados coinciden con los obtenidos desde MATLAB. Por otro lado, en
la carpeta de Debug, se dispone de un archivo cuya extensin es .map, en la cual
se observa el consumo de memoria del algoritmo y el estado de todos los archivos
utilizados.

128

Captulo IV. Anlisis, interpretacin y presentacin de los resultados

Figura 4.40: Interfaz del Simulador donde se observan la funcin Clock y la ventana de variables

Finalmente, luego de haber realizado la simulacin en modo Debug y de determinar que, usando las configuraciones anteriores, el algoritmo puede ser introducido en el hardware del DSP, una ltima simulacin en modo Release se hizo para
observar el rendimiento del programa terminado y listo para la implementacin.

Captulo V

Conclusiones y recomendaciones
5.1.

Conclusiones.

El reto de los sistemas de comunicaciones mviles, es incrementar el nmero de


usuarios en servicios de voz y datos. Optar por los sistemas de Antenas Inteligentes es una de las soluciones ms eficientes pues tiene la ventaja de incrementar la
capacidad del sistema en trminos del flujo de datos, reducir la interferencia entre
usuarios, as como un aumento de cobertura en los sistemas de tercera generacin
(3G), debido a la separacin espacial existente entre los usuarios.
La estimacin de la Direccin de Arribo (DoA) es una de las etapas de los sistemas de Antenas Inteligentes y fue la que se desarroll en esta investigacin. Por
lo tanto, en este trabajo se seleccion dos algoritmos DoA. El primero de ellos, MUSIC, para que representara a los mtodos basado en subespacio y, el segundo fue
DML para representar a los mtodos paramtricos. As mismo, se tom un Arreglo
Lineal Uniforme (ULA) de una antena sectorizada que cubre 120 grados espaciales. El nmero de dipolos usado fue de diez, con una separacin de 0,5 entre dos
elementos consecutivos.
MUSIC y DML fueron simulados en MATLAB, donde se corrobor las ventajas
y desventajas de cada uno, descritos en el marco terico. Ciertamente, MUSIC es un
algoritmo que realiza estimaciones precisas en condiciones favorables, esto es, un
129

130

Captulo V. Conclusiones y recomendaciones

considerable nmero de muestras, as como una alta relacin seal a ruido. Por otro
lado, este algoritmo es sensitivo a la frecuencia ya que las frecuencias de las ondas
planas que arriban al arreglo deben estar separadas para evitar la correlacin de
las seales pero al mismo tiempo debe estar en la cercana de la frecuencia nominal del dipolo. Para efectos de esta investigacin, las portadoras estaban separadas
1MHz. En la prueba de fuentes cercanas angularmente se comprob que, con 1000

observaciones, MUSIC es capaz de alcanzar una resolucin de 5 . En general, con


un nmero de 100 observaciones y un SNR = 30dB, MUSIC es capaz de realizar
estimaciones precisas.
Por otra parte, DML es un algoritmo mucho ms preciso que MUSIC aunque
se necesita un cierto nmero de iteraciones para que sus estimaciones converjan a
los valores reales. Por ser un estimador insesgado, en promedio las estimaciones
tendan a los valores reales. No obstante, en condiciones desfavorables con bajo
SNR y bajo nmero de muestras al mismo tiempo, se produjeron estimaciones con

error. Esto se pudo corroborar al calcular la media y la varianza de las estimaciones,


en cuyo caso el valor promedio de las estimaciones se alejaba de los valores reales
y la varianza de los datos era elevada. Por otro lado, DML es menos sensitivo a la
frecuencia que MUSIC ya que estima las posiciones sin antes calcular un espectro.
Antes de evaluar la respuesta computacional del DSP, se realiz una estimacin del tiempo en que las observaciones que utiliza la matriz de covarianza deben
actualizarse. Para ello, se tuvo en cuenta un usuario que presenta una movilidad
crtica y, de esta forma, se determin el tiempo ante el cual deben actualizarse las
muestras usadas en la matriz de covarianza. Aqu, se concluy que el tiempo de
ejecucin de DoA debe ser mucho menor al tiempo de refrescamiento.
Con estas referencias se iniciaron las simulaciones en el software CCS, donde
se pudo probar el rendimiento de ncleo del DSP, haciendo uso de los simuladores
que se encuentran disponibles para las plataformas que permiten datos de punto
flotante de simple precisin, los cuales fueron C672x y C674x. De esta manera, se
alcanz el nivel 2 de simulacin, bajo un sistema de memoria plana que tena una
capacidad mxima de 64MB.

Captulo V. Conclusiones y recomendaciones

131

El xito de la simulacin dependi de la forma en que las secciones del cdigo


fueron almacenados en la memoria. De manera que, el linker command file, fue
configurado para la organizacin en memoria de dicho cdigo. Al calcular los ciclos
de reloj se conoci que los tiempos de ejecucin para MUSIC satisficieron el tiempo
de refrescamiento impuesto en la seccin 3.3.2.
La ejecucin de DoA en las plataformas C672x, C674x result exitosa, no obstante, se debe tener presente que una etapa de BF debe ser implementada y que,
generalmente, se hace en el mismo DSP usado para la DoA. De esta manera, esta
situacin agudizar los requerimiento de carga computacional que debe realizar el
DSP. Por tal motivo, una ltima simulacin se realiz sobre la plataforma C66xx,
para determinar el tiempo de ejecucin de DoA, el cual disminuy considerablemente, esta plataforma cuenta con una frecuencia de reloj de 1,25GHz y pueden
realizar 22GFLOPS. Con esta tarjeta, se abre una ventana para futuras investigaciones que se aboquen a la etapa de BF.
Por otro lado, la generacin de cdigo fuente C a partir de MATLAB, sin lugar
a dudas, es una herramienta til a la hora de elaborar cdigos eficientes para sistemas embebidos. Con las funciones C-MEX se pudo ejecutar, desde MATLAB, los
algoritmos .c para constatar el buen funcionamiento de los cdigos. As, se verific que al traducir el cdigo de MATLAB a C, el mismo se comportaba de la misma
manera, por lo que la funcin C-MEX realizaba la misma tarea que la funcin original de MATLAB. Luego de ello, Real-Time Workshop permiti la generacin de
cada cdigo en lenguaje C, libre de plataforma y optimizado para aplicaciones embebidas, siendo Code::Blocks la herramienta utilizada para realizar la depuracin
de los cdigos para que pudieran ser cargados en Code Composer Studio. De esta
forma, con la traduccin automtica de algoritmos de MATLAB a C, se dedic mucho menos tiempo a la escritura y depuracin de MUSIC y DML, y ms tiempo en
el desarrollo y sintonizacin de los algoritmos. Esto se pudo corroborar al observar
que las funciones que resultaron de la traduccin, como svd, pinv, arrojaban un
cdigo en C con un nmero considerable de lneas de cdigos.
Por ltimo, al notar la importancia que tienen las herramientas que se usaron,
un procedimiento general fue creado, comenzando desde la conceptualizacin de

132

Captulo V. Conclusiones y recomendaciones

cualquier algoritmo, diseado para aplicaciones embebidas, hasta que los mismos
son introducidos en CCS.

5.2.

Recomendaciones.

Generalizar el problema de estimacin para resolver situaciones con fuentes


ubicadas en campo cercano, y seales que estn sometidas a desvanecimiento por
multitrayectoria.
Optimizar, en la medida de lo posible, la funcin Mximo usada para MUSIC para obtener un mayor rendimiento sin perder potencia en el clculo de los mximos.
De esta manera, se reduciran los ciclos de reloj lo que ocasionara una disminucin
en el tiempo de ejecucin de DoA.
Alcanzar los niveles 3 y 4 de simulacin, para incluir perifricos y lograr una
mayor optimizacin.
Continuar con la etapa de BF para que sta se integre a la DoA en un mismo
DSP.
Lograr la implementacin de los algoritmos MUSIC y DML en las plataformas
C672x, C674x y C66xx.

Apndice A

Cdigos en Embedded MATLAB


de algoritmos DoA.
A continuacin, se presentan los cdigos usados en este trabajo. Los mismos
consideran las restricciones impuestas por Embedded MATLAB.

1.1.

MATRIZ DE COVARIANZA.

function [ReRN,ImRN] = MATRIZDECOVARIANZA(DeltF,theta,SNR,d,L,N)%#eml

Propiedades de las variables de entradas

Clase de las variables: Punto flotante de simple precisin.

assert(isa(DeltF, 'single'))
assert(isa(SNR,'single'))
assert(isa(L,

'single'))

assert(isa(N,

'single'))

assert(isa(theta,'single'))
assert(isa(d,

'single'))

Tamao de las variables.

133

134

Apndice A. Cdigos en Embedded MATLAB de algoritmos DoA.

assert ( all ( size (DeltF)

== (1) ) )

assert ( all ( size (SNR)

== (1) ) )

assert ( all ( size (d)

== (1) ) )

assert ( all ( size (L)

== (1) ) )

assert ( all ( size (N)

== (1) ) )

assert ( all ( size(theta) == [1 5] ) )

Declaracin e inicializacin de la matriz de covarianza; parte real e

imaginaria.

ReRN = single(zeros(10,10));
ImRN = single(zeros(10,10));

Nmero de seales.

P = single(length(theta));

Frecuencia de la portadora;

= single(DeltF*(0:(P-1)));

fp = single(850e6 - f);

Frecuencia del dipolo.

fd = single(850e6);

tiempo de cada muestra.

ts = single(1/(3*50e6));

Generacin de la matriz de covarianza para una muestra.

for t = 0:ts:(N-1)*ts

Las variables RXaux y IXaux son variables auxiliares. Antes de que se

genere un nuevo vector, su valor debe ser cero.

RXaux

= single(zeros(10,1));

Apndice A. Cdigos en Embedded MATLAB de algoritmos DoA.


IXaux

= single(zeros(10,1));

ReRn

= single(zeros(10,10));

ImRn

= single(zeros(10,10));

135

Generacin del vector de una muestra.

for l=1:10
for i = int8(1:P)
RXaux(l) = RXaux(l)+ cos(2*pi*10000*t)*cos(2*pi*(50e6-f(i))*t)*...
cos(pi*(l-1)*cos((pi/180)*theta(i))*((fp(i))/fd));
IXaux(l) = IXaux(l)+ cos(2*pi*10000*t)*cos(2*pi*(50e6-f(i))*t)*...
sin(pi*(l-1)*cos((pi/180)*theta(i))*((fp(i))/fd));
end
end

Se aade ruido AWGN al vector de observacin con la funcin Rawgn.

RXaux = Rawgn(RXaux,SNR);
IXaux = Rawgn(IXaux,SNR);

Para calcular la matriz de covarianza de cada observacin,

se necesita el hermitiano del vector. Solo se conjugar

la parte imaginaria, ya que la operacin de transponer el

vector puede ser controlado por el programador.

Conjugar X, equivale a multiplicar por menos uno (-1)

la parte imaginaria

Matriz de covarianza de una observacin.


for x=1:L
for xh=1:L
ReRn(x,xh) = RXaux(x)*RXaux(xh)+IXaux(x)*IXaux(xh);
ImRn(x,xh) = IXaux(x)*RXaux(xh)-RXaux(x)*IXaux(xh);

136

Apndice A. Cdigos en Embedded MATLAB de algoritmos DoA.


end

end

Matriz de acumulacin.

ReRN = ReRN+ReRn;
ImRN = ImRN+ImRn;

end

ReRN = ReRN/N;
ImRN = ImRN/N;
end

1.2.

RUIDO AWGN.

function [xg] = Rawgn(x,SNR)%#eml


%%%%% clase de las varibles %%%%%%%%%
assert(isa(x, 'single')) %Vector de observacin
assert(isa(SNR, 'single')) % Relacin seal a ruido
assert ( all ( size(x) == [10 1] ) )
assert ( all ( size (SNR)

== (1) ) )

%%%%% Declaracin de las varibles %%%%%%%%%


sgmaS = single(zeros(1,1));
dstd = single(zeros(1,1));
Ruido = single(zeros(10,1));
xg = single(zeros(10,1));

sgmaS = single(var(x,1)); % Varianza de x


dstd = single(sqrt(sgmaS/(10^(SNR/10)))); % Desviacin estndar
Ruido = single(dstd*randn(10,1)); % Ruido AWGN
xg = x + Ruido; % Aade ruido al vector x

Apndice A. Cdigos en Embedded MATLAB de algoritmos DoA.


end

1.3.

ALGORITMO MUSIC.

1.3.1.

Funcin SVD.

function [E] = SVD(ReRN,ImRN)%#eml


%--------------------------------------

assert( isa (ReRN, 'single'))


assert( isa (ImRN, 'single'))
assert ( all ( size(ReRN) == [10 10] ) )
assert ( all ( size(ImRN) == [10 10] ) )

% SVD
% variable de salida
E = complex(single(zeros(10,10))); % Matriz con los
% vectores propios de Rxx.
Rxx = complex(single(zeros(10,10)));

Rxx = ReRN + 1i*ImRN;

[E,V] = svd(Rxx);

end

1.3.2.

FUNCION MAXIMO

function [POSICION_SENAL,NIVEL_SENAL] = MAXIMO(E)%#eml


assert( isa (E, 'single'))

137

138

Apndice A. Cdigos en Embedded MATLAB de algoritmos DoA.

assert ( all ( size(E) == [10 10] ) )


assert (~isreal((E)))

RePn = single(zeros(10,10));
ImPn = single(zeros(10,10));
Pn

= complex(single(zeros(10,5)));

En la siguiente seccin de la funcin

se construye Pn en su parte real

e imaginaria, Pn es la proyeccin ortogonal

complementaria de Ps, siendo

Ps la matriz de proyeccin del subespacio de seal.

for i = 1:10
for j = 1:10
for l = 1:5
RePn(i,j)

= RePn(i,j) + real(E(i,5+l))*...

real(E(j,5+l)) + imag(E(i,5+l))*imag(E(j,5+l));
ImPn(i,j)

= ImPn(i,j) + imag(E(i,5+l))*...

real(E(j,5+l)) - real(E(i,5+l))*imag(E(j,5+l));
end
end
end
Pn = RePn + 1i*ImPn;

THETA

= complex(single(zeros(1,10)));

= single(1);

= single(1);

= single(1);

= single(1);

SMUSIC

= single(zeros(1,3));

Apndice A. Cdigos en Embedded MATLAB de algoritmos DoA.

139

NIVEL_SENAL = single(zeros(1,9));
POSICION_SENAL = single(zeros(1,9));

for theta=29:1:151

for l = 1:10

THETA(l) = cos(pi*(l-1)*cos((pi/180)*theta))+...
1i*sin(pi*(l-1)*cos((pi/180)*theta));

end

SMUSIC(k) = single(-10*log10(abs(conj(THETA)*(Pn)*((THETA).'))));

if

theta > 30

if theta == 31
g = single(2); z = single(1);
end

if

SMUSIC(g) > SMUSIC(z) && SMUSIC(g) > SMUSIC(k)


NIVEL_SENAL(x) = SMUSIC(g);
aux = z ; z = g ; g = k ; k = aux ;
POSICION_SENAL (x) = theta - 1 ;
x = x+1; SMUSIC(k) = 0;

else
aux = z ; z = g ; g = k ; k = aux ;
SMUSIC(k) = 0;
end
else
k = k +1;
end

140

Apndice A. Cdigos en Embedded MATLAB de algoritmos DoA.

end
end

1.4.

DML

function [THETADML] = DML(ReRN,ImRN,iteracion)%#eml

assert(isa(ReRN,

'single'))

assert(isa(ImRN,

'single'))

assert(isa(iteracion, 'single'))

assert ( all ( size (ReRN)


assert ( all ( size (ImRN)

== [10 10] ) )
==

[10 10] ) )

assert ( all ( size (iteracion)

== (1) ) )

Rxx = ReRN + 1i*ImRN;


D

= complex(single(zeros(10,5)));

PiA = complex(single(zeros(10,10)));
Valor = complex(single(zeros(1,1)));
THETADML = single(zeros(1,9));
n = 1;

a1 = single(zeros(1,1));

while n <= iteracion

for i = 1:5

menor = single(100000);

for pasos

= single(30:1:150)

Apndice A. Cdigos en Embedded MATLAB de algoritmos DoA.

for l

= 1:10

D(l,i) = cos(pi*(l-1)*cos((pi/180)*pasos))+...
1i*sin(pi*(l-1)*cos((pi/180)*pasos));
end
PiA

= D*pinv(D);

Proy

= eye(size(PiA)) - PiA;

Valor

= (trace(Proy*(ReRN + 1i*ImRN)));

if abs(Valor) < menor

menor = abs(Valor);

a1

= pasos;

end
end

THETADML(i)

= a1;

for l = 1:10
D(l,i) = cos(pi*(l-1)*cos((pi/180)*a1))+...
1i*sin(pi*(l-1)*cos((pi/180)*a1));
end
end
n = n + 1 ;
end
end

141

Apndice B

DoA Y BF en un solo DSP.


En la seccin 2.1.3.2 se dio a conocer que una antena de haz adaptativo contiene
una unidad de DSP para realizar la etapa de DoA y BF. No obstante, el alcance de
esta investigacin se limit a la etapa de DoA, donde se evalu la respuesta computacional de los DSPs utilizando los algoritmos MUSIC y DML, determinando que
solo MUSIC cumple con la restriccin de tiempo establecido en la seccin 3.3.2.
Ahora, se debe evaluar el rendimiento del DSP cuando se ejecuta DoA y BF. Por tal
motivo, en esta seccin se establecen los parmetros de inters que se deben tener
en cuenta al momento de ejecutar la Conformacin de Haz.

2.1.

Conformacin de Haz (BF-Beamforming).

La Conformacin de Haz se puede realizar de forma analgica (La unidad de BF


se encuentra antes que las seales sean muestreadas por los A/D) o bien de forma
digital (La unidad de BF se encuentra despus que las seales son muestreadas
por los A/D). Un esquema de la Conformacin de Haz analgico se muestra en la
Figura 2.1.
De esta manera, todas las seales provenientes de cada sensor son multiplicadas
por los pesos Wl y retrasadas l (). Posteriormente, se realiza la superposicin de

143

144

Apndice B. DoA Y BF en un solo DSP.

Figura 2.1: Estructura de BF [3].

la misma para conformar el haz. En la ecuacin 2.1 se muestra la seal de salida de


la etapa de BF.

y(t) =

L
X

Wl xl (t l ())

(2.1)

l=1

Por lo tanto, el retraso l () en cada elemento, se ajusta de modo que las seales censadas por los dipolo, las cuales provienen de la direccin donde se desea
colocar el haz, se encuentren alineadas o en fase. Despus, se ajustan los pesos para
posicionar el haz en la direccin que gener la alineacin de las seales [3].

2.1.1.

Conformacin de Haz digital (DBF-Digital Beamforming).

La Conformacin de haz digital (DBF-Digital Beamforming) se puede ejecutar en


la misma unidad de DSP donde se ejecuta DoA. En este sentido, en DBF las seales
multiplicadas por los pesos Wl primero son muestreadas, luego almacenadas en la
memoria del DSP y, posteriormente, se suman una vez que se haya hecho los retardos ptimos para conformar el haz. El retardo ptimo se determina al seleccionar
las muestras provenientes de cada dipolo en tiempos diferentes, es decir, en diferentes intervalos de muestreos. Por tal motivo, el tiempo de retardo que experimenta

Apndice B. DoA Y BF en un solo DSP.

145

cada seal sensada por un dipolo, es mltiplo entero del tiempo de muestreo, el
cual llamaremos t. En la Figura 2.2 se muestra la secuencia de muestreo que se
sigue en DBF usando un arreglo de antenas lineal uniforme.

Figura 2.2: Secuencia de muestreo en DBF [3].

De esta manera, en la Figura 2.2 se observa que la seal cuyo ngulo de arribo
es 2 , debe ser sometida a un retardo dado por la siguiente ecuacin:

l (2 ) = (l 1)

(2.2)

En consecuencia, dicha ecuacin indica que la seal del primer elemento no

146

Apndice B. DoA Y BF en un solo DSP.

se retrasa, el segundo sufre un retardo de y as sucesivamente. La limitacin de


esta tcnica se debe a que solo se pueden formar haces en las direcciones donde
se requieren retardos que sean mltiplos de como se muestra en la ecuacin 2.3,
tales posiciones de arribo son 2 , 3 y 1 . Para el caso de 1 , el haz puede ser
formado al sumar las muestras que se encuentran en la lnea C.

l () = l

(2.3)

donde l = 1, 2, 3, ...., L. Una forma de incrementar el nmero discreto de posiciones donde se puede posicionar el haz, es aumentando el tiempo de muestreo,
como se muestra en la Figura 2.3. Al muestrear a /2, se pueden formar haces en
las posiciones de 4 y 5 y usando una red de suma para formar cada haz, permite una ejecucin en tiempo real. Sin embargo, esto requiere muestrear a una tasa
mayor a la requerida por el criterio de Nysquist para lograr reconstruir la forma
de onda. Adems, se debe disponer de memorias que permitan almacenar grandes
cantidades de datos y que trabajen a frecuencias muy elevadas [3].
En la Figura 2.3 se ilustra como varios haces se forman en instantes diferentes
de tiempo, por ejemplo, en el instante t /2 se maximiza a la salida la seal que
arriba con angulo 5 , en se maximiza la seal que arriba con angulo 5 .
En resumen, se tiene que en la DBF, se toman muestras a la salida de cada elemento del arreglo, que luego se procesan (mediante pesos y retardos) para generar
los haces deseados. Si se desea conseguir precisin en el apuntamiento del haz, es
necesario muestrear mucho ms all del criterio de Nyquist [11].
En contraste a lo anterior, si se tiene una estimacin de DoA previamente a travs de los algoritmos que utilizan mtodos de la autoestructura como es el caso de
MUSIC, el clculo de los pesos puede ser calculado utilizando las tcnicas clsicas
de sntesis del diagrama de radiacin [11]. Por otro lado, los retardos que se realizan para maximizar a la salida, la seal de inters, estn determinados al conocer
las posiciones espaciales de las seales a travs de los algoritmos DoA. En este sentido, la ejecucin de los algoritmos de direccin de arribo y la Conformacin de Haz

Apndice B. DoA Y BF en un solo DSP.

147

Figura 2.3: Secuencia de muestreo en /2

se deben realizar en tiempo real, lo que amerita un esquema de programacin donde se ejecuten las dos etapas de forma simultnea. Por esta razn, en la siguiente
seccin se establece cmo se realiza una programacin con multitareas y se presenta un esquema de cmo se aplicara esta tcnica en un DSP de un solo ncleo para
ejecutar DoA y BF.

148

Apndice B. DoA Y BF en un solo DSP.

2.2.

DoA y BF usando tcnicas de multiprogramacin.

La multiprogramacin es una tcnica de multiplexacin que permite la ejecucin simultnea de mltiples procesos en un nico procesador. De esta forma, se
permite una ilusin de paralelismo, de manera que parece que todos los procesos
se estn ejecutando a la vez. Sin embargo, hay un nico proceso ejecutndose en
el procesador a la vez [45]. La multiprogramacin se realiza a travs de un sistema
operativo en tiempo real mejor conocido como kernel, que en el caso de los DSPs de
Texas Instruments de la familia C6000, la herramienta que permite la multiprogramacin se conoce como TI-RTOS, informacin ms detallada sobre este herramienta
de Texas Instruments puede ser encontrada en [46].
Cabe sealar que los sistemas operativo en tiempo real estn formado, principalmente, por las mltiples tareas y por dos funciones que controlan el sistema, las
cuales se listan a continuacin:

El planificador de tareas o procesos.


Gestin de Memoria.

Planificacin de procesos o tareas. Esta funcin, determina cual proceso debe


ejecutarse en un instante determinado. Usualmente, el hardware interrumpir un
proceso en ejecucin en determinados instantes para permitir que el sistema operativo tome una nueva decisin de planificacin de forma que el tiempo se reparta
por igual, en la forma ms simple, o por el tiempo lmite que una tarea se le fue
asignada [47].
Existen dos etapas de planificacin, la primera de ellas es la planificacin a largo plazo que se encarga de determinar qu programas o tareas son admitidos, para
luego ser procesados en el sistema y cargados en la memoria. De esta manera, en
esta etapa de la planificacin se tiene un control del nmero de tareas que se encuentran en memoria y esperando por ser ejecutadas en el procesador. Una vez que
se admite una tarea, ste se aade a una cola asociada al planificador a corto plazo.
La segunda es la planificacin a corto plazo que se ejecuta frecuentemente y toma la

Apndice B. DoA Y BF en un solo DSP.

149

decisin ms especfica sobre cul tarea se ejecutar a continuacin. Para comprender de una mejor forma esta etapa de planificacin, se debe conocer los diferentes
estados en que se puede encontrar una tarea. En efecto, una tarea puede estar en
estado nuevo, preparado, ejecucin, espera o detenido.
En este orden de ideas, cada tarea contiene un bloque de control de proceso,
donde se aloja toda la informacin referente a la misma (identificador, estado, prioridad, contador de programa, entre otros) para que el procesador interprete la tarea
y lleve con xito la reanudacin o culminacin de la misma.
A continuacin, se presenta un ejemplo de dos tareas A y B para comprender
la interaccin entre el sistema operativo y las tareas. De esta manera, al iniciar el
programa, la tarea A se encuentra ejecuntndose. Por tal motivo, para ejecutar A,
el procesador toma las instrucciones del programa contenido en la particin de la
memoria de A. Seguidamente, el procesador deja de ejecutar instrucciones de A y
empieza a ejecutar instrucciones del sistema operativo. Esto puede suceder por las
siguientes razones [47]:

1. La Tarea A genera una llamada a un servicio del sistema operativo (ejemplo:


solicitud de una operacin Entrada/salida). La ejecucin de A se suspende
hasta que el sistema operativo ha completado el servicio solicitado.
2. La Tarea A origina una interrupcin. Cuando se detecta la interrupcin, deja
de ejecutar A, y pasa al gestor de interrupciones, el cual est incluido en el
sistema operativo. La interrupcin se puede generar por un error generado
en la tarea o porque se culmin el tiempo asignado al proceso, lo que evita
que la tarea monopolice al procesador.
3. Algn hecho no relacionado con la Tarea A (una solicitud de entrada de una
tarea en el planificador a largo plazo, complementacin de una operacin Entrada/Salida, entre otros).

De esta forma, despus que se detiene la Tarea A por algunas de las razones
expuestas anteriormente, el procesador guarda los datos de dicha tarea en el bloque

150

Apndice B. DoA Y BF en un solo DSP.

de control de proceso A y empieza a ejecutar el sistema operativo, donde la porcin


de dicho sistema correspondiente al planificador a corto plazo decide ejecutar la
Tarea B.
Una vez aclarado los conceptos para el uso de sistemas operativos en tiempo real (RTOS-Real-Time Operating System), un ejemplo es generado a continuacin
donde se explica como ejecutar DoA y BF bajo una programacin de multitareas.
Ejemplo de multiprogramacin para DoA y BF. En la etapa de DoA, se tiene
como entrada al vector de observaciones x y a la salida se tiene el vector que contie Toda la etapa de DoA se ha considerado como
ne los estimados de las seales ().
una tarea, la cual se llamar Tarea 1.

DoA
Figura 2.4: Etapa de DoA, Tarea 1.

La etapa de BF se puede dividir en dos Tareas. Una Tarea, la cual llamaremos


Tarea 2, est formada por el programa que genera los vectores de pesos para Rx y
Tx, asumiendo que el sistema es full Duplex y, otra tarea, que llamaremos Tarea 3
est formada por el programa que establece la comunicacin y controla los retardos
para maximizar a la salida la seal deseada.

BF
Figura 2.5: Etapa de BF, Tarea 2.

Organizacin de Tareas segn su nivel de importancia. La Tarea 3, resulta la


ms importante por el hecho de estar ejecutndose continuamente. Por lo tanto, la

Apndice B. DoA Y BF en un solo DSP.

151

misma debe realizarse cada tm /P, donde tm indica el tiempo de muestreo correspondiente a la seal en banda base y P indican el nmeros de seales que arriban
al arreglo siendo P < L. En nuestro caso se tiene:

fm = 3 10KHz = 30KHz

(2.4)

tm = 0,033ms

(2.5)

Para ilustrar la secuencia de las tareas, se asume en una primera prueba que
P = 1. En este sentido, en el gestor de interrupciones del sistema operativo, se debe
ejecutar una interrupcin cada tm sobre cualquier tarea que est en ejecucin, de
esta manera el planificador a corto plazo debe ordenar que el procesador ejecute la
Tarea 3 cada tm .
Por otro lado, la Tarea 1 est formada por el algoritmo de DoA. De esta manera,
una vez que se establezca la comunicacin con el usuario, su informacin espacial
debe ser actualizada cada 139ms, segn lo establecido en la seccin 3.3.2, lo que
indica que una interrupcin cada 139ms perteneciente a la Tarea 2 debe ejecutarse
para que el planificador a largo plazo ordene cargar en memoria dicha Tarea y sea
puesta en la cola asociada al planificador a corto plazo.
Al momento que la Tarea 1 toma el control del procesador, sta inicia adquiriendo las muestras para construir el vector de observacin y, por ende, la matriz
de covarianza. En consecuencia, el muestreo se realiza en modo Recepcin, a una
frecuencia intermedia (fI ) de 50MHz. As, se tiene que el tiempo de muestreo es el
siguiente:

ts =

1
= 6, 66ns
3 50MHz

(2.6)

De esta forma, cada ts se genera un vector de observacin que se organiza


en la cola asociado al servicio de Entrada/Salida del sistema operativo. Luego

152

Apndice B. DoA Y BF en un solo DSP.

que se carga un vector de observacin en la Tarea 2, se debe realizar la operacin


(x(nts ) x(nts )H + A), donde A representa la matriz que contiene la sumatoria de
la multiplicacin anterior a n. El tiempo de procesamiento del mismo fue calculado
en la seccin 4.3.2 para las plataformas C672x, C674x y C66xx que, para efectos de
este ejemplo, se consider el rendimiento de la C672x, por ser sta la que presenta
los tiempos de ejecucin ms crticos. De esta manera, el tiempo de procesamiento de cada observacin es 3, 72s, por lo que al inicio de DoA, se debe realizar N
interrupciones de 3, 72s para generar la matriz de covarianza.
Por otro lado, se debe tener presente que la Tarea 1 y la Tarea 3 deben ejecutarse
simultneamente, de tal manera que en el tiempo entre muestras (tm ), se dedicar
un porcin para establecer la conexin (Tarea 2) y una porcin para ejecutar DoA
(Tarea 1). El porcentaje de tiempo para cada Tarea se puede estimar al establecer
el tiempo de ejecucin de DoA, el cual debe ser mucho menor al tiempo de refrescamiento (139ms). En este ejemplo, se consider que el tiempo mximo para DoA
debe ser un 10 % de 139ms.

tDoAmax = 10 %ac 14ms

(2.7)

La estimacin del porcentaje de tm para ejecutar DoA se determin por la siguiente ecuacin:

tDoA|C672x
100
tDoAmax

(2.8)

donde tDoA|C672x = 5,03ms y tDoAmax = 14ms. De esta manera, de la ecuacin


2.8 se tiene que el 35 % de tm debe estar dedicado a la ejecucin de DoA hasta que
se realice la estimacin.
Luego que se tiene el vector con los DoAs de las seales, se inicia la Tarea 2 la
cual se encarga de estimar los pesos correspondientes a cada seal, el cual se debe
hacer en un tiempo menor que tm .

Apndice B. DoA Y BF en un solo DSP.

153

Interrupciones de las Tareas.


Tarea 3. Ejecuta una interrupcin cada tm = 0, 033ms.
Tarea 1. Ejecuta tres interrupciones. La primera interrupcin es para dar inicio
a la Tarea 1 por primera vez, esta se realiza cada 139ms. La segunda interrupcin es para la adquisicin del vector de observacin perteneciente a cada
muestra, dicha interrupcin se realiza N veces cada 3, 72s, siendo N el nmero de observaciones que, en nuestro caso N = 100. Por ultimo, se ejecuta
una interrupcin cada 0, 64xtm para que el planificador a corto plazo deje de
ejecutar la Tarea 3 y ejecute la Tarea 1.
Tarea 2. Se debe ejecutar en un tiempo menor que tm . Que para efectos de
este ejemplo, dicho tiempo es desconocido porque la investigacin solo se
han realizados simulaciones con DoA y no con algoritmos de BF.

En el esquema de la Figura 2.6 se encuentra la representacin de la secuencia


de tareas de DoA y BF con respecto a una ventana de tiempo. De esta manera, se
inicia en la Tarea 3 y, posterior a cumplirse el tiempo de refrescamiento, se genera
una interrupcin por parte de la Tarea 1. En consecuencia, la Tarea 3 de detiene y
el procesador ejecuta el sistema operativo donde se toma la decisin de ejecutar la
Tarea 1. Luego de haber transcurrido un tiempo igual a 35 %tm una interrupcin
por parte de la Tarea 3 se genera, para reestablecer la comunicacin. Por lo tanto,
este intercambio de tareas se hace hasta que se cumple el tiempo mximo en que se
puede determinar DoA.
Por otro lado, una vez que se haya determinado el nuevo DoA de la seal, se
genera una nueva interrupcin por parte de la Tarea 1. De esta forma, el sistema
operativo ordena que se cargue en memoria la Tarea 2 y sea puesto en la cola asociada al planificador a corto plazo. Posteriormente, se atiende la Tarea 3 y una vez
terminada, se produce una nueva interrupcin que ordena la ejecucin de la Tarea
2. Dicha Tarea debe terminar en un tiempo menor que tm .

Apndice B. DoA Y BF en un solo DSP.

Sistema
Operativo

Tarea 1

Tarea 2

Tarea 3

DoA terminado

154

Figura 2.6: Multitarea en una ventana de tiempo.

Por ltimo, es importante acotar que el sistema operativo cuenta con un gestor
de memorias, para controlar el nmero de tareas que pueden ser cargadas a la memoria principal. Por lo tanto, solo estarn en la memoria principal las tareas que
se encuentran en la cola asociada al planificador a corto plazo. En la Figura 2.7 se
muestra la entrada y salida de las tareas en la memoria principal.

Apndice B. DoA Y BF en un solo DSP.

155

Tx Rx

MUESTREO

MEMORIA
PRINCIPAL

DoA
Figura 2.7: Esquema de memoria principal.

BF

Apndice C

Consideracin de la frecuencia de
portadora.
En las simulaciones hechas en este trabajo, se consideraron seales que llegaban
al arreglo de antenas con frecuencias de portadoras que estaban separadas 1MHz.
Sin embargo, en los sistemas de comunicaciones mviles celulares todas las seales
tienen una misma frecuencia de portadora. Por tal motivo, se ha llevado a cabo la
simulacin de DML y MUSIC bajo este escenario.

3.1.

Algoritmo DML.

La simulacin se ha llevado a cabo para un nmero de dipolos igual a 10 con


una separacin d = 0, 5. Por otro lado, la relacin seal a ruido fue de 30dB y se
utiliz un nmero de observaciones igual a 1000. Adicionalmente, se han calculado
3 iteraciones. Por otra parte, la frecuencia de portadora de todas las seales fue de
850MHz. En la Tabla 3.1 se muestran las estimaciones hechas por DML, as como el

error respecto a los valores reales. En este sentido, si se compara esta Tabla con las
estimaciones hechas en la seccin 4.2, se observa que DML pierde precisin cuando
la frecuencia de portadora es nica para todas las seales que arriban al arreglo.

157

158

Apndice C. Consideracin de la frecuencia de portadora.


Tabla 3.1: Resultados de las estimaciones a fp = 850MHz.

Posiciones de fuentes
Estimaciones
Error

30
31

42
46

50
51

79
79

145
144

Por ltimo, se evalu la resolucin de este algoritmo, con una separacin de 10


entre las fuentes. En la Tabla 3.2 se muestran los resultados, donde se observa que
a una sola frecuencia de portadora el algoritmo pierde resolucin.
Tabla 3.2: Prueba de resolucin a fp = 850MHz.

Posiciones de fuentes
Estimaciones
Error

3.2.

40
44

50
48

60
63

70
73

80
80

Algoritmo MUSIC.

La codificacin de MUSIC usada en este trabajo, consider seales de tipo senoidal que arriban al arreglo de antenas con la misma potencia y con diferentes frecuencias de portadoras, logrando estimaciones que convergan a los valores reales.
No obstante, como se describi anteriormente, los sistemas de comunicaciones mviles trabajan a una sola frecuencia de portadora. Por tal motivo, se hicieron simulaciones considerando una fp = 850MHz y bajo los mismos parmetros de entrada
del algoritmo DML. De esta manera se observ que, para el cdigo usado en esta investigacin, en un escenario con la misma frecuencia de portadora para todas
las seales, el espectro MUSIC presenta una desmejora significativa. En la Figura
3.1 se muestra el espectro MUSIC con el cdigo usado en esta investigacin, pero
con datos de doble precisin, logrando soportar una separacin entre portadoras
de 100KHz.
Por otro lado, una ltima simulacin se realiz considerando dos seales con
la misma frecuencia de portadora de 850MHz y con 15 dipolos. En la Figura 3.2

Apndice C. Consideracin de la frecuencia de portadora.

159

Espectro Music (dB)

10

65

90

120

Figura 3.1: Espectro MUSIC con f = 100KHz.

se muestran los resultados, donde se aprecia que para el cdigo usado las seales
deben estar lo suficientemente separadas para lograr estimaciones certeras.
7.5

Espectro Music (dB)

8
8.5
9
9.5
10
10.5
11
11.5
12

60

120

Figura 3.2: Espectro MUSIC con dos seales a la misma frecuencia de portadora.

160

Apndice C. Consideracin de la frecuencia de portadora.


El cdigo usado para estos propsitos fue el siguiente:

L =15;
N = 1000;
vt = [60 120];
d = 0.5;
SNR = 30;
P = length(vt);

% Frecuencia de las seales incidentes en el arreglo


Deltaf = 0e3;
f = Deltaf*(0:P-1);
fd = 850e6;
% frecuencia de muestreo
fm = 2*fd;
THETA = [0 0 0 0];

% Vector de observaciones
ts = (1:N)/fm;
alfa = [0 0 0 0];

% Inicializando la matriz de observaciones


X = complex((zeros(L,N)));
s = complex(double(zeros(1,N)));
A

= complex(zeros(L,P));

a = [1 1 1 1 1];

% Modelos de la seal de las fuentes y matriz de seales

for i = 1:P
for n=1:N
s(i,n) = a(i)*(exp(1i*(2*pi*(fp(i)/fm)*n)+THETA(i)));

Apndice C. Consideracin de la frecuencia de portadora.

161

end
end
for l = 1:L
for i = 1:P
A(l,i) = exp(-1i*2*pi*(l-1)*d*cos((pi/180)*vt(i))*((fp(i))/fd));
end
end
X = A*s;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%

ALGORITMO MUSIC

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Rxx = zeros(L,L);
X = awgn(X,SNR);
Rxx = X*X'/(N);
[E,S,V] = svd(Rxx);
Pn = E(:,P+1:L)*E(:,P+1:L)';
ell = 0;
for theta=0:1:180
ell=ell+1;
atheta = exp(-1i*2*pi*d*cos((pi/180)*theta)*(0:L-1));
SMUSIC(ell) = (abs(conj(atheta)*Pn*(atheta.')));
end
theta=0:1:180;
plot(theta,-10*log10(SMUSIC))

Referencias Bibliogrficas
[1] J. Arceo. Desarrollo de Algoritmos para la Sntesis del Diagrama de Radiacin en
Comunicaciones Mviles Celulares Basadas en Antenas Inteligentes. PhD thesis,
Instituto Politcnico Nacional, Escuela Superior de Ingeniera Elctrica y Mecnica, Unidad Culhuacan, Mxico D.F, Enero 2008.
[2] S. Kuo and B. Lee. Real-Time Digital Signal Processing: Fundamentals, Implementations and Applications. John Wiley & Sons, 2001.
[3] L.C. Godara. Smart Antennas. CRC Press, 2004.
[4] T. Crook, CDG Technology Forum. Why Smart Antennas & Subscriber Device
Based Enhancements Are Important to Wireless Service Providers, October 1,
2002. URL http://www.cdg.org/news/events/CDMASeminar/cdg_tech_forum_
02/1_sprint_cdg_smart_antenna_rev.pdf.

Consultado: Febrero de 2015.

[5] I. Stevanovic, A. Skrivervik and J. Mosig. Smart Antenna Systems for Mobile
Communications. Laboratoire dElectromagntisme et dAcoustique Ecole Polytechnique Fdrale de Lausanne, January 2003.
[6] R. Albornoz y S. Mustaf. Antenas Inteligentes. V Encuentro Nacional de Ramas
IEEE, Noviembre 2004.
[7] A. Castillo y E. Rodrguez.

Simulacin y Estudio Comparativo de los

Algoritmos de Deteccin de Direccin de Arribo (DoA) Usados en Antenas


Inteligentes. Universidad de Carabobo, Venezuela. Trabajo Especial de Grado, Noviembre 2005.

163

164

Referencias Bibliogrficas

[8] A. Miquel.

Aportaciones Metodolgicas al Procesado de Bioseales en

Sistemas Embebidos. Universidad de Sevilla, Espaa. Proyecto Fin de Carrera,


20102011.
[9] P. H. Lehne and M. Pettersen. An Overview of Smart Antenna Technology for
Mobile Communications Systems. IEEE Communications Surveys, 2(4):212,
1999.
[10] M. Feuerstein, CDG Technology Forum. The Evolution Of Smart Antennas
To 3G, October 1, 2002. URL http://www.cdg.org/news/events/CDMASeminar/
cdg_tech_forum_02/5_metawave_cdg_technology_forum_10-1-02.pdf.

Consul-

tado: Febrero de 2015.


[11] O. Moreno, I. Franco y J. Miranda. Introduccin a la Tecnologa de Antenas
Inteligentes. Aplicacin a UMTS. Comunicaciones de Telefnica I+D, (21):4356,
1999.
[12] J. Hennessy and D. Patterson. Arquitectura de Computadores: Un Enfoque Cuantitativo. McGraw-Hill, 1993.
[13] M. De Quintal. FACTIBILIDAD DE IMPLEMENTACIN DE ANTENAS
INTELIGENTES PARA EL SISTEMA CELULAR CDMA 3G1X DE MOVILNET. Universidad Central de Venezuela. Trabajo Especial de Grado, Octubre
2004.
[14] A. Mitra. Lecture Notes on Mobile Communication. A Curriculum Development
Cell Project Under QIP, IIT Guwahati, 2009.
[15] C. Dietrich, W. Stutzman, B. Kim, and K. Dietze. Smart Antennas in Wireless
Communications: Base-Station Diversity and Handset Beamforming. IEEE
Antennas and Propagation Magazine, 42(5):142151, October 2000.
[16] C. Balanis. Antenna theory: Analysis and Design. John Wiley & Sons. 3ra edicin.,
2005.
[17] H. Krim and M. Viberg. Two Decades of Array Signal Processing Research:
The Parametric Approach. IEEE Signal Processing Magazine., pages 6794, 1996.

Referencias Bibliogrficas

165

[18] A. Cardama, L. Jofre, J.M Rius, J. Romeu, S. Blanch y M. Ferrando. Antenas.


Universitat Politcnica de Catalunya, 2002.
[19] P. Stoica and R. Moses. Spectral Analysis of Signals. Prentice Hall, Upper Saddle
River, New Jersey, 2005.
[20] G. Strang, Massachusetts Institute of Technology. Introduction to Linear Algebra.
Wellesley-Cambridge Press, Third Edition, 2003.
[21] P. Stoica and A. Nehorai. Music, Maximum Likelihood, and Cramer-Rao
Bound. IEEE Transactions on Acoustics, Speech, and Signal Processing, 37(5):720
741, 1989.
[22] R.O. Schmidt. Multiple Emitter Location and Signal Parameter Estimation.
IEEE Transactions on Antennas and Propagation, 34(3):276280, 1986.
[23] R. Roy and T. Kailath. Esprit-Estimation of Signal Parameters Via Rotational
Invariance Techniques. IEEE Transactions on Acoustics, Speech, and Signal Processing, 37(7):984995, July 1989.
[24] L.C. Godara. Handbook of Antennas in Wireless Communications. CRC Press LLC,
2002.
[25] W. Hines y D. Montgomery. Probabilidad y estadstica para ingeniera y administracin. COMPAA EDITORIAL CONTINENTAL, S.A. DE C.V. MXICO.
Tercera edicin, 1996.
[26] R. Chassaing. DSP Applications Using C and the TMS320C6x DSK. John Wiley
& Sons, Inc, 2002.
[27] Simposio Argentino de Sistemas Embebidos (SASE). URL http://www.sase.
com.ar.

Consultado: Enero de 2015.

[28] D. Perez, The MathWorks. De MATLAB a C de forma sencilla.

URL

http://www.mathworks.com/videos/matlab-to-c-made-easy-92097.html?
form_seq=conf1134&confirmation_page&wfsid=5813059&refresh=true.

sultado: Enero de 2015.

Con-

166

Referencias Bibliogrficas

[29] The MathWorks, Inc. Embedded MATLAB, Users Guide. 2007.


[30] H. Zarrinkoub, The MathWorks. Embedded MATLAB, part 1: From MATLAB
URL http://www.eetimes.com/document.asp?doc_id=

to embedded C.

1275570&page_number=1.

Consultado: Enero de 2015.

[31] The MathWorks, Inc. Real-Time Workshop For Use with SIMULINK,
Users Guide. 1999.
[32] H. Deitel and P. Deitel. Cmo programar en C/C++ y Java. PEARSON, Prentice
Hall, Cuarta edicin, 2004.
[33] Code::Blocks. URL http://www.codeblocks.org/home. Consultado: Enero de
2015.
[34] Texas Instruments. Code Composer Studio (CCS) Integrated Development
Environment (IDE), . URL http://www.ti.com/tool/ccstudio. Consultado:
Febrero de 2015.
[35] R. Albornoz. Trabajo Prctico del Laboratorio de Antenas. Universidad de Carabobo, Venezuela, 1982.
[36] CONATEL. Cuadro Nacional de Atribuciones de Bandas de Frecuencias.
2010.
[37] B. Lathi. Introduccin a la teora y SISTEMAS DE COMUNICACIN. Limusa,
Noriega Editores. Mxico D. F, 2002.
[38] Gaceta Oficial N 5.240.

Reglamento de la Ley de Trnsito Terrestre,

Venezuela. Junio 1998.


[39] B. Powel. Real-Time Agility: The Harmony/ESW Method for Real-Time and Embedded Systems Development. Addison-Wesley Professional, 2009.
[40] Texas Instruments. Profile clock in CCS, . URL http://processors.wiki.ti.
com/index.php/Profile_clock_in_CCS.

[41] Texas Instruments.

Consultado: Febrero de 2015.

Download CCS, .

URL http://processors.wiki.ti.

com/index.php/Download_CCS?keyMatch=CCS%20dowload&tisearch=Search-EN.

Consultado: Febrero de 2015.

Referencias Bibliogrficas

167

[42] Texas Instruments. Main Page, . URL http://processors.wiki.ti.com/index.


php/Main_Page.

Consultado: Febrero de 2015.

[43] Texas Instruments. Code Composer Studio Getting Started Guide. May 2001.
[44] Computer Science University of Maryland. Big and Little Endian. URL http:
//www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html.

Consul-

tado: Febrero de 2015.


[45] Universidad de Sevilla. Multiprogramacin. URL https://1984.lsi.us.es/
wiki-ssoo/index.php/Multiprogramaci%C3%B3n.

Consultado: Marzo de 2015.

[46] Texas Instruments. TI-RTOS 1.21, Getting Started Guide. 2014.


[47] W. Stallings. Organizacin y Arquitectura de Computadora. Pearson-Prentice
Hall, 7ma edicin, 2006.

Anda mungkin juga menyukai