tracking-loop (tipo de cenário)
Tipo de cenário do motor v0.40.0, família Jamming, spoofing e o espectro. Consultivo: saída de análise de uma ferramenta de pesquisa e engenharia, não um equipamento de navegação homologado e não um serviço de segurança da vida humana. Todo rótulo aqui é do motor ou da matriz de verificação; um tipo de cenário é MODELLED, a menos que a matriz diga outra coisa (como um rótulo é conquistado: a seção Evidence do README).
O que faz#
Perda de travamento do loop de rastreamento: C/N0 -> travado/destravado COM HISTERESE, o tempo para perder o travamento e o pull-in de spoofing em função da TAXA de deslocamento de código e de portadora. Os critérios existentes do mecanismo de negação e de captura são razões sobre a potência recebida (um jammer nega a J/S = 30 dB, um spoofer captura a 3 dB); a perda de travamento real não é uma razão de potência, é onde o jitter de um loop mais o estresse dinâmico excedem o seu orçamento de limiar de rastreamento. Informa (1) o jitter térmico de 1 sigma de portadora (Costas) e de código (early/late não coerente) em função de C/N0, com a perda por elevação ao quadrado incluída, contra as regras declaradas 3sigma_PLL + theta_e <= 45 deg (a regra dos 15 graus na forma de três sigmas) e 3sigma_DLL + atraso de rampa <= d/2 chips; (2) os limiares de C/N0 de queda e de retravamento com o loop determinante indicado, o limiar de retravamento DERIVED da largura de banda maior em que um receptor refaz o pull-in em vez de afirmado, de modo que a largura da histerese deve ficar entre 5log10(razão) e 10log10(razão) dB; (3) o tempo declarado para perder o travamento a partir de um detector de travamento de dois limiares com permanências de confirmação, conduzido ao longo de uma rampa de C/N0, informado separadamente do tempo físico de escape de fase (o tempo médio de Viterbi entre saltos de ciclo, em log10 s porque abrange centenas de décadas); (4) limites de pull-in de spoofing — a maior variação de código e a maior taxa de Doppler de portadora que os loops de uma vítima conseguem seguir, com um mapa sobre os dois eixos, porque um spoofer que varia mais rápido do que isso não captura o loop, ele o ultrapassa; e (5) o RAIO DE NEGAÇÃO que a dinâmica do loop implica, informado JUNTO com o raio existente de razão de potência, nunca em seu lugar, com a diferença com sinal entre eles como um campo próprio nomeado (denial_radius_delta_km) e uma definição ao lado. Todo campo numérico emitido traz uma unidade e uma classe de proveniência. Formas fechadas VALIDATED: as expressões de jitter de portadora e de código, a redução do filtro de loop sqrt(2B_nT) e o atraso de rampa de primeira ordem são conferidos com o próprio correlador sdr do mecanismo avançado sobre IF sintética com semente — um caminho diferente para os mesmos números — a 0,6 %, 3,7 % e 0,17 % respectivamente, e a Bessel modificada I0 por trás do tempo de salto de ciclo contra valores tabelados padrão a 1e-7. O limite inferior de validade é afirmado, não apenas declarado: abaixo de ~32 dB-Hz a 1 ms o discriminador atan real satura contra o seu intervalo de +-pi/2 e mede menos jitter do que qualquer teoria linear. MODELLED: as larguras de banda dos loops, o tempo de integração, o espaçamento dos correladores, a razão de largura de banda de pull-in, as permanências de confirmação, a potência do jammer e os ganhos de antena são valores representativos da banda, não um datasheet. NÃO modelados: jitter do oscilador (desvio de Allan) e de vibração, limitação de largura de banda do front-end, multipercurso, dinâmica do AGC, perda por transição de bit de dados, auxílio externo e qualquer correção de meio ciclo na fórmula de salto de ciclo de Costas. Sob a dinâmica do loop, a captura por spoofing não tem raio algum — a restrição determinante é a taxa de deslocamento, não a potência — de modo que esse campo é nulo, com um motivo, em vez de um número fabricado. Não é um produto certificado de desempenho de receptor.
Uma execução de scenarios/tracking-loop.toml resume-se assim: tracking-loop: B_pll 10,0 Hz / B_dll 1,0 Hz, T 1 ms, d 0,50 chip -> queda 25,4744 dB-Hz (a portadora determina), retravamento 27,4413 dB-Hz, histerese 1,9669 dB | perda de travamento declarada 39,101 s após o início da rampa | raio de negação limiar(J/S 30 dB) 127,413 km contra dinâmica do loop 53,1694 km, delta -74.2438 km | pull-in de spoofing <= 0,966 chip/s de código e 41,45 Hz/s de portadora (loop MODELLED, formas fechadas VALIDATED)
Entradas#
A partir do esquema (kshana kinds --json):
- Campos obrigatórios: nenhum
- Campos opcionais:
pll_bandwidth_hz,dll_bandwidth_hz,predetection_integration_s,correlator_spacing_chips,carrier_allowance_deg,code_allowance_chips,pullin_bandwidth_ratio,drop_confirm_epochs,relock_confirm_epochs,doppler_rate_hz_per_s,code_slew_chips_per_s,cn0_high_dbhz,cn0_low_dbhz,ramp_duration_s,jitter_table_cn0_dbhz,jammer_power_dbw,jammer_gain_dbi,rx_gain_toward_jammer_db,rx_gain_toward_sat_db,signal_power_dbw,temp_k,freq_hz,chip_rate_hz,jammer_type,q_override,denial_js_threshold_db,capture_js_threshold_db,spoof_code_slew_chips_per_s,spoof_doppler_rate_hz_per_s
O exemplo scenarios/tracking-loop.toml define, entre outros:
| Campo | Valor | Unidade |
|---|---|---|
capture_js_threshold_db |
3 | dB |
carrier_allowance_deg |
45 | deg |
chip_rate_hz |
1023000 | Hz |
cn0_high_dbhz |
45 | dB-Hz |
cn0_low_dbhz |
15 | dB-Hz |
code_slew_chips_per_s |
0 | chip/s |
correlator_spacing_chips |
0.5 | chip |
denial_js_threshold_db |
30 | dB |
dll_bandwidth_hz |
1 | Hz |
doppler_rate_hz_per_s |
0 | Hz/s |
drop_confirm_epochs |
50 | contagem |
freq_hz |
1575420000 | Hz |
Execute#
kshana scenarios/tracking-loop.toml
O que ele fornece#
Os resultados escalares dessa execução, com as unidades que o motor declara:
| Resultado | Valor | Unidade |
|---|---|---|
denial.capture_js_threshold_db |
3 | dB |
denial.capture_radius_loop_dynamics_km |
sem valor | km |
denial.capture_radius_threshold_km |
2852.426643 | km |
denial.capture_radius_threshold_status |
entre colchetes | texto |
denial.denial_cn0_at_threshold_radius_dbhz |
32.864222 | dB-Hz |
denial.denial_js_delta_db |
7.591059 | dB |
denial.denial_js_loop_db |
37.591059 | dB |
denial.denial_js_threshold_db |
30 | dB |
denial.denial_radius_delta_km |
-74.243845 | km |
denial.denial_radius_loop_dynamics_km |
53.169373 | km |
Rótulo do resultado (do mecanismo): MIXED — formas fechadas do loop VALIDATED, configuração do loop MODELLED. As expressões de jitter térmico de portadora e de código, a redução do filtro de loop sqrt(2B_nT) e o atraso de rampa de primeira ordem são conferidos com o próprio correlador sdr do mecanismo avançado sobre IF sintética com semente (um caminho diferente
Evidências#
MODELLED: as linhas da matriz de verificação que nomeiam este tipo de cenário.
- MODELLED O relatório
lunar-jammingnão apoia mais o seu contorno de negação em um único escalar. - MODELLED Perda de travamento calculada a partir da dinâmica do loop em vez de uma razão de potência: jitter térmico de 1σ de portadora (Costas) e de código (early/late não coerente) contra C/N₀ com a perda por elevação ao quadrado, contra as regras declaradas 3σ_PLL + θ_e ≤ 45° e 3σ_DLL + atraso de rampa
As linhas que a própria execução exercitou, com a referência independente que a matriz dá a cada uma (as fontes públicas são nomeadas ali):
- MODELLED Portões determinísticos, com hash de cenário, de SBOM e de golden entre plataformas. Referência independente (ExternalDataset): aderência à norma do SBOM ao JSON Schema oficial do CycloneDX 1,5 (+ identificadores SPDX válidos) — um padrão externo publicado, zero erros de validação em todo o grafo de dependências; a parte de determinismo das FoMs / reprodutibilidade byte a byte continua sendo uma verificação de autoconsistência fixada, de modo que a linha permanece MODELLED
- PARTNER Não fornecido — o Kshana modela o desempenho de sinal, não o hardware de carga útil/antena. Referência independente (NoneKind): nenhuma: uma disciplina de propriedade do parceiro, sem módulo e sem teste por projeto
- MODELLED Perda de travamento calculada a partir da dinâmica do loop em vez de uma razão de potência: jitter térmico de 1σ de portadora (Costas) e de código (early/late não coerente) contra C/N₀ com a s. Referência independente (ReferenceImpl): o próprio correlador sdr do mecanismo (sdr::correlate / synth_if / CaCode) avançado sobre IF sintética com semente em um C/N₀ calibrado — um caminho de código separado que chega aos mesmos números por correlação numérica de IQ amostrado em vez de por uma expressão algébrica de jitter, de modo que é um caminho diferente e não uma reafirmação — mais valores tabelados padrão de I₀ de Bessel modificada para o termo de salto de ciclo. Teoria do loop segundo Kaplan & Hegar
Limitações#
O que o próprio relatório da execução diz que não é modelado ou não é validado:
- MIXED — formas fechadas do loop VALIDATED, configuração do loop MODELLED. As expressões de jitter térmico de portadora e de código, a redução do filtro de loop sqrt(2B_nT) e o atraso de rampa de primeira ordem são conferidos com o próprio correlador sdr do mecanismo avançado sobre IF sintética com semente (um caminho diferente para os mesmos números), e a Bessel modificada I0 contra valores tabelados padrão. MODELLED: as larguras de banda dos loops, integ (resultado
label) - MODELLED: as larguras de banda dos loops, o tempo de integração, o espaçamento dos correladores, a razão de largura de banda de pull-in, as permanências de confirmação, a potência do jammer e os ganhos de antena são valores representativos da banda, não um datasheet. (catálogo de tipos (
kshana kinds --json)) - NÃO modelados: jitter do oscilador (desvio de Allan) e de vibração, limitação de largura de banda do front-end, multipercurso, dinâmica do AGC, perda por transição de bit de dados, auxílio externo e qualquer correção de meio ciclo na fórmula de salto de ciclo de Costas. (catálogo de tipos (
kshana kinds --json)) - Todo parâmetro de loop abaixo é um valor representativo da banda MODELLED, não um datasheet. (comentário do arquivo de cenário, linha 22)
- --- geometria do loop ----------------------------------------------------------------- Um loop de portadora Costas de 10 Hz e um loop de código auxiliado pela portadora de 1 Hz, integração coerente de 1 ms (um período do código C/A, de modo que nenhuma sincronização de bit de dados é presumida), correlador estreito de 0,5 chip. (comentário do arquivo de cenário, linhas 25 a 28)
- Reprodutibilidade e garantia de software é MODELLED, não validada: uma subafirmação é verificada externamente, mas a capacidade inteira compõe peças modeladas, de modo que a capacidade permanece modelada. (matriz de verificação (docs/MODELLED-RATIONALE.md))
- A perda de travamento do loop de rastreamento e o pull-in de spoofing sob interferência é MODELLED, não validado: conferido com outra implementação na mesma base de código — independente da unidade sob teste, mas sem autoridade externa. (matriz de verificação (docs/MODELLED-RATIONALE.md))
Veja também#
- Página da família: Jamming, spoofing e o espectro
- Todos os tipos de cenário: KINDS.md