Modelo de espetro e cascata
O tipo de cenário spectrum constrói a banda L do Global Navigation Satellite System (GNSS), e qualquer outra banda que um sinal projetado ocupe (ultra-alta frequência (UHF), banda S, banda C), como uma única densidade espetral de potência (PSD), deixa-a variar ao longo de uma cronologia de emissores de interferência definida em guião, e reduz-a ao que interessa a um ciclo de seguimento: a razão interferência-sinal (J/S) e a razão efetiva entre a portadora e a densidade de ruído (C/N₀) de cada banda. Desenha o resultado como uma cascata (frequência na horizontal, tempo na vertical, cor para a potência) junto de barras de C/N₀ por banda, e lê e escreve gravações Signal Metadata Format (SigMF), de modo que uma captura real possa ser estimada e traçada junto do modelo.
Escreva o exemplo incluído num ficheiro e execute-o:
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
Num repositório clonado, kshana scenarios/l-band-waterfall-jamming.toml executa o mesmo ficheiro.
Código: src/spectrum.rs (o modelo, o tipo de cenário, o estimador de Welch), src/sigmf.rs (o codec de gravações), src/navsignal.rs (os espetros de sinal de área unitária e o coeficiente de separação espetral) e src/leo_signal.rs (as predefinições de projeto de sinal que uma banda pode nomear).
O que é modelado#
| Banda | Portadora | Modulação | Potência recebida predefinida | Largura de banda predefinida do recetor |
|---|---|---|---|---|
gps-l1ca |
1575,42 MHz | modulação por desvio de fase binária, BPSK(1) | −158,5 dBW (IS-GPS-200) | 2,046 MHz |
galileo-e1 |
1575,42 MHz | portadora com desvio binário multiplexada, MBOC(6,1,1/11), ou portadora com desvio binário 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 e CL multiplexados no tempo) | −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 (Global Positioning System) L1 C/A é o código de aquisição aproximada; L2C é o sinal civil L2; IS-GPS-200 e IS-GPS-705 são as especificações de interface do GPS; Galileo OS SIS ICD é o Galileo Open Service Signal-in-Space Interface Control Document. As potências recebidas são os mínimos da especificação; as larguras de banda são escolhas de modelação. Ambas podem ser substituídas por banda. Sem uma tabela [[bands]], a execução usa estas cinco. GLONASS G1/G2, BeiDou B1/B2 e Galileo E6 não figuram entre as bandas com nome.
Uma entrada [[bands]] toma uma de três formas:
- um nome da tabela acima, com
signal_power_dbw,rx_bandwidth_mhzopcionais e, paragalileo-e1,modulation = "boc11"; signal = "<preset>": um projeto de sinal de órbita terrestre baixa (LEO) ou representativo, da biblioteca de predefinições do tipo de cenárioleo-signal(LEO-SIGNAL.md), em qualquer banda, desenhado com todos os componentes (aquisição, dados, piloto, subportadoras de multiplexagem por divisão de frequência) e limitado em banda à sua largura de banda de transmissão; o C/N₀ e o J/S referem-se ao componente seguido, enameapenas o etiqueta. As predefinições sãoxona-x1,xona-x5,iridium-stl,starlink-ku-beacon,centispace-l1,centispace-l5,generic-c-band-leo,generic-uhf,generic-l,generic-s,generic-cegeneric-c-wide;- uma banda personalizada: qualquer
namecomcentre_mhz,modulation(BPSK(n),BOC(m,n)ouMBOC(6,1,p)) esignal_power_dbw.
Os emissores de interferência ([[jammers]]) têm um waveform:
cw— um tom de onda contínua (CW) emcentre_mhz;narrowband— ruído plano sobrebandwidth_mhz;wideband— ruído plano sobre umabandwidth_mhzlarga (um emissor de interferência de barragem): a mesma densidade quenarrowband, nomeado em separado porque o tipo de cenáriojammingo pontua como de banda larga;chirp— um varrimento linear em dente de serra debandwidth_mhza cadasweep_period_us;matched— ruído de banda larga cujo espetro é a própria modulação da bandamatched_to.
Cada um indica received_power_dbw, ou uma potência isotrópica radiada equivalente eirp_dbw com um range_m (e, opcionalmente, rx_gain_dbi), que passa pela perda de percurso em espaço livre do tipo de cenário jamming. on_s e off_s definem a cronologia em guião.
O recetor ([receiver]) define o patamar de ruído, N₀ = k·T_sys com T_sys = T_ant + 290 K × (F − 1) para a temperatura de antena T_ant e o fator de ruído F, e o limiar de seguimento.
A cascata principal cobre [grid] (por predefinição, de 1160 a 1590 MHz em 430 intervalos). Cada entrada [[panels]] (name, f_min_mhz, f_max_mhz, n_freq, predefinição de 200 intervalos) acrescenta outra cascata sobre o seu próprio intervalo de frequências na mesma cronologia, para um espetro que abranja várias bandas.
A cadeia de interferência#
Para um sinal de espetro de área unitária G_s e um emissor de interferência de espetro de potência unitária G_j, o coeficiente de separação espetral (SSC) sobre a banda do recetor B é κ = ∫_B G_s(f) G_j(f) df, e a densidade efetiva entre a portadora e o ruído com vários emissores de interferência é
(C/N₀)_eff = [ 1/(C/N₀) + Σ_j (J/S)_j · κ_j ]⁻¹
(Betz 2001; Kaplan & Hegarty, Understanding GPS/GNSS, 3.ª ed., §9,4). Para um só emissor de interferência, esta é exatamente a equação antijamming do tipo de cenário jamming com Q = 1/(R_c κ); o bloco jamming_kind_cross_check do relatório executa as próprias funções do tipo de cenário jamming sobre as mesmas entradas da ligação e imprime a diferença, que é zero até ao arredondamento.
O relatório imprime também o C/N₀ que o tipo de cenário jamming dá com a sua tabela de Q. A tabela contém os valores de manual, fixados nos testes face às formas fechadas:
- CW e banda estreita:
Q = 1. Um tom CW sobre a portadora C/A temκ = T_c, pelo queQ = 1, e a tabela e os espetros concordam. No exemplo incluído, o tom dá 17,98 dB-Hz em ambos (a tabela dava 19,74 quando continha 1,5). - Banda larga e varrido:
Q = 2, desde a 0,36. Trata-se de ruído branco sobre o lóbulo principal, com a potência do sinal na banda normalizada a um,κ = 1/(2R_c). A tabela continha 1 até à 0,36, cerca de 3 dB pessimista (xval/jammer-q/PREREGISTRATION.md).
O modelo de espetro deduz os seus próprios valores a partir dos espetros:
Q = 1.5para ruído adaptado ao C/A (κ = 2/(3R_c));Q = 2.2para ruído plano de nulo a nulo sem a normalização (2/0.9028).
Assim, para esses emissores de interferência, os dois valores de C/N₀ impressos continuam a diferir, por conceção.
Cada célula da cascata é a PSD média sobre o seu intervalo de frequência e a sua linha. Um varrimento é calculado exatamente como média sobre a linha, varrimentos completas mais a parcial; um emissor de interferência que liga ou desliga a meio de uma linha é ponderado pelo seu ciclo de trabalho. A cronologia de C/N₀ usa as mesmas médias, pelo que a imagem e os números concordam. Por banda, a cronologia reporta o J/S na banda (potência do emissor de interferência dentro da largura de banda do recetor sobre a potência do sinal). Por emissor de interferência e banda, o relatório dá o SSC, Q, o J/S total, o J/S na banda e o C/N₀ em regime estacionário.
O exemplo incluído#
scenarios/l-band-waterfall-jamming.toml: uma cronologia de 60 s, uma linha por segundo, uma antena de 290 K e um fator de ruído de 2 dB (patamar de −201,98 dBW/Hz).
- De 10 s a 40 s: um varrimento de 16 MHz em torno de L1, varrimentos de 9 µs, 50 mW a 100 m.
- A partir de 30 s: um tom CW na portadora L1, 10 mW a 1 km.
- A partir de 45 s: ruído plano de 2 MHz em L2 recebido a −135 dBW.
O que a execução calcula:
| Banda | C/N₀ nominal | C/N₀ mínimo | Primeira perda | Linhas em seguimento |
|---|---|---|---|---|
| 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 % |
O tom CW é a razão pela qual os dois sinais L1 se separam aos 40 s. Cai sobre o pico do espetro C/A e mantém o C/A em 17,98 dB-Hz, abaixo do limiar de 25 dB-Hz. Cai no nulo do espetro MBOC, pelo que o Galileo E1 regressa ao seu C/N₀ nominal quando o varrimento termina.
Os próprios sinais situam-se cerca de 20 dB abaixo do patamar de ruído, pelo que a cascata mostra o patamar e os emissores de interferência; as barras de C/N₀ mostram o que o desespalhamento recupera.
Os mesmos emissores de interferência conduzem uma missão encadeada em scenarios/campaign-spectrum-holdover-integrity.toml (ver CAMPAIGNS.md): o relógio mantém-se em holdover enquanto o varrimento está ativo, e o recetor recorre ao Galileo E1 sob o tom CW.
Para além da banda L#
scenarios/multi-band-jamming-waterfall.toml coloca sinais de posicionamento, navegação e temporização (PNT) LEO em quatro bandas, junto do GPS L1 C/A e do Galileo E5a, cada banda com o seu próprio emissor de interferência, numa cronologia de 60 s. A cascata [grid] é a banda L; três [[panels]] acrescentam UHF (455 a 475 MHz), S (2482 a 2502 MHz) e C (5005 a 5035 MHz).
- 10 s: um tom CW na portadora UHF, −120 dBW recebidos.
- 20 s: o varrimento do exemplo da banda L (16 MHz em torno de L1, varrimentos de 9 µs, 50 mW a 100 m).
- 30 s: ruído de banda larga, 40 MHz em torno de 1185 MHz, −118 dBW.
- 40 s: ruído de banda estreita, 2 MHz na portadora S, −128 dBW.
- 50 s: ruído adaptado ao próprio espetro do sinal da banda C, −124 dBW.
O que a execução calcula (o C/N₀ dos sinais projetados é o do componente seguido, pelo que o valor nominal fica abaixo da potência total recebida na proporção do componente seguido):
| Banda | Sinal | Portadora | C/N₀ nominal | C/N₀ mínimo | Linhas em seguimento |
|---|---|---|---|---|---|
| generic-uhf | representativo, BPSK(5), −150 dBW | 465 MHz | 49,41 dB-Hz | 34,38 dB-Hz | 100 % |
| gps-l1ca | mínimo da especificação | 1575,42 MHz | 43,48 dB-Hz | 3,38 dB-Hz | 33 % |
| galileo-e5a | mínimo da especificação | 1176,45 MHz | 46,73 dB-Hz | 38,51 dB-Hz | 100 % |
| xona-x5 | projeto publicado, −144,9 dBW | 1190,51625 MHz | 54,51 dB-Hz | 46,29 dB-Hz | 100 % |
| generic-s | representativo, BPSK(5), −150 dBW | 2492,028 MHz | 49,23 dB-Hz | 41,69 dB-Hz | 100 % |
| generic-c-band-leo | representativo, BPSK(10), −152 dBW | 5020 MHz | 47,41 dB-Hz | 40,35 dB-Hz | 100 % |
Só o varrimento retira um sinal (GPS L1 C/A, a partir de 20 s). Cada um dos outros emissores de interferência degrada apenas a banda que o seu espetro alcança: o ruído adaptado da banda C, por exemplo, tem um SSC de −71,87 dB/Hz com o sinal da banda C e inferior a −133 dB/Hz com todas as outras bandas.
O mesmo mecanismo conduz os cenários de resiliência LEO-PNT (LEO-PNT.md):
scenarios/leo-resilience-js-margin.tomlfaz subir em degraus de 5 dB, a cada 10 s, um emissor de interferência de barragem de 40 MHz a 1185 MHz, a partir de −125 dBW. O GPS L5 perde-se no degrau de −105 dBW, o Galileo E5a a −100 dBW e o Xona X5 a −95 dBW, enquanto um sinal LEO representativo da banda L recebido a −135 dBW ainda é seguido a −90 dBW: a potência recebida compra margem de J/S, dB por dB.scenarios/leo-resilience-multiband-diversity.tomlé um varrimento de campanha de uma execuçãospectrumsobre a potência de uma barragem na banda L5 (CAMPAIGNS.md).scenarios/leo-resilience-gnss-jammed-leo-carries.tomlé uma campanha encadeada cujas fases leem o C/N₀ do GNSS e do LEO de execuçõesspectrum, com painéis das bandas S e C.
IQ, SigMF e Welch#
[iq] desenha o modelo num instante como amostras complexas em fase e em quadratura (IQ), escreve-as como uma gravação SigMF (cf32_le ou ci16_le), lê a gravação de volta e estima a sua PSD pelo método de Welch (janela de Hann, sobreposição de 50 %, periodogramas médios, escalados em densidade). O ruído térmico, os sinais e os emissores de interferência semelhantes a ruído são desenhados intervalo a intervalo a partir da própria densidade do modelo; um tom e um varrimento são desenhados como formas de onda reais. Apenas com emissores de interferência semelhantes a ruído, a estimativa de Welch fica a 0,1 dB do modelo (mediana). Um varrimento periódico é um espetro de riscas à sua taxa de varrimento, com ondulação e caudas para além dos limites da sua banda que o modelo suave omite: no exemplo incluído, a potência total concorda dentro de 0,02 % e o intervalo mediano difere em 0,5 dB. A captura instantânea é um ficheiro escrito para análise; nada é transmitido e nenhum equipamento de rádio é acionado.
[recording] (apenas em compilações nativas) lê uma gravação SigMF real a partir de meta_path (o ficheiro de dados tem por predefinição o mesmo nome base com .sigmf-data), estima a sua PSD e imprime-a junto do modelo nas frequências da gravação. Um ficheiro SigMF não tem calibração de potência absoluta, pelo que o relatório dá o desvio mediano e a forma, e não um nível.
Na compilação WebAssembly, as leituras de ficheiros não estão disponíveis; kshana::sigmf::read e kshana::spectrum::welch_psd funcionam sobre bytes fornecidos pela página.
Evidências#
| Afirmação | Etiqueta | Referência independente |
|---|---|---|
| PSD de sinais e SSC | VALIDATED | Lóbulo principal de BPSK(n) com 2n × 1,023 MHz de nulo a nulo; lóbulos de BOC(1 1) centrados em ±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 das suas formas fechadas de Parseval, os valores por detrás dos publicados −61,8 / −64,8 / −67,8 dB/Hz; Q = 1 (CW) e 1,5 (adaptado) (Kaplan & Hegarty §9,4); as entradas da tabela do tipo de cenário jamming são iguais às formas fechadas: CW e banda estreita Q = 1, banda larga e varrido Q = 2 (ruído branco sobre o lóbulo principal, potência na banda normalizada; 1 até à 0,36) |
| Cascata, J/S e cronologia de C/N₀ | MODELLED | Reduz-se exatamente à cadeia do tipo de cenário jamming; as potências, a cronologia e as larguras de banda dos emissores de interferência são entradas |
| Codec SigMF e estimativa de Welch | MODELLED | Ida e volta, uma transformada de Fourier discreta direta, identidades de ruído branco e de Parseval; nenhuma gravação de terceiros consta do repositório |
| Cascata multibanda com sinais projetados e emissores de interferência por banda | MODELLED | Reduz-se à cadeia da banda L (uma banda de um só componente dá os mesmos números que antes da extensão) e aos espetros de sinal validados; os sinais projetados, os emissores de interferência e as larguras de banda são entradas |
Uma correção a uma abreviatura corrente: os lóbulos do espetro BOC(1 1) estão centrados em ±1,023 MHz (entre o nulo da portadora e o nulo a 2,046 MHz), mas o máximo da PSD está em ±0,759 MHz, onde tan y = 2y com y = πf/(2R_c). Os testes fixam ambos.
Não modelado#
- Estrutura de riscas do código de espalhamento (as riscas de 1 kHz do C/A): um tom é pontuado face à envolvente suave, e não face à risca de código mais próxima.
- Controlo automático de ganho, quantização, supressão de impulsos e filtragem por filtro notch.
- O diagrama da antena de receção na direção do emissor de interferência para além de um único valor de ganho.
- Interferência de acesso múltiplo entre satélites de uma mesma banda.
- As emissões de um sinal projetado fora da sua largura de banda de transmissão: o seu espetro é truncado aí, pelo que nenhuma emissão fora de banda chega a uma banda vizinha.
- O efeito de um varrimento sobre o ciclo a taxas de varrimento comparáveis à largura de banda do ciclo: o seu C/N₀ usa o espetro médio por linha.
Referências#
- J. W. Betz, "Binary Offset Carrier Modulations for Radionavigation," NAVIGATION 48(4), 2001.
- E. D. Kaplan e 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, May/June 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.
- Especificação SigMF, https://sigmf.org/ (código-fonte: https://github.com/sigmf/SigMF).