Практикум ionozond: имитатор КВ-канала — реальный сеанс и двенадцать его копий
Новая страница практикума показывает имитатор КВ-канала в работе: по ионограмме строится состояние канала, по нему синтезируются копии сеанса, а затем проверяется, сойдёт ли реальный сеанс за ещё одну копию. Четыре сеанса трассы NIC1 — Йошкар-Ола за 17 октября 2026 года, вердикты в сигмах и заметки с шестью рассчитанными схемами — от того, как получается ионограмма, до канала для сигнала на одной несущей.
Модем или алгоритм для КВ-связи проверяют на имитаторе, а не в эфире: эфир не повторяется, и два варианта нельзя сравнить на одной трассе в один и тот же час. Классические модели — Уоттерсона и рекомендации ITU-R F.1487 — задают канал таблицей: два пути равной мощности, фиксированная разница задержек и доплеровское расширение для «спокойных», «умеренных» и «возмущённых» условий. Такой канал удобен для сравнения модемов, но не похож ни на одну конкретную трассу в конкретный час.
Имитатор muf.sim устроен наоборот: параметры канала он берёт из сеанса наклонного ЛЧМ-зондирования той же трассы. Сам имитатор пока не опубликован. В практикуме появились две страницы о нём: «Имитатор канала» показывает его результаты на реальных сеансах, а «Имитатор: заметки» объясняет, как он устроен.
Сойдёт ли реальный сеанс за копию
Главный приём — самопроверка. Синтетический сеанс записывается в том же формате .lfs, что и настоящая запись, и проходит ту же обработку: те же алгоритмы выделения следа, то же сопровождение, ту же очистку от помех. Поэтому копия сравнивается с оригиналом напрямую, отсчёт в отсчёт. Если состояние канала полное, реальный сеанс должен сойти за ещё одну копию. Насколько он от этого далёк, и показывает страница.
Цепочка выглядит так. По реальному сеансу строится состояние канала: список мод, и каждая мода — это не набор чисел, а кривые по частоте: задержка, отношение несущей к шуму C/N₀, доплер, разброс задержки. У каждой величины есть метка происхождения — измерена по сеансу, взята априори или задана моделью. По состоянию синтезируются 12 сеансов-копий, которые отличаются только замираниями и шумом. Каждая копия читается обратно той же обработкой — это уровень 1, восстановление. Затем реальный сеанс ставится в ряд копий — уровень 2, реалистичность.

| Копия воспроизводит оба следа и их уровень, но рисует их гладкими: пятен и изломов оригинала в состоянии нет. Правая панель может показать и следующий реальный сеанс, через 10 минут, — две версии «того же канала» — или разность «реальный минус копия». Ниже идут срез по дальности на выбранной частоте, C/N₀ вдоль моды, профиль поперёк следа, корреляция ионограмм, таблица состояния и | H(f, t) | — то, что увидел бы сигнал шириной 48 кГц на одной несущей за 30 секунд. |
Ионограмма мощности не может измерить доплеровский сдвиг, закон замираний и расщепление на обыкновенную и необыкновенную волны. Эти величины в состоянии — априорные, по умолчанию «умеренные условия средних широт» F.1487: расширение 0,5 Гц, гауссов спектр, рэлеевские замирания. Таблица состояния так их и помечает.
Вердикт в сигмах
| На уровне 2 сравниваются МНЧ, разброс уровня вдоль следа, ширина следа и корреляция ионограмм — построчно и после усреднения по ±0,2 МГц. Все вердикты выносятся по одному правилу: расстояние реального значения от среднего по копиям измеряется в стандартных отклонениях, которые имела бы ещё одна копия, с поправкой √(1 + 1/n) на ошибку самого среднего. «Внутри» — когда | z | ≤ 3. Для корреляции правило работает на z-преобразовании Фишера и одностороннее: реальный сеанс, похожий на копии сильнее, чем они друг на друга, — не дефект. |

