Машинний переклад, не перевірений носієм мови. Еталоном є англійська версія.

Цілісність і завадиРедагувати на GitHubДжерело: docs/SPECTRUM.md

Модель спектра та водоспад

Тип сценарію spectrum будує L-діапазон глобальної навігаційної супутникової системи (GNSS) і будь-який інший діапазон, який займає спроєктований сигнал (ультрависока частота (UHF), S-діапазон, C-діапазон), як одну спектральну густину потужності (PSD), дає їй змінюватися за заданою часовою шкалою глушників і зводить її до того, що цікавить петлю відстеження: відношення потужності глушника до сигналу (J/S) і ефективне відношення несівної до густини шуму (C/N₀) кожного діапазону. Він малює результат як водоспад (частота впоперек, час донизу, колір для потужності) поруч зі стовпчиками C/N₀ для кожного діапазону, а також читає й записує записи Signal Metadata Format (SigMF), щоб реальний запис можна було оцінити й побудувати поруч із моделлю.

Запишіть вбудований приклад у файл і запустіть його:

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

У робочій копії (checkout) той самий файл запускає kshana scenarios/l-band-waterfall-jamming.toml.

Код: src/spectrum.rs (модель, тип, оцінювач Welch), src/sigmf.rs (кодек записів), src/navsignal.rs (спектри сигналів одиничної площі та коефіцієнт спектрального розділення) і src/leo_signal.rs (пресети проєктування сигналів, які може називати діапазон).

Що моделюється#

Діапазон Несівна Модуляція Типова потужність прийому Типова смуга приймача
gps-l1ca 1575,42 MHz двійкова фазова маніпуляція, BPSK(1) −158,5 dBW (IS-GPS-200) 2,046 MHz
galileo-e1 1575,42 MHz мультиплексована двійкова зміщена несівна, MBOC(6,1,1/11), або двійкова зміщена несівна 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 і CL з часовим мультиплексуванням) −160,0 dBW (IS-GPS-200) 2,046 MHz
gps-l5 1176,45 MHz BPSK(10) −157,9 dBW (IS-GPS-705) 20,46 МГц
galileo-e5a 1176,45 MHz BPSK(10) −155,25 dBW (Galileo OS SIS ICD Issue 2,1, Table 12) 20,46 МГц

GPS (глобальна система позиціонування) L1 C/A — це код грубого захоплення (coarse/acquisition); L2C — цивільний сигнал L2; IS-GPS-200 та IS-GPS-705 — інтерфейсні специфікації GPS; Galileo OS SIS ICD — Galileo Open Service Signal-in-Space Interface Control Document. Потужності прийому — це мінімуми за специфікаціями; смуги — вибір моделювання. Обидва значення можна перевизначити для кожного діапазону. Без таблиці [[bands]] прогін використовує ці п'ять. GLONASS G1/G2, BeiDou B1/B2 і Galileo E6 серед іменованих діапазонів відсутні.

Запис [[bands]] має одну з трьох форм:

  • назва з наведеної вище таблиці з необов'язковими signal_power_dbw, rx_bandwidth_mhz і, для galileo-e1, modulation = "boc11";
  • signal = "<preset>": сигнал низької навколоземної орбіти (LEO) або репрезентативний проєкт сигналу з бібліотеки пресетів типу leo-signal (LEO-SIGNAL.md) у будь-якому діапазоні, який малюється з усіма компонентами (захоплення, дані, пілот, піднесучі з частотним розділенням) і обмежується смугою передавання; C/N₀ і J/S відносяться до відстежуваної компоненти, а name лише її позначає. Пресети: 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 і generic-c-wide;
  • власний діапазон: будь-яке name із centre_mhz, modulation (BPSK(n), BOC(m,n) або MBOC(6,1,p)) і signal_power_dbw.

Глушники ([[jammers]]) приймають waveform:

  • cw — тон безперервної хвилі (CW) на centre_mhz;
  • narrowband — плоский шум у межах bandwidth_mhz;
  • wideband — плоский шум у широкій смузі bandwidth_mhz (загороджувальний глушник): та сама густина, що й у narrowband, названий окремо, бо тип jamming оцінює його як широкосмуговий;
  • chirp — лінійне пилкоподібне розгортання bandwidth_mhz кожні sweep_period_us;
  • matched — широкосмуговий шум, спектр якого збігається з власною модуляцією діапазону matched_to.

