Машинный перевод, не проверенный носителем языка. Эталоном служит английская версия.

Целостность и помехиПравить на 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

В рабочей копии тот же файл запускает kshana scenarios/l-band-waterfall-jamming.toml.

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

Что моделируется#

Диапазон Несущая Модуляция Принимаемая мощность по умолчанию Полоса приёмника по умолчанию
gps-l1ca 1575,42 МГц двоичная фазовая манипуляция, BPSK(1) −158,5 дБВт (IS-GPS-200) 2,046 МГц
galileo-e1 1575,42 МГц мультиплексированная двоичная офсетная несущая, MBOC(6,1,1/11), или двоичная офсетная несущая BOC(1 1) −157,25 дБВт (Galileo OS SIS ICD Issue 2,1, Table 12) 14,322 МГц
gps-l2c 1227,60 МГц BPSK(1) (коды CM и CL с временным мультиплексированием) −160,0 дБВт (IS-GPS-200) 2,046 МГц
gps-l5 1176,45 МГц BPSK(10) −157,9 дБВт (IS-GPS-705) 20,46 МГц
galileo-e5a 1176,45 МГц BPSK(10) −155,25 дБВт (Galileo OS SIS ICD Issue 2,1, Table 12) 20,46 МГц

GPS (глобальная система позиционирования) L1 C/A — это код грубого захвата; L2C — гражданский сигнал L2; IS-GPS-200 и IS-GPS-705 — интерфейсные спецификации GPS; Galileo OS SIS ICD — Interface Control Document сигнала в пространстве открытой службы Galileo. Принимаемые мощности — это минимумы по спецификации; полосы — выбор моделирования. Оба параметра можно переопределить для каждого диапазона. Без таблицы [[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 МГц в 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, 3rd ed., §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 дБ-Гц в обоих случаях (таблица давала 19,74, когда содержала 1,5).
  • Широкополосная и качающаяся: Q = 2, начиная с 0,36. Это белый шум по главному лепестку при нормировке мощности сигнала в полосе к единице, κ = 1/(2R_c). До 0,36 таблица содержала 1, что примерно на 3 дБ пессимистично (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 с, одна строка в секунду, антенна 290 К и коэффициент шума 2 дБ (пол −201,98 дБВт/Гц).

  • С 10 с по 40 с: чирп 16 МГц вокруг L1, развёртки по 9 мкс, 50 мВт на расстоянии 100 м.
  • С 30 с: тон CW на несущей L1, 10 мВт на расстоянии 1 км.
  • С 45 с: плоский шум 2 МГц на L2, принимаемый при −135 дБВт.

Что вычисляет прогон:

Диапазон Номинальное C/N₀ Минимальное C/N₀ Первая потеря Строки со слежением
gps-l1ca 43,48 дБ-Гц 3,23 дБ-Гц 10 с 17 %
galileo-e1 44,73 дБ-Гц 4,44 дБ-Гц 10 с 50 %
gps-l2c 41,98 дБ-Гц 36,86 дБ-Гц никогда 100 %
gps-l5 44,08 дБ-Гц 44,08 дБ-Гц никогда 100 %
galileo-e5a 46,73 дБ-Гц 46,73 дБ-Гц никогда 100 %

Тон CW объясняет, почему два сигнала L1 расходятся на 40 с. Он попадает на пик спектра C/A и удерживает C/A на 17,98 дБ-Гц, ниже порога 25 дБ-Гц. Он попадает в нуль спектра MBOC, поэтому Galileo E1 возвращается к своему номинальному C/N₀, когда чирп прекращается.

Сами сигналы лежат примерно на 20 дБ ниже шумового пола, поэтому водопад показывает пол и источники помех; полосы C/N₀ показывают, что восстанавливает сжатие спектра.

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

За пределами L-диапазона#

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

  • 10 с: тон CW на несущей UHF, принимаемый при −120 дБВт.
  • 20 с: чирп из примера для L-диапазона (16 МГц вокруг L1, развёртки по 9 мкс, 50 мВт на расстоянии 100 м).
  • 30 с: широкополосный шум, 40 МГц вокруг 1185 МГц, −118 дБВт.
  • 40 с: узкополосный шум, 2 МГц на несущей S, −128 дБВт.
  • 50 с: шум, согласованный с собственным спектром сигнала C-диапазона, −124 дБВт.

Что вычисляет прогон (C/N₀ разработанных сигналов относится к отслеживаемой компоненте, поэтому номинальное значение лежит ниже полной принимаемой мощности на долю отслеживаемой части):

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

Сигнал отнимает только чирп (GPS L1 C/A, с 20 с). Каждый другой источник помех ухудшает только тот диапазон, до которого доходит его спектр: например, согласованный шум C-диапазона имеет SSC −71,87 дБ/Гц с сигналом C-диапазона и ниже −133 дБ/Гц с каждым другим диапазоном.

Тот же механизм управляет сценариями устойчивости LEO-PNT (LEO-PNT.md):

  • scenarios/leo-resilience-js-margin.toml ступенчато увеличивает один заградительный источник помех 40 МГц на 1185 МГц на 5 дБ каждые 10 с, начиная с −125 дБВт. GPS L5 теряется на ступени −105 дБВт, Galileo E5a — на −100 дБВт, Xona X5 — на −95 дБВт, тогда как репрезентативный сигнал LEO в L-диапазоне, принимаемый при −135 дБВт, всё ещё отслеживается при −90 дБВт: принимаемая мощность покупает запас по 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 методом Уэлча (окно Ханна, перекрытие 50 %, усреднённые периодограммы, масштабирование по плотности). Тепловой шум, сигналы и шумоподобные источники помех рисуются по ячейкам из собственной плотности модели; тон и чирп рисуются как реальные формы волны. При одних лишь шумоподобных источниках помех оценка Уэлча лежит в пределах 0,1 дБ от модели (медиана). Периодический чирп — это линейчатый спектр на частоте его развёртки, с рябью и хвостами за краями его полосы, которые гладкая модель опускает: во встроенном примере полная мощность согласуется в пределах 0,02 %, а медианная ячейка отличается на 0,5 дБ. Моментальный снимок — это файл, записанный для анализа; ничего не передаётся, и никакое радиооборудование не управляется.

[recording] (только нативные сборки) читает реальную запись SigMF из meta_path (файл данных по умолчанию имеет то же имя с .sigmf-data), оценивает её PSD и печатает её рядом с моделью на частотах записи. У файла SigMF нет абсолютной калибровки мощности, поэтому отчёт даёт медианное смещение и форму, а не уровень.

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

Доказательства#

Утверждение Метка Оракул
PSD сигналов и SSC VALIDATED главный лепесток BPSK(n) 2n × 1,023 МГц от нуля до нуля; лепестки BOC(1 1) с центрами на ±1,023 МГц (Betz 2001); SSC −61,86 / −64,87 / −67,88 дБ/Гц для C/A×C/A, BOC(1 1)×BOC(1 1), C/A×BOC(1 1) по их замкнутым формам Парсеваля, значения, лежащие за опубликованными −61,8 / −64,8 / −67,8 дБ/Гц; 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 и оценка Уэлча MODELLED Круговые преобразования, прямое дискретное преобразование Фурье, тождества для белого шума и Парсеваля; сторонних записей в репозитории нет
Многодиапазонный водопад с разработанными сигналами и источниками помех по диапазонам MODELLED Сводится к цепочке L-диапазона (однокомпонентный диапазон даёт те же числа, что и до расширения) и к проверенным спектрам сигналов; разработанные сигналы, источники помех и полосы — входные данные

Одно уточнение к распространённому упрощению: лепестки спектра BOC(1 1) центрированы на ±1,023 МГц (между нулём несущей и нулём на 2,046 МГц), но максимум PSD лежит на ±0,759 МГц, где tan y = 2y при y = πf/(2R_c). Тесты закрепляют оба значения.

Не моделируется#

  • Линейчатая структура расширяющего кода (линии 1 кГц у C/A): тон оценивается относительно гладкой огибающей, а не ближайшей линии кода.
  • Автоматическая регулировка усиления, квантование, гашение импульсов и режекторная фильтрация.
  • Диаграмма направленности приёмной антенны в сторону источника помех сверх одного значения усиления.
  • Помехи множественного доступа между спутниками одного диапазона.
  • Излучение разработанного сигнала за пределами его полосы передачи: его спектр там усекается, поэтому внеполосное излучение не доходит до соседнего диапазона.
  • Влияние чирпа на петлю при скоростях развёртки, сопоставимых с полосой петли: его C/N₀ использует усреднённый по строке спектр.

Литература#

  • 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, https://sigmf.org/ (источник: https://github.com/sigmf/SigMF).