¿Cómo se resuelve la ambigüedad en la fase de código en el posicionamiento basado en código GNSS?

Para el posicionamiento usando GNSS, un texto de introducción típico ( ejemplo PDF ) introduce el concepto de pseudorango como el tiempo entre la transmisión de una señal GNSS por el satélite s y la hora de recepción por parte del receptor r , multiplicado por la velocidad de la luz:

PAG = ( T r T s ) C

Luego se explica que ( T r T s ) se puede determinar desplazando la réplica local (al receptor) del código PRN hasta que se alinee (correlacione) con la señal recibida.

Sin embargo, un código PRN para GPS L1 C/A tiene una duración de 1 milisegundo y, dependiendo de dónde se encuentre el satélite, el tiempo de viaje de la señal desde el satélite hasta el receptor puede oscilar entre 65 ms (directamente sobre la cabeza) y 86 ms. (justo por encima del horizonte). Puede colocar alrededor de 20 códigos PRN allí. Eso significa que hay ambigüedad en el pseudorango, y ninguna de las fuentes que he leído (hasta ahora) aborda esa ambigüedad (abordan la ambigüedad en el contexto del seguimiento de la fase de la portadora, pero ese es otro tema).

El PDF antes mencionado lo menciona brevemente:

La información básica que contiene el código C/A es la hora según el reloj del satélite en que se transmitió la señal (con una ambigüedad de 1 ms, que se resuelve fácilmente, ya que corresponde a 293 km).

pero sin detallar cómo "resolverlo fácil". (¿Dejado como ejercicio para el lector?)

Pregunta: ¿cómo se resuelve la ambigüedad en el pseudorango en el posicionamiento basado en código?

Tal vez me estoy perdiendo algo obvio. Algunas respuestas posibles que puedo pensar, pero no puedo fundamentar lo suficiente:

  1. Al resolver la ecuación de navegación , resuelve el error del reloj del receptor. Este término de error absorbe el número común de ciclos de código entre todos los canales de satélite.
  2. Al iniciar el seguimiento, encuentre, por ejemplo, el inicio de la palabra de telemetría (o algún otro marcador) en los datos de navegación en todos los canales de satélite. Establezca el satélite "más cercano" en un pseudorango de 65 ms y luego proceda como en (1).
  3. Existe algún mecanismo de sincronización que permite que el receptor se sincronice dentro de 1 ms del tiempo de GPS.

Estoy interesado en las respuestas tanto para GPS como para Galileo en particular, pero las respuestas aplicables en general también son bienvenidas. También se agradecen otras referencias.

Para un "arranque en frío", una vez que uno recibe una "efeméride de transmisión" de cuatro satélites, tiene cuatro trayectorias de satélite. No lo sé, pero ciertamente parece que al menos para ubicaciones terrestres limitadas a la superficie de la Tierra no puede haber una solución geométrica si se supone que uno de los caminos es 293 km más largo o más corto. Para un "comienzo en caliente" donde hay una buena estimación de dónde se encuentra el satélite según las efemérides guardadas recientemente, esto parece ser posible de inmediato. Es posible que para la ubicación GPS basada en el espacio (desde la ISS), la ambigüedad ocasionalmente represente un desafío.
Pero cómo probar eso matemáticamente no lo sé.
Puede leer el libro GNSS de la ESA aquí . El Capítulo 5 describe todas las ecuaciones necesarias para calcular la medición de pseudodistancia, incluidos todos los retrasos a considerar.
@Guillaume gran recurso, ¡gracias por vincularlo!
No entiendo cómo surge esta ambigüedad de 1 ms en primer lugar. Una vez que nos alineamos con un chip, podemos tener una ambigüedad de solo quizás el orden de 1 chip, que es 293 m. ¿O es la ambigüedad en el etiquetado de tiempo en el mensaje de navegación?
@Prakhar, la forma en que lo interpreté para mi respuesta es que si solo observa el código C/A e ignora todo lo demás, dado que el código C/A se repite exactamente cada 1 ms, no sabe cuántos milisegundos completos tiene transcurrido La solución, por supuesto, es no ignorar todo lo demás.
@RyanC esa es de hecho la esencia de mi pregunta. Gracias por una respuesta elaborada; También encontré una respuesta, que también publicaré.

