Full text
Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Identificación de las medidas sin línea de visión directa en un sistema UWB de localización Autor: Noel Cortés García Tutora: Eva Arias de Reyna Domínguez Dpto. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019
iii Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Identificación de las medidas sin línea de visión directa en un sistema UWB de localización Autor: Noel Cortés García Tutora: Eva Arias de Reyna Domínguez Profesora Titular de Universidad Dpto. de Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019
v Proyecto Fin de Carrera: Identificación de las medidas sin línea de visión directa en un sistema UWB de localización Autor: Noel Cortés García Tutora: Eva Arias de Reyna Domínguez El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2019 El Secretario del Tribunal
vii A mi familia A mis maestros
ix Agradecimientos En primer lugar, agradecer especialmente la labor de Dña. Eva Arias de Reyna Domínguez por confiarme este proyecto y prestarme su tiempo para guiarme a llevarlo a buen término, además de proveerme del material de laboratorio y la bibliografía necesarios para realizarlo. Al departamento de teoría de la señal y comunicaciones, por permitirme realizar el conjunto de las medidas de este trabajo en sus instalaciones. A todos mis compañeros de universidad, con los que he compartido infinidad de horas, en clase o estudiando, y en especial a Pablo y a Alba, con los que he pasado varios años compartiendo piso en Sevilla. A mi madre y a Pepe, que gracias a sus esfuerzos he conseguido llegar hasta aquí y poder llegar a redactar este proyecto. A mi novia Lorena, por su paciencia y sus ánimos para seguir adelante. Sevilla, 2019
Índice de Tablas Tabla 3-1: Configuración de ajuste del kit de Evaluación. Tabla 3-2: Modos de operación del kit de Evaluación.
xvii
Índice de Figuras Figura 2-1: Ejemplo de distribución de tres casos en el ratio. Figura 2-2: Ejemplo de gráfica de RMS Delay Spread. Figura 3-1: Caja contenedora del kit de evaluación EVK1000 de DecaWave. Figura 3-2: Placa kit de Evaluación EVK1000 (ancla). Figura 3-3: Placa kit de Evaluación EVK1000 (tag). Figura 4-1: Ejemplo de señal LOS Figura 4-2: Ejemplo de señal NLOS. Figura 4-3: Ejemplo de medida corrupta. Figura 4-4: Ejemplo de medida NLOS con pared como obstáculo. Figura 4-5: Ejemplo de medida NLOS con puerta como obstáculo. Figura 5-1: Contenido del fichero de salida de buscaFSL.sh. Figura 5-2: Contenido del fichero de salida de buscaRSL.sh. Figura 5-3: Código para exportar los datos de los ficheros .txt a MatLab/Octave. Figura 5-4: Código para exportar los datos de los ficheros .txt a MatLab/Octave. Figura 5-5: Código que calcula el ratio de las medidas tomadas para calcular el umbral. Figura 5-6: Código que calcula el ratio de las medidas tomadas para poner a prueba el umbral. Figura 5-7: Histograma de los ratios de las medidas para calcular el umbral. Figura 5-8: Histograma de los ratios de las medidas para poner a prueba el umbral. Figura 6-1: Ejemplo de gráfica de una medida. Figura 6-2: Extracto de código de búsqueda del pico máximo. Figura 6-3: Histograma del RMS Delay Spread de las medidas para calcular el umbral. Figura 6-4: Histograma del RMS Delay Spread de las medidas para poner a prueba el umbral. Figura 7-1: Extracto del código para la probabilidad de error del ratio. Figura 7-2: Extracto del código para la probabilidad de error del RMS Delay Spread. Figura 9-1: Página web del software del driver. Figura 9-2: Configuración del canal de comunicación.
xix Figura 9-3: pantalla del software DecaWave con la opción de visualizar gráfica. Figura 9-4: Ejemplo de trama recogido en el Log Channel Responses. Figura 9-5: Ejemplo de respuesta impulsiva en el Log Channel Responses. Figura 9-6: Ejemplo de vuelco de datos en MatLab/Octave. Figura 9-7: Ejemplo de fichero de salida de script.
xxi Notación RMS Root Mean Square UWB Ultra Wide Band GPS Global Position System AoA Ángulo de llegada ToA TDoA Tiempo de llegada Diferencia de tiempo de llegada FCC Federal Communication Commission B Ancho de banda 𝑓𝑢 Frecuencia superior 𝑓𝑙 Frecuencia inferior 𝑓𝑜 Frecuencia central WUSB Wireless Universal Serial Bus WPAN Wireless Personal Area Network LOS Line Of Sight NLOS Non Light Of Sight NLOS/DDP Non Light Of Sight/Detected Direct Path NLOS/UDP Non Light Of Sight/Undetected Direct Path dBm Decibelios (mW) : Tal que < Menor o igual > Mayor o igual
1 1 INTRODUCCIÓN as comunicaciones inalámbricas me han llamado la atención desde el Bachillerato. Siempre me ha gustado la física y, cuando todo el mundo empezó a tener WiFi en sus casas, luego a conexión a Internet en los teléfonos móviles, etc. me empezó a llamar la atención el saber cómo funcionaba todo eso de verdad, qué había detrás de todo eso. Y por eso empecé a estudiar Ingeniería de Telecomunicaciones. Luego, en tercero, la profesora Eva Arias de Reyna nos enseñó en clase un sistema de localización en interiores, pensé que eso era una idea con una utilidad increíble. Y cuando en cuarto vi que ofrecía un Trabajo de Fin de Grado sobre ello no lo dudé. Es cierto que para localizar cosas, un móvil o un coche por ejemplo, ya existen distintas tecnologías como GPS o GLONASS, pero dichas tecnologías no ofrecen resultados nada aceptables cuando se trata de localizar un objeto en el interior de un edificio. Por eso, se estudian otras opciones. En otras asignaturas estudié acerca de Ultra Wide Band (UWB sus siglas en inglés), conocí ventajas e inconvenientes de esta tecnología y la verdad es que en el tema que nos ocupa en este proyecto, es la tecnología que mejor cumple los requisitos para un sistema de estas características. Hay varias técnicas para estimar a qué distancia se encuentra un objeto, algunas de ellas son según el ángulo de llegada (AoA), según el tiempo de llegada (ToA) o según el nivel de potencia (RSS) de la señal recibida. Con el kit que utilizaremos en este proyecto, la técnica utilizada será la del tiempo de llegada (ToA). En este proyecto utilizaremos las técnicas de RMS Delay Spread y el ratio potencia primer camino frente a potencia total para lograr identificar si una señal tiene línea de visión directa (LOS) o no tiene línea de visión directa (NLOS). 1.1 Objetivos • Fundamentos teóricos de la tecnología UWB y de las técnicas RMS Delay Spread y el ratio potencia primer camino frente a potencia total. • Funcionamiento básico y comunicación de comunicaciones UWB usando el kit de DecaWave EVK1000 y el software Decaranging, proporcionado igualmente por DecaWave. • Toma de medidas en múltiples puntos para formar una base de datos suficientemente grande. L
Introducción 2 2 • Para completar el planteamiento de las dos técnicas de identificación mencionadas, aplicarlas a la base de datos de medidas obtenida anteriormente y extraer un umbral de decisión LOS/NLOS con cada una de ellas. • Cálculo de la probabilidad de error de las dos técnicas de identificación establecidas, mediante un conjunto de medidas diferente del utilizado para decidir los umbrales, teniendo en cuenta que a priori sabemos si las medidas realizadas eran con línea de visión directa o sin ella. • Una vez tenido todo lo anterior en cuenta, evaluar cuál el grado de idoneidad de cada una de las dos técnicas para el objetivo del proyecto. 1.2 Estructura La organización del presente documento consta de 11 capítulos: • Primer capítulo: Breve introducción del presente proyecto, junto con la motivación, objetivos y estructura del mismo. • Segundo capítulo: Capítulo teórico donde se tratan las características tanto de la tecnología UWB como de las técnicas que se utilizan para la identificación LOS/NLOS. • Tercer capítulo: En este capítulo se explica todo lo relacionado con el entorno de trabajo del proyecto. • Cuarto capítulo: En el cuarto capítulo se explican la serie de medidas que se han tomado, si estas son LOS o NLOS y se detallan los casos particulares que se han ido encontrando a medida que se realizaba este proyecto. • Quinto capítulo: Se explica detalladamente en este capítulo el funcionamiento del programa que calcula el ratio potencia primer camino frente a potencia total de las medidas tomadas con anterioridad, proponiendo un valor adecuado de umbral para la identificación. Se ilustran también los resultados obtenidos a raíz de su ejecución. • Sexto capítulo: En este sexto capítulo se muestra cómo funciona el programa que calcula el RMS Delay Spread de las medidas obtenidas. Como en el apartado anterior, en este también se propone un valor adecuado de umbral de identificación. Se muestran los resultados conseguidos a través de la ejecución del código. • Séptimo capítulo: En el séptimo capítulo se aplican las dos técnicas empleadas en la identificación LOS/NLOS de un nuevo conjunto de medidas y se realiza el cálculo de la probabilidad de error de cada una de las técnicas.
3 3 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización • Octavo capítulo: Capítulo dedicado a los resultados y conclusiones del proyecto. • Apéndice A: Se resume el funcionamiento del software Decaranging, de DecaWave, utilizado en este proyecto para obtener los logs. • Apéndice B: Se encuentran todos los códigos ShellScript utilizados en este proyecto. • Apéndice C: Se encuentran todos los códigos MatLab/Octave utilizados en este proyecto.
Conceptos teóricos 10 10 Para decidir si una señal es LOS o NLOS con este método, se requiere de un umbral de decisión: 𝐻𝑜: 𝜏𝑟𝑚𝑠>𝜏𝑡ℎ→𝑁𝐿𝑂𝑆 𝐻1: 𝜏𝑟𝑚𝑠<𝜏𝑡ℎ→𝐿𝑂𝑆 Ecuación 7: Umbrales de decisión para el RMS Delay Spread. Por tanto, esta es una operación bastante más compleja de realizar computacionalmente que la ecuación del ratio que se presentó en el punto anterior, algo a tener en cuenta a la hora de decantarse por una u otra técnica. Para poder observar de manera gráfica lo que mide la técnica del RMS Delay Spread, se cierra el apartado presentando la figura 2-2, donde se ilustra un ejemplo [8]: Figura 2-2: Ejemplo de gráfica de RMS Delay Spread.
11 11 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización
Entorno de trabajo 12 12 3 ENTORNO DE TRABAJO 3.1 Introducción En este apartado se describe el entorno de investigación en el cual se ha realizado este proyecto. Se han utilizado las siguientes referencias para el desarrollo de este apartado: [2] [3] [4] [5] [12]. 3.2 Equipos Para llevar a cabo este proyecto, se necesita contar con el kit EVK1000 Evaluation Kit para realizar las medidas oportunas. Este kit de evaluación incluye: • 2 placas EVB1000. • 2 antenas. • 2 cables USB 2.0. • Guía de inicio rápido. La figura 3-1 ilustra la caja donde viene guardado el kit de evaluación:
13 13 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización Figura 3-1: Caja contenedora del kit de evaluación EVK1000 de DecaWave. La placa de evaluación EVB1000 tiene unas medidas de 7 x 7cm. El frontal de la placa dispone de una pantalla LCD, donde se muestra información de las medidas de distancia, y también dispone de un interruptor (S1) que controla el modo de operación.
Entorno de trabajo 14 14 La parte trasera contiene el DW1000 IC, el ARM IC, el botón de ARM reset, dos interruptores DIP (S2 y S3), el conector JTAG, la conexión externa SPI y varios conectores y jumpers para configurar el modo de operación. 3.2.1 Transmisores Este Kit incluye dos placas idénticas EVB1000, las cuales se ilustran en las figuras 3-2 y 3-3: Figura 3-2: Placa kit de Evaluación EVK1000 (ancla).
15 15 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización Figura 3-3: Placa del kit de Evaluación EVK1000 (tag). 3.2.1.1 Características Las placas del kit de Evaluación EVK1000 presentan las siguientes características: • Cumple IEEE 802.15.4-2011 UWB y las máscaras definidas por FCC y ETSI.
Entorno de trabajo 16 16 • Soporta 6 bandas RF de 3.5GHz a 6.5GHz. • Programación de la potencia de salida. • Soporta voltaje de 2.8V a 3.6V. • Tasa de datos de 110kbps, 850 kbps y 6.8Mbps. • Longitud máxima del paquete 1023 bytes para determinadas aplicaciones. • Soporta Ranging TOA y Ranging TDOA. 3.2.1.2 Figuras de mérito Las figuras de mérito de este sistema son las que siguen: • Localización con una precisión de 10 cm en condiciones LOS. • Rango de operación hasta de 290m con 110kbps de tasa de datos en estructuras RTLS. • Alta inmunidad frente a desvanecimiento multitrayecto. 3.2.1.3 Ajuste Este proyecto se basa principalmente en la comunicación, por tanto, en este apartado se explican las diferentes configuraciones referentes a la comunicación. Para este objetivo, el kit de Evaluación dispone del interruptor S1, que se divide en 8 interruptores a su vez:
17 17 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización Interruptor ON OFF ¿Para qué sirve? S1-1 Activar ARM Desactivar ARM Funcionalidad ARM (si no se requiere, se puede dejar en OFF S1-2 Activar fast-ranging (5 ms) Desactivar fast-ranging (150 ms) Ajusta el tiempo de respuesta de las medidas S1-3 Desactivar USB to SPI Activar USB to SPI Necesario para poder ejecutar la aplicación Decaranging S1-4 Activa el rol ancla Activa el rol tag Permite cambiar el rol S1-5 Modos de operación S1-6 S1-7 S1-8 Activa la configuración remota del tiempo de respuesta Desactiva la configuración remota del tiempo de respuesta Permite a la aplicación Decaranging cambiar el tiempo de respuesta Tabla 3-1: Configuración de ajuste del kit de Evaluación. Los modos de operación se exponen detalladmente en la tabla 2: S1-5 S1-6 S1-7 Modo Canal Tasa de datos PRF Preámbulo Código de preámbulo OFF OFF OFF 1 2 110 kb/s 16 1024 3 ON OFF OFF 2 2 6,8 Mb/s 16 128 3 OFF ON OFF 3 2 110 kb/s 64 1024 9 ON ON OFF 4 2 6,8 Mb/s 64 128 9 OFF OFF ON 5 5 110 kbps 16 1024 3 ON OFF ON 6 5 6,8 Mb/s 16 128 3 OFF ON ON 7 5 110 kb/s 64 1024 9 ON ON ON 8 5 6,8 Mb/s 64 128 9 Tabla 3-2: Modos de operación del kit de Evaluación.
Entorno de trabajo 18 18 3.3 Funcionamiento de los equipos Las dos placas EVB1000 que se han descrito anteriormente están configuradas a priori con la aplicación de prueba llamada two-way Ranging. Estas placas tienen dos modos de funcionamiento: • INT-INT: la aplicación Decaranging se ejecuta internamente en las dos placas y se intercambian mensajes. A partir de estos la aplicación calcula el tiempo de vuelo, estima la distancia y presenta por la pantalla LCD los resultados. Se requiere alimentación a las dos placas para este modo de funcionamiento. • INT-EXT: en este modo de funcionamiento, una de las dos placas está conectada mediante USB a un microcontrolador externo (por ejemplo, un ordenador) el cual utiliza la aplicación Decaranging a través de la interfaz SPI. Con este kit se pueden evaluar las siguientes características: • Las medidas de distancia. • El espectro de transmisión. • El consumo de potencia y la corriente. • La inmunidad a multitrayectos. • Las opciones de la antena. Para este proyecto, se utiliza el modo de funcionamiento INT-EXT, ya que se requiere de la aplicación Decaranging para obtener los logs de las medidas que se realicen. Por tanto, y como se observa en la tabla 1, se debe de poner el interruptor S1-3 a OFF para activar la función USB to SPI. El puerto USB virtual para Windows del que se requiere para la aplicación Decaranging se puede consultar en la página web de ST Microelectronics, aunque en el Apéndice A se explica detenidamente dónde descargarlo y cómo instalarlo correctamente.
19 19 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización 3.4 Configuración de parámetros En este apartado, se dispone a configurar el equipo teniendo en cuenta que se requiere para la identificación de medidas en interiores. En interiores el rango aumenta frente a espacios al aire libre debido al multitrayecto. Por tanto, se debe conseguir una configuración que ofrezca el mayor rango de operación posible. El rango operacional depende principalmente de tres factores: • La tasa de datos de la trama. • La longitud del preámbulo. • El ancho de banda del canal y su frecuencia central. A continuación, y teniendo todo lo anteriormente explicado en cuenta, se procede a configurar el equipo: • Tasa de datos: una mayor tasa de datos se corresponde con un menor rango de operación, por lo que se debe elegir la menor tasa de datos disponible (110 kb/s). • Longitud del preámbulo: para el objetivo de identificación, conviene tener un preámbulo largo de por sí para dar tiempo al receptor a procesar correctamente, pero además un preámbulo largo unido a una tasa de datos baja llevar a un mayor rango operativo. Por tanto, se elige el preámbulo más largo posible (1024). • Frecuencia central del canal: en cuanto a la frecuencia central del canal, para el caso que nos ocupa se ha escogido la que nos proporciona el Canal 5, la cual es de 6,5 GHz. • Ancho de banda: el ancho de banda correspondiente al Canal 5 de la configuración del kit de Decawave es de 500 MHz. • PRF: la frecuencia de repetición de pulsos elegida en este proyecto es de 16 MHz. A modo de resumen, la configuración del equipo será la que sigue: 110 kb/s de tasa de datos, longitud del preámbulo de 1024, uso del Canal 5 de frecuencias y ancho de banda y, por último, un PRF de 16 MHz.
Medición experimental 26 26 Figura 4-4: Ejemplo de medida NLOS con pared como obstáculo. Se puede observar, comparándolo con las figuras 4-1 y 4-2 que este resultado está mucho más cerca de un caso LOS que de un caso NLOS cuando se esperaba algo más intermedio. Esto puede deberse a dos motivos: 1) La anchura de la pared: la pared que ejercía de obstáculo no era una pared de gran grosor, por lo que el obstáculo degradaría la señal poco. 2) La capacidad de penetración de la tecnología UWB: UWB tiene una capacidad de penetración de obstáculos muy buena, por lo que la señal es robusta cuando encuentra un obstáculo. Por tanto, sumando los efectos de estos dos motivos, se puede dar una explicación lógica a este resultado inesperado. 4.2.3 Caso de la puerta Este último caso anómalo nos lleva a las medidas realizadas teniendo como obstáculo la puerta metálica. Estas medidas tenían como objetivo el obtener unas medidas NLOS con objeto metálico de por medio fuera del despacho donde se tomaron las medidas iniciales, pero una vez más el resultado al analizar las gráficas no fue el esperado, ni mucho menos.
27 27 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización En la figura 4-5 se ilustra la gráfica de una medida de este conjunto: Figura 4-5: Ejemplo de medida NLOS con puerta como obstáculo. Como puede observarse, se tiene una gráfica que no se parece en absoluto al caso NLOS de la figura 4-2. Este caso bien puede hacerse pasar por uno con línea de visión directa y, sin embargo, no lo es. La única explicación a tan extraño suceso solo puede ser que ocurran estas dos cosas simultáneamente: 1) Que el rayo directo quede totalmente bloqueado. 2) Que un rayo indirecto, con un trayecto parecido al directo, consiga de algún modo salvar el obstáculo y llegar al receptor perdiendo muy poca potencia por el camino donde se haya reflejado. De esta forma, el pico máximo de potencia que se observa en la gráfica de la figura 4-5 no sería el rayo directo, ya que este está totalmente bloqueado por la puerta, y un rayo con un camino indirecto consigue reflejarse con pocas pérdidas con algún objeto de forma que consigue llegar al receptor con un nivel de potencia muy bueno.
Medición experimental 28 28
29 29 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización 5 RATIO POTENCIA PRIMER CAMINO FRENTE A POTENCIA TOTAL En este quinto punto tratamos el ratio potencia primer camino frente a potencia total. Para ello, se requiere de un código de MatLab/Octave que procese las medidas, un código ShellScript que vuelque los datos de los logs a MatLab/Octave y alguien que interprete los resultados que se obtengan. En los logs de las medidas que nos proporciona DecaWave aparecen infinidad de datos sobre la señal, pero para este ratio que vamos a calcular solo necesitamos dos: el FSL, que hace referencia a la potencia del primer camino, y el RSL, que hace referencia a la potencia recibida. 5.1 Obtención de FSL y RSL a partir de los logs En los logs de las medidas que se han obtenido del software de DecaWave se encuentran los datos que necesitamos para calcular el ratio. Estos datos son FSL y RSL. Para quedarnos solo con lo que nos interesa y filtrar lo demás, se utilizan los códigos ShellScript del Apéndice B buscaFSL.sh y buscaRSL.sh cuya salida es un fichero en el que nos muestra una lista con los FSL y RSL, respectivamente, de todas las medidas que existan en el log. Un ejemplo de resultado de ejecutar estos scripts es el siguiente:
Ratio potencia primer camino frente a potencia total 30 30 Figura 5-1: Contenido del fichero de salida de buscaFSL.sh.
31 31 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización Figura 5-2: Contenido del fichero de salida de buscaRSL.sh.
Ratio potencia primer camino frente a potencia total 32 32 5.2 Cálculo del ratio Una vez obtenidos los valores de FSL y RSL de todos los logs de las medidas tomadas con anterioridad, solo queda cargarlos en MatLab/Octave y calcular el ratio con el código del Apéndice C Ratio.m. Este código realiza el cálculo del ratio y además, genera dos histogramas para presentar los dos conjuntos de medidas independientes a considerar: • Un primer histograma donde se presenta el conjunto de medidas para calcular el umbral. Gracias a este conjunto, se decide un umbral de decisión. • El segundo histograma presenta el conjunto de medidas para poner a prueba el umbral. Una vez decidido el umbral en el primer histograma, es a este conjunto de medidas al cual le aplicaremos dicho umbral y sacar conclusiones al respecto mediante el cálculo de la probabilidad de error. En las figuras 5-3 y 5-4 se ilustra el código donde se cargan en MatLab/Octave los valores de FSL y RSL de varios ficheros: Figura 5-3: Código para exportar los datos de los ficheros .txt a MatLab/Octave
33 33 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización Figura 5-4: Código para exportar los datos de los ficheros .txt a MatLab/Octave Los valores obtenidos de los logs se encuentran en unidades logarítmicas (dBm) según ilustra el manual de Decaranging [13]. Por tanto, hay que realizar una conversión a unidades naturales previa a aplicar la Ecuación 3, la cual se recoge, como se dijo en el apartado 2, en la bibliografía [9]. Dicha conversión se realiza deshaciendo las operaciones de las ecuaciones 8 y 9 y así recuperar el valor en unidades naturales. Dichas ecuaciones son recogidas del manual correspondiente [4]: 10·log(𝐹12+𝐹22+𝐹32 𝑁2) − 𝐴 (𝑑𝐵𝑚) Ecuación 8: Estimación nivel de potencia del primer camino. 10·log(𝐶+217 𝑁2) − 𝐴 (𝑑𝐵𝑚) Ecuación 9: Estimación de potencia recibida. Donde 𝐹1,𝐹2 𝑦 𝐹3 hacen referencia a valores de amplitud de potencia que el software recoge en registros internos, C es la potencia correspondiente a la respuesta al impulso del canal, N es el valor del contador interno de preámbulo y A es una constante del software cuyo valor es de 113.77. A continuación, se calcula el ratio de todos los datos con las líneas de código que se muestran en las figuras 5-
Ratio potencia primer camino frente a potencia total 34 34 5 y 5-6: Figura 5-5: Código que calcula el ratio de las medidas para calcular el umbral.
35 35 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización Figura 5-6: Código que calcula el ratio de las medidas para poner a prueba el umbral. Una vez calculado el ratio de todas las medidas, se juntan todos los correspondientes a las medidas tomadas para la obtención del umbral por un lado en un array, y en otro array se juntan los ratios que ponen a prueba el umbral para hacer la comparativa. 5.3 Comparativa de resultados En este apartado se desarrolla y se ponen de relevancia los resultados obtenidos. Para poder observar los resultados se hace uso del comando hist de MatLab/Octave, el cual generará los histogramas de los arrays con los ratios de los dos conjuntos de medidas que se han considerado anteriormente. De esta manera, en la figura 5-7 se ilustra el histograma generado por MatLab/Octave del código Ratio.m, dicho código se puede encontrar detallado en el Apéndice C, que corresponde únicamente con el conjunto de medidas para obtener el umbral de decisión:
RMS Delay Spread 42 42 6.2.1 Algoritmo fin de señal Para encontrar el punto donde termina la señal recibida y el resto vuelve a ser ruido, por la naturaleza de las gráficas obtenidas en este proyecto se ha decidido por encontrar este punto mediante un umbral. Las señales LOS tienen un pico muy abrupto y rápidamente cae el nivel de señal hacia el ruido. Sin embargo, la señales NLOS no tienen un pico máximo muy alto y además presentan muchas reflexiones que hacen que la señal se ensanche temporalmente. Por tanto, para conseguir un umbral que encaje bien en las diferentes situaciones, se ha optado por el umbral valor del pico máximo de potencia dividido entre 9. El umbral para el final de la señal es obtenido mediante el estudio y la observación de las medidas recogidas en este trabajo, ya que estas detecciones se encuentran fuera del objeto de este. 6.2.2 Ecuación RMS Delay Spread Una vez se han estimado los puntos necesarios (punto máximo y fin de señal) se dispone a ejecutar el RMS Delay Spread. En este apartado se explica el algoritmo realizado únicamente para el cálculo del RMS Delay Spread siguiendo la ecuación recogida en el apartado teórico. Los pasos que sigue el algoritmo son los siguientes: • Se obtiene el valor de 𝜏𝑚. • Se sustituyen los valores en la fórmula del RMS Delay Spread. 6.3 Representación de resultados Para finalizar el apartado del RMS Delay Spread, se representan los histogramas referentes al cálculo de este. Al igual que en el apartado 4, se recurre una vez más al comando hist de MatLab/Octave para llevar a cabo esta representación y se hará la misma división de medidas anterior: primero se muestra el histograma con las medidas para calcular el umbral y después se expone el histograma con las medidas realizadas para poner a prueba dicho umbral, donde se observarán las diferencias. El código donde se generan estos histogramas se encuentra dentro del script Identifica.m, el cual se encuentra en el Apéndice C de este documento. El histograma que ilustra la figura 6-3 es el que se corresponde con las medidas tomadas para el cálculo del
43 43 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización umbral, y el que ilustra la figura 6-4, el de las medidas recogidas para ponerlo a prueba. Figura 6-3: Histograma del RMS Delay Spread de las medidas para calcular el umbral. Código de colores de los histogramas de la figura 6-3: • Azul: Medidas NLOS. • Amarillo: Medidas LOS. Si se examina el histograma, se ve cómo para esta técnica nos encontramos con medidas LOS en zona NLOS y viceversa. Esto indica que no se puede esperar la identificación de la totalidad de los casos, y además que la probabilidad de error que se pueda conseguir con el RMS Delay Spread sea algo peor que la del ratio. Para este caso, como a partir del histograma no se ve un valor óptimo del umbral, he elegido uno por inspección que abarca al menos la primera de las regiones LOS, de manera que se puedan calcular probabilidades de identificación. Este umbral de decisión para la identificación tiene un valor de 6 ns. A la vista del histograma de la figura 6-3, se puede decir que este criterio presenta problemas en la práctica, ya que las regiones se solapan. Por tanto, no se podrán obtener probabilidades de identificación correcta altas utilizando de forma aislada este criterio. A continuación, se presenta el histograma del RMS Delay Spread de las medidas obtenidas para poner a
RMS Delay Spread 44 44 prueba al umbral mediante la figura 6-4: Figura 6-4: Histograma del RMS Delay Spread de las medidas para poner a prueba el umbral. Código de colores de los histogramas de la figura 6-4: • Azul: Medidas NLOS. • Amarillo: Medidas LOS. Con el umbral elegido anteriormente, se observa que para este conjunto de medidas, independiente del anterior, también nos encontramos medidas LOS en zona NLOS y viceversa. Esto parece indicar que la identificación con esta técnica sea más complicada, pero para cuantificar esto, aplicado al conjunto de medidas usadas en este proyecto, se han de calcular las probabilidades de error en el siguiente punto.
45 45 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización
Cálculo de la probabilidad de error 46 46 7 CÁLCULO DE LA PROBABILIDAD DE ERROR En este punto se trata de intentar cuantificar el grado de eficacia que tienen las técnicas de identificación que se han explicado a lo largo de este proyecto. Con los histogramas observados en los puntos 5 y 6 de esta memoria, uno puede intuir, por la posición de las distribuciones normales que allí se muestran, que el ratio puede tener una mejor probabilidad de error frente al RMS Delay Spread, pero aquí se comprueba realmente cuál de los dos ofrece mejor probabilidad para el conjunto de medidas utilizados en este proyecto. 7.1 Probabilidad de error del ratio potencia primer camino frente a potencia total Teniendo en cuenta el resultado obtenido en el punto 5, no es posible obtener una diferenciación buena para LOS/NLOS. Sin embargo, el umbral elegido anteriormente nos servirá para poder identificar parte de los casos LOS y parte de los casos NLOS. Por tanto, las probabilidades que aquí se calculan son dos: • Probabilidad de detectar LOS sabiendo que es una medida NLOS: p(LOS|NLOS). • Probabilidad de detectar NLOS sabiendo que es una medida LOS: p(NLOS|LOS). Para calcular la probabilidad de error de este ratio, se requiere de un algoritmo que realice este cálculo. En la figura 7-1 se ilustra el contenido de dicho algoritmo, el cual se puede encontrar además en el Apéndice C, concretamente en el archivo Ratio.m.
47 47 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización Figura 7-1: Extracto del código para la probabilidad de error del ratio. Las probabilidades de error obtenidas con el umbral de 0,15 elegido a la luz de los resultados de las gráficas son las siguientes: • p(LOS|NLOS) = 50,490 % • p(NLOS|LOS) = 0% Con este umbral se ha conseguido identificar correctamente todas las medidas LOS y prácticamente la mitad de las NLOS. 7.2 Probabilidad de error del RMS Delay Spread Para el caso del RMS Delay Spread se sigue el mismo procedimiento que en el punto anterior. Las probabilidades obtenidas de las gráficas resultantes de ejecutar la técnica RMS Delay Spread son las que siguen con el umbral escogido en el punto 6:
Cálculo de la probabilidad de error 48 48 • p(LOS|NLOS) = 68,966 % • p(NLOS|LOS) = 19,075 % Para calcular la probabilidad de error del RMS Delay Spread, existe un algoritmo dentro del script Identifica.m del Apéndice C específico para este fin. En la figura 7-2 se ilustran las líneas de código dedicadas a ese cálculo: Figura 7-2: Extracto del código para la probabilidad de error del RMS Delay Spread. A la luz de estas probabilidades, se puede observar que para el ratio se consiguen identificar la totalidad de las medidas LOS y se comprueba que el resultado de identificación NLOS es bastante mejor que el que se consigue con la técnica del RMS Delay Spread para el mismo caso.
49 49 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización
Conclusiones 50 50 8 CONCLUSIONES En este apartado se exponen las conclusiones de este proyecto. En este documento se ha descrito el proceso que se ha realizado de toma de medidas reales realizadas en el Departamento de teoría de la señal y comunicaciones. Se trata de medidas de respuesta de un canal UWB para diferentes posiciones de los transmisores y distancias entre ellos. A partir de esta base común, en todo momento se ha avanzado de manera independiente por dos vertientes relativas a dos criterios de identificación de la condición LOS o NLOS de dichas medidas: la del ratio potencia primer camino frente a potencia total, y la del RMS Delay Spread. Una vez se consigue obtener unos resultados concretos por cada criterio de manera independiente, fueran estos los que fueran, se llega a este punto, donde estos dos caminos trazados durante el proyecto convergen y se comparan los resultados conseguidos por cada uno. Por tanto, estas conclusiones se pueden dividir en tres partes a valorar: la toma de las medidas, la comparativa de las técnicas de identificación expuestas en el proyecto y el análisis de los resultados. En cuanto a toma de las medidas, se ha optado por una toma de medidas separada: un primer conjunto de medidas encaminado a la búsqueda de un umbral de decisión y un segundo conjunto, con medidas totalmente independientes, para poner a prueba ese umbral elegido para comprobar si funciona con una probabilidad aceptablemente buena. De esta forma se podría observar si, gracias a estas técnicas, el algoritmo diseñado era fácilmente transportable o no en medida de las diferencias que se observaran en la comparación de los dos conjuntos de medidas realizados mediante sus histogramas. Una vez terminado el proyecto, se puede intuir que el hecho de haber realizado medidas en diferentes lugares de la Escuela Técnica Superior de Ingeniería ha aportado variabilidad al conjunto de medidas, lo cual ha sido una información muy valiosa para esta investigación. En cuanto a la comparativa de las técnicas de identificación hay varios puntos a examinar: • La forma en la que se han obtenido el ratio potencia primer camino frente a potencia total y el RMS Delay Spread han sido diferentes: mientras que el ratio se ha calculado de datos proporcionados directamente de DecaWave, es decir, calculados por el algoritmo interno del software, en el caso del RMS Delay Spread se ha servido de información proporcionada por el software pero los cálculos realizados a partir de esa información han sido llevados a cabo por un algoritmo realizado por mí. • En cuanto al coste computacional de ambas técnicas, el ratio ofrece mucho mejores prestaciones que el RMS Delay Spread. El RMS Delay Spread se sirve de cálculos mucho más complejos que el ratio, ya que la ecuación que lo describe es más compleja. Esto se puede observar en el apartado teórico. Parte de la diferencia en cuanto coste computacional se refiere, posiblemente se deba a que el
51 51 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización algoritmo interno de DecaWave ya calcula la potencia del primer camino y la potencia total recibida y, en contrapartida, el algoritmo creado para determinar algunos de los parámetros incluidos en el RMS Delay Spread, creado por mí, ha de tratar con los datos que DecaWave proporciona de las gráficas de señal. • Sobre la transportabilidad de estos criterios de identificación, teniendo en cuenta la comparativa entre los dos histogramas obtenidos para cada uno de ellos (figuras 5-7 y 5-8 para el ratio y figuras 6-3 y 6- 4 para el RMS Delay Spread) y la variabilidad de lugares donde se han obtenido las muestras, se puede decir que cabría esperar unos resultados relativamente similares a los obtenidos en este proyecto si se pusiera a prueba en otro lugar. Esta transportabilidad podría mejorarse aumentando la base de datos de medidas incluyendo una mayor variedad de localizaciones. • Los resultados obtenidos para el ratio apuntan a que si se consideran por separado los casos NLOS/DDP y los NLOS/UDP, la región NLOS-UDP (la más perjudicial) quizás se podría identificar con una mayor probabilidad, teniendo en cuenta las curvas de la figura 2-1 en comparación con los histogramas de las figuras 5-7 y 5-8. • En el apartado de la probabilidad de error, las prestaciones del ratio son mejores que las de la versión que se ha implementado del RMS Delay Spread, como se observó en el apartado 7. Se comprobó que la probabilidad de error en cuanto la cantidad de medidas LOS detectadas como NLOS y la cantidad de medidas NLOS detectadas como LOS es más bajo en el caso del ratio que en el RMS Delay Spread. A la vista de los resultados obtenidos con estas dos técnicas de identificación, se puede observar que abordar este problema es difícil, ya que llevados a la práctica estos algoritmos de identificación, de forma aislada, no garantizan probabilidades de identificación correcta muy buenas. Para finalizar, algunas ideas para proyectos futuros que me han surgido durante la realización de este proyecto serían: • Un diseño más pulido y eficiente del RMS Delay Spread en cuanto a la obtención del principio y fin de la señal, los cuales son difíciles de conseguir de manera precisa. Y esto afecta directamente al resultado del RMS Delay Spread. • Ampliar la base de datos de medidas para incluir una mayor variedad de casos. • Investigar y analizar otros métodos de identificación más sofisticados para comprobar su rendimiento, como por ejemplo el método de kurtosis, o realizar la identificación mediante una combinación de métodos sencillos para comprobar si existe así una mejora de resultados respecto a usarlos aisladamente. • Plantear un algoritmo que identificara únicamente las medidas NLOS/UDP con el objetivo de descartarlas, mientras que las medidas NLOS/DDP, al ser relativamente buenas, podrían conservarse, por lo que no importaría tanto que se solapen con las medidas LOS.
Apéndice A: Instalación y uso del Software 58 58 Figura 9-5: Ejemplo de respuesta impulsiva en el Log Channel Responses. De todos los datos que se pueden extraer del log, los necesarios para llevar a cabo este proyecto son la respuesta impulsiva del canal para el caso del RMS Delay Spread y los valores de FSL y RSL para el caso del ratio potencia primer camino frente a potencia total.
59 59 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización 9.2.2 Exportar datos con MatLab/Octave Ahora, se expone cómo poder exportar esos datos a MatLab para posteriormente poder tratarlos. Se parte un fichero generado con Log Channel Responses, y en una consola de Linux con alguno de los scripts descritos en el Apéndice B, según el tipo de dato que queramos extraer del log, ejecutamos el script correspondiente. Para invocar el script, se llama de la siguiente forma: ./buscaFSL.sh {nombre fichero log} Se ha puesto de ejemplo el script buscaFSL.sh, pero todos los scripts se llaman de la misma forma por línea de comandos. Los scripts del Apéndice B requieren solamente de un parámetro, que será el nombre del log del que queremos extraer la información. Una vez consiga la información que se quiere, el mismo script generará un archivo nuevo donde guarda esa información, manteniendo así el archivo log intacto por si se requiere en un futuro de otra información relevante de ese archivo. Una vez extraída la información necesaria, solo tenemos que volcar los datos en MatLab/Octave. La figura 9-6 contiene un extracto del código Ratio.m: Figura 9-6: Ejemplo de vuelco de datos en MatLab/Octave. Un ejemplo de un fichero de salida resultante de la ejecución de un script es el que ilustra la figura 9-7:
Apéndice A: Instalación y uso del Software 60 60 Figura 9-7: Ejemplo de fichero de salida de script.
61 61 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización
Apéndice B: Ficheros ShellScript 62 62 10 A PÉNDICE B: FICHEROS SHELLSCRIPT 10.1 Ratio potencia primer camino frente a potencia total Para calcular el ratio, debemos obtener los valores FSL y RSL del log generado por el software de DecaWave. Los códigos que aquí se presentan son una solución mediante ShellScript que genera un fichero con una lista de todos los valores FSL y RSL para luego exportar estos valores al código MatLab correspondiente al cálculo del ratio. 10.1.1 buscaRSL.sh Este código es el responsable de generar el fichero con la lista de los valores RSL de los logs: #!/bin/bash # -*- ENCODING: UTF-8 -*- > salida sudo cat $1 | grep -ao "RSL(.*." >> salida sed -i 's/RSL(//g' salida sed -i 's/),//g' salida sed -i 's/FSL.*.//g' salida sed -i 's/RSMPL.*.//g' salida 10.1.2 buscaFSL.sh El siguiente código se encarga de generar el fichero con la lista de valores FSL de los logs: #!/bin/bash
63 63 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización # -*- ENCODING: UTF-8 -*- > salida sudo cat $1 | grep -ao "FSL(.*." >>salida sed -i 's/FSL(//g' salida sed -i 's/),//g' salida sed -i 's/RSMPL.*.//g' salida sed -i ‘s/)//g’ salida 10.2 RMS Delay Spread Antes de calcular el RMS Delay Spread, necesitamos obtener los puntos de las gráficas que nos proporciona DecaWave a partir de los log, aquí se expone una solución en ShellScript donde se consigue extraer una lista con dichos puntos: 10.2.1 buscagrafica.sh #!/bin/bash # -*- ENCODING: UTF-8 -*- clear > salidagrafica sudo cat $1 | grep -ao ".*., .*." >>salidagrafica sed -i 's/File:.*.//g' salidagrafica sed -i 's/Mode.*.//g' salidagrafica sed -i 's/RX.*.//g' salidagrafica
Apéndice B: Ficheros ShellScript 64 64
65 65 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización 11 A PÉNDICE C: FICHEROS DE MATLAB/OCTAVE 11.1 Ratio potencia primer camino frente a potencia total El código en el cual se encuentran todos los algoritmos utilizados en el ámbito de este ratio: algoritmo del ratio, importación de datos, probabilidad de error, etc. se encuentran recogidos en un fichero de MatLab/Octave llamado Ratio.m, el contenido del cual se expone en la siguiente subsección. 11.1.1 Ratio.m %Autor: Noel Cortés García %Fichero Ratio.m donde se desarrolla el código referente al ratio potencia primer camino frente a potencia total. clc %Cargamos los datos obtenidos de los logs (cálculo umbral): load('logs/LOSsalidaRSL.txt'); load('logs/LOSsalidaFSL.txt'); load('logs/NLOSsalidaRSL.txt'); load('logs/NLOSsalidaFSL.txt'); load('logs/NLOSlejossalidaRSL.txt'); load('logs/NLOSlejossalidaFSL.txt');
Apéndice C: Ficheros de MatLab/Octave 66 66 load('logs/paredsalidaRSL.txt'); load('logs/paredsalidaFSL.txt'); load('logs/LOS16RSL.txt'); load('logs/LOS16FSL.txt'); load('logs/LOS13RSL.txt'); load('logs/LOS13FSL.txt'); load('logs/LOS5RSL.txt'); load('logs/LOS5FSL.txt'); load('logs/LOS3RSL.txt'); load('logs/LOS3FSL.txt'); load('logs/paredvRSL.txt'); load('logs/paredvFSL.txt'); load('logs/paredhRSL.txt'); load('logs/paredhFSL.txt'); load('logs/pared3RSL.txt'); load('logs/pared3FSL.txt'); load('logs/pared4RSL.txt'); load('logs/pared4FSL.txt'); load('logs/arm2RSL.txt'); load('logs/arm2FSL.txt'); %Cargamos los datos obtenidos de los logs (prueba umbral): load('logs/LOS14salidaRSL.txt'); load('logs/LOS14salidaFSL.txt'); load('logs/LOS8salidaRSL.txt'); load('logs/LOS8salidaFSL.txt');
67 67 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización load('logs/LOS4salidaRSL.txt'); load('logs/LOS4salidaFSL.txt'); load('logs/armsalidaRSL.txt'); load('logs/armsalidaFSL.txt'); load('logs/habsalidaRSL.txt'); load('logs/habsalidaFSL.txt'); load('logs/puertasalidaRSL.txt'); load('logs/puertasalidaFSL.txt'); %Convertimos de dBm a naturales los resultados de los logs según la fórmula del manual de DecaWave: RSL=10.^(((LOSsalidaRSL(:,1)+113.77)/10)); FSL=10.^(((LOSsalidaFSL(:,1)+113.77)/10)); NRSL=10.^(((NLOSsalidaRSL(:,1)+113.77)/10)); NFSL=10.^(((NLOSsalidaFSL(:,1)+113.77)/10)); LRSL=10.^(((NLOSlejossalidaRSL(:,1)+113.77)/10)); LFSL=10.^(((NLOSlejossalidaFSL(:,1)+113.77)/10)); PRSL=10.^(((paredsalidaRSL(:,1)+113.77)/10)); PFSL=10.^(((paredsalidaFSL(:,1)+113.77)/10)); RSL16=10.^(((LOS16RSL(:,1)+113.77)/10)); FSL16=10.^(((LOS16FSL(:,1)+113.77)/10)); RSL13=10.^(((LOS13RSL(:,1)+113.77)/10)); FSL13=10.^(((LOS13FSL(:,1)+113.77)/10)); RSL5=10.^(((LOS5RSL(:,1)+113.77)/10)); FSL5=10.^(((LOS5FSL(:,1)+113.77)/10)); RSL3=10.^(((LOS3RSL(:,1)+113.77)/10)); FSL3=10.^(((LOS3FSL(:,1)+113.77)/10)); RSLv=10.^(((paredvRSL(:,1)+113.77)/10));
Apéndice C: Ficheros de MatLab/Octave 74 74 endfor %Probabilidad de que se detecte LOS sabiendo que realmente es NLOS: for bc=1:length(resultado_ratio) if ((resultado_ratio(bc)== 1) & (resultado_priori(bc)==0)) falso_LOS++; endif endfor %Probabilidad de que se detecte NLOS sabiendo que realmente es LOS: for c=1:length(resultado_ratio) if ((resultado_ratio(c)== 0) & (resultado_priori(c)==1)) falso_NLOS++; endif endfor %Inicializamos variables de probabilidad: pLOS_NLOS=0; pNLOS_LOS=0; %Calculamos las probabilidades: pLOS_NLOS=(falso_LOS/204) %205 - una trama corrupta que se encuentra en este grupo pNLOS_LOS=(falso_NLOS/173)
75 75 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización 11.2 RMS Delay Spread Para todos los cálculos que se llevan a cabo para desarrollar el algoritmo del RMS Delay Spread, así como aquellos referidos a probabilidad de error o tratamiento de las gráficas importadas de los log de DecaWave, se ha escrito el script de MatLab/Octave llamado Identifica.m, el cual se expone en la subsección que viene a continuación. 11.2.1 Identifica.m % Autor: Noel Cortés García %Programa identificación de medidas UWB mediante RMS Delay Spread: LOS o NLOS %% %Limpiamos la ventana: clc clear all %Variable para recorrer los 992 puntos de cada señal recogida en DecaWave t=1:992; %Inicializamos variables: i=1; pulso=0; valor=-200; tramas_corruptas=0; %Muestras tomadas para definir el umbral: Acumulado de muestras para guía: load('logs/LOSsalidagrafica.txt'); %43 muestras 43 load('logs/LOS16grafica.txt'); %56 muestras 99 load('logs/LOS13grafica.txt'); %63 muestras 162 load('logs/LOS5grafica.txt'); %54 muestras 216 load('logs/LOS3grafica.txt'); %61 muestras 277 load('logs/NLOSsalidagrafica.txt'); %51 muestras 328
Apéndice C: Ficheros de MatLab/Octave 76 76 load('logs/Lejossalidagrafica.txt'); %63 muestras 391 load('logs/paredsalidagrafica.txt'); %46 muestras 437* load('logs/pared3grafica.txt'); %54 muestras 491* load('logs/pared4grafica.txt'); %50 muestras 541 load('logs/paredhgrafica.txt'); %48 muestras 589* load('logs/paredvgrafica.txt'); %69 muestras 658 load('logs/arm2grafica.txt'); %90 muestras 748 %Muestras tomadas para poner a prueba el umbral: load('logs/LOS14salidagrafica.txt'); %58 muestras 806 load('logs/LOS8salidagrafica.txt'); %55 muestras 861 load('logs/LOS4salidagrafica.txt'); %60 muestras 921 load('logs/armsalidagrafica.txt'); %74 muestras 995* load('logs/habsalidagrafica.txt'); %66 muestras 1061 load('logs/puertasalidagrafica.txt'); %65 muestras 1126* %Array con todos los valores de los logs: concatena=vertcat(LOSsalidagrafica, LOS16grafica, LOS13grafica, LOS5grafica, LOS3grafica, NLOSsalidagrafica, Lejossalidagrafica, paredsalidagrafica, pared3grafica, pared4grafica, paredhgrafica, paredvgrafica, arm2grafica, LOS14salidagrafica, LOS8salidagrafica, LOS4salidagrafica, armsalidagrafica, habsalidagrafica, puertasalidagrafica); %Cada medida contiene 992 puntos a representar en la gráfica: final=(length(concatena))/992; final grafica=0; %Variables para capturar cada columna de los logs por separado x3=(concatena(:,1)); x4=(concatena(:,2)); %Raíz de la suma de los cuadrados para obtener el módulo x2=sqrt(x3.^2+x4.^2); %Variable tau_rms tau_rms=0; %Bucle principal que recorre todas las medidas capturadas en los logs
77 77 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización for e=1:final %En este bucle se obtienen los valores de los 992 puntos de la grafica de cada medida para realizar los cálculos posteriormente: for f=1:992 grafica(f)=x2(f+((e-1)*992)); endfor pulso=0; valor=-200; %Busqueda de pico máximo: i=1; for i=1:992 if (valor<grafica(i)) if x2(i)!= -Inf valor=grafica(i); pulso=i; end end endfor valor; %valor del pico máximo pulso; %posición del pico máximo if(valor>1200)%%Condición descarte de tramas corruptas del bucle (caso particular para el conjunto de muestras %del proyecto) %RMS Delay Spread if(pulso!=0) p=pulso+2; %Como pulso es la posición del pico máximo, la posición pulso+1 no puede ser máximo relativo ultimo=0; %Posición del último máximo que sobrepasa el umbral
Apéndice C: Ficheros de MatLab/Octave 78 78 umbral=valor/9; %Umbral definido mediante la observación y el estudio del conjunto de muestras %En este bucle se recorre la gráfica desde el pico máximo hasta el final para encontrar el primer máximo relativo %que no sobrepase el umbral establecido. Cuando lo encuentra, se sale del bucle. %La variable ultimo recoge la posición del máximo relativo más alejado del punto máximo que sobrepasa el umbral. while p<=991 if grafica(p-1)<grafica(p) if grafica(p+1)<grafica(p) if grafica(p)>=umbral ultimo=p; else p=1000; endif endif endif p++; endwhile secuencia=0; pos_secuencia=0; %Vector secuencia, que determina el valor y la posición de todos los puntos de la señal desde el punto %máximo hasta el ultimo for h=pulso:ultimo secuencia(h-pulso+1)=grafica(h); pos_secuencia(h-pulso+1)=h-pulso+1; endfor %Parámetros de las ecuaciones de tau_m y tau_rms media_todo=0; aux_media=0; media=0;
79 79 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización div=0; %Resolución de los parámetros de las ecuaciones de tau_m y tau_rms for z=1:length(secuencia) media=media+(((secuencia(z))^2)*((pos_secuencia(z))^2));%numerador div=div+((secuencia(z))^2); %denominador media_todo= media_todo+((secuencia(z)^2)*(z)); %numerador tau_m aux_media=aux_media+((secuencia(z))^2); %denominador tau_m endfor %Cálculo de tau_m y tau_rms tau_m=media_todo/aux_media; tau_rms(e-tramas_corruptas)=sqrt((media/div)-(tau_m^2)); end else %Si no cumple el requisito, se suma a las tramas corruptas tramas_corruptas++; %e % figure(e) % plot(grafica) endif clc e endfor control=1; umbral_los=0; umbral_nlos=0; y=1; %Recorrido de tau_rms para rellenar los arrays de los histogramas.
Apéndice C: Ficheros de MatLab/Octave 80 80 %Tomando el acumulado de muestras del inicio del código y la situación de las tramas corruptas, % se acotan los bucles de forma correcta. %Bucle que recorre las muestras LOS de cálculo del umbral: for t=1:276 umbral_los(control)=tau_rms(t); control++; endfor control=1; %Bucle que recorre las muestras NLOS de cálculo del umbral: for s=277:743 umbral_nlos(control)=tau_rms(s); control++; endfor control=1; prueba_los=0; prueba_nlos=0; %Bucle que recorre las muestras LOS para poner a prueba el umbral: for v=744:916 prueba_los(control)=tau_rms(v); control++; endfor control=1; %Bucle que recorre las muestras NLOS para poner a prueba el umbral: for w=917:length(tau_rms) prueba_nlos(control)=tau_rms(w); control++; endfor
81 81 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización %Histograma de muestras de cálculo del umbral figure(1) hist(umbral_nlos, 80, 'b') ylabel("Nº de muestras") xlabel("RMS Delay Spread (ns)") hold on hist(umbral_los, 40, 'y') hold off %Histograma de muestras para poner a prueba el umbral figure(2) hist(prueba_nlos, 60, 'b') ylabel("Nº de muestras") xlabel("RMS Delay Spread (ns)") hold on hist(prueba_los, 25, 'y') hold off %Código del cálculo de la probabilidad de error: %Las longitudes de los arrays se obtienen del acumulado de muestras y las tramas corruptas que se encuentran %Para la probabilidad de error que se busca, es necesario tener un vector que nos diga cómo es realmente la señal a priori resultado_priori=vertcat(ones(173,1), zeros(200,1)); resultado_rms=0; acierto=0; error=0; %En este bucle obtenemos el resultado de la identificación de la señal mediante el RMS Delay Spread for a=744:length(tau_rms) if (tau_rms(a)<=6) %Umbral obtenido mediante observación de la gráfica resultado_rms(a-743)=1; else resultado_rms(a-743)=0;
Apéndice C: Ficheros de MatLab/Octave 82 82 endif endfor falso_LOS=0; falso_NLOS=0; %Probabilidad de que se detecte LOS sabiendo que realmente es NLOS: for bc=1:length(resultado_rms) if ((resultado_rms(bc)== 1) & (resultado_priori(bc)==0)) falso_LOS++; endif endfor %Probabilidad de que se detecte NLOS sabiendo que realmente es LOS: for bd=1:length(resultado_rms) if ((resultado_rms(bd)== 0) & (resultado_priori(bd)==1)) falso_NLOS++; endif endfor %Inicializamos variables de probabilidad: pLOS_NLOS=0; pNLOS_LOS=0; %Calculamos las probabilidades: pLOS_NLOS=(falso_LOS/200) pNLOS_LOS=(falso_NLOS/173)
83 83 Identificación de las medidas sin línea de visión directa en un sistema UWB de localización