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

Страницы видов сценариевПравить на GitHubИсточник: docs/kinds/by-kind/tracking-loop.md

tracking-loop (вид сценария)

Вид сценария движка v0.40.0, семейство Подавление, спуфинг и спектр. Носит консультативный характер: результат анализа исследовательского и инженерного инструмента; это не навигационное оборудование с утверждённым типом и не служба обеспечения безопасности жизни. Все обозначения здесь принадлежат движку или матрице верификации; вид относится к уровню MODELLED, если матрица не указывает иное (как заслуживается обозначение: раздел Evidence в README).

Что делает#

Срыв слежения в петле слежения: C/N0 -> захват/потеря захвата С ГИСТЕРЕЗИСОМ, время до потери захвата и втягивание спуфера как функция СКОРОСТИ смещения кода и несущей. Существующие в движке критерии подавления и захвата — это отношения по принимаемой мощности (глушитель подавляет при J/S = 30 dB, спуфер захватывает при 3 dB); реальный срыв слежения — это не отношение мощностей, а то место, где джиттер петли плюс динамическое напряжение выходят за бюджет её порога слежения. Выводятся: (1) 1-сигма тепловой джиттер несущей (Костас) и кода (некогерентный «раньше/позже») в зависимости от C/N0, с учётом потерь на возведение в квадрат, относительно заданных правил 3sigma_PLL + theta_e <= 45 deg (правило 15 градусов в форме трёх сигм) и 3sigma_DLL + запаздывание по скорости изменения <= d/2 чипа; (2) пороги C/N0 срыва и повторного захвата с названной определяющей петлёй, причём порог повторного захвата ВЫВЕДЕН из более широкой полосы, в которой приёмник повторно втягивается, а не задан произвольно, так что ширина гистерезиса должна лежать между 5log10(ratio) и 10log10(ratio) dB; (3) объявленное время до потери захвата от двухпорогового детектора захвата с подтверждающими выдержками при проходе по рампе C/N0, выводимое отдельно от физического времени ухода фазы (среднее время Витерби между проскальзываниями циклов, в log10 s, поскольку оно охватывает сотни порядков); (4) пределы втягивания спуфера — наибольшая скорость смещения кода и доплеровская скорость несущей, за которыми могут следовать петли жертвы, с картой по обеим осям, потому что спуфер, смещающий быстрее этих пределов, не захватывает петлю, а опережает её; и (5) РАДИУС ПОДАВЛЕНИЯ, следующий из динамики петли, выводимый РЯДОМ с существующим радиусом по отношению мощностей, а не вместо него, с их знаковой разностью в отдельном именованном поле (denial_radius_delta_km) и определением рядом. Каждое выводимое числовое поле несёт единицу и класс происхождения. VALIDATED замкнутые формы: выражения джиттера несущей и кода, редукция фильтра петли sqrt(2B_nT) и запаздывание по скорости изменения первого порядка перекрёстно проверены по собственному коррелятору sdr движка, пошагово запущенному на засеянной синтетической ПЧ, — другим путём к тем же числам — до 0,6 %, 3,7 % и 0,17 % соответственно, а модифицированная функция Бесселя I0, лежащая в основе времени проскальзывания цикла, — по стандартным табличным значениям до 1e-7. Нижний предел применимости утверждён, а не только заявлен: ниже ~32 dB-Hz при 1 ms реальный дискриминатор atan насыщается относительно своего диапазона +-pi/2 и измеряет меньший джиттер, чем любая линейная теория. MODELLED: полосы петель, время интегрирования, разнос коррелятора, отношение полос втягивания, подтверждающие выдержки, мощность глушителя и усиления антенн — это репрезентативные значения диапазона, а не техпаспорт. НЕ моделируются: джиттер генератора (девиация Аллана) и вибрации, ограничение полосы входного тракта, многолучевость, динамика AGC, потери на переходах битов данных, внешнее сопровождение и любая поправка на полцикла к формуле проскальзывания циклов Костаса. При динамике петли у захвата спуфера радиуса нет вовсе — определяющее ограничение — скорость смещения, а не мощность, — поэтому это поле равно null с указанием причины, а не выдуманным числом. Это не сертифицированный продукт для оценки характеристик приёмника.