Respuestas (2)

Nada en el procesamiento de señales de navegación es tan simple como la mayoría de las descripciones lo hacen parecer. La teoría de detección de señales es esencialmente probabilística, por lo que los algoritmos hacen sus mejores conjeturas sobre lo más probable que podría haber sucedido, pero siempre hay una tasa de error. Se puede resolver para las compensaciones enteras, si es lo suficientemente cuidadoso e inteligente al definir un procedimiento de optimización, como se investiga en esta tesis [ 1 ] y este artículo [ 2] .] de Sandra Verhagen y Peter Teunissen. Sin embargo, no hay un desplazamiento común: cada código PRN tiene su propia ambigüedad. También hay muchas posibles compensaciones entre eficiencia y precisión, fuerza bruta y trucos inteligentes, requisitos de memoria y requisitos de procesador, etc. Sin embargo, para comprender cualquiera de ellos en detalle, se necesita algo de experiencia en el procesamiento de señales digitales, que no puedo. proporcionar aquí, aunque me referiré a algunos de ellos de pasada.

Hay muchas formas posibles de modificar o romper la ambigüedad. Los dos algoritmos que describiré son solo los que encuentro más fáciles de pensar, lo que dice poco o nada sobre su precisión o eficiencia. Puede resultarle útil leer estas notas de clase del MIT [ 3 ] sobre procesamiento de GPS para brindar una introducción a otras cosas que se han probado para el seguimiento de códigos, y algunos comentarios sobre cómo hacer comparaciones entre ellas.

Nota: la pregunta de Ludo se refiere a la ambigüedad de enteros en el seguimiento del código C/A. Esto no es lo mismo que la mayoría de las cosas que encontrará si busca "ambigüedad de entero GPS (o GNSS)", que habla sobre el seguimiento de la fase de la señal. Ese es un problema diferente, en el que no entraré aquí.

Algoritmo uno: solo use una muestra más larga

Una compensación en este caso es que cuanto más larga sea la muestra que utilice, menos ambigua se vuelve. Los filtros prácticos de respuesta rápida involucran trucos sofisticados con esquemas de votación de comparación múltiple que usan muchos cambios de retraso diferentes simultáneamente para rastrear un pico, como en el Capítulo 7 de este libro [ 4], pero puede salirse con la suya con un procesamiento mucho más simple si utiliza una secuencia de entrada mucho más larga. Sí, el código C/A se repite cada milisegundo, pero esa no es la única modulación presente: la señal también contiene el mensaje de navegación, que tiene una transición de bit cada 20 repeticiones C/A. Tener solo uno o dos bits de un mensaje de navegación le dice muy poco, pero si usa, por ejemplo, un segundo completo de datos, son 50 bits del mensaje de navegación. Esa señal, de C/A y navegación juntas, se repite exactamente como máximo una vez por subtrama, y ​​en secuencias más largas es posible que nunca se repita. Cuando autocorrelacione esto, verá un pico cada 20 ms solo al detectar el borde de la señal del reloj del mensaje de navegación, pero cuando los grafique todos en una fila, verá el pico más alto en el retraso correcto, con el ambiguo incorrecto. picos que se inclinan hacia abajo en ambas direcciones.

Si la secuencia de bits en la muestra que cortó nunca se repite, no hay más ambigüedad: las secciones de igual longitud con diferentes patrones de bits no se correlacionarán tan fuertemente, por lo que puede abarcar todo el espacio de posibles pseudorangos y elegir el mejor. respuesta. Si la secuencia de bits se repite, entonces ha cambiado la ambigüedad en la misma cantidad que cambió el tiempo que tarda en repetirse la secuencia C/A por Nav completa, que debería ser el intervalo de muestreo (a menos que el patrón de bits en sí consista en un intervalo corto). secuencia repetitiva). Si usa una segunda muestra completa, la ambigüedad restante no es de 300 kilómetros, sino de 300 mil kilómetros, que es 3/4 del camino a la luna. No debería tener dificultad para elegir cuál de esoslas ambigüedades posiblemente podrían tener sentido para un objeto cercano a la Tierra.

