Tłumaczenie maszynowe, niezweryfikowane przez osobę, dla której polski jest językiem ojczystym. Wzorcem jest wersja angielska.

Integralność i zakłóceniaEdytuj na GitHubieŹródło: docs/SPECTRUM.md

Model widma i waterfall

Rodzaj scenariusza spectrum buduje pasmo L globalnych systemów nawigacji satelitarnej (GNSS) oraz każde inne pasmo zajmowane przez zaprojektowany sygnał (ultrawysokie częstotliwości (UHF), pasmo S, pasmo C) jako jedną widmową gęstość mocy (PSD), pozwala jej zmieniać się według skryptowej osi czasu zagłuszacza i sprowadza ją do tego, na czym zależy pętli śledzącej: stosunku zagłuszacza do sygnału (J/S) i efektywnego stosunku nośnej do gęstości szumu (C/N₀) w każdym paśmie. Rysuje wynik jako waterfall (częstotliwość w poprzek, czas w dół, kolor jako moc) obok słupków C/N₀ dla poszczególnych pasm oraz czyta i zapisuje nagrania Signal Metadata Format (SigMF), tak aby rzeczywiste przechwycenie można było oszacować i wykreślić obok modelu.

Zapisz dołączony przykład do pliku i uruchom go:

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

W repozytorium roboczym kshana scenarios/l-band-waterfall-jamming.toml uruchamia ten sam plik.

Kod: src/spectrum.rs (model, rodzaj, estymator Welcha), src/sigmf.rs (kodek nagrań), src/navsignal.rs (widma sygnałów o jednostkowym polu i współczynnik separacji widmowej) oraz src/leo_signal.rs (ustawienia wstępne projektu sygnału, które pasmo może nazwać).

Co jest modelowane#

Pasmo Nośna Modulacja Domyślna moc odbierana Domyślna szerokość pasma odbiornika
gps-l1ca 1575,42 MHz binarne kluczowanie fazy, BPSK(1) −158,5 dBW (IS-GPS-200) 2,046 MHz
galileo-e1 1575,42 MHz multipleksowana binarna nośna przesunięta, MBOC(6,1,1/11), lub binarna nośna przesunięta 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) (kody CM i CL multipleksowane w czasie) −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 to kod zgrubny/akwizycyjny; L2C to cywilny sygnał L2; IS-GPS-200 i IS-GPS-705 to specyfikacje interfejsu GPS; Galileo OS SIS ICD to Galileo Open Service Signal-in-Space Interface Control Document. Moce odbierane to minima ze specyfikacji; szerokości pasma są wyborami modelowymi. Oba parametry można nadpisać dla każdego pasma. Bez tabeli [[bands]] przebieg używa tych pięciu. GLONASS G1/G2, BeiDou B1/B2 i Galileo E6 nie należą do pasm nazwanych.

Wpis [[bands]] przyjmuje jedną z trzech postaci:

  • nazwa z powyższej tabeli, z opcjonalnymi signal_power_dbw, rx_bandwidth_mhz oraz, dla galileo-e1, modulation = "boc11";
  • signal = "<preset>": sygnał niskiej orbity okołoziemskiej (LEO) lub reprezentatywny projekt sygnału z biblioteki ustawień wstępnych rodzaju leo-signal (LEO-SIGNAL.md), w dowolnym paśmie, rysowany ze wszystkimi składowymi (akwizycyjną, danych, pilotową, podnośnymi z podziałem częstotliwości) i ograniczony do pasma nadawania; C/N₀ i J/S odnosi się do składowej śledzonej, a name tylko ją oznacza. Ustawienia wstępne to xona-x1, xona-x5, iridium-stl, starlink-ku-beacon, centispace-l1, centispace-l5, generic-c-band-leo, generic-uhf, generic-l, generic-s, generic-c i generic-c-wide;
  • pasmo własne: dowolne name z centre_mhz, modulation (BPSK(n), BOC(m,n) lub MBOC(6,1,p)) i signal_power_dbw.

Zagłuszacze ([[jammers]]) przyjmują waveform:

  • cw — ton fali ciągłej (CW) przy centre_mhz;
  • narrowband — płaski szum w bandwidth_mhz;
  • wideband — płaski szum w szerokim bandwidth_mhz (zagłuszacz zaporowy): ta sama gęstość co narrowband, nazwany osobno, ponieważ rodzaj jamming ocenia go jako szerokopasmowy;
  • chirp — liniowe przemiatanie piłokształtne o szerokości bandwidth_mhz co sweep_period_us;
  • matched — szum szerokopasmowy, którego widmo jest własną modulacją pasma matched_to.

Każdy podaje albo received_power_dbw, albo równoważną moc promieniowaną izotropowo eirp_dbw z range_m (i opcjonalnie rx_gain_dbi), co przechodzi przez tłumienie w wolnej przestrzeni rodzaju jamming. on_s i off_s skryptują oś czasu.

