Spektrimalli ja vesiputouskaavio
Skenaariotyyppi spectrum rakentaa GNSS:n (Global Navigation Satellite System) L-kaistan ja minkä tahansa muun kaistan, jonka suunniteltu signaali varaa (UHF eli ultrakorkea taajuus, S-kaista, C-kaista), yhdeksi tehotiheysspektriksi (PSD), antaa sen muuttua skriptatun häirintälähetinaikajanan mukaan ja redusoi sen siihen, mikä seurantasilmukkaa kiinnostaa: häirintälähettimen ja signaalin suhteeseen (J/S) ja kunkin kaistan tehokkaaseen kantoaalto–kohinatiheyssuhteeseen (C/N₀). Se piirtää tuloksen vesiputouskaaviona (taajuus vaakaan, aika alas, väri tehoon) kaistakohtaisten C/N₀-pylväiden rinnalle, ja se lukee ja kirjoittaa Signal Metadata Format (SigMF) -tallenteita, jotta todellinen tallenne voidaan estimoida ja piirtää mallin rinnalle.
Kirjoita mukana toimitettu esimerkki tiedostoon ja aja se:
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
Kloonatussa työkopiossa kshana scenarios/l-band-waterfall-jamming.toml ajaa saman tiedoston.
Koodi: src/spectrum.rs (malli, tyyppi, Welch-estimaattori), src/sigmf.rs (tallennekoodekki), src/navsignal.rs (yksikköpinta-alaiset signaalispektrit ja spektrierotuskerroin) ja src/leo_signal.rs (signaalisuunnittelun esiasetukset, joihin kaista voi viitata).
Mitä mallinnetaan#
| Kaista | Kantoaalto | Modulaatio | Oletusvastaanottoteho | Oletusvastaanottimen kaistanleveys |
|---|---|---|---|---|
gps-l1ca |
1575,42 MHz | binäärinen vaihesiirtoavainnus, BPSK(1) | −158,5 dBW (IS-GPS-200) | 2,046 MHz |
galileo-e1 |
1575,42 MHz | multipleksattu binäärinen siirtokantoaalto, MBOC(6,1,1/11), tai binäärinen siirtokantoaalto BOC(1 1) | −157,25 dBW (Galileo OS SIS ICD Issue 2,1, Taulukko 12) | 14,322 MHz |
gps-l2c |
1227,60 MHz | BPSK(1) (CM- ja CL-koodit aikajakoisesti multipleksattuina) | −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, Taulukko 12) | 20,46 MHz |
GPS (Global Positioning System) L1 C/A on karkea hankintakoodi (coarse/acquisition); L2C on L2-siviilisignaali; IS-GPS-200 ja IS-GPS-705 ovat GPS:n rajapintamäärittelyjä; Galileo OS SIS ICD on Galileon Open Service Signal-in-Space Interface Control Document. Vastaanotetut tehot ovat määrittelyn minimiarvoja; kaistanleveydet ovat mallinnusvalintoja. Molemmat voi ohittaa kaistakohtaisesti. Ilman taulukkoa [[bands]] ajo käyttää näitä viittä. GLONASS G1/G2, BeiDou B1/B2 ja Galileo E6 eivät ole nimettyjen kaistojen joukossa.
Merkintä [[bands]] ottaa yhden kolmesta muodosta:
- nimi yllä olevasta taulukosta, valinnaisilla
signal_power_dbw,rx_bandwidth_mhzja kohteellegalileo-e1lisäksimodulation = "boc11"; signal = "<preset>": matalan Maan kiertoradan (LEO) tai edustava signaalisuunnittelu tyypinleo-signalesiasetuskirjastosta (LEO-SIGNAL.md), millä tahansa kaistalla, piirretty kaikkine komponentteineen (hankinta, data, pilotti, taajuusjakoiset alikantoaallot) ja rajattu lähetyskaistanleveyteensä; C/N₀ ja J/S viittaavat seurattuun komponenttiin, janamevain nimeää sen. Esiasetukset ovatxona-x1,xona-x5,iridium-stl,starlink-ku-beacon,centispace-l1,centispace-l5,generic-c-band-leo,generic-uhf,generic-l,generic-s,generic-cjageneric-c-wide;- oma kaista: mikä tahansa
namekentilläcentre_mhz,modulation(BPSK(n),BOC(m,n)taiMBOC(6,1,p)) jasignal_power_dbw.
Häirintälähettimet ([[jammers]]) ottavat kentän waveform:
cw— jatkuva-aaltoinen (CW) sävel taajuudellacentre_mhz;narrowband— tasainen kohina kaistanleveydelläbandwidth_mhz;wideband— tasainen kohina leveällä kaistallabandwidth_mhz(laajakaistainen peittohäirintälähetin): sama tiheys kuinnarrowband, nimetty erikseen, koska tyyppijammingpisteyttää sen laajakaistaiseksi;chirp— lineaarinen sahalaitapyyhkäisy, leveysbandwidth_mhz, pyyhkäisyjaksollasweep_period_us;matched— laajakaistainen kohina, jonka spektri on kaistanmatched_tooma modulaatio.
Kukin antaa joko received_power_dbw, tai efektiivisen isotrooppisesti säteilevän tehon eirp_dbw ja etäisyyden range_m (ja valinnaisesti rx_gain_dbi), joka kulkee tyypin jamming vapaan tilan etenemishäviön kautta. on_s ja off_s skriptaavat aikajanan.
Vastaanotin ([receiver]) asettaa kohinapohjan, N₀ = k·T_sys, kun T_sys = T_ant + 290 K × (F − 1) antennilämpötilalla T_ant ja kohinaluvulla F, sekä seurantakynnyksen.
Pääasiallinen vesiputouskaavio kattaa [grid] (oletus 1160–1590 MHz 430 lokerolla). Jokainen merkintä [[panels]] (name, f_min_mhz, f_max_mhz, n_freq, oletus 200 lokeroa) lisää toisen vesiputouskaavion omalla taajuusalueellaan samalla aikajanalla, spektrille, joka kattaa useita kaistoja.
Häiriöketju#
Signaalille, jonka yksikköpinta-alaspektri on G_s, ja häirintälähettimelle, jonka yksikkötehospektri on G_j, spektrierotuskerroin (SSC) vastaanottimen kaistalla B on κ = ∫_B G_s(f) G_j(f) df, ja tehokas kantoaalto–kohinatiheys usealla häirintälähettimellä on
(C/N₀)_eff = [ 1/(C/N₀) + Σ_j (J/S)_j · κ_j ]⁻¹
(Betz 2001; Kaplan & Hegarty, Understanding GPS/GNSS, 3. painos, §9,4). Yhdelle häirintälähettimelle tämä on täsmälleen tyypin jamming häirinnänestoyhtälö kertoimella Q = 1/(R_c κ); raportin lohko jamming_kind_cross_check ajaa tyypin jamming omat funktiot samoilla linkkisyötteillä ja tulostaa eron, joka on nolla pyöristyksen tarkkuudella.
Raportti tulostaa myös C/N₀-arvon, jonka tyyppi jamming antaa Q-taulukollaan. Taulukko sisältää oppikirja-arvot, jotka on lukittu testeissä suljettuihin muotoihin:
- CW ja kapeakaistainen:
Q = 1. C/A-kantoaallolla olevalla CW-sävelellä onκ = T_c, jotenQ = 1, ja taulukko ja spektrit ovat yhtä mieltä. Mukana toimitetussa esimerkissä sävel antaa 17,98 dB-Hz molemmista (taulukko antoi 19,74, kun siinä oli 1,5). - Laajakaistainen ja pyyhkäisty:
Q = 2, versiosta 0,36 lähtien. Se on valkoista kohinaa pääkeilan yli kaistan sisäisen signaalitehon normalisoituna yhteen,κ = 1/(2R_c). Taulukossa oli 1 versioon 0,36 asti, noin 3 dB pessimistinen (xval/jammer-q/PREREGISTRATION.md).
Spektrimalli johtaa omat arvonsa spektreistä:
Q = 1.5kohinalle, joka on sovitettu C/A:han (κ = 2/(3R_c));Q = 2.2tasaiselle kohinalle nollasta nollaan ilman normalisointia (2/0.9028).
Joten näille häirintälähettimille kaksi tulostettua C/N₀-arvoa eroavat edelleen, tarkoituksella.
Jokainen vesiputouskaavion solu on PSD keskiarvoistettuna taajuuslokeronsa ja rivinsä yli. Chirp keskiarvoistetaan täsmälleen rivin yli, kokonaiset pyyhkäisyt plus osittainen; rivin keskellä päälle tai pois kytkeytyvä häirintälähetin painotetaan sen käyttösuhteella. C/N₀-aikajana käyttää samoja keskiarvoja, joten kuva ja luvut ovat yhtä mieltä. Kaistaa kohti aikajana raportoi kaistan sisäisen J/S:n (vastaanottimen kaistanleveyden sisällä oleva häirintäteho jaettuna signaalitehoon). Häirintälähetintä ja kaistaa kohti raportti antaa SSC:n, Q, kokonais-J/S:n, kaistan sisäisen J/S:n ja vakaan C/N₀-arvon.
Mukana toimitettu esimerkki#
scenarios/l-band-waterfall-jamming.toml: 60 s aikajana, yksi rivi sekunnissa, 290 K antenni ja 2 dB kohinaluku (pohja −201,98 dBW/Hz).
- 10 s – 40 s: 16 MHz chirp L1:n ympärillä, 9 µs pyyhkäisyt, 50 mW etäisyydellä 100 m.
- Alkaen hetkestä 30 s: CW-sävel L1-kantoaallolla, 10 mW etäisyydellä 1 km.
- Alkaen hetkestä 45 s: tasainen 2 MHz kohina L2:lla vastaanotettuna tasolla −135 dBW.
Mitä ajo laskee:
| Kaista | Nimellinen C/N₀ | Pienin C/N₀ | Ensimmäinen menetys | Seurannassa olevat rivit |
|---|---|---|---|---|
| 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 | ei koskaan | 100 % |
| gps-l5 | 44,08 dB-Hz | 44,08 dB-Hz | ei koskaan | 100 % |
| galileo-e5a | 46,73 dB-Hz | 46,73 dB-Hz | ei koskaan | 100 % |
CW-sävel on syy siihen, että kaksi L1-signaalia eroavat toisistaan hetkellä 40 s. Se osuu C/A-spektrin huippuun ja pitää C/A:n tasolla 17,98 dB-Hz, kynnyksen 25 dB-Hz alapuolella. Se osuu MBOC-spektrin nollaan, joten Galileo E1 palaa nimelliseen C/N₀-arvoonsa, kun chirp loppuu.
Signaalit itse ovat noin 20 dB kohinapohjan alapuolella, joten vesiputouskaavio näyttää pohjan ja häirintälähettimet; C/N₀-pylväät näyttävät, mitä hajotuksen purku palauttaa.
Samat häirintälähettimet ohjaavat ketjutettua tehtävää tiedostossa scenarios/campaign-spectrum-holdover-integrity.toml (katso CAMPAIGNS.md): kello on holdover-tilassa, kun chirp on päällä, ja vastaanotin siirtyy Galileo E1:een CW-sävelen alla.
L-kaistan ulkopuolella#
scenarios/multi-band-jamming-waterfall.toml asettaa LEO-paikannus-, navigointi- ja ajoitussignaalit (PNT) neljälle kaistalle GPS L1 C/A:n ja Galileo E5a:n rinnalle, kullakin kaistalla oma häirintälähetin, 60 s aikajanalla. Vesiputouskaavio [grid] on L-kaista; kolme merkintää [[panels]] lisää UHF (455–475 MHz), S (2482–2502 MHz) ja C (5005–5035 MHz).
- Hetkellä 10 s: CW-sävel UHF-kantoaallolla, vastaanotettuna −120 dBW.
- Hetkellä 20 s: L-kaista-esimerkin chirp (16 MHz L1:n ympärillä, 9 µs pyyhkäisyt, 50 mW etäisyydellä 100 m).
- Hetkellä 30 s: laajakaistakohina, 40 MHz taajuuden 1185 MHz ympärillä, −118 dBW.
- Hetkellä 40 s: kapeakaistakohina, 2 MHz S-kantoaallolla, −128 dBW.
- Hetkellä 50 s: C-kaistan signaalin omaan spektriin sovitettu kohina, −124 dBW.
Mitä ajo laskee (suunniteltujen signaalien C/N₀ on seurattavan komponentin arvo, joten nimellisarvo on kokonaisvastaanottotehon alapuolella seurattavan osuuden verran):
| Kaista | Signaali | Kantoaalto | Nimellinen C/N₀ | Pienin C/N₀ | Seurannassa olevat rivit |
|---|---|---|---|---|---|
| generic-uhf | edustava, BPSK(5), −150 dBW | 465 MHz | 49,41 dB-Hz | 34,38 dB-Hz | 100 % |
| gps-l1ca | määrittelyn minimi | 1575,42 MHz | 43,48 dB-Hz | 3,38 dB-Hz | 33 % |
| galileo-e5a | määrittelyn minimi | 1176,45 MHz | 46,73 dB-Hz | 38,51 dB-Hz | 100 % |
| xona-x5 | julkaistu suunnitelma, −144,9 dBW | 1190,51625 MHz | 54,51 dB-Hz | 46,29 dB-Hz | 100 % |
| generic-s | edustava, BPSK(5), −150 dBW | 2492,028 MHz | 49,23 dB-Hz | 41,69 dB-Hz | 100 % |
| generic-c-band-leo | edustava, BPSK(10), −152 dBW | 5020 MHz | 47,41 dB-Hz | 40,35 dB-Hz | 100 % |
Vain chirp vie signaalin pois (GPS L1 C/A, hetkestä 20 s). Muut häirintälähettimet heikentävät vain kaistaa, jonka ne spektrinsä kautta tavoittavat: esimerkiksi C-kaistan sovitetun kohinan SSC on −71,87 dB/Hz C-kaistan signaalin kanssa ja alle −133 dB/Hz jokaisen muun kaistan kanssa.
Sama koneisto ohjaa LEO-PNT-kestävyysskenaarioita (LEO-PNT.md):
scenarios/leo-resilience-js-margin.tomlnostaa yhtä 40 MHz peittohäirintälähetintä taajuudella 1185 MHz 5 dB joka 10 s tasosta −125 dBW alkaen. GPS L5 menetetään askeleella −105 dBW, Galileo E5a tasolla −100 dBW ja Xona X5 tasolla −95 dBW, kun taas edustava LEO L-kaistan signaali, joka vastaanotetaan tasolla −135 dBW, seuraa yhä tasolla −90 dBW: vastaanotettu teho ostaa J/S-marginaalia desibeli desibeliltä.scenarios/leo-resilience-multiband-diversity.tomlon kampanjapyyhkäisy tyypinspectrumajosta L5-kaistan peittohäirinnän tehon yli (CAMPAIGNS.md).scenarios/leo-resilience-gnss-jammed-leo-carries.tomlon ketjutettu kampanja, jonka vaiheet lukevat GNSS- ja LEO-C/N₀-arvot tyypinspectrumajoista S- ja C-kaistan paneeleilla.
IQ, SigMF ja Welch#
Osio [iq] piirtää mallin yhdellä hetkellä kompleksisina vaihe- ja kvadratuurinäytteinä (IQ), kirjoittaa ne SigMF-tallenteeksi (cf32_le tai ci16_le), lukee tallenteen takaisin ja estimoi sen PSD:n Welchin menetelmällä (Hann-ikkuna, 50 % päällekkäisyys, keskiarvoistetut periodogrammit, tiheyteen skaalattu). Terminen kohina, signaalit ja kohinankaltaiset häirintälähettimet piirretään lokero kerrallaan mallin omasta tiheydestä; sävel ja chirp piirretään todellisina aaltomuotoina. Pelkillä kohinankaltaisilla häirintälähettimillä Welch-estimaatti on mallin lähellä, enintään 0,1 dB ero (mediaani). Jaksollinen chirp on viivaspektri pyyhkäisynopeudellaan, kaistareunojensa ohi ulottuvine väreineen ja häntineen, jotka tasainen malli jättää pois: mukana toimitetussa esimerkissä kokonaisteho täsmää 0,02 % sisällä, ja mediaanilokero eroaa 0,5 dB. Tilannekuva on analyysia varten kirjoitettu tiedosto; mitään ei lähetetä eikä radiolaitteistoa ohjata.
Osio [recording] (vain natiivit koontiversiot) lukee todellisen SigMF-tallenteen polusta meta_path (datatiedosto on oletuksena sama runko tunnisteella .sigmf-data), estimoi sen PSD:n ja tulostaa sen mallin rinnalle tallenteen taajuuksilla. SigMF-tiedostolla ei ole absoluuttista tehokalibrointia, joten raportti antaa mediaanipoikkeaman ja muodon, ei tasoa.
WebAssembly-koontiversiossa tiedostojen luku ei ole käytettävissä; kshana::sigmf::read ja kshana::spectrum::welch_psd toimivat sivun antamilla tavuilla.
Todisteet#
| Väite | Merkintä | Oraakkeli |
|---|---|---|
| Signaalien PSD:t ja SSC:t | VALIDATED | BPSK(n) pääkeila 2n × 1,023 MHz nollasta nollaan; BOC(1 1) -spektrin keilat keskitettyinä taajuuksille ±1,023 MHz (Betz 2001); SSC:t −61,86 / −64,87 / −67,88 dB/Hz kohteille C/A×C/A, BOC(1 1)×BOC(1 1), C/A×BOC(1 1) Parsevalin suljetuista muodoista, arvot julkaistujen −61,8 / −64,8 / −67,8 dB/Hz takana; Q = 1 (CW) ja 1,5 (sovitettu) (Kaplan & Hegarty §9,4); tyypin jamming taulukon arvot ovat yhtä suuria kuin suljetut muodot: CW ja kapeakaistainen Q = 1, laajakaistainen ja pyyhkäisty Q = 2 (valkoinen kohina pääkeilan yli, kaistan sisäinen teho normalisoitu; 1 versioon 0,36 asti) |
| Vesiputouskaavio, J/S ja C/N₀-aikajana | MODELLED | Supistuu täsmälleen tyypin jamming ketjuun; häirintälähettimien tehot, aikajana ja kaistanleveydet ovat syötteitä |
| SigMF-koodekki ja Welch-estimaatti | MODELLED | Edestakaiset ajot, suora diskreetti Fourier-muunnos, valkoisen kohinan ja Parsevalin identiteetit; repositoriossa ei ole kolmannen osapuolen tallennetta |
| Monikaistainen vesiputouskaavio suunnitelluilla signaaleilla ja kaistakohtaisilla häirintälähettimillä | MODELLED | Supistuu L-kaistan ketjuun (yhden komponentin kaista antaa samat luvut kuin ennen laajennusta) ja validoituihin signaalispektreihin; suunnitellut signaalit, häirintälähettimet ja kaistanleveydet ovat syötteitä |
Yksi korjaus yleiseen oikopolkuun: BOC(1 1) -spektrin keilat ovat keskitettyjä taajuuksille ±1,023 MHz (kantoaallon nollan ja nollan 2,046 MHz välissä), mutta PSD:n maksimi on taajuudella ±0,759 MHz, jossa tan y = 2y kun y = πf/(2R_c). Testit lukitsevat molemmat.
Ei mallinnettu#
- Hajotuskoodin viivarakenne (C/A:n 1 kHz viivat): sävel pisteytetään tasaista verhokäyrää vasten, ei lähintä koodiviivaa vasten.
- Automaattinen vahvistuksen säätö, kvantisointi, pulssinsammutus ja lovisuodatus.
- Vastaanottoantennin kuvio häirintälähettimen suuntaan yhtä vahvistuslukua tarkemmin.
- Monikäyttöhäiriö saman kaistan satelliittien välillä.
- Suunnitellun signaalin päästöt sen lähetyskaistanleveyden ulkopuolella: sen spektri typistetään siellä, joten mikään kaistan ulkopuolinen päästö ei yllä naapurikaistalle.
- Chirpin vaikutus silmukkaan pyyhkäisynopeuksilla, jotka ovat verrannollisia silmukan kaistanleveyteen: sen C/N₀ käyttää rivikeskiarvoistettua spektriä.
Lähteet#
- J. W. Betz, ”Binary Offset Carrier Modulations for Radionavigation,” NAVIGATION 48(4), 2001.
- E. D. Kaplan ja C. J. Hegarty (toim.), Understanding GPS/GNSS: Principles and Applications, 3. painos, Artech House, 2017, §9,4.
- G. W. Hein ym., ”MBOC: The New Optimized Spreading Modulation Recommended for Galileo L1 OS and GPS L1C,” Inside GNSS, touko/kesäkuu 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-määrittely, https://sigmf.org/ (lähde: https://github.com/sigmf/SigMF).