Один прогон scenarios/tracking-loop.toml сводится к следующему: tracking-loop: B_pll 10,0 Hz / B_dll 1,0 Hz, T 1 ms, d 0,50 чипа -> срыв 25,4744 dB-Hz (определяет несущая), повторный захват 27,4413 dB-Hz, гистерезис 1,9669 dB | потеря захвата объявлена через 39,101 s после начала рампы | радиус подавления по порогу (J/S 30 dB) 127,413 km против динамики петли 53,1694 km, разность -74.2438 km | предел втягивания спуфера <= 0,966 чип/s по коду и 41,45 Hz/s по несущей (MODELLED петля, VALIDATED замкнутые формы)

Входные параметры#

Из схемы (kshana kinds --json):

  • Обязательные поля: нет
  • Необязательные поля: pll_bandwidth_hz, dll_bandwidth_hz, predetection_integration_s, correlator_spacing_chips, carrier_allowance_deg, code_allowance_chips, pullin_bandwidth_ratio, drop_confirm_epochs, relock_confirm_epochs, doppler_rate_hz_per_s, code_slew_chips_per_s, cn0_high_dbhz, cn0_low_dbhz, ramp_duration_s, jitter_table_cn0_dbhz, jammer_power_dbw, jammer_gain_dbi, rx_gain_toward_jammer_db, rx_gain_toward_sat_db, signal_power_dbw, temp_k, freq_hz, chip_rate_hz, jammer_type, q_override, denial_js_threshold_db, capture_js_threshold_db, spoof_code_slew_chips_per_s, spoof_doppler_rate_hz_per_s

В примере scenarios/tracking-loop.toml среди прочего задано:

Поле Значение Единица
capture_js_threshold_db 3 dB
carrier_allowance_deg 45 deg
chip_rate_hz 1023000 Hz
cn0_high_dbhz 45 dB-Hz
cn0_low_dbhz 15 dB-Hz
code_slew_chips_per_s 0 chip/s
correlator_spacing_chips 0.5 chip
denial_js_threshold_db 30 dB
dll_bandwidth_hz 1 Hz
doppler_rate_hz_per_s 0 Hz/s
drop_confirm_epochs 50 число
freq_hz 1575420000 Hz

Запустите#

kshana scenarios/tracking-loop.toml

Что он даёт#

Скалярные результаты этого прогона с единицами, которые указывает движок:

Результат Значение Единица
denial.capture_js_threshold_db 3 dB
denial.capture_radius_loop_dynamics_km нет значения km
denial.capture_radius_threshold_km 2852.426643 km
denial.capture_radius_threshold_status bracketed текст
denial.denial_cn0_at_threshold_radius_dbhz 32.864222 dB-Hz
denial.denial_js_delta_db 7.591059 dB
denial.denial_js_loop_db 37.591059 dB
denial.denial_js_threshold_db 30 dB
denial.denial_radius_delta_km -74.243845 km
denial.denial_radius_loop_dynamics_km 53.169373 km

