ES2688755T3 - Códigos de propagación para un sistema de navegación por satélite - Google Patents

Códigos de propagación para un sistema de navegación por satélite Download PDF

Info

Publication number
ES2688755T3
ES2688755T3 ES04822583.3T ES04822583T ES2688755T3 ES 2688755 T3 ES2688755 T3 ES 2688755T3 ES 04822583 T ES04822583 T ES 04822583T ES 2688755 T3 ES2688755 T3 ES 2688755T3
Authority
ES
Spain
Prior art keywords
bit
patterns
bits
code
bit patterns
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES04822583.3T
Other languages
English (en)
Inventor
Jon Olafur Winkel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
European Union represented by European Commission
Original Assignee
European Union represented by European Commission
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by European Union represented by European Commission filed Critical European Union represented by European Commission
Application granted granted Critical
Publication of ES2688755T3 publication Critical patent/ES2688755T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Radio Relay Systems (AREA)

Abstract

Un receptor (701) que incorpora un conjunto de patrones (611A-611N) de bits almacenados, correspondiendo dichos patrones de bits a códigos de propagación usados por un sistema de navegación por satélite, en donde el receptor (701) usa los patrones (611A-611N) de bits almacenados para adquirir señales del sistema de navegación por satélite, y en donde el conjunto de patrones (611A-611N) de bits almacenados se crean: generando (105) un conjunto inicial de patrones de bits, en donde cada patrón de bits representa un código de propagación potencial y cada patrón de bits en el conjunto inicial de patrones de bits se genera (i) generando cada uno del conjunto inicial de patrones de bits como una secuencia aleatoria de bits en donde el número de bits en un patrón de bits es un número par de bits en el rango de 1.000 a 10.000 y, para cada patrón de bits, (ii) aplicando al patrón de bits una primera condición precursora que requiere que dichos patrones (611A-611N) de bits estén equilibrados, por lo que hay por igual muchos unos y ceros dentro de los mismos, y si en (215) el patrón de bits no está equilibrado, modificando (220) el patrón de bits para asegurar que está equilibrado y (iii) aplicando al patrón de bits una segunda condición precursora que requiere que el primer lóbulo lateral, correspondiente a un desplazamiento de bits de una posición, de una función de autocorrelación (ACF) sea cero, por lo que se determina (215) el primer lóbulo lateral de la ACF para cada patrón de bits y, para aquellos patrones de bits donde la ACF no es cero en el primer lóbulo lateral, el patrón de bits se modifica (220) para obtener una ACF de cero, dando como resultado por ello el conjunto inicial de patrones de bits; y realizando (110), en un sistema de hardware, un proceso de optimización (305-315) sobre el conjunto inicial de patrones de bits, por lo que se modifican o sustituyen al menos algunos de los patrones de bits en dicho conjunto inicial, para crear un conjunto final de patrones (611A-611N) de bits para su uso como el conjunto de códigos de propagación; y almacenando un patrón (611) de bits en un dispositivo (610) de memoria de un satélite (601) y/o almacenando patrones (611A-611N) de bits en un dispositivo (710) de memoria de un receptor (710) para recibir una señal de satélite transmitida por satélite (601); en donde el proceso (305-315) de optimización busca minimizar una función de coste para el conjunto de patrones (611A-611N) de bits en donde dicha función de coste se deriva de funciones de autocorrelación y funciones de correlación cruzada que se definen de la siguiente manera:**Fórmula** y donde a y b son secuencias de código, k es el desplazamiento, N es el número de bits en el código y σ es la función de signo, de manera que σ (n) >= -1 para n<0; y σ (n) >= +1 para n >= 0. en donde modificar (315) un patrón de bits en dicho proceso (305-315) de optimización comprende dar la vuelta a bits por pares dentro de cada código seleccionando un bit con valor 0 para dar la vuelta y un bit con valor 1 para dar la vuelta, por lo que el patrón de bits permanece equilibrado a lo largo del proceso (305-315) de optimización, y en donde el número de bits dados la vuelta se reduce a medida que disminuye una función de coste; en donde cada patrón de bits en dicho conjunto inicial tiene primeros lóbulos laterales de ACF de cero, y en donde la modificación (315) de un el patrón de bits en dicho proceso (305-315) de optimización retiene el valor cero de los primeros lóbulos laterales de ACF: (i) determinando si ak-1 + ak+1 >= aj-1 + aj+1, donde aj y ak son los bits seleccionados para dar la vuelta; y (ii) si no, seleccionando nuevos bits aj y ak para dar la vuelta con el fin de conservar el valor cero del primer lóbulo lateral de ACF; en donde el proceso (305-315) de optimización comprende (a) calcular (305) la función de coste para el conjunto inicial o actual de patrones de bits, (b) determinar si se ha satisfecho (310) una condición de terminación o de convergencia y, si no, actualizar (315) al menos uno de los patrones de bits para formar un conjunto actual de patrones de bits y repetir (a) y (b); en donde, después de actualizar (315) al menos uno de los patrones de bits, dicho cálculo (305) de la función de coste comprende: calcular un cambio en una función de correlación cruzada (CCF) par mediante **Fórmula**en donde n es el desplazamiento entre los códigos a y b, aplicar este cambio para actualizar una CCF par ya calculada; calcular un cambio en una función de correlación cruzada impar mediante**Fórmula** , aplicar este cambio para actualizar una CCF impar ya calculada; y calcular (305) la función de coste a partir de las CCF actualizadas.

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Códigos de propagación para un sistema de navegación por satélite Campo de la invención
La presente invención se refiere a la generación y al uso de un conjunto de códigos de propagación para un sistema de navegación por satélite en el que a cada satélite se le asignan uno o más códigos de propagación.
Antecedentes de la invención
Los sistemas de navegación por satélite están llegando a ser 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 en el coche, etc. El principal sistema de navegación por satélite en servicio en la actualidad es el sistema de posicionamiento global (GPS) operado por el Departamento de Defensa de los Estados Unidos. Las ventas a nivel mundial de equipos de GPS alcanzaron casi 3.500 millones de dólares en 2003, y se espera que esta cifra crezca constantemente en los próximos años. Se planea el lanzamiento de un sistema europeo de navegación por satélite homólogo, llamado Galileo, y la disponibilidad del servicio al final de esta década.
Un sistema de navegación por satélite comprende una constelación de satélites que cada uno transmite una o más señales a tierra. Los componentes básicos de una señal de satélite son un código de propagación (también denominado código de posicionamiento, de sincronización o de distancia) que se combina con datos de navegación. La combinación resultante entonces se modula sobre una portadora a una frecuencia establecida para transmisión a tierra. En algunos casos, múltiples señales (denominadas canales) se pueden modular en una única portadora a través de un esquema de multiplexación apropiado. Además, cada satélite transmite en general a múltiples frecuencias, lo cual puede ayudar a compensar cualquier distorsión atmosférica.
El componente de código de propagación de una señal de satélite típicamente comprende una secuencia predeterminada de bits (algunas veces denominados 'chips') y se usa para realizar dos tareas principales. En primer lugar, el código de propagación proporciona un mecanismo de sincronización para permitir a un receptor engancharse a una señal de satélite. De este modo, cada satélite (y típicamente cada difusión de canal desde ese satélite) tiene su propio código de sincronización. Cuando un receptor se enciende por primera vez, no sabe qué señales de satélite se pueden recibir, dado que ciertos satélites en la constelación estarán por debajo del horizonte para esa ubicación particular en ese momento 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 hecho esto, se puede acceder a los datos de navegación en la señal. Esto entonces proporciona datos de efemérides para los otros satélites en la constelación, y permite que los satélites restantes que son visibles por el receptor se adquieran de manera relativamente rápida.
La segunda tarea principal de un código de propagación es proporcionar una estimación de distancia desde el satélite al receptor, en base al tiempo que ha tardado la señal en viajar desde el satélite al receptor, lo que se puede expresar como: c(Tr-Ts), donde:
c es la velocidad de la luz (conocida, sometida a los efectos ionosféricos, etc.),
Ts es el momento de envío desde el satélite, que está codificado en la señal en sí misma, y Tr es el momento de recepción de la señal en el receptor.
La posición del receptor se puede determinar en un espacio tridimensional usando un proceso de trilateración, dadas las posiciones conocidas de los satélites (como se especifica en sus datos de navegación). En teoría, esto se puede realizar con información de señal de un mínimo de tres satélites. En la práctica, sin embargo, podemos escribir Tr = Tm + o, donde Tm es el momento de recepción medido en el receptor, y o es el desplazamiento entre el reloj del receptor y el reloj del satélite, que es generalmente desconocido, excepto para receptores especializados. Esto implica entonces que la información de la señal se obtiene de al menos un satélite adicional para compensar el desplazamiento de tiempo desconocido en el receptor. Si están disponibles señales de satélites adicionales, se puede realizar una determinación de posición estadística usando cualquier algoritmo apropiado, tal como mínimos cuadrados. Esto también puede proporcionar alguna indicación del error asociado con una posición estimada.
Un parámetro importante para el código de propagación es la tasa de bits a la que se transmite el código de propagación, dado que ésta a su vez controla la precisión con la que se puede hacer la determinación de la posición. Por ejemplo, con una tasa de bits de 1 MHz, cada bit representa un tiempo de viaje liviano de 300 metros. La precisión de posicionamiento se determina entonces por lo preciso que se puede juzgar el desplazamiento de fase entre el satélite y el receptor para un único bit. Esto generalmente depende del ruido en el sistema. Por ejemplo, si el desplazamiento de fase se puede medir con una precisión de 90 grados (% /2), esto corresponde a una determinación de la posición de 75 metros. Se apreciará que tener una tasa de bits más alta para el código de propagación permite que sean hechas determinaciones de posición más precisas.
5
10
15
20
25
30
35
40
45
50
55
60
Otro parámetro importante para el código de propagación es su longitud total, en otras palabras, el número de bits o chips en el código de propagación antes de que se repita. Una razón para esto es que la longitud finita del código de propagación puede conducir a ambigüedad en la determinación de la posición. Por ejemplo, supongamos que la tasa de bits es 10 MHz y que la longitud total de la secuencia de bits es 256 bits, que por lo tanto corresponde a un tiempo de viaje liviano de 7,68 km. La medición de distancia desde el satélite al receptor no se especifica de forma única, más bien se puede expresar solamente como 7,68n + d km, donde d se determina por la temporización relativa del código de propagación como se difunde y como se recibe, pero n es un número entero desconocido. Hay varias formas en que se puede resolver la ambigüedad en cuanto al valor de n, incluyendo el uso de señales de un mayor número de satélites o usando el conocimiento de una posición aproximada derivada de alguna otra fuente. Un enfoque común es relacionar la fase del código con el borde de bit del bit de datos de navegación (este proceso se llama sincronización de bits), y también relacionar el borde de bit con el tiempo de la semana (ToW) contenido en los datos de navegación transmitidos por el satélite.
Se apreciará que aumentar la longitud de repetición del código de propagación ayuda a reducir los problemas con las determinaciones de distancia ambiguas. Una longitud más larga del código de propagación también proporciona una mejor separación de señales de diferentes fuentes, y un aumento de robustez contra la interferencia. Por otra parte, tener una longitud de repetición más larga del código de propagación puede retrasar la adquisición inicial de la señal, así como requerir más capacidad de procesamiento dentro del receptor. Una estrategia conocida para contrarrestar este problema es usar un código de propagación jerárquico basado en códigos primarios y secundarios. Si suponemos 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 propagación global corresponden a la secuencia primaria a la que se aplica una operación OR exclusiva con el primer bit del código secundario, los siguientes N1 bits del código de propagación comprenden una repetición de los N1 bits del código primario, esta vez a la que se aplica una operación OR exclusiva con el segundo bit del código secundario, y así sucesivamente. Esto da una longitud de repetición total del código de N1xN2. Sin embargo, la longitud de repetición para propósitos de sincronización es solamente N1, dado que el código primario aún dará un pico de correlación independientemente del valor del bit del código secundario (esto sólo cambiará el signo del pico de correlación).
Los códigos de propagación de GPS se implementan usando registros de desplazamiento de realimentación lineales (LFSR), en los que las salidas seleccionadas de un registro de desplazamiento de N etapas se intervienen y realimentan a la entrada. Las conexiones de realimentación dentro del LFSR se pueden representar como un polinomio de orden N, por lo que la operación de un LFSR se puede especificar completamente por su polinomio y la configuración inicial del LFSR.
El GPS usa un subconjunto de LFSR conocidos como códigos Gold que tienen ciertas propiedades matemáticas especiales. Una de éstas es que generan una salida de ruido pseudoaleatorio que tiene una longitud de repetición máxima de 2N-1, de modo que un LFSR relativamente compacto puede generar una salida con una longitud de repetición larga. Los códigos Gold también tienen 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 todos los demás desplazamientos de tiempo (es decir, distintos de cero). También es posible seleccionar un conjunto de códigos Gold que tengan buenas propiedades de correlación cruzada, por lo que la función de correlación cruzada entre códigos diferentes se mantiene relativamente pequeña. Esto es importante para la adquisición de señal, dado que ayuda a evitar que un código de sincronización de un satélite sea confundido accidentalmente con un código de sincronización de otro satélite. Un criterio práctico importante adicional para un código de propagación es tener números iguales (o casi iguales) de unos y ceros - esto se conoce como equilibrio.
Se puede encontrar información adicional acerca de los sistemas de navegación por satélite, y en particular acerca del GPS, en: “Re-Tooling the Global Positioning System” de Per Enge, páginas 64-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. Información acerca de las señales de Galileo propuestas se puede encontrar en: “Status of the 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.
Aunque el uso de los códigos Gold está bien establecido para los sistemas de navegación por satélite existentes, hay algunas limitaciones asociadas con tales códigos. Por ejemplo, solamente están disponibles con ciertas longitudes de código (no todos los valores de N se pueden usar para el polinomio de LFSR). En general, la longitud de código se determina por la relación de la tasa de chips del código de propagación y la tasa de bits de los datos de navegación. Si la longitud de código se restringe a un código Gold disponible, entonces esto implica una restricción en la tasa de chips y la tasa de bits, que a su vez podría impactar en otras consideraciones, tales como el tiempo de adquisición y la precisión de posicionamiento. En algunos casos, la limitación en la longitud de código para los códigos Gold se ha superado usando códigos Gold truncados, pero este truncamiento tiene un impacto adverso en las propiedades matemáticas del conjunto de códigos (en términos de la función de autocorrelación, etc.).
5
10
15
20
25
30
35
40
45
50
55
Además, las propiedades de correlación cruzada de los códigos Gold generalmente no están optimizadas para la situación donde la polaridad del código cambia de una repetición del código a la siguiente, según los datos de navegación que están siendo transmitidos. Este último problema se agrava cuando la tasa de bits de los datos de navegación es relativamente alta (como para Galileo), dado que esto conduce a una probabilidad significativa de que una transmisión del código de propagación tenga la polaridad opuesta de la transmisión inmediatamente anterior del código de propagación.
ANTHONY R PRATT: “A New Class of Spreading Codes Exhibiting Low Cross-Correlation Properties”, ION GPS 2002, 24 de septiembre de 2002 (), páginas 1554-1564, XP002346067, Portland, Oregón, EE.UU. Recuperado de Internet:
RL:
http://www.ion.org/members_only/pdf_print.cfm?faction=retrieve&jp=proceedings&Ip=0902&In=179&check=DAFA C3A23866A214179508C96B14E84C, describe una clase de códigos de propagación con propiedades de baja correlación cruzada con un conjunto definido de códigos de propagación existentes - la clase base. Las propiedades de estas clases de código de propagación, construidas sobre una base de clase de código, muestran propiedades de baja correlación cruzada con todos los miembros de la clase base. Es decir, las correlaciones cruzadas de Doppler cero son cero con la clase base. Las propiedades de correlación cruzada entre miembros de la nueva clase de código generalmente reflejan las propiedades de correlación cruzada de la clase base. Otro ejemplo de cómo encontrar secuencias de espectro ensanchado con propiedades óptimas se describe por la publicación de patente US 5.963.584A de Boulanger et al.
Compendio de la invención
La presente invención proporciona un receptor que incorpora un conjunto de patrones de bits almacenados, según la reivindicación 1 de las reivindicaciones adjuntas.
La invención proporciona además un método de operación de un receptor según la reivindicación 17 de las reivindicaciones adjuntas.
Por consiguiente, una realización de la invención proporciona un método para crear un conjunto de códigos de propagación para su uso en un sistema de navegación por satélite que comprende una constelación de satélites. A cada satélite en la constelación se le ha de asignar un código de propagación del conjunto de códigos de propagación. El método comprende generar un conjunto inicial de patrones de bits, en donde cada patrón de bits representa un código de propagación potencial, y luego realizar un proceso de optimización sobre el conjunto inicial de patrones de bits. En el proceso de optimización, al menos algunos de los patrones de bits en el conjunto inicial se modifican o sustituyen con el fin de crear un conjunto final de patrones de bits para su uso como el conjunto de códigos de propagación.
Tal enfoque, por lo tanto, evita el uso de códigos generados a partir de algoritmos matemáticos en favor de códigos creados como patrones de bits a través de un proceso de optimización. Tales códigos tienen una longitud típica de 1.000-10.000 bits para su uso en sistemas de navegación por satélite. De hecho, se puede seleccionar una longitud de código arbitraria para los códigos con el fin de adaptarse mejor a los otros requisitos operativos del sistema, en lugar de tener que seleccionar una longitud de código que satisfaga un algoritmo matemático particular.
Cada patrón de bits en el conjunto inicial de patrones de bits se genera como una secuencia aleatoria de bits. Los patrones de bits iniciales individuales se modifican antes de la optimización para imponer ciertos criterios - que los patrones de bits estén equilibrados y que los primeros lóbulos laterales de autocorrelación para cada patrón de bits sean cero. El proceso de optimización se dispone entonces para dejar estas propiedades invariables, asegurando por ello que el conjunto final de patrones de código también esté equilibrado y tenga los lóbulos laterales de autocorrelación fijados a cero. Otros criterios que se podrían imponer de esta manera incluyen la longitud máxima de recorrido de un valor de bit particular (ya sea uno y/o cero). Alternativamente, tales criterios se podrían incorporar en el proceso de optimización general, en lugar de ser abordados como condiciones preliminares.
El proceso de optimización busca minimizar una función de coste para el conjunto de patrones de bits. La función de coste se basa en los valores de autocorrelación y correlación cruzada para el conjunto de patrones de bits, por ejemplo, incluyendo tanto valores de autocorrelación como de correlación cruzada impares y pares (para acomodar posibles inversiones en la polaridad entre ciclos sucesivos de un código de propagación). Los valores de correlación cruzada se calculan para todos los posibles desplazamientos entre los patrones de bits. En general, se obtiene una mejor convergencia del procedimiento de optimización si la función de coste se basa en múltiples valores de correlación (en lugar de, por ejemplo, sólo el peor valor de correlación en cualquier conjunto dado de patrones de bits). En una implementación particular, la función de coste se basa en una suma de todos los valores de autocorrelación y de correlación cruzada mayores que un límite predeterminado, tal como el límite de Welch (o algún múltiplo del mismo).
Los patrones de bits se modifican durante el proceso de optimización dando la vuelta aleatoriamente a los bits en al menos uno de los patrones de bits. Las modificaciones de bits se invierten si se encuentra que conducen a una función de coste aumentada (asegurando por ello que el conjunto de patrones de bits no se deteriore). El número de
5
10
15
20
25
30
35
40
45
50
55
bits dados la vuelta se disminuye a medida que disminuye la función de coste, proporcionando por ello una búsqueda más sensible alrededor de un mínimo de la función de coste.
Se apreciará que hay una amplia variedad de estrategias de optimización conocidas, tales como recocido simulado, algoritmos genéticos, etc., y se puede emplear cualquier estrategia adecuada tal para crear el conjunto final de patrones de bits.
Otra realización de la invención proporciona un receptor que incorpora un conjunto final de patrones de bits creados usando un método tal como se ha descrito anteriormente. En una implementación, los patrones de bits se pueden proteger por un código de corrección de errores, y se pueden almacenar en una memoria de sólo lectura (ROM) o una memoria de sólo lectura (ROM) programable. Obsérvese que esta última opción permite que los patrones de bits sean actualizados si así se desea. Se apreciará que se pueden usar otras formas de almacenamiento para mantener los patrones de bits, que son relativamente pequeños - cada patrón es típicamente menor que IkByte (aunque la naturaleza aleatoria de los patrones de bits implica que no está disponible una representación más compacta o comprimida, a diferencia de la situación con los códigos Gold).
En algunas implementaciones, el receptor puede incorporar patrones de bits para al menos dos constelaciones de satélites, donde una de las constelaciones de satélites comprende el GPS. Obsérvese que los códigos de propagación de GPS son códigos Gold, y normalmente se generan dentro de un receptor usando un registro de desplazamiento de realimentación lineal. Sin embargo, el presente enfoque, en efecto, se puede reequipar en sistemas de GPS, permitiendo por ello que un único enfoque sea usado para múltiples sistemas de navegación por satélite.
En algunas implementaciones, los patrones de bits para su uso por un receptor se pueden almacenar en un dispositivo de memoria extraíble. Esto puede facilitar la actualización de los códigos usados por el receptor, sustituyendo el dispositivo de memoria extraíble con una nueva versión que contiene códigos actualizados. En otras implementaciones, el receptor puede ser capaz de acceder a códigos (actualizados) sobre una red tal como Internet. Estos códigos luego se pueden descargar al receptor para permitir la adquisición de las señales de posicionamiento por satélite. Con este último enfoque, los códigos no necesitan ser almacenados necesariamente en el receptor en sí mismo, sino que se pueden acceder como y cuando se requiera sobre la red.
Otra realización de la invención proporciona un método de operación de un receptor para su uso en conjunto con un sistema de navegación por satélite. El método comprende acceder a un conjunto de patrones de bits almacenados que corresponden con códigos de propagación usados por el sistema de navegación por satélite. El método comprende además usar los patrones de bits almacenados para adquirir señales del sistema de navegación por satélite. Los patrones de bits almacenados también se pueden usar para realizar la determinación de la posición en relación con las señales del sistema de navegación por satélite.
Otra realización de la invención proporciona un método de operación de un satélite que comprende parte de un sistema de navegación por satélite. El método incluye almacenar dentro del satélite al menos un patrón de bits correspondiente a un código de propagación; recuperar el patrón de bits para generar una señal que incorpora el código de propagación; y transmitir la señal. El mismo método se puede aplicar a un pseudolito (un transmisor con base en tierra que emula un satélite en un sistema de navegación por satélite).
En una implementación, la recuperación incluye realizar una comprobación de código de corrección de errores (ECC) sobre el patrón de bits almacenado. Esto puede ser útil para detectar y, si es posible, corregir cualquier error que haya surgido en el patrón de bits almacenado (por ejemplo, debido a un golpe de rayo cósmico). El patrón de bits se puede almacenar en una memoria de sólo lectura programable (PROM), que luego permite la actualización del patrón de bits almacenado según sea apropiado. Por ejemplo, la actualización se puede realizar en respuesta a un error detectado en el patrón de bits almacenado o para evitar la interferencia del código de propagación correspondiente al patrón de bits almacenado. Otra posibilidad es que la actualización se haga para restringir el conjunto de usuarios que pueden acceder al código de propagación del satélite (por razones o bien comerciales o bien de seguridad).
El enfoque descrito en la presente memoria almacena, por lo tanto, un código de propagación entero en un dispositivo de memoria, tal como un registro, en lugar de usar un registro de desplazamiento de realimentación lineal (LFSR) para la generación de código. Tal dispositivo de memoria está presente tanto en la carga útil del satélite, para la transmisión de código, como también en los receptores, para la recepción de código. El código se lee del dispositivo de memoria bit por bit, a diferencia de ser generado según algún algoritmo matemático. Esto permite que cualquier forma de código sea utilizada - en particular, no se requiere que el código sea un tipo de código Gold, un código Gold parcial, un código Gold de ciclo corto o una combinación de tales códigos. Los códigos se optimizan de manera activa para las propiedades deseadas, tales como lóbulos laterales mínimos en la función de autocorrelación (ACF) y correlación cruzada mínima con otros códigos. Los lóbulos laterales mínimos conducen a unas propiedades de adquisición mejores, por ejemplo, la señal se puede adquirir más fácilmente bajo condiciones de recepción escasa, tal como en interiores y bajo follaje de árboles, mientras que la correlación cruzada mínima con otros códigos reduce la interferencia de acceso múltiple y el ruido dentro del sistema, aumentando por ello la robustez de la adquisición de señal, el seguimiento y la demodulación de datos. Además, los códigos se construyen de manera
5
10
15
20
25
30
35
40
45
50
que el equilibrio siempre es perfecto, y el primer lóbulo lateral de la ACF se fija a cero. Esta última propiedad implica que la forma de la aCf en la región - Tc a Tc es siempre la misma (donde Tc representa la longitud de chips o de bits en el código). Los códigos proporcionados son compatibles con el uso de códigos que tienen una estructura jerárquica - es decir, basados en códigos primarios y secundarios. Por ejemplo, un código proporcionado según una realización de la invención se puede usar como el código primario para un código por niveles, proporcionando por ello una adquisición rápida al tiempo que mantiene buenas propiedades de correlación.
El enfoque descrito en la presente memoria permite que una decisión sobre la forma final de los códigos de propagación sea retrasada hasta una etapa muy avanzada de desarrollo del sistema, dado que el hardware (por ejemplo, un dispositivo de memoria) normalmente no será específico a un código dado (a diferencia de un LFSR particular). Además, la memoria puede acomodar un nuevo código de propagación a ser difundido desde un satélite en órbita cargando el nuevo código en la memoria. Esto puede ser útil para pruebas en órbita de códigos durante la última fase de implementación o puesta en marcha, o si es necesario transmitir un código diferente al originalmente planeado, por ejemplo, debido a interferencia con otros servicios, o debido a que ciertos intervalos se han reasignado. Además, la revisión de códigos también puede ser útil con propósitos comerciales, si se requiere tal vez un pago de licencia para obtener los nuevos códigos, o por razones de seguridad, para limitar el acceso a los servicios de posicionamiento a aquellos en posesión de los nuevos códigos.
Obsérvese que aunque el enfoque descrito en la presente memoria está destinado principalmente para su uso en sistemas de navegación por satélite (incluyendo pseudolitos), también se podría emplear en otros sistemas de navegación o de comunicación (por satélite, terrestre o marítima) que hayan usado LFSR previamente para generar códigos de sincronización y semejantes.
Breve descripción de los dibujos
Varias realizaciones de la invención se describirán ahora en detalle a modo de ejemplo solamente con referencia a los siguientes dibujos:
La Figura 1 es un diagrama de flujo de alto nivel de un método para generar un conjunto de códigos según una realización de la invención;
La Figura 2 es un diagrama de flujo de alto nivel que ilustra con más detalle el proceso de inicialización del método de la Figura 1 según una realización de la invención;
La Figura 3 es un diagrama de flujo de alto nivel que ilustra con más detalle el proceso de optimización del método de la Figura 1 según una realización de la invención;
La Figura 4 es un gráfico que muestra la reducción en la función de coste con optimización para un primer conjunto de códigos según una realización de la invención;
La Figura 5 es un gráfico que muestra los valores de correlación impar y par para un conjunto de códigos de GPS;
La Figura 6 es un gráfico que muestra los valores de correlación impar y par para el conjunto de códigos resultantes de la optimización de la Figura 4;
La Figura 7 es un diagrama esquemático de alto nivel de un sistema de satélite según una realización de la invención;
La Figura 8 es un diagrama esquemático de alto nivel de un sistema receptor según una realización de la invención;
La Figura 9 es un gráfico que muestra la reducción en la función de coste con optimización para un segundo conjunto de códigos según una realización de la invención;
La Figura 10 es un gráfico que muestra la mejora en los valores de correlación para el segundo conjunto de códigos resultantes de la optimización de la Figura 9;
La Figura 11 es un gráfico que muestra la reducción en la función de coste con optimización para un tercer conjunto de códigos según una realización de la invención; y
La Figura 12 es un gráfico que muestra la mejora en los valores de correlación para el segundo conjunto de códigos resultantes de la optimización de la Figura 11.
Descripción detallada
A diferencia de las técnicas de la técnica anterior para encontrar códigos de propagación, que se basan en códigos derivados de algoritmos matemáticos, el presente enfoque usa códigos de propagación que no cumplen con ninguna estructura matemática formal particular. Más bien, se permiten códigos de propagación que tienen secuencias de bits arbitrarias, y se hace un intento de determinar un conjunto óptimo de códigos de propagación para su uso en base a uno o más criterios objetivos.
5
10
15
20
25
30
35
40
45
50
55
Obsérvese que para códigos de propagación de una longitud típicamente usada en sistemas de navegación por satélite (digamos 1.000 bits o más), el número de códigos posibles es muy grande (una vez que se eliminan las restricciones en cuanto a estructura matemática). Por ejemplo, para un período de código de longitud N bits, el número total de secuencias de bits equilibradas se puede especificar como:
' N ^ kN¡2j
imagen1
(Ec. 1)
el cual para N = 16.384 bits corresponde a ~104930 (mucho más que los 8.192 códigos Gold de longitud 16.384 bits). Este número muy grande de posibles códigos equilibrados implica que un examen exhaustivo de todos los conjuntos de códigos posibles no es factible computacionalmente. Más bien, el presente enfoque adopta alguna forma de procedimiento de optimización, como se describe con más detalle a continuación.
El número de códigos a ser incluido dentro de un conjunto de códigos dado es dependiente de los requisitos particulares del sistema de navegación por satélite. Tales sistemas generalmente están diseñados para funcionar con algunos de 24-30 satélites diferentes, además normalmente hay repuestos potenciales en caso de fallo. El número deseado de códigos dentro de un conjunto de códigos se puede aumentar aún más para acomodar señales de “pseudolito”. Estas son señales emitidas desde ubicaciones en tierra, por ejemplo, cerca de aeropuertos, que a un receptor le parecen señales de navegación por satélite adicionales, y así pueden dar una determinación de posición más precisa y fiable en tales ubicaciones. Además, se puede desear cambiar el conjunto de códigos de propagación difundidos desde un satélite sobre una base regular. Esto puede ser útil por razones de seguridad o comerciales, por ejemplo, cuando el acceso a los nuevos códigos está condicionado al pago de una tasa de licencia, o está restringido a ciertos conjuntos de usuarios gubernamentales o militares.
La Figura 1 es un diagrama de flujo de alto nivel del método usado para generar conjuntos de códigos según una realización de la invención. El método comienza con la generación de un conjunto inicial de patrones (105) de bits. Cada patrón de bits representa un código de propagación potencial para su uso por un satélite. Los patrones de bits entonces se modifican según un proceso de optimización (110). El conjunto de patrones de bits restantes al final del proceso de optimización entonces representa el conjunto de códigos para su uso por los satélites (115).
La Figura 2 es un diagrama de flujo de alto nivel que ilustra con más detalle el método usado para la generación del conjunto inicial de patrones de bits (correspondiente a la operación 101 en la Figura 1) según una realización de la invención. El método comienza con la generación de un conjunto de patrones de bits aleatorios para el conjunto (205) de códigos inicial. En una implementación particular, el número de patrones de bits generados para el conjunto inicial corresponde al número de códigos de propagación que se desean finalmente. Sin embargo, como se discutirá a continuación, otras implementaciones pueden tomar un conjunto inicial más grande de patrones de bits. Obsérvese que debido a que los patrones de bits se generan sobre una base aleatoria en lugar de usando algún algoritmo matemático específico (tal como para los códigos Gold), los patrones de bits pueden ser de longitud arbitraria. Esta longitud se puede seleccionar, por lo tanto, según las necesidades operativas particulares del sistema por satélite (por ejemplo, tiempo de adquisición, precisión posicional), en lugar de estar dictada por el formato de código seleccionado.
Los patrones de bits iniciales se generan proporcionando un valor inicial a un generador de números (pseudo) aleatorios. En una implementación particular, el valor inicial usado para crear cada secuencia de bits se escribe en un archivo de registro, de modo que el proceso se puede repetir de manera determinista si se desea. Esta implementación también permite que el conjunto inicial de códigos sea cargado desde un archivo (en lugar de ser generado sobre una base aleatoria). Esto es conveniente si ha de ser iniciada una nueva búsqueda usando los resultados de una búsqueda previa como punto de partida.
El procedimiento de la Figura 2 determina si se satisfacen o no (215) las condiciones precursoras. Si hay condiciones precursoras que no se satisfacen, entonces los patrones de bits se pueden modificar para asegurar que se satisfagan (220) las condiciones precursoras, antes de iniciar el proceso de optimización principal.
Se aplican dos condiciones precursoras a los patrones de bits iniciales. El primero de éstas es que el código esté equilibrado - en otras palabras, haya por igual muchos unos y ceros en el código. En una realización particular, t suponiendo que A es igual al número de ceros en un patrón de bits y B es igual al número de unos, la prueba en la operación 215 determina por lo tanto si A = B. Si es así, entonces una operación 215 tiene un resultado positivo, y no se requiere ninguna acción adicional (con respecto a esta condición particular precursora). Por otra parte, si se encuentra en la operación 215 que A>B, entonces en la operación 220, (A-B) ceros se seleccionan aleatoriamente del patrón de bits y se dan la vuelta de 0 a 1, produciendo por ello un código equilibrado. Por el contrario, si B>A para el patrón de bits aleatorio inicial, entonces en la operación 220 se seleccionan aleatoriamente (B-A) unos del patrón de bits y se dan la vuelta de 1 a 0, produciendo de nuevo un código equilibrado.
La segunda condición precursora aplicada a los patrones de bits iniciales es que el primer lóbulo lateral (es decir, que corresponde a un desplazamiento de bits de una posición) de la función de autocorrelación (ACF) sea cero para
5
10
15
20
25
30
35
40
45
50
cada patrón de bits. Esta es una propiedad útil dado que asegura que la ACF tiene un comportamiento conocido (fijo) en las inmediaciones del desplazamiento cero, lo que tiene implicaciones para la curva S del receptor. Por ejemplo, el hecho de que la ACF verdadera (limpia) vaya desde la unidad en desplazamiento cero hasta cero en el primer lóbulo lateral se puede usar en ciertas técnicas de mitigación del multitrayecto, donde una estimación de la cantidad de interferencia presente se puede basar en el nivel de cualquier señal detectada en el primer lóbulo lateral. (Los efectos del multitrayecto para el sistema Galileo se discuten en “Effects of Masking and Multipath on Galileo Performances in Different Environments” de Malicorne et al, disponible en:
http://www.recherche.enac.fr/ltst/papers/saint_petersburg01.pdf).
Con el fin de obtener la ACF deseada para cada patrón de bits, la operación 215 de la Figura 2 determina por lo tanto el primer lóbulo lateral de la ACF para cada patrón de bits. Para aquellas secuencias de bits donde la ACF no es cero en el primer lóbulo lateral, el patrón de bits se modifica para obtener la ACF (220) deseada. En una implementación particular, esto se logra dando la vuelta un '1' elegido aleatoriamente y un '0' elegido aleatoriamente hasta que el primer lóbulo lateral de la ACF sea cero. Se apreciará que dar la vuelta a pares de bits de esta manera asegura que el patrón de bits permanezca equilibrado mientras se obtiene la ACF deseada. Otras realizaciones pueden adoptar un enfoque diferente (posiblemente más estructurado) para poner a cero el primer lóbulo lateral de la ACF en lugar de la selección aleatoria de bits para dar la vuelta como se ha descrito anteriormente (aunque en la práctica el rendimiento de esta última técnica es satisfactorio).
Las dos condiciones precursoras descritas anteriormente son ambas “locales” ya que se relacionan con un código individual, en lugar de ser dependientes de múltiples patrones de bits diferentes. Por consiguiente, es conveniente abordarlas durante una fase de inicialización, como se muestra en la Figura 2, antes del proceso de optimización de la operación 110 (véase la Figura 1). Sin embargo, en otras realizaciones, una o más de las condiciones precursoras anteriores se pueden incorporar en la fase de optimización, como otro componente de la función de coste para evaluar códigos (véase a continuación). Además, las condiciones precursoras a ser aplicadas pueden variar de una realización a otra. En algunas realizaciones, puede ser deseable imponer un límite superior en el número de bits consecutivos del mismo valor (por ejemplo, no más de, digamos, L unos consecutivos o L ceros consecutivos). Todavía una posibilidad adicional es imponer una estructura jerárquica sobre los códigos, de modo que se formen a partir de la combinación de los códigos primario y secundario generados aleatoriamente.
La Figura 3 ilustra a un nivel alto el proceso de optimización correspondiente a la operación 110 de la Figura 1. En un nivel alto, esto implica calcular una función de coste para los patrones (305) de bits actuales y determinar si se ha satisfecho (310) una condición de terminación o convergencia. Si es así, la optimización se ha completado, pero si no, entonces se actualiza (315) al menos uno de los patrones de código, y volvemos a la operación 305 para calcular la función de coste para el conjunto actualizado de patrones de bits.
En una implementación, la función de coste se determina en base a las funciones de autocorrelación/correlación cruzada par e impar, que se definen respectivamente de la siguiente manera:
W-l N-l
n=Cl y "=° (Ec. 2)
donde a y b son secuencias de código, k es el desplazamiento, N es el número de bits en el código yo es la función de signo, de manera que o (n) = -1 para n<0; yo (n) = +1 para n > 0. Si a = b, entonces se obtiene la función de autocorrelación. (Obsérvese que estas fórmulas suponen que los patrones de código se expresan como secuencias cíclicas, con cada chip representado como +1 o -1 según sea apropiado; los valores de correlación obtenidos todavía no están normalizados en el rango -1 a +1).
La ACF y la CCF pares corresponden a lo que se podría considerar como la ACF y la CCF convencionales. La ACF y la CCF impares reflejan la posibilidad de que ciclos sucesivos de un patrón de código puedan dar la vuelta a la polaridad. Una razón para tal vuelta a polaridad podría ser que el patrón de bits forma el código primario de un código jerárquico, como se ha descrito anteriormente, y por lo tanto se da la vuelta según el código secundario. Otra razón podría ser que la vuelta se hace multiplexando el código de propagación y los datos de navegación sobre el mismo canal. La ACF impar y la ACF par se determinan para cada secuencia de bits en el conjunto de códigos para cada valor de desplazamiento posible. La CCF impar y la CCF par se determinan para cada par de secuencias de bits en el conjunto de códigos, y para cada valor de desplazamiento posible entre las dos secuencias de bits en el par.
En una implementación, todas las funciones de correlación se evalúan con un método directo en el dominio del tiempo (en lugar de convertir a la frecuencia o el dominio de Fourier). Como se explica con más detalle a continuación, el tiempo que tardan tales cálculos no es tan importante, dado que la evaluación completa de la CCF y la ACF solamente se hace para el primer cálculo de la función de coste, pero no en etapas posteriores del proceso de optimización.
5
10
15
20
25
30
35
40
Se puede derivar una variedad de funciones de coste a partir de las ACF/CCF impares y pares como se ha calculado anteriormente. Una posible función de coste se basa en el pico máximo de CCF entre dos patrones de bits diferentes, y se puede especificar como:
a,brk '
;f '1 (Ec. 3)
Aquí a y b representan códigos diferentes, k representa el desplazamiento entre los dos códigos, y o y e representan las versiones par e impar de la función de correlación. El valor de M se ha usado con frecuencia en proyectos anteriores como métrica para evaluar conjuntos de códigos, y da una indicación de lo probable que es que el código de propagación desde un satélite se podría confundir con el código de propagación de otro satélite. Sin embargo, una deficiencia de esta métrica es que no tiene en cuenta cuántas veces ocurre el valor máximo de correlación. Por ejemplo, si un pico dado ocurre solamente una vez para un único par de patrones de código y un único desplazamiento, entonces esto podría ser mucho más aceptable que si ocurre el mismo pico para múltiples pares de patrones de código y en múltiples desplazamientos, dado que en este último caso, la probabilidad de una identificación errónea en el receptor es mucho mayor.
Además, las propiedades de convergencia de un proceso de optimización basado en el valor de M sólo son relativamente pobres. Por lo tanto, dado que el pico máximo de CCF depende solamente de un valor, a medida que el algoritmo de optimización converge, pronto llega a ser poco probable que un cambio aleatorio en los bits de código dé como resultado un coste reducido. Si hay muchos picos con el mismo valor máximo, este problema es incluso más pronunciado.
Otra posible función de coste es la Suma del valor absoluto de todos los picos de correlación cruzada con la potencia de n:
s.» Efe)-
aj?,k
ie¡u,e¡ (Ec. 4)
donde pruebas prácticas han demostrado que los valores adecuados de la potencia n incluyen 2 y 6. Esto tiene la ventaja en comparación con el uso sólo del valor pico de correlación cruzada (M) de que depende de muchos más valores (de hecho, todos los valores de correlación posibles), y así generalmente exhibe mejores propiedades de convergencia.
Una posibilidad adicional para la función de coste se deriva del límite de Welch, que se define en la bibliografía como:
(Ec. 5)
donde M es el número de secuencias, y N es la longitud de las secuencias. El límite de Welch se puede usar para especificar el criterio de exceso de Welch, que se define por la siguiente ecuación:
We0 := £(Xo -WB)¡
a,b,k
X>WB
(Ec. 6)
Esta es básicamente una suma de todos los picos de ACF y de CCF (tanto pares como impares) que están por encima del límite de Welch (aquellos que están por debajo del límite de Welch se descuentan de la suma). En particular, el límite de Welch se resta de cada uno de los picos y el valor residual tomado para la potencia de n, donde n es configurable, y se ha encontrado que valores apropiados a partir de experiencia incluyen 2, 6 u 8. La función de coste Wen excluye valores de correlación de bajo nivel de la optimización, y así se puede ver como un compromiso entre el uso de Sn como función de coste, que incorpora todos los valores de correlación, y M, que incorpora solamente el valor pico de correlación.
Se apreciará que aunque Wen, M y Sn representan posibles funciones de coste para su uso en la operación 305 (y Wen se ha encontrado particularmente adecuado), otras implementaciones pueden usar otras funciones de coste o combinaciones de funciones de coste. Cada función de coste seleccionada conducirá a diferentes códigos de una manera diferente. Una opción podría ser decir que un código es bueno si el lóbulo lateral máximo es pequeño, mientras que otra opción podría ser decir que un código es bueno si la suma de todos los lóbulos laterales es pequeña. También es posible una combinación de más de una función de coste (tal como requerir que tanto el lóbulo lateral máximo como la suma de los lóbulos laterales sean pequeños). Las funciones de coste se basan en las funciones de correlación y/o en algunas otras métricas, por ejemplo, tener un código equilibrado También,
imagen2
5
10
15
20
25
30
35
40
45
50
55
dependiendo de la estructura de señal a ser empleada, las funciones de correlación impares podrían no ser de interés (especialmente si se mantiene en todas la misma polaridad del código de propagación).
También se apreciará que la función de coste seleccionada puede no coincidir exactamente con los criterios de selección final para determinar el conjunto de códigos eventual. Esto se debe a que la función de coste generalmente se seleccionará para proporcionar una buena convergencia, y esto se puede ayudar generalmente haciendo que la función de coste dependa de una fracción significativa de los picos de CCF, incluso si los criterios de evaluación definitivos pueden depender solamente de un único valor pico de CCF.
En la presente implementación, la función de coste evalúa las funciones de correlación cruzada solamente en Doppler cero (es decir, ignorando cualquier posible desplazamiento Doppler en las señales que surgen del movimiento en el espacio de los satélites). La razón principal de esto es un fenómeno observado empíricamente para conjuntos de códigos que tienen una distribución aproximadamente gaussiana de picos de correlación cruzada, ya que se observa que, en media, el histograma de picos de CCF tiende a desplazarse hacia cero para condiciones de Doppler distintas de cero. (Obsérvese que, por el contrario, los códigos Gold tienen una distribución altamente no gaussiana de los picos de correlación cruzada y, por consiguiente, el efecto de las condiciones de Doppler distintas de cero puede ser más significativo para esta clase de códigos).
La determinación de cuándo el proceso de optimización ha concluido en la operación 310 se puede hacer según diversos criterios, tales como debido a que el número total de ensayos (es decir, bucles a través del procesamiento de la Figura 3) ha alcanzado algún límite preestablecido, o debido a que la función de coste ha alcanzado algún nivel aceptablemente bajo. Otra posibilidad es que el procedimiento de optimización haya alcanzado una convergencia a algún mínimo de la función de coste. Se apreciará que un problema estándar en los procedimientos de optimización tales como el mostrado en la Figura 3 es que la función de coste se atasca en un mínimo local, y no hay salida cuando se dan pequeños pasos. Sin embargo, en la presente solicitud, la función de coste reside en un espacio dimensional muy alto (muchos bits dentro de cada patrón de bits y muchos patrones de bits). Por lo tanto, es muy probable que haya alguna forma de salir de cualquier mínimo local, debido a que el gran número de dimensiones ofrece muchas direcciones en las que explorar eligiendo diferentes actualizaciones de los patrones de código.
Si el resultado de la operación 310 es negativo, ya que la optimización ha de continuar, entonces se actualizan los patrones de código (315) (volveremos a las operaciones 312 y 314 más tarde). Esto se logra dando la vuelta aleatoriamente a un cierto número de bits en un código. El número de bits a ser dado la vuelta puede depender de lo buenos que hayan llegado a ser los códigos (es decir, lo baja que es la función de coste). En general, a medida que los códigos llegan a ser mejores, y la función de coste llega a ser menor, se puede reducir el número de bits a dar la vuelta. Esto permite entonces una búsqueda más tosca del espacio de optimización cuando está relativamente lejos de un mínimo de la función de coste, y se plantea una búsqueda más fina del espacio de optimización como mínimo.
En una implementación, la identidad del patrón de código a modificar se puede seleccionar al azar. Alternativamente, puede haber alguna razón específica para seleccionar un patrón de código a modificar. Por ejemplo, el par de códigos que produjo el (o un) pico máximo de correlación se puede seleccionar para actualizar con preferencia a los otros códigos.
En una realización particular, se hace una prueba en la operación 312 para confirmar que el cambio de bits en la operación 315 condujo a una mejora (es decir, una reducción) en la función de coste. Si se encuentra que éste no es el caso, los bits se invierten de nuevo a la posición anterior (operación 314), en otras palabras, se invierte la actualización de la operación 315, y se seleccionan nuevos pares de bits para dar la vuelta en la próxima actualización (operación 315). Se apreciará que la presencia de la prueba 312 y la operación 314 aseguran que el proceso de optimización no vaya hacia atrás, en el sentido de hacer la función de coste más grande en lugar de más pequeña.
La optimización se realiza sujeta a ciertas condiciones precursoras, que en una realización son que los códigos estén equilibrados y tengan un cero en el primer lóbulo lateral de ACF (como se ha tratado previamente en relación con la Figura 2). Una vez que las condiciones precursoras (en su caso) hayan sido establecidas, el método de actualización de los patrones de código en la operación 315 se puede seleccionar de modo que estas propiedades se mantengan invariables. En una implementación, esto se logra de la siguiente manera:
Invarianza de equilibrio: los bits siempre se dan la vuelta en pares dentro de cada código seleccionando un bit con el valor 0 a dar la vuelta y un bit con el valor 1 a dar la vuelta. Esto asegura que el código se modifique de una forma invariable de equilibrio, de modo que el equilibrio del código siga siendo el mismo antes y después de dar la vuelta a los bits. Por lo tanto, si los códigos están equilibrados cuando se inicializan (como en la operación 220), permanecen equilibrados a lo largo de todo el procedimiento de optimización.
Invarianza del lóbulo lateral de la ACF: suponiendo que los bits seleccionados para dar la vuelta son aj y ak, lo que para la invarianza de equilibrio implica que: ak = - aj, entonces es fácil mostrar que el primer lóbulo lateral de la función ACF no cambia proporcionando:
ak-i + ak+i = aj-i + aj+i (Ec. 7)
5
10
15
20
25
30
35
40
45
50
Si igualmente esto no se cumple, entonces se deben seleccionar nuevos bits aj y ak para dar la vuelta con el fin de conservar el valor cero del primer lóbulo lateral de la ACF. De manera más general, si durante la inicialización (véase la Figura 2), los códigos se han construido de manera que el enésimo lóbulo lateral de la ACF sea cero, entonces esto se puede conservar asegurando que:
ak-n + ak+n = aj-n + aj+n (Ec. 8)
Por consiguiente, la actualización de código de la operación 315 se puede controlar para asegurar que la parte central de la ACF (es decir, alrededor del desplazamiento cero) conserve la misma forma para todos los códigos.
Se pueden imponer otras condiciones precursoras o invariables según sea apropiado. Por ejemplo, se puede colocar un límite en la longitud máxima de recorrido de cualquier bit único (1 o 0) en una secuencia de patrón de bits. Otra posibilidad es que los códigos tengan una estructura jerárquica. En este caso, la operación de actualización 315 puede implicar una modificación por separado de la parte primaria y/o secundaria del código, y luego la generación de un nuevo patrón de código (de longitud completa) a partir de los códigos primario y secundario (según se modifique).
Un criterio adicional que se puede aplicar o bien como condición precursora o bien como parte del procedimiento de optimización refleja el hecho de que el sistema Galileo presentará una señal piloto similar a la portadora coherente en GPS L5. En GPS L5 esto se logra transmitiendo dos señales en cuadratura (en los canales I y Q). En tales circunstancias, es importante que las señales estén separadas no solamente por la ortogonalidad de las portadoras, sino también por los códigos en sí mismos, en otras palabras, que los códigos para los canales I y Q tengan una correlación cruzada para retardo cero que sea tan pequeña como sea posible (se apreciará que el retardo de tiempo entre estos dos canales es fijo). El procedimiento de optimización descrito en la presente memoria permite la correlación cruzada de dos canales superpuestos tales para que el retardo exactamente cero sea impuesto hacia (o restringido a ser) cero, es decir, - ro dB (en comparación con aproximadamente -60 a -70 dB para el código GPS L5). Se apreciará que una forma de modificar la CCF entre dos códigos es desplazar el inicio de un código con respecto al otro (usando la naturaleza cíclica de los códigos), en lugar de modificar la secuencia de bits de cualquiera de los códigos individuales.
Obsérvese que después de que se hayan actualizado los patrones de código en la operación 315, no se requiere un nuevo cálculo completo de las ACF y las CCF con el fin de actualizar la función de coste si solamente se ha dado la vuelta un pequeño número de bits en cada iteración. Más bien, si se da la vuelta a dos bits en un código que tienen el signo opuesto (para conservar el equilibrio), digamos aj y ak, el cambio en la función de correlación cruzada par se da por:
AX^UM^a^+bj.,) (Ec. 9)
donde n es el desplazamiento entre los códigos a y b. Esta actualización entonces se aplicará a las CCF ya calculadas. De manera similar, para las CCF impares obtenemos
Axr (j, k, n) = -2ak (a(k - n)bk_n + er(j - n)bj_t¡) (£c_ 1 Q) que de nuevo se usa para actualizar los valores de CCF impares calculados previamente.
El procedimiento anterior describe un procedimiento de optimización, pero se apreciará que hay muchas estrategias alternativas disponibles, basadas en conceptos tales como algoritmos genéticos, recocido simulado, etc. Por ejemplo, una posibilidad para la operación de actualización 315 es que en lugar de confiar en la modificación aleatoria de un código seleccionado aleatoriamente, un algoritmo puede hacer un intento más dirigido para reducir la función de coste. Esto se podría lograr seleccionando un código o par de códigos que generen un valor de correlación alto, y seleccionando una modificación de bits específicos dentro de estos códigos que contribuyen al valor de correlación alto. Otra posibilidad es intercambiar secuencias de bits parciales entre dos o más códigos diferentes (tal como en la fase de engendramiento de algoritmos genéticos o basados en la evolución). Se apreciará que algunas implementaciones pueden utilizar alguna combinación de modificaciones aleatorias, dirigidas y/o de intercambio para la operación 315, o realizar diferentes tipos de actualización para diferentes ciclos de optimización.
También se observará que en el procedimiento descrito anteriormente, el número de patrones de bits generados para el conjunto de códigos inicial corresponde al número de patrones de bits en el conjunto de códigos final (es decir, este último se deriva del primero mediante la modificación de los patrones de bits individuales que ya existen en el conjunto de códigos). Otros procedimientos de optimización pueden implicar en su lugar una población de patrones de bits mayor que los que se requieren para el conjunto final. Por ejemplo, si hay N patrones de código en el conjunto final, entonces se podría generar inicialmente un conjunto de P patrones de código (P>N). Cada ciclo de optimización entonces podría implicar retener el mejor subconjunto de (digamos) N patrones de código, y entonces generar otros P-N nuevos patrones de códigos para probarlos junto con el subconjunto retenido del ciclo anterior.
5
10
15
20
25
30
35
40
45
50
55
Algunas estrategias de optimización pueden combinar este enfoque de población mayor con la actualización de patrones de códigos individuales dentro de la población.
Una motivación para trabajar con una población de códigos grande es si los N patrones de código ya están desplegados en satélites, y se desea identificar patrones de códigos compatibles adicionales que se podrían usar en satélites de sustitución (o en servicios basados en tierra relacionados). Obsérvese que los N patrones de códigos originales podrían haber sido generados por un mecanismo diferente del que se muestra en la Figura 1 (por ejemplo, pueden ser códigos Gold), pero esto es transparente al presente enfoque, el cual es compatible con cualquier conjunto de códigos existente.
También se ha supuesto hasta ahora que hay una longitud predeterminada para los patrones de códigos en un conjunto de códigos. Sin embargo, puede haber alguna flexibilidad en la longitud del patrón de código que se adopte. En este caso, repetir el procedimiento de optimización con conjuntos de códigos de diferentes longitudes se puede usar para identificar una longitud de código que proporciona un conjunto de códigos que tiene propiedades particularmente favorables (es decir, una función de coste mínimo menor que conjuntos de códigos basados en una longitud diferente para el patrón de código).
Para patrones de código que tienen una longitud de bit muy corta, es factible computacionalmente realizar una búsqueda exhaustiva de todos los patrones de códigos posibles. Sin embargo, esto no es posible con los recursos computacionales actuales para patrones de códigos que tienen longitudes que se emplean normalmente para señales de navegación por satélite (como será evidente a partir de la Ecuación 1 anterior), y en estos casos se debe usar en su lugar un procedimiento de optimización.
La Figura 4 es un gráfico que ilustra el progreso del procedimiento de generación de códigos de la Figura 1 según una realización particular de la invención. Este ejemplo implica 20 códigos, cada uno de longitud 1.023 bits. Las secuencias de bits iniciales para los códigos se generaron al azar, y los códigos se optimizaron luego como se muestra por el número de ensayos (es decir, número de actualizaciones de código) a lo largo del eje X. El gráfico traza cuatro curvas como una función del número de pruebas. Tres de estas curvas se superponen en gran medida una sobre otra en la Figura 4, y así no se pueden distinguir fácilmente. Estas representan el valor de una función de coste calculada usando el límite de Welch - es decir, análoga a la función de coste de Wen de la Ecuación 6 anterior. Para este ejemplo particular, la función de coste se determinó como el 8° momento (es decir, n = 8) de todos los valores de correlación mayores a 1,8 veces el límite de Welch (en lugar de 1,0 veces el límite de Welch como se muestra en la Ecuación 6). Las tres curvas calculadas a partir del límite de Welch corresponden a: (a) las funciones de correlación par, (b) las funciones de correlación impar y (c) la combinación de las funciones de correlación tanto impar como par. Se verá que las curvas de las funciones de correlación par e impar se rastrean estrechamente unas a las otras (y por lo tanto así lo hace la curva combinada), sin diferencias importantes entre ellas.
La cuarta línea en la Figura 4 representa el valor de correlación más alto o de pico, análogo al valor M de la Ecuación 3 anterior. Obsérvese que esta línea es rectangular en forma y claramente está cuantificada a ciertos valores. Además, el valor de esta línea es constante en algunas etapas sobre un número significativo de ensayos. Esto confirma que el proceso de convergencia u optimización se comportará generalmente mucho mejor usando la curva suave para el valor Wen de la Ecuación 6, en lugar del valor de M de la Ecuación 3 (o análogos de la misma).
Sin embargo, como se ha mencionado anteriormente, a menudo es el valor de M el que puede ser de interés definitivo para la evaluación del conjunto de códigos, dado que éste determina el escenario del caso peor para cualquier identificación errónea. En la Figura 4, la escala del eje Y indica el valor de M (no el de W). El valor inicial de M es 149, y el valor optimizado final es 93. Estas son cifras no normalizadas, y para una longitud de código de 1.023, corresponden a un valor inicial de 16,7 dB, y un valor optimizado de 20,8 dB (en comparación con el pico de autocorrelación para desplazamiento de cero - es decir, la señal a una sincronización correcta).
La Figura 5 es un histograma de los valores de correlación (absoluta) para un conjunto de 20 códigos, cada uno de longitud 1.023, que se usan para GPS. El eje X en la Figura 5 denota un valor de correlación (la escala es por lo tanto directamente comparable con el eje Y de la Figura 4), mientras que el eje Y denota el número de combinaciones de códigos y desplazamientos que tienen este valor de correlación. Los valores de correlación se dividen en correlaciones impares y correlaciones pares. Las correlaciones pares comprenden el pico muy grande en uno, más los dos picos menores en 63 y 65. Estas propiedades de correlación para los códigos Gold de GPS son bien conocidas (véase, por ejemplo, la sección 7.6 del libro referenciado anteriormente de Misra y Enge). El pico en 65 corresponde a un valor de 24 dB por debajo del pico de autocorrelación para el desplazamiento cero.
Las barras restantes en el histograma de la Figura 5 representan los valores de correlación impar para los códigos Gold de GPS. Estos tienen una distribución bastante diferente de los valores de correlación par, y se distribuyen a través de una amplia gama de valores. El peor valor de correlación impar para los códigos de GPS es 153, que corresponde a 16,5 dB, aunque este valor de correlación es significativamente peor que los otros (el segundo peor valor de correlación impar para los códigos de GPS es 133, que corresponde a 17,6 dB).
La Figura 6 es un histograma análogo a la Figura 5, pero esta vez muestra los valores de correlación para el conjunto de códigos derivados de la optimización mostrada en la Figura 4. La Figura 6 traza los valores de
5
10
15
20
25
30
35
40
45
50
55
60
correlación por separado para las funciones impar y par, y también para conjuntos de códigos tanto de optimización previa como de optimización posterior. Dado que estos conjuntos diferentes no se pueden distinguir fácilmente por sí mismos, se ha añadido una línea a este histograma que termina en un valor de correlación de 93. Esto representa el límite superior del histograma para los valores de correlación de optimización posterior, mientras que los valores de optimización previos se extienden significativamente más allá de éste a un valor superior de 149 (consistente con el gráfico de la Figura 4).
El proceso de optimización, por lo tanto, ha dado como resultado una mejora de por encima de 4dB entre los estados inicial y final, que en una base estadística corresponde a más del doble de la longitud de código. Aunque el rendimiento de los códigos optimizados para una CCF está todavía por debajo del de los códigos Gold, la diferencia real es algo menor que la indicada por las Figuras 5 y 6. Esto se debe a que se ha encontrado en la práctica que los histogramas gaussianos, tal como se muestra en la Figura 6, tienden a moverse hacia la izquierda para Doppler distinto de cero, reflejando una disminución en los valores de correlación. Por el contrario, los picos agudos, tales como los mostrados en la Figura 5 en 63 y 65 para códigos Gold pares, tienden a correrse. Esto entonces conduce a un aumento en el valor de correlación de pico asociado con estos picos.
Además, el rendimiento de los códigos optimizados de la Figura 6 para CCF impar es generalmente mejor que el rendimiento de códigos Gold para CCF impar (que es típicamente comparable con el estado inicial de la Figura 6). Obsérvese que en GPS, la tasa de datos superpuesta sobre los códigos de propagación es relativamente baja, de modo que la probabilidad de una vuelta de bits entre códigos es solamente de 0,5/20 o 2,5%. El rendimiento para una CCF impar en GPS no es tan importante por lo tanto. A diferencia de Galileo, la tasa de datos superpuesta sobre los códigos de propagación es relativamente alta, de modo que la probabilidad de una vuelta de bits entre códigos es de 0,5 (50%). Se apreciará que en estas circunstancias, el rendimiento para una CCF impar es un factor mucho más significativo.
Además, en algunas circunstancias, puede ser deseable usar un código Gold truncado en lugar de un código Gold completo, con el fin de tener una longitud de código particular. El rendimiento de tales códigos Gold truncados se ha encontrado que es, en general, similar al conjunto de códigos inicializados de la Figura 6, y tan significativamente peor que el rendimiento del conjunto de códigos optimizado de la Figura 6.
La Figura 7 es un diagrama de bloques esquemático de alto nivel de un sistema 601 de transmisión para su uso en una carga útil de satélite según una realización de la invención. (Se apreciará que una estructura análoga también se podría usar en un pseudolito u otro dispositivo tal que emule un satélite). El sistema 601 de transmisión utiliza un código 611 de propagación tal como se genera usando el método de la Figura 1. El código 611 de propagación se almacena en un dispositivo 610 de memoria, que en actividades de difusión normales funciona como una memoria de sólo lectura. En un dispositivo 610 de memoria de implementación se puede operar desde una perspectiva lógica como un almacenador temporal circular, usando un puntero de lectura para hacer ciclos alrededor de la secuencia 611 de códigos almacenados (esto puede ser más simple de implementar que el diseño de LFSR convencional, que requiere operaciones de lectura y escritura múltiples para cada bit de salida).
En un sistema de navegación por satélite típico, la longitud de código 611 es del orden de 1.000 a 10.000 bits, aunque se pueden usar códigos más largos o más cortos, si es apropiado. Obsérvese que en algunas circunstancias el código 611 puede comprender un código jerárquico, en cuyo caso el dispositivo 610 de memoria se puede dividir en dos componentes, uno para almacenar el código primario y otro para almacenar el código secundario. En tal situación, el sistema de transmisión 601 también incluiría una lógica adecuada para generar el código completo a partir de los códigos primario y secundario almacenados. Alternativamente, incluso si el código 611 tiene una estructura jerárquica, aún se puede almacenar como una única secuencia larga en la memoria 610. Tener una estructura plana tal en memoria es útil, por ejemplo, si se desea sustituir el código 611 en la memoria 610 con algún código diferente (véase a continuación).
El tamaño de la característica de dispositivos de memoria modernos es muy pequeño. Los bits almacenados en la memoria 610 pueden ser vulnerables, por lo tanto, a los impactos de rayos cósmicos (especialmente en un entorno espacial) y a otra posible contaminación. Por consiguiente, en una realización, la salida del dispositivo 610 de memoria se pasa 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 es capaz de detectar un error en el código 611 que se lee 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 del 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 diferentes versiones discrepan, esto señala (es decir, detecta) un error en una de las versiones almacenadas. Si tres copias del código 611 se almacenan en la memoria 610, entonces cualquier error detectado se puede corregir automáticamente sobre la base de la mayoría de votos.
Un experto será consciente de muchos mecanismos de ECC de aplicaciones de comunicaciones de datos y almacenamiento de datos, tales como el uso de codificación convolucional, códigos de redundancia cíclica (CRC) y así sucesivamente. Estos generalmente tienen una eficacia mucho más alta que simplemente almacenar múltiples copias del código 611 - es decir, proporcionan una mejor protección contra errores con una sobrecarga menor en términos de capacidad de almacenamiento adicional.
5
10
15
20
25
30
35
40
45
50
55
60
La memoria 610 es normalmente lo suficientemente larga para almacenar la longitud completa del código 611. En otras palabras, si el código 611 tiene una longitud de 1.023 chips (por ejemplo), entonces la memoria 610 tiene una capacidad de al menos 1.023 bits para almacenar todo el código bit por bit (más almacenamiento adicional para cualquier redundancia o facilidad de ECC). Esto se debe a que si el código 611 representa una secuencia aleatoria arbitraria, entonces generalmente no se puede comprimir para su almacenamiento en la memoria 610. Esto es a diferencia de los sistemas de la técnica anterior que usan códigos Gold (o algún derivado de los mismos) - estos no necesitan almacenar todo el código de propagación, más bien pueden usar un LFSR para generar el código de propagación como y cuando se requiera.
Después de que el código haya pasado a través de la comprobación 612 de ECC, se combina con los datos 617 de navegación por el subsistema 620 de generación de canal. Esta combinación generalmente se realiza usando alguna forma de adición de módulo 2 (OR exclusiva). El canal resultante se pasa entonces a una unidad 625 de modulación, donde se superpone sobre una señal portadora usando algún mecanismo de modulación apropiado, tal como codificación por desplazamiento de fase binaria (BPSK). Obsérvese que en algunos sistemas por satélite, se pueden modular múltiples canales sobre una única señal portadora. La señal portadora se pasa entonces al transmisor 630 para su difusión a tierra.
Aunque en teoría el código 611 puede estar “cableado” en la memoria 610 antes del lanzamiento, es considerablemente más flexible si el dispositivo 610 de memoria incluye una capacidad de escritura - por ejemplo, se implementa como alguna forma de memoria de sólo lectura programable (PROM). Por ejemplo, si la comprobación 612 de ECC no descubre que el código 611 almacenado se ha dañado algo, entonces una capacidad de escritura para el dispositivo 610 de memoria permite que la versión correcta del código sea escrita de nuevo en el dispositivo 610 de memoria (la versión correcta del código puede estar disponible a partir de la unidad 612 de ECC en sí misma, o puede tener que ser tiene que ser provista por los sistemas de control en tierra). También puede haber otras distintas razones para querer actualizar el código 611 almacenado en la memoria 610. Por ejemplo, se podría instalar un nuevo código para ayudar a mejorar el rendimiento durante una fase de prueba, tal vez si el código original sufre de interferencia con algunos otros servicios o satélites. También podría haber razones comerciales o de seguridad para cambiar el código 611, el primero para elevar los ingresos por licencias, tal vez, el último para restringir el acceso a la señal de posicionamiento a personal adecuadamente autorizado.
Se apreciará que esta flexibilidad para cambiar el código de propagación emitido desde un satélite no existe en muchos sistemas existentes, dado que tales sistemas incorporan frecuentemente un LFSR que está cableado para generar un código Gold particular. Tales sistemas existentes entonces pueden cifrar el código de propagación para controlar el acceso al código de propagación (ya sea por razones comerciales o militares), pero tal cifrado puede impactar el rendimiento y la complejidad del receptor.
La Figura 8 es un diagrama de bloques esquemático de alto nivel de un receptor 701 según una realización de la invención. En operación, el receptor 701 incluye la antena 715 para recibir una señal de satélite tal como la transmitida por el satélite 601. La antena 715 se enlaza con un demodulador 720, que a su vez pasa la señal demodulada entrante a la unidad 725 de adquisición de canal.
El receptor 710 también incluye un dispositivo 710 de memoria que almacena los patrones 611A, 611B, ..., 611N de código para la constelación o las constelaciones de satélites soportadas por el receptor 701. El dispositivo 710 de memoria generalmente almacenará todos los patrones de bits para los códigos 611A, 611B, etc., dado que como se ha mencionado anteriormente, una representación más compacta de tales códigos generalmente no es posible en ausencia de cualquier estructura matemática formalizada.
El dispositivo 710 de memoria se puede proporcionar como una memoria de sólo lectura (ROM), o puede tener alguna capacidad de actualización, por ejemplo, siendo implementada como una memoria de sólo lectura programable (PROM). Esta última será particularmente apropiada cuando los códigos 611A, 611B, ..., 611N se sometan a actualización, o bien por razones comerciales o bien de seguridad. Obsérvese que en algunas circunstancias la memoria 710 puede representar alguna forma de medio de almacenamiento extraíble que se puede insertar y retirar del receptor 701. Por ejemplo, el dispositivo 710 de memoria puede comprender una tarjeta inteligente (análoga a una SIM en un teléfono móvil) o un dispositivo de memoria rápida. Esto entonces podría permitir que los códigos 611 en el receptor 701 se actualicen sustituyendo al dispositivo de memoria extraíble. Una posibilidad adicional es que el dispositivo 710 pueda ser capaz de descargar códigos desde un sistema remoto (por ejemplo, un servidor) sobre alguna red de comunicación, tal como Internet o una conexión de teléfono móvil, para almacenamiento y uso de la RAM local. Esta descarga puede estar sometida a una autorización apropiada del usuario, con el fin de restringir el uso del sistema de navegación por satélite por razones comerciales, de seguridad o legales.
En algunas implementaciones, la salida de la memoria 710 se pasa a través de una unidad 712 de ECC para realizar la detección y/o corrección de errores como se ha descrito anteriormente en relación con el sistema 601 de satélite, aunque en otros receptores se puede omitir el mecanismo 712 de comprobación de ECC. El código 611 se proporciona entonces a la unidad 725 de adquisición de canal de modo que el canal se pueda adquirir a partir de la señal demodulada. Obsérvese que tal adquisición se puede realizar secuencialmente ensayando un código 611A, luego otro 611B, y así sucesivamente. Alternativamente, múltiples códigos (potencialmente todos ellos) se pueden
5
10
15
20
25
30
35
40
45
50
correlacionar contra la señal demodulada en paralelo. Una vez que el receptor ha bloqueado una señal entrante identificando la presencia de un código 611A, 611B de propagación particular, los datos de navegación de esa señal se pueden extraer y usar por la unidad de determinación de posición junto con la temporización del código de propagación recibido para ayudar a calcular la ubicación del receptor.
En muchas realizaciones, el receptor 701 puede ser capaz de recibir señales de más de un sistema de navegación por satélite, por ejemplo, tanto de Galileo como de GPS. Aunque los códigos de propagación para GPS comprenden códigos Gold que se pueden implementar como los LFSR, se apreciará que tales códigos también se pueden almacenar en su totalidad dentro del dispositivo 710 de memoria. Por consiguiente, la única arquitectura de memoria 710 es compatible tanto con patrones de códigos específicos o hechos a medida, tales como los producidos usando el método de la Figura 1, así como los patrones de códigos convencionales derivados de los LFSR.
La Tabla 1 establece los códigos primarios a ser usados para los canales E6-B y E6-C de Galileo, mientras que la Tabla 2 establece los códigos primarios a ser usados para los canales L1-B y L1-C de Galileo (véase el documento referenciado anteriormente de Hein et al. para más información acerca de los diferentes canales de Galileo). En funcionamiento, el código E6-C se combina con un código secundario de 100 chips, y el código L1-C se combina con un código secundario de 25 chips (no hay códigos secundarios para los canales E6-B o L1-B).
El conjunto de códigos de la Tabla 1 comprende 100 códigos, que cubre una constelación operativa de satélites (típicamente 24-30), más cualquier misión de sustitución, posibles pseudolitos, etc., mientras que el conjunto de códigos de la Tabla 2 comprende 137 códigos (que proporcionan códigos adicionales para su uso con otro sistema de navegación por satélite compatible si se requiere). Los códigos E6-B y E6-C tienen cada uno una longitud de 5.115 bits, mientras que los códigos L1-B y L1-C tienen cada uno una longitud de 4.092 bits. Estas longitudes de códigos se ha determinado que proporcionan la tasa de bits deseada para los datos de navegación relevantes, más la selección de una tasa de chips que es un múltiplo integral de la tasa de chips usada por los satélites de GPS (lo que ayuda a la compatibilidad entre los sistemas de GPS y de Galileo).
Los códigos se representan usando una base 64 - es decir, cada 6 bits se agrupan y se representan mediante un único símbolo según la Tabla 3 a continuación. Los listados de las Tablas 1 y 2 se han rellenado al final para completar la codificación de base 64 (es decir, los códigos de propagación reales representan los primeros 5.115 bits para la Tabla 1, y los primeros 4.092 bits para la Tabla 2). Se pueden encontrar detalles adicionales acerca de la codificación y decodificación de la base 64 en la rfc 1113 (véase
www.faqs.org/rfcs/rfc1113.html).
Decimal
0-25 26-51 52-61 62, 63
Binario
000000-011001 011010-110011 110100-111101 111110-111111
Símbolo
A-Z a-z 0-9 +,/
Tabla 3 - Codificación de base 64
Cada uno de los satélites Galileo se provee con uno de los códigos E6-B, E6-C, L1-B y L1-C de las Tablas 1 y 2 para su difusión. Por el contrario, un receptor 701 incorporará generalmente el conjunto completo de códigos para cada uno de los servicios que soporta, aunque en algunos casos un receptor solamente puede soportar un subconjunto del total de códigos para un servicio, por ejemplo, solamente los que han sido asignados a satélites lanzados. También se apreciará que un receptor generalmente puede tolerar discrepancias menores entre sus códigos almacenados y los recibidos desde un satélite. En otras palabras, los códigos almacenados en un receptor pueden no coincidir exactamente con los de las Tablas 1 y 2 (dependiendo de los servicios soportados), pero estarán lo suficientemente cerca como para permitir la identificación de y sincronización con los códigos relevantes.
Las Figuras 9 y 10 ilustran el proceso de optimización para los códigos E6 (chips), mientras que las Figuras 11 y 12 ilustran el proceso de optimización para los códigos L1 (chips 4.092). Las Figuras 9 y 11 tienen generalmente el mismo formato que el descrito anteriormente con respecto a la Figura 4, y muestran la mejora en la función de coste como resultado del procedimiento de optimización. La abscisa en estos diagramas representa el número de ensayos, mientras que la ordenada representa dos funciones de coste diferentes. La primera función de coste se basa en el límite de Welch, análogo al dado por la Ecuación 6 anterior, y corresponde a la escala en el lado izquierdo del gráfico. La segunda función de coste representa el valor máximo del lóbulo lateral (no normalizado), análogo al dado por la Ecuación 3 anterior, y corresponde a la escala en el lado derecho del gráfico. Obsérvese que estas dos funciones de coste se calculan usando funciones de correlación tanto impar como par.
Las Figuras 10 y 12 tienen generalmente el mismo formato que el descrito anteriormente con respecto a la Figura 6, y muestran la mejora en la función de coste entre los códigos iniciales y finales establecidos como resultado del procedimiento de optimización. En particular, estos dos diagramas representan histogramas del valor máximo del lóbulo lateral (no normalizado) para el conjunto de códigos iniciales y para el conjunto de códigos finales. En ambos casos, la función de coste se calcula usando las funciones de correlación tanto impar como par. En la Figura 10, se ha añadido una línea para demarcar más claramente entre los estados inicial y final. La parte punteada de esta línea sigue aproximadamente la parte superior del histograma para los valores bajos del lóbulo lateral para el conjunto de códigos iniciales, y se puede ver que ésta se encuentra por debajo del nivel del histograma correspondiente para el
5
10
15
20
25
30
35
40
45
50
conjunto de códigos finales. La parte punteada de esta línea sigue aproximadamente la parte superior del histograma para valores del lóbulo lateral más altos para el conjunto de códigos finales, y se puede ver que ésta se encuentra por debajo del nivel del histograma correspondiente para el conjunto de códigos iniciales.
Se puede ver a partir de las Figuras 9, 10, 11 y 12 que el procedimiento de optimización ha conducido a una mejora significativa en los conjuntos de códigos finales en comparación con los conjuntos de códigos originales. En particular, la mejora en el valor máximo del lóbulo lateral entre los conjuntos de códigos iniciales y finales es aproximadamente de 410 a 275 (21,9 dB a 25,4 dB) para los códigos E6 (5.115 chips), y de 355 a 245 (21,2 dB a 24,5 dB) para los códigos L1 (4.092 chips).
En conclusión, aunque se han descrito en detalle en la presente memoria una variedad de realizaciones particulares, se apreciará que esto es solamente a modo de ilustración. El experto será consciente de muchas modificaciones y adaptaciones potenciales adicionales que caen dentro del alcance de las reivindicaciones y sus equivalentes.
Se describirán ahora varios ejemplos adicionales mediante las clausulas numeradas siguientes:
1. Un método de creación de un conjunto de códigos de propagación para su uso en un sistema de navegación por satélite que comprende una constelación de satélites, en donde a cada satélite en la constelación se le ha de asignar un código de propagación a partir de dicho conjunto de códigos de propagación, comprendiendo el método:
generar un conjunto inicial de patrones de bits, en donde cada patrón de bits representa un código de propagación potencial; y
realizar un proceso de optimización en el conjunto inicial de patrones de bits, por el cual al menos algunos de los patrones de bits en dicho conjunto inicial se modifican o sustituyen, para crear un conjunto final de patrones de bits para su uso como el conjunto de códigos de propagación.
2. El método de la cláusula 1, en donde cada patrón de bits en el conjunto inicial de patrones de bits se genera como una secuencia de bits aleatoria.
3. El método de la cláusula 2, comprendiendo además equilibrar cada secuencia de bits aleatoria en el conjunto inicial antes de realizar el proceso de optimización.
4. El método de cualquier cláusula anterior, en donde cada patrón de bits en el conjunto inicial está equilibrado, y en donde las modificaciones de un patrón de bits realizadas como parte del proceso de optimización conservan el equilibrio del patrón de bits.
5. El método de cualquier cláusula anterior, comprendiendo además modificar el conjunto inicial de patrones de bits de modo que los primeros lóbulos laterales de autocorrelación para cada patrón de bits sean cero antes de realizar el proceso de optimización.
6. El método de cualquier cláusula anterior, en donde cada patrón de bits en dicho conjunto inicial tiene unos primeros lóbulos laterales de autocorrelación de cero, y en donde la modificación de un patrón de bits realizada como parte del proceso de optimización conserva el valor cero de los primeros lóbulos laterales de autocorrelación.
7. El método de cualquier cláusula anterior, en donde el proceso de optimización busca minimizar una función de coste para el conjunto de patrones de bits.
8. El método de la cláusula 7, en donde dicha función de coste se basa en valores de autocorrelación y de correlación cruzada para el conjunto de patrones de bits.
9. El método de la cláusula 8, en donde dichos valores de correlación cruzada se calculan para todos los posibles desplazamientos entre los patrones de bits.
10. El método de la cláusula 8 o 9, en donde dicha función de coste se basa en valores de autocorrelación y de correlación cruzada impar y par para el conjunto de patrones de bits.
11. El método de cualquiera de las cláusulas 8 a 10, en donde dicha función de coste se basa en una suma de todos los valores de autocorrelación y de correlación cruzada mayores que un límite predeterminado.
12. El método de la cláusula 11, en donde dicho límite predeterminado se deriva a partir del límite de Welch.
13. El método de cualquier cláusula anterior, comprendiendo además modificar los patrones de bits durante el proceso de optimización dando la vuelta aleatoriamente a los bits en al menos uno de los patrones de bits.
14. El método de la cláusula 13, comprendiendo además invertir las modificaciones de un patrón de bits si conduce a una función de coste aumentada.
15. El método de la cláusula 13 o 14, comprendiendo además reducir el número de bits dados la vuelta a medida que disminuye una función de coste.
5
10
15
20
25
30
35
40
45
16. El método de cualquier cláusula anterior, en donde el número de bits en un patrón de bits está en el rango de 1.000 a 10.000.
17. Un receptor que incorpora un conjunto final de patrones de bits creados usando el método de cualquier cláusula anterior.
18. El receptor de la cláusula 17, en donde dichos patrones de bits están protegidos por un código de corrección de errores.
19. El receptor de la cláusula 17 o 18, en donde dichos patrones de bits se almacenan en una memoria de sólo lectura (ROM).
20. El receptor de la cláusula 17 o 18, en donde dichos patrones de bits se almacenan en una memoria de sólo lectura programable (PROM).
21. El receptor de cualquiera de las cláusulas 17 a 21, en donde dicho receptor incorpora patrones de bits para al menos dos constelaciones de satélites, en donde una de dichas constelaciones de satélites comprende el GPS.
22. Un dispositivo de memoria extraíble para su uso en un receptor, en donde dicho dispositivo de memoria incorpora un conjunto final de patrones de bits creados usando el método de cualquiera de las cláusulas 1 a 16.
23. El dispositivo de memoria extraíble de la cláusula 22, en donde dichos patrones de bits están protegidos por un código de corrección de errores.
24. El dispositivo de memoria extraíble de la cláusula 22 o 23, en donde dicho dispositivo de memoria extraíble incorpora patrones de bits para al menos dos constelaciones de satélites, en donde una de dichas constelaciones de satélite comprende el GPS.
25. Un satélite que incorpora al menos un patrón de bits de un conjunto final de patrones de bits creados usando el método de cualquiera de las cláusulas 1 a 16.
26. El satélite de la cláusula 25, en donde dichos patrones de bits están protegidos por un código de corrección de errores.
27. El satélite de la cláusula 25 o 26, en donde dichos patrones de bits se almacenan en una memoria de sólo lectura programable (PROM).
28. Una señal de satélite que incorpora al menos un patrón de bits de un conjunto final de patrones de bits creados usando el método de cualquiera de las cláusulas 1 a 16.
29. Un receptor que incorpora un conjunto final de patrones de bits sustancialmente como se expone en la Tabla 1 o la Tabla 2.
30. El receptor de la cláusula 29, en donde dichos patrones de bits están protegidos por un código de corrección de errores.
31. El receptor de la cláusula 29 o 30, en donde dichos patrones de bits se almacenan en una memoria de sólo lectura (ROM).
32. El receptor de la cláusula 29 o 30, en donde dichos patrones de bits se almacenan en una memoria de sólo lectura programable (PROM).
33. El receptor de cualquiera de las cláusulas 29 a 32, en donde dicho receptor incorpora patrones de bits para al menos dos constelaciones de satélites, en donde una de dichas constelaciones de satélites comprende el GPS.
34. Un dispositivo de memoria extraíble para su uso en un receptor, en donde dicho dispositivo de memoria incorpora un conjunto final de patrones de bits sustancialmente como se expone en la Tabla 1 o la Tabla 2.
35. El dispositivo de memoria extraíble de la cláusula 34, en donde dichos patrones de bits están protegidos por un código de corrección de errores.
36. El dispositivo de memoria extraíble de la cláusula 34 o 35, en donde dicho dispositivo de memoria extraíble incorpora patrones de bits para al menos dos constelaciones de satélites, en donde una de dichas constelaciones de satélites comprende el GPS.
37. Un satélite que incorpora al menos un patrón de bits de un conjunto final de patrones de bits sustancialmente como se expone en la Tabla 1 o en la Tabla 2.
38. El satélite de la cláusula 37, en donde dichos patrones de bits están protegidos por un código de corrección de errores.
5
10
15
20
25
30
35
40
45
39. El satélite de la cláusula 37 o 38, en donde dichos patrones de bit se almacenan en una memoria de sólo lectura programare (PROM).
40. Una señal de satélite que incorpora al menos un patrón de bits de un conjunto final de patrones de bits sustancialmente como se expone en la Tabla 1 o la Tabla 2.
41. Un receptor que incorpora un conjunto de patrones de bits almacenados, dichos patrones de bits correspondientes a códigos de propagación usados por un sistema de navegación por satélite, en donde el receptor usa los patrones de bits almacenados para adquirir señales del sistema de navegación por satélite.
42. El receptor de la cláusula 41, en donde dichos patrones de bits están protegidos por un código de corrección de errores.
43. El receptor de la cláusula 41 o 42, en donde dichos patrones de bits se almacenan en una memoria de sólo lectura (ROM).
44. El receptor de la cláusula 41 o 42, en donde dichos patrones de bits se almacenan en una memoria de sólo lectura programable (PROM).
45. El receptor de cualquiera de las cláusulas 41 a 44, en donde dicho receptor incorpora patrones de bits para al menos dos constelaciones de satélites, en donde una de dichas constelaciones de satélites comprende el GPS.
46. El receptor de cualquiera de las cláusulas 41 a 45, en donde dicho conjunto de patrones de bits almacenados incluye al menos un patrón de bits sustancialmente como se expone en la Tabla 1 o la Tabla 2.
47. El receptor de la cláusula 46, en donde dicho conjunto de patrones de bits almacenados incluye al menos veinte patrones de bits, y al menos veinte patrones de bits son sustancialmente como se expone en cualquiera de la Tabla 1 o Tabla 2.
48. El receptor de cualquiera de las cláusulas 41 a 47, en donde dichos patrones de bits están equilibrados.
49. El receptor de cualquiera de las cláusulas 41 a 48, en donde dichos patrones de bits tienen un primer lóbulo lateral de la función de autocorrelación igual a cero.
50. Un aparato para su uso como parte de un sistema de navegación por satélite, incluyendo el aparato al menos un patrón de bits correspondiente a un código de propagación para su uso por el aparato, en donde el aparato recupera el patrón de bits para generar una señal incorporando el código de propagación para su transmisión como parte del sistema de navegación por satélite.
51. El aparato de la cláusula 50, en donde dicho patrón de bits está protegido por un código de corrección de errores.
52. El aparato de la cláusula 50 o 51, en donde dicho patrón de bits se almacena en una memoria de sólo lectura (ROM) en el aparato.
53. El aparato de cualquiera de las cláusulas 50 a 52, en donde dicho patrón de bits corresponde sustancialmente a uno de los patrones de bits expuestos en la Tabla 1 o la Tabla 2.
54. El aparato de cualquiera de las cláusulas 50 a 53, en donde dicho patrón de bits está equilibrado.
55. El aparato de cualquiera de las cláusulas 50 a 54, en donde dicho patrón de bits tiene un primer lóbulo lateral de la función de autocorrelación igual a cero.
56. El aparato de cualquiera de las cláusulas 50 a 55, en donde dicho patrón de bits se almacena dentro del aparato.
57. El aparato de cualquiera de las cláusulas 50 a 56, en donde dicho aparato comprende un satélite.
58. El aparato de cualquiera de las cláusulas 50 a 56, en donde dicho aparato comprende un pseudolito.
59. Un método de operación de un receptor para su uso en conjunto con un sistema de navegación por satélite,
comprendiendo el método:
acceder a un conjunto de patrones de bits almacenados, dichos patrones de bits correspondientes a códigos de propagación usados por el sistema de navegación por satélite; y
usar los patrones de bits almacenados para adquirir señales del sistema de navegación por satélite.
60. El método de la cláusula 59, comprendiendo además usar los patrones de bits almacenados para realizar una determinación de posición en relación con las señales del sistema de navegación por satélite.
5
10
15
20
25
30
35
61. El método de la cláusula 59 o 60, en donde dichos patrones de bits se almacenan en una memoria de sólo lectura (ROM).
62. El método de la cláusula 59 o 60, en donde dichos patrones de bits se almacenan en una memoria de sólo lectura programare (PROM).
63. El método de la cláusula 62, comprendiendo además actualizar el conjunto de patrones de bits almacenados escribiendo un nuevo conjunto de patrones de bits en el receptor.
64. El método de la cláusula 59, en donde se accede a dichos patrones de bits almacenados por el receptor sobre una red.
65. El método de cualquiera de las cláusulas 59 a 64, en donde dichos patrones de bits almacenados corresponden a códigos de satélites del GPS.
66. Un método de operación de un satélite comprendiendo parte de un sistema de navegación por satélite, comprendiendo el método:
almacenar dentro del satélite al menos un patrón de bits, dicho patrón de bits correspondiente a un código de propagación;
recuperar el patrón de bits para generar una señal incorporando el código de propagación; y transmitir la señal.
67. El método de la cláusula 66, en donde dicha recuperación incluye realizar una comprobación del código de corrección de errores (ECC) sobre el patrón de bits almacenado.
68. El método de la cláusula 66 o 67, en donde dicho patrón de bits se almacena en una memoria de sólo lectura programable (PROM).
69. El método de cualquiera de las cláusulas 66 a 68, comprendiendo además actualizar el patrón de bits almacenado.
70. El método de la cláusula 69, en donde dicha actualización se hace en respuesta a un error detectado en el patrón de bits almacenado.
71. El método de la cláusula 69, en donde dicha actualización se hace para evitar la interferencia del código de propagación correspondiente al patrón de bits almacenado.
72. El método de la cláusula 69, en donde dicha actualización se hace para restringir el conjunto de usuarios que pueden acceder al código de propagación desde el satélite.
73. Un receptor para su uso junto con un sistema de navegación por satélite, comprendiendo el receptor:
medios para acceder a un conjunto de patrones de bits almacenados, dichos patrones de bits correspondientes a los códigos de propagación usados por el sistema de navegación por satélite; y
medios para usar los patrones de bits almacenados para adquirir señales del sistema de navegación por satélite.
74. El receptor de la cláusula 73, en donde se accede a dicho conjunto de patrones de bits almacenados sobre una red.
Tabla 1: Códigos E6-B y E6-C
Ski SKp« i wkHoXA3 f 7 lM7«4e j SUS rCSNgxAQM2 tEQPA 6 qx f lTnVSLGnnGc3n5 j f DLgA 6HkU7 k lUCTrCU r I / 0 s 5 Fu 5 WEkyv lKWgSXI WBuVf / 4 SfflyUnXYL Cre t L 3 3 b v4 ip S JFRIJE C aq j 9 s g +3 7 j e lbd4 eTqe dB 5 zp 4 1 j MD1 f 2 Tqo;} obwpRH g / s j g 11 ASg / p 8 aT / / / / c Z7 +QkiivKVtX51FIF SfiObrwíJkX s“dia+9 ¡sroquCALl N 7 iS/Sxbyij GTRQflgs IpSyEqf lF0Y4TQQvTB2CIIBYYh2a+5T4gWtipJ0gxu,kvXa39i 171 Wusu/cf rxoT W AVÍUlbdWhVqe JUH / 3 tKt +mEl 1 z aR YAan FVl g AdFT í w2 RyHRFODQrkO IS 6 mS 3 enokxk 3wrVR 1 kMPV nfrtB4KzBtt Lxer2n+J 2 wn Jai 6B FBm j kSHO 6 P j UKgvCpdAi; j X WX j omWRv KA9 VHSXf r xU3 Zvbsrjyur I /
vbEOSEypSFhlsVwSZriBeODoClOliLQvyf CPÍSwRliZWXls»íPHHSSWVke7vAMOZ2abvFAt:i*UXgfClh6 =p
uM4 0 SyÚaxd wBEnUgyOLS+nCQrH V J drj a5 cUfGAAe 0JVRj c2¡2 tJCRiOQrmATp 17xxU3 Ovh5gy6r9EMFj eTeSdTGEsRlm-jTCEDS^wqYOvkGAj OFj NaS YTCIh2 Jy¡£ j xvwnKIvnQ 1 j GPoOg 6 tXDqbS SDnyf AgoKl 6
/DGJbur.PkbSYhf-i-.i.LlGCfvflQSlcU'rJzNcAfyTj.ZFtWg'SudíHAUt'Lij AU05¡HsbIVpF4ljk5YkQzaD(jChA3q
J12GMaH-jmTT.ZD aai"V Y 9s W j p wVdO J sD2 qvc JqhRbddu I WxT7 eWKÉ ZS KvGI G* 3 PD POk Ym / 8 ZT4 4 W A-=
eqfldt XbyBh lpkSw4MVSEHDÍORCQKpuq2Q rt FDZ Ye 1 sgl j AUxPüox s yLI4dXw4n/ iwM3kr/ay!09SSYy F J fdu 9 f ED4 X 6qH7 A0r.sR4 hXkkVKMCRiny 4KkQbbU j L7O8 i □ RM lOMe Mds S r í-j. S T4 YOW0 ELliAF Ae 6 a c:4 F. Hfxjvlaqcbol zvRmUW lowpBñfí 1dTZAQE 7 T y4 hhCmKuYdt4 CtnzOyOOMoAOfi REaüt Y S11g 7 Dmp QKqOg 14 kGg AE 6 PCSDxHXt3haR7Ti D t xt m j ueyV a dWfl aufx9 9NuwV3 yH/ qcDGhO? VdBUcxwf 14 S S lt A/ 2 r 7HRN WlyZv-KvYEGIpcHFgJ INWoVoYw/ a Qf j nE voLqy K0 4 d1!JP s Z 4 d/ uvarJd4 / 5 2 S 9 Ir P 0 JHl E 5 LwGBnU2ne dkKXUcoZp of 2 aAZ litio 7x s punpMF 3QÍ b+M 6 qGe 5Kf PY5 6 3 swl 4R t uKSUqO Ui 15 9qu2 LF2SP8 emAlOVg uJt 19yCEvNpLkSI 3 W8 /a i C iU3 9Keuqb7CKWe6lMlcYmxFlví l2bs3eR5ir / 2BoFEx2d3 wSpSF j ljP/ JV 3 tqyxUVb£íPX/YbcuKR3 PBqVwLiR91iDI.0EKed.j 5Wadq6ÍR4RqFttiaEVl06R8/udixoRu3 7X.f rhRPoxUB/B j Yy3cWC4 e/pVAMMNX7HlsL j lBgGCeiuÍ9dl47ZNj af 6ha5OAXnROÍRB01.3f VF4 zWBSdCx/mCyl/ lShM KS F4 CeO 3 LodH7 k 028 9MU4AGPR2 Sbjv51 j 3IvíToEPo iMBt iBnQg JlHXOj wá 4E z CWf Jqt 3 X 0 b91H61 g Ys FUiRmepTCníJvkTp JOUB siCRf xndh/r 6 5 6 wEX 1 krfí 0 vA2 kV2 Eb G115t n V 6 5 3 /1 / Ft e Di S JxgA==
ISUMqrFOcaclxR 1HWWRi 5 Ke I / q j 51 f F+AMFe2 9 JJF 0 gdp DGCCATqJÍLWmi Fr f/JÍQ4 holde 5 SMpgXU r cgbuPH 5 MFDWJDkFaL 3 RmdjPh3 H01 il /LDo dQI/s TRe 5T4m5 2 kfíU/be PnubQ+tUauKQYVKYTlZ 3 SFhbF j e 4o 4 xwOhO AU IiP i Go Ee é1OgzG12 ht EU1DUM i 22JfVn9t zD 8 a j 0 C WvlMa vwuC £ LVFXddD CpklogAfDX Qqo 0 5XL 4 hokqvGG 0 odMGuRko Bq j BWe13 OjpL+dCPZ 4D 5k2 +mp j aEUAz CUSIqCrlldMRZuDugUE s rIZ gPMk+Ro3 pl GEAhVcuXe Y B mGlil wpL / q 9 ¡YbgAEQjDDDUuF SNYRmO Az 0 J j Agxb1cLEOXJ0d41wd 3 p&LdJMy tea q3 I\>a4 Tf 2 CUFO iFxí qVPYyp P SQCyoR 1 LIS SJ 3 n D YPD17 kp JmuqDtHf-vAa 4p aH B sOhj 4 7 b I -uj / A 11 Z4ul eUV iStWWOlbUtrzaD KwgZObOS vECypgLI eNvjLaNUcNC7QCÍ4sr40bHDJaJ3yD2B(S / mib ScGd RTmqGkhBK2 0VlagSYpOql2JJ/wVy Y ZQMbohxnuJuiliOpZ LnaRDíZp eelTTqNkS Sz6bntJOBSLt.-0nTgpix kr Kws XKR 0 sVz 2 Lp2mEBpgDQ5 KUSPetXjNfvM/bVmiófpj AVMn 0FF4-ovFh7lOlvMCFa21b0bD6Pfrp G03XXORE1W/ / JFlík*eejeq3FaEvudBU2£H40 9GoXyIId5 £uFYc3pED4k3 VG34HlgVRk7tT0.i t ExjARMe / 5aedcdH8h5lFJPicp4l4i6BX-Hdsa7cfh3Gv/QaiPwbXU3iY9V2ÍZEje7£lBhflgCCUUB 315 iwA^ =
qttllpc B01ÉB gwn3MBVT27 i3fxpaS3Cb3/LÍtaD/ OtnBbGkcB7mWwOXe3 2NQG2Orti4eXyGfz4rLgR6YA0aS QyBHbioPqVueMOODRorHa aClkDU 1 lttibXOEx2 c/z7fFV29 rbGVl 15 9 IB 1TUX BKaflkiEVRTb+S Q93Hgv
hVqfi i 6 HFMS V+ñf XWnS I ixWwE C SíllTeoZ 1WP V4SURUC WLX5 2 oPc Bt j rWkXuhPGnUmyKP 3 nlBgbJiBri
P o 2 HÜITl C B rm3 Axmdc KDrXTv/TT B EB Lqfi muIUCMYHAjOXS gqaXkrulSlílMbCBQCRcp PAdxabu 1 gOl-I?V9 fl Y Rs 12 r 7 5 bqwwXE HrsR0EOWw3aRQRB2sHn ebxj Ob ddbnUy4 j Ud3ywLeH6tp2uO/HH71 w9 JAgbüf Hltm /xnttl-i-plilUlBglEHReOgSl b wQ wXJd2 O X iRatyVY 0nSiDnh*UTXGLzr2 QuuegB RHFMvl qY 6hh A JQA4 DÉpuqng j 4Arda3DdDch55rbGw5/NpdlsRE iqcKvAet eGfwPeEElHgifcyRcBrqflCQjiasxmFhSPWkq ybeoVTf noWlflgtaeDvlCí5 j B 0LYbGthUbQQIVSGqAEÉ dWoxMcB zG iE BO 7 B 5 gavVPCI QPFCUY2 zWMLqu yUAOVO 3+lF4SXhr4MgbmLRSGqArafisioDTUPmSjI:tXx7E oxyxB I dRCg VMr KdyX j / B fí vTGWnBb 5NCG H0HT4EZ] bF JlxUUl C 701 wt-n-IS V9 5T0W 9m£oo/Q3XaSrl4ti JUZU fBSRSÜNt envDayGxXD C 9 4 rtV:£P4 YK i i zmL JPnKHF4Xü3 wmuxny a ws 2 E/ 4 zpG AtHop 0 y9 S / 4 S f SLx 1J4 7q01 lllTxs z onNe FaxXívIj j AA==
gklwzHJv e 4 W 5 rOTUIB Z HH lSNbLe P i G3pQe STYOU 4 qnrTA7 z 0 3 f Po 5 knbczenCC ir t L Iv/B SX Z Eg A4Urn j f ldMhTZSL7CS SUVSqaP7 5 BKmGYtOQyg6 YSmPr 4LdFmoUni4G9 j 1 j CzeQtRl F'kED/oBypTjfíUEgE2zxFW

