Model spektra a waterfall
Druh scénáře spectrum vytváří pásmo L globálního družicového navigačního systému (GNSS) a jakékoli další pásmo, které navržený signál zabírá (velmi vysoké frekvence (UHF), pásmo S, pásmo C), jako jedinou spektrální hustotu výkonu (PSD), nechává ji měnit se podle skriptované časové osy rušiček a redukuje ji na to, co zajímá sledovací smyčku: poměr rušení k signálu (J/S) a efektivní poměr nosné k hustotě šumu (C/N₀) každého pásma. Výsledek vykresluje jako waterfall (frekvence napříč, čas dolů, barva pro výkon) vedle sloupců C/N₀ pro jednotlivá pásma a čte a zapisuje záznamy ve formátu Signal Metadata Format (SigMF), takže skutečný záznam lze odhadnout a vykreslit vedle modelu.
Přibalený příklad zapište do souboru a spusťte:
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
V checkoutu spustí kshana scenarios/l-band-waterfall-jamming.toml tentýž soubor.
Kód: src/spectrum.rs (model, druh, Welchův odhadovač), src/sigmf.rs (kodek záznamů), src/navsignal.rs (spektra signálů o jednotkové ploše a koeficient spektrální separace) a src/leo_signal.rs (předvolby návrhu signálu, které pásmo může pojmenovat).
Co je modelováno#
| Pásmo | Nosná | Modulace | Výchozí přijímaný výkon | Výchozí šířka pásma přijímače |
|---|---|---|---|---|
gps-l1ca |
1575,42 MHz | binární fázové klíčování, BPSK(1) | −158,5 dBW (IS-GPS-200) | 2,046 MHz |
galileo-e1 |
1575,42 MHz | multiplexovaná binární offsetová nosná, MBOC(6,1,1/11), nebo binární offsetová nosná 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) (kódy CM a CL časově multiplexované) | −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 je kód hrubého určení/akvizice; L2C je civilní signál L2; IS-GPS-200 a IS-GPS-705 jsou rozhraní specifikace GPS; Galileo OS SIS ICD je Galileo Open Service Signal-in-Space Interface Control Document. Přijímané výkony jsou minima specifikace; šířky pásma jsou modelovací volby. Obojí lze přepsat pro každé pásmo. Bez tabulky [[bands]] běh používá těchto pět. GLONASS G1/G2, BeiDou B1/B2 a Galileo E6 mezi pojmenovanými pásmy nejsou.
Záznam [[bands]] má jednu ze tří forem:
- název z tabulky výše, s nepovinnými
signal_power_dbw,rx_bandwidth_mhza progalileo-e1téžmodulation = "boc11"; signal = "<preset>": návrh signálu na nízké oběžné dráze Země (LEO) nebo reprezentativní z knihovny předvoleb druhuleo-signal(LEO-SIGNAL.md), v libovolném pásmu, vykreslený se všemi složkami (akvizice, data, pilot, subnosné s frekvenčním dělením) a omezený na pásmo vysílání; C/N₀ a J/S se vztahují ke sledované složce anameji pouze označuje. Předvolby jsouxona-x1,xona-x5,iridium-stl,starlink-ku-beacon,centispace-l1,centispace-l5,generic-c-band-leo,generic-uhf,generic-l,generic-s,generic-cageneric-c-wide;- vlastní pásmo: libovolné
namescentre_mhz,modulation(BPSK(n),BOC(m,n)neboMBOC(6,1,p)) asignal_power_dbw.
Rušičky ([[jammers]]) berou waveform:
cw— tón nepřerušované vlny (CW) nacentre_mhz;narrowband— plochý šum přesbandwidth_mhz;wideband— plochý šum přes širokébandwidth_mhz(zahlcovací rušička): táž hustota jakonarrowband, pojmenovaná zvlášť, protože druhjammingji hodnotí jako širokopásmovou;chirp— lineární pilovité přeladění obandwidth_mhzkaždýchsweep_period_us;matched— širokopásmový šum, jehož spektrum je vlastní modulací pásmamatched_to.
Každá udává buď received_power_dbw, nebo efektivní izotropně vyzářený výkon eirp_dbw s range_m (a volitelně rx_gain_dbi), který prochází útlumem volným prostorem druhu jamming. on_s a off_s skriptují časovou osu.
Přijímač ([receiver]) určuje šumovou podlahu, N₀ = k·T_sys s T_sys = T_ant + 290 K × (F − 1) pro teplotu antény T_ant a šumové číslo F, a práh sledování.
Hlavní waterfall pokrývá [grid] (výchozí 1160 až 1590 MHz ve 430 binech). Každý záznam [[panels]] (name, f_min_mhz, f_max_mhz, n_freq, výchozí 200 binů) přidává další waterfall nad vlastním frekvenčním rozsahem na téže časové ose, pro spektrum, které zasahuje několik pásem.
Řetězec interference#
Pro signál s jednotkovým spektrem plochy G_s a rušičku s jednotkovým spektrem výkonu G_j je koeficient spektrální separace (SSC) přes pásmo přijímače B roven κ = ∫_B G_s(f) G_j(f) df a efektivní poměr nosné k hustotě šumu při několika rušičkách je
(C/N₀)_eff = [ 1/(C/N₀) + Σ_j (J/S)_j · κ_j ]⁻¹
(Betz 2001; Kaplan & Hegarty, Understanding GPS/GNSS, 3. vyd., §9,4). Pro jednu rušičku je to přesně rovnice protirušení druhu jamming s Q = 1/(R_c κ); blok jamming_kind_cross_check ve zprávě spouští vlastní funkce druhu jamming nad týmiž vstupy spoje a vypisuje rozdíl, který je při zaokrouhlení nulový.
Zpráva také vypisuje C/N₀, které dává druh jamming se svou tabulkou Q. Tabulka obsahuje učebnicové hodnoty, v testech zafixované na uzavřené tvary:
- CW a úzkopásmový:
Q = 1. Tón CW na nosné C/A máκ = T_c, takžeQ = 1, a tabulka a spektra se shodují. V přibaleném příkladu tón dává z obou 17,98 dB-Hz (tabulka dávala 19,74, když obsahovala 1,5). - Širokopásmový a přelaďovaný:
Q = 2, od 0,36. To je bílý šum přes hlavní lalok s výkonem signálu v pásmu normalizovaným na jedničku,κ = 1/(2R_c). Tabulka do 0,36 obsahovala 1, asi o 3 dB pesimističtěji (xval/jammer-q/PREREGISTRATION.md).
Model spektra odvozuje své vlastní hodnoty ze spekter:
Q = 1.5pro šum přizpůsobený C/A (κ = 2/(3R_c));Q = 2.2pro plochý šum od nuly k nule bez normalizace (2/0.9028).
U těchto rušiček se tedy dvě vypsané hodnoty C/N₀ stále liší, záměrně.
Každá buňka waterfallu je PSD zprůměrovaná přes svůj frekvenční bin a svůj řádek. Chirp se průměruje přesně přes řádek, celé přeladění plus částečné; rušička zapínající či vypínající se uprostřed řádku je vážena svým pracovním cyklem. Časová osa C/N₀ používá tytéž průměry, takže obraz a čísla souhlasí. Pro každé pásmo časová osa uvádí J/S v pásmu (výkon rušičky uvnitř šířky pásma přijímače ku výkonu signálu). Pro každou rušičku a pásmo zpráva uvádí SSC, Q, celkové J/S, J/S v pásmu a ustálené C/N₀.
Přibalený příklad#
scenarios/l-band-waterfall-jamming.toml: časová osa 60 s, jeden řádek za sekundu, anténa 290 K a šumové číslo 2 dB (podlaha −201,98 dBW/Hz).
- 10 s až 40 s: chirp 16 MHz kolem L1, přeladění po 9 µs, 50 mW na 100 m.
- Od 30 s: tón CW na nosné L1, 10 mW na 1 km.
- Od 45 s: plochý šum 2 MHz na L2 přijímaný při −135 dBW.
Co běh počítá:
| Pásmo | Nominální C/N₀ | Minimální C/N₀ | První ztráta | Sledované řádky |
|---|---|---|---|---|
| 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 | nikdy | 100 % |
| gps-l5 | 44,08 dB-Hz | 44,08 dB-Hz | nikdy | 100 % |
| galileo-e5a | 46,73 dB-Hz | 46,73 dB-Hz | nikdy | 100 % |
Tón CW je důvod, proč se dva signály L1 v 40 s rozcházejí. Dopadá na vrchol spektra C/A a drží C/A na 17,98 dB-Hz, pod prahem 25 dB-Hz. Dopadá do nuly spektra MBOC, takže Galileo E1 se po skončení chirpu vrací na nominální C/N₀.
Samotné signály leží asi 20 dB pod šumovou podlahou, takže waterfall ukazuje podlahu a rušičky; sloupce C/N₀ ukazují, co zpětné rozprostření obnoví.
Tytéž rušičky řídí řetězenou misi v scenarios/campaign-spectrum-holdover-integrity.toml (viz CAMPAIGNS.md): hodiny drží čas (holdover), dokud chirp běží, a přijímač se pod tónem CW vrací k Galileo E1.
Mimo pásmo L#
scenarios/multi-band-jamming-waterfall.toml umísťuje signály určování polohy, navigace a času (PNT) na LEO ve čtyřech pásmech vedle GPS L1 C/A a Galileo E5a, každé pásmo s vlastní rušičkou, na časové ose 60 s. Waterfall [grid] je pásmo L; tři [[panels]] přidávají UHF (455 až 475 MHz), S (2482 až 2502 MHz) a C (5005 až 5035 MHz).
- 10 s: tón CW na nosné UHF, přijímaný při −120 dBW.
- 20 s: chirp z příkladu pásma L (16 MHz kolem L1, přeladění po 9 µs, 50 mW na 100 m).
- 30 s: širokopásmový šum, 40 MHz kolem 1185 MHz, −118 dBW.
- 40 s: úzkopásmový šum, 2 MHz na nosné S, −128 dBW.
- 50 s: šum přizpůsobený vlastnímu spektru signálu pásma C, −124 dBW.
Co běh počítá (C/N₀ navržených signálů je C/N₀ sledované složky, takže nominální hodnota leží pod celkovým přijímaným výkonem o sledovaný podíl):
| Pásmo | Signál | Nosná | Nominální C/N₀ | Minimální C/N₀ | Sledované řádky |
|---|---|---|---|---|---|
| generic-uhf | reprezentativní, BPSK(5), −150 dBW | 465 MHz | 49,41 dB-Hz | 34,38 dB-Hz | 100 % |
| gps-l1ca | minimum specifikace | 1575,42 MHz | 43,48 dB-Hz | 3,38 dB-Hz | 33 % |
| galileo-e5a | minimum specifikace | 1176,45 MHz | 46,73 dB-Hz | 38,51 dB-Hz | 100 % |
| xona-x5 | publikovaný návrh, −144,9 dBW | 1190,51625 MHz | 54,51 dB-Hz | 46,29 dB-Hz | 100 % |
| generic-s | reprezentativní, BPSK(5), −150 dBW | 2492,028 MHz | 49,23 dB-Hz | 41,69 dB-Hz | 100 % |
| generic-c-band-leo | reprezentativní, BPSK(10), −152 dBW | 5020 MHz | 47,41 dB-Hz | 40,35 dB-Hz | 100 % |
Jen chirp odebírá signál (GPS L1 C/A, od 20 s). Každá další rušička zhoršuje jen pásmo, kam až její spektrum sahá: šum přizpůsobený pásmu C má například SSC −71,87 dB/Hz se signálem pásma C a pod −133 dB/Hz s každým jiným pásmem.
Tentýž mechanismus pohání scénáře odolnosti LEO-PNT (LEO-PNT.md):
scenarios/leo-resilience-js-margin.tomlzvyšuje jednu zahlcovací rušičku 40 MHz na 1185 MHz po 5 dB každých 10 s od −125 dBW. GPS L5 je ztracen na kroku −105 dBW, Galileo E5a při −100 dBW a Xona X5 při −95 dBW, zatímco reprezentativní signál LEO v pásmu L přijímaný při −135 dBW stále sleduje při −90 dBW: přijímaný výkon kupuje rezervu J/S dB za dB.scenarios/leo-resilience-multiband-diversity.tomlje kampaňový průchod běhemspectrumpřes výkon zahlcení v pásmu L5 (CAMPAIGNS.md).scenarios/leo-resilience-gnss-jammed-leo-carries.tomlje řetězená kampaň, jejíž fáze čtou C/N₀ GNSS a LEO z běhůspectrum, s panely pásem S a C.
IQ, SigMF a Welch#
[iq] vykreslí model v jednom okamžiku jako komplexní vzorky v fázi a kvadratuře (IQ), zapíše je jako záznam SigMF (cf32_le nebo ci16_le), záznam načte zpět a odhadne jeho PSD Welchovou metodou (okno Hann, překryv 50 %, zprůměrované periodogramy, škálované na hustotu). Tepelný šum, signály a rušičky podobné šumu se kreslí po binech z vlastní hustoty modelu; tón a chirp se kreslí jako skutečné průběhy. Pouze s rušičkami podobnými šumu leží odhad Welch do 0,1 dB od modelu (medián). Periodický chirp je čárové spektrum na své rychlosti přeladění, s zvlněním a ocasy za okraji pásma, které hladký model vynechává: v přibaleném příkladu se celkový výkon shoduje do 0,02 % a mediánový bin se liší o 0,5 dB. Snímek je soubor zapsaný pro analýzu; nic se nevysílá a neovládá se žádný rádiový hardware.
[recording] (pouze nativní sestavení) čte skutečný záznam SigMF z meta_path (datový soubor je ve výchozím stavu stejný název s .sigmf-data), odhaduje jeho PSD a vypisuje je vedle modelu na frekvencích záznamu. Soubor SigMF nemá absolutní kalibraci výkonu, takže zpráva uvádí mediánový posun a tvar, nikoli úroveň.
V sestavení WebAssembly není čtení souborů dostupné; kshana::sigmf::read a kshana::spectrum::welch_psd pracují s bajty, které dodá stránka.
Důkazy#
| Tvrzení | Popisek | Orákulum |
|---|---|---|
| PSD signálů a SSC | VALIDATED | Hlavní lalok BPSK(n) 2n × 1,023 MHz od nuly k nule; laloky BOC(1 1) se středy v ±1,023 MHz (Betz 2001); SSC −61,86 / −64,87 / −67,88 dB/Hz pro C/A×C/A, BOC(1 1)×BOC(1 1), C/A×BOC(1 1) z jejich uzavřených tvarů podle Parsevala, hodnoty za publikovanými −61,8 / −64,8 / −67,8 dB/Hz; Q = 1 (CW) a 1,5 (přizpůsobený) (Kaplan & Hegarty §9,4); položky tabulky druhu jamming se rovnají uzavřeným tvarům: CW a úzkopásmový Q = 1, širokopásmový a přelaďovaný Q = 2 (bílý šum přes hlavní lalok, výkon v pásmu normalizován; 1 do 0,36) |
| Waterfall, J/S a časová osa C/N₀ | MODELLED | Přesně se redukuje na řetězec druhu jamming; výkony rušiček, časová osa a šířky pásma jsou vstupy |
| Kodek SigMF a odhad Welch | MODELLED | Zpáteční převody, přímá diskrétní Fourierova transformace, identity bílého šumu a Parsevalova; v repozitáři není žádný záznam třetí strany |
| Vícepásmový waterfall s navrženými signály a rušičkami pro jednotlivá pásma | MODELLED | Redukuje se na řetězec pásma L (jednosložkové pásmo dává stejná čísla jako před rozšířením) a na validovaná spektra signálů; navržené signály, rušičky a šířky pásma jsou vstupy |
Jedna oprava obvyklé zkratky: laloky spektra BOC(1 1) jsou vycentrovány v ±1,023 MHz (mezi nulou nosné a nulou při 2,046 MHz), ale maximum PSD je v ±0,759 MHz, kde tan y = 2y s y = πf/(2R_c). Testy zafixují obojí.
Nemodelováno#
- Čárová struktura rozprostíracího kódu (čáry 1 kHz u C/A): tón se hodnotí proti hladké obálce, nikoli proti nejbližší čáře kódu.
- Automatické řízení zisku, kvantování, potlačení pulzů a notch filtrace.
- Směrová charakteristika přijímací antény směrem k rušičce nad rámec jednoho údaje o zisku.
- Interference vícenásobného přístupu mezi družicemi jednoho pásma.
- Emise navrženého signálu mimo jeho vysílací pásmo: jeho spektrum je tam ořezáno, takže žádná emise mimo pásmo nedosáhne sousedního pásma.
- Vliv chirpu na smyčku při rychlostech přeladění srovnatelných se šířkou pásma smyčky: jeho C/N₀ používá spektrum průměrované po řádcích.
Reference#
- J. W. Betz, „Binary Offset Carrier Modulations for Radionavigation“, NAVIGATION 48(4), 2001.
- E. D. Kaplan a C. J. Hegarty (eds.), Understanding GPS/GNSS: Principles and Applications, 3. vyd., Artech House, 2017, §9,4.
- G. W. Hein a kol., „MBOC: The New Optimized Spreading Modulation Recommended for Galileo L1 OS and GPS L1C“, Inside GNSS, květen/červen 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.
- Specifikace SigMF, https://sigmf.org/ (zdroj: https://github.com/sigmf/SigMF).