Порог 3σ, а не 2σ, выбран потому, что хвосты распределения тяжёлые: при 2σ настоящие копии объявлялись «вне разброса» 13 раз из 160, при 3σ — 5 раз. Правило откалибровано на настоящих копиях: ещё один сеанс синтезировался из состояния и читался как реальный, по 25 раз для трёх февральских состояний. Прежнее правило «внутри [min, max] копий» называло настоящую копию чужой в 2/(n + 1) случаев — при трёх копиях каждый второй раз.
| Большое | z | у корреляции говорит, что разницу легко заметить, а не что она велика. Двенадцать копий на десяти тысячах ячеек согласуются между собой до ±0,005, поэтому разрыв в 0,1 даёт десятки сигм. Величину разрыва читают по столбцам корреляции. |
Что показали сеансы 17 октября
Встроенные данные — четыре сеанса трассы NIC1 — Йошкар-Ола: 06:00, 09:00, 12:00 и 18:00 UTC, по 12 копий на каждый.
- МНЧ воспроизводится. Во всех четырёх сеансах реальная МНЧ лежит внутри разброса копий, z от +0,2 до +1,3. Сама МНЧ за 10 минут сдвигается на 0,4–1,4 МГц.
- Копия не хуже следующего сеанса. Построчно копии коррелируют с оригиналом почти так же, как реальный сеанс через 10 минут: 0,72, 0,70, 0,71 и 0,63 против 0,71, 0,71, 0,69 и 0,58. Состояние описывает свой момент не хуже, чем канал сохраняет себя за одно повторение.
- Но копии похожи друг на друга сильнее. Разрыв до «потолка» — средней корреляции копий между собой — составляет 0,07–0,13. Реальная ионограмма держит структуру, которой нет в состоянии: след на 15–32 мкс шире точечного эха и плавно гуляет вокруг гладкой кривой от строки к строке. Поэтому вне разброса оказываются почти только корреляции.
- Раздвоенные моды дают +3 дБ. Где сопровождение разбило один след на две моды почти в одной полосе и на одной задержке, состояние держит два равных пути вместо одного, и C/N₀ копии выходит на 3,1–4,4 дБ выше. Моды, которые ни с чем не перекрываются, возвращаются с точностью около 1 дБ.
- Задержка восстанавливается с СКО 9–30 мкс — в пределах отсчёта дальности 48,8 мкс. У точки МНЧ, где лучи смыкаются, ошибка доходит до сотен микросекунд: сопровождение следа передаёт части одной ветви другой — и на копиях, и на реальных сеансах. Ошибку сопровождения можно измерить только на сеансе с известным ответом, и это побочная польза имитатора.
Заметки и шесть схем
Страница «Имитатор: заметки» разбирает всё по порядку: модель, синтез, проверки, путеводитель по странице, итоги октября и ограничения. Основы изложены на шести схемах. Все они посчитаны, а не нарисованы: через тракт станции — 100 кГц/с, 40 кГц после децимации, окно Ханна на 16 384 отсчёта — пропущен смоделированный сигнал разностной частоты канала из четырёх мод.

Первая схема ведёт от ЛЧМ-сигнала к ионограмме, а от неё — к функциям канала: столбец ионограммы — это импульсная характеристика канала в полосе 41 кГц. Здесь же объяснено, чем отсчёт БПФ отличается от разрешения. Соседние отсчёты отстоят на 1/(kT) = 24,4 мкс, но окно Ханна расширяет пик примерно до двух отсчётов, и два равных пути показывают провал между пиками, только если они разнесены примерно на 2,5 отсчёта, или 60 мкс. Эхо между отсчётами теряет до 1,4 дБ, а максимум шума по многим отсчётам тем выше медианы, чем отсчётов больше, — поэтому порог обнаружения зависит от того, сколько отсчётов просматривается. Прежнее утверждение, что пути на расстоянии 24,4 мкс уже разделяются, исправлено.
Вторая схема по шагам разбирает второе сжатие, которым из сеанса читаются АЧХ и ФЧХ одной моды. После первого сжатия мода — тон, но он дрейфует вдоль следа: на 17–18 МГц — от −865 до −870 Гц за 10 секунд. Умножение на сопряжённую траекторию сводит тон к нулю, фильтр нижних частот оставляет ±50 Гц вокруг нуля — комплексную огибающую a(t), и дисперсия по кривизне фазы, 53 мкс/МГц, согласуется с наклоном следа, 55 мкс/МГц. У этого есть оговорка: на нарастающей развёртке частота и время связаны — 1 МГц занимает 10 секунд, — поэтому один сеанс не отличает частотную избирательность от изменения во времени.

