Maskinoversættelse, ikke gennemgået af en modersmålstalende. Engelsk er referencen.

Modtagertillid og maritimRedigér på GitHubKilde: docs/LUNANET-AFS.md

LunaNet Augmented Forward Signal: koder, meddelelsesformat og lunanet-afs-check

Kshana implementerer spredningskoderne og meddelelseslaget i LunaNet Augmented Forward Signal (AFS) som én udgave af specifikationen definerer dem, og kontrollerer sig selv mod den udgaves trykte tabeller.

Fastlåst udgave. LunaNet Interoperability Specification (LNIS) Version 5, Applicable Document 1 Volume A: LunaNet Signal-In-Space Recommended Standard, Augmented Forward Signal (LSIS-AFS) Version 1,0, 29 January 2025 (NASA). Hentet 2026-10-18; PDF SHA-256 986e0795…e61b6 (proveniens). En senere udgave er en anden fastlåst udgave og kan ændre koderne: dokumentet markerer sine kodetabeller {LSIS-TBC} og siger, at de er "included to facilitate test and integration efforts only". Hver rapport angiver denne udgave.

Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life).

LunaNet AFS-kodegeneratoren kontrolleret mod specifikationens trykte kolonner, fra en rigtig kørsel af motor v0.40.0 (`kshana lunanet-afs-check spec`, fastlåst til LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 January 2025; dokumentet markerer sine kodetabeller {LSIS-TBC}). 9 af 10 kontroller er nået; B4 er NOT MET (420 af 421 stemte). Den kontrollerer en symbolstrøm mod én udgave af en offentliggjort specifikation og siger intet om nogen LunaNet-node eller -tjeneste. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life). Den kontrollerer en symbolstrøm mod én udgave af en offentliggjort specifikation og siger intet om nogen LunaNet-node eller -tjeneste.LunaNet AFS-kodegeneratoren kontrolleret mod specifikationens trykte kolonner, fra en rigtig kørsel af motor v0.40.0 (`kshana lunanet-afs-check spec`, fastlåst til LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 January 2025; dokumentet markerer sine kodetabeller {LSIS-TBC}). 9 af 10 kontroller er nået; B4 er NOT MET (420 af 421 stemte). Den kontrollerer en symbolstrøm mod én udgave af en offentliggjort specifikation og siger intet om nogen LunaNet-node eller -tjeneste. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life). Den kontrollerer en symbolstrøm mod én udgave af en offentliggjort specifikation og siger intet om nogen LunaNet-node eller -tjeneste.

Hvad der er implementeret#

Lag Hvad Hvor
AFS-I (data) Gold-kode 2047 kortcyklet til 2046 chips, G2 forsinket med et antal chips pr. PRN, 1,023 Mchip/s, BPSK(1), 500 symbol/s, PRN 1 til 210 iq::signals::lunanet::afs_i, signalnavn lunanet-afs-i
AFS-Q (pilot) Weil-kode 10230 (GPS L1C-konstruktionen) i lag med en sekundærkode på 4 chips (S0 til S3) og en tertiær Weil-kode på 1500 chips (12 s), 5,115 Mchip/s, BPSK(5), ingen data. afs_q og signalnavnet lunanet-afs-q er modtagerens replika, primær x sekundær (8 ms): den tertiære rammesynkroniseringsoverlejring på 12 s er udeladt, fordi erhvervelse og sporing ikke korrelerer mod en replika på 12 s. afs_q_tiered er den fulde kode på 12 s afs_q, afs_q_with, afs_q_tiered
Bærebølge 2492,028 MHz (LSIS-020) AFS_HZ
Ramme SP 68 + SB1 52 + 5880 interleavede symboler = 6000 symboler = 12 s ved 500 symbol/s iq::lunanet_afs
SB1 9 bit (FID 2, TOI 7), BCH(51.8), generator 763 oktal, med dokumentets korrelationsdekoder med 256 hypoteser sb1_encode, sb1_decode
CRC CRC-24Q, generator (1+X)P(X) (bilag H) crc24q_bits, crc24q_bytes
Interleaver 60 rækker x 98 kolonner, skrevet række for række og læst kolonne for kolonne interleave, deinterleave

De to komponenter accepteres af kshana iq scene, acquire, track og sweep som ethvert andet signal, så en optagelse kan gennemsøges efter AFS-I eller AFS-Q (kshana iq acquire --signal lunanet-afs-i), og en syntetisk scene kan laves til test af softwaremodtagere. En syntetisk scene er, som for ethvert andet signal, en fil til en softwaremodtager; intet her styrer radiohardware.

