ES2333735T3 - Codigos de ensanchamiento para un sistema de navegacion por saltelite. - Google Patents

Codigos de ensanchamiento para un sistema de navegacion por saltelite. Download PDF

Info

Publication number
ES2333735T3
ES2333735T3 ES05764218T ES05764218T ES2333735T3 ES 2333735 T3 ES2333735 T3 ES 2333735T3 ES 05764218 T ES05764218 T ES 05764218T ES 05764218 T ES05764218 T ES 05764218T ES 2333735 T3 ES2333735 T3 ES 2333735T3
Authority
ES
Spain
Prior art keywords
code
codes
bit patterns
bit
satellite
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES05764218T
Other languages
English (en)
Inventor
Steve Legate
Brian Barnes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agence Spatiale Europeenne
Original Assignee
Agence Spatiale Europeenne
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agence Spatiale Europeenne filed Critical Agence Spatiale Europeenne
Application granted granted Critical
Publication of ES2333735T3 publication Critical patent/ES2333735T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/10Code generation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/02Details of the space or ground control segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2201/00Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
    • H04B2201/69Orthogonal indexing scheme relating to spread spectrum techniques in general
    • H04B2201/707Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation
    • H04B2201/70715Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation with application-specific features

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Radio Relay Systems (AREA)
  • Circuits Of Receivers In General (AREA)
  • Polarising Elements (AREA)
  • Materials For Photolithography (AREA)
  • Ink Jet Recording Methods And Recording Media Thereof (AREA)

Abstract

Método para crear un conjunto de códigos de ensanchamiento secundarios para ser usados en un sistema de navegación por satélite que comprende una constelación de satélites (601), en el que cada satélite de la constelación utiliza un código (611) de ensanchamiento por niveles que comprende por lo menos un código primario y un código secundario, y en el que a cada satélite de la constelación se le asigna un código de ensanchamiento secundario diferente de entre dicho conjunto de códigos de ensanchamiento secundarios, comprendiendo el método: generar (510) un conjunto inicial de patrones de bits, en los que cada patrón de bits representa un código de ensanchamiento secundario potencial; y realizar (525, 535, 545) un proceso de optimización sobre patrones de bits dentro del conjunto inicial de patrones de bits, con lo cual por lo menos algunos de los patrones de bits en dicho conjunto inicial son modificados o sustituidos, para crear un conjunto final de patrones de bits para ser usados como conjunto de códigos de ensanchamiento secundarios, en el que el proceso de optimización utiliza una función de rendimiento o coste obtenida a partir de por lo menos una de entre: (a) la función de autocorrelación para un patrón de bits, y/o (b) la función de correlación cruzada entre patrones de bits diferentes.

Description