¡No recomiendo esto como un enfoque práctico! Su único requisito es que sea fácil de explicar. Es extremadamente ineficiente y su precisión está limitada por un efecto físico básico que realmente debería incluir en cualquier procesamiento GNSS, lo que complica las cosas pero también ayuda a romper la ambigüedad simplemente con el tratamiento adecuado. Es decir, dado que los satélites están en movimiento y el movimiento del receptor no es el mismo, habrá un desplazamiento Doppler. Se puede suponer que el receptor está estacionario en la Tierra en rotación, o se puede estimar su velocidad como parte de la solución general, o se puede suponer que se conoce su velocidad por otros medios y se proporciona como entrada auxiliar. También hay errores y trucos ingeniosos y todas esas cosas para cada uno de estos.

Algoritmo dos: resolver simultáneamente el desplazamiento Doppler

La importancia del cambio Doppler para la adquisición del código es que la frecuencia del código C/A es en sí misma un cambio Doppler, por lo que su tasa de chip y su tasa de repetición aumentan o disminuyen en la misma cantidad fraccionaria que aumenta o disminuye la frecuencia de radio portadora. Si correlaciona la señal recibida con su código C/A generado localmente, el cambio Doppler hará que el suyo se desalinee con la señal recibida y le dará puntajes bajos para todos los retrasos, a menos que de alguna manera adivine el cambio Doppler correcto y lo use para modifique su código generado localmente para que se alinee correctamente con la tasa de bits real recibida. Esto significa que lo que realmente necesita hacer es ejecutar el mismo procedimiento de correlación contra múltiples copias diferentes del código cuyas longitudes de bits se modifican por un rango de posibles cambios Doppler observados, luego elija elpar de retardo de tiempo y compensación de frecuencia que juntos le brindan el mejor ajuste. Esto se hace calculando la función de ambigüedad compleja (o cruzada) (CAF) y eligiendo el pico CAF más alto en dos dimensiones.

Mediante este método de procesamiento, en el que se resuelven tanto el desplazamiento de tiempo (pseudorango) como el desplazamiento de frecuencia (desplazamiento Doppler) simultáneamente, generalmente es posible obtener una mejor respuesta para cada uno de los que obtendría si hubiera resuelto los dos desplazamientos. por separado. Con suerte, pero no necesariamente, rompe la ambigüedad al permitirle buscar inconsistencias, como retardos de tiempo plausibles en sí mismos que CAF a cambios Doppler no factibles, o viceversa.

Hay una gran cantidad de literatura sobre el procesamiento CAF, a la que Stein (1981) [ 5] es la introducción estándar extremadamente condensada. No entraré en ninguno de los detalles sangrientos, a excepción de una pequeña complicación que capta mi interés como físico: el desplazamiento Doppler es proporcional a la frecuencia de alcance. Por lo tanto, dado que cualquier número calculado por el procesamiento de la señal debe basarse en al menos una cierta cantidad de muestras de la señal, y cada una de esas muestras corresponde a una cierta cantidad de tiempo, el verdadero pseudorango será diferente al comienzo de la muestra que al final. fin. Varía continuamente en el medio, por lo que cualquier pseudorango calculado debe ser una especie de promedio ponderado que represente todos los valores que toma el pseudorango teórico instantáneo en el intervalo de tiempo de la muestra. Por lo tanto, técnicamente no hay una sola respuesta correcta a qué pseudodistancia debe deducirse de una muestra. ¡Lo mismo es válido para el cambio Doppler en sí mismo! Tiene un valor al comienzo del intervalo y otro diferente al final, pero el CAF intenta encapsular toda esa variación en un solo número de mejor ajuste.

