Pasada LEO y presupuesto de enlace (leo-pass)
LEO-PNT es posicionamiento, navegación y temporización (PNT) desde satélites en órbita terrestre baja (LEO). El tipo de escenario leo-pass simula una o más pasadas de satélites LEO sobre un usuario y calcula el presupuesto de enlace banda por banda, junto a los satélites GNSS (sistema global de navegación por satélite) de órbita terrestre media (MEO) a la vista. El motor es independiente del sistema: cualquier constelación, cualquier diseño de señal y cualquier banda, escritos directamente en un escenario. Los sistemas con nombre son preajustes opcionales, cada uno en su propio archivo con su fuente.
- Código:
src/leo_pass.rs(el tipo de escenario) ysrc/leo_link/(bloques públicos que pueden llamar otros módulos). - Escenarios:
leo-pass-vs-gnss-cn0,leo-indoor-uhf,leo-iot-energy,leo-pass-xona-pulsar,leo-pass-iridium,leo-resilience-spoof-doppler,leo-focus-science-iono-soundingy el opcionalleo-pass-celeste-iod-multiband(resultados en Escenarios incluidos). El tipo de escenario es también miembro de las campañasleo-resilience-spoof-monitors,leo-focus-iot-eirp,leo-focus-indoor-uhfy de todo escenarioleo-vertical-*, y la etapa de pasada del tipo de escenarioleo-pnt-chain. - Visión general de todos los tipos de escenario y escenarios LEO-PNT: LEO-PNT.md.
- Referencias independientes:
tests/leo_link_reference.rs, material de prueba entests/fixtures/leo_link/con sus URL de origen.
Qué calcula una ejecución#
Para cada satélite LEO, banda y época:
| Término | Modelo | Etiqueta |
|---|---|---|
| Elevación, acimut, distancia | usuario en WGS-84 (World Geodetic System 1984), satélite en un marco inercial alineado con el marco terrestre en la época | calculado |
Velocidad de distancia ρ̇ = d·Δv/ρ, aceleración de distancia ρ̈ = (|Δv|² − ρ̇² + d·Δa)/ρ |
forma cerrada; cada ejecución comprueba ambas frente a diferencias centrales de la distancia propagada e informa de la mayor diferencia | forma cerrada |
Doppler −f·ρ̇/c, tasa de Doppler −f·ρ̈/c |
primer orden, por banda | forma cerrada |
| Pérdida de trayecto en espacio libre | Friis, 20·log10(4πRf/c) |
VALIDATED |
| EIRP del satélite (potencia isótropa radiada equivalente) y diagrama | isoflujo hasta una elevación límite, lóbulo principal gaussiano −12(η/θ₃)² dB, o plano |
MODELLED |
| Antena del usuario | parche G_z + 10·q·log10(sin el) dBic, hemisférica o isótropa |
MODELLED |
| Atenuación gaseosa | expresiones simplificadas del Anexo 2 de ITU-R (Unión Internacional de Telecomunicaciones, Sector de Radiocomunicaciones) P.676-10 (sustituida por P.676-13, cuyos coeficientes tabulados el motor no incluye) | MODELLED |
| Atenuación por lluvia | coeficientes de ITU-R P.838-3 y el procedimiento del § 2.2.1.1 de P.618-14, a partir de una intensidad de lluvia R0.01 y una altura de lluvia | VALIDATED |
| Centelleo troposférico | ITU-R P.618-14 § 2.4.1; por debajo de 4 GHz, una extrapolación, señalada en el informe | VALIDATED (4–55 GHz) |
| Pérdida por entrada en edificios (usuario en interiores) | ITU-R P.2109-2, tradicional o térmicamente eficiente, a la elevación del trayecto en la fachada | VALIDATED |
| Desajuste de polarización | factor de pérdida de polarización a partir de las relaciones axiales y los sentidos, promediado sobre la orientación de la elipse | forma cerrada |
| Temperatura de ruido del sistema | suelo de la antena + emisión del cielo del trayecto absorbente (275 K) + 2,7 K cósmicos + receptor 290(10^(NF/10) − 1) |
MODELLED |
| C/N0 (densidad de portadora a ruido) | EIRP + G_sat − L_fs − L_gas − L_rain − L_scint − L_BEL − L_pol + G_user − 10·log10(kT) − L_impl |
MODELLED |
| Retardo de grupo ionosférico | 40.3·STEC/f², STEC (contenido total de electrones oblicuo) del modelo de Klobuchar o un contenido total de electrones (TEC) vertical, escalado por la fracción de una capa de Chapman situada por debajo del satélite |
escalado VALIDATED, TEC MODELLED |
Por par de bandas: los coeficientes libres de ionosfera, la amplificación del ruido √(a₁² + a₂²) y el ruido térmico del código de cada banda y de la combinación en el máximo de la pasada. La comparación con GNSS MEO usa la misma antena de usuario y el mismo receptor, con la potencia mínima recibida del documento de interfaz de cada señal (Galileo Open Service Signal-in-Space Interface Control Document, OS SIS ICD, Issue 2,1 Tabla 12; GPS de IS-GPS-200 e IS-GPS-705), más un exceso declarado, escalada por la distancia. La sección opcional [iot] (Internet de las cosas) da el tiempo hasta la primera fijación, la energía por fijación y la vida de la batería frente al ciclo de trabajo para un presupuesto de potencia del receptor declarado (MODELLED, con cada supuesto como entrada y listado en el informe).
Satélites#
orbit = "pass"(por defecto): una órbita circular situada de modo que el usuario ve una pasada con una elevación máxima elegida a una hora elegida, ascendente o descendente, al este o al oeste del usuario; la inclinación puede ser heliosíncrona.orbit = "elements": elementos keplerianos explícitos.orbit = "tle": un conjunto de elementos de dos líneas (TLE) mediante el propagador Simplified General Perturbations 4 (SGP4) del motor.[[leo_constellation]]: una constelación Walker construida por el códigoconstellation-design(suConstellationCfg, o las capas del preajuste); se informa de las pasadas más altas de la ventana.
Bandas y diseños de señal#
Bandas: system = "<preset>" con un subconjunto opcional bands, y entradas [[satellite.band]] que añaden una banda o sustituyen cualquier campo de una banda de preajuste. system = "none" con solo entradas [[satellite.band]] no usa ningún preajuste.
Una banda también puede nombrar un diseño leo-signal (signal = "xona-x5", cualquier diseño bajo data/leo-signals/, o uno que entregue el tipo de escenario leo-pnt-chain; véase LEO-SIGNAL.md). La banda toma entonces la frecuencia central del diseño (salvo que se indique frequency_mhz), el ancho de banda de transmisión y la tasa de chips del componente seguido, reparte su EIRP entre los componentes del diseño según sus cuotas de potencia e informa en cada época del C/N0 del componente seguido y de su fluctuación de seguimiento de código temprano-tardío de banda limitada (Betz y Kolodziejski 2009, la fórmula del tipo de escenario leo-signal) como error de distancia.
Preajustes#
Cada preajuste marca sus números como PUBLIC (con URL), REPRESENTATIVE (una decisión de diseño documentada, nunca una afirmación sobre un sistema real) o WORKSHOP.
| Preajuste | Fuente | Bandas | Órbita |
|---|---|---|---|
generic-leo (por defecto) |
REPRESENTATIVE; portadoras L, S y C de documentos públicos | UHF 450 MHz (representativo), L 1191,795 MHz (centro de Galileo E5), S 2492,028 MHz (NavIC S, la portadora de banda S de Navigation with Indian Constellation), C 5020 MHz (centro de la asignación de 5010–5030 MHz de RNSS (servicio de radionavegación por satélite)), cada una con 0 dBW | 550 km heliosíncrona, Walker 240/12/1 |
generic-c-band |
REPRESENTATIVE, para sistemas de banda C cuyos parámetros no son públicos (por ejemplo, TrustPoint) | C 5020 MHz, BPSK(10) (modulación por desplazamiento de fase binaria a 10 × 1,023 Mchip/s), isoflujo | 550 km, 53° |
xona-pulsar |
PUBLIC, arXiv 2509,19551 Tablas 1–2 | X1 1593,3225 MHz, X5 1190,51625 MHz; EIRP a partir de la potencia mínima recibida publicada a 10° | 1080 km, 53° (192) y 97° (66) |
iridium-stl |
PUBLIC, Resilient Navigation and Timing Foundation (RNTF) y la órbita publicada | Satellite Time and Location (STL) a 1621 MHz (mitad de 1616–1626 MHz); EIRP a partir de «300 veces GPS» | 781 km, 86,4°, 66 en 6 planos |
starlink-soop |
cifras de señal PUBLIC (NAVIGATION 72(1)), órbita y EIRP REPRESENTATIVE | baliza Ku de 240 MHz, solo Doppler | 550 km, 53° |
centispace |
estructura de señal PUBLIC (PMC10301026), órbita y EIRP REPRESENTATIVE | BPSK 2,046 Mchip/s cerca de L1 y L5 | 1000 km, 55° |
celeste-iod (opcional) |
parámetros de señal WORKSHOP, órbita PUBLIC | siete bandas de la configuración n.º 1 | 510 km heliosíncrona |
El preajuste Celeste IOD (demostración en órbita) es opcional. Sus parámetros de señal se presentaron en el taller LEO-PNT del Navigation Innovation and Support Programme (NAVISP) de la Agencia Espacial Europea (ESA), 2026, y aún no tienen fuente pública; viven en el módulo link de src/celeste_iod.rs, usado por scenarios/leo-pass-celeste-iod-multiband.toml. Cómo se retiene el preajuste: todo número del motor derivado del taller vive en un único archivo, src/celeste_iod.rs, que build.rs compila solo cuando existe, y en los escenarios exclusivos del repositorio scenarios/*celeste-iod*.toml. Eliminar ese archivo y esos escenarios retiene el preajuste sin editar ninguna fuente; el resto de pruebas, referencias independientes y escenarios se ejecutan sin él, y el recuento de archivos de escenario del README sigue contando los archivos retenidos. Su EIRP y su haz están calibrados con una traza de C/N0 mostrada en el taller, de modo que ese escenario reproduce la traza por construcción.
El modelo de efemérides de difusión de polinomio de «reloj cero» ATOMIC es un preajuste de mensaje de navegación y no forma parte de este tipo de escenario.
La observación LEO frente a GNSS#
scenarios/leo-pass-vs-gnss-cn0.toml reproduce cualitativamente lo que muestran las demostraciones de LEO-PNT: el C/N0 de LEO sube y baja en una campana que se mantiene por encima de la máscara durante 590 s y alcanza un máximo de 56,8 dB-Hz, 8,9 dB por encima de la mediana de las portadoras GNSS MEO planas (Galileo E1, de 40,5 a 52,0 dB-Hz, mediana 47,8 dB-Hz). El margen procede de la distancia, no de un transmisor más potente: en el máximo de la pasada el satélite está a 569 km, unas 40 veces más cerca que un satélite Galileo en el cenit (23.222 km), lo que supone 32 dB menos de pérdida en espacio libre; el preajuste genérico radia 0 dBW (1 W).
Escenarios incluidos#
Cada fila es una ejecución de kshana scenarios/<name>.toml (motor 0.40.0):
| Escenario | Configuración | Resultado de una ejecución |
|---|---|---|
leo-pass-vs-gnss-cn0 |
generic-leo banda L, 550 km, pasada de 80° sobre Múnich |
pico en L de 56,8 dB-Hz, mediana de 42,2 dB-Hz; mediana de Galileo E1 de 47,8 dB-Hz |
leo-pass-xona-pulsar |
xona-pulsar, una pasada diseñada de 70° y cuatro satélites de capa inclinada, usuario marítimo |
pico de X1 de 65,6 dB-Hz y de X5 de 68,9 dB-Hz en la pasada diseñada; mayor Doppler de X1 de 31,4 kHz |
leo-pass-iridium |
iridium-stl, pasada de 65°, usuario aéreo |
pico de STL de 80,5 dB-Hz, 34,3 dB por encima de la mediana de GPS L1; mayor Doppler de 35,4 kHz |
leo-indoor-uhf |
generic-leo, usuario en interiores en Roma (edificio tradicional) |
pico UHF 34,1, L 24,2, S 16,5, C 8,5 dB-Hz; mediana de Galileo E1 de 22,4 dB-Hz |
leo-iot-energy |
generic-leo UHF y L con la sección [iot] |
fijación en caliente de 0,90 s y 18,0 mJ en cada señal; fijación en frío UHF 19,0 s (381 mJ), L 47,0 s (939 mJ), GPS L1 38,1 s (762 mJ) |
leo-focus-science-iono-sounding |
generic-leo, cuatro bandas, pasada de 70° sobre Tromsø |
véase Sondeo de la ionosfera |
leo-resilience-spoof-doppler |
16 satélites de una capa genérica a 1080 km, L y C, un salto de 30 m | véase Monitores de spoofing |
kshana scenarios/<name>.toml --animate html --export all escribe también el reproductor interactivo (.animation.html, las épocas de la pasada) y archivos de efemérides CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON y STK (Systems Tool Kit) de la geometría de la pasada (ANIMATION.md, INTEROP.md).
Sondeo de la ionosfera#
Cada par de bandas da además el TEC oblicuo que recupera su combinación de código libre de geometría en el máximo de la pasada, STEC = (P₂ − P₁)·f₁²f₂² / (40.3·(f₁² − f₂²)), y la desviación típica de 1 sigma de esa estimación a partir del ruido de código de las dos bandas en el máximo (geometry_free_stec_tecu, geometry_free_stec_sigma_tecu). La estimación es igual al TEC oblicuo del modelo por construcción: la combinación es exacta a primer orden. La sigma es lo que hace que un plan de bandas sea mejor o peor sondeador: scenarios/leo-focus-science-iono-sounding.toml (cuatro bandas sobre Tromsø) recupera 18,85 unidades de TEC con cada par, con una sigma de 1 de 0,017 unidades de TEC para UHF con L y de 2,9 para S con C. Solo ruido térmico de código; sin multitrayecto ni sesgo entre frecuencias. MODELLED.
Monitores de spoofing ([spoofer])#
La sección opcional [spoofer] falsifica las señales que un receptor vería en una posición declarada. Desde onset_s la posición declarada salta offset_m y después se mueve en horizontal a push_rate_m_s hacia push_azimuth_deg; la distancia y la velocidad de distancia falsificadas son exactamente las de la posición declarada, en las bandas LEO nombradas en bands (por defecto, todas) y en la señal GNSS MEO salvo que gnss = false. simulate_iono indica si las pseudodistancias falsificadas llevan el retardo ionosférico (las de un transmisor terrestre no lo llevan).
El receptor ejecuta dos monitores (src/leo_link/spoof.rs), cada uno con una probabilidad de falsa alarma por época declarada (p_fa, por defecto 1e-5), y declara la detección en la primera época en que su probabilidad de detección alcanza 1 − p_md (por defecto 0,999). Las probabilidades de detección son exactas para el ruido gaussiano declarado, evaluadas sobre el residuo medio sin ruido; no se extrae ruido.
| Monitor | Estadístico | Qué ve |
|---|---|---|
| Coherencia del Doppler y de la geometría de la pasada | velocidades de distancia medidas frente a las predichas a partir de las órbitas y una posición y velocidad a priori independientes (prior_sigma_m, prior_velocity_sigma_m_s); un chi cuadrado de mínimos cuadrados generalizados sobre una ventana de window_s (por defecto, un paso), con la deriva del reloj como parámetro de molestia (o dada drift_sigma_m_s); ruido del lazo de enganche de frecuencia a partir de C/N0 (Kaplan y Hegarty 2006, § 5.6.2), en los canales GNSS, en los canales LEO y en todos los canales |
un error de posición δx mueve una velocidad de distancia en g·δx, g = −(Δv − ρ̇u)/ρ: la velocidad transversal de un satélite LEO dividida por su distancia es unas 25 veces la de un satélite MEO, de modo que el mismo error es unas 25 veces mayor en el Doppler LEO |
| Coherencia entre bandas | el paso de época a época de la combinación de pseudodistancias libre de geometría de cada par de bandas LEO, con el modelo ionosférico del receptor eliminado, frente al ruido de código de √(2(σ₁² + σ₂²)) y una tasa ionosférica no modelada tolerada (iono_rate_bound_m_s) |
un spoofer que falsifica algunas bandas y no otras, o todas las bandas sin la ionosfera, en su inicio; no uno que falsifica todas las bandas y simula la ionosfera |
scenarios/leo-resilience-spoof-doppler.toml: un salto de 30 m en un emplazamiento topografiado de Fráncfort cambia las velocidades de distancia GNSS en unos 4 mm/s y las de LEO en unos 10 cm/s (gradientes medianos de 1.4e-4 y 3.5e-3 por segundo). La prueba solo con GNSS nunca lo detecta (mayor no centralidad 0,06); la prueba sobre todos los canales lo detecta 105 s después del inicio. scenarios/leo-resilience-spoof-monitors.toml ejecuta cuatro spoofers contra ambos monitores.
Limitaciones, declaradas en cada resultado: el spoofer es un empuje de posición idealizado y autoconsistente que compensa su propio trayecto (sin firma de potencia, de ángulo de llegada ni de pico de correlación); el a priori es independiente de las fijaciones falsificadas; el modelo ionosférico del receptor es el del motor, de modo que el residuo entre bandas auténtico es nulo en media. MODELLED (dos filas en VERIFICATION-MATRIX.md).
Validación#
| Referencia independiente | Prueba | Resultado |
|---|---|---|
| ITU-R P.838-3 Tabla 5, 115 frecuencias | p838_coefficients_reproduce_table5_to_its_printed_digits |
cada coeficiente a menos de 0,6 de su última cifra impresa (peor caso observado 0,51) |
| ejemplos de validación de la Comisión de Estudio 3 de ITU-R (CG-3M3J-13-ValEx-Rev8.3.0), lluvia de P.618-14 | p618_rain_attenuation_matches_the_itu_validation_examples |
56 casos a menos de 1e-4 dB (observado 5e-6 dB) |
| Los mismos ejemplos, centelleo de P.618-14 | p618_scintillation_matches_the_itu_validation_examples |
42 casos a menos de 1e-5 dB |
| libro de trabajo de Clutter y BEL de la Comisión de Estudio 3 de ITU-R, P.2109 | p2109_building_entry_loss_matches_the_itu_workbook |
568 valores a menos de 0,001 dB |
razón de retardo de grupo de IS-GPS-200 γ = (77/60)² |
first_order_iono_reproduces_the_is_gps_200_group_delay_ratio |
hasta 1e-12; amplificación L1/L2 y L1/L5 de 2,978 y 2,588 |
| forma de Friis en kilómetros–megahercios | free_space_loss_is_the_friis_kilometre_megahertz_form |
hasta 1e-4 dB |
| arXiv 2509,19551 Tabla 1 (Pulsar, validación en órbita (IOV), capacidad operativa plena (FOC) polar, FOC inclinada, GPS) | doppler_envelope_reproduces_the_pulsar_paper_table_1 |
20 velocidades y máximos de Doppler a menos de 0,05 % |
Las referencias independientes de lluvia y de centelleo toman la altura de lluvia y la refractividad húmeda tal como las dan los ejemplos de validación: el motor no incluye ni el mapa de ITU-R P.839 ni el de P.453.
Limitaciones#
- Las EIRP y los diagramas son potencias recibidas publicadas convertidas en una EIRP, o elecciones representativas; no se usa el diagrama medido de ningún satélite y ningún C/N0 de LEO se compara con una medición.
- El término gaseoso es el método simplificado sustituido P.676-10; por debajo de 1 GHz es el valor de 1 GHz escalado por f², y la lluvia se toma como cero ahí.
- La fracción de TEC por debajo de un satélite LEO procede de una única capa de Chapman (sin plasmasfera), que puede sustituirse por una fracción declarada.
- Las órbitas de pasada diseñada y de Walker son de dos cuerpos con un J2 secular opcional (el segundo armónico zonal de la Tierra); la vía TLE usa SGP4. La aceleración propia del usuario se omite en la tasa de Doppler de forma cerrada (la comprobación numérica informa de lo que eso cuesta para un usuario en movimiento).
- RINEX (Receiver Independent Exchange Format) 4,02 no tiene registros de navegación LEO; cualquier exportación LEO de estilo RINEX pertenece al código del mensaje de navegación y es una extensión documentada de Kshana (antecedentes: arXiv 2401,17767).