Метка результата (от движка): MIXED — VALIDATED замкнутые формы петли, MODELLED конфигурация петли. Выражения теплового джиттера несущей и кода, редукция фильтра петли sqrt(2B_nT) и запаздывание по скорости изменения первого порядка перекрёстно проверены по собственному коррелятору sdr движка, пошагово запущенному на засеянной синтетической ПЧ (другой путь

График, который движок строит для scenarios/tracking-loop.toml, вид tracking-loop

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

MODELLED: строки матрицы верификации, называющие этот вид.

  • MODELLED Отчёт lunar-jamming больше не опирается в своём контуре отказа на один скаляр.
  • MODELLED Срыв слежения, вычисленный по динамике петли, а не по отношению мощностей: 1σ тепловой джиттер несущей (Костас) и кода (некогерентный «раньше/позже») относительно C/N₀ с учётом потерь на возведение в квадрат, относительно заданных правил 3σ_PLL + θ_e ≤ 45° и 3σ_DLL + запаздывание по скорости изменения

Строки, которые задействовал сам прогон, с оракулом, который указывает им матрица (публичные источники названы там):

  • MODELLED Детерминированные, хешируемые по сценарию, SBOM и кроссплатформенные эталонные проверки (golden). Оракул (ExternalDataset): соответствие SBOM официальной схеме JSON CycloneDX 1,5 (плюс допустимые идентификаторы SPDX) — внешний опубликованный стандарт, ноль ошибок валидации на всём графе зависимостей; часть о детерминизме FoM и побайтной воспроизводимости остаётся закреплённой проверкой внутренней согласованности, поэтому строка остаётся MODELLED
  • PARTNER Не обеспечивается — Kshana моделирует характеристики сигнала, а не аппаратуру полезной нагрузки или антенн. Оракул (NoneKind): нет: дисциплина, принадлежащая партнёру, по замыслу без модуля и без теста
  • MODELLED Срыв слежения, вычисленный по динамике петли, а не по отношению мощностей: 1σ тепловой джиттер несущей (Костас) и кода (некогерентный «раньше/позже») относительно C/N₀ с s. Оракул (ReferenceImpl): собственный коррелятор sdr движка (sdr::correlate / synth_if / CaCode), пошагово запущенный на засеянной синтетической ПЧ при калиброванном C/N₀ — отдельный путь кода, приходящий к тем же числам численной корреляцией дискретизированных IQ, а не алгебраическим выражением джиттера, поэтому это другой путь, а не пересказ, — плюс стандартные табличные значения модифицированной функции Бесселя I₀ для члена проскальзывания циклов. Теория петель по Kaplan & Hegar

Ограничения#

Что отчёт самого прогона называет не смоделированным или не проверенным:

  • MIXED — VALIDATED замкнутые формы петли, MODELLED конфигурация петли. Выражения теплового джиттера несущей и кода, редукция фильтра петли sqrt(2B_nT) и запаздывание по скорости изменения первого порядка перекрёстно проверены по собственному коррелятору sdr движка, пошагово запущенному на засеянной синтетической ПЧ (другой путь к тем же числам), а модифицированная функция Бесселя I0 — по стандартным табличным значениям. MODELLED: полосы петель, integ (результат label)
  • MODELLED: полосы петель, время интегрирования, разнос коррелятора, отношение полос втягивания, подтверждающие выдержки, мощность глушителя и усиления антенн — это репрезентативные значения диапазона, а не техпаспорт. (каталог видов (kshana kinds --json))
  • НЕ моделируются: джиттер генератора (девиация Аллана) и вибрации, ограничение полосы входного тракта, многолучевость, динамика AGC, потери на переходах битов данных, внешнее сопровождение и любая поправка на полцикла к формуле проскальзывания циклов Костаса. (каталог видов (kshana kinds --json))
  • Каждый приведённый ниже параметр петли — это MODELLED репрезентативное значение диапазона, а не техпаспорт. (комментарий в файле сценария, строка 22)
  • --- геометрия петли ----------------------------------------------------------------- Петля несущей Костаса 10 Hz и петля кода 1 Hz с подстройкой по несущей, когерентное интегрирование 1 ms (один период кода C/A, поэтому синхронизация с битами данных не предполагается), узкий коррелятор 0,5 чипа. (комментарий в файле сценария, строки 25–28)
  • Воспроизводимость и гарантии качества ПО — MODELLED, а не validated: одно из частных утверждений проверено извне, но вся возможность составлена из смоделированных частей, поэтому возможность остаётся Modelled. (матрица верификации (docs/MODELLED-RATIONALE.md))
  • Срыв слежения в петле слежения и втягивание спуфера при помехах относятся к уровню MODELLED, и не проверены по внешнему эталону: они проверены по отдельной реализации в этой же кодовой базе — независимой от проверяемого модуля, но не имеющей внешнего авторитета. (матрица верификации (docs/MODELLED-RATIONALE.md))

См. также#