Tłumaczenie maszynowe, niezweryfikowane przez osobę, dla której polski jest językiem ojczystym. Wzorcem jest wersja angielska.

Zaufanie do odbiornika i żegluga morskaEdytuj na GitHubieŹródło: docs/LUNANET-AFS.md

LunaNet Augmented Forward Signal: kody, format komunikatu i lunanet-afs-check

Kshana implementuje kody rozpraszające i warstwę komunikatów Augmented Forward Signal (AFS) LunaNet tak, jak definiuje je jedno wydanie specyfikacji, i sprawdza się względem drukowanych tabel tego wydania.

Przypięcie. LunaNet Interoperability Specification (LNIS) Wersja 5, Dokument obowiązujący 1 Tom A: LunaNet Signal-In-Space Recommended Standard, Augmented Forward Signal (LSIS-AFS) Wersja 1,0, 29 stycznia 2025 (NASA). Pobrano 2026-10-18; PDF SHA-256 986e0795…e61b6 (pochodzenie). Późniejsze wydanie to inne przypięcie i może zmienić kody: dokument oznacza swoje tabele kodów {LSIS-TBC} i mówi, że są one „dołączone wyłącznie dla ułatwienia testów i integracji”. Każdy raport podaje to wydanie.

Wyłącznie doradczo: wynik analizy z narzędzia badawczo-inżynieryjnego; nie jest to sprzęt nawigacyjny z zatwierdzeniem typu ani usługa bezpieczeństwa życia.

Generator kodów LunaNet AFS sprawdzony względem drukowanych kolumn specyfikacji, z prawdziwego przebiegu silnika v0.40.0 (`kshana lunanet-afs-check spec`, przypięty do LNIS V5, AD1 Tom A (LSIS-AFS) V1.0, 29 stycznia 2025; dokument oznacza swoje tabele kodów {LSIS-TBC}). Spełnionych jest 9 z 10 sprawdzeń; B4 jest NOT MET (420 z 421 zgodnych). Sprawdza strumień symboli względem jednego wydania opublikowanej specyfikacji i nic nie mówi o żadnym węźle ani usłudze LunaNet. Wyłącznie doradczo: wynik analizy z narzędzia badawczo-inżynieryjnego; nie jest to sprzęt nawigacyjny z zatwierdzeniem typu ani usługa bezpieczeństwa życia. Sprawdza strumień symboli względem jednego wydania opublikowanej specyfikacji i nic nie mówi o żadnym węźle ani usłudze LunaNet.Generator kodów LunaNet AFS sprawdzony względem drukowanych kolumn specyfikacji, z prawdziwego przebiegu silnika v0.40.0 (`kshana lunanet-afs-check spec`, przypięty do LNIS V5, AD1 Tom A (LSIS-AFS) V1.0, 29 stycznia 2025; dokument oznacza swoje tabele kodów {LSIS-TBC}). Spełnionych jest 9 z 10 sprawdzeń; B4 jest NOT MET (420 z 421 zgodnych). Sprawdza strumień symboli względem jednego wydania opublikowanej specyfikacji i nic nie mówi o żadnym węźle ani usłudze LunaNet. Wyłącznie doradczo: wynik analizy z narzędzia badawczo-inżynieryjnego; nie jest to sprzęt nawigacyjny z zatwierdzeniem typu ani usługa bezpieczeństwa życia. Sprawdza strumień symboli względem jednego wydania opublikowanej specyfikacji i nic nie mówi o żadnym węźle ani usłudze LunaNet.

Co jest zaimplementowane#

Warstwa Co Gdzie
AFS-I (dane) Kod Golda 2047 skrócony cyklicznie do 2046 chipów, G2 opóźniony o liczbę chipów zależną od PRN, 1,023 Mchip/s, BPSK(1), 500 symboli/s, PRN 1 do 210 iq::signals::lunanet::afs_i, nazwa sygnału lunanet-afs-i
AFS-Q (pilot) Kod Weila 10230 (konstrukcja GPS L1C) warstwowany z 4-chipowym kodem wtórnym (S0 do S3) i 1500-chipowym trzeciorzędowym kodem Weila (12 s), 5,115 Mchip/s, BPSK(5), bez danych. afs_q i nazwa sygnału lunanet-afs-q to replika odbiornika, podstawowy x wtórny (8 ms): trzeciorzędowa nakładka synchronizacji ramki o długości 12 s jest z niej pominięta, ponieważ akwizycja i śledzenie nie korelują z repliką 12 s. afs_q_tiered to pełny kod 12 s afs_q, afs_q_with, afs_q_tiered
Nośna 2492,028 MHz (LSIS-020) AFS_HZ
Ramka SP 68 + SB1 52 + 5880 przeplecionych symboli = 6000 symboli = 12 s przy 500 symboli/s iq::lunanet_afs
SB1 9 bitów (FID 2, TOI 7), BCH(51 8), generator 763 ósemkowo, z 256-hipotezowym korelacyjnym dekoderem z dokumentu sb1_encode, sb1_decode
CRC CRC-24Q, generator (1+X)P(X) (dodatek H) crc24q_bits, crc24q_bytes
Przeplatacz 60 wierszy x 98 kolumn, zapis wierszami i odczyt kolumnami interleave, deinterleave

