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).
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_withogafs_q_tieredtager 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>
speckø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.--strictafslutter med 1, medmindre alle tærskler er nået.symbolslæser en symbolstrøm med hårde beslutninger (tekst med0og1; 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.generateskriver 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).