Códigos de ensanchamiento para un sistema de navegación por satélite.
Campo de la invención
La presente invención se refiere a la generación y el uso de códigos de ensanchamiento para un sistema de navegación por satélite.
Antecedentes de la invención
Los sistemas de navegación por satélite están resultando cada vez más importantes en una amplia gama de aplicaciones, incluyendo dispositivos de mano para la determinación de la posición, soporte de navegación incorporada al automóvil, y otras. El principal sistema de navegación por satélite en servicio en la actualidad es el sistema de posicionamiento global (GPS) explotado por el Departamento de Defensa de los Estados Unidos. Las ventas en todo el mundo de equipos GPS alcanzaron casi los 3.500 millones de dólares para el 2003, y se espera que esta cifra crezca constantemente durante los siguientes años. Más adelante durante esta década, se ha planificado el lanzamiento y la disponibilidad de servicio de un sistema homólogo europeo de navegación por satélite, denominado Galileo.
Un sistema de navegación por satélite comprende una constelación de satélites que radiodifunden cada uno de ellos una o más señales hacia la tierra. Los componentes básicos de una señal de satélite son un código de ensanchamiento (al que se hace referencia también como código de posicionamiento, sincronización o determinación de la distancia) que se combina con datos de navegación. A continuación, la combinación resultante se modula sobre una portadora a una frecuencia fijada para su transmisión hacia la tierra. En general, cada satélite transmite en múltiples frecuencias, que pueden ayudar a compensar cualquier distorsión atmosférica.
En algunos casos, se pueden modular múltiples señales (a las que se hace referencia como canales) sobre una única portadora a través de algún esquema de multiplexado apropiado. Por ejemplo, se ha planificado que ciertas señales del Galileo comprendan un canal de datos en cuadratura de fase con un canal piloto. El canal piloto contiene solamente un código de ensanchamiento, aunque no datos de navegación, mientras que el canal de datos contiene tanto el código de ensanchamiento como los datos de navegación.
El componente del código de ensanchamiento de una señal de satélite comprende típicamente una secuencia predeterminada de bits (a los que en ocasiones se hace referencia como "segmentos") y se usa para realizar dos tareas principales. En primer lugar, el código de ensanchamiento proporciona un mecanismo de sincronización para permitir que un receptor se enganche a una señal de satélite. De este modo, cada satélite (y típicamente cada canal radiodifundido desde ese satélite) tiene su propio código de sincronización. Cuando un receptor se activa por primera vez, el mismo no sabe qué señales de satélite se pueden recibir, ya que ciertos satélites de la constelación estarán por debajo del horizonte para esa ubicación en particular en ese instante de tiempo en particular. El receptor usa los códigos de sincronización para engancharse a una señal de un primer satélite. Una vez que se ha realizado esto, se puede acceder a los datos de navegación en la señal. A continuación, esto proporciona datos de efemérides para los otros satélites en la constelación, y permite que los satélites restantes que son visibles para el receptor se capten de forma relativamente rápida.
Muchos receptores utilizan un proceso de adquisición de dos fases. En la primera fase, el receptor realiza una correlación cruzada simultánea de la señal entrante con respecto al conjunto de todas las señales posibles. Esto realiza una búsqueda de una señal de cualquier satélite, con cualquier deriva de temporización posible entre el satélite y receptor, y con cualquier desplazamiento Doppler posible entre el satélite y el receptor (lo cual depende del movimiento del satélite en el espacio). Si se halla que una correlación cruzada supera un umbral predeterminado, entonces se realiza una segunda fase que conlleva un análisis más detallado, para la combinación pertinente de satélite, deriva de temporización y desplazamiento Doppler. Este análisis de la segunda fase puede conllevar, por ejemplo, un tiempo de integración mayor, un intento de acceder a y de codificar los datos de navegación, etcétera, para confirmar que se ha realizado una adquisición correcta.
La segunda tarea principal de un código de ensanchamiento es proporcionar una estimación de la distancia desde el satélite al receptor, basándose en el tiempo que ha tardado la señal en viajar desde el satélite al receptor, el cual se puede expresar como: c(Tr-Ts), en la que:
c es la velocidad de la luz (conocida, sujeta a efectos ionosféricos, etcétera),
Ts es el tiempo de envío desde el satélite, el cual está codificado en la propia señal, y
Tr es el tiempo de recepción de la señal en el receptor.
A continuación, se puede determinar la posición del receptor en el espacio tridimensional usando un proceso de trilateración, dadas las posiciones conocidas de los satélites (según se especifica en sus datos de navegación). En teoría, esto se puede realizar con información de señales de un mínimo de tres satélites. No obstante, en la práctica, se puede decir que Tr = Tm+o, en la que Tm es el tiempo medido de recepción en el receptor, y o es la deriva entre el reloj del receptor y el reloj del satélite, la cual es en general desconocida, excepto para receptores especializados. Esto implica entonces que se obtiene información de señal de por lo menos un satélite adicional para compensar la deriva de tiempo desconocida en el receptor. Si hay disponibles señales de otros satélites, se puede realizar una determinación estadística de la posición usando cualquier algoritmo apropiado tal como el de los mínimos cuadrados. Esto puede proporcionar además alguna indicación del error asociado a una posición estimada.
Un parámetro importante para el código de ensanchamiento es la velocidad de bits a la que se transmite el código de ensanchamiento, ya que esto, a su vez, controla la precisión con la que se puede realizar la determinación posicional. Por ejemplo, con una velocidad de bits de 1 MHz, cada bit representa un tiempo de desplazamiento de la luz de 300 metros. La precisión del posicionamiento se determina entonces por el nivel de precisión con el que se puede valorar la deriva de fase entre el satélite y el receptor, para un único bit. Esto en general depende del ruido en el sistema. Por ejemplo, si la deriva de fase se puede medir a una precisión de 90 grados (\pi/2), esto se corresponde con una determinación posicional de 75 metros. Se apreciará que el disponer de una velocidad mayor de bits para el código de ensanchamiento permite la realización de determinaciones más precisas de la posición.
Otro parámetro importante para el código de ensanchamiento es su longitud total, en otras palabras, el número de bits o segmentos en el código de ensanchamiento antes de que se repita. Una razón de esto es que la longitud finita del código de ensanchamiento puede dar como resultado una ambigüedad en la determinación de la posición. Por ejemplo, supóngase que la velocidad de bits es 10 MHz y la longitud total de la secuencia de bits es 256 bits, lo cual se corresponde por lo tanto con un tiempo de desplazamiento de la luz de 7,68 km. Como resultado, la medición de la distancia desde el satélite al receptor no está especificada de forma exclusiva, sino que, por el contrario, únicamente se puede expresar como 7,68n + d km, en la que d se determina por la temporización relativa del código de ensanchamiento según haya sido radiodifundido y según haya sido recibido, pero n es un entero no conocido. Existen varias formas con las que se puede resolver la ambigüedad en cuanto al valor de n, incluyendo el uso de señales de un número mayor de satélites, o usando el conocimiento de una posición aproximada obtenida a partir de alguna otra fuente. Un planteamiento común es relacionar la fase del código con el borde de bit correspondiente al bit de datos de navegación (a este proceso se le denomina sincronización de bits), y también relacionar el borde de bit con el tiempo de la semana (ToW) contenida en los datos de navegación transmitidos por el satélite.
Se apreciará que el incremento de la longitud de repetición para el código de ensanchamiento ayuda a reducir problemas con determinaciones ambiguas de la distancia. Una mayor longitud para el código de ensanchamiento proporciona además una mejor separación de señales de fuentes diferentes, y un aumento de la robustez contra interferencias. Por otro lado, el disponer de una mayor longitud de repetición para el código de ensanchamiento puede retardar la adquisición inicial de la señal, así como requerir más capacidad de procesado dentro del receptor. La longitud del código de ensanchamiento influye también en la velocidad de datos que se puede usar para los datos de navegación, ya que normalmente hay solo un bit de datos de navegación para cada secuencia completa de código de ensanchamiento (si no, los dos interferirían). Por lo tanto, cuando mayor sea la longitud de repetición para el código de ensanchamiento, menor será la velocidad de bits para los datos de navegación.
Una estrategia conocida para contrarrestar este problema es el uso de un código de ensanchamiento jerárquico o por niveles basado en códigos primarios y secundarios. Si se supone que el código primario tiene N1 bits y el código secundario tiene N2 bits, entonces los primeros N1 bits del código de ensanchamiento total se corresponden con la secuencia primaria combinada mediante una operación O exclusiva con el primer bit del código secundario, los siguientes N1 bits del código de ensanchamiento comprenden una repetición de los N1 del código primario, esta vez combinados mediante una operación O exclusiva con el segundo bit del código secundario, y así sucesivamente. Esto proporciona una longitud de repetición total para el código de N1xN2. No obstante, la longitud de repetición a efectos de sincronización es solamente N1, ya que el código primario seguirá proporcionando un pico de correlación con independencia del valor del bit de código secundario (este únicamente cambiará el signo del pico de correlación). De modo similar, la velocidad de bits de los datos de navegación depende únicamente de la longitud del código primario (N1), en lugar de la longitud de los códigos primario y secundario combinados (N1*N2).
Los códigos de ensanchamiento GPS se implementan usando registros de desplazamiento con realimentación lineal (LFSR), en los que salidas seleccionadas de un registro de desplazamiento de N fases se derivan y realimentan hacia la entrada. Las conexiones de realimentación en el LFSR se pueden representar como un polinomio de orden N, con lo cual el funcionamiento de un LFSR se puede especificar completamente mediante su polinomio y el ajuste inicial del LFSR.
El GPS usa un subconjunto de LFSR conocidos como códigos Gold que tienen ciertas propiedades matemáticas especiales. Una de ellas es que generan una salida de ruido pseudoaleatorio que tiene una longitud de repetición máxima de 2^{N} -1, de manera que un LFSR relativamente compacto puede generar una salida con una longitud de repetición elevada. Los códigos Gold tienen además unas buenas propiedades de autocorrelación que soportan un posicionamiento preciso. En particular, la función de autocorrelación tiene un pico bien definido en el desplazamiento de tiempo cero, y es relativamente pequeña para la totalidad del resto de desplazamientos de tiempo (es decir, diferentes de cero). También es posible seleccionar un conjunto de códigos Gold que tengan buenas propiedades de correlación cruzada, con lo cual la función de correlación cruzada entre códigos diferentes se mantiene a un valor relativamente pequeño. Esto es importante para la adquisición de señales, ya que ayuda a evitar que un código de sincronización de un satélite se tome accidentalmente por un código de sincronización de otro satélite. Otro criterio práctico importante para un código de ensanchamiento es el disponer de números iguales (o casi iguales) de unos y ceros - a esto se le hace referencia como equilibrado.
Se puede hallar información adicional sobre sistemas de navegación por satélite, y en particular sobre el GPS, en: "ReTooling the Global Positioning System" de Per Enge, páginas 64 a 71, Scientific American, mayo de 2004, y en "Global Positioning System: Signals, Measurements and Performance", de Misra y Enge, Ganga-Jamuna Press, 2001, ISBN 0-9709544-0-9. Se puede hallar información sobre las señales propuestas del Galileo en: "Status of Galileo Frequency and Signal Design" de Hein et al, septiembre de 2002, disponible en: http://europa.eu.int/comm/dgs/energy_
transport/galileo/doc/galileo_stf_ion2002.pdf, véase también "Galileo Frequency and Signal Design" de Issler et al, GPS World, junio de 2003, disponible en: http://www.gpsworld.com/gpsworld/article/articleDetail.jsp?id=61244. Se describe un receptor Galileo/GPS propuesto en: "HIGAPS - A Large-Scale Integrated Combined Galileo/GPS Chipset for the Consumer Market" de Heinrichs et al, disponible en http://forschung.unibw-muenchen.de/papers/krc5ejjffurjj9
jsrxk4spthvmg0be.pdf.
Aunque el uso de códigos Gold está bien establecido para sistemas existentes de navegación por satélite, existen algunas limitaciones asociadas a dichos códigos. Por ejemplo, los mismos están solamente disponibles con ciertas longitudes de código (no todos los valores de N se pueden usar para el polinomio del LFSR). En general, la longitud del código se determina por la relación de la velocidad de segmentos del código de ensanchamiento y la velocidad de bits de los datos de navegación. Si la longitud del código está limitada a un código Gold disponible, entonces esto implica una restricción sobre la velocidad de segmentos y la velocidad de bits, lo cual, a su vez, podría influir en otras consideraciones, tales como el tiempo de adquisición y la precisión de posicionamiento. En algunos casos, la limitación sobre la longitud del código para códigos Gold se ha superado usando códigos Gold truncados, aunque este truncamiento tiene un impacto negativo sobre las propiedades matemáticas del conjunto de códigos (en términos de la función de autocorrelación, etcétera).
Adicionalmente, las propiedades de correlación cruzada de códigos Gold no están en general optimizadas para la situación en la que la polaridad del código cambia de una repetición del código a la siguiente, según los datos de navegación que se estén transmitiendo. Este último problema se agrava cuando la velocidad de bits de los datos de navegación es relativamente alta (como para el Galileo), ya que esto deriva en una probabilidad significativa de que una transmisión de un código de ensanchamiento tenga la polaridad opuesta con respecto a la transmisión inmediatamente precedente del código de ensanchamiento. (Esta es también la razón por la que se proporcionan canales piloto en el Galileo, con el fin de facilitar la adquisición sin interrupciones por los datos de navegación).
Las propiedades de correlación cruzada resultan también particularmente interesantes en relación con ubicaciones que presenten una recepción relativamente deficiente de la señal, tal como en el interior de un edificio. En este caso, una primera señal de un satélite puede ser fuerte, por ejemplo, si existe una línea de visión directa hacia el satélite a través de una ventana, mientras que una segunda señal de otro satélite puede ser sustancialmente más débil, por ejemplo, si la línea de visión directa hacia el segundo satélite pasa a través de una estructura significativa del edificio. En esta situación, si se realiza un intento de captar el segundo satélite, existe un riesgo de que la correlación con respecto a la primera señal, más fuerte aunque incorrecta, pueda producir un resultado mayor (o similar) que la correlación con respecto a la segunda señal, más débil pero correcta. Aunque cualquier identificación errónea resultante de la primera señal como segunda señal será corregida normalmente de forma posterior en una fase subsiguiente de adquisición, esto introduce retardos, ya que entonces el procedimiento de adquisición debe volver a la primera fase. Si existen múltiples identificaciones erróneas de este tipo, el tiempo de adquisición se puede incrementar significativamente.
Sumario de la invención
Por consiguiente, una forma de realización de la invención proporciona un método de creación de un conjunto de códigos de ensanchamiento secundarios para ser usados en un sistema de navegación por satélite que comprende una constelación de satélites. Cada satélite de la constelación utiliza un código de ensanchamiento por niveles que comprende por lo menos un código primario y un código secundario. A cada satélite de la constelación se le asigna un código de ensanchamiento secundario diferente de entre el conjunto de códigos de ensanchamiento secundarios. El método comprende la generación de un conjunto inicial de patrones de bits, en los que cada patrón de bits representa un código de ensanchamiento secundario potencial. El método comprende además la realización de un proceso de optimización sobre patrones de bits dentro del conjunto inicial de patrones de bits de manera que por lo menos algunos de los patrones de bits en el conjunto inicial sean modificados o sustituidos, creando de este modo un conjunto final de patrones de bits para ser usados como conjunto de códigos de ensanchamiento secundarios. El proceso de optimización utiliza una función de rendimiento o coste obtenida a partir de por lo menos una de entre: (a) la función de autocorrelación para un patrón de bits, y/o (b) la función de correlación cruzada entre patrones de bits diferentes.
Se ha observado que la provisión de códigos secundarios diferentes para satélites diferentes reduce la correlación entre los códigos de los satélites diferentes, y por lo tanto ayuda a mejorar el rendimiento del receptor. El uso de un proceso de optimización para determinar el conjunto de códigos secundarios ofrece más flexibilidad que conjuntos de códigos basados en algoritmos matemáticos (tales como códigos Gold), por ejemplo, en términos de la longitud del código secundario, el número de códigos disponibles en un conjunto, y las propiedades particulares de los códigos.
En una forma de realización, los patrones de bits en el conjunto inicial de patrones de bits comprenden secuencias aleatorias de bits, aunque se pueden usar cualesquiera otros patrones de partida adecuados, por ejemplo, generados por registros de desplazamiento con realimentación lineal o algún otro algoritmo pseudoaleatorio. Debe observarse que el uso de patrones de bits iniciales creados aleatoriamente ayuda en general a garantizar una buena cobertura del espacio de búsqueda global para códigos secundarios potenciales. Durante el proceso de optimización, los patrones de bits se pueden modificar invirtiendo aleatoriamente un bit en por lo menos uno de los patrones de bits. Para códigos secundarios más largos, puede que resulte deseable invertir múltiples bits durante por lo menos la parte inicial del proceso de optimización para acelerar la convergencia, aunque como los códigos secundarios son de forma habitual relativamente cortos (en comparación con la longitud global de un código por niveles), se ha observado en general que la inversión de solamente un único bit del código para cada iteración proporciona una velocidad de convergencia razonable. Las modificaciones de los bits se pueden revertir si se halla que las mismas conducen a una reducción del rendimiento (garantizando de este modo que el conjunto de patrones de bits no se deteriora), aunque dicha reducción del rendimiento se puede aceptar en términos probabilísticos (especialmente si la reducción no es demasiado grande), para proporcionar a la optimización la capacidad de escapar de máximos locales.
Se apreciará que existe una amplia variedad de estrategias de optimización conocidas, tales como el recocido simulado, algoritmos genéticos, y otros, y se puede utilizar cualquiera de estas estrategias adecuadas para crear el conjunto final de patrones de bits. En algunas de estas estrategias, la optimización puede implicar la generación de una mayor población de patrones de bits seguida por la selección de los mejores ejemplos (por ejemplo, la supervivencia del más apto), mientras que otras estrategias se pueden basar en la modificación continua de patrones de bits individuales dentro de un conjunto predeterminado.
En una forma de realización, el proceso de optimización incluye el rechazo de patrones de bits que no cumplen un criterio de equilibrio, garantizando de este modo que exista un componente DC relativamente pequeño en los códigos. El criterio de equilibrio se puede basar en la raíz cuadrada del número de bits en un patrón de bits, lo cual refleja el componente DC esperado para un código aleatorio. Debe observarse que, en otras formas de realización, el equilibrio del código se podría incluir como parte de la optimización formal - es decir, la optimización funciona para reducir el equilibrio, en lugar de simplemente rechazar patrones de bits con un equilibrio que sea mayor que un umbral determinado. Otra posibilidad es que, una vez que se hayan identificado patrones de bits que tengan unas buenas propiedades de equilibrio, entonces el proceso de optimización se dispone para dejar invariable el equilibrio (por ejemplo, seleccionando la inversión de pares de bits, que sean uno un 0 y otro un 1). Otros criterios de códigos que se podrían considerar de una manera similar para el equilibrado incluyen la longitud máxima de las series de un valor de bit en particular (o bien uno y/o bien cero).
El proceso de optimización puede utilizar una función de rendimiento (o coste) obtenida a partir de la función de autocorrelación para un patrón de bits con el fin de seleccionar patrones de bits que tengan buenas propiedades individuales. A continuación, se puede usar una función de rendimiento o coste obtenida a partir de la función de correlación cruzada para seleccionar un grupo de patrones de bits que, en combinación, formen un buen conjunto de códigos. Se apreciará que unos lóbulos laterales mínimos en la función de autocorrelación derivan en unas mejores propiedades de adquisición, por ejemplo, la señal se puede adquirir más fácilmente bajo unas condiciones de recepción deficientes, tales como en interiores y bajo un follaje arbóreo, mientras que una correlación cruzada mínima con otros códigos reduce la interferencia de múltiple acceso y el ruido interno del sistema, incrementando de este modo la robustez de la adquisición de señales, el seguimiento, y la demodulación de datos.
El proceso de optimización puede incluir una primera fase de identificación de patrones de bits que tengan buenas propiedades individuales, y una segunda fase de selección del conjunto de códigos de ensanchamiento secundarios a partir de los patrones de bits identificados que tienen buenas propiedades individuales. El número de patrones de bits identificados como poseedores de unas buenas propiedades individuales puede ser significativamente mayor que el número de satélites de la constelación. Por ejemplo, la primera fase puede identificar un grupo de 250 O más patrones de bits que tienen buenas propiedades individuales. A continuación, dicho grupo proporciona una buena gama dónde elegir durante la segunda fase de la optimización, así como usos potenciales favorables de los códigos fuera de la propia constelación de satélites - por ejemplo, en pseudolites (pseudosatélites), tal como se describe de forma más detallada posteriormente, lo cual puede derivar en un requisito de un número mayor de códigos potenciales.
Se ha observado que el uso de la primera y segunda fases para la optimización resulta ser un planteamiento conveniente y eficaz para realizar la optimización. No obstante, otras formas de realización podrían únicamente usar una sola fase de optimización que se realice directamente sobre grupos de patrones de bits.
En una forma de realización, la segunda fase incluye el cálculo de la función de correlación cruzada entre cada par de patrones de bits identificados que tengan unas buenas propiedades individuales. Se ha observado que esta búsqueda exhaustiva de todas las combinaciones posibles es más eficaz computacionalmente que una búsqueda iterativa de conjuntos potenciales de patrones de bits, aunque este último planteamiento se podría usar si resultase apropiado (por ejemplo, si el número de patrones de bits identificados es muy grande).
En una forma de realización, el número de bits en un patrón de bits para un código secundario está comprendido en el intervalo de entre 25 y 512, más particularmente, en el intervalo de entre 50 y 128. Debe observarse que, para longitudes de códigos secundarios muy cortos, se puede buscar exhaustivamente en el espacio de códigos disponibles para determinar un conjunto adecuado de patrones de bits (en lugar de usar una forma de procedimiento de optimización tal como se describe en la presente memoria).
Otra forma de realización de la invención proporciona un receptor que incorpora un conjunto final de patrones de bits creados usando el método anterior. Los patrones de bits en el receptor se pueden proteger mediante un código de corrección de errores. El receptor puede tener por lo menos una memoria de solo lectura (ROM) que almacene las partes de código secundario de los códigos de ensanchamiento por niveles, y opcionalmente también las partes de código primario. En algunos receptores, puede que resulte posible actualizar esta ROM, por ejemplo, para reflejar cualquier cambio sobre los códigos de ensanchamiento emitidos desde los satélites.
En algunas formas de realización, el receptor puede incorporar patrones de bits para por lo menos dos constelaciones de satélites, por ejemplo, el Galileo y el GPS. Debe observarse que los códigos de ensanchamiento GPS son códigos Gold, y se generan normalmente dentro de un receptor usando un registro de desplazamiento con realimentación lineal. No obstante, los códigos GPS se podrían almacenar como patrones de bits completos si se desea disponer de un único planteamiento consistente para ser usado para múltiples sistemas de navegación por satélite.
Debe observarse que existen varias formas según las cuales se pueden proporcionar los patrones de bits al receptor. Por ejemplo, en algunas formas de realización, los patrones de bits se pueden preinstalar en el receptor. En algunas formas de realización, los patrones de bits se pueden instalar (o actualizar) en el receptor a través de alguna forma de dispositivo de memoria extraíble, tal como una memoria flash. En algunas formas de realización, los patrones de bits se pueden instalar (o actualizar) en el receptor a través de una red, por ejemplo, mediante descarga a través de Internet o a través de una red de telefonía móvil (esta última opción resulta particularmente conveniente si el propio receptor está incorporado en alguna forma de dispositivo de telefonía móvil). Con este último planteamiento, no se requiere almacenar necesariamente los códigos en el propio receptor, sino que, en su lugar, simplemente se puede acceder a los mismos tal como, y cuando, se requiera a través de la red.
Por consiguiente, otra forma de realización de la invención proporciona un método de funcionamiento de un servidor que se comunica con receptores para ser usado conjuntamente con un sistema de navegación por satélite. El método comprende el almacenamiento de un conjunto de patrones de bits correspondientes a códigos secundarios usados por el sistema de navegación por satélite, y, en respuesta a una solicitud recibida de un receptor para acceder al conjunto de patrones de bits almacenados, el suministro de los patrones de bits almacenados al receptor para ser usados en la adquisición de señales del sistema de navegación por satélite. Los patrones de bits se pueden suministrar a través de la red telefónica, Internet, o cualquier otra red adecuada.
Otra forma de realización de la invención proporciona un satélite que incorpora uno o más patrones de bits de un conjunto final de patrones de bits creados usando un método tal como se descrito anteriormente. Uno o más de estos patrones de bits también se pueden incorporar en un pseudolite. (Un pseudolite genera una señal de posicionamiento análoga a la de un satélite de navegación, aunque un pseudolite está situado en tierra, y típicamente se utiliza en ubicaciones en las que se requiere una precisión elevada, por ejemplo, alrededor de aeropuertos, para potenciar las señales de posicionamiento de satélites).
El planteamiento descrito en la presente memoria permite retardar una decisión sobre la forma final de los códigos de ensanchamiento secundarios hasta una fase muy avanzada de desarrollo del sistema, ya que el hardware (por ejemplo, un dispositivo de memoria) no necesita ser específico para un código determinado (a diferencia de un LFSR particular). Además, puede resultar posible actualizar los patrones de bits almacenados en un satélite ya en órbita. Dicha actualización se puede realizar en respuesta a un error detectado en el patrón de bits almacenado (tal vez inducido por un rayo cósmico), así como resultar útil para pruebas de códigos en órbita durante la última fase de implementación o puesta en servicio. El servicio de actualización resulta también beneficioso en el caso de que resulte deseable transmitir un código diferente con respecto al planificado originalmente, por ejemplo, debido a interferencias con otros servicios, o debido a la reasignación de ciertos intervalos. En tales circunstancias, en general se requerirá realizar una actualización correspondiente en los receptores, aunque otra razón de la actualización puede ser el limitar el conjunto de usuarios que pueden acceder al código de ensanchamiento del satélite (por razones o bien comerciales o bien de seguridad).
Debe observarse que aunque el planteamiento descrito en la presente memoria está destinado principalmente a ser usado en sistemas de navegación por satélite (incluyendo pseudolites), también se podría utilizar en otros sistemas de navegación o comunicaciones (satélite, terrestre o marítimo) que hayan usado previamente LFSR para generar códigos de sintonización y similares.
Breve descripción de los dibujos
A continuación se describirán detalladamente varias formas de realización de la invención únicamente a título de ejemplo haciendo referencia a los siguientes dibujos:
la Figura 1A muestra el rendimiento simulado de la función de correlación cruzada (CCF) entre los dos primeros códigos de ensanchamiento por niveles que comparten un código secundario común para las señales piloto E5A-Q del Galileo propuestas originalmente;
la Figura 1B muestra el rendimiento simulado de la función de correlación cruzada entre los dos primeros códigos de ensanchamiento por niveles que comparten un código secundario común para las señales piloto E5B-Q del Galileo originalmente propuestas;
la Figura 2 muestra el rendimiento simulado de la función de correlación cruzada (CCF) entre los dos primeros códigos de ensanchamiento por niveles que comparten un código secundario común para las señales piloto E5A-Q del Galileo con una deriva de frecuencia Doppler de 10 Hz;
la Figura 3A muestra el rendimiento simulado de la función de correlación cruzada (CCF) usando códigos secundarios diferentes para las señales piloto E5A-Q del Galileo según una forma de realización de la invención;
la Figura 3B muestra el rendimiento simulado de la función de correlación cruzada (CCF) usando códigos secundarios diferentes para las señales piloto E5B-Q del Galileo según una forma de realización de la invención;
la Figura 3C muestra el rendimiento simulado de la función de correlación cruzada (CCF) usando códigos secundarios diferentes para las señales piloto E5A-Q del Galileo según una forma de realización de la invención, con la inclusión de una deriva de frecuencia (Doppler) de 10 Hz;
la Figura 4 es un diagrama de flujo de alto nivel que muestra un método para generar códigos de ensanchamiento secundarios según una forma de realización de la invención;
la Figura 5 es un diagrama de flujo que muestra parte del método de la Figura 4 más detalladamente según una forma de realización de la invención;
la Figura 6A es una representación del rendimiento de la CCF para un grupo de 50 miembros de códigos secundarios para un desplazamiento Doppler cero generado según una forma de realización de la invención;
la Figura 6B es una representación del rendimiento de la CCF para el mismo grupo de 50 miembros de códigos secundarios generados según una forma de realización de la invención tal como se muestra en la Figura 6A, aunque promediados sobre un intervalo de desplazamientos Doppler;
la Figura 7 es un diagrama esquemático de alto nivel de un subsistema para generar un código por niveles según una forma de realización de la invención;
la Figura 8A es un diagrama esquemático de alto nivel de un sistema de satélites según una forma de realización de la invención; y
la Figura 8B es un diagrama esquemático de alto nivel de un sistema de receptor según una forma de realización de la invención.
Descripción detallada
En la presente descripción se usan las siguientes abreviaturas:
ACF
Función de Autocorrelación
BPSK
Modulación por Desplazamiento Binario de Fase
CCF
Función de Correlación Cruzada
CRC
Código de Redundancia Cíclica
CS
Servicio Comercial
CT
Interferencia Cruzada
DC
Corriente Continua (componente de frecuencia cero)
ECC
Código de Corrección de Errores
ELW
Ponderación de la Línea en Exceso (Excess Line Weight)
HNV
Valor Vecino más Alto
LFSR
Registro de Desplazamiento con Realimentación Lineal
MEWSD
Media de la Distancia de Welch al Cuadrado en Exceso (Mean Excess Welch Square Distance)
MP
Multitrayecto
NV
Valor Vecino
PROM
Memoria de Solo Lectura Programable
PSK
Modulación por Desplazamiento de Fase
RMS
Raíz Cuadrática Media
ROM
Memoria de Solo Lectura.
\vskip1.000000\baselineskip
Debe observarse también que, en esta descripción, por comodidad, se definen secuencias de código en el formato de niveles lógicos (0 y 1); en la práctica, estas secuencias de códigos se traducen en niveles de señales bipolares (\pm 1) con fines relacionados con la modulación y correlaciones. En la Tabla 1 se muestra el establecimiento de correspondencias entre los niveles lógicos del código de ensanchamiento y los niveles correspondientes de la señal según una forma de realización de la invención.
TABLA 1 Establecimiento de correspondencias entre la lógica del código y niveles de la señal
1
La Tabla 2 resume los parámetros principales propuestos del código de determinación de la distancia para cada componente de la señal Galileo para varios servicios (OS = servicio abierto, CS = servicio cerrado, SoL = servicio de seguridad de la vida humana). Esta tabla excluye los códigos de ensanchamiento del servicio regulado público (PRS) que usan secuencias pseudoaleatorias generadas criptográficamente.
TABLA 2 Resumen de códigos de ensanchamiento del Galileo
2
Las longitudes propuestas de las secuencias de códigos de ensanchamiento del Galileo y el método de construcción tienen en cuenta varios parámetros de la señal y requisitos relacionados con el rendimiento. Para todos los códigos de la señal mostrados anteriormente, las longitudes de las secuencias totales se han seleccionado de manera que sean igual a un periodo de símbolo para las señales de datos ó 100 ms para las señales piloto. Por razones de compatibilidad con el GPS, las velocidades de los segmentos son todas ellas múltiplos de 1,023 MHz. Tal como puede observarse, la mayoría de los códigos usa un planteamiento por niveles con lo cual un código primario se repite para lograr la longitud de secuencia de código global requerida, que es igual al producto de las longitudes de código primario y secundario. El planteamiento del código por niveles simplifica la generación de códigos de ensanchamiento largos y permite que un receptor adquiera las señales simplemente usando las secuencias de códigos primarios, en caso de que fuera necesario, para minimizar tiempos de adquisición.
Debe observarse que en este momento se ha adoptado una longitud de código primario menor de 5115 para el código piloto del servicio comercial (CS) en E6 de manera que se corresponda con la del código de ensanchamiento de datos correspondiente, lo cual resultaría beneficioso cuando las señales tanto de datos como piloto se combinen con fines relacionados con la adquisición. Como consecuencia, la longitud del código secundario del 50 bits tal como se ha propuesto previamente se incrementaría a 100 bits. Por lo tanto, las familias de códigos secundarios de 50 bits descritas posteriormente puede que ya no sean necesarias para la señal Galileo actualmente propuesta en E6-C, la cual, en cambio, podría hacer uso de los mismos códigos de 100 bits que los desarrollados para las señales piloto E5 (y tal como se describe de forma más detallada posteriormente).
Cada satélite de Galileo usa un código primario independiente para cada componente de señal con el fin de proporcionar un funcionamiento CDMA básico. Los códigos primarios propuestos para las señales E5 se basan en una familia de códigos Gold que se generan a partir del producto de un par de LFSR (Registros de Desplazamiento con Realimentación Lineal), mientras que los códigos propuestos actualmente para E6-B&C y L1-B&C usan una familia de códigos primarios basados en la optimización activa de códigos aleatorios, según se describe en la solicitud PCT/EP2004/014488.
La Tabla 3 enumera los códigos secundarios propuestos previamente para el sistema Galileo, en el que el código secundario indicado se usaría como código secundario común para todos los miembros de la familia de códigos primarios correspondientes. (Debe observarse que únicamente algunos de los códigos se han asignado a señales Galileo particulares, tal como se indica en la Tabla 3; adicionalmente, la Tabla 3 no refleja el cambio del código secundario de la señal E6-C desde 50 bits a 100 bits).
\vskip1.000000\baselineskip
TABLA 3 Resumen de los códigos secundarios originales de base del Galileo
3
La Figura 1A muestra el rendimiento simulado de la función de correlación cruzada (CCF) entre los dos primeros códigos de ensanchamiento por niveles para las señales piloto E5, considerando que los códigos de las señales E5A-Q comparten todos ellos el mismo código secundario de 100 segmentos CS_{100b}. Los códigos primarios tienen todos ellos una longitud de 10.230 segmentos de modo que la longitud global de los códigos por niveles es 1.023.000 segmentos (100 ms). La Figura 1B muestra resultados similares de la CCF para los dos primeros códigos de las señales piloto E5B-Q, que comparten el mismo código secundario CS_{100d}. En estas simulaciones no se ha incluido ninguna deriva Doppler (es decir, las representaciones gráficas se han calculado para una deriva de frecuencia Doppler cero entre los dos códigos de ensanchamiento recibidos).
Tal como puede observarse, el rendimiento de la CCF es en general muy bueno (<- 50 dB) con respecto al pico máximo de la ACF. No obstante, el uso de un código secundario común produce un rendimiento mucho más deficiente de la CCF (\sim-30 dB) para derivas de código de hasta \pm 0,01 x longitud de la secuencia (= \pm 10.230 segmentos \equiv \pm 1 ms). Esto se corresponde con la zona en la que los códigos secundarios están alineados y, por lo tanto, el rendimiento de la CCF se limita al proporcionado justamente por los códigos primarios. Debe observarse que, en la práctica, se espera que las derivas de tiempo entre satélites estén situadas en el intervalo de aproximadamente \pm 20 ms (debidos a retardos en la propagación). Por lo tanto, aunque el intervalo completo de derivas de la CCF mostrado en las Figuras 2A y 2B no se debería producir en la práctica, esto no excluye las zonas con los picos altos de la CCF.
Un posible planteamiento para intentar eliminar los picos altos de la CCF podría ser derivar de forma deliberada el código secundario común en el tiempo entre satélites diferentes. No obstante, esto requeriría desplazamientos de tiempo de la secuencia del código de 40 ms entre los diferentes satélites, y como la longitud máxima del código por niveles es 100 ms (para señales piloto) entonces únicamente se puede reutilizar dos veces cada código. Incluso si además se permite usar los mismos códigos para satélites de las antípodas, esto sigue siendo solamente suficiente para un total de 4 satélites y no los 30 incluidos en la constelación del Galileo.
\newpage
Otro planteamiento posible sería incrementar adicionalmente las longitudes de los códigos piloto. No obstante, esta opción no se considera atractiva, debido a los tiempos largos de integración requeridos y al impacto correspondiente sobre el diseño del receptor.
Las secuencias largas de códigos piloto de 100 ms son sensibles a derivas Doppler. De hecho, una deriva Doppler de solamente 10 Hz introduce un ciclo completo de desplazamiento de fase sobre una secuencia con respecto a la otra, provocando de este modo la inversión de la mitad de la secuencia. Esto cambia completamente la CCF tal como puede verse en la Figura 2, que muestra la CCF para los códigos piloto E5A-Q usando un código secundario común con una deriva de frecuencia Doppler de 10 Hz. El efecto de la deriva Doppler de 10 Hz sobre estas señales piloto E5A reduce los niveles de la CCF del peor caso desde -30 a -42 dB con respecto al nivel máximo correspondiente de la ACF para un único código. La distribución de desplazamientos de frecuencia Doppler entre pares de satélites es aproximadamente lineal hasta el valor máximo de 6,7 kHz para la constelación propuesta de satélites del Galileo.
La velocidad de segmentos efectiva de los códigos secundarios depende de las velocidades de repetición de los códigos primarios correspondientes. Como los códigos secundarios considerados en la Figura 2 se usan para los componentes de las señales piloto de 100 ms, la velocidad de segmentos efectiva es simplemente Nx10 Hz, en la que N es la longitud del código secundario, correspondiente a 500 Hz y 1.000 Hz para los códigos secundarios de 50 bits y 100 bits respectivamente. Cuando la deriva de frecuencia Doppler es igual a estas velocidades de segmentos efectivas, entonces el cambio de fase por segmento de código secundario resulta 2\pi, después de lo cual se repite el efecto Doppler. Debe observarse que esta condición no se aplica para los códigos primarios subyacentes y, por lo tanto, no se observará una repetición de la CCF del código por niveles total en estos intervalos de frecuencia.
Por lo tanto, a efectos del seguimiento, la probabilidad combinada de que otros satélites presenten tanto un desplazamiento Doppler relativo por debajo de 10 Hz como un error de temporización relativo menor que 1 ms es bastante pequeña. Como consecuencia, se reduce significativamente el impacto global de los picos máximos de la CCF de -30 dB. (Debe observarse que para los códigos secundarios más cortos de 50 bits, la zona del error de tiempo pertinente se incrementa hasta 2 ms, aunque el impacto sigue resultando bastante bajo).
Sin embargo, durante los modos de adquisición iniciales, cuando se debe buscar en un intervalo amplio de desplazamientos de frecuencia y tiempo, es probable que los picos secundarios relativamente altos de la CCF por el uso de códigos secundarios comunes provoquen detecciones falsas no deseables. Esto puede reducir el rendimiento bajo condiciones de adquisición difíciles, tales como para aplicaciones en interiores, en las que se pueden esperar grandes variaciones entre los niveles de las señales de los satélites.
La Figura 3A muestra cómo se puede mejorar el rendimiento de la CCF usando códigos secundarios diferentes para cada código primario. En la Figura 3A, el código por niveles para el código E5A-Q 1 se ha modificado para usar el código secundario CS_{100a} y la CCF se ha vuelto a calcular. No se incluye ninguna deriva de frecuencia Doppler. Tal como puede observarse, los lóbulos laterales de la CCF del peor caso se han reducido a menos de -42 dB, lo cual es una mejora de 12 dB bajo esta condición de Doppler cero.
Como confirmación, la Figura 3B muestra la CCF para los códigos piloto E5B-Q 1 y 2 en los que el código secundario para el código por niveles 1 se ha cambiado a CS_{100c}. Nuevamente, los lóbulos laterales de la CCF del peor caso se han reducido a aproximadamente -42 dB, que es igual a lo mostrado previamente para los códigos piloto E5A cuando se usan códigos secundarios diferentes.
La Figura 3C representa la CCF para las dos señales piloto E5A usando códigos secundarios diferentes, aunque esta vez con una deriva de frecuencia Doppler de 10 Hz. Esto muestra un rendimiento de la CCF ligeramente degradado en comparación con la Figura 3A, con un pico del peor caso de -40 dB.
Para usar diferentes códigos secundarios para satélites diferentes, se deben hallar suficientes miembros del código de cualidad adecuada para ser usados con el código primario de cada satélite. Para un código de N bits existe un total de 2^{N} combinaciones de códigos posibles, aunque solamente un número limitado de las mismas tendrá propiedades de código independientes. Por ejemplo, cada código se puede invertir o revertir y seguirá teniendo propiedades de código idénticas; de modo similar, cada secuencia de código se puede hacer rotar cíclicamente según el número de segmentos en la longitud del código y puede seguir manteniendo propiedades de código idénticas. Por lo tanto, para un código de N bits, el número máximo de códigos independientes (C_{N}) es:
C_{N} = 2^{N}/(4.N)
(Debe observarse que esta fórmula es aproximada y representa únicamente un límite superior, ya que incluye, por ejemplo, códigos que son simétricos, es decir, iguales hacia delante y hacia atrás, y/o que contienen secuencias repetidas, las cuales es improbable que proporcionen códigos útiles). Sin embargo, la fórmula anterior se puede aplicar a las longitudes de códigos secundarios consideradas para las señales del Galileo con el fin de estimar el número de códigos independientes disponibles para los códigos secundarios, según se enumera en la Tabla 4.
TABLA 4 Número de códigos secundarios independientes
4
Para los códigos secundarios más cortos de 25 bits o menos, es viable computacionalmente, con las capacidades actuales, llevar a cabo búsquedas exhaustivas de todas las posibilidades de los códigos con el fin de hallar aquellas con propiedades aceptables (u óptimas). No obstante, para los códigos secundarios más largos de 50 y 100 bits, existen demasiados códigos posibles como para que resulte práctica la búsqueda exhaustiva usando las capacidades computacionales actuales. Sin embargo, se puede obtener un buen rendimiento para códigos de base de 50 y 100 bits usando un punto de partida de código aleatorio, y a continuación realizando un proceso de optimización a nivel de segmentos. De hecho, como existen más opciones disponibles para códigos más largos, en general esto permite una aplicación de criterios de optimización o selección más estrictos con respecto a dichos códigos.
Para hallar familias adecuadas de códigos secundarios, se adoptó, según una forma de realización de la presente invención, un proceso de búsqueda de dos fases tal como se muestra en el diagrama de flujo de la Figura 4. En primer lugar, se halló (405) una colección de códigos secundarios candidatos, en la que los candidatos tienen individualmente unas buenas propiedades de ACF, ELW y equilibrado de DC (tal como se describe de forma más detallada posteriormente). En segundo lugar, de la colección de códigos candidatos hallada, se eliminaron (410) códigos candidatos que no eran mutuamente independientes, y se seleccionó (415) un grupo o familia de códigos secundarios que tenían unas buenas propiedades mutuas de CCF (de hecho se seleccionaron varios grupos, dependiendo de diferentes criterios de selección).
Se requieren uno o más criterios de selección para identificar y seleccionar códigos con buenas propiedades. Son parámetros importantes para una selección de este tipo la función de autocorrelación (ACF), la ponderación de la línea en exceso (ELW) y el equilibrado del código. El criterio de ponderación de la línea en exceso (ELW) se define como la relación de potencia en dB entre la línea espectral más alta del código de ensanchamiento con respecto al valor RMS total. Un criterio de equilibrado de DC del código es simplemente la suma de todos los segmentos del código, suponiendo que se usa una notación de señal (\pm1), y se corresponde con el componente de frecuencia cero (DC) del espectro del código.
Para el rendimiento de la ACF, se pueden usar dos subcriterios diferentes. El primero de ellos es el valor vecino más alto (HNV), que es una indicación de la diferencia de altura entre el pico de la ACF y el siguiente pico más grande. En una forma de realización, para los códigos piloto que usan códigos secundarios largos, este criterio se define como:
HNV_{p} = (N/HNV)^{2} en la que N = longitud del código en segmentos.
El segundo criterio de la ACF es un factor de mérito (MF), que se determina a partir del promedio de todos los valores vecinos de la ACF.
MFp = N^{2} / \sum NV^{2} en la que NV son los valores vecinos.
A continuación, se puede definir un criterio de selección global de la manera siguiente:
Rendimiento = HNVp + MFp/100 - ELW
Aunque el criterio de equilibrio del código no aparece directamente dentro de este parámetro de rendimiento global, el mismo se usa para rechazar todos los códigos en los que:
| equilibrio DC | > \surd N en la que N = longitud del código en segmentos.
(Debe observarse que este umbral es el promedio del valor DC que se espera para una secuencia de código aleatoria).
\newpage
Usando estos criterios, la Tabla 5 muestra el rendimiento para los códigos secundarios de 50 y 100 bits de la Tabla 3. Debe observarse que los HNV reales de la ACF son 6 para los códigos de 50 bits y 8 para los códigos secundarios de 100 bits.
TABLA 5 Rendimiento de los códigos secundarios de base de 50 y 100 bits del Galileo
5
Tal como se ha mencionado previamente, el número de códigos posibles para los códigos secundarios más largos de 50 y 100 bits es demasiado grande para técnicas de búsqueda exhaustivas con las capacidades computacionales actualmente disponibles (aunque, evidentemente, esto puede cambiar en el futuro). Por lo tanto, se ha usado un proceso de optimización, tal como se muestra en el diagrama de flujo de la Figura 5, para obtener un conjunto final de códigos secundarios candidatos a partir de una selección inicial de códigos aleatorios según una forma de realización de la invención (esto se corresponde con la operación 405 de la Figura 4).
Para iniciar el proceso, se genera (510) un código binario de referencia aleatorio (Cr) de la longitud requerida (N bits). En primer lugar, se comprueba el módulo del valor de equilibrado DC del código para verificar si el mismo supera la raíz cuadrada del número de bits de código (515). Si es así, entonces el código se rechaza, y en su lugar se genera otro código aleatorio. Cuando se halla un código aceptablemente equilibrado, se calcula su rendimiento como un valor de referencia (Pr) (520). Debe observarse que el proceso de optimización usado en el método de la Figura 5 intenta maximizar un factor relacionado con el rendimiento, aunque, alternativamente, otras formas de realización pueden buscar el minimizar algún tipo de función de coste (a efectos de la presente descripción, las mismas se pueden considerar en general como la misma cosa).
A continuación, uno o más bits del código de referencia se invierten aleatoriamente para producir un código nuevo (Cn) (525). El número de bits invertido controla el tamaño del "paso" a través del espacio de búsqueda. Uno de los planteamientos consiste en invertir un número relativamente grande de bits inicialmente, en correspondencia con pasos grandes a través del espacio de búsqueda cuando supuestamente el algoritmo está muy lejos de un máximo, y, a continuación, invertir un número menor de bits en iteraciones posteriores a medida que nos aproximamos al máximo, con el fin de realizar una búsqueda de mayor precisión. En las circunstancias actuales, en general se consideró como aceptable invertir solamente un único bit cada vez para la operación 525. Esto sigue constituyendo un cambio de un 1% en la secuencia (para una secuencia de 100 segmentos), y, por lo tanto, no deriva en una convergencia indebidamente lenta.
Seguidamente se comprueba si el código nuevo no cumple el criterio de equilibrado DC (530). Si es así, el código nuevo se rechaza, y se vuelve a la operación 525 para generar un código nuevo invirtiendo un bit (o bits) aleatorio(s) de código Cr (no del código Cn).
No obstante, suponiendo que el código Cn no cumple el criterio de equilibrado DC en la operación 530, se mide el rendimiento del código nuevo Cn como Pn (535). A continuación, se realiza (540) un proceso de decisión de optimización para comprobar si un número aleatorio seleccionado linealmente del intervalo (0 < Aleat < 1) es menor que la exponencial del incremento en el valor del rendimiento entre el código nuevo y el código de referencia, es decir, [exp(Pn - Pr)]. Si la comprobación de la operación 540 es falsa, el código Cn se rechaza, y se vuelve a la operación 525 para generar un código nuevo invirtiendo un bit (o bits) aleatorio(s) del código Cr (no del código Cn). Alternativamente, si la comprobación de la operación 540 es verdadera, entonces el código nuevo se adopta como código actual (545), con lo cual Cr resulta igual a Cn, y Pr se fija igual a Pn.
Debe observarse que si Pn>Pr en la operación 540, entonces el rendimiento del código se ha mejorado mediante el cambio de bit en la operación 525. En este caso la comprobación de la operación 540 es necesariamente positiva, conduciendo a una sustitución de código en la operación 545 (ya que el número de comprobación aleatorio no puede ser mayor que la unidad). No obstante, incluso si Pn<Pr, lo cual indica que el rendimiento del código nuevo es de hecho peor que el rendimiento del código antiguo, sigue existiendo una cierta probabilidad (exponencialmente decreciente) de que la comprobación de la operación 540 dé un resultado positivo, conduciendo a una sustitución de código en la operación 545. Esta capacidad puede ayudar al sistema a evitar que resulte atrapado en un máximo local, ya que permite que la optimización, en algunas circunstancias, se aleje del máximo (local).
Debe observarse que la sensibilidad del proceso de decisión se puede modificar multiplicando el valor del rendimiento de incremento (Pn-Pr) por un factor de sensibilidad en la operación 540 (esto es análogo a variar la temperatura en un método de búsqueda relacionado de "recocido simulado"). Si resultase apropiado, el factor de sensibilidad se puede modificar entre iteraciones. No obstante, para las búsquedas de código descritas en la presente memoria, se ha observado que un factor fijo de unidad resulta satisfactorio, tal como se muestra en la Figura 5.
A continuación se realiza una comprobación para ver si se ha logrado (550) un rendimiento objetivo (Pt). Si es así, se ha localizado un código secundario adecuado, y la búsqueda puede finalizar (560). En una forma de realización, el nivel de rendimiento objetivo (Pt) se fija aproximadamente al del código secundario de base peor (de la Tabla 3). Alternativamente, si la comprobación en la operación 550 determina que no se supera el umbral de rendimiento, el proceso vuelve a la operación 525 para invertir un bit adicional aleatorio del código (modificado). Debe observarse que este bucle cerrado está sujeto a comprobación durante un número máximo de iteraciones (555), el cual, en una forma de realización, se fija a 1 millón. Si se alcanza este límite, entonces puede existir un problema con la convergencia, y se decide volver a la operación 510 para generar un código de referencia aleatorio completamente nuevo Cr.
Se apreciará que el diagrama de flujo de la Figura 5 se presenta únicamente a título de ilustración, y los expertos tendrán conocimiento de muchas variaciones y modificaciones potenciales. Por ejemplo, en lugar de invertir un único bit en la operación 525, el procedimiento podría seleccionar aleatoriamente un 0 y un 1 del código para ser invertidos. Entonces, esto garantizaría que se mantiene el equilibrio del código. Adicionalmente, la estrategia de optimización puede tener en cuenta otro u otros criterios (además o en lugar de los ya descritos). Por ejemplo, una posibilidad sería requerir que el primer lóbulo lateral (es decir, correspondiente a un desplazamiento de bits de una posición) de la función de autocorrelación (ACF) sea cero para cada código. Esta es una propiedad útil ya que garantiza que la ACF presenta un comportamiento conocido (fijado) en las proximidades de la deriva cero, lo cual puede ayudar con estrategias para mitigar efectos multitrayecto. Adicionalmente, puede que no se salga necesariamente del procedimiento de optimización una vez que se haya alcanzado un umbral de rendimiento determinado (en la operación 550), sino que el mismo puede continuar durante por lo menos algunas iteraciones adicionales para intentar hallar un patrón de bits todavía mejor.
El procedimiento representado en la Figura 5 se usó para buscar códigos secundarios adecuados de 50 y 100 bits. Debe observarse que, en esta fase, no se tuvieron en cuenta las propiedades mutuas de la CCF entre códigos. A continuación, se verificó la lista de todos los códigos hallados a partir del procedimiento de la Figura 5 para garantizar que la misma solamente incluía códigos independientes (correspondientes a la operación 410 en la Figura 4). En particular, se eliminó cualquier código descubierto, inverso, invertido o desplazado cíclicamente (de hecho, se hallaron varios códigos repetidos y los mismos se rechazaron mientras se buscaban códigos secundarios adecuados de 50 bits, aunque dichas repeticiones no se hallaron durante las búsquedas de las longitudes de códigos de 100 bits, debido probablemente al espacio de búsqueda mucho mayor).
La Tabla 6 muestra el intervalo de valores de rendimiento sobre los 100 mejores códigos secundarios de 50 bits que se hallaron usando el procedimiento de búsqueda de la Figura 5. Los 100 códigos se seleccionaron de entre un total de 1.304 códigos de los que se había hallado que superaban el umbral de rendimiento Pt (aunque no se espera que esto resulte exhaustivo).
TABLA 6 Resumen de los resultados de búsqueda de códigos secundarios de 50 bits
6
A título comparativo, los códigos secundarios actuales de base de 50 bits CS50a y CS50b de la Tabla 3 están respectivamente en las posiciones 1.146 y 1.294 de entre el total de 1.304 códigos secundarios localizados. Debe observarse que los 324 códigos superiores hallados tienen HNV de ACF de solamente 2, lo cual representa un rendimiento mucho mejor que los dos códigos originales de referencia que tienen HNV de 6.
De modo similar, la Tabla 7 muestra el intervalo de valores de rendimiento sobre los 200 mejores códigos secundarios de 100 bits de entre los 981 de los que se halló que superaban el umbral de rendimiento. En este caso, se seleccionan los 200 códigos superiores, ya que los códigos de esta longitud están destinados para las señales piloto tanto E5A-Q como E5B-Q. Debe observarse que el segundo mejor código en la Tabla 7 es el código de referencia actual CS100d de la Tabla 3, mientras que los otros códigos de base CS100a-c se encuentran respectivamente en las posiciones 981, 980 y 733.
TABLA 7 Resumen de los resultados de búsqueda de códigos secundarios de 100 bits
7
Todos los códigos anteriores se seleccionaron sin comprobar el rendimiento de la CCF. Por lo tanto, la siguiente etapa consiste en seleccionar, de entre los conjuntos completos de códigos secundarios hallados, un grupo de por lo menos 50 códigos (para cada señal) que presenten además unas buenas propiedades mutuas de CCF. No obstante, debería observarse que este rendimiento no debería ser peor que la situación actual, en la que todos los miembros del código usan el mismo código secundario (común).
La comprobación de todas las combinaciones de 100 códigos cualesquiera de entre una colección de solamente unos pocos centenares de candidatos no resulta viable usando capacidades computacionales disponibles actualmente, especialmente cuando se prevén varios desplazamientos Doppler (lo cual afectará al rendimiento de la CCF entre diferentes códigos de satélites). Por consiguiente, se realizó otro proceso de optimización.
En una forma de realización, se utilizaron dos métodos que usaban ambos el mismo procedimiento de optimización. Cada uno de estos métodos comienza con un conjunto seleccionado aleatoriamente de 100 códigos escogidos de entre la colección de aproximadamente 1.000 códigos hallados a través del método de la Figura 5 (tal como se ha descrito anteriormente). A continuación, los dos métodos sustituyen uno de los códigos para cada iteración, o bien mediante una elección aleatoria para un método, o bien identificando el código que proporcionó la peor contribución de la CCF para el otro método. No obstante, en esta forma de realización, se observó que resultaba relativamente difícil optimizar (hacer converger) la CCF de la familia total, especialmente cuando se incluían efectos de desplazamiento Doppler, ya que la velocidad de iteración era lenta y el programa de búsqueda se quedaba enclavado de forma regular en máximos locales. En particular, el impacto del incremento de cambiar un único código se podría ver desbordado por las variaciones del rendimiento de la CCF de la familia total. Un factor que afectaba a la velocidad era que el programa de búsqueda estaba recalculando continuamente casi las mismas CCF para cada iteración, aunque, de hecho, únicamente era necesario calcular realmente las CCF que implicaban el código sustituido, para una nueva iteración. Por lo tanto, el programa de búsqueda se modificó para soportar este cambio con el fin de acelerar la velocidad de las iteraciones. Se realizaron también intentos de mejorar la sensibilidad a cambios de códigos individuales afinando los criterios de rendimiento; sin embargo, la velocidad de convergencia seguía siendo bastante
lenta.
En otra forma de realización, se planteó un enfoque bastante diferente. En esta forma de realización, se calcularon las CCF de todas las combinaciones de pares de códigos para la colección completa de códigos. La matriz de CCF calculadas incluía además un intervalo de derivas de frecuencia Doppler, a saber, 25 pasos, cada uno de 20 Hz, para los códigos secundarios de 50 bits, y 50 pasos, cada uno de 20 Hz, para los códigos secundarios de 100 bits. Estos produjeron desplazamientos máximos de 500 Hz y 1.000 Hz respectivamente para los códigos secundarios de 50 bits y 100 bits, que coinciden con las velocidades de repetición de los códigos primarios correspondientes. Con estas derivas de frecuencia, el cambio de fase por segmento de código secundario resulta 2\pi, después de lo cual se repite el efecto Doppler sobre los códigos secundarios tal como se ha descrito previamente.
Aunque esta forma de realización utiliza una gran cantidad de memoria o medios de almacenamiento, evita la repetición de cálculos de CCF que consumen mucho tiempo. A continuación, el proceso de optimización subsiguiente es mucho más rápido, ya que únicamente conlleva el hallar el mejor conjunto de códigos usando los valores de CCF precalculados y uno o más criterios adecuados que combinan la familia de valores de CCF. Por ejemplo, se pueden construir grupos de códigos eliminando códigos de los que se ha observado que presentan valores de CCF deficientes, o seleccionando códigos que presentan valores de CCF buenos.
En una forma de realización, los criterios de optimización de la CCF adoptados se concentran en el rendimiento de seguimiento, debido a que la colección de códigos ya se ha optimizado de forma individual en relación con las propiedades de la ACF, que controlan el rendimiento de la adquisición. Se definieron tres criterios de rendimiento diferentes, basándose en un planteamiento del factor de mérito (MF), incluyendo variantes de la interferencia cruzada (CT) y el multitrayecto (MP). Se usaron dos criterios del factor de mérito con interferencia cruzada (CT1 y CT2). Los criterios CT2 tienen en cuenta que la deriva de tiempo entre satélites no puede superar 20 ms y, por lo tanto, no es necesario que incluyan el intervalo completo de derivas posibles hasta la longitud del código piloto de 100 ms. El tercer criterio (MP) usa una variante multitrayecto del factor de mérito. Estos criterios se utilizaron por parte del algoritmo de optimización para producir varios grupos de códigos. A efectos de referencia el(los) primer(os)
grupo(s) de códigos incluía(n) repeticiones del código secundario de base común. Otro grupo de códigos usaba el conjunto superior de códigos de cada colección de códigos:
Los diversos factores de mérito usados se definen formalmente de la manera siguiente:
\hskip0.2cm
8
9
La Figura 6A presenta una representación típica del rendimiento de la CCF, usando los criterios CT2, para un grupo de códigos de 50 miembros de códigos secundarios de 50 bits con Doppler cero. Esta representación se repite en la Figura 6B para el mismo grupo de códigos, aunque mostrando el promedio de la CCF a través de todas las derivas de frecuencia Doppler. Debe observarse que el efecto aleatorizador del desplazamiento Doppler tiende a suavizar la CCF total a un valor que depende mucho menos de una estructura de código específica.
La Tabla 8 resume los resultados del procedimiento de selección de conjuntos de códigos para 12 grupos diferentes de códigos secundarios de 50 bits G1 a G12, que contienen cada uno de ellos 50 miembros de código.
\vskip1.000000\baselineskip
TABLA 8 Resultados de la optimización de grupos de códigos secundarios de 50 bits
10
El primer grupo G1 es un grupo ficticio basado en el mismo código de base (común) CS50a, que indica el nivel de rendimiento de referencia si se usa solamente un único código secundario común. El siguiente grupo G2 contiene los 50 códigos superiores de la lista de búsqueda de códigos secundarios de la Tabla 6. Los siguientes 10 grupos G3 a G12 se generaron por optimización con respecto a los tres criterios de selección de CCF diferentes previamente descritos.
Las tres columnas principales de la Tabla 8 (CT1, CT2 y MP) representan los resultados usando los diferentes criterios de interferencia cruzada y multitrayecto. Para estos resultados, los valores mayores representan el mejor rendimiento. En la Tabla 8 se muestra una clasificación global, determinada mediante la combinación de las clasificaciones individuales para cada criterio. Debe observarse que el código común (grupo G1) se ha clasificado como último, y produce la peor puntuación para cada criterio individual. El grupo de códigos G5 se ha clasificado primero. Posteriormente se describe una valoración adicional de estos códigos secundarios de 50 bits usando una herramienta de evaluación de códigos.
(Se apreciará que como el proceso de clasificación de la Tabla 8 incluye dos criterios de interferencia cruzada, esto reduce la influencia relativa del criterio multitrayecto. Esto puede resultar o no apropiado, dependiendo del uso deseado y las circunstancias de las señales).
La Tabla 9 resume resultados análogos para 13 grupos diferentes G1 a G13, que contienen cada uno de ellos 137 códigos secundarios de 100 bits.
TABLA 9 Resultados de la optimización de grupos de códigos secundarios de 100 bits
11
Los primeros dos grupos de la Tabla 9, G1 y G2 son grupos ficticios basados respectivamente en códigos de base comunes CS100d y CS100b. Por lo tanto, estos grupos son indicativos de niveles de rendimiento de referencia en los que se usa solamente un único código secundario común. El siguiente grupo G3 contiene los 137 códigos superiores de la lista de búsqueda de códigos secundarios. Los siguientes 10 grupos G4 a G13 se generaron usando un proceso de optimización de CCF análogo al correspondiente a los grupos de códigos de 50 bits. En cuanto a la evaluación de los grupos de códigos de 50 bits, se ha incluido una clasificación global combinando las clasificaciones individuales para cada criterio. Nuevamente, los códigos comunes (grupos G1 y G2) se han clasificado deficientemente y ocupan 2 de las 3 peores posiciones. El grupo de códigos G11 se ha clasificado primero. Posteriormente se proporciona una valoración adicional de los códigos secundarios de 100 bits usando una herramienta de evaluación de códigos.
Aunque el procedimiento descrito anteriormente en relación con las Figuras 4 y 5 se basa en un planteamiento de dos fases, a saber, en primer lugar identificar un conjunto de códigos individuales buenos (operación 405), y, en segundo lugar, identificar grupos buenos dentro de este conjunto (operación 415), alternativamente se podría usar un único procedimiento integrado. Por ejemplo, este podría implicar la generación aleatoria de un grupo de códigos, y, a continuación, la realización de un proceso de optimización sobre este grupo que tenga en cuenta tanto las propiedades individuales de los códigos, como también las propiedades mutuas de códigos diferentes en el grupo (especialmente su función de correlación cruzada). Existe una gama de estrategias alternativas disponibles para dicha tarea, basadas en conceptos tales como algoritmos genéticos, recocido simulado, y otros. Por ejemplo, si en el grupo final hay N patrones de códigos, entonces se podría generar inicialmente un conjunto de P patrones de códigos (P > N). A continuación, cada ciclo de optimización podría conllevar el mantenimiento del mejor subconjunto de (por ejemplo) N patrones de códigos, y a continuación la generación de otros P-N patrones de códigos nuevos para su comprobación conjuntamente con el subconjunto mantenido del ciclo previo. Algunas estrategias de optimización pueden combinar esta selección de una población mayor con la actualización de patrones de códigos individuales dentro de la población (según la operación 525).
En la valoración de los grupos de códigos identificados en las Tablas 8 y 9, se apreciará que los dos principales criterios para el diseño de los códigos son el rendimiento bajo modos de funcionamiento de adquisición y de seguimiento. Dentro de estos dos modos, se pueden diferenciar dos aspectos de rendimiento adicionales, a saber, la supresión de versiones retardadas del mismo código (caso de multitrayecto), y el rechazo de la totalidad de otros códigos de satélite (caso de interferencia cruzada). Cualquier valoración del rendimiento debería incluir los efectos del desplazamiento de frecuencia Doppler, según resulte apropiado. También se pueden adoptar uno o más criterios adicionales referentes a las propiedades espectrales del código.
Para la adquisición, como criterios del rendimiento se pueden usar las ACF (caso de multitrayecto) de los códigos o las CCF mutuas (caso de interferencia cruzada), considerando la deriva Doppler. A continuación, los mismos se pueden comparar con el límite de Welch (WB) apropiado para la longitud del código y el tamaño de la familia de códigos. Estos criterios miden la Media de la Distancia de Welch al Cuadrado en Exceso Promediada (AMEWSD) para los casos del multitrayecto y la interferencia cruzada. Para el caso de multitrayecto, normalmente únicamente se comprueba un intervalo limitado de desplazamientos Doppler, ya que únicamente se considera un código de satélite, y esto representa el intervalo esperado del error del compartimento de frecuencias de búsqueda de adquisición. No obstante, en el caso de la interferencia cruzada, que incluye otros códigos de satélite, se debe tener en cuenta un valor máximo de desplazamiento Doppler de 6,7 kHz. Debe observarse que ambos criterios mencionados tienen en cuenta los efectos de la correlación de valores emparejados (even correlation) y valores no emparejados (odd correlation).
A efectos del seguimiento, las ACF (caso del multitrayecto) de los códigos o las CCF mutuas (caso de la interferencia cruzada) se pueden usar directamente para proporcionar una medida del rendimiento como Promedio del Factor de Mérito (AMF). En cuanto a las comprobaciones de adquisición, el caso del multitrayecto se puede restringir a un intervalo limitado de desplazamientos de frecuencia Doppler. Adicionalmente, la ACF se evalúa únicamente para derivas de tiempo de \pm1 y \pm2 segmentos, con el fin de reflejar el intervalo limitado de retardos de multitrayecto esperados mientras se realice el seguimiento de una señal. Este intervalo de derivas de tiempo no es estrictamente relevante para los códigos secundarios lentos por sí mismas.
Es también deseable que los códigos tengan un espectro plano, similar al ruido aleatorio. La presencia de líneas espectrales fuertes incrementa la interferencia cruzada entre códigos, así como la susceptibilidad a interferencias externas de banda estrecha. Los criterios usados aquí miden el Promedio de la Ponderación de la Línea en Exceso (AELW) con respecto a la potencia espectral equivalente para un código aleatorio.
Se usó una herramienta de evaluación de códigos basada en los cinco criterios de comprobación antes mencionados para comprobar las propuestas de código secundario de las Tablas 8 y 9. La herramienta realiza dos tipos de cálculo, a saber, multitrayecto (MP) e interferencia cruzada (CT), que implican respectivamente un código y un par de códigos. En teoría, para comprobar los códigos secundarios, la herramienta de evaluación se debería ejecutar con los conjuntos completos de códigos por niveles. No obstante, esto no es viable con los recursos computacionales actualmente disponibles, y, por lo tanto, los códigos secundarios se comprobaron solos. Este planteamiento es razonable ya que el rendimiento de la CCF de un código por niveles se puede considerar como el producto de los códigos individuales primario y secundario, y evita además la necesidad de especificar los propios códigos primarios o la asignación de un código primario particular a un código secundario particular, que pueden estar ambos sujetos a cambios.
La Tabla 10 resume los resultados para los 12 grupos diferentes de códigos secundarios de 50 bits G1 a G12 de la Tabla 8, que contienen cada uno de ellos 50 miembros de código.
TABLA 10 Resultados de la evaluación de grupos de códigos secundarios de 50 bits
12
Las cinco columnas principales (MEWSD-CT y MP, MF-CT y MP, y ELW) representan los resultados de la herramienta de evaluación de códigos. Los mismos se calculan todos ellos como funciones de coste en las que los valores más bajos representan el mejor rendimiento. (La herramienta no proporciona ninguna respuesta para el caso del multitrayecto en el factor de mérito (MF - MP) - esto parece ser debido a la corta longitud de los códigos secundarios que están siendo evaluados). Debe observarse que los valores de MEWSD-CT y MEWSD-MP se calculan de acuerdo con las siguientes definiciones:
13
Tal como se ha determinado previamente con respecto a la Tabla 8, el mejor grupo de códigos secundarios de 50 bits es G5, mientras que el conjunto de referencia G1 es el peor. Debe observarse que el conjunto G5 entra dentro de los 3 mejores grupos para todos los criterios.
La Tabla 11 resume los resultados para los 13 grupos diferentes de códigos secundarios de 100 bits G1 a G 13 de la Tabla 9, que contienen cada uno de ellos 137 miembros de código.
TABLA 11 Resultados de la evaluación de grupos de códigos secundarios de 100 bits
14
(En cuanto a las comprobaciones de los códigos de 50 bits, la herramienta no produjo ningún resultado para el criterio del multitrayecto en el factor de mérito (MF - MP)). Comparando los resultados mostrados en la Tabla 9, se observó que el mejor grupo de códigos secundarios de 100 bits era G11. El primer conjunto de referencia G1 (código CS100d común) es el peor para todos los criterios excepto ELW. El segundo conjunto de referencia G2 (código CS100b común) tiene un mejor rendimiento en la misma 6ª posición, lo cual se puede atribuir al hecho de tener el mejor rendimiento en el criterio del multitrayecto en MEWSD.
Por lo tanto, en resumen, se ha descrito un proceso para optimizar códigos secundarios, especialmente para aquellos códigos usados como parte de los códigos largos por niveles para los componentes de señales piloto. Las especificaciones previas de códigos de base del Galileo han adoptado un código secundario común para todos los miembros de una familia de códigos primarios, pero esto produce lóbulos laterales relativamente altos de la CCF en los que el retardo de la señal entre satélites es menor que unos pocos ms. Como este problema es solamente serio para derivas de frecuencia Doppler bajas entre satélites, el mismo deteriorará principalmente el rendimiento de la adquisición. Los lóbulos laterales de la CCF se pueden reducir significativamente mediante el uso de códigos secundarios independientes para cada miembro de un código primario.
Se ha utilizado un procedimiento de optimización de dos fases para hallar grupos adecuados de códigos secundarios de 50 bits y 100 bits, ya que se espera que estos códigos secundarios relativamente largos produzcan suficientes códigos adecuados, respondiendo al número de satélites en el sistema Galileo. La primera fase localizó códigos con buenas propiedades de ACF y ELW, comparables a o mejores que los códigos de base originales. Esto produjo aproximadamente 1.000 candidatos para los códigos secundarios tanto de 50 como de 100 bits.
A continuación, la segunda fase seleccionó un grupo adecuado de códigos con buenas propiedades mutuas de CCF a partir de la colección total de códigos hallados. De hecho, se seleccionaron varios grupos dependiendo de varios criterios de optimización. A continuación, estos grupos se compararon entre sí mediante una herramienta de evaluación de códigos usando un conjunto acordado (predeterminado) de criterios de rendimiento.
Para los códigos secundarios de 50 bits, se recomienda un grupo particular de códigos (G5, véase la Tabla 8). Este grupo contiene 50 códigos diferentes, que se pueden asignar a los diferentes satélites, en lugar de usar un código secundario común según la anterior propuesta de base para la señal piloto E6-C (aunque tal como se ha mencionado previamente, el código primario destinado a la señal piloto E6-C ahora se ha acortado, de manera que la longitud del código secundario correspondiente se incrementará de hecho de 50 bits a 100 bits).
Para los códigos secundarios de 100 bits, se recomienda un grupo particular de códigos (G11, véase Tabla 9), específicamente con el fin de sustituir el uso del código secundario común CS50d para el componente de la señal piloto E5A-Q y el código común CS50b para el componente de la señal piloto E5B-Q. El grupo de códigos G11 contiene 137 códigos compatibles que permiten la asignación de 50 códigos para componentes de señal piloto tanto E5A como E5B, más 37 códigos adicionales que se podrían asignar a la señal piloto GPS L5. Con el cambio a la señal piloto E6-C, estos códigos secundarios de 100 bits se pueden usar también para esta señal.
El componente de señal L1-C del Galileo usa actualmente un código piloto por niveles con un código secundario común de 25 bits. El procedimiento descrito en la presente memoria debería permitir la identificación de suficientes códigos para esta longitud de código secundario menor lo cual permitiría el uso de códigos secundarios independientes para satélites diferentes, y esto, a su vez, debería conducir a mejoras consecuentes del rendimiento.
Se apreciará que el número de códigos a incluir dentro de un conjunto de códigos determinado depende de los requisitos particulares del sistema correspondiente de navegación por satélite. En general, dichos sistemas están diseñados para funcionar con entre 24 y 30 satélites diferentes, habitualmente con uno o más satélites adicionales como potenciales repuestos en caso de avería. El número deseado de códigos dentro de un conjunto de códigos se puede incrementar adicionalmente para adaptarse a señales de "pseudolites". Estas son señales emitidas desde ubicaciones terrestres, por ejemplo, cerca de aeropuertos, que se le aparecen a un receptor como señales adicionales de navegación por satélite, y, por lo tanto, pueden proporcionar una determinación más precisa y fiable de la posición en dichas ubicaciones.
Adicionalmente, en algunas circunstancias, puede que se desee cambiar el conjunto de códigos de ensanchamiento radiodifundidos desde un satélite de forma regular. Esto puede resultar útil por razones de seguridad o comerciales, por ejemplo, cuando el acceso a los códigos nuevos sea condicional bajo el pago de una tarifa de licencia, o esté limitado a ciertos conjuntos de usuarios gubernamentales o militares. Si los códigos de ensanchamiento se cambian de vez en cuando, entonces es necesario un número mayor de conjuntos de códigos. No obstante, debe observarse que con una construcción de códigos por niveles, los cambios de los códigos se pueden implementar potencialmente solo cambiando los códigos primarios, mientras que se mantiene el mismo código secundario a través del cambio.
La Figura 7 es un diagrama esquemático de alto nivel de un subsistema 600 para generar un código de ensanchamiento por niveles según una forma de realización de la invención. Debe observarse que el subsistema 600 se puede incorporar en un satélite para generar un código de ensanchamiento para su transmisión a tierra. Adicionalmente, el subsistema 600 se puede incorporar en un receptor para detectar una señal de satélite, por ejemplo, mediante correlación cruzada de la señal que entra en el receptor con la salida del subsistema 600.
Durante el funcionamiento, el código secundario de N bits correspondiente al código de ensanchamiento se carga en el registro 630 de desplazamiento. Antes de esto, el código secundario se puede almacenar en algún dispositivo de almacenamiento no volátil (no mostrado), por ejemplo, una forma de ROM ó EEPROM (tal como una memoria flash). Alternativamente, el código secundario se puede utilizar directamente del dispositivo de almacenamiento (es decir, sin cargarlo primero en un registro de desplazamiento). La secuencia de código secundario disponible a partir del registro 630 de desplazamiento es específica del satélite correspondiente para el subsistema 600.
El componente 620 se usa para generar un código primario de M bits. En algunas formas de realización, el componente 620 puede ser un registro de desplazamiento con realimentación lineal (LFSR), tal como el usado para generar un código Gold para señales GPS. Alternativamente, el código primario completo de M bits también se puede almacenar en alguna forma de dispositivo de almacenamiento, por ejemplo, una ROM ó EEPROM (tal como una memoria flash). Esta última opción resulta particularmente apropiada cuando el código primario comprende alguna forma de código de bits aleatorio, en lugar de una secuencia pseudoaleatoria que se puede (re)generar mediante lógica apropiada.
El generador 620 de códigos primarios recibe una señal 605 de reloj a la velocidad de los segmentos de la señal, y da salida al siguiente bit del código primario en respuesta a esta señal de reloj. La señal 605 de reloj se hace pasar también a través de una unidad 610 de división por M antes de llevarla a la unidad 630 de códigos secundarios. Consecuentemente, la secuencia de código secundario progresa un único bit por cada ciclo completo a través del código primario. A continuación, la salida para el código secundario se combina usando una operación O exclusiva 640 con la salida correspondiente al código primario para producir el código 650 por niveles.
Debe observarse que en algunas formas de realización, el subsistema 600 se puede usar solamente para la generación inicial de códigos, tal como durante la fabricación del satélite o el receptor. A continuación, el código 650 por niveles se almacenaría como una única secuencia de bits (plana) en el satélite y/o receptor, a pesar de tener una estructura jerárquica subyacente. Un planteamiento de este tipo podría resultar útil para simplificar el diseño global del hardware.
La Figura 8A es un diagrama de bloques esquemático de alto nivel de un sistema 601 de transmisión para ser usado en la carga útil de un satélite según una forma de realización de la invención. (Se apreciará que también se podría usar una estructura análoga en un pseudolite u otro dispositivo de este tipo que emule un satélite). El sistema 601 de transmisión utiliza un código de ensanchamiento por niveles que incluye un código secundario tal como el generado usando el método de la Figura 4. Por lo menos la parte secundaria del código 611 de ensanchamiento se almacena en un dispositivo 610 de memoria, que, en actividades de radiodifusión normales, funciona como una memoria de solo lectura. En ciertas formas de realización, el código primario también se puede almacenar en la memoria 610 (o en algún otro dispositivo de memoria), o bien por separado o bien conjuntamente con el código secundario, dependiendo de cómo se implemente el código primario (tal como se ha descrito anteriormente haciendo referencia a la Figura 7). En una implementación, el dispositivo 610 de memoria se puede hacer funcionar desde una perspectiva lógica como una memoria intermedia circular, usando un puntero de lectura para realizar ciclos en torno a de la secuencia 611 de código almacenada.
Como el tamaño característico de los dispositivos de memoria actuales es muy pequeño, los bits almacenados en la memoria 610 pueden ser vulnerables a impactos de rayos cósmicos (especialmente en un entorno espacial) y otra posible contaminación. Por consiguiente, en una forma de realización, la salida del dispositivo 610 de memoria se hace pasar a través de una unidad 612 de código de corrección de errores (ECC) para proteger la precisión del código 611. La unidad 612 de ECC puede detectar un error en el código 611 según sea leído de la memoria 610, y puede ser capaz, en algunas circunstancias, de corregir automáticamente el error (dependiendo de la naturaleza del código y el error). Por ejemplo, la memoria 610 puede almacenar dos copias del código 611, y leer cada bit simultáneamente de ambas copias. Si los dos bits leídos de las versiones diferentes no concuerdan, esto señaliza (es decir, detecta) un error en una de las versiones almacenadas. Si en la memoria 610 se almacenan tres copias del código 611, entonces cualquier error detectado se puede corregir automáticamente basándose en una votación mayoritaria.
Los expertos tendrán conocimiento de muchos mecanismos de ECC de aplicaciones de comunicaciones de datos y de almacenamiento de datos, tales como el uso de codificación convolucional, códigos de redundancia cíclica (CRC), y otros. Estos, en general, presentan una eficacia mucho mayor que el simple almacenamiento de múltiples copias del código 611 - es decir, proporcionan una mejor protección contra errores con una tara inferior en términos de requisitos de almacenamiento adicionales.
Después de que el código se haya hecho pasar a través de la comprobación 612 de ECC, el mismo se combina con los datos 617 de navegación por medio del subsistema 620 de generación de canales. El subsistema 620 de generación de canales también puede incluir un subsistema, tal como el representado en la Figura 7, para generar un código por niveles a partir del código secundario de la memoria 610 y a partir del código primario (ya sea obtenido a partir de la memoria 610 ó generado por algún otro mecanismo). Alternativamente, el subsistema 620 de generación de canales puede recibir un código 650 por niveles en el que ya se hayan combinado los códigos primarios y secundarios, por ejemplo, si el código almacenado 611 ya integra los códigos tanto primario como secundario.
El subsistema de generación de canales usa en general alguna forma de suma módulo 2 (O exclusiva) para combinar el código de ensanchamiento y los datos de navegación. A continuación, el canal resultante se traslada hacia una unidad 625 de modulación, en la que se superpone sobre una señal portadora usando algún mecanismo de modulación apropiado, tal como la modulación por desplazamiento binario de fase (BPSK). Debe observarse que, en algunos sistemas de satélites, se pueden modular múltiples canales sobre una única señal portadora. A continuación, la señal portadora se traslada al transmisor 630 para su radiodifusión a tierra.
Aunque, en algunas formas de realización, el código 611 se puede "estampar de forma permanente" en memoria 610 antes del lanzamiento, resulta más flexible que el dispositivo 610 de memoria incluya una capacidad de escritura - por ejemplo, se implementa como alguna forma de memoria programable de solo lectura (PROM). Por ejemplo, si la comprobación 612 de ECC descubre que el código almacenado 611 ha sido alterado, entonces una capacidad de escritura para el dispositivo 610 de memoria permite que se vuelva a escribir en el dispositivo 610 de memoria la versión correcta del código (la versión correcta del código puede estar disponible a partir de la propia unidad 612 de ECC, o puede que tengan que ser proporcionada por un sistema de control terrestre). También puede haber otras diversas razones para desear la actualización del código 611 almacenada en memoria 610. Por ejemplo, se podría instalar un código nuevo para ayudar a mejorar el rendimiento durante una fase de comprobación, tal vez si el código original sufre alguna interferencia con algún otro servicio o satélite. También podría haber razones comerciales o de seguridad para cambiar el código 611, las primeras para aumentar quizás los ingresos por licencias, las últimas para restringir el acceso a la señal de posicionamiento a personal adecuadamente autorizado.
La Figura 8B es un diagrama de bloques esquemático de alto nivel de un receptor 701 según una forma de realización de la invención. El receptor 701 se puede proporcionar como una unidad autónoma, o puede estar incorporado en algún dispositivo mayor, por ejemplo, un teléfono móvil (celular), un ordenador, un automóvil u otra forma de vehículo, una cama de hospital, una aeronave o barco, un contenedor de carga, y otros. Durante el funcionamiento, el receptor 701 incluye una antena 715 para recibir una señal de satélite tal como la transmitida por el satélite 601. La antena 715 enlaza con un demodulador 720, que, a su vez, traslada la señal demodulada entrante a la unidad 725 de adquisición de canales.
El receptor 701 incluye además un dispositivo 710 de memoria que almacena por lo menos las partes 611A, 611B... 611N de código secundario para la(s) constelación(es) de satélites soportada(s) por el receptor 701. Adicionalmente, de forma análoga a la situación de la Figura 8A, las partes de código primario de estos códigos también se pueden almacenar en las unidades 610A, 610B...610N de memoria pertinentes, o, alternativamente, se pueden generar usando un LFSR ó otro dispositivo adecuado, dependiendo de la elección en particular del código primario.
El dispositivo 710 de memoria en general almacena los patrones de bits completos para los códigos secundarios 611A, 611B,... 611N, ya que una representación más compacta de dichos códigos secundarios no es normalmente posible en ausencia de cualquier estructura matemática formalizada. En el Apéndice 1 se exponen ejemplos de los posibles patrones de bits para ser usados como códigos secundarios 611A, 611B... 611N y para el almacenamiento en el dispositivo 710 de memoria (los expertos apreciarán que no es necesario que los patrones 611 de bits almacenados coincidan exactamente con los patrones de bits radiodifundidos desde el satélite, siempre que los mismos sean suficientemente parecidos como para garantizar una correlación fuerte a efectos de recepción de la señal).
El dispositivo 710 de memoria se puede proporcionar como una memoria de solo lectura (ROM) o puede tener alguna capacidad de actualización, por ejemplo, implementándose en forma de una memoria programable de solo lectura (PROM). Esta última resulta particularmente adecuada cuando los códigos 611A, 611B,... 611N están sujetos a actualización, por razones o bien comerciales o bien de seguridad. Debe observarse que, en algunas circunstancias, la memoria 710 puede representar alguna forma de soporte de almacenamiento extraíble que se puede insertar en y extraer del receptor 701. Por ejemplo, el dispositivo 710 de memoria puede comprender una tarjeta inteligente (análoga a una tarjeta SIM en un teléfono móvil) o un dispositivo de memoria flash. Así, esto permitiría que los códigos 611 en el receptor 701 se actualizasen sustituyendo el dispositivo de memoria extraíble. Una posibilidad adicional es que el dispositivo 710 sea capaz de poder descargar códigos desde un sistema remoto (por ejemplo, un servidor) a través de alguna red de comunicaciones, tal como Internet o una conexión de telefonía móvil, para su almacenamiento en y su uso desde una RAM local. Esta descarga puede estar sujeta a una autorización apropiada del usuario, para limitar el uso del sistema de navegación por satélite por razones comerciales, de seguridad o legales.
En algunas formas de realización, la salida de la memoria 710 se hace pasar a través de una unidad 712 de ECC para realizar una detección y/o corrección de errores según se ha descrito anteriormente en relación con el sistema 601 de satélites, aunque, en otros receptores, se puede omitir el mecanismo 712 de comprobación de ECC. A continuación, el código 611 se suministra a la unidad 725 de adquisición de canales de manera que el canal pueda ser adquirido a partir de la señal demodulada. La unidad 725 de adquisición de canales es responsable de la combinación de los códigos primario y secundario para un satélite, por ejemplo usando el subsistema mostrado en la Figura 7, aunque, en otras formas de realización, esta combinación se puede efectuar en una fase anterior (o bien en el dispositivo 701 ó bien antes de cargar los códigos en la memoria 710).
Debe observarse que la adquisición del satélite se puede realizar secuencialmente probando un código 611A, a continuación otro 611B, y así sucesivamente. Más comúnmente, se establecen correlaciones de múltiples códigos (potencialmente todos ellos) con respecto a la señal demodulada en paralelo. Una vez que el receptor se ha enganchado a un número suficiente de señales entrantes identificando la presencia de sus códigos 611A, 611B de ensanchamiento respectivos, los datos de navegación de esas señales pueden ser extraídos y usados por la unidad de determinación de la posición conjuntamente con la temporización de los códigos de ensanchamiento recibidos para ayudar a calcular la ubicación del receptor.
En muchas realizaciones, el receptor 701 puede que sea capaz de recibir señales desde más de un sistema de navegación por satélite, por ejemplo, tanto desde el Galileo como desde el GPS, aunque los códigos de ensanchamiento para el GPS comprenden códigos Gold que se pueden implementar como LFSR, se apreciará que dichos códigos también se pueden almacenar en su totalidad dentro del dispositivo 710 de memoria. Por consiguiente, la arquitectura individual de la memoria 710 es compatible con patrones de códigos específicos o hechos a la medida así como con patrones de códigos convencionales obtenidos a partir de LFSR.
En conclusión, aunque en la presente memoria se ha descrito una variedad de formas de realización, las mismas se proporcionan únicamente a título de ejemplo, y el alcance de la presente invención queda definido por las reivindicaciones adjuntas.
\newpage
Apéndice 1
Resultados de la búsqueda de códigos secundarios por grupos A1.1 Códigos secundarios de 50 bits
Esta lista proporciona el grupo de 50 códigos secundarios de 50 bits que presentaron un mejor rendimiento según la herramienta de evaluación de códigos (es decir, el grupo G5 de la Tabla 8).
\vskip1.000000\baselineskip
15
\newpage
A1.2 Códigos secundarios de 100 bits
Esta lista proporciona el grupo de cien códigos secundarios de 100 bits que presentaron el mejor rendimiento según la herramienta de evaluación de códigos (es decir, el grupo G11 de la Tabla 9).
\vskip1.000000\baselineskip
17
\newpage
(Continuación)
18
\newpage
(Continuación)
19