Третья схема — о дисперсии внутри моды. В ячейке 8 кГц задержка меняется всего на 0,4 мкс, и для такого сигнала канал — просто задержка. Но 1 МГц — это 125 ячеек, и по ним задержка поднимается лесенкой на все 50 мкс. Насколько это важно, говорит произведение GDD·B²: при 1 пик теряет 0,06 дБ, при 5 — 1,5 дБ. На этом участке это полосы около 140 и 320 кГц, а сигналы шириной 3 и 48 кГц дисперсии не замечают. Последний шаг показывает, как ЛЧМ-сигнал растягивается в такой модели, — растяжение нарисовано с преувеличением: на развёртке в 10 секунд оно составляет 50 мкс.
Схемы 4 и 5 — о медленной и быстрой частях состояния. Медленную — следы, уровень и ширину — даёт ионограмма мощности: C/N₀ собирается по пяти отсчётам вокруг следа, потому что окно Ханна размазывает эхо на полтора отсчёта. Быструю — доплеровское расширение, форму спектра, коэффициент Райса и расщепление o/x — можно измерить только по фазе записи. Две волны на 30 мкс друг от друга бьются вдоль развёртки с частотой kΔτ = 3 Гц, и если читать их как одну, расширение выходит во много раз шире настоящего: на схеме — 3,0 Гц вместо 0,3. Поэтому оценка подбирает и пару волн.

Шестая схема показывает, как имитатор строит канал для модема. Каждая мода — неизменный во времени дисперсионный фильтр, умноженный на множитель замираний, моды складываются, а сверху добавляется шум. Разделение на фильтр и множитель точно, пока множитель не меняется, пока фильтр отвечает: фильтр помнит меньше миллисекунды, а время когерентности замираний — около секунды, в 4000 раз дольше. Две моды на расстоянии 243 мкс гасят друг друга каждые 4,1 кГц, и замирания двигают эти вырезы по полосе. Сигнал шириной 3 кГц замирает целиком, а в полосе 24 кГц сразу сидит около шести вырезов — модему нужен эквалайзер.
Что ещё не умеет имитатор
Заметки честно перечисляют ограничения. Доплеровский сдвиг одной нарастающей развёрткой от изменения задержки не отличить, поэтому он остаётся априорным. Тонкая структура следа — его блуждание вокруг гладкой кривой — не моделируется, и именно она даёт разрыв до потолка. Шум синтезируется белым, без вещательных станций и импульсных помех. Состояние описывает один момент; следующий этап — ряды состояний и прогноз следующего.
Работа над схемами исправила и сам текст. Дисперсия внутри одного окна БПФ теперь считается как GDD·kT — 0,6 мкс, а не GDD·(kT)²; ушло упоминание «сотен микросекунд» дисперсии; в формулу принятого сигнала добавлен шум. А первая версия синтеза гасила моду внутри её полосы и занижала МНЧ всех копий на 0,03 МГц — это нашла проверка уровня 2.
Выводы
- Имитатор, построенный по сеансу той же трассы, проверяет себя сам: если состояние полное, реальный сеанс должен сойти за ещё одну копию.
- Мерой служит следующий реальный сеанс: копия, которая похожа на оригинал не хуже, чем канал сам на себя через 10 минут, описывает момент достаточно.
- Вердикт в сигмах ещё одной копии и с калибровкой на настоящих копиях честнее, чем «внутри диапазона копий».
- Схемы, посчитанные через тот же тракт, что и данные, проверяют и текст, который их объясняет: работа над ними нашла ошибки в формулах заметок.
Доступность
Страница рисует то, что посчитал имитатор, и сама ничего не вычисляет. Встроенные данные — ионограммы реальных сеансов; свои данные можно загрузить на странице из файла JSON, и они остаются в браузере.
- Практикум: konkin-nikita.ru/ionozond-playground — страницы «Имитатор канала» и «Имитатор: заметки»
- Исходный код практикума: github.com/nikita-konkin/ionozond-playground
- Консоль и документ: github.com/nikita-konkin/ionozond
Теги
Другие обновления по проекту
Практикум ionozond: дисперсия, ячейки ионограммы и сутки на трассе — в моделях, которые можно двигать
Интерактивные модели к документу о наклонных ЛЧМ-ионограммах: дисперсия групповой задержки и предельная полоса, способы её измерить, ошибка момента старта, длина БПФ и форма яче...