Кожен задає або received_power_dbw, або ефективну ізотропно випромінювану потужність eirp_dbw з range_m (і за потреби rx_gain_dbi), що проходить через втрати на трасі у вільному просторі типу jamming. on_s і off_s задають часову шкалу.

Приймач ([receiver]) задає шумовий мінімум, N₀ = k·T_sys із T_sys = T_ant + 290 K × (F − 1) для температури антени T_ant і коефіцієнта шуму F, та поріг відстеження.

Головний водоспад охоплює [grid] (типово від 1160 до 1590 MHz у 430 комірках). Кожен запис [[panels]] (name, f_min_mhz, f_max_mhz, n_freq, типово 200 комірок) додає ще один водоспад у власному діапазоні частот на тій самій часовій шкалі, для спектра, що охоплює кілька діапазонів.

Ланцюг завад#

Для сигналу зі спектром одиничної площі G_s і глушника зі спектром одиничної потужності G_j коефіцієнт спектрального розділення (SSC) у смузі приймача B дорівнює κ = ∫_B G_s(f) G_j(f) df, а ефективне відношення несівної до густини шуму за кількох глушників становить

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

(Betz 2001; Kaplan & Hegarty, Understanding GPS/GNSS, 3-тє вид., §9,4). Для одного глушника це точно рівняння протиглушіння типу jamming з Q = 1/(R_c κ); блок jamming_kind_cross_check у звіті запускає власні функції типу jamming на тих самих вхідних даних лінії зв'язку й виводить різницю, яка дорівнює нулю з точністю до округлення.

Звіт також виводить C/N₀, яке дає тип jamming зі своєю таблицею Q. Таблиця містить підручникові значення, зафіксовані в тестах за замкненими формами:

  • CW і вузькосмуговий: Q = 1. Тон CW на несівній C/A має κ = T_c, тож Q = 1, і таблиця зі спектрами збігаються. У вбудованому прикладі тон дає 17,98 dB-Hz в обох випадках (таблиця давала 19,74, коли містила 1,5).
  • Широкосмуговий і розгорнутий: Q = 2, починаючи з 0,36. Це білий шум над головною пелюсткою з потужністю сигналу в смузі, нормованою до одиниці, κ = 1/(2R_c). До 0,36 таблиця містила 1, приблизно на 3 dB песимістичніше (xval/jammer-q/PREREGISTRATION.md).

Модель спектра виводить власні значення зі спектрів:

  • Q = 1.5 для шуму, узгодженого з C/A (κ = 2/(3R_c));
  • Q = 2.2 для плоского шуму від нуля до нуля без нормування (2/0.9028).

Тож для цих глушників два виведені значення C/N₀ усе ще відрізняються, за задумом.

Кожна комірка водоспаду — це PSD, усереднена за своєю частотною коміркою та рядком. Чирп усереднюється точно за рядком: цілі розгортання плюс неповне; глушник, що вмикається чи вимикається посеред рядка, зважується за своєю шпаруватістю. Часова шкала C/N₀ використовує ті самі усереднення, тож картинка й числа збігаються. Для кожного діапазону часова шкала подає J/S у смузі (потужність глушника всередині смуги приймача до потужності сигналу). Для кожного глушника й діапазону звіт подає SSC, Q, повне J/S, J/S у смузі та усталене C/N₀.

Вбудований приклад#

scenarios/l-band-waterfall-jamming.toml: часова шкала 60 s, один рядок на секунду, антена 290 K і коефіцієнт шуму 2 dB (мінімум −201,98 dBW/Hz).

  • від 10 s до 40 s: чирп 16 MHz навколо L1, розгортання 9 µs, 50 mW на 100 m.
  • Від 30 s: тон CW на несівній L1, 10 mW на 1 km.
  • Від 45 s: плоский шум 2 MHz на L2, що приймається при −135 dBW.

Що обчислює прогін:

Діапазон Номінальне C/N₀ Мінімальне C/N₀ Перша втрата Рядки відстеження
gps-l1ca 43,48 дБ-Гц 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 ніколи 100 %
gps-l5 44,08 dB-Hz 44,08 dB-Hz ніколи 100 %
galileo-e5a 46,73 дБ-Гц 46,73 дБ-Гц ніколи 100 %

Тон CW — причина, чому два сигнали L1 розходяться на 40 s. Він потрапляє на пік спектра C/A і тримає C/A на 17,98 dB-Hz, нижче порога 25 dB-Hz. Він потрапляє в нуль спектра MBOC, тож Galileo E1 повертається до свого номінального C/N₀, коли чирп припиняється.