Hvad der ikke er implementeret#

  • Rate-1/2 LDPC-kodningen af underrammerne 2 til 4. Dens kontrolmatricer står i bilag 1, en separat fil, som ikke er i PDF-filen og ikke er medleveret. Underrammerne 2 til 4 bæres og kontrolleres som uigennemsigtige symbolblokke af den angivne længde, og CRC-24Q-ordene i dem verificeres ikke. En strøm, der består lunanet-afs-check symbols, er ikke vist at indeholde gyldige kodeord.
  • Meddelelsesindhold (MSG-G1, MSG-G2, MSG-G4, ...): dokumentet overlader flere definitioner til senere udfyldning (TBW).
  • Kodetildeling pr. LunaNet-node (tabel F-1 er TBD). PRN 1 til 12 har foreløbige testtildelinger (tabel 11). afs_q(prn) bruger PRN ns primærkode med sekundær S((n-1) mod 4); ud over PRN 12 er det denne implementerings mønster, ikke dokumentets. afs_q_with og afs_q_tiered tager enhver kombination, med tertiærkoden fra en vilkårlig PRN.
  • Linkbudget, fejl i signalet i rummet, krav til effekt og kohærens (LSIS-100 og følgende).

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 kører implementeringen mod dokumentets trykte tabeller og gennemregnede eksempler (tærsklerne B1 til B10 i præregistreringen) og udskriver hver med sit antal og sin status. --strict afslutter med 1, medmindre alle tærskler er nået.
  • symbols læser en symbolstrøm med hårde beslutninger (tekst med 0 og 1; blanktegn ignoreres) og kontrollerer synkroniseringsmønsteret, dekodning af SB1, FID (kun 0 er defineret), TOI-kontinuitet (stiger med én modulo 100) og rammeafstand (6000 symboler). Den afslutter med 1 ved ethvert problem.
  • generate skriver en teststrøm: dokumentets synkroniseringsmønster, SB1- og rammelængder, med pladsholder-underrammer 2 til 4 (den alternerende fyld fra LSIS-300, ikke LDPC-kodet, ingen meddelelse). Det er symboler til test af en kontrol eller en dekoder, ikke en bølgeform; Kshana skriver intet signal.

Python: lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate. WebAssembly: de samme navne. MCP: lunanet_afs_check (mode spec, symbols eller generate). Plugin: /kshana-lunanet-afs-check. Studio og JetBrains: N/A (SURFACES.md).

Resultater#

Tærskler angivet i xval/lunanet-afs/PREREGISTRATION.md, før generatoren fandtes; tests i tests/lunanet_afs_codes.rs.

Tærskel Påstand Resultat
B1 AFS-I første og sidste 24 chips, 210 PRN MET, 420 af 420
B1b den trykte begyndelsestilstand for G2 er tilstanden efter den trykte forsinkelse NOT MET, 0 af 210: påstanden havde retningen forkert. Post hoc (B1c, ikke præregistreret): den trykte tilstand er tilstanden efter 2047 minus forsinkelsen, 210 af 210
B2 Legendre(10223) er lig med tabel D-1 MET
B3 AFS-Q primær første og sidste 24 chips, 210 PRN MET, 420 af 420
B4 Legendre(1499) er lig med tabel E-1 og tertiær første og sidste 24 chips, 210 PRN NOT MET, 420 af 421: Legendre-sekvensen stemmer, og 419 af 420 kodekolonner stemmer. De sidste 24 chips, der er trykt for PRN 147 (A14850), er den samme værdi som den, der er trykt for PRN 151, hvis kode generatoren gengiver; to forskellige Weil-indeks (607 og 612) giver ikke de samme sidste 24 chips, så posten for PRN 147 er højst sandsynligt en trykfejl i dokumentet. Det kan ikke afgøres uden den separate kodefil i bilag 3. Fastholdt af en test
B5 sekundærkoderne S0 til S3 er lig med tabel 10 MET (dokumentets egne konstanter)
B6 SB1-eksemplet i figur 8 MET: 0x045 koder til 0x229F61DBB84A0 og dekoder til FID 0, TOI 69 (ét eksempel)
B7 CRC-24Q-kontrolværdi for 123456789 MET: 0xCDE703 (katalogværdien, uden for specifikationen)
B8 rammeregning MET
B9 interleave og derefter de-interleave MET (en egenskab, MODELLED)
B10 synkroniseringsmønster MET (68 symboler; en transskriptionskontrol)

B1 til B4 er VALIDATED mod de trykte tabeller i den citerede udgave, som dokumentet markerer {LSIS-TBC}. Et gennemløb fra scene til erhvervelse til sporing af begge komponenter klarer de samme tærskler som de andre signaler (tests/iq_signal_matrix.rs).