FACULTAD DE INGENIERA
ESCUELA DE INGENIERA DE
TELECOMUNICACIONES
DEPARTAMENTO DE
ELECTROMAGNETISMO Y RADIACIN
DAVID A. RANGEL B.
e-mail: jedara1@hotmail.com
JOS D. MADURO H.
e-mail: danielmaduroh@hotmail.com
UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA DE
TELECOMUNICACIONES
DEPARTAMENTO DE
ELECTROMAGNETISMO Y RADIACIN
DAVID A. RANGEL B.
JOS D. MADURO H.
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
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
JURADO
JURADO
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.
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
4
4
4
5
7
7
7
8
9
11
12
12
13
14
15
15
16
16
18
VIII
ndice general
45
46
47
48
52
52
56
56
67
57
60
62
62
63
65
66
67
68
69
ndice general
IX
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
133
133
136
137
137
137
140
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
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
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.
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
Acrnimos
ADC
ASIC
AWGN
BER
BF
BeamForming
CCS
CDMA
C-MEX
C-Matlab Executable
CRB
Cramer-Rao Bound
DBF
Digital BeamForming
DML
DoA
Direction of Arrival
DSP
EVD
FDMA
FPGA
GFLOPS
IDE
ML
Maximun Likelihood
MIT
MUSIC
nULA
RTOS
Acrnimos
XX
SDMA
SNR
SVD
TDMA
TI
Texas Instruments
UC
Universidad de Carabobo
ULA
Lista de Smbolos
al ()
a()
aULA ()
A(), A
Matriz de direccionamiento
Pseudoinversa de Moore-Penrose de A
Induccin magntica
Velocidad de la luz
Campo elctrico
E(r, t)
Matriz identidad
Vector de onda
k, |k|
Nmero de onda
Nmero de observaciones
n(t)
N(t)
PMUSIC
Espectro MUSIC
rl
R
R
Matriz de covarianza
Matriz de covarianza estimada para N observaciones
XXI
Lista de Smbolos
XXII
s(t)
Seal transmitida
si (t)
s(t)
S(t)
Vector de seales
Tiempo
ul
Matriz de unitaria
US
Subespacio de seal
Un
Subespacio de ruido
xl
xl (t)
x(t)
yl
Constante dielctrica
Constante magntica
Frecuencia angular
Longitud de onda
i
DML
2
ts
Delta de Dirac
n ,
S
Lista de Smbolos
E{}
Esperanza estadstica
()
Operador de divergencia
()
Operador rotacional
2 ()
Operador laplaciano
()T
Transpuesta
()H
()
Complejo conjugado
()
Estimado
()
Pseudoinversa de Moore-Penrose
kk
Norma Euclidiana
LDML ()
T r{}
arg{}
XXIII
RESUMEN
XXVI
Resumen
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
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
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:
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.
2.1.1.
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.
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].
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.
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
10
Tx - Rx
CDMA
(a) CDMA
Tx - Rx
FDMA
(b) FDMA
considerado como una prdida de potencia, pues la mayor parte de ella ser radiada
en otras direcciones y no hacia el usuario deseado [5].
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]:
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
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.
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
13
Seal
Interferencia
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.
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
2.1.3.2.
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.
15
Uplink
DUPLEXER
DUPLEXER
COUPLER
COUPLER
Tx
DUPLEXER
COUPLER
Downlink
DoA
DSP
BF
Rx
2.2.
2.2.1.
16
para cada algoritmo. Finalmente, se estudian los dos algoritmos que sern usados
en este trabajo, MUSIC y ML3
2.2.1.1.
2.2.1.2.
Propagacin de ondas.
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)
2 E
( B) = 0 0 2
t
t
(2.6)
1 2
E=0
c2 t2
(2.7)
(2.8)
18
Frente de Onda
Plano
Onda
Electromagntica
Fuente Puntual
2.2.1.3.
19
Sensor
Fuente
cos sin
T
(2.9)
xl yl
T
(2.10)
(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
(2.12)
x(t) = a()s(t)
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.
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.
21
Fuente
Onda
Plana
Sensor
(2.15)
T
(2.16)
22
P
X
(2.17)
i=1
S(t) =
LP
T
P1
(2.18)
(2.19)
(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.
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)
23
E S(t)SH (t) = P
(2.22)
E n(t)nH (t) = 2 I
(2.23)
(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)
(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
2.2.1.6.
(2.27)
Matriz de observaciones.
(L N)
(2.28)
25
Fuente
Onda
Plana
Sensor
X(t) =
x1 (2) . . . x1 (N)
..
.
.
.
.
x1 (1)
(2.29)
LN
Adicionalmente, se puede expresar de forma explcita la matriz de direccionamiento A() de la siguiente manera:
A() =
(2.30)
26
...
ejkd1 cos 2
...
ejkd1 cos P
ejkd2 cos 2
..
.
...
..
.
ejkd2 cos P
..
.
jkd1 cos 1
e
..
ejkdL1 cos 1
ejkdL1 cos 2
. . . ejkdL1 cos P
LP
s (t)
1
s2 (t)
S(t) =
..
.
sP (t)
s
(
1
)
s
(
2
)
.
.
.
s
(N)
2
2
2
=
..
..
..
..
.
.
.
.
(2.31)
PN
N(t) =
n1 (2) . . . n1 (N)
..
.
.
.
.
n1 (1)
(2.32)
LN
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
Nmero de observaciones
ndice de fuentes
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
Descomposicin
EVD
(2.33)
(2.34)
29
u1 , u2 , ..., uP
S = diag
n = diag
(2.35)
LP
L(LP)
1 , 2 ..., P
(2.36)
(2.37)
(2.38)
(2.39)
2.2.2.1.
Espectro MUSIC.
30
1 , 2 , . . . , P
(2.40)
uP+1 , uP+2 , . . . , uL
(2.41)
(2.42)
H
H
n =
S = Un Un = I US US
(2.43)
n
S
S
(2.44)
1
nU
H a()
aH ()U
n
1
SU
H )a()
aH ()(I U
S
(2.45)
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.
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].
(2.46)
32
(2.47)
2.2.3.1.
E n(t)nH (t) = 2 Its
(2.48)
E n(t)nT (t) = 0 t, s
(2.49)
33
(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
1 X
x(t) As(t)
2
2 N t=1
N
(2.52)
1
T r A R
L
s(t) = A x(t)
(2.53)
(2.54)
34
H
Moore-Penrose de A y
A es el proyector ortogonal sobre el espacio nulo de A [20].
1
A = AH A
AH
(2.55)
A = AA
(2.56)
A = I A
(2.57)
AR
(2.58)
2.3.
(2.59)
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-
35
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.
36
2.3.1.
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.
37
Figura 2.11: Diagrama de bloque bsico de un sistema de DSP en tiempo real [2].
2.4.
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
2.4.1.
Embedded MATLAB.
39
40
41
2.4.1.1.
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
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
2.4.1.2.
43
esta manera, es posible verificar escaladamente cada parte del cdigo C generado
mediante estas funciones C-MEX.
2.4.2.
2.4.3.
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
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:
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
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
3.1.
3.1.1.
47
(3.1)
(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
(3.3)
48
ecuacin:
Ai sin(2fi t)ej2fpi t
(3.4)
3.1.2.
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.
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].
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
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)
(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)
51
2
o
(3.8)
fpi fi
cos(i )
fd
(3.9)
X = AS + N
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=
LP
(3.12)
52
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.
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
54
Rxx
Declarar
variables
i = 1
Inicializar
mnimo
Valor = traza{Proy*Rxx}
S
mnimo = Valor
No
Incremento
S
No
i = i+1
S
i <= P
No
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
56
3.3.
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.
(3.14)
57
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.
58
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
(3.16)
La condicin ms crtica de un sistema de Antena Inteligente, es una fuente que se mueva a una
determinada velocidad.
59
Estacin base
Usuario
Usuario
crtico
en salir del rea de cobertura. Dicho tiempo puede aproximarse por la siguiente
ecuacin:
tac
x
139ms
(3.17)
(3.18)
60
No
MUSIC
DML
BF
3.3.3.
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?
62
3.4.
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
3.4.1.
Modificacin del cdigo en MATLAB con las restricciones interpuestas por Embedded MATLAB.
63
3.4.2.
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
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:
65
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.
66
3.4.4.
Captulo IV
Anlisis, interpretacin y
presentacin de los resultados
4.1.
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
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
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:
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.
70
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.
4.2.1.
Smbolo
d
L
fd
f
P
Valor
0,5
10
850MHz
1MHz
5
[30 42 50 79 145]
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
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
72
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
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
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
145
73
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
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
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
de las posiciones estimadas para una SNR de 0dB en cuyo caso las estimaciones se
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
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
145
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
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
145
76
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.
Ahora, se presentan grficos para un valor constante de SNR = 30dB y una variacin de N = 500, 200, 100, 10.
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
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
50
= 30 42 50 79 145
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
145
78
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
= 30 42 50 79 145
2.71
2
0
2
4
4.13
4.96
6
8.71
8
10
48
79
98
8.01
115
145
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
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
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
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
145
81
1
30
42
50
79
145
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
82
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.
Grfica de MUSIC:
La Figura 4.17 muestra los mximos del espectro MUSIC en condiciones desfavorables.
1
= 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
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
1
30
42
50
79
145
84
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.
85
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
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
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)
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
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
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
88
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.
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.
20 18.0076
= 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.
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
manera precisa.
1
55
60
65
70
75
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
91
50
PMUSIC (dB)
40
30
20
10
10
30
42
50
79
145
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
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.
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.
93
C672x
C674x
Funcin
Ciclos de reloj
Ciclos de reloj
Matriz de covarianza
80477288
80117542
SVD
647989
629898
Mximo
5211098
5068011
86336375
85815451
MUSIC
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
94
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
95
C672x
C674x
C672x
C674x
C672x
C674x
C64xx
96
Memoria
C672x
C674x
C64xx
MUSIC.out (KB)
198, 305
182, 651
266, 432
MUSIC.map (KB)
48, 420
38, 740
85, 736
97
C672x
C674x
Funcin
Ciclos de reloj
Ciclos de reloj
Matriz de covarianza
79819499
80055247
DML
215398762
220416643
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
588709741
599136555
98
C672x
C674x
Funcin
Ciclos de reloj
Ciclos de reloj
Matriz de covarianza
79779099
80055247
DML
803856586
819270800
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
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
540466950
550771515
C672x
C674x
Funcin
Ciclos de reloj
Ciclos de reloj
Matriz de covarianza
31615220
31727759
DML
804404793
819820328
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
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
525184762
535430521
99
100
C672x
C674x
Funcin
Ciclos de reloj
Ciclos de reloj
Matriz de covarianza
15794818
15846592
DML
804356558
819772965
820151376
835619557
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.
101
Tabla 4.28: Resultados de la estimacin de DML con 500 observaciones para las
tres iteraciones.
C672x
C674x
Iteracin 1
Iteracin 2
Iteracin 3
Tabla 4.29: Resultados de la estimacin de DML con 200 observaciones para las
tres iteraciones.
C672x
C674x
Iteracin 1
Iteracin 2
Iteracin 3
Tabla 4.30: Resultados de la estimacin de DML con 100 observaciones para las
tres iteraciones.
C672x
C674x
Iteracin 1
Iteracin 2
Iteracin 3
102
Memoria
C672x
C674x
DML.out (KB)
207, 039
281, 001
DML.map (KB)
52, 500
65, 792
4.3.2.
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
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
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
104
C672x
C674x
C66xx
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.
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
C672x
C674x
C66xx
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
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)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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;
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.
Ciclos de reloj
Tiempo de ejecucin
1303
3, 72s
Dividir entre N
21542
61,54s
108
Ciclos de reloj
Tiempo de ejecucin
1206
2, 64s
Dividir entre N
22389
49, 908s
Ciclos de reloj
Tiempo de ejecucin
1118
0, 89s
Dividir entre N
2165
1,73s
(4.2)
(4.3)
(4.4)
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:
(4.5)
110
20
15
PMUSIC (dB)
10
5
0
5
10
15
20
30
42
50
79
145
4.4.
4.4.1.
111
Modificacin del cdigo en MATLAB con las restricciones interpuestas por Embedded MATLAB.
'single'))
assert(isa(N,
'single'))
assert(isa(theta,'single'))
assert(isa(d,
'single'))
== (1) ) )
== (1) ) )
== (1) ) )
== (1) ) )
== (1) ) )
112
= 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;
113
%Matriz de covarianza
ReRN = ReRN/N;
ImRN = ImRN/N;
end
4.4.2.
114
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).
115
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
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
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
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
117
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-
118
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.
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
119
4.4.4.
120
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.
121
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
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.
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.
124
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.
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.
125
pragma CODE_SECTION(main,".main")
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:
o = 0x10000000
l =
0x00000400. Esto se hizo con las secciones del cdigo de la matriz de covarianza
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
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.
127
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
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
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.
130
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
131
132
cualquier algoritmo, diseado para aplicaciones embebidas, hasta que los mismos
son introducidos en CCS.
5.2.
Recomendaciones.
Apndice A
1.1.
MATRIZ DE COVARIANZA.
assert(isa(DeltF, 'single'))
assert(isa(SNR,'single'))
assert(isa(L,
'single'))
assert(isa(N,
'single'))
assert(isa(theta,'single'))
assert(isa(d,
'single'))
133
134
== (1) ) )
== (1) ) )
== (1) ) )
== (1) ) )
== (1) ) )
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);
fd = single(850e6);
ts = single(1/(3*50e6));
for t = 0:ts:(N-1)*ts
RXaux
= single(zeros(10,1));
= single(zeros(10,1));
ReRn
= single(zeros(10,10));
ImRn
= single(zeros(10,10));
135
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
RXaux = Rawgn(RXaux,SNR);
IXaux = Rawgn(IXaux,SNR);
la parte imaginaria
136
end
Matriz de acumulacin.
ReRN = ReRN+ReRn;
ImRN = ImRN+ImRn;
end
ReRN = ReRN/N;
ImRN = ImRN/N;
end
1.2.
RUIDO AWGN.
== (1) ) )
1.3.
ALGORITMO MUSIC.
1.3.1.
Funcin SVD.
% SVD
% variable de salida
E = complex(single(zeros(10,10))); % Matriz con los
% vectores propios de Rxx.
Rxx = complex(single(zeros(10,10)));
[E,V] = svd(Rxx);
end
1.3.2.
FUNCION MAXIMO
137
138
RePn = single(zeros(10,10));
ImPn = single(zeros(10,10));
Pn
= complex(single(zeros(10,5)));
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));
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
else
aux = z ; z = g ; g = k ; k = aux ;
SMUSIC(k) = 0;
end
else
k = k +1;
end
140
end
end
1.4.
DML
assert(isa(ReRN,
'single'))
assert(isa(ImRN,
'single'))
assert(isa(iteracion, 'single'))
== [10 10] ) )
==
[10 10] ) )
== (1) ) )
= 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));
for i = 1:5
menor = single(100000);
for pasos
= single(30:1:150)
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)));
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
2.1.
143
144
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.
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.
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)
146
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
147
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
2.2.
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:
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]:
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
DoA
Figura 2.4: Etapa de DoA, Tarea 1.
BF
Figura 2.5: Etapa de BF, Tarea 2.
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)
152
(2.7)
La estimacin del porcentaje de tm para ejecutar DoA se determin por la siguiente ecuacin:
tDoA|C672x
100
tDoAmax
(2.8)
153
Sistema
Operativo
Tarea 1
Tarea 2
Tarea 3
DoA terminado
154
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.
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.
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
Posiciones de fuentes
Estimaciones
Error
30
31
42
46
50
51
79
79
145
144
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
159
10
65
90
120
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
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
L =15;
N = 1000;
vt = [60 120];
d = 0.5;
SNR = 30;
P = length(vt);
% Vector de observaciones
ts = (1:N)/fm;
alfa = [0 0 0 0];
= complex(zeros(L,P));
a = [1 1 1 1 1];
for i = 1:P
for n=1:N
s(i,n) = a(i)*(exp(1i*(2*pi*(fp(i)/fm)*n)+THETA(i)));
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.
[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.
163
164
Referencias Bibliogrficas
[8] A. Miquel.
Consul-
Referencias Bibliogrficas
165
URL
http://www.mathworks.com/videos/matlab-to-c-made-easy-92097.html?
form_seq=conf1134&confirmation_page&wfsid=5813059&refresh=true.
Con-
166
Referencias Bibliogrficas
to embedded C.
1275570&page_number=1.
[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.
Download CCS, .
URL http://processors.wiki.ti.
com/index.php/Download_CCS?keyMatch=CCS%20dowload&tisearch=Search-EN.
Referencias Bibliogrficas
167
[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-