ES2333735T3 - Codigos de ensanchamiento para un sistema de navegacion por saltelite. - Google Patents
Codigos de ensanchamiento para un sistema de navegacion por saltelite. Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J13/00—Code division multiplex systems
- H04J13/10—Code generation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/02—Details of the space or ground control segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B2201/00—Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
- H04B2201/69—Orthogonal indexing scheme relating to spread spectrum techniques in general
- H04B2201/707—Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation
- H04B2201/70715—Orthogonal 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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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).
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.
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.
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:
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
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
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.
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.
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:
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.
(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
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
\newpage
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
\newpage
(Continuación)
\newpage
(Continuación)
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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2444752C1 (ru) * | 2010-08-04 | 2012-03-10 | Открытое акционерное общество "Российская корпорация ракетно-космического приборостроения и информационных систем" (ОАО "Российские космические системы" | Система оценивания помехозащищенности навигационного контура искусственного спутника земли (исз) |
Families Citing this family (18)
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)
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 |
-
2005
- 2005-07-01 PT PT05764218T patent/PT1899742E/pt unknown
- 2005-07-01 RU RU2008103141/09A patent/RU2416101C2/ru active
- 2005-07-01 JP JP2008518639A patent/JP4796626B2/ja active Active
- 2005-07-01 WO PCT/EP2005/007235 patent/WO2007003213A1/en active Application Filing
- 2005-07-01 CN CN2005800514748A patent/CN101278207B/zh active Active
- 2005-07-01 ES ES05764218T patent/ES2333735T3/es active Active
- 2005-07-01 BR BRPI0520410A patent/BRPI0520410B1/pt active IP Right Grant
- 2005-07-01 DE DE602005016315T patent/DE602005016315D1/de active Active
- 2005-07-01 US US11/994,038 patent/US8090005B2/en active Active
- 2005-07-01 AT AT05764218T patent/ATE441123T1/de not_active IP Right Cessation
- 2005-07-01 EP EP05764218A patent/EP1899742B1/en active Active
- 2005-07-01 CA CA2613583A patent/CA2613583C/en active Active
-
2008
- 2008-12-19 HK HK08113818.5A patent/HK1122866A1/xx unknown
Cited By (1)
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. |