Odbiornik ([receiver]) ustala poziom szumu, N₀ = k·T_sys przy T_sys = T_ant + 290 K × (F − 1) dla temperatury anteny T_ant i współczynnika szumów F, oraz próg śledzenia.

Główny waterfall obejmuje [grid] (domyślnie od 1160 do 1590 MHz w 430 przedziałach). Każdy wpis [[panels]] (name, f_min_mhz, f_max_mhz, n_freq, domyślnie 200 przedziałów) dodaje kolejny waterfall dla własnego zakresu częstotliwości na tej samej osi czasu, dla widma obejmującego kilka pasm.

Łańcuch zakłóceń#

Dla sygnału o widmie jednostkowego pola G_s i zagłuszacza o widmie jednostkowej mocy G_j współczynnik separacji widmowej (SSC) w paśmie odbiornika B wynosi κ = ∫_B G_s(f) G_j(f) df, a efektywna gęstość nośnej do szumu przy kilku zagłuszaczach jest równa

(C/N₀)_eff = [ 1/(C/N₀) + Σ_j (J/S)_j · κ_j ]⁻¹

(Betz 2001; Kaplan i Hegarty, Understanding GPS/GNSS, wyd. 3, §9,4). Dla jednego zagłuszacza jest to dokładnie równanie przeciwzagłuszeniowe rodzaju jamming z Q = 1/(R_c κ); blok jamming_kind_cross_check w raporcie uruchamia własne funkcje rodzaju jamming na tych samych danych łącza i drukuje różnicę, która z dokładnością do zaokrąglenia wynosi zero.

Raport drukuje też C/N₀, które rodzaj jamming podaje ze swoją tabelą Q. Tabela zawiera wartości podręcznikowe, w testach przypięte do postaci zamkniętych:

  • CW i wąskopasmowy: Q = 1. Ton CW na nośnej C/A ma κ = T_c, więc Q = 1, a tabela i widma są zgodne. W dołączonym przykładzie ton daje w obu przypadkach 17,98 dB-Hz (tabela dawała 19,74, gdy zawierała 1,5).
  • Szerokopasmowy i przemiatany: Q = 2, od 0,36. Jest to szum biały nad listkiem głównym z mocą sygnału w paśmie znormalizowaną do jedności, κ = 1/(2R_c). Tabela zawierała 1 aż do wersji 0,36, około 3 dB zbyt pesymistycznie (xval/jammer-q/PREREGISTRATION.md).

Model widma wyprowadza własne wartości z widm:

  • Q = 1.5 dla szumu dopasowanego do C/A (κ = 2/(3R_c));
  • Q = 2.2 dla płaskiego szumu od zera do zera bez normalizacji (2/0.9028).

Zatem dla tych zagłuszaczy dwie drukowane wartości C/N₀ nadal się różnią, zgodnie z założeniem.

Każda komórka waterfall to PSD uśredniona po swoim przedziale częstotliwości i swoim wierszu. Chirp jest uśredniany dokładnie po wierszu, pełne przemiatania plus częściowe; zagłuszacz włączający się lub wyłączający w środku wiersza jest ważony swoim współczynnikiem wypełnienia. Oś czasu C/N₀ używa tych samych średnich, więc obraz i liczby są zgodne. Dla każdego pasma oś czasu podaje J/S w paśmie (moc zagłuszacza w szerokości pasma odbiornika do mocy sygnału). Dla każdego zagłuszacza i pasma raport podaje SSC, Q, całkowite J/S, J/S w paśmie i ustalone C/N₀.

Dołączony przykład#

scenarios/l-band-waterfall-jamming.toml: oś czasu 60 s, jeden wiersz na sekundę, antena 290 K i współczynnik szumów 2 dB (poziom −201,98 dBW/Hz).

  • od 10 s do 40 s: chirp 16 MHz wokół L1, przemiatania 9 µs, 50 mW przy 100 m.
  • Od 30 s: ton CW na nośnej L1, 10 mW przy 1 km.
  • Od 45 s: płaski szum 2 MHz na L2 odbierany z mocą −135 dBW.

Co oblicza przebieg:

Pasmo Nominalne C/N₀ Minimalne C/N₀ Pierwsza utrata Wiersze ze śledzeniem
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 nigdy 100 %
gps-l5 44,08 dB-Hz 44,08 dB-Hz nigdy 100 %
galileo-e5a 46,73 dB-Hz 46,73 dB-Hz nigdy 100 %

Ton CW jest powodem, dla którego dwa sygnały L1 rozchodzą się przy 40 s. Trafia w szczyt widma C/A i utrzymuje C/A na 17,98 dB-Hz, poniżej progu 25 dB-Hz. Trafia w zero widma MBOC, więc Galileo E1 wraca do nominalnego C/N₀, gdy chirp ustaje.