Estos efectos juntos significan que, aunque, para el procesamiento de señales en general, los tratamientos de libros de texto se vuelven más precisos y la SNR crece a medida que proporciona muestras más largas, tomar muestras más largas naturalmente convierte los picos de CAF de picos agudos en bultos bajos y anchos con centros mal definidos, porque solo un número para pseudodistancia y Doppler ya no le hacen justicia. Cuanto más rápido cambien el rango y la tasa de rango, menos tiempo puede usar de manera rentable para calcular un solo CAF.

Referencias

[ 1 ] Sandra Verhagen. Las ambigüedades de los números enteros del GNSS: Estimación y validación. Tesis doctoral, Technische Universiteit Delft, 2005. ISBN 90-804-1474-3

[ 2 ] Peter JG Teunissen y Sandra Verhagen. Resolución de ambigüedad GNSS: ¿Cuándo y cómo corregir o no corregir? Simposio de Geodesia Teórica y Computacional 6 (143-148), 2008. DOI 10.1007/978-3-540-74584-6_22

[ 3 ] Thomas Herring. Principios del sistema de posicionamiento global, conferencia 7. MIT Open Course Ware, https://ocw.mit.edu/courses/earth-atmospheric-and-planetary-sciences/12-540-principles-of-the-global-positioning -system-spring-2012/lecture-notes/MIT12_540S12_lec7.pdf

[ 4 ] Kai Borre, Dennis M. Akos, Nicolaj Bertelsen, Peter Rinder y Søren Holdt Jensen. Un GPS definido por software y un receptor Galileo: un enfoque de frecuencia única. Springer-Verlag, 2007. ISBN 978-0-8176-4540-3

[ 5 ] Seymour Stein. Algoritmos para el procesamiento de funciones de ambigüedad. Transacciones IEEE sobre acústica, voz y procesamiento de señales 29.3 (588-599), 1981. DOI 10.1109/TASSP.1981.1163621

@uhoh buena sugerencia, gracias. en su próxima relectura, avíseme si las nuevas piezas aclaran esa respuesta.
@uhoh aquí tienes, encabezados de sección a pedido.
"Esto no es lo mismo que la mayoría de las cosas que encontrará si busca "ambigüedad de enteros GPS (o GNSS)", que habla sobre el seguimiento de la fase de la señal". - Exactamente, muy frustrante al intentar investigar esto... !

La respuesta de Ryan C proporciona el quid y mucha información de fondo útil. El quid es:

Sí, el código C/A se repite cada milisegundo, pero esa no es la única modulación.

La otra información que se modula en la señal puede proporcionar una referencia que no sea ambigua.

Es difícil encontrar detalles sobre cómo los receptores resuelven estos problemas, probablemente porque a los fabricantes de receptores les gusta proteger sus buenas ideas, pero GNSS -SDR es un receptor GNSS definido por software de código abierto que proporciona muchos detalles sobre cómo funciona.

Su enfoque para el cálculo de pseudodistancia se explica en su página sobre observables . El resumen es que utilizan la hora de la semana (TOW), que extraen del mensaje de navegación. En GPS, el TOW se transmite cada 6 segundos en la palabra de traspaso (HOW) como parte de cada subtrama del mensaje de navegación. Debido a que todos los satélites envían transmisiones sincrónicamente, el CÓMO (o en realidad, el preámbulo de la palabra de telemetría que viene justo antes) es un punto de referencia común en todas las señales de todos los satélites.

Al satélite con el TOW más antiguo se le asigna un pseudorango de 68,802 ms (no se explica, pero corresponde a un satélite que está por encima del receptor en lugar de en el horizonte) y todos los demás tiempos del receptor del satélite están relacionados con eso. El conjunto resultante de pseudo rangos se usa luego como suposición inicial para la posición y luego se refina aún más en iteraciones posteriores. (Este es el mismo enfoque que se usa en el libro* al que hace referencia Ryan C, explicado en la sección 8.4.1.)

