Maskinöversättning, inte granskad av en modersmålstalare. Engelska är referensen.

Mottagarförtroende och sjöfartRedigera på GitHubKälla: docs/LUNANET-AFS.md

LunaNet Augmented Forward Signal: koder, meddelandeformat och lunanet-afs-check

Kshana implementerar spridningskoderna och meddelandelagret i LunaNet Augmented Forward Signal (AFS) så som en utgåva av specifikationen definierar dem, och kontrollerar sig själv mot den utgåvans tryckta tabeller.

Låst version. 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 januari 2025 (NASA). Hämtad 2026-10-18; PDF SHA-256 986e0795…e61b6 (proveniens). En senare utgåva är en annan låst version och kan ändra koderna: dokumentet märker sina kodtabeller {LSIS-TBC} och säger att de är "inkluderade enbart för att underlätta test- och integrationsarbete". Varje rapport namnger denna utgåva.

Rådgivande: analysresultat från ett forsknings- och ingenjörsverktyg, inte typgodkänd navigationsutrustning och inte en livsäkerhetstjänst.

LunaNet AFS-kodgeneratorn kontrollerad mot specifikationens tryckta kolumner, från en verklig körning av motor v0.40.0 (`kshana lunanet-afs-check spec`, låst till LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 januari 2025; dokumentet märker sina kodtabeller {LSIS-TBC}). 9 av 10 kontroller är uppfyllda; B4 är NOT MET (420 av 421 stämde). Den kontrollerar en symbolström mot en utgåva av en publicerad specifikation och säger ingenting om någon LunaNet-nod eller -tjänst. Rådgivande: analysresultat från ett forsknings- och ingenjörsverktyg, inte typgodkänd navigationsutrustning och inte en livsäkerhetstjänst. Den kontrollerar en symbolström mot en utgåva av en publicerad specifikation och säger ingenting om någon LunaNet-nod eller -tjänst.LunaNet AFS-kodgeneratorn kontrollerad mot specifikationens tryckta kolumner, från en verklig körning av motor v0.40.0 (`kshana lunanet-afs-check spec`, låst till LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 januari 2025; dokumentet märker sina kodtabeller {LSIS-TBC}). 9 av 10 kontroller är uppfyllda; B4 är NOT MET (420 av 421 stämde). Den kontrollerar en symbolström mot en utgåva av en publicerad specifikation och säger ingenting om någon LunaNet-nod eller -tjänst. Rådgivande: analysresultat från ett forsknings- och ingenjörsverktyg, inte typgodkänd navigationsutrustning och inte en livsäkerhetstjänst. Den kontrollerar en symbolström mot en utgåva av en publicerad specifikation och säger ingenting om någon LunaNet-nod eller -tjänst.

Vad som är implementerat#

Lager Vad Var
AFS-I (data) Gold-kod 2047 kortcyklad till 2046 chip, G2 fördröjd med ett antal chip per PRN, 1,023 Mchip/s, BPSK(1), 500 symbol/s, PRN 1 till 210 iq::signals::lunanet::afs_i, signalnamn lunanet-afs-i
AFS-Q (pilot) Weil-kod 10230 (konstruktionen från GPS L1C) i nivåer med en sekundärkod på 4 chip (S0 till S3) och en tertiär Weil-kod på 1500 chip (12 s), 5,115 Mchip/s, BPSK(5), ingen data. afs_q och signalnamnet lunanet-afs-q är mottagarens replika, primär x sekundär (8 ms): den tertiära överlagringen för ramsynkronisering på 12 s är utelämnad ur den, eftersom infångning och spårning inte korrelerar mot en replika på 12 s. afs_q_tiered är hela koden på 12 s afs_q, afs_q_with, afs_q_tiered
Bärvåg 2492,028 MHz (LSIS-020) AFS_HZ
Ram SP 68 + SB1 52 + 5880 interfolierade symboler = 6000 symboler = 12 s vid 500 symbol/s iq::lunanet_afs
SB1 9 bitar (FID 2, TOI 7), BCH(51 8), generator 763 oktalt, med dokumentets korrelationsavkodare med 256 hypoteser sb1_encode, sb1_decode
CRC CRC-24Q, generator (1+X)P(X) (bilaga H) crc24q_bits, crc24q_bytes
Interfolierare 60 rader x 98 kolumner, skrivs radvis och läses kolumnvis interleave, deinterleave

De två komponenterna accepteras av kshana iq scene, acquire, track och sweep som vilken annan signal som helst, så en inspelning kan genomsökas efter AFS-I eller AFS-Q (kshana iq acquire --signal lunanet-afs-i) och en syntetisk scen kan skapas för test av mjukvarumottagare. En syntetisk scen är, som för alla andra signaler, en fil för en mjukvarumottagare; ingenting här styr radiohårdvara.