Same sygnały leżą około 20 dB poniżej poziomu szumu, więc waterfall pokazuje poziom szumu i zagłuszacze; słupki C/N₀ pokazują, co odzyskuje rozproszenie widma.

Te same zagłuszacze napędzają łańcuchową misję w scenarios/campaign-spectrum-holdover-integrity.toml (zob. CAMPAIGNS.md): zegar pracuje w holdover, gdy chirp jest włączony, a odbiornik przechodzi na Galileo E1 pod tonem CW.

Poza pasmem L#

scenarios/multi-band-jamming-waterfall.toml umieszcza sygnały pozycjonowania, nawigacji i czasu (PNT) LEO w czterech pasmach obok GPS L1 C/A i Galileo E5a, każde pasmo z własnym zagłuszaczem, na osi czasu 60 s. Waterfall [grid] to pasmo L; trzy [[panels]] dodają UHF (od 455 do 475 MHz), S (od 2482 do 2502 MHz) i C (od 5005 do 5035 MHz).

  • 10 s: ton CW na nośnej UHF, odbierany z mocą −120 dBW.
  • 20 s: chirp z przykładu pasma L (16 MHz wokół L1, przemiatania 9 µs, 50 mW przy 100 m).
  • 30 s: szum szerokopasmowy, 40 MHz wokół 1185 MHz, −118 dBW.
  • 40 s: szum wąskopasmowy, 2 MHz na nośnej S, −128 dBW.
  • 50 s: szum dopasowany do własnego widma sygnału pasma C, −124 dBW.

Co oblicza przebieg (C/N₀ zaprojektowanych sygnałów dotyczy składowej śledzonej, więc wartość nominalna leży poniżej całkowitej mocy odbieranej o udział składowej śledzonej):

Pasmo Sygnał Nośna Nominalne C/N₀ Minimalne C/N₀ Wiersze ze śledzeniem
generic-uhf reprezentatywny, BPSK(5), −150 dBW 465 MHz 49,41 dB-Hz 34,38 dB-Hz 100 %
gps-l1ca minimum ze specyfikacji 1575,42 MHz 43,48 dB-Hz 3,38 dB-Hz 33 %
galileo-e5a minimum ze specyfikacji 1176,45 MHz 46,73 dB-Hz 38,51 dB-Hz 100 %
xona-x5 opublikowany projekt, −144,9 dBW 1190,51625 MHz 54,51 dB-Hz 46,29 dB-Hz 100 %
generic-s reprezentatywny, BPSK(5), −150 dBW 2492,028 MHz 49,23 dB-Hz 41,69 dB-Hz 100 %
generic-c-band-leo reprezentatywny, BPSK(10), −152 dBW 5020 MHz 47,41 dB-Hz 40,35 dB-Hz 100 %

Tylko chirp zabiera sygnał (GPS L1 C/A, od 20 s). Każdy inny zagłuszacz pogarsza tylko pasmo, do którego sięga jego widmo: na przykład szum dopasowany w paśmie C ma SSC równy −71,87 dB/Hz z sygnałem pasma C i poniżej −133 dB/Hz z każdym innym pasmem.

Ten sam mechanizm napędza scenariusze odporności LEO-PNT (LEO-PNT.md):

  • scenarios/leo-resilience-js-margin.toml zwiększa jeden zagłuszacz zaporowy 40 MHz przy 1185 MHz o 5 dB co 10 s, zaczynając od −125 dBW. GPS L5 zostaje utracony na stopniu −105 dBW, Galileo E5a przy −100 dBW i Xona X5 przy −95 dBW, podczas gdy reprezentatywny sygnał LEO w paśmie L odbierany z mocą −135 dBW nadal jest śledzony przy −90 dBW: moc odbierana kupuje zapas J/S dB za dB.
  • scenarios/leo-resilience-multiband-diversity.toml to przemiatanie kampanii przebiegu spectrum po mocy zaporowego zagłuszacza pasma L5 (CAMPAIGNS.md).
  • scenarios/leo-resilience-gnss-jammed-leo-carries.toml to kampania łańcuchowa, której fazy czytają C/N₀ GNSS i LEO z przebiegów spectrum, z panelami pasm S i C.

IQ, SigMF i Welch#