Claims (21)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    1. Un receptor (701) que incorpora un conjunto de patrones (611A-611N) de bits almacenados, correspondiendo dichos patrones de bits a códigos de propagación usados por un sistema de navegación por satélite, en donde el receptor (701) usa los patrones (611A-611N) de bits almacenados para adquirir señales del sistema de navegación por satélite, y en donde el conjunto de patrones (611A-611N) de bits almacenados se crean:
    generando (105) un conjunto inicial de patrones de bits, en donde cada patrón de bits representa un código de propagación potencial y cada patrón de bits en el conjunto inicial de patrones de bits se genera (i) generando cada uno del conjunto inicial de patrones de bits como una secuencia aleatoria de bits en donde el número de bits en un patrón de bits es un número par de bits en el rango de 1.000 a 10.000 y, para cada patrón de bits, (ii) aplicando al patrón de bits una primera condición precursora que requiere que dichos patrones (611A-611N) de bits estén equilibrados, por lo que hay por igual muchos unos y ceros dentro de los mismos, y si en (215) el patrón de bits no está equilibrado, modificando (220) el patrón de bits para asegurar que está equilibrado y (iii) aplicando al patrón de bits una segunda condición precursora que requiere que el primer lóbulo lateral, correspondiente a un desplazamiento de bits de una posición, de una función de autocorrelación (ACF) sea cero, por lo que se determina (215) el primer lóbulo lateral de la ACF para cada patrón de bits y, para aquellos patrones de bits donde la ACF no es cero en el primer lóbulo lateral, el patrón de bits se modifica (220) para obtener una ACF de cero, dando como resultado por ello el conjunto inicial de patrones de bits; y
    realizando (110), en un sistema de hardware, un proceso de optimización (305-315) sobre el conjunto inicial de patrones de bits, por lo que se modifican o sustituyen al menos algunos de los patrones de bits en dicho conjunto inicial, para crear un conjunto final de patrones (611A-611N) de bits para su uso como el conjunto de códigos de propagación; y
    almacenando un patrón (611) de bits en un dispositivo (610) de memoria de un satélite (601) y/o almacenando patrones (611A-611N) de bits en un dispositivo (710) de memoria de un receptor (710) para recibir una señal de satélite transmitida por satélite (601);
    en donde el proceso (305-315) de optimización busca minimizar una función de coste para el conjunto de patrones (611A-611N) de bits en donde dicha función de coste se deriva de funciones de autocorrelación y funciones de correlación cruzada que se definen de la siguiente manera:
    y
    donde a y b son secuencias de código, k es el desplazamiento, N es el número de bits en el código y o es la función de signo, de manera que o (n) = -1 para n<0; y o (n) = +1 para n > 0.
    en donde modificar (315) un patrón de bits en dicho proceso (305-315) de optimización comprende dar la vuelta a bits por pares dentro de cada código seleccionando un bit con valor 0 para dar la vuelta y un bit con valor 1 para dar la vuelta, por lo que el patrón de bits permanece equilibrado a lo largo del proceso (305-315) de optimización, y en donde el número de bits dados la vuelta se reduce a medida que disminuye una función de coste;
    en donde cada patrón de bits en dicho conjunto inicial tiene primeros lóbulos laterales de ACF de cero, y en donde la modificación (315) de un el patrón de bits en dicho proceso (305-315) de optimización retiene el valor cero de los primeros lóbulos laterales de ACF:
    (i) determinando si ak-i + ak+i = aj-i + aj+i, donde aj y ak son los bits seleccionados para dar la vuelta; y
    (ii) si no, seleccionando nuevos bits aj y ak para dar la vuelta con el fin de conservar el valor cero del primer lóbulo lateral de ACF;
    en donde el proceso (305-315) de optimización comprende (a) calcular (305) la función de coste para el conjunto inicial o actual de patrones de bits, (b) determinar si se ha satisfecho (310) una condición de terminación o de convergencia y, si no, actualizar (315) al menos uno de los patrones de bits para formar un conjunto actual de patrones de bits y repetir (a) y (b);
    en donde, después de actualizar (315) al menos uno de los patrones de bits, dicho cálculo (305) de la función de coste comprende:
    calcular un cambio en una función de correlación cruzada (CCF) par mediante
    imagen1
    imagen2
    5
    10
    15
    20
    25
    30
    35
    , en donde n es el desplazamiento entre los códigos
    a y b,
    aplicar este cambio para actualizar una CCF par ya calculada; calcular un cambio en una función de correlación cruzada impar mediante
    imagen3
    imagen4
    aplicar este cambio para actualizar una CCF impar ya calculada; y calcular (305) la función de coste a partir de las CCF actualizadas.
  2. 2. El receptor de la reivindicación 1, en donde actualizar (315) al menos uno de los patrones de bits comprende seleccionar actualizar el par de códigos que produjo el (o un) pico máximo de correlación en preferencia a los otros códigos.
  3. 3. El receptor de la reivindicación 1 o 2, en donde modificar (220) el patrón de bits para asegurar que está equilibrado comprende:
    determinar (215) si A = B, donde A es igual al número de ceros en un patrón de bits y B es igual al número de unos, y, si es así, no se toma ninguna acción, y
    si se determina (215) que A>B, seleccionar aleatoriamente (A-B) ceros del patrón de bits y darlos la vuelta de
    0 a 1, produciendo por ello un patrón de bits equilibrado, y
    si se determina (215) que B>A, seleccionar aleatoriamente (B-A) unos del patrón de bits y darlos la vuelta de
    1 a 0, produciendo un patrón de bits equilibrado.
  4. 4. El receptor de cualquiera de las reivindicaciones 1 a 3, en donde modificar (220) el patrón de bits para obtener una ACF de cero comprende:
    dar la vuelta a un '1' elegido aleatoriamente y un '0' elegido aleatoriamente en el patrón de bits hasta que el primer lóbulo lateral de ACF es cero.
  5. 5. El receptor de cualquiera de las reivindicaciones anteriores.
  6. 6. El receptor de la reivindicación 5, en donde dichos valores de correlación cruzada se calculan para todos los posibles desplazamientos entre los patrones de bits.
  7. 7. El receptor de la reivindicación 5 o 6, en donde dicha función de coste se especifica como:
    .ie{o, e)
    donde a y b representan códigos diferentes, k representa el desplazamiento entre los dos códigos, y o y e representan versiones impar y par de la función de correlación.
  8. 8. El receptor de la reivindicación 5 o 6, en donde la función de coste se especifica como:
    S„ := Xte)"
    a,bjt
    /ie{o,c)
    donde la potencia n es 2 o 6.
  9. 9. El receptor de la reivindicación 5 o 6, en donde dicha función de coste se especifica como:
    Wen:=
    atbtk
    x>m
    /iejo.e)
    donde WB es el límite de Welch, especificado como:
    5
    10
    15
    20
    25
    30
    35
    40
    45
    imagen5
  10. 10. El receptor de la reivindicación 9, en donde n es configurable, y es preferiblemente 2, 6 u 8.
  11. 11. El receptor de cualquiera de las reivindicaciones anteriores, en donde generar cada uno del conjunto inicial de patrones de bits como una secuencia aleatoria de bits comprende generar las secuencias aleatorias proporcionando un valor inicial a un generador de números (pseudo) aleatorios.
  12. 12. El receptor de la reivindicación 11, en donde el valor inicial usado para crear cada secuencia de bits se escribe en un archivo de registro, de modo que un proceso de generación del conjunto inicial de patrones de bits se puede repetir de manera determinista.
  13. 13. El receptor de cualquiera de las reivindicaciones anteriores, en donde dichos patrones (611A-611N) de bits están protegidos (712) por un código de corrección de errores.
  14. 14. El receptor de cualquiera de las reivindicaciones anteriores, en donde dichos patrones (611A-611N) de bits se almacenan en una memoria de sólo lectura (ROM) (710).
  15. 15. El receptor de cualquiera de las reivindicaciones anteriores 1 a 13, en donde dichos patrones (611A-611N) de bits se almacenan en una memoria de sólo lectura programable (PROM) (710).
  16. 16. El receptor de cualquiera de las reivindicaciones anteriores, en donde dicho receptor (701) incorpora patrones (611A-611N) de bits para al menos dos constelaciones de satélites, en donde una de dichas constelaciones de satélites comprende el GPS.
  17. 17. Un método de operación de un receptor (701) para su uso junto con un sistema de navegación por satélite, comprendiendo el método:
    acceder a un conjunto de patrones (611A-611N) de bits almacenados, dichos patrones de bits correspondientes a códigos de propagación usados por el sistema de navegación por satélite y siendo obtenidos generando (105) un conjunto inicial de patrones de bits, en donde cada patrón de bits representa un código de propagación potencial y cada patrón de bits en el conjunto inicial de patrones de bits se genera (i) generando cada uno del conjunto inicial de patrones de bits como una secuencia aleatoria de bits en donde el número de bits en un patrón de bits es un número par de bits en el rango de 1.000 a 10.000 y, para cada patrón de bits, (ii) aplicando al patrón de bits una primera condición precursora que requiere que dichos patrones (611A-611N) de bits estén equilibrados, por lo que hay por igual muchos unos y ceros dentro de los mismos, y si en (215) el patrón de bits no está equilibrado, modificando (220) el patrón de bits para asegurar que esté equilibrado y (iii) aplicando al patrón de bits una segunda condición precursora que requiere que el primer lóbulo lateral, correspondiente a un desplazamiento de bits de una posición, de una función de autocorrelación (ACF) sea cero, por lo que se determina (215) el primer lóbulo lateral de la ACF para cada patrón de bits y, para aquellos patrones de bits donde la ACF no es cero en el primer lóbulo lateral, el patrón de bits se modifica (220) para obtener una ACF de cero, dando como resultado por ello el conjunto inicial de patrones de bits; y
    realizar (110), en un sistema de hardware, un proceso (305-315) de optimización sobre el conjunto inicial de patrones de bits, por el cual se modifican o sustituyen al menos algunos de los patrones de bits en dicho conjunto inicial, para crear un conjunto final de patrones (611A-611N) de bits para su uso como el conjunto de códigos de propagación; y
    almacenar un patrón (611) de bits en un dispositivo (610) de memoria de un satélite (601) y/o almacenar patrones (611A-611N) de bits en un dispositivo (710) de memoria de un receptor (710) para recibir una señal de satélite transmitida por satélite (601);
    en donde el proceso de optimización (305-315) busca minimizar una función de coste para el conjunto de patrones (611A-611N) de bits en donde dicha función de coste se deriva de funciones de autocorrelación y funciones de correlación cruzada que se definen de la siguiente manera:
    imagen6
    N-l
    rt- 0
    y
    donde a y b son secuencias de código, k es el desplazamiento, N es el número de bits en el código y o es la función de signo, de manera que o (n) = -1 para n<0; y o (n) = +1 para n > 0;
    10
    15
    20
    25
    30
    35
    en donde modificar (315) un patrón de bits en dicho proceso (305-315) de optimización comprende dar la vuelta a bits por pares dentro de cada código seleccionando un bit con valor 0 para dar la vuelta y un bit con valor 1 para dar la vuelta, por lo que el patrón de bits permanece equilibrado a lo largo del proceso (305-315) de optimización, y en donde el número de bits dados la vuelta se reduce a medida que disminuye una función de coste;
    en donde cada patrón de bits en dicho conjunto inicial tiene primeros lóbulos laterales de ACF de cero, y en donde la modificación (315) de un el patrón de bits en dicho proceso (305-315) de optimización retiene el valor cero de los primeros lóbulos laterales de ACF:
    (i) determinando si ak-i + ak+i = aj-i + a+i, donde aj y ak son los bits seleccionados para dar la vuelta; y
    (ii) si no, seleccionando nuevos bits aj y ak para dar la vuelta con el fin de conservar el valor cero del primer lóbulo lateral de ACF; y
    en donde el proceso (305-315) de optimización comprende (a) calcular (305) la función de coste para el conjunto inicial o actual de patrones de bits, (b) determinar si se ha satisfecho (310) una condición de terminación o de convergencia y, si no, actualizar (315) al menos uno de los patrones de bits para formar un conjunto actual de patrones de bits y repetir (a) y (b);
    en donde, después de actualizar (315) al menos uno de los patrones de bits, dicho cálculo (305) de la función de coste comprende:
    calcular un cambio en una función de correlación cruzada (CCF) par mediante
    , en donde n es el desplazamiento entre los códigos
    a y b,
    aplicar este cambio para actualizar una CCF par ya calculada; calcular un cambio en una función de correlación cruzada impar mediante
    imagen7
    imagen8
    aplicar este cambio para actualizar una CCF impar ya calculada; y calcular (305) la función de coste a partir de las CCF actualizadas; y
    usar los patrones (611A-611N) de bits almacenados para adquirir señales del sistema de navegación por satélite para realizar una determinación de posición en relación con las señales del sistema de navegación por satélite.
  18. 18. El método de la reivindicación 17, en donde dichos patrones (611A-611N) de bits se almacenan en una memoria de sólo lectura programable (PROM) (710), y el método comprende además actualizar el conjunto de patrones (611A-611N) de bits almacenados escribiendo un nuevo conjunto de patrones de bits en el receptor (701).
  19. 19. El método de la reivindicación 17, en donde se accede a dichos patrones (611A-611N) de bits almacenados por el receptor (701) sobre una red.
  20. 20. El método de cualquiera de las reivindicaciones 17 a 19, en donde dichos patrones (611A-611N) de bits almacenados corresponden a códigos de satélites de GPS.
    imagen9
    imagen10
    ¿Alguna condición precursora? 210
    ¿Condiciones Precursoras Satisfechas?, 215
    Actualizar Patrones de Códigos para satisfacer Condiciones Precursoras 220
    Generar Patrones de Bits Iniciales 105
    Generar Patrones de Bits A eatorios
    para Conjunto de Códigos Iniciales 205
    Figura 2
    imagen11
    ¿Condiciones de Terminación Satisfechas?
    \ 310 ^
    Actualización Mejora la Función de
    \ Coste? 312
    Invertir Actualización al Patrón de Codigo 314
    Actualizar Patrón de Codigo 315
    Realizar Optimización 110
    Figura 3
    (Re ) Calcular Función de Coste para patrones de bits actuales 305
    co
    imagen12
    0
    -1000
    imagen13
    imagen14
    O 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100105110115120125130135140145150155160
    Valores de CCF/ACFM
    -4
    en
    100000 —"i.....
    ■■[ 1 r
    ---Jj----
    ;
    ::y
    -í... 4 ■ .4....=
    , 7....;
    ........ .....I.....-i.....■......■.... ....r....-.....■■;
    ; i
    T—I----[-----1----1----1-----[----!----!----1----1----r l----I I I
    Estado inicial (par)
    i-- • Estado inicial (impar) C;~. -
    Después de optimización (impar) ■■■■■ Después de optimización (par) WtlíÜJTH
    10000
    1000
    imagen15
    iao
    0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100105110113120125130135140145150155160
    Valores de CCF/ACFM
    imagen16
    _atos de
    Navegación 615
    Memoria 610
    Generación de Canal 620
    Comprobación de ECC612
    Codigo
    611
    I odulacicn
    '£1
    601
    Figura 7
    Transmisor
    620
    701
    antena
    Receptora 715
    Memoria 710
    Codigo
    Cemodu ador
    611A
    Codigo
    6110
    Adquisición
    Comprobación
    de Canal
    de ECC 712
    T2S
    Determinación de
    Codigo
    Posición 720
    Figura S
    Ensayas ["-]
    Función de coste [-j
    bJ
    w l-ü ¡JM Jurt Ud
    *-»JI J>>í 'Jsc IJJ 'J—
    re- Tí- D tí- n- TE r. 1 L
    i
    £ i i o S 5 V O O
    i—1
    t— r™
    W cc » W5 E/3
    imagen17
    ■f- o
    1 1 1 3. ... 1 __1
    o o
    ÍJJ Lu ut Uv
    &
    co o l-J i- flK ,fj2
    o
    o
    o
    O c O O
    Lóbulo lateral máximo |-]
    Longitud de código:5115, número de códigos: 100
    Apariciones [-J
    le+OÜó
    t00000
    ÍOOOÜ
    LODO
    imagen18
    200 250
    Valores de CCFyACFf-1
  21. 2.4^+018
    2,2(2+018
    2e+Gl8
    l,8e+0tS
    (,Se+018
    ],4e+018
    I,2e+0l8
    1----------------1----------------1----------------1------
    ! Lóbulo lateral máximo (par e impar) — Función de Coste General (par e impar) —
    3ÍÍ0
    360
    340
    320
    300
    - 280
    - 260
    imagen19
    20000 30000 40000 50000
    Ensayos f-1
    240
    60000 70000 80000
    Apariciones [-]
    le+007
    le+006
    1COOOQ
    10000
    LOO
    10
    imagen20
    T"................... I" --------- 1
    Estado inicial (par e impar) ■■■■ Estado final (par e impar) C’-T./T-
    0 50 100 150 200 250 300 350
    Valores de OCFfACF|-l
ES04822583.3T 2004-12-17 2004-12-17 Códigos de propagación para un sistema de navegación por satélite Active ES2688755T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2004/014488 WO2006063613A1 (en) 2004-12-17 2004-12-17 Spreading codes for a satellite navigation system

Publications (1)

Publication Number Publication Date
ES2688755T3 true ES2688755T3 (es) 2018-11-06

Family

ID=34959490

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04822583.3T Active ES2688755T3 (es) 2004-12-17 2004-12-17 Códigos de propagación para un sistema de navegación por satélite

Country Status (10)

Country Link
US (1) US8035555B2 (es)
EP (1) EP1825626B1 (es)
JP (1) JP4796589B2 (es)
CN (1) CN101147347B (es)
BR (1) BRPI0419233B1 (es)
CA (1) CA2590019C (es)
ES (1) ES2688755T3 (es)
HK (1) HK1117966A1 (es)
RU (1) RU2422992C2 (es)
WO (1) WO2006063613A1 (es)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT1899742E (pt) * 2005-07-01 2009-11-11 Europ Agence Spatiale Códigos de espalhamento para um sistema de navegação por satélite
US8917209B2 (en) 2009-09-10 2014-12-23 Nextnav, Llc Coding in a wide area positioning system (WAPS)
US20110138255A1 (en) * 2009-12-09 2011-06-09 Lee Daniel Chonghwan Probabilistic Learning-Based Decoding of Communication Signals
US8739010B2 (en) * 2010-11-19 2014-05-27 Altera Corporation Memory array with redundant bits and memory element voting circuits
ES2489740T3 (es) * 2011-03-11 2014-09-02 Knowledge Development For Pof, S.L. Código de corrección de errores adaptativo para comunicaciones de datos a través de una fibra óptica de plástico
JP2014529058A (ja) * 2011-06-28 2014-10-30 ネクストナヴ,エルエルシー 広域測位システム(waps)におけるコーディング
US9645249B2 (en) 2011-06-28 2017-05-09 Nextnav, Llc Systems and methods for pseudo-random coding
CN103364799A (zh) * 2012-03-31 2013-10-23 迈实电子(上海)有限公司 导航比特边界确定装置和方法,接收机,移动设备,以及卫星导航定位方法
US8644788B2 (en) 2012-05-02 2014-02-04 Skytraq Technology, Inc. Signal receiver, portable computer and signal acquisition method used in satellite communication system
ES2539362T3 (es) * 2012-08-24 2015-06-30 Airbus Ds Gmbh Generación y procesamiento de señales CDMA
US10386492B2 (en) 2013-03-07 2019-08-20 Trimble Inc. Verifiable authentication services based on global navigation satellite system (GNSS) signals and personal or computer data
CN103197328B (zh) * 2013-03-14 2015-05-27 中国人民解放军国防科学技术大学 一种基于2ms数据存储的高动态卫星接收机快速捕获方法
RU2554981C1 (ru) * 2014-08-06 2015-07-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Белгородский государственный технологический университет им. В.Г. Шухова" Алюмосиликатное кислотостойкое вяжущее и способ его получения
CN104333410A (zh) * 2014-10-09 2015-02-04 深圳市华信天线技术有限公司 卫星信号搜索方法、装置及终端
US9225384B1 (en) * 2014-10-20 2015-12-29 The Boeing Company Methods and apparatus for generating composite code sequences
EP3104195A1 (en) 2015-06-10 2016-12-14 European Space Agency Method and apparatus for tracking a binary offset carrier navigation signal
JP6562455B2 (ja) * 2015-06-17 2019-08-21 Necネットワーク・センサ株式会社 通信装置及びその拡散符号生成方法
KR20180063141A (ko) * 2015-10-05 2018-06-11 넥스트나브, 엘엘씨 지상 송신기로부터 신호를 생성하기 위한 시스템 및 방법, gnss 수신기 하드웨어를 사용하여 신호를 처리하기 위한 방법 및 시스템
CN106772468A (zh) * 2016-12-12 2017-05-31 太原理工大学 新型的卫星信号fft并行捕获算法
US10686469B2 (en) * 2017-05-15 2020-06-16 Qualcomm Incorporated Payload size ambiguity and false alarm rate reduction for polar codes
WO2019020201A1 (en) 2017-07-28 2019-01-31 European Space Agency RECEIVER AND METHOD FOR PROCESSING A BROADBAND SIGNAL
US10768310B2 (en) * 2018-01-03 2020-09-08 Samsung Electronics Co., Ltd System and method for providing code modification for multipath improvement in GNSS receivers
US11994598B2 (en) 2018-05-24 2024-05-28 European Space Agency Method and apparatus for performing joint channel and time estimation in a GNSS receiver
JP7201696B2 (ja) * 2018-10-09 2023-01-10 ザ ヨーロピアン ユニオン、リプレゼンテッド バイ ザ ヨーロピアン コミッション 完全に交換可能な方法での、受信機における最適な回復のために符号化された複数のページへの衛星航法メッセージの送信
EP3671281A1 (en) 2018-12-21 2020-06-24 European Space Agency Method and system for processing a gnss signal using homomorphic encryption
CN110458103B (zh) * 2019-08-12 2022-03-18 四川九洲电器集团有限责任公司 塔康信号检测方法、设备及存储介质
CN112578410B (zh) * 2020-12-11 2023-09-01 中国人民解放军空军通信士官学校 一种针对基于lms的gps进化带限高斯噪声干扰算法
FR3130651B1 (fr) 2021-12-17 2023-12-15 Ifp Energies Now Cyclone pour une installation et un procede de combustion en boucle chimique muni d’une conduite d’arrivee a parois inclinees et injection de gaz
CN117406249B (zh) * 2023-12-14 2024-03-08 成都安则优科技有限公司 一种反无人机卫星导航设备及数据回放方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642647A (en) * 1983-08-29 1987-02-10 Litton Systems, Inc. Signal generator for radio navigation system
FR2712444B1 (fr) * 1993-11-10 1995-12-29 Alcatel Mobile Comm France Procédé de construction d'un code d'étalement associé à un utilisateur d'un système de transmission numérique à accès multiple par répartition par codes et à séquence directe, et procédé correspondant de génération d'un tableau.
EP0767544A3 (en) 1995-10-04 2002-02-27 Interuniversitair Micro-Elektronica Centrum Vzw Programmable modem using spread spectrum communication
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
JP2002071782A (ja) * 2000-08-31 2002-03-12 Hitachi Ltd 測位機能付き情報端末
JP3792145B2 (ja) 2001-09-28 2006-07-05 日本無線株式会社 相関値識別方法
US6912240B2 (en) * 2001-11-26 2005-06-28 Time Domain Corporation Method and apparatus for generating a large number of codes having desirable correlation properties
JP2003255040A (ja) 2002-02-28 2003-09-10 Sony Corp Gps受信機および受信方法
US6937643B2 (en) * 2002-04-30 2005-08-30 Qualcomm Inc ROM-based PN generation for wireless communication
US7400666B2 (en) * 2002-08-12 2008-07-15 Alereon, Inc. Method for generating communication signal sequences having desirable correlation properties and system for using game
EP1576752A1 (en) * 2002-12-23 2005-09-21 BAE Systems PLC Improvements in or relating to spreading codes for quasisynchronous code division multiple access systems
US7529291B2 (en) * 2004-04-13 2009-05-05 Raytheon Company Methods and structures for rapid code acquisition in spread spectrum communications
PT1899742E (pt) * 2005-07-01 2009-11-11 Europ Agence Spatiale Códigos de espalhamento para um sistema de navegação por satélite

Also Published As

Publication number Publication date
CN101147347B (zh) 2014-10-01
BRPI0419233A8 (pt) 2017-09-19
US20080246655A1 (en) 2008-10-09
CA2590019A1 (en) 2006-06-22
WO2006063613A1 (en) 2006-06-22
EP1825626A1 (en) 2007-08-29
RU2007126980A (ru) 2009-01-27
CN101147347A (zh) 2008-03-19
JP4796589B2 (ja) 2011-10-19
BRPI0419233B1 (pt) 2020-12-01
JP2008524881A (ja) 2008-07-10
US8035555B2 (en) 2011-10-11
BRPI0419233A (pt) 2008-03-11
CA2590019C (en) 2014-01-28
EP1825626B1 (en) 2018-07-04
RU2422992C2 (ru) 2011-06-27
HK1117966A1 (en) 2009-01-23

Similar Documents

Publication Publication Date Title
ES2688755T3 (es) Códigos de propagación para un sistema de navegación por satélite
JP4796626B2 (ja) 衛星ナビゲーション・システムのための拡散符号
JP5791806B2 (ja) 疑似ランダム雑音系列に基づく拡散符号を使用したナビゲーションシステム
Margaria et al. Signal structure-based authentication for civil GNSSs: Recent solutions and perspectives
ES2644799T3 (es) Autenticación basada en bits aleatorios de mensajes de navegación satelital
Walker et al. Galileo open service authentication: a complete service design and provision analysis
US11889312B2 (en) Validation of position, navigation, time signals
Fernández‐Hernández et al. Impact analysis of SBAS authentication
CN104808221A (zh) Weil码生成装置和卫星导航信号接收机
CN109557568B (zh) 一种测距码产生方法及装置
Poltronieri et al. Analysis of the chimera time-binding scheme for authenticating GPS L1C
Fernandez-Hernandez et al. Galileo authentication and high accuracy: getting to the truth
Anghileri et al. FUNTIMES–Future Navigation and Timing Evolved Signals
Yan et al. Method of GNSS security augmentation based on LEO satellite
CN117310755B (zh) 卫星导航信号可信认证协议及终端可信定位的方法与装置
WO2024054200A1 (en) Validation of position, navigation, time signals
KR101794760B1 (ko) 확산 부호 생성 장치 및 그 확산 부호 생성 방법
Falchetti et al. Enhanced Link-16/GPS/INS Navigation Robust Tactical Navigation Resource for the Military