Самі сигнали лежать приблизно на 20 dB нижче шумового мінімуму, тож водоспад показує мінімум і глушники; стовпчики C/N₀ показують, що відновлює зворотне розширення спектра (despreading).

Ті самі глушники керують ланцюговою місією в scenarios/campaign-spectrum-holdover-integrity.toml (див. CAMPAIGNS.md): годинник тримається в режимі holdover, поки діє чирп, а приймач переходить на Galileo E1 під тоном CW.

За межами L-діапазону#

scenarios/multi-band-jamming-waterfall.toml розміщує сигнали позиціонування, навігації та часу (PNT) LEO у чотирьох діапазонах поруч із GPS L1 C/A та Galileo E5a, кожен діапазон із власним глушником, на часовій шкалі 60 s. Водоспад [grid] — це L-діапазон; три [[panels]] додають UHF (від 455 до 475 MHz), S (від 2482 до 2502 MHz) і C (від 5005 до 5035 MHz).

  • 10 s: тон CW на несівній UHF, −120 dBW на прийомі.
  • 20 s: чирп з прикладу L-діапазону (16 MHz навколо L1, розгортання 9 µs, 50 mW на 100 m).
  • 30 s: широкосмуговий шум, 40 MHz навколо 1185 MHz, −118 dBW.
  • 40 s: вузькосмуговий шум, 2 MHz на несівній S, −128 dBW.
  • 50 s: шум, узгоджений із власним спектром сигналу C-діапазону, −124 dBW.

Що обчислює прогін (C/N₀ спроєктованих сигналів — це C/N₀ відстежуваної компоненти, тож номінальне значення лежить нижче за повну потужність прийому на частку відстежуваної компоненти):

Діапазон Сигнал Несівна Номінальне C/N₀ Мінімальне C/N₀ Рядки відстеження
generic-uhf репрезентативний, BPSK(5), −150 dBW 465 МГц 49,41 дБ-Гц 34,38 dB-Hz 100 %
gps-l1ca мінімум за специфікацією 1575,42 MHz 43,48 дБ-Гц 3,38 dB-Hz 33 %
galileo-e5a мінімум за специфікацією 1176,45 MHz 46,73 дБ-Гц 38,51 dB-Hz 100 %
xona-x5 опублікований проєкт, −144,9 dBW 1190,51625 MHz 54,51 дБ-Гц 46,29 dB-Hz 100 %
generic-s репрезентативний, BPSK(5), −150 dBW 2492,028 МГц 49,23 дБ-Гц 41,69 dB-Hz 100 %
generic-c-band-leo репрезентативний, BPSK(10), −152 dBW 5020 МГц 47,41 дБ-Гц 40,35 dB-Hz 100 %

Лише чирп забирає сигнал (GPS L1 C/A, від 20 s). Кожен інший глушник погіршує лише той діапазон, якого сягає його спектр: наприклад, узгоджений шум C-діапазону має SSC −71,87 dB/Hz із сигналом C-діапазону та нижче −133 dB/Hz з кожним іншим діапазоном.

Той самий механізм керує сценаріями стійкості LEO-PNT (LEO-PNT.md):

  • scenarios/leo-resilience-js-margin.toml кроком 5 dB кожні 10 s змінює один загороджувальний глушник 40 MHz на 1185 MHz, починаючи з −125 dBW. GPS L5 втрачається на кроці −105 dBW, Galileo E5a — на −100 dBW, а Xona X5 — на −95 dBW, тоді як репрезентативний сигнал LEO L-діапазону, що приймається при −135 dBW, ще відстежується при −90 dBW: потужність прийому купує запас за J/S децибел за децибел.
  • scenarios/leo-resilience-multiband-diversity.toml — це кампанія-перебір для прогону spectrum за потужністю загороджувача в діапазоні L5 (CAMPAIGNS.md).
  • scenarios/leo-resilience-gnss-jammed-leo-carries.toml — це ланцюгова кампанія, фази якої читають C/N₀ для GNSS і LEO з прогонів spectrum, з панелями S- і C-діапазонів.

IQ, SigMF і Welch#