Oba składniki są przyjmowane przez kshana iq scene, acquire, track i sweep jak każdy inny sygnał, więc nagranie można przeszukać pod kątem AFS-I lub AFS-Q (kshana iq acquire --signal lunanet-afs-i), a scenę syntetyczną można wytworzyć do testów programowych odbiorników. Scena syntetyczna, jak w przypadku każdego innego sygnału, jest plikiem dla programowego odbiornika; nic tu nie steruje sprzętem radiowym.

Co nie jest zaimplementowane#

  • Kodowanie LDPC o sprawności 1/2 podramek 2 do 4. Jego macierze kontrolne znajdują się w załączniku 1, osobnym pliku, którego nie ma w PDF i który nie jest dołączony. Podramki 2 do 4 są przenoszone i sprawdzane jako nieprzezroczyste bloki symboli o określonej długości, a słowa CRC-24Q w nich zawarte nie są weryfikowane. Strumień, który przechodzi lunanet-afs-check symbols, nie jest wykazany jako zawierający poprawne słowa kodowe.
  • Treść komunikatów (MSG-G1, MSG-G2, MSG-G4, ...): dokument pozostawia kilka definicji do napisania (TBW).
  • Przydział kodów na węzeł LunaNet (tabela F-1 jest TBD). PRN 1 do 12 mają tymczasowe przydziały testowe (tabela 11). afs_q(prn) używa kodu podstawowego PRN n z kodem wtórnym S((n-1) mod 4); powyżej PRN 12 jest to wzorzec tej implementacji, a nie dokumentu. afs_q_with i afs_q_tiered przyjmują dowolną kombinację, z kodem trzeciorzędowym dowolnego PRN.
  • Bilans łącza, błąd sygnału w przestrzeni kosmicznej, wymagania dotyczące mocy i koherencji (LSIS-100 i następne).

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 uruchamia implementację względem drukowanych tabel i przykładów rozwiązanych z dokumentu (progi B1 do B10 z wstępnej rejestracji) i wypisuje każdy z liczbą i statusem. --strict kończy z kodem 1, o ile nie wszystkie progi są spełnione.
  • symbols odczytuje strumień symboli z twardymi decyzjami (tekst z 0 i 1; białe znaki ignorowane) i sprawdza wzorzec synchronizacji, dekodowanie SB1, FID (zdefiniowane jest tylko 0), ciągłość TOI (zwiększanie o jeden modulo 100) i odstęp ramek (6000 symboli). Kończy z kodem 1 przy każdym problemie.
  • generate zapisuje strumień testowy: wzorzec synchronizacji z dokumentu, długości SB1 i ramek, z zastępczymi podramkami 2 do 4 (naprzemienne wypełnienie z LSIS-300, bez kodowania LDPC, bez komunikatu). Są to symbole do testowania sprawdzarki lub dekodera, a nie przebieg; Kshana nie zapisuje żadnego sygnału.

Python: lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate. WebAssembly: te same nazwy. MCP: lunanet_afs_check (mode spec, symbols lub generate). Wtyczka: /kshana-lunanet-afs-check. Studio i JetBrains: N/A (SURFACES.md).

Wyniki#

Progi podane w xval/lunanet-afs/PREREGISTRATION.md zanim powstał generator; testy w tests/lunanet_afs_codes.rs.

Próg Twierdzenie Wynik
B1 AFS-I pierwsze i ostatnie 24 chipy, 210 PRN MET, 420 z 420
B1b drukowany stan początkowy G2 jest stanem po drukowanym opóźnieniu NOT MET, 0 z 210: twierdzenie miało kierunek odwrócony. Post hoc (B1c, niezarejestrowane z góry): drukowany stan jest stanem po 2047 minus opóźnienie, 210 z 210
B2 Legendre(10223) równa się tabeli D-1 MET
B3 AFS-Q kod podstawowy, pierwsze i ostatnie 24 chipy, 210 PRN MET, 420 z 420
B4 Legendre(1499) równa się tabeli E-1, a kod trzeciorzędowy, pierwsze i ostatnie 24 chipy, 210 PRN NOT MET, 420 z 421: ciąg Legendre'a się zgadza i 419 z 420 kolumn kodu się zgadza. Ostatnie 24 chipy wydrukowane dla PRN 147 (A14850) są tą samą wartością, którą wydrukowano dla PRN 151, którego kod generator odtwarza; dwa różne indeksy Weila (607 i 612) nie dają tych samych ostatnich 24 chipów, więc wpis dla PRN 147 jest najprawdopodobniej błędem druku w dokumencie. Nie można tego rozstrzygnąć bez osobnego pliku kodów z załącznika 3. Przypięte testem
B5 kody wtórne S0 do S3 równe tabeli 10 MET (własne stałe dokumentu)
B6 przykład rozwiązany SB1 z rysunku 8 MET: 0x045 koduje się do 0x229F61DBB84A0 i dekoduje do FID 0, TOI 69 (jeden przykład)
B7 wartość kontrolna CRC-24Q dla 123456789 MET: 0xCDE703 (wartość katalogowa, spoza specyfikacji)
B8 arytmetyka ramek MET
B9 przeplatanie, a następnie odwrotne przeplatanie MET (własność, MODELLED)
B10 wzorzec synchronizacji MET (68 symboli; sprawdzenie transkrypcji)

B1 do B4 są VALIDATED względem drukowanych tabel wskazanego wydania, które dokument oznacza {LSIS-TBC}. Pełna pętla scena–akwizycja–śledzenie obu składników spełnia te same progi co inne sygnały (tests/iq_signal_matrix.rs).