Tradução automática, não revista por um falante nativo. O inglês é a referência.

Confiança do recetor e marítimoEditar no GitHubFonte: docs/LUNANET-AFS.md

LunaNet Augmented Forward Signal: códigos, formato de mensagem e lunanet-afs-check

O Kshana implementa os códigos de espalhamento e a camada de mensagem do Augmented Forward Signal (AFS) do LunaNet tal como uma edição da especificação os define, e verifica-se a si próprio face às tabelas impressas dessa edição.

Fixação. LunaNet Interoperability Specification (LNIS) Versão 5, Documento Aplicável 1 Volume A: LunaNet Signal-In-Space Recommended Standard, Augmented Forward Signal (LSIS-AFS) Versão 1,0, 29 de janeiro de 2025 (NASA). Obtido em 2026-10-18; PDF SHA-256 986e0795…e61b6 (proveniência). Uma edição posterior é uma fixação diferente e pode alterar os códigos: o documento marca as suas tabelas de códigos {LSIS-TBC} e diz que são "incluídas apenas para facilitar os esforços de teste e integração". Cada relatório nomeia esta edição.

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 salvaguarda da vida humana.

O gerador de códigos AFS do LunaNet verificado face às colunas impressas da especificação, a partir de uma execução real do motor v0.40.0 (`kshana lunanet-afs-check spec`, fixado a LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 de janeiro de 2025; o documento marca as suas tabelas de códigos {LSIS-TBC}). 9 de 10 verificações são satisfeitas; B4 é NOT MET (420 de 421 coincidiram). Verifica um fluxo de símbolos face a uma edição de uma especificação publicada e nada diz sobre qualquer nó ou serviço LunaNet. 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 salvaguarda da vida humana. Verifica um fluxo de símbolos face a uma edição de uma especificação publicada e nada diz sobre qualquer nó ou serviço LunaNet.O gerador de códigos AFS do LunaNet verificado face às colunas impressas da especificação, a partir de uma execução real do motor v0.40.0 (`kshana lunanet-afs-check spec`, fixado a LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 de janeiro de 2025; o documento marca as suas tabelas de códigos {LSIS-TBC}). 9 de 10 verificações são satisfeitas; B4 é NOT MET (420 de 421 coincidiram). Verifica um fluxo de símbolos face a uma edição de uma especificação publicada e nada diz sobre qualquer nó ou serviço LunaNet. 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 salvaguarda da vida humana. Verifica um fluxo de símbolos face a uma edição de uma especificação publicada e nada diz sobre qualquer nó ou serviço LunaNet.

O que está implementado#

Camada O quê Onde
AFS-I (dados) Código Gold 2047 com ciclo encurtado para 2046 chips, G2 atrasado por um número de chips por PRN, 1,023 Mchip/s, BPSK(1), 500 símbolos/s, PRN 1 a 210 iq::signals::lunanet::afs_i, nome do sinal lunanet-afs-i
AFS-Q (piloto) Código Weil 10230 (a construção do GPS L1C) em camadas com um código secundário de 4 chips (S0 a S3) e um código Weil terciário de 1500 chips (12 s), 5,115 Mchip/s, BPSK(5), sem dados. afs_q e o nome do sinal lunanet-afs-q são a réplica do recetor, primário x secundário (8 ms): a sobreposição terciária de sincronização de trama de 12 s é deixada de fora, porque a aquisição e o seguimento não correlacionam com uma réplica de 12 s. afs_q_tiered é o código completo de 12 s afs_q, afs_q_with, afs_q_tiered
Portadora 2492,028 MHz (LSIS-020) AFS_HZ
Trama SP 68 + SB1 52 + 5880 símbolos entrelaçados = 6000 símbolos = 12 s a 500 símbolos/s iq::lunanet_afs
SB1 9 bits (FID 2, TOI 7), BCH(51 8), gerador 763 em octal, com o descodificador de correlação de 256 hipóteses do documento sb1_encode, sb1_decode
CRC CRC-24Q, gerador (1+X)P(X) (Apêndice H) crc24q_bits, crc24q_bytes
Entrelaçador 60 linhas x 98 colunas, escritas por linha e lidas por coluna interleave, deinterleave

Os dois componentes são aceites por kshana iq scene, acquire, track e sweep como qualquer outro sinal, pelo que uma gravação pode ser pesquisada em busca de AFS-I ou AFS-Q (kshana iq acquire --signal lunanet-afs-i) e pode ser criada uma cena sintética para testes de recetores por software. Uma cena sintética, como para qualquer outro sinal, é um ficheiro para um recetor por software; nada aqui controla equipamento de rádio.

