Modelo de espectro y cascada
El tipo de escenario spectrum construye la banda L del Sistema Global de Navegación por Satélite (GNSS), y cualquier otra banda que ocupe una señal diseñada (frecuencia ultraalta (UHF), banda S, banda C), como una única densidad espectral de potencia (PSD), la hace cambiar a lo largo de una cronología programada de inhibidores y la reduce a lo que le importa a un lazo de seguimiento: la relación inhibidor-señal (J/S) y la relación efectiva portadora-densidad de ruido (C/N₀) de cada banda. Dibuja el resultado como una cascada (frecuencia en horizontal, tiempo hacia abajo, color para la potencia) junto a barras de C/N₀ por banda, y lee y escribe grabaciones en el Formato de Metadatos de Señal (SigMF), de modo que una captura real pueda estimarse y representarse junto al modelo.
Escriba el ejemplo incluido en un archivo y ejecútelo:
kshana example l-band-waterfall-jamming > l-band-waterfall-jamming.toml
kshana l-band-waterfall-jamming.toml
# writes .result.json, .chart.svg, .report.html and .report.json next to the file
En una copia de trabajo, kshana scenarios/l-band-waterfall-jamming.toml ejecuta el mismo archivo.
Código: src/spectrum.rs (el modelo, el tipo, el estimador de Welch), src/sigmf.rs (el códec de grabaciones), src/navsignal.rs (los espectros de señal de área unitaria y el coeficiente de separación espectral) y src/leo_signal.rs (los perfiles de diseño de señal que puede nombrar una banda).
Lo que se modela#
| Banda | Portadora | Modulación | Potencia recibida predeterminada | Ancho de banda del receptor predeterminado |
|---|---|---|---|---|
gps-l1ca |
1575,42 MHz | modulación por desplazamiento de fase binaria, BPSK(1) | −158,5 dBW (IS-GPS-200) | 2,046 MHz |
galileo-e1 |
1575,42 MHz | portadora de desplazamiento binario multiplexada, MBOC(6,1,1/11), o portadora de desplazamiento binario BOC(1.1) | −157,25 dBW (Galileo OS SIS ICD Issue 2,1, Table 12) | 14,322 MHz |
gps-l2c |
1227,60 MHz | BPSK(1) (códigos CM y CL multiplexados en el tiempo) | −160,0 dBW (IS-GPS-200) | 2,046 MHz |
gps-l5 |
1176,45 MHz | BPSK(10) | −157,9 dBW (IS-GPS-705) | 20,46 MHz |
galileo-e5a |
1176,45 MHz | BPSK(10) | −155,25 dBW (Galileo OS SIS ICD Issue 2,1, Table 12) | 20,46 MHz |
GPS (Sistema de Posicionamiento Global) L1 C/A es el código de adquisición gruesa; L2C es la señal civil L2; IS-GPS-200 e IS-GPS-705 son las especificaciones de interfaz de GPS; Galileo OS SIS ICD es el Documento de Control de Interfaz de la Señal en el Espacio del Servicio Abierto de Galileo. Las potencias recibidas son los mínimos de la especificación; los anchos de banda son decisiones de modelado. Ambos pueden sustituirse por banda. Sin una tabla [[bands]], la ejecución usa estas cinco. GLONASS G1/G2, BeiDou B1/B2 y Galileo E6 no figuran entre las bandas con nombre.
Una entrada [[bands]] adopta una de tres formas:
- un nombre de la tabla anterior, con
signal_power_dbwyrx_bandwidth_mhzopcionales y, paragalileo-e1,modulation = "boc11"; signal = "<preset>": un diseño de señal de órbita terrestre baja (LEO) o representativo de la biblioteca de perfiles del tipoleo-signal(LEO-SIGNAL.md), en cualquier banda, dibujado con todos sus componentes (adquisición, datos, piloto, subportadoras de división de frecuencia) y limitado en banda a su ancho de banda de transmisión; C/N₀ y J/S se refieren al componente seguido, ynamesolo lo etiqueta. Los perfiles sonxona-x1,xona-x5,iridium-stl,starlink-ku-beacon,centispace-l1,centispace-l5,generic-c-band-leo,generic-uhf,generic-l,generic-s,generic-cygeneric-c-wide;- una banda personalizada: cualquier
nameconcentre_mhz,modulation(BPSK(n),BOC(m,n)oMBOC(6,1,p)) ysignal_power_dbw.
Los inhibidores ([[jammers]]) adoptan una waveform:
cw: un tono de onda continua (CW) encentre_mhz;narrowband: ruido plano enbandwidth_mhz;wideband: ruido plano en unbandwidth_mhzancho (un inhibidor de barrera): la misma densidad quenarrowband, nombrado aparte porque el tipojamminglo puntúa como de banda ancha;chirp: un barrido lineal en diente de sierra debandwidth_mhzcadasweep_period_us;matched: ruido de banda ancha cuyo espectro es la propia modulación de la bandamatched_to.
Cada uno da bien received_power_dbw, o bien una potencia isótropa radiada efectiva eirp_dbw con una range_m (y opcionalmente rx_gain_dbi), que pasa por la pérdida de trayecto en espacio libre del tipo jamming. on_s y off_s programan la cronología.
El receptor ([receiver]) fija el suelo de ruido, N₀ = k·T_sys con T_sys = T_ant + 290 K × (F − 1) para la temperatura de antena T_ant y la figura de ruido F, y el umbral de seguimiento.
La cascada principal cubre [grid] (de 1160 a 1590 MHz en 430 contenedores por defecto). Cada entrada [[panels]] (name, f_min_mhz, f_max_mhz, n_freq, 200 contenedores por defecto) añade otra cascada sobre su propio intervalo de frecuencias en la misma cronología, para un espectro que abarca varias bandas.
La cadena de interferencia#
Para una señal de espectro de área unitaria G_s y un inhibidor de espectro de potencia unitaria G_j, el coeficiente de separación espectral (SSC) sobre la banda del receptor B es κ = ∫_B G_s(f) G_j(f) df, y la densidad efectiva portadora-ruido con varios inhibidores es
(C/N₀)_eff = [ 1/(C/N₀) + Σ_j (J/S)_j · κ_j ]⁻¹
(Betz 2001; Kaplan & Hegarty, Understanding GPS/GNSS, 3.ª ed., §9,4). Para un solo inhibidor, esta es exactamente la ecuación antiinterferencia del tipo jamming con Q = 1/(R_c κ); el bloque jamming_kind_cross_check del informe ejecuta las propias funciones del tipo jamming con las mismas entradas de enlace e imprime la diferencia, que es cero salvo redondeo.
El informe imprime también el C/N₀ que da el tipo jamming con su tabla de Q. La tabla contiene los valores de los manuales, fijados en las pruebas a las formas cerradas:
- CW y banda estrecha:
Q = 1. Un tono CW sobre la portadora C/A tieneκ = T_c, por lo queQ = 1, y la tabla y los espectros concuerdan. En el ejemplo incluido, el tono da 17,98 dB-Hz con ambos (la tabla daba 19,74 cuando contenía 1,5). - Banda ancha y barrido:
Q = 2, desde la 0,36. Es ruido blanco sobre el lóbulo principal con la potencia de señal en banda normalizada a uno,κ = 1/(2R_c). La tabla contenía 1 hasta la 0,36, unos 3 dB pesimista (xval/jammer-q/PREREGISTRATION.md).
El modelo de espectro deriva sus propios valores de los espectros:
Q = 1.5para ruido adaptado a C/A (κ = 2/(3R_c));Q = 2.2para ruido plano de nulo a nulo sin la normalización (2/0.9028).
Así que, para esos inhibidores, los dos valores de C/N₀ impresos siguen difiriendo, por diseño.
Cada celda de la cascada es la PSD promediada sobre su contenedor de frecuencia y su fila. Un chirp se promedia exactamente sobre la fila, con los barridos completos más el parcial; un inhibidor que se activa o se desactiva a mitad de fila se pondera por su ciclo de trabajo. La cronología de C/N₀ usa los mismos promedios, de modo que la imagen y los números concuerdan. Por banda, la cronología informa de la J/S en banda (potencia del inhibidor dentro del ancho de banda del receptor sobre la potencia de la señal). Por inhibidor y banda, el informe da el SSC, Q, la J/S total, la J/S en banda y el C/N₀ estacionario.
El ejemplo incluido#
scenarios/l-band-waterfall-jamming.toml: una cronología de 60 s, una fila por segundo, una antena de 290 K y una figura de ruido de 2 dB (suelo −201,98 dBW/Hz).
- De 10 s a 40 s: un chirp de 16 MHz en torno a L1, barridos de 9 µs, 50 mW a 100 m.
- Desde 30 s: un tono CW sobre la portadora L1, 10 mW a 1 km.
- Desde 45 s: ruido plano de 2 MHz en L2 recibido a −135 dBW.
Lo que calcula la ejecución:
| Banda | C/N₀ nominal | C/N₀ mínimo | Primera pérdida | Filas con seguimiento |
|---|---|---|---|---|
| gps-l1ca | 43,48 dB-Hz | 3,23 dB-Hz | 10 s | 17 % |
| galileo-e1 | 44,73 dB-Hz | 4,44 dB-Hz | 10 s | 50 % |
| gps-l2c | 41,98 dB-Hz | 36,86 dB-Hz | nunca | 100 % |
| gps-l5 | 44,08 dB-Hz | 44,08 dB-Hz | nunca | 100 % |
| galileo-e5a | 46,73 dB-Hz | 46,73 dB-Hz | nunca | 100 % |
El tono CW es la razón por la que las dos señales L1 se separan a los 40 s. Cae sobre el pico del espectro de C/A y mantiene C/A en 17,98 dB-Hz, por debajo del umbral de 25 dB-Hz. Cae en el nulo del espectro MBOC, de modo que Galileo E1 vuelve a su C/N₀ nominal cuando cesa el chirp.
Las propias señales quedan unos 20 dB por debajo del suelo de ruido, por lo que la cascada muestra el suelo y los inhibidores; las barras de C/N₀ muestran lo que recupera el desensanchamiento.
Los mismos inhibidores impulsan una misión encadenada en scenarios/campaign-spectrum-holdover-integrity.toml (véase CAMPAIGNS.md): el reloj mantiene el holdover mientras el chirp está activo, y el receptor recurre a Galileo E1 bajo el tono CW.
Más allá de la banda L#
scenarios/multi-band-jamming-waterfall.toml sitúa señales de posicionamiento, navegación y temporización (PNT) LEO en cuatro bandas junto a GPS L1 C/A y Galileo E5a, cada banda con su propio inhibidor, en una cronología de 60 s. La cascada de [grid] es la banda L; tres [[panels]] añaden UHF (de 455 a 475 MHz), S (de 2482 a 2502 MHz) y C (de 5005 a 5035 MHz).
- 10 s: un tono CW en la portadora UHF, −120 dBW recibidos.
- 20 s: el chirp del ejemplo de banda L (16 MHz en torno a L1, barridos de 9 µs, 50 mW a 100 m).
- 30 s: ruido de banda ancha, 40 MHz en torno a 1185 MHz, −118 dBW.
- 40 s: ruido de banda estrecha, 2 MHz en la portadora S, −128 dBW.
- 50 s: ruido adaptado al propio espectro de la señal de banda C, −124 dBW.
Lo que calcula la ejecución (el C/N₀ de las señales diseñadas es el del componente seguido, por lo que el valor nominal queda por debajo de la potencia total recibida en la fracción que corresponde al componente seguido):
| Banda | Señal | Portadora | C/N₀ nominal | C/N₀ mínimo | Filas con seguimiento |
|---|---|---|---|---|---|
| generic-uhf | representativa, BPSK(5), −150 dBW | 465 MHz | 49,41 dB-Hz | 34,38 dB-Hz | 100 % |
| gps-l1ca | mínimo de la especificación | 1575,42 MHz | 43,48 dB-Hz | 3,38 dB-Hz | 33 % |
| galileo-e5a | mínimo de la especificación | 1176,45 MHz | 46,73 dB-Hz | 38,51 dB-Hz | 100 % |
| xona-x5 | diseño publicado, −144,9 dBW | 1190,51625 MHz | 54,51 dB-Hz | 46,29 dB-Hz | 100 % |
| generic-s | representativa, BPSK(5), −150 dBW | 2492,028 MHz | 49,23 dB-Hz | 41,69 dB-Hz | 100 % |
| generic-c-band-leo | representativa, BPSK(10), −152 dBW | 5020 MHz | 47,41 dB-Hz | 40,35 dB-Hz | 100 % |
Solo el chirp deja sin señal (GPS L1 C/A, desde los 20 s). Cada uno de los demás inhibidores degrada solo la banda que alcanza su espectro: el ruido adaptado de banda C, por ejemplo, tiene un SSC de −71,87 dB/Hz con la señal de banda C y por debajo de −133 dB/Hz con todas las demás bandas.
La misma maquinaria impulsa los escenarios de resiliencia LEO-PNT (LEO-PNT.md):
scenarios/leo-resilience-js-margin.tomlhace avanzar un inhibidor de barrera de 40 MHz a 1185 MHz en pasos de 5 dB cada 10 s desde −125 dBW. GPS L5 se pierde en el paso de −105 dBW, Galileo E5a en −100 dBW y Xona X5 en −95 dBW, mientras que una señal representativa de banda L LEO recibida a −135 dBW sigue siendo seguida a −90 dBW: la potencia recibida compra margen de J/S dB por dB.scenarios/leo-resilience-multiband-diversity.tomles un barrido de campaña de una ejecuciónspectrumsobre la potencia de una barrera en banda L5 (CAMPAIGNS.md).scenarios/leo-resilience-gnss-jammed-leo-carries.tomles una campaña encadenada cuyas fases leen el C/N₀ de GNSS y de LEO de ejecucionesspectrum, con paneles de banda S y C.
IQ, SigMF y Welch#
[iq] dibuja el modelo en un instante como muestras complejas en fase y cuadratura (IQ), las escribe como una grabación SigMF (cf32_le o ci16_le), vuelve a leer la grabación y estima su PSD por el método de Welch (ventana de Hann, 50 % de solapamiento, periodogramas promediados, escalado por densidad). El ruido térmico, las señales y los inhibidores de tipo ruido se dibujan contenedor a contenedor a partir de la propia densidad del modelo; un tono y un chirp se dibujan como formas de onda reales. Con solo inhibidores de tipo ruido, la estimación de Welch queda a 0,1 dB del modelo (mediana). Un chirp periódico es un espectro de líneas a su velocidad de barrido, con rizado y colas más allá de los bordes de su banda que el modelo suave omite: en el ejemplo incluido, la potencia total concuerda al 0,02 % y el contenedor mediano difiere en 0,5 dB. La instantánea es un archivo escrito para su análisis; no se transmite nada y no se maneja hardware de radio.
[recording] (solo en compilaciones nativas) lee una grabación SigMF real desde meta_path (el archivo de datos toma por defecto el mismo nombre base con .sigmf-data), estima su PSD y la imprime junto al modelo en las frecuencias de la grabación. Un archivo SigMF no tiene calibración absoluta de potencia, por lo que el informe da el desfase mediano y la forma, no un nivel.
En la compilación WebAssembly no están disponibles las lecturas de archivos; kshana::sigmf::read y kshana::spectrum::welch_psd funcionan con los bytes que aporta la página.
Evidencias#
| Afirmación | Etiqueta | Referencia independiente |
|---|---|---|
| PSD de señal y SSC | VALIDATED | Lóbulo principal de BPSK(n) de 2n × 1,023 MHz de nulo a nulo; lóbulos de BOC(1.1) centrados en ±1,023 MHz (Betz 2001); SSC de −61,86 / −64,87 / −67,88 dB/Hz para C/A×C/A, BOC(1.1)×BOC(1.1), C/A×BOC(1.1) a partir de sus formas cerradas de Parseval, los valores que hay tras los publicados −61,8 / −64,8 / −67,8 dB/Hz; Q = 1 (CW) y 1,5 (adaptado) (Kaplan & Hegarty §9,4); las entradas de la tabla del tipo jamming coinciden con las formas cerradas: CW y banda estrecha Q = 1, banda ancha y barrido Q = 2 (ruido blanco sobre el lóbulo principal, potencia en banda normalizada; 1 hasta la 0,36) |
| Cascada, J/S y cronología de C/N₀ | MODELLED | Se reduce exactamente a la cadena del tipo jamming; las potencias de los inhibidores, la cronología y los anchos de banda son entradas |
| Códec SigMF y estimación de Welch | MODELLED | Ida y vuelta, una transformada de Fourier discreta directa, identidades de ruido blanco y de Parseval; no hay ninguna grabación de terceros en el repositorio |
| Cascada multibanda con señales diseñadas e inhibidores por banda | MODELLED | Se reduce a la cadena de banda L (una banda de un solo componente da los mismos números que antes de la ampliación) y a los espectros de señal validados; las señales diseñadas, los inhibidores y los anchos de banda son entradas |
Una corrección a un atajo habitual: los lóbulos del espectro de BOC(1.1) están centrados en ±1,023 MHz (entre el nulo de la portadora y el nulo en 2,046 MHz), pero el máximo de la PSD está en ±0,759 MHz, donde tan y = 2y con y = πf/(2R_c). Las pruebas fijan ambos.
No modelado#
- Estructura de líneas del código de ensanchamiento (las líneas de 1 kHz de C/A): un tono se puntúa frente a la envolvente suave, no frente a la línea de código más próxima.
- Control automático de ganancia, cuantización, supresión de pulsos y filtrado de rechazo de banda.
- El diagrama de la antena receptora hacia el inhibidor más allá de una cifra de ganancia.
- Interferencia de acceso múltiple entre satélites de una misma banda.
- Las emisiones de una señal diseñada fuera de su ancho de banda de transmisión: su espectro se trunca allí, de modo que ninguna emisión fuera de banda llega a una banda vecina.
- El efecto de un chirp sobre el lazo a velocidades de barrido comparables al ancho de banda del lazo: su C/N₀ usa el espectro promediado por fila.
Referencias#
- J. W. Betz, "Binary Offset Carrier Modulations for Radionavigation", NAVIGATION 48(4), 2001.
- E. D. Kaplan y C. J. Hegarty (eds.), Understanding GPS/GNSS: Principles and Applications, 3.ª ed., Artech House, 2017, §9,4.
- G. W. Hein et al., "MBOC: The New Optimized Spreading Modulation Recommended for Galileo L1 OS and GPS L1C", Inside GNSS, mayo/junio de 2006.
- P. D. Welch, "The Use of Fast Fourier Transform for the Estimation of Power Spectra", IEEE Transactions on Audio and Electroacoustics 15(2), 1967.
- IS-GPS-200, IS-GPS-705; Galileo OS SIS ICD.
- Especificación SigMF, https://sigmf.org/ (código fuente: https://github.com/sigmf/SigMF).