Vad som inte är implementerat#

  • LDPC-kodningen med hastighet 1/2 av delramarna 2 till 4. Dess kontrollmatriser finns i bilaga 1, en separat fil som inte finns i PDF-filen och inte är inkluderad. Delramarna 2 till 4 bärs och kontrolleras som ogenomskinliga symbolblock av den angivna längden, och CRC-24Q-orden i dem verifieras inte. En ström som klarar lunanet-afs-check symbols är inte visad innehålla giltiga kodord.
  • Meddelandeinnehåll (MSG-G1, MSG-G2, MSG-G4, ...): dokumentet lämnar flera definitioner att skriva (TBW).
  • Kodtilldelning per LunaNet-nod (tabell F-1 är TBD). PRN 1 till 12 har tillfälliga testtilldelningar (tabell 11). afs_q(prn) använder PRN n:s primärkod med sekundärkod S((n-1) mod 4); bortom PRN 12 är det den här implementationens mönster, inte dokumentets. afs_q_with och afs_q_tiered tar vilken kombination som helst, med den tertiära koden för vilken PRN som helst.
  • Länkbudget, fel i signal i rymden, effekt- och koherenskrav (LSIS-100 och följande).

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ör implementationen mot dokumentets tryckta tabeller och räknade exempel (trösklarna B1 till B10 i förhandsregistreringen) och skriver ut var och en med sitt antal och sin status. --strict avslutas med 1 om inte varje tröskel är nådd.
  • symbols läser en symbolström med hårda beslut (text med 0 och 1; blanksteg ignoreras) och kontrollerar synkroniseringsmönstret, SB1-avkodning, FID (bara 0 är definierat), TOI-kontinuitet (ökar med ett modulo 100) och ramavstånd (6000 symboler). Den avslutas med 1 vid varje problem.
  • generate skriver en testsymbolström: dokumentets synkroniseringsmönster, SB1- och ramlängder, med delramar 2 till 4 som är platshållare (den alternerande fyllnaden i LSIS-300, inte LDPC-kodad, inget meddelande). Det är symboler för att testa en kontrollerare eller en avkodare, inte en vågform; Kshana skriver ingen signal.

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

Resultat#

Trösklar angivna i xval/lunanet-afs/PREREGISTRATION.md innan generatorn fanns; test i tests/lunanet_afs_codes.rs.

Tröskel Påstående Resultat
B1 AFS-I första och sista 24 chipen, 210 PRN MET, 420 av 420
B1b det tryckta initialtillståndet för G2 är tillståndet efter den tryckta fördröjningen NOT MET, 0 av 210: påståendet hade fel riktning. Post hoc (B1c, inte förhandsregistrerad): det tryckta tillståndet är tillståndet efter 2047 minus fördröjningen, 210 av 210
B2 Legendre(10223) är lika med tabell D-1 MET
B3 AFS-Q primär första och sista 24 chipen, 210 PRN MET, 420 av 420
B4 Legendre(1499) är lika med tabell E-1 samt tertiär första och sista 24 chipen, 210 PRN NOT MET, 420 av 421: Legendre-sekvensen stämmer och 419 av 420 kodkolumner stämmer. De sista 24 chipen som är tryckta för PRN 147 (A14850) är samma värde som är tryckt för PRN 151, vars kod generatorn återger; två olika Weil-index (607 och 612) ger inte samma sista 24 chip, så posten för PRN 147 är med största sannolikhet ett tryckfel i dokumentet. Det kan inte avgöras utan den separata kodfilen i bilaga 3. Fastlåst av ett test
B5 sekundärkoderna S0 till S3 är lika med tabell 10 MET (dokumentets egna konstanter)
B6 SB1-räknat exempel i figur 8 MET: 0x045 kodas till 0x229F61DBB84A0 och avkodas till FID 0, TOI 69 (ett exempel)
B7 Kontrollvärde för CRC-24Q för 123456789 MET: 0xCDE703 (katalogvärdet, utanför specifikationen)
B8 ramaritmetik MET
B9 interfoliera och sedan avinterfoliera MET (en egenskap, MODELLED)
B10 synkroniseringsmönster MET (68 symboler; en transkriptionskontroll)

B1 till B4 är VALIDATED mot de tryckta tabellerna i den citerade utgåvan, som dokumentet märker {LSIS-TBC}. En tur-och-retur-körning från scen till infångning till spårning av båda komponenterna klarar samma trösklar som de andra signalerna (tests/iq_signal_matrix.rs).