Copy Link
Add to Bookmark
Report
SET 022 0x0e
-[ 0x0E ]--------------------------------------------------------------------
-[ Sistemas de Posicionamiento: GPS ]----------------------------------------
-[ by Krip7iK ]-------------------------------------------------------SET-22-
* * * * * *
* _______ ______ ______ * *
* d#######b d######b d######*
* #% * #% % % * * *
#% *#a. #%####*' `b####a. *
* #% % #b' % *
* * `a#%%%%*' % #& % *######*' %
`"""""' " "" " `""""""' "
* * * * ** * * * *
* * *
-=={ Sistemas de Posicionamiento : GPS }==-
- Introduccion:
===============
Como supongo que todos sabreis los sistemas de posicionamiento han sido
siempre una de las metas mas buscadas por el hombre desde que se decidio a
explorar su planeta (y el universo). Toda esta historia comenzo con los
mapas, las brujulas y las estrellas, pero a medida que la civilizacion y
la ciencia ha ido avanzando hemos ido buscando una mayor precision en
todos nuestros logros, y del mismo modo en este caso. Con la aparicion de
los aviones y demas medios de transporte la precision de dichos sistemas
de posicionamiento se ha ido haciendo cada vez mas relevante y necesaria;
de este modo surgen ya ideas como el piloto automatico en los automoviles,
para los cuales se necesita una gran precision de posicionamiento del
vehiculo sobre un mapa. En torno a todo este tema surgen en los 70 dos
proyectos paralelos basados en navegacion por satelite: uno sovietico,
GLONASS, y otro americano, GPS; ambos englobados bajo el nombre GNSS
(Global Navigation Satelite System). Con la caida de el bloque sovietico
parece que el que finalmente se ha impuesto de modo mas global es GPS,
bajo control americano, nos centraremos en GPS que es el de mas alcance
actualmente. Si bien, desde la Union Europea se esta intentando potenciar
el sistema ex-sovietico para contar con un sistema propio y no depender
de los Estados Unidos.
- El Problema:
==============
El problema que se plantea resolver en el dise~o de GPS es el siguiente:
Supongamos que tenemos 3 satelites orbitando alrededor de la tierra y
tenemos en cada instante su posicion con respecto a unos ejes coordenados
situados en el centro de la tierra. Llamemos a los vectores posicion de
los satelites s1, s2, y s3. Ahora ponemos sobre la superficie (o en
general en cualquier punto, p.e. volando) de la tierra un punto, cuyas
coordenadas llamamos p. "p" va ha ser la incognita a despejar, y para ello
contamos con otra informacion que debemos apa~arnos para conseguir, esta
informacion es la distancia entre el objeto a posicionar y los satelites,
serian d1, d2, d3, las cuales ya no podran ser vectores, sino simplemente
seran el modulo de la distancia entre cada satelite y el objeto. Asi nos
quedaria expresado en un estilo muy matematico que:
p> = f(r1>, r2>, r3>, d1, d2, d3)
Donde pongo x> representa que se trata de un vector y no un escalar.
El que haga falta usar tres satelites se impone como una razon geometrica
clara (piensese en triangulacion). Aunque realmente es necesario al
menos un satelite mas para corregir errores que surgen de orden practico
debido a diferencias de temporizacion. Este problema es el que retraso
hasta los 70 la creacion de estos sistemas.
Veamos como son estos satelites en estos dos casos:
Constelacion de GPS
-------------------
Su constelacion de satelites recibe el nombre de NAVSTAR (controlados por
el DoD de USA). Consta de 24 satelites, 21 activos + 3 de reserva. Con 4
satelites equiespaciados por orbita, en 6 orbitas de unos 20180 Km de
radio. Con una inclinacion de 55 grados respecto al ecuador, y espaciadas
60 grados entre ellas.
Constelacion de GLONASS
-----------------------
Tambien de 24 satelites, pero con una distribucion diferente. 3 planos
orbitales con 8 satelites por plano orbital, cada uno con una inclinacion
de 64,8 grados y espaciadas 120 grados entre ellas.
Bueno, ya sabemos como estan distribuidos estos satelites alrededor de la
tierra, ahora un punto realmente importante es saber como medir todos los
parametros que veiamos que hacian falta para definir un sistema donde
despejar la situacion del objeto a posicionar.
Las posiciones de los satelites son informacion que se puede conocer de un
modo directo. Los satelites son los que se encargaran de enviarnos la
informacion necesaria para que el sistema de navegacion haye sus
coordenadas. Los otros parametros fundamentales para el posicionamiento,
esto es, las distancias de los satelites al receptor se obtienen mediante
un juego de codigos que se explica mas adelante.
- Posicionamiento de los Satelites:
===================================
Uno de los puntos mas importantes es poder posicionar los satelites desde
un sistema de coordenadas fijo en La Tierra. No vamos a contar las
formulas que definen la posicion del satelite, pero si enunciar brevemente
que parametros se tienen en cuenta.
Sabemos por Kepler que las orbitas de los satelites van a ser elipticas.
Una orbita eliptica se define por su excentricidad y longitud de un
semieje. De modo que para situar al satelite en el plano de la orbita nos
hace falta conocer estos dos parametros de la orbita (e y a) y uno mas
dependiente del instante al que se llama anomalia media (M).
La orbita no tiene por que ser concentrica con la linea del ecuador, de
donde nos hacen falta mas parametros aun, estos son tres, l, i y w. Que
nos definen el plano de la conica. En castellano: la inclinacion de la
orbita respecto al ecuador y su desplazamiento respecto al meridiano 0.
Parece que esto seria suficiente, pero no es del todo cierto, ya que
estamos refiriendo todo al eje de rotacion terrestre el cual no se
mantiene fijo, si no que sigue una variacion temporal que puede ser
definida por una curva (POLODIA) que queda parametrizada con dos
parametros (alfa y beta). A~adiendo estos dos ultimos parametros tenemos
la posicion del satelite respecto de las coordenadas en el sistema
geodesico llamado WGS-84.
Todos estos parametros, mas algunos de correccion debidos a
situaciones reales como es el rozamiento (en el vacio no tan vacio!),
presion solar, variaciones gravitacionales, etc. Todos esos parametros son
los que luego son enviados dentro del mensaje de navegacion que
denominaremos NAVDATA y reciben el nombre de "efemerides".
Si alguno esta especialmente interesado en que son cada uno de estos
parametros, solo tiene que coger algun libro de dinamica orbital y echarle
un ojo.
- Se~ales:
==========
Las se~ales que emiten los satelites no son iguales en GPS y GLONASS.
Mientras que GLONASS opta por usar diferentes portadoras para cada
satelite (FDMA), compartiendo un mismo codigo, GPS opta por una misma
portadora y diferente codigo para cada satelite (CDMA).
En este articulo, como indica su titulo, nos centraremos mas en GPS.
Sobre "como" se envian los datos de navegacion al receptor, primero
debemos hablar de como se hace la multiplexacion de los canales de cada
uno de los satelites. Esto es como se hace para que cada satelite emita y
en recepcion podamos diferenciarlos. En el articulo de SET 21 sobre
Tempest enuncie algo sobre los diferentes tipos de multiplexaciones que se
pueden hacer, y particularmente hubo uno del que dije poco por su
complicacion en la idea que subyacia. Bien, esta es la multiplexacion por
codigo o CDMA. Tratare de explicar un poco en que se basa. Supongamos que
emitimos desde 3 puntos diferentes las tramas A, B y C. Todas ellas con la
misma frecuencia de portadora y simultaneamente en el tiempo. Si solo digo
esto, la diferenciacion de cada una de las tramas resultaria imposible.
Ahora aparece la CDMA... si cada una de las tramas las codifico (en plan
encriptacion) con una secuencia diferente, esto es A+a, B+b, C+c (sumas
modulo 2), y en recepcion se cuales son las palabras a, b y c; si ademas
conozco como es el principio de los mensajes A, B y C, en recepcion podria
dedicarme a "correlar" (operacion que da un pico cuando la similitud entre
las se~ales correladas es grande, en el fondo es comparar matematicamente)
la señal que recibo con las que espero recibir, y teniendo en cuenta que
la recepcion no sera en el mismo instante de cada transmision (retardos
distintos, etc.) podria llegar a separar cada una de las transmisiones.
Pues bien, esto es lo que se emplea en GPS, con la particularidad de que
por cada satelite existen 2 codigos, y dos transmisiones independientes.
Ya que es el codigo de encriptacion, y su longitud la que nos ayuda a
determinar los tiempos que transcurren entre la emision y la recepcion,
cuanto mas largo sea el codigo mejores prestaciones tendremos para dicho
calculo. De este modo en GPS se emite con un codigo (C/A) de baja
precision, que a su vez ayuda a detectar el otro con menos tiempo de
computacion), y con otro (P), de mayor longitud que nos brinda una
precision mayor. Es conocido por todo el mundo que tan solo el DoD de
estados unidos tiene control sobre el codigo P por lo cual el resto de las
personas solo podemos tener una precision menor, y si queremos mas tenemos
que recurrir a diversas estrategias como se menciona al final del
articulo.
Ahora vamos a centrarnos en como es la modulacion, para luego entrar en
"que es lo que se envia", y al final describir los codigos C/A y P.
Como ya podiamos imaginarnos, para cada tipo de codigo (C/A o P), se
utiliza una banda distinta, y una vez en cada banda de frecuencia se usa
CDMA para diferenciar entre satelites.
La modulacion en frecuencia usada es DPSK, esto es PSK diferencial, o
modulacion de fase, en la que la fase es pi o -pi dependiendo de si se
envia 1 o 0.
En el caso de la se~al con codigo P, se modula la secuencia formada por
P+"Mensaje de Navegacion", modulada con frecuencia 1227,6 Mhz; mientras
que con frecuencia de portadora 1575,42 Mhz la cosa se complica un poco
mas:
La se~al se desdobla en fase y cuadratura (esto es dos se~ales DPSK
desfasadas 90º), en fase se envia el "mensaje de navegacion"+P, y en
cuadratura (90º) se envia el "mensaje de navegacion" + C/A.
Ambos relojes de portadora provienen en el satelite de uno de 10,23 Mhz
multiplicado por 120 o 154. De modo general queda la se~al como:
S= S1(t) + S2(t) + S3(t)
Si(t)=Ai*sen(wi*t + pi*(C(t)+D(t)) + dfi)
w2=w3; df1=0; df2=0; df3=90º.
siendo Ai una constante, wi la frecuencia de portadora, C(t) el codigo que
proceda y D(t) el mensaje y df el desfase en el caso de la portadora de
1575,42 Mhz.
- Las Tramas usadas: Mensaje NAVDATA
====================================
Cada trama que se transmite consta de 1500 bits, los cuales se organizan
en grupos de 300 bits, y cada una de estas subtramas en palabras de 30
bits. Se transmite a una velocidad de 50 bps.
TRAMA (1500 bits) => 5 Subtramas (300 bits) => 10 Palabras (30 bits)
TRAMA TOTAL:
SUBTRAMA 1
____________________________________________________________________
| | | | | | | | | | |
| TLM | HOW+Reserva| CORRECION DE RELOJ+CORREC.ATMOSFERICA+RESERVA |
|_____|____________|______|_____|_____|_____|_____|_____|______|_____|
SUBTRAMA 2
____________________________________________________________________
| | | | | | | | | | |
| TLM | HOW+Reserva| EFEMERIDES+AODE+RESERVA (14 bits) |
|_____|____________|______|_____|_____|_____|_____|_____|______|_____|
SUBTRAMA 3
____________________________________________________________________
| | | | | | | | | | |
| TLM | HOW+Reserva| EFEMERIDES+AODE+RESERVA (14 bits) |
|_____|____________|______|_____|_____|_____|_____|_____|______|_____|
SUBTRAMA 4
____________________________________________________________________
| | | | | | | | | | |
| TLM | HOW+Reserva| MENSAJES ESPECIALES MULTIPLEX en 25 tramas |
|_____|____________|______|_____|_____|_____|_____|_____|______|_____|
SUBTRAMA 5
____________________________________________________________________
| | | | | | | | | | |
| TLM | HOW+Reserva| ALMANAQUE + ESTADO d la CONSTELACION MUX en 25tr|
|_____|____________|______|_____|_____|_____|_____|_____|______|_____|
Expliquemos un poquito que es lo que contiene la trama en cada subtrama.
Primero vemos que todas las subtramas contienen una palabra a la que se
llama TLM y otra llamada HOW.
La palabra TLM, telemetrica, contiene unos primeros 8 bits para facilitar
el recojer los datos del mensaje y los otros 22 son de informacion sobre
las correcciones del satelite, algo que al receptor de un usuario no
incumbe, pero si interesa a los controles.
La palabra HOW (30 bits) se encarga de permitir la transferencia del
codigo C/A al P. Sus 17 primeros bits contienen la cuenta Z, que sirve de
indicador de tiempo continuo a GPS. Cambia cada 1,5 s. haciendo referencia
al instante de reset de los generadores de codigo P (Z=medianoche Sabado).
Esta palabra si hacemos cuentas aparece en recepcion cada 6 seg. lo que
produce un incremento de 4 en Z de subtrama a subtrama. El bit 18 indica
si la posicion del satelite es precisa o no. El 19 indica si hay
sincronizacion entre la palabra TLM y parte de la generacion de P; sirve
para una correcta transferencia de C/A a P. De 20-22 identificacion de
subtrama. El resto son de reserva.
Sobre los bloques de datos solo mencionar unas ligeras notas:
Los primeros bloques son bastante autoexplicativos, correcciones de
derivas del reloj, de tiempos de propagacion atmosferica, y efemerides;
aqui aparece AODE, que es Age Of Data Ephemerides, esto es el tiempo desde
que se adquirieron dichas efemerides. Cada hora se renuevan estos datos.
El bloque de Mensajes se utiliza para enviar mensajes especiales en caso
de que se necesite, y se trocea enviandose en 25 subtramas; lo mismo
ocurre con los datos de almanaque que son los utilizados para seleccionar
los satelites mas favorables en recepcion.
- Los Codigos
=============
Como ya se ha comentado estos codigos son utilizados para hacer una CDMA y
diferenciar la transmision de cada satelite, y ademas teniendo en cuenta
sus retardos en recepcion son los que nos ayudaran a determinar en tiempo
de vuelo de la se~al del satelite hasta el receptor y con ello las
distancias. Se trata de ruido blanco, en el que la diferencia entre
niveles 0 y 1 (o 1 y -1 usando NRZ) es exactamente 1 bit, y diversas
particularidades mas que los hacen muy aptos para estas aplicaciones
(resumiendo cumplen los postulados de Golomb, que MORTIIS muestra en su
articulo). Se le llama a estos codigos PRN o Ruido pseudoaleatorio. Este
ruido o codigos son generados por un metodo al que comunmente se conoce
como LSFR (Linear Shift Registers), usados ampliamente en cuestiones de
criptografia. Para mas informacion sobre LFSRs remitiros al articulo de
esta misma SET escrito por MORTIIS. Solo hacer una nota a lo que alli
encontrareis, que es particularmente util para entender los codigos de
GPS.
----- NOTA: -------------------------------------------
Para generar secuencias retardadas respecto de la original en un LFSR se
sigue el siguiente proceso:
si tenemos un polinomio generador tal que: p=1+x^7 , sabemos que el bit
realimentado sera la XOR de el bit 6 y el bit 1. Esto es:
D0=D1 + D7 ;como estamos en modulo2...
D7=D0 + D1 ; y generalizando...
D[k+7]=D[k] + D[k+1]
operando con esta ultima ecuacion podemos obtener replicas retrasadas
(k+7)*T, por ejemplo:
D9=D2+D3 , etc.
------------------------ FIN NOTA ----------------------------
Ahora comencemos con las particularidades de cada codigo, de los cuales
solo dare las ideas de su generacion en base a los conceptos de LSFRs que
aparecen en el articulo de MORTIIS sobre Numeros Aleatorios:
* C/A
------
Es un codigo de longitud 1023, que se envia a una velocidad de 1023 Kbps.
Resulta de la XOR de otras 2 secuencias G1 y G2. G1 es comun a todos los
satelites, mientras que la G2 de cada satelite se obtiene retrasando una
secuencia G2 dada, asi se obtienen 36 replicas retrasadas entre 5 y 950
periodos, y al combinar cada G2 con G1 obtenemos 36 secuencias mutuamente
excluyentes; como vemos suficientes para la constelacion de satelites que
usa GPS.
G1 y G2 se generan en LFSRs de 10 bits con polinomios caracteristicos:
G1: x^10 + x^3 + 1
G2: x^10 + x^9 + x^8 + x^6 + x^2 + 1
Con semillas iniciales de todos los bits a 1. Ademas estan sincronizados
con el codigo P de modo que coinciden sus bits iniciales.
Para conseguir los retrasos en las secuencias se aplica lo explicado algo
mas arriba sobre LFSRs.
* P
----
Este codigo es un codigo cuyo conocimiento es restringido a un grupo de
usuarios muy particular, y con cuyo conocimiento se pueden conseguir
precisiones mucho mayores en la localizacion. Ademas para garantizar aun
mas su exclusividad se puede cambiar por otro P(Y), cuando se activan
medidas "antispoofing".
Ademas de todo lo que se cuenta a continuacion sobre su generacion se debe
tener en cuenta que al final de cada semana se reinician todos los
registros de generacion del codigo P.
Para conseguir mayor precision se requieren codigos mas largos, en este
caso el codigo P es generado a partir de otras dos subsecuencias como en
C/A, pero estas, X1 y X2, de longitudes:
X1 = 15.345.000 bits y X2 = 15.345.037 bits
lo que transmitido con un regimen de 10,23 Mbps tarda unos 267 dias. Pero
esto realmente queda reducida a 7 dias por satelite. Cada secuencia de
cada satelite se genera retrasando X2 entre 1 y 37 periodos, lo que nos
provee de 37 codigos excluyentes entre si.
En este caso tambien X1 y X2 estan generados por suma(XOR) de otros dos:
Son LFSRs de 12 bits, que por tanto generan una secuencia de 4095 bits.
Para generar X1, X11 se reinicia cuando llega a su ciclo 4092 y X12 cuando
va por 4093. Cuando X11 se ha repetido 3750 veces (1.5 seg.) se genera una
marca de X1 que sincroniza este generador con C/A y reinicializa X11 y
X12.
X1: X11: x^12 + x^11 + x^8 + x^6 + 1
X12: x^12 + x^11 + x^10 + x^9 + x^8 + x^5 + x^2 + x + 1
con semillas x11=001001001000 y x12=010101010100
Debemos fijarnos en que al ser X12 de un bit mas de longitud que X11, y
como 3750 veces 4092 no es multiplo de 4093, hay un tiempo durante el que
hay que hacer un apa~o, esto es, durante el ciclo 3749 de X12, se esperara
hasta que X11 acabe su ciclo 3750 (343 ciclos de reloj mas, instante en
que se resetean), con X12 a un valor fijo igual al del ciclo 4093 de su
secuencia.
X2:
La generacion de este es muy similar a la de X1, teniendo en cuenta que
aqui debemos generar las 37 secuencias excluyentes, mediante el retraso de
la secuencia X2 resultante de modo adecuado. Para generar la secuencia X2
generica se suman X21 y X22:
X2: X21: x^12 + x^11 + x^10 + x^9 + x^8 + x^7 + x^5 + x^4 + x^3 + x + 1
X22: x^12 + x^9 + x^8 + x^4 + x^3 + x^2 + 1
Las semillas iniciales en las reinicializaciones son:
x21=100100100101 y x22=010101010100
el reset se produce tambien cuando la secuencia x21 se ha repetido 3750
veces, pero en lugar de reiniciarse justo en ese instante permanencen en
su ultimo estado durante 37 ciclos mas para producir un decalage de X2
respecto a X1.
- La Navegacion
===============
Lo que en nuestro receptor podemos medir facilmente es el tiempo que
debemos retrasar la replica de nuestro codigo para que al correlar con lo
que recibamos esta comparacion nos de un maximo. De aqui que si el codigo
es mas largo y rapido obtengamos precisiones mayores. Este retardo
multiplicado por la velocidad de la luz seria en principio la distancia al
satelite, pero esto solo es en principio, puesto que este retardo no solo
se debe al viaje de la se~al desde el satelite hasta el receptor, sino que
se deben tener en cuenta otros parametros que influyen como:
- Offset del reloj del satelite respecto a la referencia GPS
- Offset del reloj del receptor respecto a la referencia GPS
- Retardo de propagacion en la Ionosfera.
Si tenemos en cuenta que el offset del reloj del satelite y el de
propagacion en la ionosfera los corregimos con la informacion del mensaje
de Navegacion, solo nos queda como incognita el offset de NUESTRO reloj
respecto a la referencia GPS. De modo que la distancia medida
originalmente o pseudodistancia, seria la suma de la "distancia real", mas
la distancia producida por el offset de nuestro reloj multiplicado por la
velocidad de la luz (c).
di=c*Ti=> di= Di + c*Tu
di = pseudodistancia al satelite i
Di = Distancia real a satelite i
Tu = offset del reloj de usuario
Ti = retardo de correlacion maxima
De aqui que para resolver la posicion de el receptor en funcion de tres
satelites sea imposible con precision, ya que nos queda una incognita
extra que es precisamente esa distancia de error producida por el offset
de nuestro reloj.
Por eso se utiliza en el posicionamiento un cuarto satelite, quedandonos
un sistema de 4 ecuaciones y 4 incognitas que a su vez introduce la
dificultad de no ser lineal, con lo cual hay que recurrir a metodos de
linealizacion para que sea mas facilmente resolubles mediante computacion,
pero en esto no vamos a entrar en este articulo.
Lo que si se deduce de todo esto es como un simple receptor de GPS usa al
menos 4 correladores con sus correspondientes secuencias, y su entrada de
un mismo demodulador.
Con esto ya podemos hacernos una idea del funcionamiento de GPS.
- Alternativas/mejoras: DGPS
=============================
Como ya hemos visto, la precision de posicionamiento depende del codigo
del que dispongamos. Pero si solo tenemos el codigo C/A, existe una
alternativa para conseguir una precision mayor. Esta es DGPS, esto es GPS
Diferencial. Su funcionamiento es bastante sencillo; sabiendo como
funciona el GPS normal, deducimos que si conseguimos unos parametros de
correccion mas precisos, conseguimos mayor precision en nuestra
localizacion. Pues bien, como conseguir mayor precision sin el codigo P
???... pongamos una central recogiendo la se~al GPS en un punto geografico
conocido, comparemos el posicionamiento que nos da GPS con nuestra
posicion real conocida, y hayemos asi los parametros de correccion, y
luego estos parametros se los enviamos a el movil a posicionar mediante
GPS. Un ejemplo clasico es un avion, con su GPS de abordo y una central
(por ejemplo en el aeropuerto) enviandole las correcciones mas precisas.
Con esto terminamos este articulo, se puede profundizar bastante mas en
este tema, y quien sabe... quiza en proximos numeros de SET profundicemos
algo mas en ello!!. Espero que os haya resultado interesante y que a algun
genio le sirva para idear algun metodo para usar o descubrir el codigo P.
;-)
"Todo debe hacerse lo mas simple posible,
pero no mas simple."
Albert Einstein
*EOF*