[iq] rysuje model w jednej chwili jako zespolone próbki fazy i kwadratury (IQ), zapisuje je jako nagranie SigMF (cf32_le lub ci16_le), odczytuje nagranie i szacuje jego PSD metodą Welcha (okno Hanna, nakładanie 50 %, uśrednione periodogramy, skalowanie na gęstość). Szum termiczny, sygnały i zagłuszacze podobne do szumu są rysowane przedział po przedziale z własnej gęstości modelu; ton i chirp są rysowane jako rzeczywiste przebiegi. Przy samych zagłuszaczach podobnych do szumu oszacowanie Welcha mieści się w 0,1 dB od modelu (mediana). Okresowy chirp jest widmem prążkowym przy swojej szybkości przemiatania, z falowaniem i ogonami poza krawędziami pasma, które gładki model pomija: w dołączonym przykładzie moc całkowita zgadza się w granicach 0,02 %, a mediana przedziału różni się o 0,5 dB. Migawka to plik zapisany do analizy; nic nie jest nadawane i żaden sprzęt radiowy nie jest sterowany.

[recording] (tylko kompilacje natywne) czyta rzeczywiste nagranie SigMF z meta_path (plik danych domyślnie ma ten sam rdzeń nazwy z .sigmf-data), szacuje jego PSD i drukuje je obok modelu przy częstotliwościach nagrania. Plik SigMF nie ma bezwzględnej kalibracji mocy, więc raport podaje medianę przesunięcia i kształt, a nie poziom.

W kompilacji WebAssembly odczyt plików jest niedostępny; kshana::sigmf::read i kshana::spectrum::welch_psd działają na bajtach dostarczonych przez stronę.

Dowody#

Twierdzenie Etykieta Wyrocznia
PSD sygnałów i SSC VALIDATED listek główny BPSK(n) 2n × 1,023 MHz od zera do zera; listki BOC(1 1) wyśrodkowane przy ±1,023 MHz (Betz 2001); SSC równe −61,86 / −64,87 / −67,88 dB/Hz dla C/A×C/A, BOC(1 1)×BOC(1 1), C/A×BOC(1 1) z ich postaci zamkniętych Parsevala, wartości stojące za opublikowanymi −61,8 / −64,8 / −67,8 dB/Hz; Q = 1 (CW) i 1,5 (dopasowany) (Kaplan i Hegarty §9,4); wpisy tabeli rodzaju jamming są równe postaciom zamkniętym: CW i wąskopasmowy Q = 1, szerokopasmowy i przemiatany Q = 2 (szum biały nad listkiem głównym, moc w paśmie znormalizowana; 1 aż do wersji 0,36)
Waterfall, oś czasu J/S i C/N₀ MODELLED Sprowadza się dokładnie do łańcucha rodzaju jamming; moce zagłuszaczy, oś czasu i szerokości pasma są danymi wejściowymi
Kodek SigMF i oszacowanie Welcha MODELLED Przejścia w obie strony, bezpośrednia dyskretna transformata Fouriera, tożsamości szumu białego i Parsevala; w repozytorium nie ma nagrania osoby trzeciej
Waterfall wielopasmowy z zaprojektowanymi sygnałami i zagłuszaczami dla każdego pasma MODELLED Sprowadza się do łańcucha pasma L (pasmo z jedną składową daje te same liczby co przed rozszerzeniem) oraz do widm sygnałów sprawdzonych względem niezależnego wzorca; zaprojektowane sygnały, zagłuszacze i szerokości pasma są danymi wejściowymi

Jedna korekta powszechnego skrótu myślowego: listki widma BOC(1 1) są wyśrodkowane przy ±1,023 MHz (między zerem nośnej a zerem przy 2,046 MHz), ale maksimum PSD leży przy ±0,759 MHz, gdzie tan y = 2y z y = πf/(2R_c). Testy przypinają oba.

Niemodelowane#

  • Struktura prążków kodu rozpraszającego (prążki 1 kHz kodu C/A): ton jest oceniany względem gładkiej obwiedni, a nie najbliższego prążka kodu.
  • Automatyczna regulacja wzmocnienia, kwantyzacja, wygaszanie impulsów i filtracja wycinająca.
  • Charakterystyka anteny odbiorczej w kierunku zagłuszacza poza pojedynczą wartością wzmocnienia.
  • Zakłócenia wielodostępu między satelitami jednego pasma.
  • Emisje zaprojektowanego sygnału poza jego pasmem nadawania: jego widmo jest tam obcięte, więc żadna emisja poza pasmem nie sięga sąsiedniego pasma.
  • Wpływ chirpa na pętlę przy szybkościach przemiatania porównywalnych z szerokością pasma pętli: jego C/N₀ używa widma uśrednionego po wierszu.

Bibliografia#

  • J. W. Betz, „Binary Offset Carrier Modulations for Radionavigation”, NAVIGATION 48(4), 2001.
  • E. D. Kaplan i C. J. Hegarty (red.), Understanding GPS/GNSS: Principles and Applications, wyd. 3, Artech House, 2017, §9,4.
  • G. W. Hein i in., „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.
  • Specyfikacja SigMF, https://sigmf.org/ (źródło: https://github.com/sigmf/SigMF).