Claims (26)

1. Método para crear un conjunto de códigos de ensanchamiento secundarios para ser usados en un sistema de navegación por satélite que comprende una constelación de satélites (601), en el que cada satélite de la constelación utiliza un código (611) de ensanchamiento por niveles que comprende por lo menos un código primario y un código secundario, y en el que a cada satélite de la constelación se le asigna un código de ensanchamiento secundario diferente de entre dicho conjunto de códigos de ensanchamiento secundarios, comprendiendo el método:
generar (510) un conjunto inicial de patrones de bits, en los que cada patrón de bits representa un código de ensanchamiento secundario potencial; y
realizar (525, 535, 545) un proceso de optimización sobre patrones de bits dentro del conjunto inicial de patrones de bits, con lo cual por lo menos algunos de los patrones de bits en dicho conjunto inicial son modificados o sustituidos, para crear un conjunto final de patrones de bits para ser usados como conjunto de códigos de ensanchamiento secundarios, en el que el proceso de optimización utiliza una función de rendimiento o coste obtenida a partir de por lo menos una de entre: (a) la función de autocorrelación para un patrón de bits, y/o (b) la función de correlación cruzada entre patrones de bits diferentes.
2. Método según la reivindicación 1, en el que los patrones de bits en el conjunto inicial de patrones de bits comprenden secuencias aleatorias de bits.
3. Método según la reivindicación 1 ó 2, en el que el proceso de optimización incluye rechazar patrones de bits que no cumplen un criterio de equilibrio (530).
4. Método según la reivindicación 3, en el que dicho criterio de equilibrio se basa en la raíz cuadrada del número de bits en un patrón de bits.
5. Método según cualquiera de las reivindicaciones anteriores, en el que el proceso de optimización incluye modificar los patrones de bits invirtiendo aleatoriamente un bit en por lo menos uno de los patrones de bits (525).
6. Método según cualquiera de las reivindicaciones anteriores, en el que el proceso de optimización incluye una primera fase en la que se identifican patrones de bits que tienen buenas propiedades individuales según dicha función de rendimiento o coste obtenida a partir de la función de autocorrelación para un patrón de bits, y una segunda fase en la que se selecciona el conjunto de códigos de ensanchamiento secundarios a partir de los patrones de bits identificados que tienen buenas propiedades individuales.
7. Método según la reivindicación 6, en el que la primera fase identifica por lo menos 250 patrones de bits que tienen buenas propiedades individuales.
8. Método según la reivindicación 6 ó 7, en el que la segunda fase incluye calcular la función de correlación cruzada entre cada par de patrones de bits identificados que tienen buenas propiedades individuales.
9. Método según cualquiera de las reivindicaciones anteriores, en el que el número de bits en un patrón de bits está en el intervalo comprendido entre 25 y 512.
10. Método según la reivindicación 9, en el que el número de bits en un patrón de bits está en el intervalo comprendido entre 50 y 128.
11. Receptor (701) que incorpora un conjunto final de patrones de bits creados usando el método según cualquiera de las reivindicaciones anteriores.
12. Receptor según la reivindicación 11, en el que dichos patrones de bits están protegidos por un código de corrección de errores (712).
13. Receptor según la reivindicación 11 ó 12, que comprende además por lo menos una memoria de solo lectura (ROM) (710) que almacena las partes de código primario y código secundario de los códigos de ensanchamiento por niveles.
14. Receptor según cualquiera de las reivindicaciones 11 a 13, incorporando dicho receptor un conjunto final de patrones de bits seleccionados sustancialmente a partir de los patrones de bits expuestos en el Apéndice 1.1 ó el Apéndice 1.2.
15. Dispositivo de memoria extraíble para ser usado en un receptor, en el que dicho dispositivo de memoria incorpora un conjunto final de patrones de bits creados usando el método según cualquiera de las reivindicaciones 1 a 10.
\newpage
16. Dispositivo de memoria extraíble según la reivindicación 15, en el que dichos patrones de bits están protegidos por un código de corrección de errores.
17. Dispositivo de memoria extraíble según la reivindicación 15 ó 16, en el que dicho dispositivo de memoria incorpora un conjunto final de patrones de bits seleccionados sustancialmente a partir de los patrones de bits expuestos en el Apéndice 1.1 ó el Apéndice 1.2.
18. Aparato (601) que incorpora uno o más patrones de bits del conjunto final de patrones de bits creados usando el método según cualquiera de las reivindicaciones 1 a 12.
19. Aparato según la reivindicación 18, en el que dicho aparato incorpora por lo menos un patrón de bits seleccionado de los patrones de bits expuestos en el Apéndice 1.1 ó el Apéndice 1.2.
20. Aparato según la reivindicación 18 ó 19, en el que dicho aparato comprende un satélite.
21. Aparato según la reivindicación 18 ó 19, en el que dicho aparato comprende un pseudolite.
22. Método de funcionamiento de un receptor (701) para ser usado conjuntamente con un sistema de navegación por satélite, comprendiendo el método:
acceder a un conjunto de patrones de bits almacenados (611A, 611B), correspondiéndose dichos patrones de bits con códigos secundarios usados por el sistema de navegación por satélite y creados usando el método según cualquiera de las reivindicaciones 1 a 10; y
usar los patrones de bits almacenados para adquirir señales del sistema de navegación por satélite.
23. Método de funcionamiento de un receptor para ser usado conjuntamente con un sistema de navegación por satélite según la reivindicación 22, en el que dichos patrones de bits correspondientes a códigos secundarios usados por el sistema de navegación por satélite se seleccionan sustancialmente a partir de los patrones de bits expuestos en el Apéndice 1.1 ó el Apéndice 1.2.
24. Método según la reivindicación 22 ó 23, en el que el receptor accede, a través de una red, a dichos patrones de bits almacenados.
25. Método de funcionamiento de un servidor que se comunica con receptores para su uso conjuntamente con un sistema de navegación por satélite, comprendiendo el método:
almacenar un conjunto de patrones de bits, correspondiéndose dichos patrones de bits con códigos secundarios usados por el sistema de navegación por satélite y creados usando el método según cualquiera de las reivindicaciones 1 a 10;
recibir una solicitud de un receptor para acceder al conjunto de patrones de bits almacenados; y
suministrar los patrones de bits almacenados al receptor en respuesta a dicha solicitud para su uso en la adquisición de señales del sistema de navegación por satélite.
26. Método de funcionamiento de un servidor según la reivindicación 25, en el que dichos patrones de bits correspondientes a códigos secundarios usados por el sistema de navegación por satélite se seleccionan sustancialmente a partir de los patrones de bits expuestos en el Apéndice 1.1 ó el Apéndice 1.2.
ES05764218T 2005-07-01 2005-07-01 Codigos de ensanchamiento para un sistema de navegacion por saltelite. Active ES2333735T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2005/007235 WO2007003213A1 (en) 2005-07-01 2005-07-01 Spreading codes for a satellite navigation system

