ANÁLISIS Y SIMULACIÓN DE UN RECEPTOR RASTRILLO Y COMPARACIÓN CON EL RECEPTOR ÓPTIMO PARA CDMA MELISSA DUARTE GÉLVEZ Trabajo de grado para optar por el título de Ingeniero Electrónico Director ADOLFO LEÓN RECIO VÉLEZ Ingeniero Electrónico M.Sc. PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA DEPARTAMENTO DE ELECTRONICA BOGOTÁ 2004 PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA ELECTRÓNICA RECTOR MAGNIFICO: R.P. GERARDO REMOLINA S.J. DECANO ACADÉMICO: Ing. ROBERTO ENRIQUE MONTOYA VILLA DECANO DEL MEDIO UNIVERSITARIO: R.P. ANTONIO JOSÉ SARMIENTO NOVA S.J. DIRECTOR DE CARRERA: Ing. JUAN CARLOS GIRALDO CARVAJAL DIRECTOR DEL PROYECTO: Ing. ADOLFO LEÓN RECIO VÉLEZ M.Sc. 2 ARTICULO 23 DE LA RESOLUCIÓN No. 13 DE JUNIO DE 1946 "La universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus proyectos de grado. Sólo velará porque no se publique nada contrario al dogma y la moral católica y porque los trabajos no contengan ataques o polémicas puramente personales. Antes bien, que se vea en ellos el anhelo de buscar la verdad y la justicia". 3 A mi querida familia A mi querido Fred 4 CONTENIDO Pág. CONTENIDO................................................................................................................... 5 LISTA DE FIGURAS ...................................................................................................... 8 INTRODUCCIÓN.......................................................................................................... 10 1. MARCO TEÓRICO ............................................................................................... 13 1.1 ESPECTRO DISPERSO DE SECUENCIA DIRECTA (DSSS) ................... 13 1.1.1 Transmisión ............................................................................................ 13 1.1.2 Recepción ............................................................................................... 14 1.2 SECUENCIAS GOLD ................................................................................... 16 1.3 NOTACIÓN o-minúscula .............................................................................. 21 1.4 ENERGÍA EFECTIVA .................................................................................. 21 1.5 RESISTENCIA CERCA – LEJOS................................................................. 22 2. ESPECIFICACIONES ........................................................................................... 24 2.1 SEÑAL TRANSMITIDA POR UN USUARIO ............................................ 24 2.2 MODELO DEL CANAL Y SEÑAL RECIBIDA.......................................... 25 2.2.1 Efecto multicamino y desvanecimiento Rayleigh ................................... 25 2.2.2 Señal recibida modelo síncrono ............................................................. 28 2.3 DIVERSIDAD................................................................................................ 29 2.3.1 Diversidad debida a múltiples caminos – Combinación de tasa máxima 29 2.4 MODELO RECEPTOR RASTRILLO........................................................... 31 2.5 RECEPTOR ÓPTIMO PARA CDMA........................................................... 32 2.6 RELACIÓN SEÑAL A RUIDO .................................................................... 35 2.7 DIAGRAMA DE FLUJO DE LAS SIMULACIONES ................................. 36 2.8 PARÁMETROS SIMULACIONES .............................................................. 37 3. DESARROLLO...................................................................................................... 39 3.1 DESARROLLO PASO A PASO DE LAS ECUACIONES QUE CARACTERIZAN AL RECEPTOR RASTRILLO .................................................. 39 3.1.1 Etapa 1. Línea de retardo....................................................................... 39 3.1.2 Etapa 2: Correlatores............................................................................. 41 3.1.3 Etapa 3: Combinación de tasa máxima.................................................. 44 3.1.4 Etapa 4: Toma de decisión ..................................................................... 45 3.2 DESARROLLO DE ECUACIONES PARA LA PROBABILIDAD DE ERROR DE BIT DEL RECEPTOR RASTRILLO.................................................... 45 3.2.1 Probabilidad de error de bit. Caso: Receptor rastrillo con estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. .................................................................................................... 46 3.2.2 Probabilidad de error de bit. Caso: Receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. ...................................................................................... 49 3.2.3 Probabilidad de error de bit. Caso: Receptor rastrillo con error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal...................................................................................... 52 3.3 RESUMEN DE LAS FUNCIONES CREADAS PARA REALIZAR LAS SIMULACIONES. ..................................................................................................... 56 3.3.1 Función transmisor ................................................................................ 57 3.3.2 Función Canal ........................................................................................ 58 3.3.3 Función Receptor ................................................................................... 61 5 3.3.3.1 Función Rakep.................................................................................... 62 3.3.3.2 Función Rakeme34 ............................................................................. 63 3.3.3.3 Función Rakeme121 ........................................................................... 64 3.4 COTAS PARA LA PROBABILIDAD DE ERROR DE BIT DEL RECEPTOR ÓPTIMO DE CDMA ............................................................................ 66 3.5 APROXIMACIÓN DE Lck PARA EL CÁLCULO DE LAS ECUACIONES 69 4. ANÁLISIS DE RESULTADOS............................................................................. 72 4.1 PROBABILIDAD DE ERROR DE BIT DEL RECEPTOR RASTRILLO EN FUNCIÓN DE LOS PARÁMETROS DE ESTIMACIÓN DEL CANAL. ............... 73 4.1.1 Probabilidad de error de bit del receptor rastrillo con estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. .................................................................................................... 73 4.1.2 Probabilidad de error de bit del receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. ...................................................................................... 75 4.1.3 Probabilidad de error de bit del receptor rastrillo con error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal...................................................................................... 77 4.2 ANÁLISIS DE LA ENERGÍA EFECTIVA DEL RECEPTOR RASTRILLO Y COMPARACIÓN CON EL RECEPTOR ÓPTIMO PARA CDMA ..................... 79 4.2.1 Análisis de la energía efectiva del receptor rastrillo en el caso de estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. Comparación con el receptor óptimo para CDMA ............................................................................................................ 79 4.2.2 Análisis de la energía efectiva del receptor rastrillo en el caso de error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. ...................................................................................... 81 4.2.3 Análisis de la energía efectiva del receptor rastrillo en el caso de error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal...................................................................................... 83 4.3 ANÁLISIS DE LA RESISTENCIA CERCA LEJOS DEL RECEPTOR RASTRILLO Y COMPARACIÓN CON EL RECEPTOR ÓPTIMO PARA CDMA 84 4.3.1 Análisis de la resistencia cerca lejos del receptor rastrillo en el caso de estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. Comparación con el receptor Óptimo para CDMA ............................................................................................................ 84 4.3.2 Análisis de la resistencia cerca lejos del receptor rastrillo en el caso de error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. ............................................................. 85 4.3.3 Análisis de la resistencia cerca lejos del receptor rastrillo en el caso de error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal. ............................................................ 86 5. CONCLUSIONES.................................................................................................. 88 5.1 TRABAJO FUTURO ..................................................................................... 94 6. BIBLIOGRAFÍA .................................................................................................... 95 7. ANEXO 1. ALGUNOS CONCEPTOS DE PROBABILIDAD............................. 99 7.1 Variable aleatoria con distribución Gaussiana ............................................... 99 6 7.2 Variable aleatoria compleja formada a partir de dos variables aleatorias Gaussianas ................................................................................................................ 100 7.3 Distribución Rayleigh................................................................................... 101 7.4 Ruido blanco Gaussiano aditivo ................................................................... 102 7.5 Funciones erf y Q ........................................................................................ 102 7.6 Señales continuas en tiempo en ruido blanco Gaussiano aditivo ................. 103 8. ANEXO 2. COMBINACIÓN DE TASA MÁXIMA, REGLA DE DECISIÓN ÓPTIMA EN EL CONTEXTO DE DIVERSIDAD Y UN USUARIO PRESENTE EN EL CANAL .................................................................................................................. 105 9. ANEXO 2. CÓDIGO DE LAS FUNCIONES IMPLEMENTADAS EN C++.... 108 9.1 FUNCIÓN ‘transmisorg.cpp’ ....................................................................... 108 9.2 FUNCIÓN ‘canalxu3.cpp’ ........................................................................... 110 9.3 FUNCIÓN ‘etapas12.cpp’ ............................................................................ 118 9.4 FUNCIÓN ‘etapas34.cpp’ ............................................................................ 120 9.5 FUNCIÓN ‘etpas12me1.cpp’....................................................................... 122 9.6 FUNCIÓN ‘etapas34me.cpp’ ....................................................................... 125 7 LISTA DE FIGURAS Pág. Figura 1-1 Diagrama en bloques de la transmisión en banda base usando DSSS.......... 14 Figura 1-2 Ejemplo de las señales que hacen parte del proceso de transmisión en banda base usando DSSS. N=127, numero de bits transmitidos = 3 ........................................ 14 Figura 1-3 Diagrama en bloques de la recepción en banda base cuando la señal se transmite usando DSSS .................................................................................................. 15 Figura 1-4 Diagrama en bloques del proceso de generación de una secuencia pseudo aleatoria .......................................................................................................................... 17 Figura 1-5 Generación de una secuencia pseudo aleatoria............................................. 17 Figura 1-6 Generación de una secuencia Gold a partir de dos polinomios que cumplen con las condiciones del teorema de Gold. ...................................................................... 19 Figura 1-7 Diagrama en bloques que muestra cómo generar diferentes secuencias Gold a partir de dos secuencias de longitud máxima. ................................................................ 19 Figura 1-8 Ejemplo de una secuencia Gold:Gold1......................................................... 20 Figura 1-9 Autocorrelación de la secuencia Gold1 ........................................................ 20 Figura 1-10 Ejemplo de una secuencia Gold: Gold 2..................................................... 20 Figura 1-11 Autocorrelación de la secuencia Gold2 ...................................................... 21 Figura 1-12 Correlación entre las secuencias Gold 1 y Gold 2 ...................................... 21 Figura 2-1 Reflexión, difracción y dispersión generando varias réplicas de la señal original enviada por el transmisor. Potencia instantánea en el receptor. Figura tomada de las notas de G. Mandyam. .............................................................................................. 26 Figura 2-2 Diagrama en bloques de un canal multicamino con desvanecimiento Rayleigh. Figura tomada del artículo de C. D’ Ámours et al. ........................................ 27 Figura 2-3 Diagrama en bloques de un canal de comunicaciones inalámbricas con K usuarios y la señal del usuario k se afecta de acuerdo a la respuesta impulso hk(t) que representa un canal multicamino con desvanecimiento Rayleigh. Figura tomada del artículo de Kumar y Panicker. ........................................................................................ 29 Figura 2-4 Fasores que representan las señales provenientes de tres caminos diferentes ........................................................................................................................................ 30 Figura 2-5 Combinación de tasa máxima para el caso de tres señales multicamino..... 31 Figura 2-6 Diagrama en bloques del receptor rastrillo ................................................... 32 Figura 2-7 Diagrama en bloques del recepto óptimo para CDMA propuesto por Verdú. ........................................................................................................................................ 34 Figura 2-8 Diagrama de flujo de las simulaciones ......................................................... 37 Figura 3-1 Representación de los tiempos de llegada de las señales multicamino para un usuario ............................................................................................................................ 39 Figura 3-2 Ejemplo de la función de la línea de retardos............................................... 40 Figura 3-3 Ejemplo de lo que sucede en los correlatores cuando hay error de sincronización................................................................................................................. 44 Figura 3-4 Cota inferior exacta y cota inferior aproximada para la probabilidad de error de bit del receptor óptimo para CDMA .......................................................................... 68 Figura 3-5 Cotas para la probabilidad de error de bit del receptor óptimo para CDMA 69 Figura 4-1 Probabilidad de error de bit del receptor rastrillo en el caso de estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. ..................................................................................................................... 73 8 Figura 4-2 Resultados de Kumar y Panicker para la probabilidad de error de bit del receptor rastrillo.............................................................................................................. 74 Figura 4-3 Probabilidad de error de bit del receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma ............................................................................................................................... 75 Figura 4-4 Resultados de Kumar y Panicker para la probabilidad de error de bit del receptor rastrillo teniendo en cuenta error en la estimación de los coeficientes de desvanecimiento del canal. ............................................................................................. 76 Figura 4-5 Probabilidad de error de bit del receptor rastrillo con error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal. ............................................................................................. 77 Figura 4-6 Probabilidad de que la probabilidad de error de bit del receptor rastrillo con error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento esté dentro del rango delimitado por F=0.005.................................... 78 Figura 4-7 Relación señal a ruido promedio en función de la probabilidad de error de bit promedio para el receptor rastrillo con sincronización perfecta de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal y para el receptor óptimo para CDMA. ....................................................................................................... 79 Figura 4-8 Señal a ruido promedio efectiva en función de la probabilidad de error de bit promedio. Receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal. ............................................................................................. 82 Figura 4-9 Señal a ruido promedio efectiva en función de la probabilidad de error de bit promedio. Receptor rastrillo con error en la sincronización de la señal firma............... 83 Figura 4-10 Probabilidad de error de bit promedio. Receptor rastrillo con sincronización perfecta de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal. Cotas para la probabilidad de error de bit del receptor óptimo para CDMA. ....................................................................................................... 84 Figura 4-11 Probabilidad de error de bit promedio. Receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal ........................................ 86 Figura 4-12 Probabilidad de error de bit promedio. Receptor rastrillo con error en la sincronización de la señal firma ..................................................................................... 86 Figura 7-1 Función de densidad de probabilidad de una variable aleatoria Gaussiana de media cero. ..................................................................................................................... 99 Figura 7-2 Función de densidad de probabilidad de una variable aleatoria con distribución Rayleigh.................................................................................................... 101 9 INTRODUCCIÓN En un sistema de comunicación de acceso múltiple varios usuarios desean acceder al canal al mismo tiempo. Para implementar un sistema de comunicación de acceso múltiple existen técnicas que permiten que los usuarios compartan el canal. En la técnica de acceso múltiple por división de código (CDMA por sus siglas en inglés) los usuarios pueden acceder al canal simultáneamente y compartir el mismo ancho de banda. Acceso múltiple por división en frecuencia (FDMA por sus siglas en inglés) y acceso múltiple por división en tiempo (TDMA por sus siglas en inglés), son otros ejemplos de técnicas de acceso múltiple. Estas tres técnicas (CDMA, FDMA y TDMA) son usadas en sistemas de comunicaciones inalámbricas de acceso múltiple. Cada técnica se implementa utilizando diferentes esquemas de modulación, por lo tanto los esquemas de demodulación también son diferentes en cada caso. Independientemente de la técnica de acceso múltiple que se implemente, el receptor debe ser diseñado teniendo en cuenta que el canal o el medio por el cual viaja la señal transmitida no es ideal. En el caso de un sistema de comunicaciones inalámbricas es muy importante tener en cuenta las características del canal en el momento de diseñar el receptor. En este tipo de sistemas el medio por el cual viaja la señal introduce no sólo ruido aditivo sino que también puede distorsionar la señal y se presentan fenómenos como la generación de varias señales réplica de la señal enviada originalmente (multicamino). El receptor rastrillo (‘rake receiver’) introducido en 1958 por Price y Green surge como un método de detección de CDMA en un sistema de comunicaciones inalámbricas. Este receptor no sólo tiene en cuenta las características de modulación de CDMA sino que para mejorar su desempeño utiliza constructivamente las réplicas que se producen de la señal enviada, lo cual se conoce como diversidad debida a múltiples caminos. 10 Para su funcionamiento el receptor rastrillo debe estimar algunos parámetros del canal. En la práctica no es posible hacer una estimación perfecta por lo tanto es importante analizar cuánto se afecta el desempeño del receptor rastrillo debido a errores de estimación del canal. Este tema y temas relacionados con el efecto de los errores de estimación del canal en sistemas de comunicaciones CDMA han sido tratados de diferentes maneras por diferentes autores. Por ejemplo, Kumar y Panicker modelaron los errores de estimación como variables aleatorias Gaussianas de media cero y a partir de su estudio propusieron una ecuación para la probabilidad de error de bit del receptor rastrillo. Por otro lado, McLane y Sunay supusieron en su estudio que los errores que tuvieron en cuenta estaban uniformemente distribuidos en un rango pequeño y a partir de esta suposición desarrollaron una ecuación para la probabilidad de error de bit de un sistema de comunicaciones basado en CDMA. En éstos dos casos los autores modelaron los errores de estimación como variables aleatorias con una función de densidad de probabilidad específica y se ignoró el estimador del canal como tal. Autores como Felström y Zigangirov y Huang et al. tomaron un estimador específico, hallaron la función de densidad de probabilidad del error y a partir de esta función realizaron análisis numéricos para evaluar el efecto de los errores de estimación del canal en el desempeño de los sistemas de comunicaciones basados en CDMA. Como una tercera aproximación al problema se tiene la propuesta por Quirk y Milstein en la que tienen en cuenta algunas características del estimador a partir de las cuales logran obtener la cota inferior para la probabilidad de error de bit del receptor rastrillo cuando se utiliza un esquema de estimación específico. 11 En este trabajo de grado el enfoque es parecido al de Kumar y Panicker ya que no se tiene en cuenta un estimador del canal específico sino que se supone que los errores de estimación tienen una función de densidad de probabilidad Gaussiana de media cero. La principal diferencia está en que en el desarrollo de las ecuaciones para la probabilidad de error de bit, Kumar y Panicker consideraron todas las fuentes de error a la vez mientras que acá se analiza cada fuente de error por aparte, es decir se obtiene una ecuación para la probabilidad de error de bit para cada parámetro de estimación del canal que se analiza. Esto es una aproximación más sencilla que la presentada por los autores anteriormente mencionados y simplifica el desarrollo de las ecuaciones siendo una buena primera aproximación al problema en cuestión. Además, se incluye un análisis detallado del receptor rastrillo teniendo en cuenta las ecuaciones de cada una de las etapas que lo conforman y se hace un análisis de la energía efectiva y de la resistencia cerca lejos del receptor rastrillo a partir de simulaciones y de las ecuaciones propuestas. Paralelamente al análisis del receptor rastrillo en función de los errores de estimación del canal, se lleva a cabo una comparación entre el receptor rastrillo y el receptor óptimo para CDMA propuesto por Verdú. El objetivo de esta comparación es resaltar características, ventajas y desventajas propias de cada uno de los dos receptores. 12 1. 1.1 MARCO TEÓRICO ESPECTRO DISPERSO DE SECUENCIA DIRECTA (DSSS) Cuando se implementa CDMA la técnica de modulación que más se utiliza es la de espectro disperso de secuencia directa (DSSS por sus siglas en inglés) y es con la cual funciona el receptor rastrillo. A continuación se explica la transmisión y la recepción cuando se utiliza DSSS. 1.1.1 Transmisión En DSSS la señal de banda angosta que contiene la información del usuario k, bk(t), se multiplica por una señal firma, sk(t), la cual es una señal pseudo aleatoria de banda ancha1. El resultado de la multiplicación es la señal de banda ancha Xk(t) que contiene la misma información que la señal bk(t) y ocupa un rango en frecuencia mucho mayor. Para el caso de transmisión en banda base Xk(t) es la señal transmitida. X k (t ) = bk (t ) s k (t ) En DSSS las señales bk(t) y sk(t) son antipodales y además sk(t) cumple que: Tb ∫s 2 k (t )dt = 1 0 La figura 1-1 muestra el proceso que sigue la señal de información para una transmisión en banda base usando DSSS, la figura 1-2 muestra un ejemplo de una señal de información, una señal firma y el resultado de su multiplicación. 1 El análisis de esta sección está basado en el de Haykin en su libro ‘Communication Systems’ por lo tanto se exponen sólo los puntos importantes 13 Señal de información usuario k bk(t) Señal transmitida usuario k Xk(t) Señal firma usuario k sk(t) Figura 1-1 Diagrama en bloques de la transmisión en banda base usando DSSS Figura 1-2 Ejemplo de las señales que hacen parte del proceso de transmisión en banda base usando DSSS. N=127, numero de bits transmitidos = 3 1.1.2 Recepción El modelo banda base que representa el proceso de recepción de una señal transmitida usando DSSS se presenta en la figura 1-3. Suponiendo que el único efecto del canal es sumar ruido aditivo a la señal transmitida Xk(t), la señal recibida Y(t) es: Y (t ) = X k (t ) + n(t ) , 14 en donde n(t) representa el ruido aditivo. Al multiplicar en el receptor por la señal firma se obtiene g(t): g (t ) = Y (t ) s k (t ) = ( X k (t ) + n(t ) )s k (t ) 2 = bk (t ) s k (t ) + n(t ) s k (t ) Integrando g(t) entre 0 y Tb y suponiendo que durante este intervalo de tiempo llega un bit de la señal de información transmitida por el usuario k se obtiene: Tb G = ∫ g (t )dt 0 Tb Tb = bk ∫ s k (t )dt + ∫ n(t ) s k (t )dt 2 0 0 = bk + nk Señal recibida Y(t) g(t) Tb ∫dt 0 G Toma de decisión Estimado de la señal enviada por el transmisor bˆ (t) k Señal firma usuario k sk(t) Figura 1-3 Diagrama en bloques de la recepción en banda base cuando la señal se transmite usando DSSS El análisis hecho hasta ahora implica que la señal firma debe ser conocida tanto por el receptor como por el transmisor, por lo tanto, como es conocida por ambos, esta señal no lleva información y la única información es la de la señal bk(t). Para poder hacer el desarrollo anterior usando sk2(t) es necesario suponer que el transmisor y el receptor están en perfecto sincronismo lo cual significa que la señal firma en la señal Y(t) está perfectamente alineada con la señal firma generada internamente por el receptor. La forma de implementar DSSS en un sistema de comunicación de acceso múltiple es 15 asignando a cada usuario una señal firma diferente. La condición que éstas señales firma deben cumplir es que para usuarios que comparten un mismo canal las diferentes señales firma deben ser todas ortogonales entre sí. Si se cumple ésta condición, al multiplicar en el receptor por la señal firma apropiada el efecto de los usuarios interferentes se cancela. De esta forma CDMA usando DSSS permite que muchos usuarios accedan al canal al mismo tiempo. En aplicaciones reales la condición de ortogonalidad para las señales firma usadas en un mismo medio no es tan estricta y puede que las señales no sean estrictamente ortogonales pero sí hay un límite para el valor de la correlación entre señales firma diferentes (Verdú 2001). 1.2 SECUENCIAS GOLD Como se dijo anteriormente la señal firma es una señal pseudo aleatoria. Esto significa que se genera a partir de una secuencia de bits pseudo aleatoria que a su vez se genera utilizando un registro de corrimiento y una etapa de retroalimentación. El registro de corrimiento está compuesto por n flipflops y la etapa de retroalimentación consiste en sumas módulo dos cuyo resultado depende del estado de los flipflops, este resultado es la entrada al primer flipflop del registro de corrimiento. Una secuencia pseudo aleatoria generada de la forma que ilustra la figura 1-4 está determinada por la longitud n del registro de corrimiento, su estado inicial y la lógica de la etapa de retroalimentación. Como la retroalimentación consiste sólo de sumas módulo dos el estado cero (salida de todos los flipflops en cero) no es permitido ya que de ocurrir el registro permanecería en este estado indefinidamente. Consecuentemente el período de una secuencia pseudo aleatoria generada de la forma indicada no excede de 16 2n-1 bits. Cuando el período N es exactamente 2n-1 la secuencia se conoce como una secuencia de longitud máxima (SLM por sus siglas en inglés). Etapa de retroalimentación (Circuito Lógico, Implementa sumas modulo 2) Flip Flop Flip Flop 1 2 .... Flip Flop Secuencia Pseudo aleatoria n Reloj Figura 1-4 Diagrama en bloques del proceso de generación de una secuencia pseudo aleatoria La suma módulo dos que se realiza en la etapa de retroalimentación se puede representar por un polinomio p(x) de grado n. El siguiente es un ejemplo para n = 7, los bloques enumerados en la figura 1-5 representan los flipflops del registro de corrimiento. Ej 1: n = 7, p(x) = x7 + x3 + x2 + 1 1 2 3 4 5 6 7 Secuencia pseudo aleatoria Figura 1-5 Generación de una secuencia pseudo aleatoria. A partir de la Xor de dos SLM de periodo N (SLM1 y SLM2) se puede generar una secuencia Gold de periodo N, las condiciones que deben cumplir las dos secuencias SLM están dadas por el teorema de Gold a continuación: A partir de dos polinomios primitivos p1(x) y p2(x) de grado n cuyos registros de corrimiento generan secuencias de longitud máxima de período 2n-1 cuya función de correlación tiene magnitud igual o menor a 17 2(n+1)/2 + 1 para n impar, o 2(n+2)/2 + 2 para n par y n ≠0 mod 4, es posible generar, a partir de la xor de las dos secuencias generadas por p1(x) y p2(x), 2n+1 secuencias diferentes cada una con periodo igual a 2n-1 y la correlación entre cualquier par de estas secuencias cumple la condición de correlación mencionada anteriormente2. Teniendo en cuenta que sólo se están considerando polinomios con coeficientes iguales a 0 o 1, un polinomio p(x) de grado n es primitivo si el menor entero m para el cual el polinomio divide el factor xm+1 es m = 2n-1 (Haykin 2001). Los polinomios primitivos, para un grado dado, se pueden generar con la función ‘primpoly’ de Matlab. A continuación se muestra en un ejemplo la configuración con la cual, a partir de dos polinomios que cumplen con las condiciones del teorema de Gold, se puede generar una secuencia Gold. Ej. 2: Los polinomios de grado n = 7, p1(x) = x7+x3+x2+1 y p2(x) = x7+x3+1, cumplen con las condiciones dadas por el teorema de Gold. La generación de una secuencia Gold a partir de la xor de las secuencias de longitud máxima generadas por cada uno de estos polinomios se ilustra en la siguiente figura: 2 Haykin, pg.505 18 1 2 3 4 5 6 7 Secuencia Gold 1 2 3 4 5 6 7 Figura 1-6 Generación de una secuencia Gold a partir de dos polinomios que cumplen con las condiciones del teorema de Gold. Para generar 2n+1 secuencias Gold a partir de las secuencias generadas por dos polinomios primitivos se hace un corrimiento circular a una de las dos secuencias tal y como se muestra en la figura 1-7. Generar SLM1 Generar SLM2 Corrimiento circular Corrimiento Secuencia Gold Figura 1-7 Diagrama en bloques que muestra cómo generar diferentes secuencias Gold a partir de dos secuencias de longitud máxima. Utilizando el esquema anterior se generan 2n-1 secuencias Gold, las dos que faltan para completar las 2n+1 que se pueden generar son SLM1 y SLM2. Las figuras 1-8 a 1-12 muestran dos secuencias Gold generadas a partir de los polinomios p1(x) = x7+x3+x2+1 y p2(x) = x7+x3+1. También se muestra su autocorrelación y su correlación. 19 Figura 1-8 Ejemplo de una secuencia Gold:Gold1 Figura 1-9 Autocorrelación de la secuencia Gold1 Figura 1-10 Ejemplo de una secuencia Gold: Gold 2 20 Figura 1-11 Autocorrelación de la secuencia Gold2 Figura 1-12 Correlación entre las secuencias Gold 1 y Gold 2 1.3 NOTACIÓN o-minúscula En la cota de la probabilidad de error de bit del receptor óptimo para CDMA aparece la notación o-minúscula la cual corresponde a la siguiente definición (Apostol 1980): f ( x) = o( g ( x) ) significa que lim x →∞ 1.4 f ( x) =0 g ( x) ENERGÍA EFECTIVA De acuerdo a Verdú, suponiendo que hay varios usuarios compartiendo el canal, la energía efectiva del usuario k es la energía que este usuario requeriría para alcanzar una probabilidad de error de bit igual pero en el caso en que sólo exista el usuario k y el 21 resto de las características del canal sean las mismas. Es decir, si con K usuarios compartiendo el canal se alcanza una probabilidad de error de bit para el usuario k igual a Pek, la energía efectiva del usuario k es la energía con que este usuario alcanza una probabilidad igual a Pek pero en el caso en que este sea el único usuario en el canal y el resto de las características del canal sean las mismas. De acuerdo a esta definición, la energía efectiva debe ser siempre menor o igual a la energía verdadera con que está transmitiendo el usuario k. que es la energía a la que le corresponde una probabilidad de error de bit igual a Pek en el caso de K usuarios compartiendo el canal. 1.5 RESISTENCIA CERCA – LEJOS La resistencia cerca-lejos mide cuán robusto es el sistema con respecto al efecto cerca lejos. El efecto cerca-lejos se debe a la diferencia en potencia con que llegan señales de diferentes usuarios a la estación base. Por lo general la estación base mide la potencia de llegada de la señal de cada usuario para luego indicarle a cada uno si debe subir o bajar su potencia de transmisión. Esta regulación no se puede hacer completamente perfecta y puede ocurrir que la potencia de llegada de un usuario sea mucho mayor que la de otro causando gran interferencia en la detección del usuario cuya potencia de transmisión es baja. Por lo general esta diferencia de potencias se debe a que unos usuarios están más cerca de la estación base que otros y por esta razón se conoce como el efecto cercalejos. Debido a que no es posible garantizar que la potencia recibida de todos los usuarios sea la misma es importante analizar cómo se afecta el funcionamiento del receptor con respecto al efecto cerca-lejos. Este análisis se hará comparando la probabilidad de error de bit en la recepción de un usuario cuando la potencia recibida de cada usuario es la misma, con la probabilidad de error de bit del mismo usuario cuando 22 aumenta la potencia recibida de la señal de los otros usuarios los cuales pueden ser llamados usuarios interferentes. 23 2. ESPECIFICACIONES En esta sección se presentan los modelos de transmisor, canal y receptor que se suponen durante el desarrollo del trabajo de grado. Al final de la sección se presenta el diagrama de flujo de las simulaciones y los parámetros que se tuvieron en cuenta al realizarlas. 2.1 SEÑAL TRANSMITIDA POR UN USUARIO Teniendo en cuenta la teoría presentada en la sección 1.1.1 la señal transmitida por el usuario k es: X k (t ) = bk (t ) s k (t ) = M Ebk bk [i ] pTb (t − iTb ) s k [ j ] pTch (t − jTch ) Tb MN ∑ ∑ i = − M j = − MN (2-1) En donde Ebk es la energía con que transmite el usuario k, 2M+1 es el número de bits de información transmitidos, bk[i] representa un bit de la señal de información, sk[j] representa un bit de la señal firma, Tb es el tiempo de bit el cual es igual al inverso de la tasa de envío de información, Tch es el tiempo de chip igual a Tb/N y pTb(t) y pTch(t) corresponden a la siguiente definición: 1 → 0 ≤ t ≤ Tx pTx (t ) = 0 → otro ⋅ t El usuario k envía una secuencia de 2M+1 bits: bk[-M],....bk[0],….bk[M] La señal de información bk(t) correspondiente a esta secuencia es: bk (t ) = M ∑ i=− M Ebk bk [i] pTb (t − iTb ) 24 La señal firma del usuario k, sk(t), está determinada por la secuencia firma sk que es una secuencia Gold de periodo N. Para una secuencia de 2M+1 bits transmitidos la señal firma consta de 2NM+1 bits: sk[-NM],......sk[0],......sk[NM] en donde sk[i] = sk[i+N] La señal sk(t) correspondiente a esta secuencia es: s k (t ) = MN ∑ j = − MN 1 Tb s k [ j ] pTch (t − jTch ) Las secuencias que definen la señal de información y la señal firma son antipodales: bk[i] y sk[i] ∈ {-1,1}. La multiplicación de bk(t) por sk(t) da como resultado la señal transmitida Xk(t). 2.2 MODELO DEL CANAL Y SEÑAL RECIBIDA 2.2.1 Efecto multicamino y desvanecimiento Rayleigh Un modelo que se utiliza para ver los efectos de un canal de comunicaciones inalámbricas es el ‘modelo a pequeña escala’ el cual caracteriza la potencia instantánea de la señal en el receptor cuando éste se mueve distancias cortas o durante pequeños períodos de tiempo (Rappaport 1999). En este modelo las fluctuaciones de la potencia instantánea se deben a la generación de réplicas de la señal enviada las cuales al llegar al receptor pueden sumarse constructiva o destructivamente. Estas réplicas se presentan en los sistemas de comunicaciones inalámbricas debido a las características del medio por el cual viaja la señal. Por ejemplo, en un sistema celular el camino entre el transmisor y el receptor está lleno de obstáculos como carros, edificios y árboles cuya presencia genera tres tipos de fenómenos: reflexión, difracción y dispersión (Rappaport 1999). Debido a estos tres fenómenos la señal enviada por el transmisor toma varios 25 caminos y al receptor le llegan varias señales, todas replica de la señal original, las cuales son llamadas señales multicamino. El canal que genera este tipo de comportamiento se llama canal multicamino (‘multipath channel’). El resultado de la suma de las señales multicamino se conoce como desvanecimiento (‘fading’). La figura 2-1 muestra cómo la difracción, reflexión y dispersión pueden producir más de una señal en el receptor y también muestra una gráfica de la potencia instantánea en el receptor debida al desvanecimiento. Figura 2-1 Reflexión, difracción y dispersión generando varias réplicas de la señal original enviada por el transmisor. Potencia instantánea en el receptor. Figura tomada de las notas de G. Mandyam. Cada uno de los K usuarios transmite su correspondiente señal Xk(t) definida en la ecuación (2-1). El canal afecta la señal de cada usuario de acuerdo a la respuesta impulso: C hk (t ) = ∑ Ack (t )δ (t − τ ck ) c =1 En este modelo, debido al fenómeno multicamino, la señal transmitida por el usuario k toma C caminos diferentes. Se supone que C es igual para todos los usuarios. La señal que viaja por el camino c se retrasa τck y se atenúa según Ack(t). La siguiente figura ilustra el modelo correspondiente. 26 Señal Transmitida por el usuario k Xk(t) τ1k Camino 1 A1k(t) Camino 2 τ 2k Σ A2k(t) Camino 3 τ 3k Señal correspondiente al usuario k, Yk(t), resultado del fenómeno multicamino y el desvanecimiento Rayleigh A3k(t) .. . .. . τ Ck Camino C ACk(t) Figura 2-2 Diagrama en bloques de un canal multicamino con desvanecimiento Rayleigh. Figura tomada del artículo de C. D’ Ámours et al. Después de pasar por el canal multicamino la señal del usuario k, Xk(t), queda: C Yk (t ) = ∑ Ack (t ) X k (t − τ ck ) c =1 C = ∑ Ack (t )bk (t − τ ck ) s k (t − τ ck ) c =1 C =∑ M MN ∑ ∑ c =1 i = − M j = − MN Ebk Ack (t )bk [i ] pTb (t − iTb − τ ck ) s k [ j ] pTch (t − jTch − τ ck ) Tb Ahora se va a suponer que los coeficientes de desvanecimiento Ack(t) permanecen constantes durante el envío de varios bits de información, es decir se supone un canal con desvanecimiento lento ‘slow fading’. Teniendo esto en cuenta la señal Yk(t) se puede escribir de la siguiente manera: C Yk (t ) = ∑ M MN ∑ ∑ c =1 i = − M j = − MN Ebk Ack [i ]bk [i ] pTb (t − iTb − τ ck ) s k [ j ] pTch (t − jTch − τ ck ) Tb (2-2) 27 Cada Ack[i] es una muestra de la variable aleatoria compleja Ack = AckR + jAckI cuyas partes real e imaginaria son independientes y AckR~N(0,σ2A) y AckI~N(0,σ2A). La magnitud de los coeficientes de desvanecimiento tiene una función de densidad de probabilidad de tipo Rayleigh y por esta razón el canal presentado se conoce como canal con desvanecimiento Rayleigh. 2.2.2 Señal recibida modelo síncrono En el estándar IS-95 tanto el receptor de la estación base como el de la estación móvil son receptores rastrillo (Garg 2002, Rappaport 1999). En el sentido hacia abajo (‘Downlink’) hay un transmisor (Estación Base) y varios receptores (Estaciones Móviles) y el modelo más apropiado para representarlo es el modelo síncrono, tal y como lo hacen Bottomley et al. y Noneaker. En el sentido hacia arriba (‘Uplink’) hay un receptor (Estación Base) y varios transmisores (Estaciones móviles). El modelo más apropiado para representar la comunicación en este sentido es el modelo asíncrono, tal y como lo hacen Kumar y Panicker. Con cualquiera de los dos modelos se pueden realizar los análisis de interés por lo tanto se supone el modelo síncrono ya que es más sencillo de trabajar. Teniendo en cuenta la ecuación (2-2) que define a Yk(t), la señal que llega al receptor teniendo en cuenta todos los usuarios y su transmisión síncrona es: K Y (t ) = ∑ Yk (t ) + σn(t ) k =1 28 K C = ∑∑ M MN ∑ ∑ k =1 c =1 i = − M j = − MN Ebk Ack [i ]bk [i ] pTb (t − iTb − τ ck ) s k [ j ] pTch (t − jTch − τ ck ) + σn(t ) Tb (2-3) La siguiente figura representa el modelo propuesto: Usuario 1 X1(t) h1(t) Usuario 2 X2(t) h2(t) Usuario K .. . XK(t) .. . Σ Señal que llega al receptor σn(t) hK(t) Figura 2-3 Diagrama en bloques de un canal de comunicaciones inalámbricas con K usuarios y la señal del usuario k se afecta de acuerdo a la respuesta impulso hk(t) que representa un canal multicamino con desvanecimiento Rayleigh. Figura tomada del artículo de Kumar y Panicker. En este modelo n(t) representa el ruido aditivo cuyas partes real e imaginaria son independientes y corresponden a ruido blanco Gaussiano aditivo con densidad espectral de potencia unitaria. 2.3 DIVERSIDAD Antes de presentar el modelo del receptor rastrillo es importante tener claro el concepto de diversidad ya que el diseño del receptor rastrillo se basa en este concepto. 2.3.1 Diversidad debida a múltiples caminos – Combinación de tasa máxima Señales provenientes de diferentes caminos tienen diferentes desfases y amplitud pero todas tienen la misma información. La variación de la potencia instantánea de la señal recibida se debe a que la señal que le llega al receptor es el resultado de la suma de 29 todas las señales multicamino y en algunos casos la suma resulta constructiva pero en otros resulta destructiva. El poder recuperar cada una de las señales multicamino por aparte para después combinarlas de manera apropiada de tal forma que el resultado sea siempre constructivo es lo que se conoce como diversidad debida a múltiples caminos. El objetivo del receptor rastrillo es proveer diversidad en la recepción de CDMA de tal forma que las señales que lleguen al receptor desde diferentes caminos sean combinadas constructivamente. En la siguiente figura se supone que al receptor le llega la superposición de tres señales multicamino, la amplitud de la señal transmitida es A y los coeficientes de desvanecimiento tienen amplitudes A1, A2 y A3 y fases φ1, φ2 y φ3 respectivamente. Señal proveniente del camino 1 AA1ejφ1 Señal proveniente del camino 2 AA2ejφ2 Señal proveniente del camino 3 AA3ejφ3 Figura 2-4 Fasores que representan las señales provenientes de tres caminos diferentes Como al receptor le llega la superposición de las señales multicamino si fuera posible separarlas se podría idear alguna manera de que su suma fuera siempre constructiva. Suponiendo que es posible separarlas se puede implementar la técnica de combinación de tasa máxima (MRC por sus siglas en inglés). En está técnica, tal y como se muestra en la figura 2-5, se multiplica la señal de un camino por el complejo conjugado del coeficiente de desvanecimiento que afectó la señal en ese camino y de esta manera la señal queda netamente real y se garantiza que su contribución, a la suma que se hace posteriormente, va a ser siempre constructiva. 30 AA1ejφ1 Señal proveniente del camino 1 AA2ejφ2 Señal proveniente del camino 2 Señal proveniente del camino 3 AA3ejφ3 Combinación de tasa máxima: A1e A2ej-φ2 j-φ1 AA21 AA22 A3ej-φ3 AA23 AA21 + AA22 + AA23 Figura 2-5 Combinación de tasa máxima para el caso de tres señales multicamino 2.4 MODELO RECEPTOR RASTRILLO El receptor rastrillo se implementa para recibir la señal de sólo uno de los K usuarios presentes en el canal. Si se desea obtener la información de todos los K usuarios es necesario implementar K receptores rastrillo. Se supondrá que el usuario de interés es el usuario x (x ∈ {1..K}) y los otros K-1 son usuarios interferentes. El receptor tiene D ramas y el objetivo es que cada rama recupere la señal del usuario x proveniente de un camino diferente para luego sumarlas constructivamente utilizando la técnica de combinación de tasa máxima, por lo tanto, lo ideal es que C = D y se supone así durante los análisis que se desarrollen en adelante. La siguiente figura representa el modelo del receptor rastrillo. 31 …. Señal recibida Y(t) Retardo τR2x Retardo τR1x Señal firma Usuario x sx(t-τ) YR1x(t) Generada por el receptor YR2x(t) …. YR2x YR1x AR2x Correlator D …. Etapa 1: Línea de retardo YRDx(t) Correlator 2 Correlator 1 AR1x Retardo τRDx Etapa 2: correlatores YRDx ARDx Rama 2 Rama 1 Rama D Σ Etapa 3: Ajustes de fase y ganancia. Combinación de Tasa Máxima YRx ℜ{ } sgn ( Etapa 4: Toma de decisión ) Estimado de la señal enviada por el transmisor usuario x Figura 2-6 Diagrama en bloques del receptor rastrillo El modelo está dividido en cuatro etapas las cuales se explicarán más adelante incluyendo las ecuaciones que las caracterizan. 2.5 RECEPTOR ÓPTIMO PARA CDMA En esta sección se presenta un resumen del planteamiento del receptor óptimo para CDMA propuesto por Verdú y generalizado por Brady y Zovonar al caso de un multicamino con desvanecimiento Rayleigh. En este modelo se supone que la transmisión es CDMA-DSSS, que sólo hay un camino entre el transmisor y el receptor y que el receptor conoce o es capaz de estimar los parámetros del canal. De acuerdo la con ecuación (2-3), cuando hay varios usuarios y la señal de todos viaja por un sólo camino, la señal recibida es: 32 K Y (t ) = ∑ M MN ∑ ∑ k =1 i = − M j = − MN Ebk A1k [i ]bk [i ] pTb (t − iTb − τ 1k ) s k [ j ] pTch (t − jTch − τ 1k ) + σn(t ) Tb Si se desea hacer una demodulación óptima del i-ésimo bit que envía usuario k, bk[i], no basta con observar la señal recibida en el intervalo de tiempo que ocupa este bit, es necesario observar todo el intervalo de tiempo que toma el usuario k en enviar los 2M+1 bits, esto corresponde a observar una ventana de tiempo de duración (2M+2)Tb. Hay dos tipos de receptores que siguen este criterio y por lo tanto toman decisiones óptimas: el receptor individualmente óptimo ‘individually optimum receiver’ y el conjuntamente óptimo ‘jointly optimum receiver’. El criterio de decisión del receptor individualmente óptimo, diseñado para demodular el bit i del usuario k, selecciona el bit bk[i] ∈ {-1,1} tal que rehaga máximo: P[bk[i]|{Y(t), t ∈ [-MTb,(M+2)Tb]]. El criterio de decisión del receptor conjuntamente óptimo selecciona bT = [b1[-M] ...bK[-M]....b1[M]...bK[M]] bk[i] ∈ {-1,1} (2-4) tal que se haga máximo: P[b|Y(t), t ∈ [-MTb,(M+2)Tb]] y el estimado de bk[i] se obtiene a partir de la secuencia bT. Si se implementa el receptor individualmente óptimo se obtiene la mínima probabilidad de error de bit. Si se implementa el conjuntamente óptimo se decide por el b que esté lo más cerca posible, en el sentido medio cuadrático, a la señal recibida Y(t). El receptor óptimo que se considera en adelante es el conjuntamente óptimo que también es conocido como ‘Maximum Likelihood Sequence Detector’ (MLS). El uso del receptor 33 conjuntamente óptimo se justifica debido a que su complejidad es menor y a no ser que la relación señal a ruido sea muy baja la probabilidad de error de bit que se logra es muy cercana a la probabilidad de error de bit mínima que se logra con el receptor individualmente óptimo (Verdú 2001). El modelo del MLS es Matched filter usuario 1 Señal recibida .. Matched filter usuario 2 Algoritmo de Viterbi .. Estimado de la señal enviada por el transmisor Matched filter usuario K Figura 2-7 Diagrama en bloques del recepto óptimo para CDMA propuesto por Verdú. La señal recibida Y(t) se puede escribir en forma vectorial: Y(t) = bTASt + σn(t) En donde bT corresponde al definido en la ecuación (2-4), A es la matriz de coeficientes de desvanecimiento del canal: A = diag(A(-M),..A(M)); A(i) = diag(A11[i], A12[i],…, A1K[i]) y St corresponde a la matriz con la señal firma de todos los usuarios St = [sT(t+M)…sT(t-M)]T; s(t) = [s1(t-τ11),…,sK(t- τ1K)] T El objetivo del receptor MLS es hacer máximo: 1 f [{Y (t ), t ∈ [− MT , MT + 2T ]} | b] = exp − 2σ 2 2 MT + 2T ∫ Y (t ) − T (b) t − MT dt En donde Tt(b) = bTASt. Hacer máximo f[{Y(t),t ∈ [-MTb,MTb+2Tb]}|b] equivale a hacer máxima la función L(b): ∞ ∞ L(b)= 2 ∫ Tt (b)Y (t )dt − ∫ Tt (b) dt −∞ ∗ 2 ∞ 34 { } L(b)= 2ℜ b H Y − b H A H RAb ∞ En donde Y = ∫ Y (t ) H AS t dt es la salida de los ‘matched filters’ muestreada cada Tb y * −∞ ∞ R es la matriz de correlación R = ∫ S t S t dt . * T −∞ El b que hace máxima la función L(b) se encuentra con ayuda de un algoritmo de programación dinámica ‘dynamic programming algorithm’. En este algoritmo, de acuerdo a lo que se mencionó anteriormente, es necesario esperar a que llegue toda la trama de 2M+1 bits de cada usuario para luego tomar una decisión. Esperar a que lleguen los 2M+1 bits no resulta muy útil en la práctica y por lo general no se espera a que llegue toda la trama sino que se hace una aproximación en la que cada L bis recibidos (L<2M+1) se toma una decisión. Esta versión modificada del algoritmo de programación dinámica se conoce como algoritmo de Viterbi. 2.6 RELACIÓN SEÑAL A RUIDO La relación señal a ruido se define: SNR = E Bx , 2σ 2 en donde EBx es la energía con que se recibe un bit de la señal enviada por el usuario x y σ2 es la densidad espectral de potencia del ruido Gaussiano aditivo. De acuerdo con la definición de energía de Proakis: T E Bx 2 1 b = ∫ Yx (t ) dt 20 Yx(t) corresponde a la definición hecha en la ecuación (2-2) y al reemplazar en la ecuación anterior se obtiene: 35 E = bx 2 E BX C ∑ A [i ] c =1 2 cx , y C SNR = Ebx ∑ Acx [i ] c =1 4σ 2 Como los coeficientes Acx varían con el tiempo la energía recibida por bit EBx y la relación señal a ruido SNR también varían con el tiempo y un valor más útil resulta ser el valor promedio de SNR: SNR = E [SNR ] = E Bx , 2σ 2 donde E Bx E = bx 2 ∑ E [ A [i ] C c =1 cx 2 ] Teniendo en cuenta la descripción de los coeficientes del canal hecha al final de la sección 2.2.1 se llega a que: [ ] E Adx [i ] = 2σ A 2 2 y finalmente se obtiene: CE bxσ A SNR = 2σ 2 2.7 2 (2-5) DIAGRAMA DE FLUJO DE LAS SIMULACIONES Para las simulaciones se crearon tres funciones, una simula el transmisor del usuario de interés (usuario x), otra simula el canal y otra simula el receptor rastrillo. En la figura 28 se resaltan los bloques con que se implementaron la función transmisor y la función canal. 36 INICIO Función transmisor usuario x Generar secuencia gold usuario x Generar secuencia de bits de información multiplicación Generar secuencia firma usuario x Generar señales usuarios interferentes teniendo en cuenta efecto multicamino y desvanecimiento Rayleigh Función Canal hx(t) Añadir efecto multicamino y desvanecimiento Rayleigh suma Sumar AWGN Receptor Rake FIN Figura 2-8 Diagrama de flujo de las simulaciones 2.8 PARÁMETROS SIMULACIONES N = 127 C = 3 D = C Ack: Permanecen constantes durante el envió de 10 bits de información σ2A = 0.3 σ2A: El mismo para todos los usuarios y todos los caminos τ1k < τ2k < τ3k Usuario de interés: usuario x τ1x = 20 τ2x = 40 τ3x = 60 Para usuarios interferentes τ11 = …= τ1k =...= τ1K = 30,k ≠ x τ21 = …= τ2k =...= τ2K = 50,k ≠ x τ31 = …= τ3k =...= τ3K = 70,k ≠ x 37 El número de bits enviados en cada simulación se calculó con el método de Montecarlo. En el artículo de Jeruchim se encuentra una explicación detallada de cómo utilizar éste método. 38 3. 3.1 DESARROLLO PASO DESARROLLO A PASO DE LAS ECUACIONES QUE CARACTERIZAN AL RECEPTOR RASTRILLO El desarrollo que se presenta a continuación se remite al modelo presentado en la sección 2.4 figura 2-6. 3.1.1 Etapa 1. Línea de retardo Señales provenientes de diferentes caminos llegan en diferentes momentos, esto está representado en el siguiente esquema t= 0 Se envía señal desde el transmisor x. t = τ1x Llega primera señal multicamino usuario x. t =τ2x Llega segunda señal multicamino usuario x. ……. t = τCx Llega última señal multicamino usuario x. τR1X τR2X .. .. Figura 3-1 Representación de los tiempos de llegada de las señales multicamino para un usuario La función de la línea de retardo es que las señales multicamino correspondientes al usuario x se retrasen el tiempo necesario para que al pasar a los correlatores parezca como si llegaran todas al tiempo. Para cumplir ésto los retardos τRdx (ver figuras 2-6 y 31) deben ser iguales a τRdx = τCx – τdx, como se supone C = D entonces también se puede escribir τRdx = τDx – τdx. 39 La señal recibida, descrita en la ecuación (2-3), también se puede escribir de la siguiente manera: K C Y (t ) = ∑∑ Ack (t )bk (t − τ ck ) s k (t − τ ck ) + σn(t ) k =1 c =1 Teniendo en cuenta esta ecuación, la salida de la línea de retardo son las D señales YR1x(t) a YRDx(t) en donde: YRdx (t ) = Y (t − τ Rdx ) K C = ∑∑ Ack (t )bk (t − τ ck − τ Rdx )s k (t − τ ck − τ Rdx ) + σn(t − τ Rdx ) (3-1) k =1 c =1 Para entender mejor la función de la línea de retardo un ejemplo ilustrativo para tres caminos es el siguiente: Ej. 3: Suponiendo que C = 3, la señal que llega al receptor es la superposición de las señales provenientes de los 3 caminos diferentes. Suponiendo que la señal del camino 1 llega con retardo de Tch (señal triángulo negra en la figura 3-2), que la señal del camino 2 llega con retardo de 2Tch (señal café en la figura 3-2) y la señal del camino 3 llega con retardo de 3Tch (señal verde en la figura 3-2), la señal a la entrada del receptor está dada por la superposición de estas tres señales. Las señales a la entrada del receptor se pueden ver en la siguiente figura: Y(t) Y(t) Y(t) t=3Tch t=Tch t=2Tch YR2x(t) Retardo τR2x τR2x =Tch Retardo τR3x τR3x =0 t=0 YR1x(t) Retardo τR1x τR1x =2Tch YR3x(t) t=3Tch t=Tch t=2Tch Corr1 Corr2 Corr3 YR1x Etapas YR2x 3 YR3x y 4 t=0 sx(t-τ) τ = τDx Señales a la entrada del receptor Figura 3-2 Ejemplo de la función de la línea de retardos. 40 En la figura se ve que aunque la entrada a cada bloque de retardo es la misma, a la salida, las señales de caminos diferentes quedan alineadas en t = 3Tch. 3.1.2 Etapa 2: Correlatores Hay D correlatores, para el correlator d una entrada es la señal firma generada internamente por el receptor y desfasada τ, sx(t-τ) (τ debe ser igual a τDx como se muestra en la figura 3-2), y la otra entrada es la señal proveniente de la línea de retardo. Teniendo en cuenta la ecuación (3-1) la salida del correlator de la rama d es igual a: Tb YRdx = ∫ s x (t − τ ) ⋅ YRdx (t )dt 0 Tb K C = ∫ s x (t − τ ) ⋅ ∑∑ Ack (t )bk (t − τ ck − τ Rdx )s k (t − τ ck − τ Rdx ) + σn(t − τ Rdx ) dt k =1 c =1 0 El receptor rastrillo toma decisiones bit a bit por lo tanto su análisis se puede limitar a una ventana de duración Tb suponiendo que durante este tiempo llega sólo un bit de información relacionado con el usuario x. Durante un intervalo de esta duración los coeficientes de desvanecimiento del canal permanecen constantes por lo tanto en la ecuación se pueden dejar como constantes. Bajo estas suposiciones: Tb C 0 c =1 YRdx = ∫ s x (t − τ ) ⋅ ∑ ( ) Ebx Acx bx s x (t − τ cx − τ Rdx ) dt + K C ∑ ∑ Ebk Ack b' k (t − τ ck − τ Rdx ) s k (t − τ ck − τ Rdx ) + σn(t − τ Rdx ) dt s ( t τ ) − ⋅ ∫0 x k =1,k ≠ x c =1 Tb En donde b' k (t ) = bk (t ) Ebk y los valores que puede tomar b´k(t) son sólo 1 o –1. 41 Se supone que la diferencia en tiempos de llegada entre señales multicamino correspondientes a un mismo usuario es mayor al tiempo de chip Tch. Bajo esta suposición y teniendo en cuenta las propiedades de autocorrelación de las secuencias Gold, la correlación entre señales de diferente camino pero correspondientes a un mismo usuario se puede aproximar a cero. Se tiene entonces que: Tb ∫s x (t − τ ) s x (t − (τ cx + τ Rdx ) )dt ≠ 0 solo para |τ – (τcx+τRdx)|<Tch 0 y que la desigualdad se cumple sólo para c = d recordando que τ = τDx y τRdx = τDx - τdx. Eliminando de la sumatoria los términos correspondientes al usuario x para los cuáles c ≠ d se obtiene: Tb YRdx = ∫ s x (t − τ ) Ebx Adx bx s x (t − τ dx − τ Rdx )dt + 0 K C ∑ ∑ Ebk Ack b' k (t − τ ck − τ Rdx ) s k (t − τ ck − τ Rdx ) + σn(t − τ Rdx ) dt s ( t τ ) − ⋅ ∫0 x k =1,k ≠ x c =1 Tb YRdx se puede rescribir de la siguiente forma: YRdx = Ebx Adx bx ρ xx + σn dx + K C ∑ ∑ k =1,, k ≠ x c =1 Ebk Ack Lck (3-2) Tb En donde ρ xx = ∫ s x (t − (τ dx + τ Rdx ))s x (t − τ )dt , (3-3) 0 Tb Lck = ∫ s x (t − τ )b' k (t − τ ck − τ Rdx )s k (t − τ ck − τ Rdx )dt , (3-4) 0 y Tb n dx = ∫ s x (t − τ )n(t − τ Rdx ) 0 42 La señal firma generada en el receptor debe estar sincronizada con la que llega del transmisor del usuario de interés, en este caso el usuario x. La sincronización depende de la estimación que se haga de los retardos τcx. Si estos retardos se estiman perfectamente τ = τDx y τRdx = τDx - τdx y en consecuencia ρxx = 1. Cuando no se estiman correctamente el error en la estimación de τ y τRdx se puede representar como un error neto igual a Tch∆τ. Este error neto, que se supone igual en cada rama, corresponde a que en el correlator d la señal firma de la señal proveniente del camino d está desfasada Tch∆τ con respecto a la señal firma generada internamente por el receptor. Como consecuencia éstas dos señales firma no están sincronizadas y por eso el error en la estimación de los τcx se conoce como error en la sincronización de la señal firma. La figura 3-3 da una idea de lo que pasa en el correlator cuando hay error en la sincronización de la señal firma. ρxx en la ecuación (3-3) se puede dejar en términos del error de sincronización: Tb ρ xx (∆τ ) = ∫ s x (t )s x (t − Tch ∆τ )dt , (3-5) 0 y la ecuación (3-2) queda YRdx = Ebx Adxbx ρ xx (∆τ ) + σndx + K C ∑ ∑ k =1, k ≠ x c =1 Ebk Ack Lck (3-6) Por ahora se supone que hay sincronización perfecta, ∆τ = 0 y por lo tanto se obtiene: 43 YRdx = Ebx Adxbx + σndx + K C ∑ ∑ k =1, k ≠ x c =1 Ebk Ack Lck (3-7) T ch Señal firma usuario x camino c Señal firma generada por el receptor, sincronizada Señal firma generada por el receptor, con error de sincronización T ch∆ τ Figura 3-3 Ejemplo de lo que sucede en los correlatores cuando hay error de sincronización 3.1.3 Etapa 3: Combinación de tasa máxima En esta etapa se implementa la técnica de combinación de tasa máxima en la cual el valor de los coeficientes de ajuste de fase y ganancia (ARdx en la figura 2-6) debe ser igual al valor conjugado de los coeficientes de desvanecimiento del canal, esto de acuerdo con lo que se dijo en las secciones 2.3.1 y 2.3.2. Esto significa que en el caso de estimación perfecta de los coeficientes de desvanecimiento del canal ARdx = Adx*. La salida de esta etapa es: D YRx = ∑ ARdx ⋅ YRdx d =1 Suponiendo estimación perfecta de los coeficientes del canal ARdx = Adx* y teniendo en cuenta la ecuación (3-7): D D K C * 2 * YRx = ∑ Ebx bx Adx + ∑ Adx σndx + ∑ ∑ Ebk Ack Adx L d =1 d =1 k =1, k ≠ x c =1 (3-8) 44 3.1.4 Etapa 4: Toma de decisión Esta etapa implementa la toma de decisión basada en la regla de decisión que es: bˆx = sgn (ℜ{YRx }) b̂x es el estimado del bit transmitido bx. Reemplazando (3-8) en la regla de decisión: D D K C * 2 * bˆx = sgn Ebx ∑ Adx bx + ∑ ℜ Adx σndx + Adx ∑ ∑ Ebk Ack Lck d =1 d =1 k =1, k ≠ x c =1 3.2 (3-9) DESARROLLO DE ECUACIONES PARA LA PROBABILIDAD DE ERROR DE BIT DEL RECEPTOR RASTRILLO. Para los cálculos que se realizan en las tres primeras etapas del receptor rastrillo es necesario conocer el valor de los parámetros del canal Ack y τck. Los valores de estos parámetros, con que cuenta el receptor, son el resultado de una estimación. A continuación se propone una expresión para la probabilidad de error de bit en el caso en que la estimación de los parámetros del canal es perfecta (PeP); una expresión para el caso en que la estimación de los coeficientes de desvanecimiento ARdx es imperfecta (PeA) y finalmente; una expresión para la probabilidad de error de bit para el caso en que la estimación de los τcx es imperfecta (Peτ) (error en la estimación de los τcx significa error en la sincronización de la señal firma) 3. 3 Los análisis de la probabilidad de error de bit se basaron en el análisis para diversidad hecho por S. Verdú en su libro ‘Multiuser Detecion’ 45 3.2.1 Probabilidad de error de bit. Caso: Receptor rastrillo con estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. Para este caso la regla de decisión está dada por la ecuación (3-9). Primero resulta conveniente hallar la probabilidad de error de bit condicionada a los coeficientes Adx, (PePc). Esta probabilidad es igual a: Pe Pc (S N R ) = P[bx ≠ bˆx A1x ... ADx ] = P[bx = −1]P[bˆx = +1 bx = −1, A1x ... ADx ] + P[bx = +1]P[bˆx = −1 bx = +1, A1x ... ADx ] Se sabe que P[bx = −1] = P[bx = +1] = 1 2 entonces falta hallar P[bˆ x = +1 b x = −1, A1x ... ADx ] y P[bˆx = −1 bx = +1, A1x ... ADx ] . Primero se va a hallar: P[bˆx = +1 bx = −1, A1x ... ADx ] [ = P bˆx > 0 bx = −1, A1x ... ADx ] D K C D * 2 * = P − Ebx ∑ Adx + ∑ ℜ Adx σndx + Adx ∑ ∑ Ebk Ack Lck > 0 bx = −1, A1x ... ADx d =1 k =1, k ≠ x c =1 d =1 D K C D * 2 * = P ∑ ℜ Adx σndx + Adx ∑ ∑ Ebk Ack Lck > Ebx ∑ Adx + bx = −1, A1x ... ADx d =1 k =1, k ≠ x c =1 d =1 como K C K C D * D * 2 VAR ∑ ℜ Adx σndx + Adx ∑ ∑ Ebk Ack Lck = σ 2 + σ A ∑ ∑ Ebk L2 ck ∑ Adx k =1, k ≠ x c =1 k =1, k ≠ x c =1 d =1 d =1 2 se tiene que 46 D 2 Ebx ∑ Adx d =1 P[bˆx = +1 bx = −1, A1x ... ADx ] = Q K C 2 σ 2 + σ A ∑ ∑ Ebk L2 ck k =1, k ≠ x c =1 Ahora falta hallar P[bˆx = −1 bx = +1, A1x ... ADx ] . Siguiendo el mismo análisis anterior se llega a que P[bˆx = −1 bx = +1, A1x ... ADx ] D K C D * 2 * = P ∑ ℜ Adx σndx + Adx ∑ ∑ Ebk Ack Lck < − Ebx ∑ Adx + bx = +1, A1x ... ADx = d =1 k =1, k ≠ x c =1 d =1 La ecuación anterior se puede rescribir: P[bˆx = −1 bx = +1, A1x ... ADx ] D K C D * 2 * = 1 − P ∑ ℜ Adx σndx + Adx ∑ ∑ Ebk Ack Lck > − Ebx ∑ Adx + bx = +1, A1x ... ADx d =1 k =1, k ≠ x c =1 d =1 D 2 Ebx ∑ Adx d =1 = 1 − Q − K C 2 σ 2 + σ A ∑ ∑ Ebk L2 ck k =1, k ≠ x c =1 Teniendo en cuenta la propiedad Q(-x)+Q(x)=1: D 2 Ebx ∑ Adx d =1 P[bˆx = −1 bx = +1, A1x ... ADx ] = 1 − 1 − Q K C 2 2 + σ σ Ebk L2 ck ∑ ∑ A k =1, k ≠ x c =1 D 2 Ebx ∑ Adx d =1 = Q K C 2 σ 2 + σ A ∑ ∑ Ebk L2 ck k =1, k ≠ x c =1 En resumen 47 P[bˆx = +1 bx = −1, A1x ... ADx ] = P[bˆx = −1 bx = +1, A1x ... ADx ] D 2 Ebx ∑ Adx d =1 = Q K C 2 2 σ + σ A ∑ ∑ Ebk L2 ck k =1, k ≠ x c =1 Y Pe Pc ( S N R ) = P[bx ≠ bˆx A1x ... ADx ] = P[bx = −1]P[bˆx = +1 bx = −1, A1x ... ADx ] + P[bx = +1]P[bˆx = −1 bx = +1, A1x ... ADx ] D 2 Ebx ∑ Adx 1 d =1 = Q K C 2 2 2 σ + σ A ∑ ∑ Ebk L2 ck k =1, k ≠ x c =1 D 2 Ebx ∑ Adx d =1 = Q K C 2 σ 2 + σ A ∑ ∑ Ebk L2 ck k =1, k ≠ x c =1 D 2 Ebx ∑ Adx 1 d =1 K C + 2 Q 2 2 σ + σ A ∑ ∑ Ebk L2 ck k =1, k ≠ x c =1 (3-10) Como Adx es una variable aleatoria, la probabilidad de error de bit no condicionada (Pep) se va a tomar como el valor esperado de la probabilidad de error de bit condicionada (Pepc). Esto significa que en realidad Pep es el promedio o valor esperado de la probabilidad de error de bit. Este valor esperado se halla usando la propiedad de la función Q que se encuentra en el anexo 2, sección 7.5, teniendo en cuenta que para este caso: Xi = Ebx σ +σA 2 2 K C ∑ ∑E k =1, k ≠ x c =1 bk 2 Adx L ck L=Dy 48 Ebx γ = σ +σA 2 K 2 C ∑ ∑E k =1, k ≠ x c =1 bk 2 σA L ck Por lo tanto la probabilidad de error de bit no condicionada es: PeP ( S N R ) = 1 1 − 2 2 1 σ 2 + σ A2 1+ K C ∑ ∑E k =1, k ≠ x c =1 2 bx A E σ bk L2 ck D −1 1 ⋅ 3 ⋅ 5 ⋅ ⋅ ⋅ ⋅(2n − 1) n 1 + ∑ n =1 2 Ebxσ A n + n!2 1 K C 2 2 2 σ + σ A ∑ ∑ Ebk L ck k =1, k ≠ x c =1 (3-11) 3.2.2 Probabilidad de error de bit. Caso: Receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. Error en la estimación de los coeficientes de desvanecimiento significa que (ver figura 2-6) ARdx = Adx*+ ∆Ad. La variable ∆Ad representa el error en la estimación y es igual a ∆Ad = ∆Adr + j∆Adi. ∆Ad tiene partes real e imaginaria independientes y ∆Adr~N(0,σ2∆A) y ∆Adir~N(0,σ2∆A). La salida de la etapa 3 (Combinación de tasa máxima) es D YRx = ∑ ARdx ⋅ YRdx d =1 Reemplazando ARdx = Adx*+ ∆Ad y YRdx por su valor correspondiente en el caso en que no hay error en la sincronización de la señal firma, ecuación (3-7), se obtiene la salida 49 de la etapa 3 en el caso en que hay error en la estimación de los coeficientes de desvanecimiento del canal: D ( ) YRx = ∑ Adx + ∆Ad ⋅ YRdx d =1 * ( ) D K C * = ∑ Adx + ∆Ad ⋅ Ebx Adx bx + σn dx + ∑ ∑ Ebk Ack Lck d =1 k =1, k ≠ x c =1 D = ∑ ( Ebx bx Adx + Ebx bx Adx ∆Ad + Adx σndx + ∆Ad σndx 2 * d =1 + Adx * K C ∑ ∑ k =1,, k ≠ x c =1 Ebk Ack Lck + ∆Ad K C ∑ ∑ k =1, k ≠ x c =1 Ebk Ack Lc k ) Utilizando este resultado, la regla de decisión b̂x = sgn (ℜ{YRx }) queda igual a: D bˆx = sgn ℜ∑ d =1 ( ) 2 Ebx bx Adx + E d , en donde E d = Ebx bx Adx ∆Ad + Adx σn dx + ∆Ad σn dx + Adx * * K C ∑ ∑ k =1, k ≠ x c =1 Ebk Ack Lck + ∆Ad K C ∑ ∑ k =1, k ≠ x c =1 Ebk Ack Lck Inicialmente se halla la probabilidad de error de bit condicionada PeAc. Siguiendo un proceso análogo al que se hizo en el caso de estimación y sincronización perfecta, para hallar Pe Ac ( S N R ) = P[bx ≠ bˆx A1x ... ADx ] primero es necesario hallar P[bˆx = +1 bx = −1, A1x ... ADx ] y P[bˆx = −1 bx = +1, A1x ... ADx ] . Para empezar se tiene que: D D 2 P[bˆx = +1 bx = −1, A1x ... ADx ] = P ∑ ℜ{E d } > Ebx ∑ Adx + bx = −1, A1x ... ADx d =1 d =1 Aproximando que la varianza de 50 D ∑ ℜ{E } d =1 (3-12) d es igual a4 : K C D 2 D 2 2 2 VAR ∑ ℜ{E d } = σ + σ A ∑ ∑ Ebk L ck + Ebxσ ∆A ∑ Adx k =1,, k ≠ x c =1 d =1 d =1 2 (3-13) se tiene que D 2 Ebx ∑ Adx d =1 P[bˆx = +1 bx = −1, A1x ... ADx ] = Q K C 2 σ 2 + σ A ∑ ∑ Ebk L2 ck + Ebxσ ∆A 2 k =1,, k ≠ x c =1 Y siguiendo un proceso análogo se obtiene: D 2 Ebx ∑ Adx d =1 P[bˆx = −1 bx = +1, A1x ... ADx ] = Q K C 2 σ 2 + σ A ∑ ∑ Ebk L2 ck + Ebxσ ∆A 2 k =1,, k ≠ x c =1 La probabilidad de error condicionada es igual a: D 2 Ebx ∑ Adx d =1 Pe Ac ( S N R ) = Q K C σ 2 + σ A 2 ∑ ∑ Ebk L2 ck + Ebxσ ∆A 2 k =1,, k ≠ x c =1 (3-14) Comparando esta expresión con la equivalente para el caso de estimación perfecta (310) se ve que el error en la estimación de los coeficientes del canal Adx aumenta la probabilidad de error de bit condicionada y por lo tanto aumentará la probabilidad de error de bit no condicionada. 4 Para el cálculo de la varianza de 3-12 no se tiene en cuenta el término ∆Adσndx ni el término ∆Ad K C ∑ ∑ k =1,, k ≠ x c =1 Ebk Ack Lck ya que su función de densidad de probabilidad no es Gaussiana y esto complica el desarrollo de las ecuaciones. 51 Para hallar la probabilidad de error no condicionada hay que hallar el valor esperado de PeAc. Teniendo en cuenta la propiedad de la sección 7.5 con: Ebx Xi = σ +σ A 2 K 2 C ∑ ∑E k =1,, k ≠ x c =1 2 bk L + Ebxσ ∆A ck 2 ⋅ Adx , L=Dy Ebx γ = σ +σ A 2 K 2 C ∑ ∑E k =1,, k ≠ x c =1 2 bk L ck + Ebxσ ∆A 2 σA se obtiene la probabilidad de error no condicionada: Pe A ( S N R ) = 1 1 − 2 2 1 σ 2 +σ A2 1+ K C ∑ ∑E k =1, , k ≠ x c =1 bk E bx σ A L2 ck + E bx σ ∆A 2 2 D −1 1 ⋅ 3 ⋅ 5 ⋅ ⋅ ⋅ ⋅(2n − 1) 1 + ∑ n n =1 2 E bx σ A n n!2 + 1 K C 2 2 σ 2 + σ A ∑ ∑ E bk L2 ck + E bx σ ∆A k =1, k ≠ x c =1 (3-15) 3.2.3 Probabilidad de error de bit. Caso: Receptor rastrillo con error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal Al encontrar la salida de la etapa 2 (correlatores) se llegó a la ecuación (3-6) YRdx = Ebx Adx bx ρ xx (∆τ ) + σndx + K C ∑ ∑ k =1,, k ≠ x c =1 Ebk Ack Lck Tb En donde ρ xx (∆τ ) = ∫ s x (t )s x (t − Tch ∆τ )dt 0 y Tb Lck = ∫ s x (t − τ )b' k (t − τ ck − τ Rdx )s k (t − τ ck − τ Rdx )dt 0 52 Como se supone que el valor de los ARdx corresponde a una estimación perfecta la salida de la etapa 4 es: D D K C * 2 * bˆx = sgn Ebx ∑ Adx bx ρ xx (∆τ ) + ∑ ℜ Adx σndx + Adx ∑ ∑ Ebk Ack Lck , (3-16) d =1 d =1 k =1, k ≠ x c =1 D ya que bˆx = sgn (ℜ{YRx }) y YRx = ∑ ARdx ⋅ YRdx d =1 La función ρxx(∆τ) se puede definir a trozos en función del tiempo de chip Tch: Tch − Tch ∆τ → para ∆τ < 1 Tch y según esta definición 0< ρxx(∆τ)<1 ρ xx (∆τ ) = 0 → para ∆τ ≥ 1 Se define ∆τ~N(0,σ2∆τ). En el caso en que |∆τ| ≥ 1 la correlación es cero: ρxx(∆τ)=0 y la regla de decisión queda solo en función de la variable aleatoria: K C D * * bˆx = sgn ∑ ℜ Adx σndx + Adx ∑ ∑ Ebk Ack L k =1, k ≠ x c =1 d =1 y para este caso la probabilidad de error de bit (Peτ) es igual a ½. En el caso en que |∆τ|<1, ρxx(∆τ)≠0 y la regla de decisión es (3-16). Para el desarrollo de las ecuaciones se supone que ρxx(∆τ) es una constante, es decir, las ecuaciones se van a hallar para un ∆τ fijo. Comparando la ecuación (3-16) con la ecuación (3-9) se ve que el único término diferente es ρxx(∆τ) y como éste se supone constante el desarrollo de las ecuaciones es el mismo que para el caso en que hay estimación perfecta de los coeficientes y sincronización perfecta. De acuerdo a esto la probabilidad de error de bit condicionada es: 53 D 2 2 Ebx ρ xx (∆τ )∑ Adx d =1 Peτc (S N R ) = Q K C σ 2 + σ A 2 ∑ ∑ Ebk L2 ck k =1, k ≠ x c =1 (3-17) Para hallar la probabilidad de error no condicionada hay que hallar el valor esperado de Peτc. Teniendo en cuenta la propiedad de la sección 7.5 para la función Q con: Ebx ρ xx (∆τ ) 2 Xi = σ +σ A 2 K 2 Adx C ∑ ∑E k =1, k ≠ x c =1 2 bk L ck L=Dy Ebx γ = σ +σ A 2 2 K ρ xx (∆τ )σ A C ∑ ∑E k =1, k ≠ x c =1 2 bk L ck Se obtiene: Peτ ( S N R ) = 1 1 − 2 2 1 σ 2 + σ A2 1+ Ebx ρ K C ∑ ∑E bk k =1, k ≠ x c =1 2 2 xx A (∆τ )σ L2 ck D −1 1 ⋅ 3 ⋅ 5 ⋅ ⋅ ⋅ ⋅(2n − 1) 1 + ∑ n n =1 2 2 Ebx ρ xx (∆τ )σ A n + 1 n!2 K C 2 2 2 σ + σ A ∑ ∑ Ebk L ck k =1, k ≠ x c =1 (3-18) Cuando ρxx(∆τ)=1 la probabilidad de error de bit queda igual a la probabilidad que se halló para el caso de estimación perfecta: PeP. De acuerdo con esto, cuando hay error en la estimación de τ la probabilidad de error está entre dos límites: PeP < Peτ < 1/2 En este punto el siguiente paso sería hallar el valor esperado de Peτ con respecto a la variable aleatoria ρxx(∆τ). Cuando las variaciones de ∆τ son lentas en comparación a la 54 tasa de envío de información (1/Tb) el resultado de la ecuación (3-18) resulta más útil si se usa para calcular la probabilidad de que la probabilidad de error de bit esté por debajo de cierto margen. Esto se debe a que cuando se trabaja con variables aleatorias cuya variación es lenta en comparación a la tasa de envío de información, el valor esperado de la probabilidad de error de bit puede alejarse considerablemente del valor real debido a condiciones desfavorables y raras del canal (Verdú 2001). Suponiendo que las variaciones de ∆τ son lentas en comparación a la tasa de envío de información, el resultado obtenido en la ecuación 3-18 se puede usar para dados F y E calcular el rango admisible de la varianza del error (σ2∆τ) para garantizar que P[PeP < Peτ < F] > E. El procedimiento es el siguiente: Dado F se puede usar la ecuación 3-18 para hallar el valor de ρxx(∆τ) con el que Peτ = F. Suponiendo que este valor es igual a ρA la siguiente afirmación es cierta: P[PeP < Peτ < F]=P[ρA< ρxx(∆τ) <1]. Como ρ A = Tch − Tch ∆τ Tch entonces ∆τ = 1 − ρ A y 1− ρA P[PeP < Peτ < F] = P[ρA< ρxx(∆τ) <1] = P[ |∆τ|<1-ρA] = erf 2σ ∆τ (3-19) El resultado anterior implica que para que la probabilidad, de que la probabilidad de error de bit sea menor que F, sea mayor a E, se debe garantizar un σ∆τ menor o igual al que cumple con la siguiente igualdad: 1− ρA erf 2σ ∆τ =E 55 3.3 RESUMEN DE LAS FUNCIONES CREADAS PARA REALIZAR LAS SIMULACIONES. Las simulaciones se basan en tres funciones principales creadas en Matlab: 1. Función Transmisor 2. Función Canal 3. Función Receptor Es importante resaltar que estas funciones hacen llamados a funciones implementadas en C++ las cuáles realizan la mayor parte de los cálculos. A continuación se presenta el código en Matlab de las funciones transmisor, canal y receptor; el código de las funciones creadas en C++ se incluye en el Anexo 1. Los códigos presentados se encuentran bien documentados y en los códigos de Matlab se resalta en negrilla la parte que define las entradas, la parte que define las salidas y los pasos importantes. En la documentación de las funciones se supone que el usuario de interés es el usuario 1. Las variables aleatorias Gaussianas de media cero generadas en Matlab se crearon a partir de la función ‘randn’ y las generadas en C++ se crearon a partir del algoritmo de Box-Müller presentado por Donadio. La función receptor implementa el modelo de la figura 2-6 y no implementa el estimador del canal. Por esta razón entre las entradas a la función receptor están los coeficientes de desvanecimiento del canal y los retardos multicamino correspondientes al usuario de interés. En los casos en que hay error en la estimación de los parámetros 56 del canal, este se genera dentro de las mismas funciones y corresponden a los modelos planteados: variables aleatorias Gaussianas de media cero. 3.3.1 Función transmisor La función ‘txg.m’ genera la señal transmitida por el usuario de interés que se define según la ecuación (2-1). En la figura 2.8 se resaltan los bloques que representan el proceso para generar esta señal. ‘txg.m’ se encarga de crear la secuencia de bits transmitidos por el usuario de interés (usuario 1 en la documentación de los códigos) y de llamar la función ‘transmisorg.cpp’ la cual genera la secuencia Gold del usuario de interés y su señal firma y se encarga de multiplicarla por la señal de información. El código de la función ‘transmisorg.cpp’ se encuentra en el anexo 1a. Función ‘txg.m’: function [X1,bitsinfo,gold] = txg(corrimiento,numbitsinfo,Eb) %Genera la señal transmitida por el usuario 1 %Se definió Tb = 127, Tc =1 %ENTRADAS: %corrimiento: Indica el corrimiento de una de las dos maximal sequences % usadas para generar la secuencia Gold a partir de la cual % se genera la señal firma del usuario 1. %numbitsinfo: Indica el número de bits de información que envía el usuario % 1 %Eb: Energía por bit transmitida por el usuario 1 Tb = 127; %1. Generar la secuencia de bits transmitidos: %(La probabilidad de transmitir un 1 es igual a la probabilidad de %transmitir un cero, esta probabilidad es igual a 0.5): bitsinfo= randsrc(1,numbitsinfo); %2. Cada bit transmitido se multiplica por sqrt(Eb/Tb) de acuerdo al %modelo propuesto: senalinfo = sqrt(Eb/Tb)*bitsinfo; 57 %3. Se llama a la función en C++ llamada `transmisorg´ %Esta función se encarga de generar la señal transmitida multiplicando la %señal de información (senalinfo) por la secuencia Gold del usuario 1 la %cual se genera internamente en la funcion`transmisorg´ y depende del %parámetro de entrada: corrimiento %SALIDAS: %X1 : Vector que contiene la señal transmitida por el usuario 1 %Gold : Vector que contiene la secuencia Gold que se uso para generar % la señal transmitida por el usuario 1 : X1. Esta secuencia se % genera de acuerdo al parámetro de entrada 'corrimiento' %bitsinfo:Vector que contiene la secuencia de bits de información transmitidos. [X1,Gold] = transmisorg(corrimiento,senalinfo); 3.3.2 Función Canal La función ‘canalxusuarios2.m’ implementa los bloques correspondientes a la función canal que se resaltan en la figura 2-8. La salida de esta función corresponde a Y(t), ecuación (2-3). Esta función llama a la función en C++ ‘canalxu3.cpp’ que es la que realiza la mayoría de los cálculos. Las señales firma de los usuarios interferentes se generan a partir de los mismos polinomios primitivos usados en la función ‘trasnsmisorg.cpp’ para generar la señal firma del usuario de interés. Para generar la secuencia Gold del usuario interferente 1 se usa un corrimiento de 1, para generar la secuencia Gold del usuario interferente 2 se usa un corrimiento de 2 por lo tanto si hay L usuarios interferentes es importante que en la función ‘txg.m’ definida en la sección anterior el parámetro de entrada corrimiento sea igual a 0 o mayor a L. Función ‘canalxusuarios2.m’: function[Yr,Yi,A1r,A1i] = canalxusuarios2(numbitsinfo,numusuariosint,Ebinterferentes,sigA2,taos,sigmaawgn, x1) %A partir de la señal transmitida por el usuario 1, X1, la función %canalxusuarios2 genera (con ayuda de la función en C++ canalxu3) %la señal Y que corresponde a la señal recibida, es decir la señal 58 %X1 después de haber pasado por un canal con desvanecimiento Rayleigh, %efecto multicamino y varios usuarios y haberle sumado a la señal AWGN. %El canal de desvanecimiento Rayleigh se define en este caso como un canal %que genera 3 señales multicamino %ENTRADAS %X1 : Vector que contiene la señal transmitida por el usuario 1. %taos: [tao1,tao2,tao3] Vector que contiene los retardos que afectan % la señal del usuario 1 en los caminos 1, 2 y 3 respectivamente. % Se definió que para los usuarios interferentes el numero de % caminos es también 3 % El retardo de los usuarios interferentes se definió como % tao1+10 para el primer camino % tao2+10 para el segundo camino % tao3+10 para el tercer camino % Lo anterior significa que para los usuarios interferentes % el número de caminos es el mismo y en caminos iguales tienen % el mismo retardo %sigA2: Contiene el valor de la varianza de la parte real y de la % parte imaginaria de los coeficientes de desvanecimiento del % canal (σ2A) % (misma para todos los usuarios y todos los caminos). % Recordar que la parte real y la parte imaginaria son % variables aleatorias Gaussianas independientes de media cero % e igual varianza: sigA2. %numbitsinfo: Indica el número de bits de información que envió el usuario. %sigmaawgn: Varianza de la parte real y la parte imaginaria del awgn (σ2). %Ebinterferentes: Energia usuarios interferentes % (Es la misma para todos. No es un vector) %numusuariosint: Numero de usuarios interferentes %1.Generar los coeficientes del canal que afectan al usuario x. %Cada fila representa un camino diferente y el numero de columnas %corresponde al número de bits que se enviaron %Se supone que los coeficientes permanecen constantes durante el envió de %10 bits de información a = 1; cont = 0; while a <= numbitsinfo if (cont==0 | cont>9) A1r(a,:) = sqrt(sigA2)*randn(1,3); A1i(a,:) = sqrt(sigA2)*randn(1,3); cont = 1; else A1r(a,:) = A1r(a-1,:); A1i(a,:) = A1i(a-1,:); cont = cont+1; end a=a+1; end 59 %2. Llamar a la función en C++ 'canalxu3' la cual genera Y que es la salida % del canal: %SALIDAS: %Yr: Vector que contiene la parte real de la salida del canal (Re(Y(t))) % de acuerdo al modelo propuesto %Yi: Vector que contiene la parte imaginaria de la salida del canal % (Im(Y(t)))de acuerdo al modelo propuesto %A1r: Matriz, tamaño: numbitsinfox3. Contiene la parte real de los coeficientes de % desvanecimiento del canal que afectan a cada uno de los bits de la % señal transmitida por el usuario 1 (X1) %A1i: Matriz, tamaño: numbitsinfox3. Contiene la parte imaginaria de los % coeficientes de desvanecimiento del canal que afectan a cada uno % de los bits de la señal transmitida por el usuario 1 (X1) [Yr, Yi] = canalxu3(numbitsinfo,numusuariosint,Ebinterferentes,sigA2,taos,sigmaawgn,x1, A1r,A1i); Los bloques en la figura 2-8 correspondientes a la función Canal, se implementan en la función en C++ ‘canalxu3.cpp’ a partir de las siguientes 4 subfunciones: • canalxu3 • sumsusumassint • secuencias • vgauss El bloque de la figura 2-8 que representa la generación de la señal correspondiente a los usuarios interferentes se implementa a partir de ‘canalxu3’ y ‘secuencias’. La función ‘secuencias’ se encarga de generar las secuencias de longitud máxima a partir de las cuáles se obtiene la secuencia Gold de cada uno de los usuarios interferentes. La función ‘canalxu3’ se encarga de generar la secuencia Gold de cada uno de los usuarios interferentes y de añadirle a la señal de cada uno el efecto multicamino, el desvanecimiento Rayleigh y luego sumarlas. 60 La función ‘sumsusumassint’ se encarga de implementar el bloque hx(t) de la figura 2-8, de sumar la salida de este bloque con la salida del bloque que genera la señal de los usuarios interferentes y de sumarle a esto el ruido Gaussiano aditivo que a su vez se genera con la función vgauss. El código en C++ de la función ‘canalxu3.cpp’ se encuentra en el anexo 1b. 3.3.3 Función Receptor A cada tipo de error de estimación que se evalúa le corresponde una función receptor diferente: 1. Función rakep: Función en Matlab, implementa el receptor rastrillo con estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. 2. Función rakeme34: Función en Matlab, implementa el receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal. 3. Función rakeme121: Función en Matlab, implementa el receptor rastrillo con error en la sincronización de la señal firma. La implementación de estas funciones se basa en el diagrama en bloques presentado en la figura 2-6. Las funciones llaman a dos funciones en C++ con las cuáles se implementan las etapas 1y 2 y las etapas 3 y 4 respectivamente. 61 3.3.3.1 Función Rakep La función ‘rakep.m’ implementa el diagrama en bloques de la figura 2-6. Esta función llama a la funciones en C++ ‘etapas12.cpp’ y ‘etapas34.cpp’ que son las que se encargan de implementar las etapas 1-2 y 3-4 en el caso en que no hay error en la estimación de los coeficientes de desvanecimiento del canal ni error en la sincronización de la señal firma. Función ‘rakep.m’: function bitsinfoest = rakep(Yr,Yi,A1r,A1i,gold,taos,numbitsinfo) %función receptor rastrillo con estimación perfecta de los coeficientes de %desvanecimiento del canal y sincronización perfecta de la señal firma %ENTRADAS: %Yr: Vector que contiene la parte real de la salida del canal %Yi: Vector que contiene la parte imaginaria de la salida del canal %A1r: Matriz parte real de los coeficientes de desvanecimiento del canal % tamaño:(numbitsinfo x 3). Las filas indican los bits y las columnas % el camino (hay 3 caminos) %A1i: Matriz parte imaginaria de los coeficientes de desvanecimiento del % canal tamaño:(numbitsinfo x 3). Las filas indican los bits y las % columnas el camino (hay 3 caminos) %Gold: Vector, contiene la secuencia Gold con que se transmitieron los bits del usuario % 1 %taos: [tao1 tao2 tao3] retardos correspondientes a los caminos 1,2 y 3 del usuario 1 %numbitsinfo : numero de bits de información transmitidos %1. Llamar a la función en C++ 'etapas12' que implementa las etapas %1(línea de retardos) y 2(correlatores) definidas en el modelo, en el caso %en que no hay error en la sincronización de la señal firma [YR1r,YR1i,YR2r,YR2i,YR3r,YR3i] = etapas12(Yr,Yi,gold,taos,numbitsinfo); %YR1r y YR1i son vectores que contienen las partes real e imaginaria de la %salida de la rama 1 del receptor rastrillo %YR2r y YR2i son vectores que contienen las partes real e imaginaria de la %salida de la rama 2 del receptor rastrillo %YR3r y YR3i son vectores que contienen las partes real e imaginaria de la %salida de la rama 3 del receptor rastrillo %2. Llamar a la función C++ 'etapas34' que implementa las etapas 62 %3(MRC) y 4(toma de decisión) definidas en el modelo, en el caso en %que no hay error en los coeficientes de desvanecimiento del canal %SALIDAS %bitsinfoest: Vector que contiene el estimado hecho por el receptor % rastrillo de cada uno de los bits enviados por el usuario 1 bitsinfoest etapas34(YR1r,YR1i,YR2r,YR2i,YR3r,YR3i,A1r,A1i,numbitsinfo); = El código en C++ de las funciones ‘etapas12.cpp’ y ‘etapas34.cpp’ se encuentra en los anexos 1c y 1d respectivamente. 3.3.3.2 Función Rakeme34 La función ‘rakeme34.m’ implementa el diagrama en bloques de la figura 2-6 en el caso en que hay error en la estimación de los coeficientes de desvanecimiento del canal. Esta función llama a las funciones en C++ ‘etapas12.cpp’ y ‘etapas34me.cpp’. La función ‘etapas34me.cpp’ implementa las etapas 3 y 4 del receptor rastrillo en el caso en que hay error en la estimación de los coeficientes de desvanecimiento del canal, es decir, error en la etapa 3. Función ‘rakeme34.m’: (σ2∆A) function bitsinfoest = rakeme34(Yr,Yi,A1r,A1i,gold,taos,sigdelA,numbitsinfo) %función receptor rastrillo con error en la estimación de los coeficientes %de desvanecimiento del canal y sincronización perfecta de la señal firma %ENTRADAS: %Yr: Vector que contiene la parte real de la salida del canal %Yi: Vector que contiene la parte imaginaria de la salida del canal %A1r: Matriz parte real de los coeficientes de desvanecimiento del canal % tamaño:(numbitsinfo x 3). Las filas indican los bits y las columnas % el camino (hay 3 caminos) %A1i: Matriz parte imaginaria de los coeficientes de desvanecimiento del % canal tamaño:(numbitsinfo x 3). Las filas indican los bits y las % columnas el camino (hay 3 caminos) %gold: Vector secuencia gold con que se transmitieron los bits del usuario % 1 %taos: [tao1 tao2 tao3] retardos correspondientes a los caminos 1,2 y 3 %sigdelA: Desviación estándar de la parte real y la parte imaginaria del error en la estimación de los coeficientes de desvanecimiento del canal %numbitsinfo : numero de bits de información transmitidos 63 %bitsinfoest: Salida, estimado hecho por el receptor rastrillo de cada uno % de los bits enviados %1. Llamar a la función en C++ 'etapas12' que implementa las etapas %1(línea de retardos) y 2(correlatores) definidas en el modelo, en el caso %en que no hay error en la sincronización de la señal firma [YR1r,YR1i,YR2r,YR2i,YR3r,YR3i] = etapas12(Yr,Yi,gold,taos,numbitsinfo); %YR1r y YR1i son vectores que contienen las partes real e imaginaria de la %salida de la rama 1 del receptor rastrillo %YR2r y YR2i son vectores que contienen las partes real e imaginaria de la %salida de la rama 2 del receptor rastrillo %YR3r y YR3i son vectores que contienen las partes real e imaginaria de la %salida de la rama 3 del receptor rastrillo %2. Llamar a la función C++ 'etapas34me' que implementa las etapas %3(MRC) y 4(toma de decisión) definidas en el modelo, en el caso en %que hay error en los coeficientes de desvanecimiento del canal %SALIDAS %bitsinfoest: Vector que contiene el estimado hecho por el receptor % rastrillo de cada uno de los bits enviados por el usuario 1 bitsinfoest etapas34me(YR1r,YR1i,YR2r,YR2i,YR3r,YR3i,A1r,A1i,sigdelA,numbitsinfo); = El código en C++ de la función ‘etapas34me.cpp’ se encuentra en el Anexo 1f. 3.3.3.3 Función Rakeme121 Esta función implementa el diagrama en bloques de la figura 2-6 en el caso en que hay error en la sincronización de la señal firma. La función llama a las funciones en C++ ‘etapas12me1.cpp’ y ‘etapas34.cpp’. La función ‘etapas12me1.cpp’ implementa las etapas 1 y 2 del receptor rastrillo en el caso en que hay error en la sincronización de la señal firma. Función ‘rakeme121.m’: function bitsinfoest rakeme121(Y1r,Y1i,A1r,A1i,gold,taos,delT,Eb,bitsinfo,numbitsinfo) = 64 %función receptor rastrillo con error en la sincronización de la señal firma %y estimación perfecta de los coeficientes de desvanecimiento del canal %ENTRADAS: %Yr: Vector que contiene la parte real de la salida del canal %Yi: Vector que contiene la parte imaginaria de la salida del canal %A1r: Matriz parte real de los coeficientes de desvanecimiento del canal % tamaño:(numbitsinfo x 3). Las filas indican los bits y las columnas % el camino (hay 3 caminos) %A1i: Matriz parte imaginaria de los coeficientes de desvanecimiento del % canal tamaño:(numbitsinfo x 3). Las filas indican los bits y las % columnas el camino (hay 3 caminos) %gold: Vector secuencia Gold con que se transmitieron los bits del usuario % 1 %taos: [tao1 tao2 tao3] retardos correspondientes a los caminos 1,2 y 3 %delT: delta tao, representa al error en la sincronización de acuerdo al modelo propuesto %Eb Energía de transmisión del usuario 1 %bitsinfo: Vector que contiene los bits transmitidos por el usuario 1 %numbitsinfo : numero de bits de información transmitidos %1. Llamar a la función en C++ 'etapas12me1' que implementa las etapas %1(línea de retardos) y 2(correlatores) definidas en el modelo, en el caso %en que hay error en la sincronización de la señal firma [YR1r,YR1i,YR2r,YR2i,YR3r,YR3i] = etapas12me1(Y1r,Y1i,gold,taos,delT,Eb,bitsinfo,A1r,A1i,numbitsinfo); %YR1r y YR1i son vectores que contienen las partes real e imaginaria de la %salida de la rama 1 del receptor rastrillo %YR2r y YR2i son vectores que contienen las partes real e imaginaria de la %salida de la rama 2 del receptor rastrillo %YR3r y YR3i son vectores que contienen las partes real e imaginaria de la %salida de la rama 3 del receptor rastrillo %2. Llamar a la función C++ 'etapas34' que implementa las etapas %3(MRC) y 4(toma de decisión) definidas en el modelo, en el caso en %que no hay error en los coeficientes de desvanecimiento del canal %SALIDAS %bitsinfoest: Vector que contiene el estimado hecho por el receptor % rastrillo de cada uno de los bits enviados por el usuario 1 bitsinfoest etapas34(YR1r,YR1i,YR2r,YR2i,YR3r,YR3i,A1r,A1i,numbitsinfo); = Para simular el error en la sincronización de la señal firma la función la función ‘etapas12me1.cpp’ primero crea la salida de las etapas 1y 2 en el caso en que no hay error, esta salida es equivalente a la ecuación (3-7): YRdx = Ebx Adx bx + σn dx + K C ∑ ∑ k =1, k ≠ x c =1 Ebk Ack Lck 65 Luego, la función ‘etapas12me1.cpp’ le resta a este resultado: ∆Error = Ebx Adx bx ∆τ , de tal forma que a la salida de esta etapa se obtiene el resultado equivalente a la ecuación (3-6) que representa la salida con error en la sincronización, ya que: YRdx − ∆Error= Ebx Adx bx ρ xx (∆τ ) + σndx + K C ∑ ∑ k =1, k ≠ x c =1 Ebk Ack Lck , Tch − Tch ∆τ → para ∆τ < 1 Tch teniendo en cuenta que ρ xx (∆τ ) = 0 → para ∆τ ≥ 1 El código en C++ de la función ‘etapas12me1.cpp’ se encuentra en el anexo 1e. 3.4 COTAS PARA LA PROBABILIDAD DE ERROR DE BIT DEL RECEPTOR ÓPTIMO DE CDMA Brady y Zovonar analizaron el caso en que el receptor óptimo de CDMA propuesto por S.Verdú se encuentra en un canal con desvanecimiento Rayleigh y para todos los usuarios hay un solo un camino posible entre el transmisor y el receptor. Los autores proponen las siguientes cotas para la probabilidad de error de bit del receptor MLS: σ2 σ2 σ2 ≤ ≤ + Pe o MLS E σ 2A 4 Ebxσ 2 A 4 Ebxσ 2 A bx Las cotas son válidas para alta relación señal a ruido. La cota inferior exacta es: 1 1 − 2 2 1 1+ σ2 Ebxσ 2 A 66 Si se compara esta ecuación con la de la probabilidad de error de bit del receptor rastrillo con estimación perfecta de los coeficientes y sincronización perfecta, ecuación (3-11), se puede apreciar que corresponde al caso en que hay un solo camino (D = 1) y un solo usuario (Ebk=0). A continuación se repite la ecuación para el receptor rastrillo: Pe P ( E bx ) = 1 1 − 2 2 1 σ 2 +σ A2 1+ K C ∑ ∑E k =1, k ≠ x c =1 E bx σ A bk L2 ck 2 D −1 1 ⋅ 3 ⋅ 5 ⋅ ⋅ ⋅ ⋅(2n − 1) 1 + ∑ n n =1 2 E bx σ A n + 1 n!2 K C 2 σ 2 + σ A ∑ ∑ E bk L2 ck k =1, k ≠ x c =1 En función de la relación señal a ruido promedio, las cotas escritas anteriormente quedan de la siguiente forma: 1 1 1 ≤ PeMLS ≤ + o 8S N R 8S N R 2S NR y la cota inferior exacta queda: 1 1 − 2 2 1 1+ 1 2S NR En la figura 3-4 se comparan la cota inferior exacta y la cota inferior aproximada. La figura da una idea a partir de qué valores de relación señal a ruido empiezan a ser válidas las cotas. 67 Figura 3-4 Cota inferior exacta y cota inferior aproximada para la probabilidad de error de bit del receptor óptimo para CDMA La cota superior exacta está en términos de una función desconocida que los autores no hallaron: PeMLS ≤ 1 + f desconocida (S N R ) 8S N R 1 pero lo que sí aseguran los autores es que f desconocida (S N R ) = o . De acuerdo con 2S NR la notación o-minúscula la información que suministran los autores es que: lim SNR → ∞ f desconocida (S N R ) =0 1 2S NR Esto significa que cuando la relación señal a ruido tiende a infinito la función desconocida tiende a cero mucho más rápido que lo que lo hace la función 1 , por 2S N R lo tanto, no se conoce la cota superior con exactitud, pero si se tiene una idea de su comportamiento. La figura 3-5 muestra: 68 • la cota inferior exacta : • la cota inferior aproximada : • la función 1 1 − 2 2 1 1 1+ 2S NR , 1 , 8S N R m(S N R ) = 1 1 + (3-20) , 8S N R 2 S N R que aunque no es la cota superior exacta da una idea de su comportamiento. Figura 3-5 Cotas para la probabilidad de error de bit del receptor óptimo para CDMA 3.5 APROXIMACIÓN DE Lck PARA EL CÁLCULO DE LAS ECUACIONES Para hacer cálculos utilizando las ecuaciones propuestas para la probabilidad de error de bit es necesario darle un valor a la variable Lck (las otras variables ya están definidas de acuerdo a los parámetros que se escogieron para las simulaciones). En la sección 3.1.2 ecuación (3-4) se definió: 69 Tb Lck = ∫ s x (t − τ )b' k (t − τ ck − τ Rdx )s k (t − τ ck − τ Rdx )dt 0 Como los únicos dos valores que toma b’k(t) son +1 o –1 se va a aproximar Lck a: Tb Lck = ∫ s x (t − τ )s k (t − τ ck − τ Rdx )dt 0 Lck se necesita para hallar el término σ A 3 realidad se desea hallar es ∑L 2 ck 2 K C ∑ ∑E k =1, k ≠ x c =1 bk L2 ck . Como C = 3 lo que en =L21k + L2 2 k + L2 3k . Realizando varias pruebas en c =1 Matlab se concluyó que para el conjunto de secuencias Gold escogidas como secuencias firma: 2 2 Tb Tb 1 1 − 5 E ∫ s x (t ) s k (t )dt ≈ 6.28 × 10 y E ∫ s x (t ) s k (t − ∆)dt ≈ = , ∆≠0 0 0 127 N L21k, L22k, y L23k, se van a aproximar a alguno de estos dos valores, ahora el problema es saber si se debe aproximar a 6.28x10-5 o a 1/127. Se tienen las siguientes ecuaciones: Tb L1k = ∫ s x (t − τ )s k (t − τ 1k − τ Rdx )dt (3-21) 0 Tb L2 k = ∫ s x (t − τ )s k (t − τ 2 k − τ Rdx )dt (3-22) 0 Tb L3k = ∫ s x (t − τ )s k (t − τ 3k − τ Rdx )dt (3-23) 0 Como se dijo en la sección 3.1.2, en el caso de sincronización perfecta τRdx = τDx - τdx y τ = τDx. Es importante recordar nuevamente que Lck se necesita para calcular σ A2 K C ∑ ∑E k =1, k ≠ x c =1 bk L2 ck por lo tanto k nunca va a tomar el valor x en las ecuaciones (3-21) 70 a (3-23) y como para las simulaciones se supuso que τdk ≠ τdx el término τdk - τRdx nunca va a ser igual a τ. Teniendo esto es cuenta finalmente se aproxima: C ∑L c =1 2 ck =L21k + L2 2 k + L2 3k = 3 127 71 4. ANÁLISIS DE RESULTADOS Para su funcionamiento el receptor rastrillo debe contar con la estimación de los siguientes dos parámetros del canal: 1. Los coeficientes de desvanecimiento. 2. Los retardos con que llegan las señales multicamino. De esta estimación depende la sincronización de la señal firma. De acuerdo con los objetivos planteados se hicieron simulaciones y se propusieron ecuaciones para la probabilidad de error de bit del receptor rastrillo para cada uno de los siguientes casos: a. Receptor rastrillo con estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma b. Receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal suponiendo sincronización perfecta de la señal firma. c. Receptor rastrillo con error en la sincronización de la señal firma suponiendo estimación perfecta de los coeficientes de desvanecimiento del canal. También, dentro de los objetivos, se propuso hacer una comparación entre la probabilidad de error de bit, la energía efectiva y la resistencia cerca lejos del receptor óptimo para CDMA y el receptor rastrillo y analizar la energía efectiva y la resistencia cerca lejos del receptor rastrillo en función de los parámetros de estimación del canal. A continuación se presentan los resultados obtenidos. 72 4.1 PROBABILIDAD DE ERROR DE BIT DEL RECEPTOR RASTRILLO EN FUNCIÓN DE LOS PARÁMETROS DE ESTIMACIÓN DEL CANAL. 4.1.1 Probabilidad de error de bit del receptor rastrillo con estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. Figura 4-1 Probabilidad de error de bit del receptor rastrillo en el caso de estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. En la figura 4-1 se muestran los resultados de las ecuaciones y las simulaciones para el caso en que el receptor rastrillo cuenta con una estimación perfecta de los coeficientes de desvanecimiento del canal y una sincronización perfecta de la señal firma. Los resultados se muestran para el caso en que hay un usuario en el canal y para el caso en que hay 8 usuarios compartiendo el canal. En este último caso se supone que la señal de todos los usuarios se recibe con la misma relación señal a ruido promedio. Considerando un caso particular, para una relación señal a ruido promedio de 16dB, la probabilidad de error de bit para ocho usuarios es cien veces el valor de la probabilidad de error de bit que se alcanza para el caso de sólo un usuario transmitiendo en el canal. 73 Esto es un aumento considerable en la probabilidad de error de bit y se debe a la presencia de varios usuarios compartiendo el canal. En la figura 4-1 también se observa que para ocho usuarios la probabilidad de error de bit tiende a estabilizarse en un valor fijo. Esto significa que para alta relación señal a ruido el término que domina la ecuación no es el que corresponde al ruido Gaussiano aditivo sino el que corresponde a los usuarios interferentes, el término con L2ck en las ecuaciones. Al comparar los resultados de la simulación con los de la ecuación se ratifica la validez de la ecuación propuesta. Figura 4-2 Resultados de Kumar y Panicker para la probabilidad de error de bit del receptor rastrillo La figura 4-1 se puede comparar con la figura 5 en el artículo de Kumar y Panicker que en este caso corresponde a la figura 4-2. A excepción de N, las condiciones que se suponen en ambas figuras son las mismas. La figura 4-1 se obtuvo con N=127 y en la figura 4-2 N = 31. Las gráficas que se pueden comparar son: la correspondiente a ocho usuarios en la figura 4-1 y la correspondiente a ‘perfect power control ’ en la figura 4-2. El comportamiento de ambas curvas confirma que para alta relación señal a ruido son los usuarios interferentes quienes determinan la probabilidad de error de bit. En cuanto a 74 los valores exactos de la probabilidad de error de bit, Kumar y Panicler obtuvieron valores menores. 4.1.2 Probabilidad de error de bit del receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. Figura 4-3 Probabilidad de error de bit del receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma En la figura 4-3 se muestran gráficas para diferentes valores de la varianza del error de estimación de los coeficientes del canal (σ2∆A) y se supone un canal con ocho usuarios en donde la señal de todos se recibe con la misma relación señal a ruido promedio. En la figura 4-3 se observa una pequeña diferencia entre los resultados obtenidos con la simulación y los resultados obtenidos con la ecuación propuesta. Esta diferencia se debe a que en el cálculo de la varianza de la ecuación (3-12) se despreciaron dos términos ya que correspondían a variables aleatorias cuya función de densidad de probabilidad no era Gaussiana por lo tanto complicaban el desarrollo de las ecuaciones. De acuerdo a la figura 4-3, la ecuación propuesta para este caso sirve como una cota inferior bastante 75 aproximada a la probabilidad de error de bit real. En esta misma figura se observa que el receptor rastrillo es bastante sensible al error en la estimación de los coeficientes de desvanecimiento del canal ya que por ejemplo, para una varianza del error de 0.5 la probabilidad de error de bit aumenta hasta cerca de 0.1 manteniéndose en ese valor casi independientemente de la relación señal a ruido con que se transmita. De acuerdo a la figura 4-3 la varianza del error en la estimación de los coeficientes de desvanecimiento del canal debería mantenerse por debajo de 0.1 para que el aumento de la probabilidad de error bit, con respecto a la probabilidad en el caso de estimación perfecta, no sea tan crítico. Figura 4-4 Resultados de Kumar y Panicker para la probabilidad de error de bit del receptor rastrillo teniendo en cuenta error en la estimación de los coeficientes de desvanecimiento del canal. La figura 4-3 se puede comparar con la figura 6 en el artículo de Kumar y Panicker que en este caso corresponde a la figura 4-4. La comparación no se puede hacer directa ya que los autores supusieron que el error en la estimación de los coeficientes del canal era Gaussiano de media cero tanto para la amplitud como para la fase mientras que en los análisis hechos hasta ahora el error ha sido modelado como Gaussiano de media cero 76 para la estimación de la parte real y para la estimación de la parte imaginaria lo cual no resulta en un error Gaussiano de media cero ni para la amplitud ni para la fase. Teniendo esto en cuenta, el análisis que se puede hacer es que en las dos figuras, 4-3 y 4-4, se ve que el error en la estimación de los coeficientes de desvanecimiento del canal causa un aumento considerable en la probabilidad de error de bit. 4.1.3 Probabilidad de error de bit del receptor rastrillo con error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal. Figura 4-5 Probabilidad de error de bit del receptor rastrillo con error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal. Como en el caso anterior, se supone un canal con ocho usuarios en donde la señal de todos se recibe con la misma relación señal a ruido promedio. En la figura 4-5 se muestran los resultados de la probabilidad de error de bit para diferentes valores de la función ρxx(∆τ) definida en la sección 3.1.2 ecuación (3-5). En esta gráfica se ve lo importante que es una buena sincronización de la señal firma ya que ρxx(∆τ) no debe estar por debajo de 0.8 para que este error no afecte demasiado el desempeño del 77 receptor. Con respecto a los resultados de las simulaciones y de las ecuaciones, la figura 4-5 ratifica la validez de la ecuación propuesta para este caso. Figura 4-6 Probabilidad de que la probabilidad de error de bit del receptor rastrillo con error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento esté dentro del rango delimitado por F=0.005 Además de hallar la probabilidad de error de bit en función de ρ(∆τ), en la sección 3.2.3 se llegó a la ecuación (3-19): 1− ρA P[PeP <Peτ<F] = erf 2σ ∆τ , que permite hallar la probabilidad de que la probabilidad de error de bit esté en un rango definido por F. La figura 4-6 muestra la gráfica de la ecuación 3-19 para el caso en que F = 0.005 y σ∆τ = 0.05. La figura indica que entre mayor sea la relación señal a ruido promedio la probabilidad (de que la probabilidad de error de bit sea menor a F) va a aumentar. En este caso no se muestra el resultado de la simulación. Aunque se hicieron varias simulaciones los resultados no fueron satisfactorios ya que eran muy ruidosos. Esto pudo ser debido a que no se envió el número suficiente de bits para obtener un 78 resultado confiable. Una simulación con el suficiente número de bits podría tomar más de una semana así que se decidió no incluir resultados de la simulación para este caso. 4.2 ANÁLISIS DE LA ENERGÍA EFECTIVA DEL RECEPTOR RASTRILLO Y COMPARACIÓN CON EL RECEPTOR ÓPTIMO PARA CDMA 4.2.1 Análisis de la energía efectiva del receptor rastrillo en el caso de estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. Comparación con el receptor óptimo para CDMA Figura 4-7 Relación señal a ruido promedio en función de la probabilidad de error de bit promedio para el receptor rastrillo con sincronización perfecta de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal y para el receptor óptimo para CDMA. Como la energía de transmisión y la relación señal a ruido promedio están directamente relacionadas, ecuación (2-5), el estudio se hace en términos de la relación señal a ruido promedio y no en términos de la energía, hacer este cambio no afecta el objetivo del análisis que se desea hacer. Generalizando la definición hecha en la sección 1.5 para la energía efectiva, la relación señal a ruido promedio efectiva es, para una probabilidad de error de bit dada, la relación señal a ruido que se necesita para alcanzar esa misma 79 probabilidad de error de bit en el caso en que haya sólo un usuario transmitiendo y los demás parámetros del canal se mantengan iguales. En otras palabras, si hay K usuarios compartiendo el canal y la probabilidad de error de bit del usuario k es igual a Pek, la relación señal a ruido promedio efectiva es la relación señal a ruido promedio para la que se alcanza una probabilidad de error de bit igual a Pek pero en el caso en que sólo está transmitiendo el usuario k y el resto de las características del canal son las mismas. La figura 4-7 muestra la relación señal a ruido promedio en función de la probabilidad de error de bit, las diferentes gráficas corresponden a diferente número de usuarios compartiendo el canal y en todas se supone que la señal de todos los usuarios se recibe con la misma relación señal a ruido promedio. En esta figura se puede ver que, por ejemplo, para alcanzar una probabilidad de error de bit de 0.001 la relación señal a ruido promedio efectiva es de aproximadamente 8dB. Este resultado es útil si se compara con el valor de relación señal ruido necesario para alcanzar la misma probabilidad de error de bit pero en el caso en que haya varios usuarios compartiendo el canal. Para el caso de 8 usuarios compartiendo el canal se ve que la relación señal a ruido promedio necesaria es de aproximadamente 15 dB, que es un valor considerablemente más grande que 8dB. Para el caso de 30 usuarios compartiendo el canal no es posible llegar a una probabilidad de error de bit de 0.001 ya que como se ve en la figura 4-7, la probabilidad de error se bit se estabiliza en aproximadamente 0.01 y se mantiene alrededor de éste valor independientemente de la relación señal a ruido promedio. En la figura 4-7 también se incluyen la cota inferior de la probabilidad de error de bit del receptor óptimo y la función m(SNR) definida en la sección 3.4 ecuación (3-20). Es importante recordar que esta función no es la cota superior de la probabilidad de error 80 de bit del receptor óptimo pero sí da una idea de su comportamiento. La figura 4-7 prueba que el receptor óptimo es inmune a la presencia de otros usuarios en el canal. Esto se debe a que como al tomar una decisión tiene en cuenta la señal recibida de todos los usuarios presentes en el canal, puede cancelar el efecto negativo de los usuarios interferentes y finalmente las cotas para la probabilidad de error de bit sólo dependen de la energía con que transmite el usuario de interés. Las gráficas para el receptor óptimo que se presentan en la figura 4-7 serán las mismas independientemente del número de usuarios que estén compartiendo el canal Para el receptor rastrillo, aunque implementa diversidad en la recepción, para alta relación señal a ruido el efecto de los usuarios interferentes no permite que la probabilidad de error de bit baje de cierto valor que depende en cada caso del número de usuarios compartiendo el canal. En esta comparación entre el receptor rastrillo y el receptor óptimo no se pueden mirar valores específicos de la probabilidad de error de bit ya que las condiciones no son las mismas, para el receptor óptimo se supuso que había un solo camino entre el transmisor y el receptor y para el receptor rastrillo se supuso que había tres caminos, por esta razón sólo se compara el comportamiento general que presentan los receptores con respecto a la relación señal a ruido y a la presencia de otros usuarios en el canal. 4.2.2 Análisis de la energía efectiva del receptor rastrillo en el caso de error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. Como se dijo en la sección anterior, no se va a mirar la energía efectiva sino un equivalente, la relación señal a ruido promedio efectiva, que finalmente es la relación señal a ruido promedio en el caso en que hay sólo un usuario en el canal y se mantienen 81 fijas el resto de las características del canal. La figura 4-8 muestra cómo varía la relación señal a ruido promedio efectiva para diferentes valores de la varianza del error de estimación de los coeficientes de desvanecimiento del canal. Se ve que entre mayor sea la varianza del error mayor será la relación señal a ruido promedio efectiva. Este resultado es crítico para el desempeño del receptor rastrillo ya que significa que entre mayor sea la varianza del error mayor va a ser la mínima probabilidad de error de bit que se puede alcanzar5. Por ejemplo, para una relación señal a ruido de 10dB, si no hay errores de estimación del canal, la mínima probabilidad de error de bit que se puede alcanzar es aproximadamente 0.0003, mientras que para la misma relación señal a ruido y una varianza del error de estimación de 0.1, la mínima probabilidad de error de bit que se puede alcanzar es de 0.006. Figura 4-8 Señal a ruido promedio efectiva en función de la probabilidad de error de bit promedio. Receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal. 5 Dadas las condiciones del canal, la mínima probabilidad de error de bit es la que se logra cuando hay sólo un usuario en el canal 82 4.2.3 Análisis de la energía efectiva del receptor rastrillo en el caso de error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal. Figura 4-9 Señal a ruido promedio efectiva en función de la probabilidad de error de bit promedio. Receptor rastrillo con error en la sincronización de la señal firma. En este caso, de acuerdo a la figura 4-9 y de acuerdo a lo esperado, la relación señal a ruido efectiva aumenta si disminuye ρ(∆τ) que es la variable que representa el error en la sincronización; ρ(∆τ) =1 corresponde al caso de sincronización perfecta. Como ocurre en el caso de error en la estimación de los coeficientes de desvanecimiento del canal, para una relación señal a ruido dada, la mínima probabilidad de error de bit que se puede obtener es mayor entre mayor sea el error en la sincronización. 83 4.3 ANÁLISIS DE LA RESISTENCIA CERCA LEJOS DEL RECEPTOR RASTRILLO Y COMPARACIÓN CON EL RECEPTOR ÓPTIMO PARA CDMA 4.3.1 Análisis de la resistencia cerca lejos del receptor rastrillo en el caso de estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. Comparación con el receptor Óptimo para CDMA Figura 4-10 Probabilidad de error de bit promedio. Receptor rastrillo con sincronización perfecta de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal. Cotas para la probabilidad de error de bit del receptor óptimo para CDMA. La figura 4-10 muestra la probabilidad de error de bit del receptor rastrillo para el caso en que la señal de todos usuarios se recibe con la misma relación señal a ruido promedio y para varios casos en que la señal de los usuarios interferentes se recibe con la misma relación señal a ruido promedio pero algunos dBs por arriba de la relación señal a ruido promedio con que se recibe la señal del usuario de interés. Para todos los casos se 84 supone que hay ocho usuarios compartiendo el canal. La figura indica, para cada caso, los dBs de diferencia entre la relación señal a ruido promedio recibida del usuario de interés y la relación señal a ruido promedio recibida de los usuarios interferentes. Aunque en este caso el receptor rastrillo no tiene errores de estimación, si la potencia de transmisión del usuario de interés disminuye, o equivalentemente, la potencia recibida de los usuarios interferentes aumenta, se afecta su desempeño. Para el caso del receptor óptimo la probabilidad de error de bit no se afecta si aumenta la potencia recibida de los usuarios interferentes. Como se dijo en la sección anterior, esto se debe a que en la estimación de los bits transmitidos el receptor óptimo tiene en cuenta las señales de los usuarios interferentes y por lo tanto es capaz de cancelar su efecto negativo y finalmente sus cotas para la probabilidad de error de bit no dependen de la potencia recibida de los usuarios interferentes, sólo dependen de la potencia recibida del usuario de interés. En este caso tampoco se pueden comparar valores específicos entre la probabilidad de error de bit del receptor rastrillo y el receptor óptimo ya que, como se dijo anteriormente, las condiciones no son las mismas, para el rastrillo se supusieron tres multicaminos mientras que para el óptimo se supuso uno. 4.3.2 Análisis de la resistencia cerca lejos del receptor rastrillo en el caso de error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma. Los resultados de la figura 4-11 corresponden a ocho usuarios compartiendo el canal con la señal a ruido promedio recibida de los usuarios interferentes 2dB por encima de la relación señal a ruido promedio recibida del usuario de interés. Los resultados verifican lo esperado, entre mayor sea la varianza del error de estimación mayor es la probabilidad de error de bit y por lo tanto se disminuye la resistencia cerca-lejos. 85 Figura 4-11 Probabilidad de error de bit promedio. Receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal 4.3.3 Análisis de la resistencia cerca lejos del receptor rastrillo en el caso de error en la sincronización de la señal firma y estimación perfecta de los coeficientes de desvanecimiento del canal. Figura 4-12 Probabilidad de error de bit promedio. Receptor rastrillo con error en la sincronización de la señal firma 86 Los resultados de la figura 4-12 se obtuvieron suponiendo ocho usuarios compartiendo el canal con la relación señal a ruido promedio recibida de los usuarios interferentes 2dB por encima de la relación señal a ruido promedio recibida del usuario de interés. La figura 4-12 muestra, de acuerdo a lo esperado, que el desempeño del receptor rastrillo se afecta cuando hay error en la sincronización de la señal firma y que entre mayor sea este error la resistencia cerca lejos es menor. 87 5. • CONCLUSIONES Se hizo un análisis detallado del receptor rastrillo indicando cuáles son las condiciones de transmisor y canal para las cuales está diseñado. • Se propuso una ecuación para la probabilidad de error de bit del receptor rastrillo para cada uno de los siguientes tres casos: a. Receptor rastrillo con estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma b. Receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal suponiendo sincronización perfecta de la señal firma. c. Receptor rastrillo con error en la sincronización de la señal firma suponiendo estimación perfecta de los coeficientes de desvanecimiento del canal. Se realizaron simulaciones para cada uno de los tres casos anteriores. Para realizar cálculos con las ecuaciones propuestas se aproximó el parámetro L2ck a 1/127, esta aproximación es válida sólo para el conjunto de señales firma escogidas. Se concluye que las ecuaciones propuestas para la probabilidad de error de bit son una buena aproximación a la probabilidad de error de bit del receptor rastrillo y su validez y la validez de la estimación del parámetro L2ck se confirman al comparar los resultados obtenidos con las simulaciones con los resultados obtenidos con las ecuaciones. Al utilizar las ecuaciones propuestas 88 es importante hacer una buena aproximación del parámetro L2ck el cual va a variar dependiendo del tipo de señales firma que se utilicen. La ecuación propuesta para el caso c se obtuvo suponiendo ∆τ constante, que equivale a un ρxx(∆τ) constante, es decir un error de sincronización constante. Como en realidad ∆τ es una variable aleatoria, que se modeló como una variable aleatoria Gaussiana de media cero, se propuso una ecuación que permite utilizar la ecuación propuesta en el caso c para hallar la probabilidad de que la probabilidad de error de bit esté dentro de un rango dado. Esta nueva ecuación no se comparó con simulaciones porque éstas resultan demasiado largas ya que para obtener resultados confiables es necesario enviar un gran número de bits. • Las ecuaciones propuestas para la probabilidad de error de bit del receptor rastrillo en el caso en que hay error en la estimación de los coeficientes de desvanecimiento del canal y en el caso en que hay error en la sincronización de la señal firma se obtuvieron modelando los errores de estimación del canal como variables aleatorias Gaussianas de media cero. Cuando se implemente un receptor rastrillo, si los errores del estimador utilizado se pueden modelar de esta manera, las ecuaciones son completamente válidas. Si por el contrario, el error del estimador muestra otro tipo de comportamiento, es decir, si sus errores no se pueden modelar como variable aleatorias Gaussianas de media cero, las ecuaciones propuestas pierden validez. En el caso en que no se conozca la función de densidad de probabilidad del error del estimador las ecuaciones propuestas sirven para definir rangos de error admisibles. 89 Para el caso del receptor rastrillo con error en la estimación de los coeficientes de desvanecimiento del canal se obtuvo que para una varianza del error de estimación, σ2∆A, igual a 0.1 y una relación señal a ruido promedio de 16dB, la probabilidad de error de bit aumenta aproximadamente 10 veces con respecto a la probabilidad de error de bit en el caso de estimación perfecta. Para una varianza de 0.01 y relación señal a ruido promedio de 16dB el aumento es de aproximadamente 1.5 veces. Para el caso en que sólo hay error en la sincronización de la señal firma se obtuvo que para un valor de la función ρ(∆τ) igual a 0.5 y una relación señal a ruido promedio de 16dB, la probabilidad de error de bit aumenta aproximadamente veinte veces con respecto a la probabilidad de error de bit en el caso de estimación perfecta y para un valor de ρxx(∆τ) igual a 0.8 y relación señala ruido promedio de 16dB, la probabilidad de error de bit aumenta el doble. De acuerdo con esto y como para 16dB las gráficas ya están cerca de su punto de estabilización, si se quiere que debido al error de estimación en los coeficientes de desvanecimiento del canal la probabilidad de error de bit no se aumente más de diez veces, la varianza del error en la estimación se debe mantener por debajo de 0.1 y si se quiere que la probabilidad de error no se aumente más de dos veces la varianza del error debe mantenerse alrededor de 0.01. Por otro lado, si se quiere que debido al error en la sincronización la probabilidad de error de bit no se aumente más del doble, ρxx(∆τ) debe mantenerse por encima de 0.8. • Los resultados obtenidos para el caso de estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma se compararon con los obtenidos por Kumar y Panicker. No se esperaba que los 90 resultados fueran exactamente iguales debido a que N no es el mismo, en el artículo de Kumar y Panicker N =31. Con la comparación se confirmó que tal y como se obtuvo con la ecuación propuesta y con las simulaciones realizadas, que para alta relación señal a ruido la presencia de usuarios interferentes en el canal no permite que la probabilidad de error de bit baje de cierto valor el cual depende del número de usuarios compartiendo el canal y la correlación entre sus señales firma. • Los resultados obtenidos para el caso de error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma se compararon con los obtenidos por Kumar y Panicker. La comparación no puede ser directa ya que el modelo del error es diferente. Lo que se puede apreciar es que de acuerdo con los resultados que se obtuvieron a partir de la ecuación propuesta y de las simulaciones, el receptor rastrillo es bastante sensible a este tipo de error. • De acuerdo con las dos conclusiones anteriores, las ecuaciones propuestas para el caso de estimación perfecta de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma y para el caso de error en la estimación de los coeficientes de desvanecimiento del canal y sincronización perfecta de la señal firma, siendo más sencillas que la ecuación propuesta por Kumar y Panicker, sirven para realizar análisis similares. La desventaja de las ecuaciones propuestas es que sólo se puede analizar el efecto de un tipo de error a la vez. 91 • Para una probabilidad de error de bit de 0.01, la relación señal a ruido promedio efectiva es de 4dB, para el caso en que la varianza del error de estimación de los coeficientes de desvanecimiento del canal, σ2∆A, es igual a 0.01 y aumenta a 8dB para el caso en que la varianza del error de los coeficientes de desvanecimiento del canal es igual a 0.1. En el caso en que hay error en la sincronización de la señal firma, para una probabilidad de error de bit de 0.01, cuando no hay error (ρxx(∆τ)=1) la relación señal a ruido promedio efectiva es de 4dB y cuando ρxx(∆τ) es igual a 0.8 la relación señal a ruido promedio efectiva aumenta a 6dB. El aumento de la relación señal a ruido promedio efectiva al aumentar los errores de estimación confirma que aunque no haya usuarios interferentes el desempeño del receptor rastrillo se afecta considerablemente debido los errores de estimación de los parámetros del canal. • Para una relación señal a ruido promedio de 16dB si la señal de los usuarios interferentes está llegando al receptor con una relación señal a ruido promedio de 6dB por encima de la potencia del usuario de interés, la probabilidad de error de bit se aumenta aproximadamente 10 veces. Este aumento no es tan crítico si se tiene en cuenta que este sería un caso muy desfavorable y poco probable. En los resultados obtenidos se puede ver, de acuerdo a lo esperado, que hay menos resistencia cerca lejos si se aumenta el error en la estimación de los coeficientes de desvanecimiento del canal y si se aumenta el error en la sincronización de la señal firma. Todos éstos resultados resaltan la necesidad de un buen control de potencia y la necesidad de utilizar señales firma de baja correlación para que el efecto de usuarios interferentes se disminuya. 92 • Las señales firma de los usuarios compartiendo el canal se crearon a partir de secuencias Gold con N = 127 que corresponden a n = 7. De acuerdo con el teorema de Gold, para este N se pueden generar hasta 129 secuencias con baja correlación (menor o igual a 2(n+1)/2+1) por lo tanto se esperaba que fuera posible tener hasta 129 usuarios compartiendo el canal. Sin embargo, en los resultados (Fig. 4-7) se observa que para treinta usuarios compartiendo el canal la probabilidad de error se estabiliza en aproximadamente 0.01 mientras que para el caso de sólo un usuario presente en el canal y una relación señala ruido promedio de 10dB la probabilidad de error de bit es mucho menor, aproximadamente 3x10-4 y es una función decreciente. El gran aumento de la probabilidad de error de bit como consecuencia de varios usuarios compartiendo el canal lleva a concluir que aunque las secuencias Gold escogidas tienen baja correlación ésta no es lo suficientemente baja como para que sean utilizadas como secuencias que determinan la señal firma de los usuarios que comparten el canal. También se concluye que un parámetro crítico al diseñar un sistema de comunicaciones inalámbricas basado en CDMA-DSSS es el tipo de señales firma que se escojan. • Aunque el receptor óptimo no implementa un esquema de recepción basado en la diversidad su desempeño no se afecta debido a la presencia de varios usuarios en el canal. Esta característica es una gran ventaja. Por otro lado, para el receptor rastrillo, aunque implementa diversidad, este esquema no cancela por completo el efecto negativo que tiene la presencia de varios usuarios en el canal. La gran desventaja del receptor óptimo es su difícil implementación. 93 5.1 TRABAJO FUTURO • Analizar diferentes estimadores del canal y sus rangos de error. Si estos errores se pueden llegar a modelar como variables aleatorias Gaussianas de media cero se podrían utilizar los resultados presentados para evaluar la calidad de los estimadores. • Evaluar la probabilidad de error de bit del receptor rastrillo escogiendo señales firma que no estén basadas en secuencias Gold, por ejemplo, señales firma basadas en las funciones Walsh. • Analizar el desempeño de otro tipo de receptores rastrillo como por ejemplo el ‘Generalized Rake Receiver’ propuesto por Bottomley et al. y el ‘Decorrelating Rake Receiver’ propuesto por Liu y Li. Investigar para que tipos de transmisor y canal están diseñados y que técnica de combinación utilizan ya que éstos dos receptores no están basados en la técnica de combinación de tasa máxima sino que implementan otras técnicas más específicas que han sido propuestas por cada uno de los respectivos autores. 94 6. BIBLIOGRAFÍA APÓSTOL, T.M. Introducción a la teoría analítica de números. Barcelona : Reverte, 1980. BOTTOMLEY, G; OTTOSSON, T. and WANG, Y. “A generalized Rake receiver for interference suppression”. IEEE Journal on Selected Areas in Communications. Vol. 18, No. 8, pp. 1536-1545, Agosto 2000. BRADY, D. and ZOVONAR, Z. “Multiuser Detection in Single-Path Fadiing Channels”. IEEE Transactions on Communications. Vol.42, pp 1729-1739, Febrero 1994. D´AMOURS, M.; MOHER, M. and YONGACOGLU, A. “Comparisson of pilot symbol-assisted and differentially detected BPSK for DS-CDMA systems employing Rake receivers in Rayleigh fading channels”. IEEE Transactions on vehicular technology, Vol. 47, No. 4, pp. 1258-1267, Noviembre 1998. DONADIO, M. “How to generate white Gaussian noise”. dspGuru. Consulta en línea en: http://www.dspguru.com/howto/tech/wgn2.htm (Acceso Julio de 2004). FELSTRÖM..A; JIMÉNEZ, A and ZOGANGIROV, K.S. “On coherent reception of uplink transmitted signals in the DS-CDMA system”. IEEE Transactions on Information Theory, vol.45, pp. 2655-2661, Noviembre 1999. 95 GARG, V. Wireless Network Evolution: 2G to 3G. Upper Saddle River, New Jersey: Prentice Hall. 2002. HAYKIN, S. Communication Systems. New York: Chichester: John Wiley. 2001 HUANG, W; ANDONOVIC, I. and NAKAGAWA, M. “PLL performance of DSCDMA systems in the presence of phase noise, multiuser interference, and additive Gaussian noise”. IEEE Transactions on Communications, vol. 46, pp.1507-1515, Noviembre 1998. JERUCHIM, M.C. “Techniques for Estimating the Bit Error Rate in the Simulation of Digital Communication Systems”. IEEE Journal on Selected Areas in Communications. Vol. SAC-2, No.1, pp 153-170, Enero 1984. LEÓN-GARCÍA, A. Probability and Random processes for Electrical Engineering. New York: Addison Wesley Publishing Company, 1994. LIU, H. and LI, K. “A Decorrelating Rake Receiver for CDMA communications over frequency-selective fading channels”. IEEE Transactions on Communications, Vol.47, No.7, pp.1036-1045, Julio 1999. MANDYAM, G. “Wireless Communications ”. The University of Texas at Dallas. Consulta en línea en: http://www.utdallas.edu/~gxm016000/Lecture%2018%20November%201%202001.pdf (Acceso Agosto 2004) 96 MARSLAND, I. “Principles of digital communications”. CarletonUniversity. Consulta en línea en: http://www.sce.carleton.ca/courses/sysc-5504/notes/pdf/rv.pdf (Acceso Agosto 2004). MCLANE, P.J and SUNAY, M.O.. “Probability of error for diversity combining in DSCDMA systems with synchronization errors”. European Transactions on Telecommunications, vol. 9, no. 5, pp. 449-463, Septiembre 1998. MILSTEIN, L. and QUIRK, K. “The effects of phase estimation on Rake receiver performance”. IEEE Transactions on Information Theory. Vol. 48, no. 3, Marzo 2002. NONEAKER, D.L. “Optimal Combining for Rake Reception in Mobile Cellular CDMA Forward Links”. IEEE MILCOM 98. Consulta en línea en: http://www.argreenhouse.com/society/TacCom/papers98/25_03i.pdf. (Acceso Abril de 2004). KUMAR, S. and PANICKER, J. “Effect of system imperfections on BER performance of a CDMA receiver with multipath diversity combining”. IEEE Transactions on Vehicular Technology. Vol. 45, pp.622-630, Noviembre 1996. PROAKIS, J.G. Digital Communications. New York: McGraw Hill, 1989. RAPPAPORT, T. Wireless Communications: Principles and Practice. Saddle River, New Jersey, 1999. 97 STARK, H. and WOODS, J.W. Probability and Random Processes with Applications to signal Processing. New Jersey: Prentice Hall, 2002. VERDÚ, S. Multiuser Detection. New York: Cambridge University. 2001 WEISSTEIN, E.W. “Rayleigh distribution”. Mathworld. Consulta en línea en: http://mathworld.wolfram.com/RayleighDistribution.html (Acceso Julio de 2004) WEISSTEIN, E.W. “Normal Distribution”. Mathworld. Consulta en línea en: http://mathworld.wolfram.com/NormalDistribution.html. (Acceso Julio de 2004) 98 7. 7.1 ANEXO 1. ALGUNOS CONCEPTOS DE PROBABILIDAD Variable aleatoria con distribución Gaussiana Una variable aleatoria X tiene una distribución Gaussiana o Normal si su función de densidad de probabilidad es de la forma f X ( x) = 1 2π σ X ( x − m X )2 para todo x real exp − 2 2 σ X mX es el valor esperado o media de la variable aleatoria X: mX = E[X] Y σ2X es su varianza: σ2X = VAR[X] Se dice que X~N(mX, σ2X). La siguiente figura da una idea de la forma que toma la función de densidad de probabilidad de la variable aleatoria Gaussiana X en el caso en que mX =0. Figura 7-1 Función de densidad de probabilidad de una variable aleatoria Gaussiana de media cero. 99 Si a la variable aleatoria Gaussiana X~N(mX, σ2X) se le aplica una transformación lineal de la forma Y=aX + b, en donde a y b son constantes reales, la distribución de la nueva variable aleatoria Y también es Gaussiana6 y Y~N(b+ mX, (aσX)2). La suma de dos variables aleatorias Gaussianas independientes es también una variable aleatoria Gaussiana. Dicho en términos un poco más formales, si X y Y son variables aleatorias independientes y su distribución está dada respectivamente por X~N(mX,σ2X) y Y~(mY,σ2Y), entonces la variable aleatoria C: C=X+Y tiene una distribución Gaussiana dada por7 C~N(mX+mY,σ2X+σ2Y). 7.2 Variable aleatoria compleja formada a partir de dos variables aleatorias Gaussianas Si X y Y son variables aleatorias reales con distribuciones dadas por X~N(mX,σ2X) y Y~(mY,σ2Y), la variable aleatoria compleja Z = X + jY tiene las siguientes características8: mZ = E[Z] = E[X] + jE[Y] = mX +jmY y σ2Z = VAR[Z] = ½( σ2X+ σ2Y) La función de densidad de probabilidad de Z está dada por la función de densidad de probabilidad conjunta de X y Y: f Z ( z ) = f X ,Y (ℜ{z}, ℑ{z}) 6 La demostración se encuentra en el libro ‘Probability and Random Processes with Applications to Signal Processing’ de H. Stark y J.W. Woods 7 La demostración se encuentra en el libro ‘Probability and Random Processes for Electrical Engineering’ de León- García. 8 Resultados tomados de la página web de I. Marsland de la universidad de Carleton 100 Si X y Y son independientes: f Z ( z ) = f X ( x) f Y ( y ) 1 = 2π σ X ( y − mY )2 ( x − m X )2 1 exp − 2 2π σ exp − 2σ 2 Y σ 2 X X Ahora, suponiendo que σ2X = σ2Y = σZ2: f Z ( z) = 7.3 1 2πσ 2 Z Z − mZ exp − 2σ 2 Z 2 Distribución Rayleigh Si Z = X + jY es una variable aleatoria compleja y X~N(0,σ2) y Y~N(0, σ2), la variable aleatoria R =|Z| tiene una función de distribución Rayleigh : f R (r ) = r2 − ; exp 2 σ2 2σ r2 r≥0 con E[|Z|] = 1.2533σ, VAR[|Z|] = 2σ2 y la notación es Z~R(1.2533σ , 2σ2). La figura 1-14 da una idea de la forma de la función de densidad de probabilidad para este caso: Figura 7-2 Función de densidad de probabilidad de una variable aleatoria con distribución Rayleigh. 101 7.4 Ruido blanco Gaussiano aditivo Es conveniente listar unas propiedades del ruido blanco Gaussiano aditivo con densidad espectral de potencia unitaria. Algunas de estas propiedades serán utilizadas. Estas propiedades fueron tomadas del libro de S. Verdú y allí mismo están demostradas: Suponiendo que n(t) es ruido blanco Gaussiano aditivo con densidad espectral de potencia unitaria, teniendo en cuenta que T a, b = ∫ a (t )b(t )dt , y dado que h(t) y g(t) son señales determinísticas de 0 energía finita, las propiedades son: 1. E[<n,h>] = 0. 2. E[<n,h>2] = ||h||2 3. Si n(t) es un proceso Gaussiano entonces <n,h> es una variable aleatoria Gaussiana 4. E[<n,h><n,g>] = <g,h> 5. E[<n,h>n] = h 7.5 Funciones erf y Q La función erf corresponde a la siguiente definición: erf ( x) = 2 π x ∫e −t 2 dt 0 La función Q corresponde a la siguiente definición: ∞ Q( x) = ∫ x t2 exp − dt 2π 2 1 102 Q(x) = P[X > x] con X~N(0,1) Una propiedad importante de la función Q y que se usará durante el desarrollo de las ecuaciones para la probabilidad de error de bit es la siguiente9: Si X es un vector complejo de dimensión L con componentes independientes cada una con varianza igual a E[|Xi|2] = 2γ2 y partes real e imaginaria independientes siendo tanto la parte real como la parte imaginaria variables aleatorias Gaussianas de media cero entonces: E [Q( X 7.6 )] = 1 − 1 2 1 2 1 + γ −2 L 1 ⋅ 3 ⋅ 5 ⋅ ⋅ ⋅ (2n − 1) 1 + ∑ 2 n n n =1 n!2 (γ 1) Señales continuas en tiempo en ruido blanco Gaussiano aditivo Para el caso en que se tienen señales continuas afectadas por ruido blanco Gaussiano aditivo las siguientes regiones de decisión minimizan la probabilidad de error de bit10: Sean x1,..,xm funciones determinísticas de energía finita definidas en un intervalo I de la línea real. Sea n(t) ruido blanco Gaussiano aditivo con densidad espectral de potencia igual a uno. Considerando las m hipótesis equiprobables: H1 : y(t) = x1(t) + σn(t), t ε I . . . Hm : y(t) = xm(t) + σn(t), t ε I 9 Esta propiedad se encuentra en el libro ‘Multiuser Detection’ de S. Verdú Esta es una proposición explicada con más detalle en libro ‘Multiuser Detection’ de S. Verdú 10 103 Las siguientes regiones de decisión minimizan la probabilidad de error: { } i −1 Ω i = y = {y (t ), t ∈ I } : f [ y | xi ] = max f [ y | x j ] − U Ω j j =1,...m j =1 en donde 1 f [ y | xi ] = exp − 2 2σ ∫ [y(t ) − x (t )] dt 2 i I 104 8. ANEXO 2. COMBINACIÓN DE TASA MÁXIMA, REGLA DE DECISIÓN ÓPTIMA EN EL CONTEXTO DE DIVERSIDAD Y UN USUARIO PRESENTE EN EL CANAL En esta sección se hace un desarrollo para llegar al mismo resultado de Verdú con el cual el autor justifica la técnica de combinación de tasa máxima como el método con el cual se implementa la regla de decisión óptima en el contexto de diversidad y un usuario presente en el canal. En el caso en que hay sólo un usuario (usuario x) en el canal, la señal recibida es: Y (t ) = Yx (t ) + σn(t ) En donde C Yx (t ) = ∑ Acx (t ) X x (t − τ cx ) c =1 C = ∑ Acx (t )bx (t − τ cx ) s x (t − τ cx ) c =1 Reemplazando Yx(t) en Y(t): C Y (t ) = ∑ Acx (t )bx (t − τ cx ) s x (t − τ cx ) + σn(t ) c =1 Suponiendo que el ruido σn(t) es igual a las contribuciones del ruido en cada camino: C σn(t ) = σ ∑ n(t ) c =1 Se tiene que: C Y (t ) = ∑ ( Acx (t )bx (t − τ cx ) s x (t − τ cx ) + σnc (t ) ) c =1 Limitando la observación a un intervalo de tiempo t є [0,Tb] en el que se recibe un bit del usuario x: 105 C ( Y (t ) = ∑ Acx Ebx bx s x (t − τ cx ) + σnc (t ) c =1 ) Hay dos hipótesis, la primera es que se envíe un 1 y la segunda es que se envíe un -1: C ( ) ( ) H 1 : Y (t ) = ∑ + Acx Ebx s x (t − τ cx ) + σnc (t ) c =1 C H 2 : Y (t ) = ∑ − Acx Ebx s x (t − τ cx ) + σnc (t ) c =1 Estas hipótesis se pueden dividir en cuatro, dos para la parte real y dos para la parte imaginaria. Para la parte real: C ( ) ( ) ( ) ( ) H 1R : YR (t ) = ∑ + AcxR Ebx s x (t − τ cx ) + σncR (t ) c =1 C H 2 R : YR (t ) = ∑ − AcxR Ebx s x (t − τ cx ) + σncR (t ) c =1 Para la parte imaginaria: C H 1I : YI (t ) = ∑ + AcxI Ebx s x (t − τ cx ) + σncI (t ) c =1 C H 2 I : YI (t ) = ∑ − AcxI Ebx s x (t − τ cx ) + σncI (t ) c =1 YR(t) se puede rescribir de la siguiente manera: C YR (t ) = ∑ YEcR (t ) en donde YEcR (t ) = AcxR Ebx bx s x (t − τ cx ) + σncR (t ) c =1 YI(t) también se puede rescribir: C YI (t ) = ∑ YEcI (t ) en donde YEcI (t ) = AcxI Ebx bx s x (t − τ cx ) + σncI (t ) c =1 Para la parte real hay que escoger el bx que haga máximo: 1 f [{YR (t ), t ∈ [0, Tb]} | bx ] = exp − 2 2σ ∫ ∑ [Y C I c =1 EcR ] 2 (t ) − AcxR Ebx bx s x (t − τ cx ) dt 106 Y para la parte imaginaria hay que escoger el bx que haga máximo: 1 f [{YI (t ), t ∈ [0, Tb]} | bx ] = exp − 2 2σ ∫ ∑ [Y C I c =1 EcI ] 2 (t ) − AcxI Ebx bx s x (t − τ cx ) dt Como la parte real y la parte imaginaria de Y(t) son independientes y lo que se desea hacer máximo es la parte real y la parte imaginaria conjuntamente, esto equivale a hacer máximo: 1 f [{Y (t ), t ∈ [0, Tb]} | bx ] = exp − 2 2σ Tb C ∫ ∑Y 0 c =1 Ec 2 (t ) − Acx Ebx bx s x (t − τ cx ) dt , (8-1) en dónde YEc(t) = YEcR(t) + j YEcI(t). Hacer máximo (8-1) equivale a minimizar: Tb C ∫∑ Y 0 c =1 2 Ec (t ) − Acx Ebx bx s x (t − τ cx ) dt , lo cual termina siendo un caso minimización de distancia. Como sx(t) es real, Tb C 2 C Tb C ∫ ∑ YEc (t ) − Acx Ebx bx s x (t − τ cx ) dt = ∑ ∫ YEc (t ) dt +∑ Acx Ebx bx s x (t − τ cx ) dt 0 c =1 2 c =1 0 c =1 Tb − 2 Ebx bx ∑ ℜ ∫ YEc (t ) A∗ cx s x (t − τ cx )dt c =1 0 C Y la regla de decisión óptima para estimar el bit transmitido bx es: Tb C bˆx = sgn ∑ ℜ A∗cx ∫ YEc (t ) s x (t − τ cx )dt c =1 0 Con la correlación entre YEc(t) y sx(t-τcx) se separa la señal proveniente del camino c de las señales provenientes de los demás caminos. La regla de decisión óptima dice que hay que multiplicar el resultado de esta correlación por el complejo conjugado del coeficiente de desvanecimiento del canal que afecta el camino c. Esto es igual a lo que se había dicho en la sección 2.3.1 para la técnica de combinación de tasa máxima por lo tanto, la regla de decisión óptima corresponde a esta técnica. 107 9. 9.1 ANEXO 2. CÓDIGO DE LAS FUNCIONES IMPLEMENTADAS EN C++ FUNCIÓN ‘transmisorg.cpp’ #include <stdlib.h> #include <math.h> #include "mex.h" #include "matrix.h" #define corrimiento_IN prhs[0] #define senalinfo_IN prhs[1] #define tx_OUT plhs[0] #define gold_OUT plhs[1] /*corrimiento : (entrada) /*senalinfo desea (entrada) /*tx acuerdo al (salida) /*gold la cual (salida) Indica el corrimiento de una de las maximal sequences usadas para generar la secuencia Gold a partir de la cual se genera la señal firma del usuario x*/ : Vector que contiene los bits de información que : transmitir el usuario x */ Vector que contiene la señal transmitida de : modelo propuesto*/ Vector que contiene la secuencia Gold a partir de se generó la señal firma del usuario x*/ void transmisorg(int corr, int periodo, double *senalinfo, double tx[], double gold[]) { /*Genera la señal transmitida por el usuario x multiplicando una Gold sequence de periodo 127 bits por cada uno de los bits de la señal de información*/ /*La Gold sequence es el resultado de la xor de dos maximal sequences generadas por los polinomios p1=x7+x3+1 y p2=x7+x3+x2+x1+1. p1 genera smax1 y p2 genera smax2. Ya previamente se verifico que estos polinomios cumplen las condiciones necesarias*/ /*La variable corrimiento especifica el numero de posiciones que se rotara smax2 a la derecha antes de hacer la xor con smax1*/ int i,j; float ff1[7],ff2[7],smax1[127],smax2[127],ressuma1,ressuma2; /*Se cargan los flip flops con el estado inicial. ff1 representa a los flipflops para obtener smax1 y ff2 representa a los flipflops para obtener smax2. Se definió que el estado inicial 108 iba a ser siempre [0 0 1 1 0 0 1] para generar ambas secuencias*/ ff1[0]=ff1[1]=ff1[4]=ff1[5]=ff2[0]=ff2[1]=ff2[4]=ff2[5]=0; ff1[2]=ff1[3]=ff1[6]=ff2[2]=ff2[3]=ff2[6]=1; /*Con un loop se generan smax1 y smax2*/ for (i=0;i<127;i++) {smax1[i] = ff1[6]; if (i+corr>126) smax2[i+corr-127] = ff2[6]; else smax2[i+corr] = ff2[6]; if (ff1[2]==ff1[6]) ressuma1 = 0; else ressuma1 = 1; if ((ff2[6]!=ff2[2])^(ff2[1]!=ff2[0])) ressuma2 = 1; else ressuma2 = 0; ff1[6] = ff1[5]; ff2[6] = ff2[5]; ff1[5] = ff1[4]; ff2[5] = ff2[4]; ff1[4] = ff1[3]; ff2[4] = ff2[3]; ff1[3] = ff1[2]; ff2[3] = ff2[2]; ff1[2] = ff1[1]; ff2[2] = ff2[1]; ff1[1] = ff1[0]; ff2[1] = ff2[0]; ff1[0] = ressuma1; ff2[0] = ressuma2; } /*generación secuencia gold = xor entre smax1 y smax2 corrida llenado de todo el vector salida tx*/ for(i=0;i<periodo*127;i++) {if(i<127) {if(smax1[i] == smax2[i]) {gold[i] = -1; tx[i] = *senalinfo * -1; } else {gold[i] = 1; tx[i] = *senalinfo * 1; } } else {j = i/127; tx[i] = *(senalinfo+j) * gold[i-j*127]; } } return; } void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) 109 { double *corrimiento, *senalinfo; double *tx, *gold; int periodo, corr; corrimiento = mxGetPr(corrimiento_IN); senalinfo = mxGetPr(senalinfo_IN); periodo = mxGetN(senalinfo_IN); corr = *corrimiento; tx_OUT = mxCreateDoubleMatrix(1,periodo*127,mxREAL); gold_OUT = mxCreateDoubleMatrix(1,127,mxREAL); tx = mxGetPr(tx_OUT); gold = mxGetPr(gold_OUT); transmisorg(corr,periodo,senalinfo,tx,gold); } 9.2 FUNCIÓN ‘canalxu3.cpp’ #include <stdlib.h> #include <math.h> #include "mex.h" #include "matrix.h" #define numbitsinfo_IN prhs[0] #define numusuariosint_IN prhs[1] #define Ebinterferentes_IN prhs[2] #define sigA2_IN prhs[3] #define taos_IN prhs[4] #define sigmaawgn_IN prhs[5] #define x1_IN prhs[6] #define A1r_IN prhs[7] #define A1i_IN prhs[8] #define yr_OUT plhs[0] #define yi_OUT plhs[1] /*numbitsinfo : Numero de bits de información transmitidos por el usuario x (entrada)*/ /*numusuariosint: Numero de usuarios interferentes (entrada)*/ /*Ebinterferentes: Energía usuarios interferentes, es la misma para todos (entrada) (no es un vector)*/ /*sigA2 : Contiene el valor de la varianza de la parte real y de la (entrada) parte imaginaria de los coeficientes de desvanecimiento del canal (misma para todos los usuarios). */ /*taos : [tao1,tao2,tao3] Vector que contiene los retardos que afectan 110 (entrada) la señal del usuario 1 en los caminos 1, 2 y 3 respectivamente Se definió que para los usuarios interferentes el numero de caminos es también 3 El retardo de los usuarios interferentes se definió como tao1+10 para el primer camino tao2+10 para el segundo camino tao3+10 para el tercer camino Lo anterior significa que todos los usuarios interferentes tienen el mismo número de caminos y en caminos iguales tienen /*sigmaaqwgn: (entrada)*/ /*x1 usuario 1 (entrada)*/ /*A1r coeficientes de (entrada) de los bits de la /*A1i imaginaria de los (entrada) cada uno el mismo retardo*/ Varianza de la parte real y la parte imaginaria del awgn : Vector que contiene la señal transmitida por el : Matriz-numbitsinfox3. Contiene la parte real de los desvanecimiento del canal que afectan a cada uno : señal transmitida por el usuario 1 (X1)*/ Matriz-numbitsinfox3. Contiene la parte coeficientes de desvanecimiento del canal que afectan a de los bits de la señal transmitida por el usuario 1 (X1) */ /*yr : Vector que contiene la parte real de la salida del canal (Re(Y(t))) (salida) de acuerdo al modelo propuesto */ /*yi : Vector que contiene la parte imaginaria de la salida del canal (Im(Y(t))) (salida) de acuerdo al modelo propuesto */ void canalxu3(int numuint, int i, int j, int a, double *gold, double *smax1, double *smax2, double *interferentesr, double *interferentesi, double *btx, double *AIr, double *AIi) { /*interferentesr e interferentesi son vectores de tamaño 3x(numbitsinfoX127) Cada fila contiene la contribución de los usuarios interferentes en el camino correspondiente. Es decir la fila 1 contiene la suma de la señal del camino 1 de todos los usuarios interferentes*/ if(i<127) /*Este if genera la secuencia gold del usuario a*/ {if(*(smax1+i) == *(smax2+i*numuint+a)) *(gold+i*numuint+a) = -1; else *(gold+i*numuint+a) = 1; 111 } *(interferentesr+3*i) = *(interferentesr+3*i) + *(gold+(i-j*127)*numuint+a) * *(btx+a) * *(AIr+a); *(interferentesr+3*i+1) = *(interferentesr+3*i+1) + *(gold+(i-j*127)*numuint+a) * *(btx+a) * *(AIr+numuint+a); *(interferentesr+3*i+2) = *(interferentesr+3*i+2) + *(gold+(i-j*127)*numuint+a) * *(btx+a) * *(AIr+2*numuint+a); *(interferentesi+3*i) = *(interferentesi+3*i) + *(gold+(i-j*127)*numuint+a) * *(btx+a) * *(AIi+a); *(interferentesi+3*i+1) = *(interferentesi+3*i+1) + *(gold+(i-j*127)*numuint+a) * *(btx+a) * *(AIi+numuint+a); *(interferentesi+3*i+2) = *(interferentesi+3*i+2) + *(gold+(i-j*127)*numuint+a) * *(btx+a)* *(AIi+2*numuint+a); return; } void sumsusumassint(int periodo, int i, int tao31, double *taos, double *x1, double *A1r, double *A1i, double *interferentesr, double *interferentesi,double yr[], double yi[], double *ruidor, double *ruidoi) { int c1x,c1A,c2x,c2A,c3x,c3A; /*Esta función añade a la señal transmitida por el usuario 1 el desvanecimiento Rayleigh y el efecto multicamino, y además le suma la señal de los usuarios interferentes y el ruido Gaussiano aditivo/ /*Al sumar las señales de los usuarios interferentes se tiene en cuenta, como se dijo anteriormente, que para todos la señal se propaga por tres caminos y que para diferentes usuarios interferentes pero para un mismo camino el retardo es el mismo y es igual al retardo correspondiente a ese camino del usuario1 + 10*/ if(i < *taos) {yr[i] = 0 + *ruidor; yi[i] = 0 + *ruidoi; } else if(i < *(taos+1)) {c1x = i - *(taos); c1A = c1x / 127; if(i < *(taos)+10) {yr[i] = *(A1r+c1A) * *(x1+c1x) + *ruidor; yi[i] = *(A1i+c1A) * *(x1+c1x) + *ruidoi; } else 112 {yr[i] = *(A1r+c1A) * *(x1+c1x) + *(interferentesr+3*(c1x-10)) + *ruidor; yi[i] = *(A1i+c1A) * *(x1+c1x) + *(interferentesi+3*(c1x-10)) + *ruidoi; } } else if(i < *(taos+2)) {c1x = i - *(taos); c1A = c1x / 127; c2x = i - *(taos+1); c2A = c2x / 127; if(i < *(taos+1)+10) {yr[i] = *(A1r+c1A) * *(x1+c1x) + *(interferentesr+3*(c1x-10)) + *(A1r+c2A+periodo) * *(x1+c2x) + *ruidor; yi[i] = *(A1i+c1A) * *(x1+c1x) + *(interferentesi+3*(c1x-10)) + *(A1i+c2A+periodo) * *(x1+c2x) + *ruidoi; } else {yr[i] = *(A1r+c1A) * *(x1+c1x) + *(interferentesr+3*(c1x-10)) + *(A1r+c2A+periodo) * *(x1+c2x) + *(interferentesr+3*(c2x-10)+1) + *ruidor; yi[i] = *(A1i+c1A) * *(x1+c1x) + *(interferentesi+3*(c1x-10)) + *(A1i+c2A+periodo) * *(x1+c2x) + *(interferentesi+3*(c2x-10)+1) + *ruidoi; } } else {c1x = i - *(taos); c1A = c1x / 127; c2x = i - *(taos+1); c2A = c2x / 127; c3x = i - tao31; c3A = c3x / 127; if(c1x < periodo*127) {if(i < *(taos+2)+10) {yr[i] = *(A1r+c1A) * *(x1+c1x) + *(interferentesr+3*(c1x-10)) + *(A1r+c2A+periodo) * *(x1+c2x) + *(interferentesr+3*(c2x-10)+1) + *(A1r+c3A+2*periodo) * *(x1+c3x) + *ruidor; yi[i] = *(A1i+c1A) * *(x1+c1x) + *(interferentesi+3*(c1x-10)) + *(A1i+c2A+periodo) * *(x1+c2x) + *(interferentesi+3*(c2x-10)+1) + *(A1i+c3A+2*periodo) * *(x1+c3x) + *ruidoi; } else {yr[i] = *(A1r+c1A) * *(x1+c1x) + *(interferentesr+3*(c1x-10)) + *(A1r+c2A+periodo) * *(x1+c2x) + *(interferentesr+3*(c2x-10)+1) + *(A1r+c3A+2*periodo) * *(x1+c3x) + *(interferentesr+3*(c3x-10)+2) + *ruidor; yi[i] = *(A1i+c1A) * *(x1+c1x) + *(interferentesi+3*(c1x-10)) + *(A1i+c2A+periodo) * *(x1+c2x) + *(interferentesi+3*(c2x-10)+1) + *(A1i+c3A+2*periodo) * *(x1+c3x) + *(interferentesi+3*(c3x-10)+2) + *ruidoi; 113 } } else if(c2x < periodo*127) {if(c1x-10 < periodo*127) {yr[i] = *(interferentesr+3*(c1x-10)) + *(A1r+c2A+periodo) * *(x1+c2x) + *(interferentesr+3*(c2x-10)+1) + *(A1r+c3A+2*periodo) * *(x1+c3x) + *(interferentesr+3*(c3x-10)+2) + *ruidor; yi[i] = *(interferentesi+3*(c1x-10)) + *(A1i+c2A+periodo) * *(x1+c2x) + *(interferentesi+3*(c2x-10)+1) + *(A1i+c3A+2*periodo) * *(x1+c3x) + *(interferentesi+3*(c3x-10)+2) + *ruidoi; } else {yr[i] = *(A1r+c2A+periodo) * *(x1+c2x) + *(interferentesr+3*(c2x-10)+1) + *(A1r+c3A+2*periodo) * *(x1+c3x) + *(interferentesr+3*(c3x-10)+2) + *ruidor; yi[i] = *(A1i+c2A+periodo) * *(x1+c2x) + *(interferentesi+3*(c2x-10)+1) + *(A1i+c3A+2*periodo) * *(x1+c3x) + *(interferentesi+3*(c3x-10)+2) + *ruidoi; } } else {if(c2x-10 < periodo*127) {yr[i] = *(interferentesr+3*(c2x-10)+1) + *(A1r+c3A+2*periodo) * *(x1+c3x) + *(interferentesr+3*(c3x-10)+2) + *ruidor; yi[i] = *(interferentesi+3*(c2x-10)+1) + *(A1i+c3A+2*periodo) * *(x1+c3x) + *(interferentesi+3*(c3x-10)+2) + *ruidoi; } else {yr[i] = *(A1r+c3A+2*periodo) * *(x1+c3x) + *(interferentesr+3*(c3x10)+2) + *ruidor; yi[i] = *(A1i+c3A+2*periodo) * *(x1+c3x) + *(interferentesi+3*(c3x10)+2) + *ruidoi; } } } return; } 114 void secuencias(int numuint,double *smax1, double *smax2) {/*Genera la secuencia smax1 y la matriz smax2. El numero de filas de smax2 es igual al número de usuarios interferentes y su número de columnas es igual a 127. Cada fila de smax2 contiene la secuencia smax2 con el corrimiento apropiado para generar un numero de secuencias gold igual al numero de usuarios interferentes*/ int a,i; float ff1[7],ff2[7],ressuma1,ressuma2; /*Se cargan los flip flops con el estado inicial. ff1 representa a los flipflops para obtener smax1 y ff2 representa a los flipflops para obtener smax2 se definió que el estado inicial iba a ser siempre [0 0 1 1 0 0 1] para generar ambas secuencias*/ ff1[0]=ff1[1]=ff1[4]=ff1[5]=ff2[0]=ff2[1]=ff2[4]=ff2[5]=0; ff1[2]=ff1[3]=ff1[6]=ff2[2]=ff2[3]=ff2[6]=1; /*Con un loop se generan smax1 y smax2*/ /*El corrimiento de smax2 debe ser mayor a 1 (corrimiento 0 corresponde al usuario de interés) y menor a 2^7*/ for (i=0;i<127;i++) {*(smax1+i) = ff1[6]; for (a=0;a<numuint;a++) {if (i+a+1>126) *(smax2+(i+a+1-127)*numuint+a) = ff2[6]; else *(smax2+(i+a+1)*numuint+a)= ff2[6]; } if (ff1[2]==ff1[6]) ressuma1 = 0; else ressuma1 = 1; if ((ff2[6]!=ff2[2])^(ff2[1]!=ff2[0])) ressuma2 = 1; else ressuma2 = 0; ff1[6] = ff1[5]; ff2[6] = ff2[5]; ff1[5] = ff1[4]; ff2[5] = ff2[4]; ff1[4] = ff1[3]; ff2[4] = ff2[3]; ff1[3] = ff1[2]; ff2[3] = ff2[2]; ff1[2] = ff1[1]; ff2[2] = ff2[1]; ff1[1] = ff1[0]; ff2[1] = ff2[0]; ff1[0] = ressuma1; ff2[0] = ressuma2; } return; } void vgauss(double varianzaA, double *vag) 115 {/*Esta función genera una variable aleatoria Gaussiana de media cero y varianza igual a varianzaA*/ double U1,U2,V1,V2; double S=2; do{ U1 = rand(); U2 = rand(); U1 = U1 / RAND_MAX; U2 = U2 / RAND_MAX; V1 = 2*U1 - 1; V2 = 2*U2 - 1; S = V1 * V1 + V2 * V2; }while(S>=1); *vag = V1 * sqrt((-2*log(S)) / S) * sqrt(varianzaA); return; } void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { double *numbitsinfo,*numusuariosint,*Ebinterferentes,*sigA2,*taos,*sigmaawgn,*x1,* A1r,*A1i; double *yr,*yi; double *smax1,*smax2,*interferentesr,*interferentesi,*gold; double *btx, *AIr, *AIi, *ruidor, *ruidoi; mxArray *smax1_CREAR,*smax2_CREAR,*interferentesr_CREAR,*interferentesi_CR EAR,*gold_CREAR; mxArray *btx_CREAR, *AIr_CREAR, *AIi_CREAR, *ruidor_CREAR, *ruidoi_CREAR; int periodo, numuint; int i,j,a,cont,k,tao31; double varianzaA,varianzaR,Ebint; numbitsinfo = mxGetPr(numbitsinfo_IN); numusuariosint = mxGetPr(numusuariosint_IN); Ebinterferentes = mxGetPr(Ebinterferentes_IN); sigA2 = mxGetPr(sigA2_IN); taos = mxGetPr(taos_IN); sigmaawgn = mxGetPr(sigmaawgn_IN); x1 = mxGetPr(x1_IN); A1r = mxGetPr(A1r_IN); A1i = mxGetPr(A1i_IN); periodo = *numbitsinfo; numuint = *numusuariosint; Ebint = *Ebinterferentes; varianzaA = *sigA2; varianzaR = *sigmaawgn * *sigmaawgn; tao31 = *(taos+2); 116 yr_OUT = mxCreateDoubleMatrix(1,127*periodo+tao31,mxREAL); yi_OUT = mxCreateDoubleMatrix(1,127*periodo+tao31,mxREAL); smax1_CREAR = mxCreateDoubleMatrix(1,127,mxREAL); smax2_CREAR = mxCreateDoubleMatrix(numuint,127,mxREAL); interferentesr_CREAR = mxCreateDoubleMatrix(3,periodo*127,mxREAL); interferentesi_CREAR = mxCreateDoubleMatrix(3,periodo*127,mxREAL); gold_CREAR = mxCreateDoubleMatrix(numuint,127,mxREAL); btx_CREAR = mxCreateDoubleMatrix(1,numuint,mxREAL); AIr_CREAR = mxCreateDoubleMatrix(numuint,3,mxREAL); AIi_CREAR = mxCreateDoubleMatrix(numuint,3,mxREAL); ruidor_CREAR = mxCreateDoubleScalar(1); ruidoi_CREAR = mxCreateDoubleScalar(1); yr = mxGetPr(yr_OUT); yi = mxGetPr(yi_OUT); smax1 = mxGetPr(smax1_CREAR); smax2 = mxGetPr(smax2_CREAR); interferentesr = mxGetPr(interferentesr_CREAR); interferentesi = mxGetPr(interferentesi_CREAR); gold = mxGetPr(gold_CREAR); btx = mxGetPr(btx_CREAR); AIr = mxGetPr(AIr_CREAR); AIi = mxGetPr(AIi_CREAR); ruidor = mxGetPr(ruidor_CREAR); ruidoi = mxGetPr(ruidoi_CREAR); secuencias(numuint,smax1,smax2); k = 0; for(i=0;i<periodo*127+tao31;i++) {j = i/127; cont = (i-1)/127; for(a=0;a<numuint;a++) {if((i==0) || (cont<j)) {vgauss(1,btx+a); if(*(btx+a)<0) *(btx+a) = -1 * sqrt(Ebint/127); else *(btx+a) = 1 * sqrt(Ebint/127); if((k==0) || (k>9)) {vgauss(varianzaA,AIr+a); vgauss(varianzaA,AIr+a+numuint); vgauss(varianzaA,AIr+a+2*numuint); 117 vgauss(varianzaA,AIi+a); vgauss(varianzaA,AIi+a+numuint); vgauss(varianzaA,AIi+a+2*numuint); } } if(i<periodo*127) {canalxu3(numuint,i,j,a,gold,smax1,smax2,interferentesr, interferentesi,btx,AIr,AIi); } } if((i==0) || (cont<j)) {if((k==0) || (k>9)) k = 1; else k = k + 1; } vgauss(varianzaR,ruidor); vgauss(varianzaR,ruidoi); sumsusumassint(periodo,i,tao31,taos,x1,A1r,A1i,interferentesr, interferentesi, yr,yi,ruidor,ruidoi); } mxDestroyArray(smax1_CREAR); mxDestroyArray(smax2_CREAR); mxDestroyArray(interferentesr_CREAR); mxDestroyArray(interferentesi_CREAR); mxDestroyArray(gold_CREAR); mxDestroyArray(btx_CREAR); mxDestroyArray(AIr_CREAR); mxDestroyArray(AIi_CREAR); mxDestroyArray(ruidor_CREAR); mxDestroyArray(ruidoi_CREAR); } 9.3 FUNCIÓN ‘etapas12.cpp’ #include <stdlib.h> #include <math.h> #include "mex.h" #include "matrix.h" #define Yr_IN prhs[0] #define Yi_IN prhs[1] #define gold_IN prhs[2] #define taos_IN prhs[3] #define numbits_IN prhs[4] #define YR1r_OUT plhs[0] #define YR1i_OUT plhs[1] #define YR2r_OUT plhs[2] 118 #define YR2i_OUT plhs[3] #define YR3r_OUT plhs[4] #define YR3i_OUT plhs[5] /*Yr: Vector que contiene la parte real de la salida del canal (entrada)*/ /*Yi: Vector que contiene la parte imaginaria de la salida del canal (entrada)*/ /*gold: Vector secuencia gold con que se transmitieron los bits del usuario 1 (entrada)*/ /*taos: [tao11 tao21 tao31] retardos correspondientes a los caminos 1,2 y 3 (entrada) del usuario 1*/ /*numbits : numero de bits de información transmitidos (entrada)*/ /*YR1r: Vector que contiene la parte real de la salida de los correlatores de la rama 1 del (salida)receptor Rake*/ /*YR1i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 1 del (salida) receptor Rake*/ /*YR2r: Vector que contiene la parte real de la salida de los correlatores de la rama 2 del (salida)receptor Rake*/ /*YR2i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 2 del (salida) receptor Rake*/ /*YR3r: Vector que contiene la parte real de la salida de los correlatores de la rama 3 del (salida)receptor Rake*/ /*YR3i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 3 del (salida) receptor Rake*/ void etapas12(int periodos, double *taos, double *gold, double *Yr, double *Yi, double YR1r[], double YR1i[], double YR2r[], double YR2i[], double YR3r[], double YR3i[]) { /*Esta función implementa las etapas 1 y 2 : Línea de retardo y correlatores en el caso en que no hay error de sincronización de la señal firma/ int i,j,tao1,tao2,tao3; tao1 = *taos; tao2 = *(taos+1); tao3 = *(taos+2); for(i=0;i<periodos*127;i++) {j = i/127; YR1r[j] = YR1r[j] + *(Yr+i+tao1) * (*(gold+i-j*127)/sqrt(127)); YR1i[j] = YR1i[j] + *(Yi+i+tao1) * (*(gold+i-j*127)/sqrt(127)); 119 YR2r[j] = YR2r[j] + *(Yr+i+tao2) * (*(gold+i-j*127)/sqrt(127)); YR2i[j] = YR2i[j] + *(Yi+i+tao2) * (*(gold+i-j*127)/sqrt(127)); YR3r[j] = YR3r[j] + *(Yr+i+tao3) * (*(gold+i-j*127)/sqrt(127)); YR3i[j] = YR3i[j] + *(Yi+i+tao3) * (*(gold+i-j*127)/sqrt(127)); } return; } 9.4 void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { double *Yr, *Yi, *gold, *taos, *numbits; double *YR1r, *YR1i, *YR2r, *YR2i, *YR3r, *YR3i; int periodos; Yr = mxGetPr(Yr_IN); Yi = mxGetPr(Yi_IN); gold = mxGetPr(gold_IN); taos = mxGetPr(taos_IN); numbits = mxGetPr(numbits_IN); periodos = *numbits; YR1r_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR1i_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR2r_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR2i_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR3r_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR3i_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR1r = mxGetPr(YR1r_OUT); YR1i = mxGetPr(YR1i_OUT); YR2r = mxGetPr(YR2r_OUT); YR2i = mxGetPr(YR2i_OUT); YR3r = mxGetPr(YR3r_OUT); YR3i = mxGetPr(YR3i_OUT); etapas12(periodos,taos,gold,Yr,Yi,YR1r,YR1i,YR2r,YR2i,YR3r,YR3i); } FUNCIÓN ‘etapas34.cpp’ #include <stdlib.h> #include <math.h> #include "mex.h" #include "matrix.h" #define YR1r_IN prhs[0] #define YR1i_IN prhs[1] #define YR2r_IN prhs[2] #define YR2i_IN prhs[3] #define YR3r_IN prhs[4] #define YR3i_IN prhs[5] #define A1r_IN prhs[6] #define A1i_IN prhs[7] #define numbits_IN prhs[8] 120 #define bitsinfoest_OUT plhs[0] /*YR1r: Vector que contiene la parte real de la salida de los correlatores de la rama 1 del (entrada)receptor Rake*/ /*YR1i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 1 del (entrada) receptor Rake*/ /*YR2r: Vector que contiene la parte real de la salida de los correlatores de la rama 2 del (entrada)receptor Rake*/ /*YR2i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 2 del (entrada) receptor Rake*/ /*YR3r: Vector que contiene la parte real de la salida de los correlatores de la rama 3 del (entrada)receptor Rake*/ /*YR3i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 3 del (entrada) receptor Rake*/ /*A1r : Matriz-numbitsinfox3. Contiene la parte real de los coeficientes de (entrada)desvanecimiento del canal que afectan a cada uno de los bits de la señal transmitida por el usuario 1 (X1)*/ /*A1i : Matriz-numbitsinfox3. Contiene la parte imaginaria de los (entrada)coeficientes de desvanecimiento del canal que afectan a cada uno de los bits de la señal transmitida por el usuario 1 (X1) */ /*numbits : numero de bits de información transmitidos (entrada)*/ /*bitsinfoest: Vector que contiene el estimado hecho por el receptor Rake (salida) de cada uno de los bits enviados por el usuario 1*/ void etapas34(int periodos, double *YR1r, double *YR1i, double *YR2r, double *YR2i, double *YR3r, double *YR3i, double *A1r, double *A1i, double bitsinfoest[]) { int i; double YR1=0; for(i=0;i<periodos;i++) {/*YR1: Variable, para cada bit i almacena la parte real del resultado de multiplicar por el complejo conjugado de los coeficientes de desvanecimiento y después sumar las señales de las ramas :MRC (Maximal Ratio Combining)*/ YR1 = *(YR1r+i) * *(A1r+i) + *(YR1i+i) * *(A1i+i) + *(YR2r+i) * *(A1r+i+periodos) + *(YR2i+i) * *(A1i+i+periodos) + *(YR3r+i) * *(A1r+i+2*periodos) + *(YR3i+i) * *(A1i+i+2*periodos); /*Con el if se hace la toma de decisión, reemplaza la función sgn()*/ if(YR1<0) bitsinfoest[i] = -1; 121 else bitsinfoest[i] = 1; } return; } void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { double *numbits, *YR1r, *YR1i, *YR2r, *YR2i, *YR3r, *YR3i, *A1r, *A1i; double *bitsinfoest; int periodos; YR1r = mxGetPr(YR1r_IN); YR1i = mxGetPr(YR1i_IN); YR2r = mxGetPr(YR2r_IN); YR2i = mxGetPr(YR2i_IN); YR3r = mxGetPr(YR3r_IN); YR3i = mxGetPr(YR3i_IN); A1r = mxGetPr(A1r_IN); A1i = mxGetPr(A1i_IN); numbits = mxGetPr(numbits_IN); periodos = *numbits; bitsinfoest_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); bitsinfoest = mxGetPr(bitsinfoest_OUT); etapas34(periodos,YR1r,YR1i,YR2r,YR2i,YR3r,YR3i,A1r,A1i,bitsinfoest); } 9.5 FUNCIÓN ‘etpas12me1.cpp’ #include <stdlib.h> #include <math.h> #include "mex.h" #include "matrix.h" #define Yr_IN prhs[0] #define Yi_IN prhs[1] #define gold_IN prhs[2] #define taos_IN prhs[3] #define delT_IN prhs[4] #define Eb_IN prhs[5] #define bitsinfo_IN prhs[6] #define A1r_IN prhs[7] #define A1i_IN prhs[8] #define numbits_IN prhs[9] #define YR1r_OUT plhs[0] #define YR1i_OUT plhs[1] #define YR2r_OUT plhs[2] #define YR2i_OUT plhs[3] #define YR3r_OUT plhs[4] 122 #define YR3i_OUT plhs[5] /*Yr: Vector que contiene la parte real de la salida del canal (entrada)*/ /*Yi: Vector que contiene la parte imaginaria de la salida del canal (entrada)*/ /*gold: Vector secuencia gold con que se transmitieron los bits del usuario 1 (entrada)*/ /*taos: [tao11 tao21 tao31] retardos correspondientes a los caminos 1,2 y 3 (entrada) del usuario 1*/ /*delT: delta tao, representa al error en la sincronización de acuerdo al modelo propuesto (entrada)*/ /*Eb: Energia con que transmitió el usuario x (entrada)*/ /*bitsinfo: Vector que contiene los bits transmitidos por el usuario 1 (entrada)*/ /*A1r : Matriz-numbitsinfox3. Contiene la parte real de los coeficientes de (entrada)desvanecimiento del canal que afectan a cada uno de los bits de la señal transmitida por el usuario 1 (X1)*/ /*A1i : Matriz-numbitsinfox3. Contiene la parte imaginaria de los (entrada)coeficientes de desvanecimiento del canal que afectan a cada uno de los bits de la señal transmitida por el usuario 1 (X1) */ /*numbits : numero de bits de información transmitidos (entrada)*/ /*YR1r: Vector que contiene la parte real de la salida de los correlatores de la rama 1 del (salida)receptor Rake*/ /*YR1i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 1 del (salida) receptor Rake*/ /*YR2r: Vector que contiene la parte real de la salida de los correlatores de la rama 2 del (salida)receptor Rake*/ /*YR2i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 2 del (salida) receptor Rake*/ /*YR3r: Vector que contiene la parte real de la salida de los correlatores de la rama 3 del (salida)receptor Rake*/ /*YR3i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 3 del (salida) receptor Rake*/ void etapas12me1(int periodos, double *delT, double *Eb, double *taos, double *gold, double *Yr, double *Yi, double *bitsinfo, double *A1r, double *A1i, double YR1r[], double YR1i[], double YR2r[], double YR2i[], double YR3r[], double YR3i[]) { int i,j,tao11,tao21,tao31; 123 double comp; tao11 = *taos; tao21 = *(taos+1); tao31 = *(taos+2); for(i=0;i<periodos*127;i++) {j = i/127; comp = (i+1)/127; YR1r[j] = YR1r[j] + *(Yr+i+tao11) * (*(gold+i-j*127)/sqrt(127)); YR1i[j] = YR1i[j] + *(Yi+i+tao11) * (*(gold+i-j*127)/sqrt(127)); YR2r[j] = YR2r[j] + *(Yr+i+tao21) * (*(gold+i-j*127)/sqrt(127)); YR2i[j] = YR2i[j] + *(Yi+i+tao21) * (*(gold+i-j*127)/sqrt(127)); YR3r[j] = YR3r[j] + *(Yr+i+tao31) * (*(gold+i-j*127)/sqrt(127)); YR3i[j] = YR3i[j] + *(Yi+i+tao31) * (*(gold+i-j*127)/sqrt(127)); if(comp == j+1) {YR1r[j] = YR1r[j] - sqrt(*Eb) * *(A1r+j) * *(bitsinfo+j) * *delT; YR1i[j] = YR1i[j] - sqrt(*Eb) * *(A1i+j) * *(bitsinfo+j) * *delT; YR2r[j] = YR2r[j] - sqrt(*Eb) * *(A1r+j+periodos) * *(bitsinfo+j) * *delT; YR2i[j] = YR2i[j] - sqrt(*Eb) * *(A1i+j+periodos) * *(bitsinfo+j) * *delT; YR3r[j] = YR3r[j] - sqrt(*Eb) * *(A1r+j+2*periodos) * *(bitsinfo+j) * *delT; YR3i[j] = YR3i[j] - sqrt(*Eb) * *(A1i+j+2*periodos) * *(bitsinfo+j) * *delT; } } return; } void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { double *Yr, *Yi, *gold, *taos, *delT, *Eb, *bitsinfo, *A1r, *A1i, *numbits; double *YR1r, *YR1i, *YR2r, *YR2i, *YR3r, *YR3i; int periodos; Yr = mxGetPr(Yr_IN); Yi = mxGetPr(Yi_IN); gold = mxGetPr(gold_IN); delT = mxGetPr(delT_IN); taos = mxGetPr(taos_IN); Eb = mxGetPr(Eb_IN); bitsinfo = mxGetPr(bitsinfo_IN); A1r = mxGetPr(A1r_IN); A1i = mxGetPr(A1i_IN); numbits = mxGetPr(numbits_IN); periodos = *numbits; YR1r_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR1i_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR2r_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR2i_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR3r_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR3i_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); YR1r = mxGetPr(YR1r_OUT); 124 YR1i = mxGetPr(YR1i_OUT); YR2r = mxGetPr(YR2r_OUT); YR2i = mxGetPr(YR2i_OUT); YR3r = mxGetPr(YR3r_OUT); YR3i = mxGetPr(YR3i_OUT); etapas12me1(periodos,delT,Eb,taos,gold,Yr,Yi,bitsinfo,A1r,A1i, YR1r,YR1i,YR2r,YR2i,YR3r,YR3i); } 9.6 FUNCIÓN ‘etapas34me.cpp’ #include <stdlib.h> #include <math.h> #include "mex.h" #include "matrix.h" #define YR1r_IN prhs[0] #define YR1i_IN prhs[1] #define YR2r_IN prhs[2] #define YR2i_IN prhs[3] #define YR3r_IN prhs[4] #define YR3i_IN prhs[5] #define A1r_IN prhs[6] #define A1i_IN prhs[7] #define sigdelA_IN prhs[8] #define numbits_IN prhs[9] #define bitsinfoest_OUT plhs[0] /*YR1r: Vector que contiene la parte real de la salida de los correlatores de la rama 1 del (entrada)receptor Rake*/ /*YR1i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 1 del (entrada) receptor Rake*/ /*YR2r: Vector que contiene la parte real de la salida de los correlatores de la rama 2 del (entrada)receptor Rake*/ /*YR2i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 2 del (entrada) receptor Rake*/ /*YR3r: Vector que contiene la parte real de la salida de los correlatores de la rama 3 del (entrada)receptor Rake*/ /*YR3i: Vector que contiene la parte imaginaria de la salida de los correlatores de la rama 3 del (entrada) receptor Rake*/ /*A1r : Matriz-numbitsinfox3. Contiene la parte real de los coeficientes de (entrada)desvanecimiento del canal que afectan a cada uno de los bits de la 125 señal transmitida por el usuario 1 (X1)*/ /*A1i : Matriz-numbitsinfox3. Contiene la parte imaginaria de los (entrada)coeficientes de desvanecimiento del canal que afectan a cada uno de los bits de la señal transmitida por el usuario 1 (X1) */ /*sigdelA:desviacion estándar del error en la estimación de los coeficientes de desvanecimiento (entrada) del canal*/ /*numbits : numero de bits de información transmitidos (entrada)*/ /*bitsinfoest: Vector que contiene el estimado hecho por el receptor Rake (salida) de cada uno de los bits enviados por el usuario 1*/ void etapas34me(int periodos, double sigdelA, double *delA1r1, double *delA1i1, double *delA1r2, double *delA1i2, double *delA1r3, double *delA1i3, double *YR1r, double *YR1i, double *YR2r, double *YR2i, double *YR3r, double *YR3i, double *A1r, double *A1i, double bitsinfoest[]) { int i; double YR1=0; for(i=0;i<periodos;i++) {/*YR1: Variable, para cada bit i almacena la parte real del resultado de multiplicar por el complejo conjugado de los coeficientes de desvanecimiento y después sumar las señales de las ramas :MRC (Maximal Ratio Combinning)*/ /*En este caso el complejo conjugado de los coeficientes de desvanecimiento incluye el error en la estimación*/ errorA(delA1r1,sigdelA); errorA(delA1i1,sigdelA); errorA(delA1r2,sigdelA); errorA(delA1i2,sigdelA); errorA(delA1r3,sigdelA); errorA(delA1i3,sigdelA); YR1 = *(YR1r+i) * (*(A1r+i) + *delA1r1) + *(YR1i+i) * (*(A1i+i) - *delA1i1) + *(YR2r+i) * (*(A1r+i+periodos) + *delA1r2) + *(YR2i+i) * (*(A1i+i+periodos) - *delA1i2) + *(YR3r+i) * (*(A1r+i+2*periodos) + *delA1r3) + *(YR3i+i) * (*(A1i+i+2*periodos) - *delA1i3); /*Con el if se hace la toma de decisión, reemplaza la función sgn()*/ if(YR1<0) bitsinfoest[i] = -1; else bitsinfoest[i] = 1; } mxDestroyArray(delA1r1); mxDestroyArray(delA1i1); 126 mxDestroyArray(delA1r2); mxDestroyArray(delA1i2); mxDestroyArray(delA1r3); mxDestroyArray(delA1i3); return; } void errorA(double *delA1, double sigdelA) {/*Esta funcion genera una variable aleatoria Gaussiana de media cero y desviación estándar igual a sigdelA*/ double U1,U2,V1,V2; double S=2; do{ U1 = rand(); U2 = rand(); U1 = U1 / RAND_MAX; U2 = U2 / RAND_MAX; V1 = 2*U1 - 1; V2 = 2*U2 - 1; S = V1 * V1 + V2 * V2; }while(S>=1); *delA1 = V1 * sqrt((-2*log(S)) / S) * sigdelA; return; } void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { double *numbits, *sigdelA, *YR1r, *YR1i, *YR2r, *YR2i; double *YR3r, *YR3i, *A1r, *A1i; double *bitsinfoest,*delA1r1,*delA1i1,*delA1r2,*delA1i2,*delA1r3,*delA1i3; double desvA; int periodos; YR1r = mxGetPr(YR1r_IN); YR1i = mxGetPr(YR1i_IN); YR2r = mxGetPr(YR2r_IN); YR2i = mxGetPr(YR2i_IN); YR3r = mxGetPr(YR3r_IN); YR3i = mxGetPr(YR3i_IN); A1r = mxGetPr(A1r_IN); A1i = mxGetPr(A1i_IN); sigdelA = mxGetPr(sigdelA_IN); numbits = mxGetPr(numbits_IN); periodos = *numbits; desvA = *sigdelA; bitsinfoest_OUT = mxCreateDoubleMatrix(1,periodos,mxREAL); bitsinfoest = mxGetPr(bitsinfoest_OUT); delA1r1 = mxCreateDoubleScalar(1); delA1i1 = mxCreateDoubleScalar(1); delA1r2 = mxCreateDoubleScalar(1); 127 delA1i2 = mxCreateDoubleScalar(1); delA1r3 = mxCreateDoubleScalar(1); delA1i3 = mxCreateDoubleScalar(1); etapas34me(periodos,desvA,delA1r1,delA1i1,delA1r2,delA1i2,delA1r3,delA1i3 , YR1r,YR1i,YR2r,YR2i,YR3r,YR3i,A1r,A1i,bitsinfoest); } 128