
Внешний (OOT) модуль GNU Radio для блоков QRadioLink.
ВАЖНОЕ УВЕДОМЛЕНИЕ: Этот код создан искусственным интеллектом.
Данный код не был проверен профессиональными программистами; это большая задача. В кодовой базе есть тесты, пожалуйста, ознакомьтесь с ними и их кодом.
Модуль GNU Radio вне дерева (OOT) для блоков QRadioLink.
Ветка main: GNU Radio 3.10 OOT (CMake find_package(gnuradio)). Экспериментальный порт
GNU Radio 4 находится в ветке gnuradio4 (README_gr4.md в этой ветке).
Навигация по коду: docs/CODE_MAP.md (файлы, функции, указатель блоков). Маршрутизация режимов gr-ident ZMQ: docs/GRIDENT_ZMQ.md (преамбула gr-ident на порту :5560).
Эталонный IQ для блоков модуляторов был проверен с помощью radio-modulation-validator (31.05.2026). Итог: МЯГКИЙ СБОЙ — 6/19 блоков пройдено, 13 мягких сбоев, 0 жёстких сбоев, 3 пропущено.
Все проверенные режимы были идентифицированы в правильном семействе модуляций (FSK, PSK, AM, FM). Мягкие сбои на уровне порядка (например, FSK предсказан как CPFSK вместо 4FSK или GMSK) отражают ограничения классификатора порядка валидатора, а не свидетельствуют о том, что эти модуляторы генерируют неправильное семейство сигналов.
В сканировании используется встроенный эталонный IQ (не построенные OOT-блоки); результаты применимы к режимам, перечисленным в этом
README в ветке main, и дублируются в ветке gnuradio4.
Полные результаты по каждому блоку: VALIDATION_REPORT.md
Данный проект описан в следующем препринте:
Cryptographically Keyed Gaussian-Distributed Spread-Spectrum for Enhanced Covert Communications: Design, Implementation, and Simulated Performance in ITU Channel Models
IACR Cryptology ePrint Archive, Paper 2025/108456
https://eprint.iacr.org/2025/108456
Временная метка записи в архиве: 21 марта 2026 г.
Этот модуль предоставляет блоки GNU Radio для различных схем цифровой и аналоговой модуляции, специализированных для любительской радиосвязи и цифровой голосовой связи.
Этот модуль был преобразован из приложения QRadioLink, которое является многорежимным SDR-трансивером для GNU Radio, ADALM-Pluto, LimeSDR, USRP и другого SDR-оборудования. Исходный код находится по адресу https://codeberg.org/qradiolink/qradiolink.
Валидация: Преобразованные блоки, имеющие аналоги в QRadioLink, были проверены на соответствие исходному коду QRadioLink (ветка next, codeberg.org/qradiolink/qradiolink) таким образом, чтобы графы потоков, параметры фильтров, константы масштабирования и поведение блоков совпадали. Цепочки модуляторов/демодуляторов SSB и AM (включая структуру CESSB и константы клиппера/стретчера) были восстановлены для соответствия оригиналу, где они разошлись. Некоторые блоки в этом модуле не имеют соответствующего источника в src/gr/ из QRadioLink; их происхождение указано в таблице ниже.
Авторство и происхождение:
next, src/gr/): модуляция/демодуляция (2FSK, 4FSK, GMSK, BPSK, QPSK, AM, SSB, NBFM, WBFM), цифровой голос (FreeDV, M17, DMR) и вспомогательные блоки (RSSI, M17 дефреймер, MMDVM источник/приёмник, клиппер, стретчер, zero_idle_bursts, gr_4fsk_discriminator, demod_mmdvm_multi, demod_mmdvm_multi2, mod_mmdvm_multi2). DSP и поведение режимов для этих блоков были получены или реализованы заново из приложения QRadioLink.gr_* в QRadioLink src/gr/): 8FSK, SOQPSK, CPM-4FSK, dPMR, NXDN, POCSAG, D-STAR, YSF, P25. Их происхождение указано в таблице происхождения блоков ниже.Происхождение блоков (валидация / атрибуция):
| Блок(и) | Происхождение | Примечания |
|---|---|---|
| 2FSK, 4FSK, GMSK, BPSK, QPSK, AM, SSB, NBFM, WBFM, FreeDV, M17, DMR | QRadioLink | Проверено на соответствие QRadioLink src/gr/ (gr_demod_, gr_mod_). |
| MMDVM источник/приёмник, demod_mmdvm_multi, demod_mmdvm_multi2, mod_mmdvm_multi2, RSSI, клиппер, стретчер, zero_idle_bursts, gr_4fsk_discriminator | QRadioLink | Проверено на соответствие QRadioLink src/gr/. |
| 8FSK | Реализовано для этого модуля | В QRadioLink нет gr_demod_8fsk/gr_mod_8fsk. Расширение дизайна на основе 4FSK. |
| SOQPSK | Реализовано для этого модуля | В QRadioLink нет gr_demod_soqpsk/gr_mod_soqpsk. Из литературы/спецификаций SOQPSK. |
| CPM-4FSK | Реализовано для этого модуля | В QRadioLink нет gr_mod_cpm_4fsk. |
| dPMR | Реализовано для этого модуля | В QRadioLink нет gr_*. Из ETSI TS 102 658 (тестовые векторы и комментарии в коде). |
| NXDN | Реализовано для этого модуля | В QRadioLink нет gr_*. Из спецификаций форума NXDN; отображение символов ссылается на соглашение MMDVM. |
| POCSAG | Реализовано для этого модуля | В QRadioLink нет gr_*. Из POCSAG/ITU-R M.584-2; протокол совместим с MMDVMHost. |
| D-STAR | Реализовано для этого модуля | В QRadioLink нет gr_*. Из спецификации D-STAR/JARL (Golay FEC); совместим с MMDVMHost. |
| YSF | Реализовано для этого модуля | В QRadioLink нет gr_*. Из документации протокола YSF; совместим с MMDVMHost. |
| P25 | Реализовано для этого модуля | В QRadioLink нет gr_*. Из P25 Phase 1 TIA-102; совместим с MMDVMHost. |
| DSSS (базовый) | QRadioLink | Проверено на соответствие QRadioLink gr_demod_dsss/gr_mod_dsss. |
| DSSS (улучшения), GDSS | Этот модуль | DSSS: улучшения поверх базового QRadioLink. GDSS: из Shakeel et al., Sensors 2023. |
| Маршрутизация ZMQ gr-ident | Этот модуль | Взаимодействие с gr-ident преамбула PUB; не из QRadioLink. |
Код был extensively протестирован с помощью libFuzzer с более чем 104 миллионами выполнений на нескольких блоках, и не было обнаружено ни сбоев, ни утечек памяти. См. fuzzing-results/results.md для деталей покрытия.