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

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

Sinal Direto Aumentado LunaNet: códigos, formato de mensagem e lunanet-afs-check

O Kshana implementa os códigos de espalhamento e a camada de mensagem do Sinal Direto Aumentado (AFS) do LunaNet como uma edição da especificação os define, e se confere com as tabelas impressas dessa edição.

Fixação. Especificação de Interoperabilidade LunaNet (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; SHA-256 do PDF 986e0795…e61b6 (proveniência). Uma edição posterior é uma fixação diferente e pode alterar os códigos: o documento marca suas tabelas de códigos como {LSIS-TBC} e diz que elas são "included to facilitate test and integration efforts only". Todo relatório nomeia esta edição.

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.

O gerador de códigos AFS do LunaNet conferido com as colunas impressas da especificação, a partir de uma execução real do motor v0.40.0 (`kshana lunanet-afs-check spec`, fixado em LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 de janeiro de 2025; o documento marca suas tabelas de códigos como {LSIS-TBC}). 9 de 10 verificações são satisfeitas; B4 é NOT MET (420 de 421 coincidiram). Ele confere um fluxo de símbolos com uma edição de uma especificação publicada e nada diz sobre qualquer nó ou serviço LunaNet. 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. Ele confere um fluxo de símbolos com 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 conferido com as colunas impressas da especificação, a partir de uma execução real do motor v0.40.0 (`kshana lunanet-afs-check spec`, fixado em LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 de janeiro de 2025; o documento marca suas tabelas de códigos como {LSIS-TBC}). 9 de 10 verificações são satisfeitas; B4 é NOT MET (420 de 421 coincidiram). Ele confere um fluxo de símbolos com uma edição de uma especificação publicada e nada diz sobre qualquer nó ou serviço LunaNet. 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. Ele confere um fluxo de símbolos com 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 encurtado ciclicamente para 2046 chips, G2 atrasado por um número de chips por PRN, 1,023 Mchip/s, BPSK(1), 500 símbolo/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 receptor, primário x secundário (8 ms): a sobreposição terciária de sincronização de quadro de 12 s fica fora dela, porque a aquisição e o rastreamento 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
Quadro SP 68 + SB1 52 + 5880 símbolos intercalados = 6000 símbolos = 12 s a 500 símbolo/s iq::lunanet_afs
SB1 9 bits (FID 2, TOI 7), BCH(51.8), gerador 763 octal, com o decodificador 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
Intercalador 60 linhas x 98 colunas, escritas por linha e lidas por coluna interleave, deinterleave

Os dois componentes são aceitos por kshana iq scene, acquire, track e sweep como qualquer outro sinal, de modo que uma gravação pode ser pesquisada em busca de AFS-I ou AFS-Q (kshana iq acquire --signal lunanet-afs-i) e uma cena sintética pode ser feita para testes de receptores por software. Uma cena sintética, como para todo outro sinal, é um arquivo para um receptor por software; nada aqui aciona hardware de rádio.

O que não está implementado#

  • A codificação LDPC de taxa 1/2 dos subquadros 2 a 4. Suas matrizes de verificação estão no Anexo 1, um arquivo separado que não está no PDF e não é incorporado. Os subquadros 2 a 4 são transportados e conferidos como blocos opacos de símbolos do comprimento especificado, e as palavras CRC-24Q dentro deles não são verificadas. Um fluxo que passa por lunanet-afs-check symbols não está demonstrado conter palavras de código válidas.
  • Conteúdo da mensagem (MSG-G1, MSG-G2, MSG-G4, ...): o documento deixa várias definições para serem escritas (TBW).
  • Atribuição de códigos por nó LunaNet (a Tabela F-1 é TBD). Os PRNs 1 a 12 têm atribuições provisórias de teste (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 isso é o padrão desta implementação, não 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 enlace, erro de 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 contra as tabelas impressas e os exemplos resolvidos do documento (limiares B1 a B10 de o pré-registro) e imprime cada um com sua contagem e seu estado. --strict sai com 1 a menos que todos os limiares sejam atingidos.
  • symbols lê um fluxo de símbolos de decisão abrupta (texto de 0 e 1; espaços em branco ignorados) e confere o padrão de sincronização, a decodificação do SB1, o FID (só 0 é definido), a continuidade do TOI (avançando de um em módulo 100) e o espaçamento de quadros (6000 símbolos). Sai com 1 diante de qualquer problema.
  • generate grava um fluxo de teste: o padrão de sincronização do documento, os comprimentos de SB1 e de quadro, com subquadros 2 a 4 provisórios (o preenchimento alternado do LSIS-300, sem codificação LDPC, sem mensagem). São símbolos para testar um verificador ou um decodificador, não uma forma de onda; o Kshana não grava sinal algum.

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 declarados 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 PRNs MET, 420 de 420
B1b o estado inicial de G2 impresso é 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 pré-registrado): 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 PRNs MET, 420 de 420
B4 Legendre(1499) é igual à Tabela E-1 e terciário primeiros e últimos 24 chips, 210 PRNs 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, de modo que a entrada do PRN 147 é muito provavelmente um erro de impressão no documento. Isso não pode ser resolvido sem o arquivo separado de códigos 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 do SB1 da Figura 8 MET: 0x045 codifica para 0x229F61DBB84A0 e decodifica para FID 0, TOI 69 (um exemplo)
B7 valor de verificação CRC-24Q para 123456789 MET: 0xCDE703 (o valor do catálogo, fora da especificação)
B8 aritmética de quadros MET
B9 intercalar e depois desintercalar 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 contra as tabelas impressas da edição citada, que o documento marca {LSIS-TBC}. Uma viagem de ida e volta de cena, aquisição e rastreamento de ambos os componentes passa pelos mesmos limiares que os demais sinais (tests/iq_signal_matrix.rs).