[iq] малює модель в один момент як комплексні відліки синфазної та квадратурної складових (IQ), записує їх як запис SigMF (cf32_le або ci16_le), читає запис назад і оцінює його PSD методом Welch (вікно Ханна, 50 % перекриття, усереднені періодограми, масштабовані до густини). Тепловий шум, сигнали та шумоподібні глушники малюються комірка за коміркою з власної густини моделі; тон і чирп малюються як реальні сигнали. Лише з шумоподібними глушниками оцінка Welch лежить у межах 0,1 dB від моделі (медіана). Періодичний чирп — це лінійчастий спектр на частоті розгортання, з пульсацією та хвостами за межами смуги, яких гладка модель не має: у вбудованому прикладі повна потужність збігається в межах 0,02 %, а медіанна комірка відрізняється на 0,5 dB. Знімок — це файл, записаний для аналізу; нічого не передається, і жодне радіообладнання не керується.

[recording] (лише рідні збірки) читає реальний запис SigMF із meta_path (файл даних типово має ту саму основу імені з .sigmf-data), оцінює його PSD і виводить її поруч із моделлю на частотах запису. Файл SigMF не має абсолютного калібрування за потужністю, тому звіт подає медіанний зсув і форму, а не рівень.

У збірці WebAssembly читання файлів недоступне; kshana::sigmf::read і kshana::spectrum::welch_psd працюють із байтами, які надає сторінка.

Докази#

Твердження Позначка Оракул
PSD сигналів і SSC VALIDATED Головна пелюстка BPSK(n) 2n × 1,023 MHz від нуля до нуля; пелюстки BOC(1 1) із центрами на ±1,023 MHz (Betz 2001); SSC −61,86 / −64,87 / −67,88 dB/Hz для C/A×C/A, BOC(1 1)×BOC(1 1), C/A×BOC(1 1) за їхніми замкненими формами Парсеваля, значення, що стоять за опублікованими −61,8 / −64,8 / −67,8 dB/Hz; Q = 1 (CW) і 1,5 (узгоджений) (Kaplan & Hegarty §9,4); записи таблиці типу jamming дорівнюють замкненим формам: CW і вузькосмуговий Q = 1, широкосмуговий і розгорнутий Q = 2 (білий шум над головною пелюсткою, потужність у смузі нормована; 1 до 0,36)
Водоспад, J/S і часова шкала C/N₀ MODELLED Точно зводиться до ланцюга типу jamming; потужності глушників, часова шкала й смуги є вхідними даними
Кодек SigMF і оцінка Welch MODELLED Круговий обхід, пряме дискретне перетворення Фур'є, тотожності білого шуму та Парсеваля; у репозиторії немає стороннього запису
Багатодіапазонний водоспад зі спроєктованими сигналами та глушниками для кожного діапазону MODELLED Зводиться до ланцюга L-діапазону (одно-компонентний діапазон дає ті самі числа, що й до розширення) і до перевірених за еталоном спектрів сигналів; спроєктовані сигнали, глушники та смуги є вхідними даними

Одне уточнення до поширеного скорочення: пелюстки спектра BOC(1 1) зосереджені на ±1,023 MHz (між нулем несівної та нулем на 2,046 MHz), але максимум PSD припадає на ±0,759 MHz, де tan y = 2y із y = πf/(2R_c). Тести фіксують обидва значення.

Не моделюється#

  • Лінійчаста структура коду розширення (лінії 1 kHz у C/A): тон оцінюється за гладкою огинаючою, а не за найближчою лінією коду.
  • Автоматичне регулювання підсилення, квантування, пульсове гасіння та режекторна фільтрація.
  • Діаграма спрямованості приймальної антени в бік глушника поза межами одного значення підсилення.
  • Завади множинного доступу між супутниками одного діапазону.
  • Випромінювання спроєктованого сигналу поза його смугою передавання: там його спектр обрізається, тому позасмугове випромінювання не потрапляє в сусідній діапазон.
  • Вплив чирпа на петлю за швидкостей розгортання, співмірних зі смугою петлі: його C/N₀ використовує усереднений за рядком спектр.

Посилання#

  • J. W. Betz, «Binary Offset Carrier Modulations for Radionavigation», NAVIGATION 48(4), 2001.
  • E. D. Kaplan і C. J. Hegarty (ред.), Understanding GPS/GNSS: Principles and Applications, 3-тє вид., Artech House, 2017, §9,4.
  • G. W. Hein та ін., «MBOC: The New Optimized Spreading Modulation Recommended for Galileo L1 OS and GPS L1C», Inside GNSS, травень/червень 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, https://sigmf.org/ (джерельний код: https://github.com/sigmf/SigMF).