Publications (1)

Publication Number Publication Date
ES2333735T3 true ES2333735T3 (es) 2010-02-26

Family

ID=35695693

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05764218T Active ES2333735T3 (es) 2005-07-01 2005-07-01 Codigos de ensanchamiento para un sistema de navegacion por saltelite.

Country Status (13)

Country Link
US (1) US8090005B2 (es)
EP (1) EP1899742B1 (es)
JP (1) JP4796626B2 (es)
CN (1) CN101278207B (es)
AT (1) ATE441123T1 (es)
BR (1) BRPI0520410B1 (es)
CA (1) CA2613583C (es)
DE (1) DE602005016315D1 (es)
ES (1) ES2333735T3 (es)
HK (1) HK1122866A1 (es)
PT (1) PT1899742E (es)
RU (1) RU2416101C2 (es)
WO (1) WO2007003213A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2444752C1 (ru) * 2010-08-04 2012-03-10 Открытое акционерное общество "Российская корпорация ракетно-космического приборостроения и информационных систем" (ОАО "Российские космические системы" Система оценивания помехозащищенности навигационного контура искусственного спутника земли (исз)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0419233B1 (pt) * 2004-12-17 2020-12-01 The European Union método para criar um conjunto de códigos de espalhamento para uso em um sistema de navegação por satélite, e, sinal de satélite
US8917209B2 (en) 2009-09-10 2014-12-23 Nextnav, Llc Coding in a wide area positioning system (WAPS)
US8170082B2 (en) 2008-12-05 2012-05-01 Infineon Technologies Ag Cross-talk mitigation in global navigation satellite systems
JP5650436B2 (ja) * 2010-05-12 2015-01-07 三菱電機株式会社 衛星測位受信機
US9645249B2 (en) * 2011-06-28 2017-05-09 Nextnav, Llc Systems and methods for pseudo-random coding
DE102011108775A1 (de) * 2011-07-29 2013-01-31 Continental Automotive Gmbh Verfahren und System zur Kontrolldatenübertragung zwischen einem Fahrzeugdatenaufzeichnungsgerät und einem Prüfgerät
CN103988094B (zh) * 2011-08-16 2017-08-04 欧洲太空署 使用基于伪随机噪声序列的扩频码的导航系统
US8693054B2 (en) * 2012-01-06 2014-04-08 Infoprint Solutions Company Llc Mask generation mechanism
US8644788B2 (en) 2012-05-02 2014-02-04 Skytraq Technology, Inc. Signal receiver, portable computer and signal acquisition method used in satellite communication system
CN102680984B (zh) * 2012-06-12 2014-02-12 北京理工大学 一种基于卫星配对的卫星导航系统扩频码分配方法
US9291717B2 (en) * 2013-05-09 2016-03-22 Samsung Electronics Co., Ltd. Method and apparatus for efficiently combining satellite navigation signals
US10970183B1 (en) * 2013-08-16 2021-04-06 The Mathworks, Inc. System and method for improving model performance
CN103580717B (zh) * 2013-10-17 2015-04-15 华中科技大学 一种导航信号扩频码的优选方法
US9270323B2 (en) * 2014-04-04 2016-02-23 Broadcom Corporation Wireless communication synchronization system
DE102015212787A1 (de) * 2015-07-08 2017-01-12 Siemens Aktiengesellschaft Receiver zum Empfang von GNSS-Signalen
CN109633715B (zh) * 2018-12-29 2021-04-30 西安开阳微电子有限公司 一种基于并行码相位捕获gps和北斗三代信号的方法
CN111868545B (zh) * 2019-02-19 2021-07-27 中国人民解放军海军航空大学 一种卫星通信导航信号生成方法、装置及接收方法、装置
CN117368946B (zh) * 2023-10-19 2024-05-28 齐鲁空天信息研究院 基于多基准站实时数据流的卫星广播星历综合方法和系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210770A (en) * 1991-09-27 1993-05-11 Lockheed Missiles & Space Company, Inc. Multiple-signal spread-spectrum transceiver
US5461610A (en) * 1992-08-31 1995-10-24 At&T Ipm Corp. Precoding of signature sequences for CDMA systems
US5724046A (en) * 1996-02-01 1998-03-03 Trimble Navigation Limited Method and system for using a single code generator to provide multi-phased independently controllable outputs in a navigation satellite receiver
FR2756692B1 (fr) * 1996-11-29 1999-01-08 Commissariat Energie Atomique Procede de transmission a etalement de spectre par sequence directe, avec generation et optimisation des sequences
AU754257B2 (en) * 1997-10-10 2002-11-07 Qualcomm Incorporated Multi-layered PN code spreading in a multi-user communications system
US6091760A (en) * 1998-06-29 2000-07-18 L-3 Communications Corporation Non-recursively generated orthogonal PN codes for variable rate CDMA
US6459407B1 (en) * 2001-09-10 2002-10-01 Nokia Mobile Phones Cross-correlation system for time recovery in network-assisted GPS positioning
WO2004005954A2 (en) * 2002-07-10 2004-01-15 Qualcomm, Incorporated Cross-correlation mitigation method and apparatus for use in a global positioning system receiver
CN1332214C (zh) * 2003-09-18 2007-08-15 电子科技大学 一种无线导航系统整周数模糊度的确定方法
BRPI0419233B1 (pt) * 2004-12-17 2020-12-01 The European Union método para criar um conjunto de códigos de espalhamento para uso em um sistema de navegação por satélite, e, sinal de satélite

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2444752C1 (ru) * 2010-08-04 2012-03-10 Открытое акционерное общество "Российская корпорация ракетно-космического приборостроения и информационных систем" (ОАО "Российские космические системы" Система оценивания помехозащищенности навигационного контура искусственного спутника земли (исз)

Also Published As

Publication number Publication date
CN101278207A (zh) 2008-10-01
DE602005016315D1 (de) 2009-10-08
CA2613583A1 (en) 2007-01-11
JP4796626B2 (ja) 2011-10-19
RU2008103141A (ru) 2009-08-10
JP2008547338A (ja) 2008-12-25
EP1899742A1 (en) 2008-03-19
RU2416101C2 (ru) 2011-04-10
CA2613583C (en) 2013-03-12
US8090005B2 (en) 2012-01-03
BRPI0520410A2 (pt) 2009-09-29
CN101278207B (zh) 2013-06-19
PT1899742E (pt) 2009-11-11
BRPI0520410B1 (pt) 2018-12-11
ATE441123T1 (de) 2009-09-15
US20090196329A1 (en) 2009-08-06
WO2007003213A1 (en) 2007-01-11
EP1899742B1 (en) 2009-08-26
BRPI0520410A8 (pt) 2017-09-19
HK1122866A1 (en) 2009-05-29

Similar Documents

Publication Publication Date Title
ES2333735T3 (es) Codigos de ensanchamiento para un sistema de navegacion por saltelite.
JP4796589B2 (ja) 衛星航法システムのための拡散符号
US10088573B2 (en) Navigation system using spreading codes based on pseudo-random noise sequences
ES2271659T3 (es) Procedimiento para la localizacion continua en tiempo real de la posicion de al menos un objeto movil y los emisores y receptores correspondientes.
ES2292048T3 (es) Metodo y aparato para la adquisicion y seguimiento de una señal portadora de desplazamiento binario (boc).
ES2370138T3 (es) Procedimiento para aumentar la disponibilidad de una posición.
CN101176014B (zh) 用于基于卫星的定位系统的相位模糊度求解方法
ES2298259T3 (es) Procedimiento y aparato para utilizar informacion de estado de satelites en sistemas de posicionamiento de satelites.
ES2347814T3 (es) Metodo de procesamiento de señales de posicionamiento, en particular para aplicaciones de interiores.
ES2427975T3 (es) Método y sistema para proporcionar una solución de posición de navegación de GNSS con una integridad garantizada en entornos no controlados
US20070008108A1 (en) Unsynchronized beacon location system and method
ES2644799T3 (es) Autenticación basada en bits aleatorios de mensajes de navegación satelital
US20120309415A1 (en) Multipath compensation within geolocation of mobile devices
ES2565689T3 (es) Mejora de la estimación de posición para un receptor del sistema global de navegación por satélite
ES2300871T3 (es) Sistema y metodo de localizacion que consigue rendimiento de red sincronizada en el tiempo con nodos divididos en redes separadas.
KR20110089256A (ko) 광역 위치 결정 시스템
CN110050201A (zh) 用于共享收敛数据的方法和系统
US20150097721A1 (en) Anti-Spoofing in a Satellite Navigation System
ES2393463T3 (es) Procedimiento para optimizar una adquisición de una señal de espectro ensanchado procedente de un satélite por un receptor móvil
Perazzo et al. Secure positioning in wireless sensor networks through enlargement miscontrol detection
ES2589588T3 (es) Procedimiento para emular un canal de transmisión multi-trayectorias
Anghileri et al. FUNTIMES–Future Navigation and Timing Evolved Signals
CN116148888B (zh) 一种抗欺骗干扰方法、装置、系统及存储介质
CN110346818A (zh) 一种gnss信号捕获中抑制互相关的方法及装置
Patel Adding direct sequence spread spectrum to a continuous wave RF ranging system.