Spektrummodell och vattenfallsdiagram
Scenariotypen spectrum bygger GNSS-L-bandet (Global Navigation Satellite System), och varje annat band som en utformad signal upptar (ultrahög frekvens (UHF), S-band, C-band), som en enda spektral effekttäthet (PSD), låter den ändras över en skriptad jammer-tidslinje och reducerar den till det som en spårningsslinga bryr sig om: jammer-till-signal-förhållandet (J/S) och det effektiva förhållandet mellan bärvåg och brustäthet (C/N₀) för varje band. Den ritar resultatet som ett vattenfallsdiagram (frekvens tvärs, tid nedåt, färg för effekt) bredvid C/N₀-staplar per band, och den läser och skriver inspelningar i Signal Metadata Format (SigMF) så att en verklig inspelning kan skattas och ritas bredvid modellen.
Skriv det medföljande exemplet till en fil och kör det:
kshana example l-band-waterfall-jamming > l-band-waterfall-jamming.toml
kshana l-band-waterfall-jamming.toml
# writes .result.json, .chart.svg, .report.html and .report.json next to the file
I en utcheckning kör kshana scenarios/l-band-waterfall-jamming.toml samma fil.
Kod: src/spectrum.rs (modellen, typen, Welch-skattaren), src/sigmf.rs (inspelningskodeken), src/navsignal.rs (spektra med enhetsarea för signaler och spektralseparationskoefficienten) och src/leo_signal.rs (förinställningarna för signalutformning som ett band kan namnge).
Vad som modelleras#
| Band | Bärvåg | Modulation | Standardvärde för mottagen effekt | Standardvärde för mottagarbandbredd |
|---|---|---|---|---|
gps-l1ca |
1575,42 MHz | binär fasskiftsmodulation, BPSK(1) | −158,5 dBW (IS-GPS-200) | 2,046 MHz |
galileo-e1 |
1575,42 MHz | multiplexad binär offsetbärvåg, MBOC(6,1,1/11), eller binär offsetbärvåg BOC(1 1) | −157,25 dBW (Galileo OS SIS ICD Issue 2,1, Table 12) | 14,322 MHz |
gps-l2c |
1227,60 MHz | BPSK(1) (CM- och CL-koder tidsmultiplexade) | −160,0 dBW (IS-GPS-200) | 2,046 MHz |
gps-l5 |
1176,45 MHz | BPSK(10) | −157,9 dBW (IS-GPS-705) | 20,46 MHz |
galileo-e5a |
1176,45 MHz | BPSK(10) | −155,25 dBW (Galileo OS SIS ICD Issue 2,1, Table 12) | 20,46 MHz |
GPS (Global Positioning System) L1 C/A är grov-/förvärvskoden; L2C är den civila L2-signalen; IS-GPS-200 och IS-GPS-705 är GPS-gränssnittsspecifikationerna; Galileo OS SIS ICD är Galileos Open Service Signal-in-Space Interface Control Document. De mottagna effekterna är specifikationernas minimivärden; bandbredderna är modelleringsval. Båda kan åsidosättas per band. Utan en tabell [[bands]] använder körningen dessa fem. GLONASS G1/G2, BeiDou B1/B2 och Galileo E6 finns inte bland de namngivna banden.
En post [[bands]] har en av tre former:
- ett namn från tabellen ovan, med valfria
signal_power_dbw,rx_bandwidth_mhzoch, förgalileo-e1,modulation = "boc11"; signal = "<preset>": en LEO-signal (låg jordbana) eller en representativ signalutformning från förinställningsbiblioteket i typenleo-signal(LEO-SIGNAL.md), i vilket band som helst, ritad med varje komponent (förvärv, data, pilot, frekvensdelningsunderbärvågor) och bandbegränsad till sin sändningsbandbredd; C/N₀ och J/S avser den spårade komponenten, ochnamemärker den bara. Förinställningarna ärxona-x1,xona-x5,iridium-stl,starlink-ku-beacon,centispace-l1,centispace-l5,generic-c-band-leo,generic-uhf,generic-l,generic-s,generic-cochgeneric-c-wide;- ett eget band: vilken
namesom helst medcentre_mhz,modulation(BPSK(n),BOC(m,n)ellerMBOC(6,1,p)) ochsignal_power_dbw.
Jammers ([[jammers]]) tar en waveform:
cw— en kontinuerlig tonvåg (CW) vidcentre_mhz;narrowband— platt brus överbandwidth_mhz;wideband— platt brus över en bredbandwidth_mhz(en barrage-jammer): samma täthet somnarrowband, namngiven separat eftersom typenjammingpoängsätter den som bredbandig;chirp— ett linjärt sågtandssvep påbandwidth_mhzvarjesweep_period_us;matched— bredbandigt brus vars spektrum är den egna modulationen för bandetmatched_to.
Var och en anger antingen received_power_dbw, eller en effektiv isotropiskt utstrålad effekt eirp_dbw med ett range_m (och eventuellt rx_gain_dbi), som går genom frisiktsdämpningen i typen jamming. on_s och off_s skriptar tidslinjen.
Mottagaren ([receiver]) anger brusgolvet, N₀ = k·T_sys med T_sys = T_ant + 290 K × (F − 1) för antenntemperatur T_ant och brustal F, och spårningströskeln.
Huvudvattenfallsdiagrammet täcker [grid] (standard 1160 till 1590 MHz i 430 fack). Varje post [[panels]] (name, f_min_mhz, f_max_mhz, n_freq, standard 200 fack) lägger till ytterligare ett vattenfallsdiagram över sitt eget frekvensområde på samma tidslinje, för ett spektrum som spänner över flera band.
Störningskedjan#
För en signal med enhetsareaspektrum G_s och en jammer med enhetseffektspektrum G_j är spektralseparationskoefficienten (SSC) över mottagarbandet B κ = ∫_B G_s(f) G_j(f) df, och den effektiva bärvågs-till-brustätheten med flera jammers är
(C/N₀)_eff = [ 1/(C/N₀) + Σ_j (J/S)_j · κ_j ]⁻¹
(Betz 2001; Kaplan & Hegarty, Understanding GPS/GNSS, 3:e uppl., §9,4). För en jammer är detta exakt anti-jam-ekvationen i typen jamming med Q = 1/(R_c κ); rapportens block jamming_kind_cross_check kör de egna funktionerna i typen jamming på samma länkindata och skriver ut skillnaden, som är noll upp till avrundning.
Rapporten skriver också ut det C/N₀ som typen jamming ger med sin Q-tabell. Tabellen innehåller läroboksvärdena, fastlåsta i testerna mot de slutna formerna:
- CW och smalband:
Q = 1. En CW-ton på C/A-bärvågen harκ = T_c, såQ = 1, och tabellen och spektra stämmer överens. I det medföljande exemplet ger tonen 17,98 dB-Hz från båda (tabellen gav 19,74 när den innehöll 1,5). - Bredband och svept:
Q = 2, sedan 0,36. Det är vitt brus över huvudloben med signaleffekten i bandet normaliserad till ett,κ = 1/(2R_c). Tabellen innehöll 1 till 0,36, cirka 3 dB pessimistisk (xval/jammer-q/PREREGISTRATION.md).
Spektrummodellen härleder sina egna värden ur spektra:
Q = 1.5för brus matchat mot C/A (κ = 2/(3R_c));Q = 2.2för platt brus från nollställe till nollställe utan normaliseringen (2/0.9028).
Så för dessa jammers skiljer sig de två utskrivna C/N₀-värdena fortfarande åt, med avsikt.
Varje cell i vattenfallsdiagrammet är PSD:n medelvärdesbildad över sitt frekvensfack och sin rad. Ett chirp medelvärdesbildas exakt över raden, hela svep plus det partiella; en jammer som slås på eller av mitt i en rad viktas efter sin driftcykel. C/N₀-tidslinjen använder samma medelvärden, så bilden och siffrorna stämmer överens. Per band redovisar tidslinjen J/S i bandet (jammereffekt inom mottagarbandbredden över signaleffekten). Per jammer och band anger rapporten SSC, Q, total J/S, J/S i bandet och det stationära C/N₀.
Det medföljande exemplet#
scenarios/l-band-waterfall-jamming.toml: en tidslinje på 60 s, en rad per sekund, en antenn på 290 K och ett brustal på 2 dB (golv −201,98 dBW/Hz).
- 10 s till 40 s: ett chirp på 16 MHz kring L1, svep på 9 µs, 50 mW på 100 m.
- Från 30 s: en CW-ton på L1-bärvågen, 10 mW på 1 km.
- Från 45 s: platt brus på 2 MHz på L2 mottaget vid −135 dBW.
Vad körningen beräknar:
| Band | Nominell C/N₀ | Lägsta C/N₀ | Första förlust | Rader med spårning |
|---|---|---|---|---|
| gps-l1ca | 43,48 dB-Hz | 3,23 dB-Hz | 10 s | 17 % |
| galileo-e1 | 44,73 dB-Hz | 4,44 dB-Hz | 10 s | 50 % |
| gps-l2c | 41,98 dB-Hz | 36,86 dB-Hz | aldrig | 100 % |
| gps-l5 | 44,08 dB-Hz | 44,08 dB-Hz | aldrig | 100 % |
| galileo-e5a | 46,73 dB-Hz | 46,73 dB-Hz | aldrig | 100 % |
CW-tonen är orsaken till att de två L1-signalerna skiljs åt vid 40 s. Den hamnar på toppen av C/A-spektrumet och håller C/A på 17,98 dB-Hz, under tröskeln på 25 dB-Hz. Den hamnar i nollstället i MBOC-spektrumet, så Galileo E1 återgår till sitt nominella C/N₀ när chirpet upphör.
Signalerna själva ligger cirka 20 dB under brusgolvet, så vattenfallsdiagrammet visar golvet och jammers; C/N₀-staplarna visar vad avspridningen återvinner.
Samma jammers driver ett kedjat uppdrag i scenarios/campaign-spectrum-holdover-integrity.toml (se CAMPAIGNS.md): klockan går i holdover medan chirpet är på, och mottagaren faller tillbaka på Galileo E1 under CW-tonen.
Bortom L-bandet#
scenarios/multi-band-jamming-waterfall.toml placerar signaler för LEO-positionering, navigering och tidssynkronisering (PNT) i fyra band bredvid GPS L1 C/A och Galileo E5a, varje band med sin egen jammer, på en tidslinje på 60 s. Vattenfallsdiagrammet [grid] är L-bandet; tre [[panels]] lägger till UHF (455 till 475 MHz), S (2482 till 2502 MHz) och C (5005 till 5035 MHz).
- 10 s: en CW-ton vid UHF-bärvågen, mottagen vid −120 dBW.
- 20 s: chirpet från L-bandsexemplet (16 MHz kring L1, svep på 9 µs, 50 mW på 100 m).
- 30 s: bredbandsbrus, 40 MHz kring 1185 MHz, −118 dBW.
- 40 s: smalbandsbrus, 2 MHz vid S-bärvågen, −128 dBW.
- 50 s: brus matchat mot C-bandssignalens eget spektrum, −124 dBW.
Vad körningen beräknar (C/N₀ för de utformade signalerna är det för den spårade komponenten, så det nominella värdet ligger under den totala mottagna effekten med den spårade andelen):
| Band | Signal | Bärvåg | Nominell C/N₀ | Lägsta C/N₀ | Rader med spårning |
|---|---|---|---|---|---|
| generic-uhf | representativ, BPSK(5), −150 dBW | 465 MHz | 49,41 dB-Hz | 34,38 dB-Hz | 100 % |
| gps-l1ca | specifikationens minimum | 1575,42 MHz | 43,48 dB-Hz | 3,38 dB-Hz | 33 % |
| galileo-e5a | specifikationens minimum | 1176,45 MHz | 46,73 dB-Hz | 38,51 dB-Hz | 100 % |
| xona-x5 | publicerad utformning, −144,9 dBW | 1190,51625 MHz | 54,51 dB-Hz | 46,29 dB-Hz | 100 % |
| generic-s | representativ, BPSK(5), −150 dBW | 2492,028 MHz | 49,23 dB-Hz | 41,69 dB-Hz | 100 % |
| generic-c-band-leo | representativ, BPSK(10), −152 dBW | 5020 MHz | 47,41 dB-Hz | 40,35 dB-Hz | 100 % |
Bara chirpet tar bort en signal (GPS L1 C/A, från 20 s). Varje annan jammer försämrar bara det band som dess spektrum når: det C-bandsmatchade bruset har till exempel en SSC på −71,87 dB/Hz med C-bandssignalen och under −133 dB/Hz med varje annat band.
Samma maskineri driver LEO-PNT-resiliensscenarierna (LEO-PNT.md):
scenarios/leo-resilience-js-margin.tomlstegar en barrage-jammer på 40 MHz vid 1185 MHz upp 5 dB var 10 s från −125 dBW. GPS L5 förloras vid steget −105 dBW, Galileo E5a vid −100 dBW och Xona X5 vid −95 dBW, medan en representativ LEO-L-bandssignal mottagen vid −135 dBW fortfarande spåras vid −90 dBW: mottagen effekt köper J/S-marginal dB för dB.scenarios/leo-resilience-multiband-diversity.tomlär en kampanjsvepning av en körningspectrumöver effekten hos en barrage i L5-bandet (CAMPAIGNS.md).scenarios/leo-resilience-gnss-jammed-leo-carries.tomlär en kedjad kampanj vars faser läser GNSS- och LEO-C/N₀ från körningarspectrum, med paneler för S- och C-band.
IQ, SigMF och Welch#
[iq] ritar modellen vid ett ögonblick som komplexa IQ-sampel (in-phase och quadrature), skriver dem som en SigMF-inspelning (cf32_le eller ci16_le), läser tillbaka inspelningen och skattar dess PSD med Welchs metod (Hann-fönster, 50 % överlapp, medelvärdesbildade periodogram, densitetsskalade). Termiskt brus, signaler och brusliknande jammers ritas fack för fack ur modellens egen täthet; en ton och ett chirp ritas som verkliga vågformer. Med enbart brusliknande jammers ligger Welch-skattningen inom 0,1 dB från modellen (median). Ett periodiskt chirp är ett linjespektrum vid sin svepfrekvens, med rippel och svansar bortom sina bandkanter som den släta modellen utelämnar: i det medföljande exemplet stämmer totaleffekten inom 0,02 % och medianfacket skiljer sig med 0,5 dB. Ögonblicksbilden är en fil som skrivs för analys; ingenting sänds och ingen radiohårdvara styrs.
[recording] (endast nativa byggen) läser en verklig SigMF-inspelning från meta_path (datafilen får som standard samma filstam med .sigmf-data), skattar dess PSD och skriver ut den bredvid modellen vid inspelningens frekvenser. En SigMF-fil har ingen absolut effektkalibrering, så rapporten anger medianoffseten och formen, inte en nivå.
I WebAssembly-bygget är filläsning inte tillgänglig; kshana::sigmf::read och kshana::spectrum::welch_psd fungerar på byte som sidan tillhandahåller.
Evidens#
| Påstående | Etikett | Oberoende referens |
|---|---|---|
| Signal-PSD:er och SSC:er | VALIDATED | BPSK(n) huvudlob 2n × 1,023 MHz nollställe till nollställe; lober för BOC(1 1) centrerade vid ±1,023 MHz (Betz 2001); SSC:er −61,86 / −64,87 / −67,88 dB/Hz för C/A×C/A, BOC(1 1)×BOC(1 1), C/A×BOC(1 1) från deras slutna Parseval-former, värdena bakom de publicerade −61,8 / −64,8 / −67,8 dB/Hz; Q = 1 (CW) och 1,5 (matchat) (Kaplan & Hegarty §9,4); tabellposterna i typen jamming är lika med de slutna formerna: CW och smalband Q = 1, bredband och svept Q = 2 (vitt brus över huvudloben, effekt i bandet normaliserad; 1 till 0,36) |
| Vattenfallsdiagram, J/S och C/N₀-tidslinje | MODELLED | Reduceras exakt till kedjan i typen jamming; jammereffekterna, tidslinjen och bandbredderna är indata |
| SigMF-kodek och Welch-skattning | MODELLED | Rundturer, en direkt diskret Fouriertransform, identiteter för vitt brus och Parseval; ingen tredjepartsinspelning finns i repot |
| Vattenfallsdiagram för flera band med utformade signaler och jammers per band | MODELLED | Reduceras till L-bandskedjan (ett band med en enda komponent ger samma siffror som före utvidgningen) och till de validerade signalspektra; de utformade signalerna, jammers och bandbredderna är indata |
En rättelse av en vanlig förkortning: loberna i spektrumet för BOC(1 1) är centrerade vid ±1,023 MHz (mellan bärvågsnollstället och nollstället vid 2,046 MHz), men PSD:ns maximum ligger vid ±0,759 MHz, där tan y = 2y med y = πf/(2R_c). Testerna fastlåser båda.
Inte modellerat#
- Linjestruktur hos spridningskoden (linjerna på 1 kHz i C/A): en ton poängsätts mot den släta envelopen, inte mot den närmaste kodlinjen.
- Automatisk förstärkningsreglering, kvantisering, pulsblankning och notchfiltrering.
- Mottagarantennens mönster mot jammern utöver ett förstärkningsvärde.
- Fleråtkomststörning mellan satelliter i ett och samma band.
- En utformad signals emissioner utanför sin sändningsbandbredd: dess spektrum trunkeras där, så ingen emission utanför bandet når ett angränsande band.
- Ett chirps inverkan på slingan vid svepfrekvenser jämförbara med slingbandbredden: dess C/N₀ använder det radmedelvärdesbildade spektrumet.
Referenser#
- J. W. Betz, "Binary Offset Carrier Modulations for Radionavigation," NAVIGATION 48(4), 2001.
- E. D. Kaplan and C. J. Hegarty (eds.), Understanding GPS/GNSS: Principles and Applications, 3rd ed., Artech House, 2017, §9,4.
- G. W. Hein et al., "MBOC: The New Optimized Spreading Modulation Recommended for Galileo L1 OS and GPS L1C," Inside GNSS, May/June 2006.
- P. D. Welch, "The Use of Fast Fourier Transform for the Estimation of Power Spectra," IEEE Transactions on Audio and Electroacoustics 15(2), 1967.
- IS-GPS-200, IS-GPS-705; Galileo OS SIS ICD.
- SigMF-specifikation, https://sigmf.org/ (källa: https://github.com/sigmf/SigMF).