tracking-loop (tipo de cenário)
Tipo de cenário do motor v0.40.0, família Jamming, spoofing e o espetro. Consultivo: resultado de análise de uma ferramenta de investigação e engenharia, não um equipamento de navegação homologado e não um serviço de segurança da vida humana. Cada etiqueta aqui é do motor ou da matriz de verificação; um tipo de cenário é MODELLED salvo indicação em contrário da matriz (como se obtém um rótulo: a secção Evidence do README).
O que faz#
Perda de bloqueio do laço de seguimento: C/N0 -> bloqueio/desbloqueio COM HISTERESE, o tempo que demora a perder o bloqueio e a captura por spoofing em função da TAXA de desvio de código e de portadora. Os critérios de negação e de captura já existentes no motor são razões de potência recebida (um jammer nega a J/S = 30 dB, um spoofer captura a 3 dB); a perda de bloqueio real não é uma razão de potência, é o ponto em que o jitter de um laço mais o esforço dinâmico saem do seu orçamento de limiar de seguimento. Indica (1) o jitter térmico de 1 sigma da portadora (Costas) e do código (early/late não coerente) em função de C/N0, com a perda de quadratura incluída, face às regras indicadas 3sigma_PLL + theta_e <= 45 deg (a regra dos 15 graus em forma de três sigma) e 3sigma_DLL + atraso de rampa <= d/2 chips; (2) os limiares de C/N0 de perda e de rebloqueio com o laço determinante identificado, o limiar de rebloqueio DERIVED da largura de banda mais larga com que um recetor volta a captar, em vez de afirmado, de modo que a largura da histerese tem de situar-se entre 5log10(razão) e 10log10(razão) dB; (3) o tempo declarado até perder o bloqueio a partir de um detetor de bloqueio de dois limiares com tempos de permanência de confirmação, conduzido sobre uma rampa de C/N0, indicado em separado do tempo de escape de fase físico (o tempo médio de Viterbi entre deslizamentos de ciclo, em log10 s porque abrange centenas de décadas); (4) os limites de captura por spoofing — a maior variação de código e a maior taxa de Doppler da portadora que os laços de uma vítima conseguem seguir, com um mapa sobre os dois eixos, porque um spoofer que varia mais depressa do que estes não captura o laço, ultrapassa-o; e (5) o RAIO DE NEGAÇÃO que a dinâmica do laço implica, indicado EM PARALELO COM o raio de razão de potência existente, nunca em seu lugar, com a sua diferença com sinal como campo próprio com nome (denial_radius_delta_km) e uma definição ao lado. Cada campo numérico emitido inclui uma unidade e uma classe de proveniência. Formas fechadas VALIDATED: as expressões de jitter da portadora e do código, a redução do filtro de laço sqrt(2B_nT) e o atraso de rampa de primeira ordem são verificados por comparação com o próprio correlador sdr do motor avançado sobre IF sintético com semente — um caminho diferente para os mesmos números — a 0,6 %, 3,7 % e 0,17 % respetivamente, e a Bessel I0 modificada subjacente ao tempo de deslizamento de ciclo face a valores tabelados padrão a 1e-7. O limite inferior de validade é afirmado, não apenas indicado: abaixo de ~32 dB-Hz a 1 ms o discriminador atan real satura face ao seu intervalo +-pi/2 e mede menos jitter do que qualquer teoria linear. MODELLED: as larguras de banda dos laços, o tempo de integração, o espaçamento dos correladores, a razão de largura de banda de captura, os tempos de permanência de confirmação, a potência do jammer e os ganhos das antenas são valores representativos de banda, não uma ficha técnica. NÃO modelados: o jitter do oscilador (desvio de Allan) e da vibração, a limitação de largura de banda do front-end, o multipercurso, a dinâmica do AGC, a perda por transição de bits de dados, a assistência externa e qualquer correção de meio ciclo à fórmula de deslizamento de ciclo de Costas. Sob a dinâmica do laço, a captura por spoofing não tem qualquer raio — a restrição determinante é a taxa de desvio, não a potência — pelo que esse campo é nulo com uma razão, em vez de um número fabricado. Não é um produto certificado de desempenho de recetores.
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 -> perda 25,4744 dB-Hz (a portadora determina), rebloqueio 27,4413 dB-Hz, histerese 1,9669 dB | perda de bloqueio declarada 39,101 s após o início da rampa | raio de negação limiar(J/S 30 dB) 127,413 km vs dinâmica do laço 53,1694 km, delta -74.2438 km | captura por spoofing <= 0,966 chip/s de código e 41,45 Hz/s de portadora (laço 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-o#
kshana scenarios/tracking-loop.toml
O que dá#
Os resultados escalares dessa execução, com as unidades que o motor indica:
| 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 limites | 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 |
Etiqueta de resultado (a do motor): MIXED — formas fechadas de laço VALIDATED, configuração de laço MODELLED. As expressões de jitter térmico da portadora e do código, a redução do filtro de laço sqrt(2B_nT) e o atraso de rampa de primeira ordem são verificados por comparação com o próprio correlador sdr do motor avançado sobre IF sintético com semente (um caminho diferente
Evidências#
MODELLED: as linhas da matriz de verificação que nomeiam este tipo.
- MODELLED O relatório
lunar-jammingjá não apoia o seu contorno de negação num único escalar. - MODELLED Perda de bloqueio calculada a partir da dinâmica do laço em vez de uma razão de potência: jitter térmico de 1σ da portadora (Costas) e do código (early/late não coerente) face a C/N₀ com a perda de quadratura, face às regras indicadas 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 estão aí nomeadas):
- MODELLED Determinista, com hash do cenário, SBOM + portões de referência multiplataforma. Referência independente (ExternalDataset): aderência à norma do SBOM ao esquema JSON oficial CycloneDX 1,5 (+ identificadores SPDX válidos) — uma norma externa publicada, zero erros de validação em todo o grafo de dependências; a parte de determinismo das FoM / reprodutibilidade byte a byte permanece uma verificação de autoconsistência fixada, pelo 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 conceção
- MODELLED Perda de bloqueio calculada a partir da dinâmica do laço em vez de uma razão de potência: jitter térmico de 1σ da portadora (Costas) e do código (early/late não coerente) face a C/N₀ com a. Referência independente (ReferenceImpl): o próprio correlador sdr do motor (sdr::correlate / synth_if / CaCode) avançado sobre IF sintético com semente a 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, pelo que é um caminho diferente e não uma reformulação — mais valores tabelados padrão da Bessel modificada I₀ para o termo de deslizamento de ciclo. Teoria do laço segundo Kaplan & Hegar
Limitações#
O que o próprio relatório da execução diz que não está modelado ou não está validado:
- MIXED — formas fechadas de laço VALIDATED, configuração de laço MODELLED. As expressões de jitter térmico da portadora e do código, a redução do filtro de laço sqrt(2B_nT) e o atraso de rampa de primeira ordem são verificados por comparação com o próprio correlador sdr do motor avançado sobre IF sintético com semente (um caminho diferente para os mesmos números), e a Bessel I0 modificada face a valores tabelados padrão. MODELLED: as larguras de banda dos laços, integ (resultado
label) - MODELLED: as larguras de banda dos laços, o tempo de integração, o espaçamento dos correladores, a razão de largura de banda de captura, os tempos de permanência de confirmação, a potência do jammer e os ganhos das antenas são valores representativos de banda, não uma ficha técnica. (catálogo de tipos (
kshana kinds --json)) - NÃO modelados: o jitter do oscilador (desvio de Allan) e da vibração, a limitação de largura de banda do front-end, o multipercurso, a dinâmica do AGC, a perda por transição de bits de dados, a assistência externa e qualquer correção de meio ciclo à fórmula de deslizamento de ciclo de Costas. (catálogo de tipos (
kshana kinds --json)) - Cada parâmetro de laço abaixo é um valor representativo de banda MODELLED, não uma ficha técnica. (comentário do ficheiro de cenário, linha 22)
- --- geometria do laço ----------------------------------------------------------------- Um laço de portadora Costas de 10 Hz e um laço de código assistido pela portadora de 1 Hz, integração coerente de 1 ms (um período do código C/A, pelo que não se pressupõe sincronização de bits de dados), correlador estreito de 0,5 chip. (comentário do ficheiro de cenário, linhas 25 a 28)
- A reprodutibilidade e a garantia de software são MODELLED, não validadas: uma subafirmação é verificada externamente, mas a capacidade no seu conjunto compõe partes modeladas, pelo que a capacidade permanece modelada. (matriz de verificação (docs/MODELLED-RATIONALE.md))
- A perda de bloqueio do laço de seguimento e a captura por spoofing sob interferência são MODELLED, não validadas: verificadas face a uma implementação separada nesta mesma base de código — independente da unidade em ensaio, mas sem autoridade externa. (matriz de verificação (docs/MODELLED-RATIONALE.md))
Ver também#
- Página da família: Jamming, spoofing e o espetro
- Todos os tipos: KINDS.md