O que não está implementado#

  • A codificação LDPC de taxa 1/2 das subtramas 2 a 4. As suas matrizes de verificação estão no Anexo 1, um ficheiro separado que não consta do PDF e não está incluído. As subtramas 2 a 4 são transportadas e verificadas como blocos de símbolos opacos do comprimento especificado, e as palavras CRC-24Q no seu interior não são verificadas. Um fluxo que passa em lunanet-afs-check symbols não se mostra conter palavras de código válidas.
  • Conteúdo das mensagens (MSG-G1, MSG-G2, MSG-G4, ...): o documento deixa várias definições por escrever (TBW).
  • Atribuição de códigos por nó LunaNet (a Tabela F-1 está por definir, TBD). Os PRN 1 a 12 têm atribuições de teste provisórias (Tabela 11). afs_q(prn) usa o código primário do PRN n com o secundário S((n-1) mod 4); além do PRN 12 esse é o padrão desta implementação, não do documento. afs_q_with e afs_q_tiered aceitam qualquer combinação, com o código terciário de qualquer PRN.
  • Orçamento de ligação, erro do sinal no espaço, requisitos de potência e de coerência (LSIS-100 e seguintes).

kshana lunanet-afs-check#

kshana lunanet-afs-check spec [--json] [--strict]
kshana lunanet-afs-check symbols <file> [--max-sp-errors <n>] [--json]
kshana lunanet-afs-check generate --frames <n> [--toi0 <t>] --out <file>
  • spec executa a implementação face às tabelas impressas e aos exemplos resolvidos do documento (limiares B1 a B10 do pré-registo) e imprime cada um com a sua contagem e estado. --strict termina com 1 a menos que todos os limiares sejam atingidos.
  • symbols lê um fluxo de símbolos de decisão rígida (texto de 0 e 1; espaços em branco ignorados) e verifica o padrão de sincronização, a descodificação de SB1, o FID (só 0 está definido), a continuidade de TOI (a avançar de um em módulo 100) e o espaçamento de tramas (6000 símbolos). Termina com 1 perante qualquer problema.
  • generate escreve um fluxo de teste: o padrão de sincronização do documento, os comprimentos de SB1 e de trama, com subtramas de substituição 2 a 4 (o preenchimento alternado de LSIS-300, sem codificação LDPC, sem mensagem). São símbolos para testar um verificador ou um descodificador, não uma forma de onda; o Kshana não escreve nenhum sinal.

Python: lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate. WebAssembly: os mesmos nomes. MCP: lunanet_afs_check (mode spec, symbols ou generate). Plugin: /kshana-lunanet-afs-check. Studio e JetBrains: N/D (SURFACES.md).

Resultados#

Limiares indicados em xval/lunanet-afs/PREREGISTRATION.md antes de o gerador existir; testes em tests/lunanet_afs_codes.rs.

Limiar Afirmação Resultado
B1 AFS-I primeiros e últimos 24 chips, 210 PRN MET, 420 de 420
B1b o estado inicial impresso de G2 é o estado após o atraso impresso NOT MET, 0 de 210: a afirmação tinha a direção errada. A posteriori (B1c, não fixado antecipadamente): o estado impresso é o estado após 2047 menos o atraso, 210 de 210
B2 Legendre(10223) é igual à Tabela D-1 MET
B3 AFS-Q primário primeiros e últimos 24 chips, 210 PRN MET, 420 de 420
B4 Legendre(1499) é igual à Tabela E-1 e terciário primeiros e últimos 24 chips, 210 PRN NOT MET, 420 de 421: a sequência de Legendre coincide e 419 de 420 colunas de código coincidem. Os últimos 24 chips impressos para o PRN 147 (A14850) são o mesmo valor impresso para o PRN 151, cujo código o gerador reproduz; dois índices de Weil diferentes (607 e 612) não dão os mesmos últimos 24 chips, pelo que a entrada do PRN 147 é muito provavelmente um erro de impressão no documento. Não pode ser resolvido sem o ficheiro de códigos separado do Anexo 3. Fixado por um teste
B5 os códigos secundários S0 a S3 são iguais à Tabela 10 MET (as constantes do próprio documento)
B6 exemplo resolvido de SB1 da Figura 8 MET: 0x045 codifica-se em 0x229F61DBB84A0 e descodifica-se em FID 0, TOI 69 (um exemplo)
B7 valor de verificação CRC-24Q para 123456789 MET: 0xCDE703 (o valor de catálogo, fora da especificação)
B8 aritmética de tramas MET
B9 entrelaçar e depois desentrelaçar MET (uma propriedade, MODELLED)
B10 padrão de sincronização MET (68 símbolos; uma verificação de transcrição)

B1 a B4 são VALIDATED face às tabelas impressas da edição citada, que o documento marca {LSIS-TBC}. Uma ida e volta cena-aquisição-seguimento de ambos os componentes satisfaz os mesmos limiares que os outros sinais (tests/iq_signal_matrix.rs).