Este artículo en "Inside GNSS" explica gráficamente el mismo enfoque. También presenta un segundo enfoque que es fácil de entender pero aparentemente no se usa en la práctica: simplemente espere un marcador en el mensaje de navegación en cada canal de seguimiento y comience a contar desde allí.

*) "Un GPS definido por software y un receptor Galileo", K. Borre et al., 2007

Leí en alguna parte que TOW tiene una resolución de conteo de 1,5 segundos. ¿Eso significa que la señal se transmite siempre en el límite de 1,5 segundos?
@Prakhar, el recuento TOW tiene una resolución de 1,5 segundos. La señal es continua y todas las frecuencias son múltiplos enteros entre sí, por lo que siempre se repiten eventualmente. Todos los satélites están alineados con el mismo TOW, por lo que todos transmiten el mismo bit al mismo tiempo.
Eso significa que la señal debe transmitirse en el límite de 1,5 s, de lo contrario, tendré una incertidumbre de 1,5 s sobre cuándo se enganchó. O debe haber un campo más para indicar un tiempo más fino también
@Prakhar correcto. Básicamente, usa el TLM que viene justo antes del TOW en el mensaje) como punto de referencia (hay un preámbulo que siempre es el mismo). Y luego comienzas a contar en milisegundos desde allí, y luego el último código C/A parcial para submilisegundos. Esto requiere que el reloj de su receptor sea lo suficientemente preciso como para mantener una precisión de milisegundos durante al menos 6 segundos (hasta que llegue el próximo TLM), lo cual no es tan difícil.
@Prakhar, la forma en que lo entiendo es la siguiente. Si se usa de forma independiente, todos los pseudorangos tienen un módulo de 1 ms (un período de código C/A). Pero suponga que hay una "supertrama" (SF) de estas tramas C/A y todos los satélites inician la supertrama en la misma época , luego se elimina la ambigüedad: use el 1ms que está al comienzo de la SF. Una forma de tener una estructura SF es usar un campo (cualquier conveniente) en el mensaje de navegación (repetido). El valor del campo es irrelevante, solo se usa la época de su transmisión (para marcar el comienzo del SF). Con el TOW, el SF se repite cada 6000 tramas C/A.
@NgPh ¡Pero sin ese campo de época de todos modos, tampoco obtendrás 1 ms! ¡Solo puedo alinear mi copia PRN con la recibida y eso es todo! Si envío datos aleatorios en un mensaje de navegación, ¿alguien puede obtener una precisión de posición de 1 ms?
@Prakhar, la teoría de CDMA garantiza que puede recuperar la sincronización del código C/A incluso cuando hay una modulación de datos superpuesta a la modulación C/A. Esto se debe a que la modulación C/A es mucho más rápida que la modulación de datos. Si no necesita los datos, aún puede sincronizar con el C/A. Así es como los receptores rastrean cuando han descargado todos los mensajes de navegación.
@ngph Lo sé, pero supongamos que envío datos aleatorios sin ningún conocimiento del tiempo, sé que C/A aún se puede sincronizar ... Pero, ¿cómo puede obtener un pseudorango solo con esto?
@Prakhar siempre debe haber un marcador constante en los datos de navegación, de lo contrario no podría decodificarlo. En GPS hay un preámbulo de 8 bits en la palabra TLM para este propósito.
De hecho, este es un problema de sincronización genérico con cualquier transmisión TDM (Time Division Multiplex). Una vez que se entiende el principio, no hay matemáticas involucradas. El flujo digital se organiza en fotogramas cortos (para una sincronización rápida), los fotogramas cortos se organizan en "superfotogramas" (SF) y, a veces, los SF se organizan en "megafotogramas" más largos. Necesita al menos una bandera para contar el SF (o MF). Estas banderas a veces se llaman Palabra Única (UW). Compare esto con la forma en que organizamos el tiempo: hoy es el día 10 del mes 12 de 2021.