
Module GNU Radio out-of-tree (OOT) pour les blocs QRadioLink.
AVIS IMPORTANT: Ce code est généré par IA.
Ce code n'a pas été examiné par des codeurs professionnels, c'est une tâche importante. Des tests sont disponibles dans la base de code, veuillez les consulter ainsi que leur code.
Module GNU Radio out-of-tree (OOT) pour les blocs QRadioLink.
Branche main: GNU Radio 3.10 OOT (CMake find_package(gnuradio)). Le port expérimental GNU Radio 4 se trouve sur la branche gnuradio4 (README_gr4.md sur cette branche).
Navigation dans le code: docs/CODE_MAP.md (fichiers, fonctions, index des blocs). Routage de mode ZMQ gr-ident: docs/GRIDENT_ZMQ.md (préambule gr-ident sur :5560).
Les IQ de référence pour les blocs modulateurs ont été vérifiés avec radio-modulation-validator (2026-05-31). Résumé : ÉCHEC LÉGER — 6/19 blocs réussis, 13 échecs légers, 0 échec dur, 3 ignorés.
Tous les modes testés ont été identifiés dans la bonne famille de modulation (FSK, PSK, AM, FM). Les échecs légers au niveau de l'ordre (par exemple FSK prédit comme CPFSK au lieu de 4FSK ou GMSK) reflètent les limites du classificateur d'ordre du validateur, et non une preuve que ces modulateurs produisent la mauvaise famille de forme d'onde.
Le scan utilise des IQ de référence intégrés (pas de blocs OOT construits) ; les résultats s'appliquent aux modes listés dans ce README sur main et sont reflétés sur gnuradio4.
Résultats complets par bloc : VALIDATION_REPORT.md
Ce projet est documenté dans le préprint suivant :
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
Horodatage d'archivage : 21 mars 2026.
Ce module fournit des blocs GNU Radio pour divers schémas de modulation numérique et analogique, spécialisés pour la radio amateur et les communications vocales numériques.
Ce module a été converti à partir de l'application QRadioLink, qui est un émetteur-récepteur SDR multimode pour GNU Radio, ADALM-Pluto, LimeSDR, USRP et autres matériels SDR. Le code source original se trouve à https://codeberg.org/qradiolink/qradiolink.
Validation : Les blocs convertis qui ont un équivalent dans QRadioLink ont été validés par rapport à la source QRadioLink originale (branche next, codeberg.org/qradiolink/qradiolink) afin que les graphes de flux, les paramètres de filtre, les constantes d'échelle et le comportement des blocs correspondent. Les chaînes de modulateur/démodulateur SSB et AM (y compris la structure CESSB et les constantes de clipper/stretcher) ont été restaurées pour correspondre à l'original là où elles avaient divergé. Certains blocs de ce module n'ont pas de source correspondante dans src/gr/ de QRadioLink ; leur origine est indiquée dans le tableau ci-dessous.
Crédits et origine :
next, src/gr/) : modulation/démodulation (2FSK, 4FSK, GMSK, BPSK, QPSK, AM, SSB, NBFM, WBFM), voix numérique (FreeDV, M17, DMR), et blocs de support (RSSI, déframeur M17, source/puits MMDVM, clipper, stretcher, zero_idle_bursts, gr_4fsk_discriminator, demod_mmdvm_multi, demod_mmdvm_multi2, mod_mmdvm_multi2). Le DSP et le comportement de mode pour ces blocs ont été dérivés ou réimplémentés à partir de l'application QRadioLink.gr_* dans QRadioLink src/gr/) : 8FSK, SOQPSK, CPM-4FSK, dPMR, NXDN, POCSAG, D-STAR, YSF, P25. Leur origine est donnée dans le tableau d'origine des blocs ci-dessous.Origine des blocs (validation / attribution) :
| Bloc(s) | Origine | Notes |
|---|---|---|
| 2FSK, 4FSK, GMSK, BPSK, QPSK, AM, SSB, NBFM, WBFM, FreeDV, M17, DMR | QRadioLink | Validé par rapport à QRadioLink src/gr/ (gr_demod_, gr_mod_). |
| source/puits MMDVM, demod_mmdvm_multi, demod_mmdvm_multi2, mod_mmdvm_multi2, RSSI, clipper, stretcher, zero_idle_bursts, gr_4fsk_discriminator | QRadioLink | Validé par rapport à QRadioLink src/gr/. |
| 8FSK | Implémenté pour ce module | Pas de gr_demod_8fsk/gr_mod_8fsk dans QRadioLink. Extension de la conception de type 4FSK. |
| SOQPSK | Implémenté pour ce module | Pas de gr_demod_soqpsk/gr_mod_soqpsk dans QRadioLink. Issu de la littérature/spécifications SOQPSK. |
| CPM-4FSK | Implémenté pour ce module | Pas de gr_mod_cpm_4fsk dans QRadioLink. |
| dPMR | Implémenté pour ce module | Pas de gr_* dans QRadioLink. Issu de l'ETSI TS 102 658 (vecteurs de test et commentaires de code). |
| NXDN | Implémenté pour ce module | Pas de gr_* dans QRadioLink. Issu des spécifications du forum NXDN ; le mapping de symboles fait référence à la convention MMDVM. |
| POCSAG | Implémenté pour ce module | Pas de gr_* dans QRadioLink. Issu de POCSAG/ITU-R M.584-2 ; protocole compatible avec MMDVMHost. |
| D-STAR | Implémenté pour ce module | Pas de gr_* dans QRadioLink. Issu de la spécification D-STAR/JARL (FEC Golay) ; compatible avec MMDVMHost. |
| YSF | Implémenté pour ce module | Pas de gr_* dans QRadioLink. Issu de la documentation du protocole YSF ; compatible avec MMDVMHost. |
| P25 | Implémenté pour ce module | Pas de gr_* dans QRadioLink. Issu de P25 Phase 1 TIA-102 ; compatible avec MMDVMHost. |
| DSSS (base) | QRadioLink | Validé par rapport à QRadioLink gr_demod_dsss/gr_mod_dsss. |
| DSSS (améliorations), GDSS | Ce module | DSSS : améliorations par rapport à la base QRadioLink. GDSS : d'après Shakeel et al., Sensors 2023. |
| Routage ZMQ gr-ident | Ce module | Interop avec le préambule PUB de gr-ident ; non issu de QRadioLink. |
Le code a été fuzzé de manière extensive avec libFuzzer avec plus de 104 millions d'exécutions à travers plusieurs blocs, et aucun crash ou fuite mémoire n'a été découvert. Voir fuzzing-results/results.md pour les détails de couverture.