
GNU Radio の out-of-tree (OOT) モジュール(QRadioLink ブロック用)
重要なお知らせ: これはAIが生成したコードです。
このコードはプロのコーダーによるレビューを受けておらず、大規模なタスクです。コードベースにはテストが用意されていますので、それらとそのコードを確認してください。
GNU Radio out-of-tree (OOT)モジュール for QRadioLink blocks.
ブランチ 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(2026-05-31)でチェックされました。要約: SOFT FAIL — 6/19ブロック合格、13ソフト不合格、0ハード不合格、3スキップ。
テストされたすべてのモードは、正しい変調ファミリ(FSK、PSK、AM、FM)で識別されました。次数レベルのソフト不合格(例えば、FSKが4FSKやGMSKではなくCPFSKと予測されたなど)は、バリデーターの次数分類器の限界を反映しており、これらの変調器が間違った波形ファミリを生成する証拠ではありません。
スキャンは組み込みのリファレンスIQを使用しており(OOTブロックはビルドされていません)、結果は main のこのREADMEにリストされているモードに適用され、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
アーカイブ記録タイムスタンプ:2026年3月21日。
このモジュールは、アマチュア無線およびデジタル音声通信に特化した、さまざまなデジタルおよびアナログ変調方式用のGNU Radioブロックを提供します。
このモジュールは、QRadioLinkアプリケーションから変換されました。QRadioLinkは、GNU Radio、ADALM-Pluto、LimeSDR、USRP、その他のSDRハードウェア向けのマルチモードSDRトランシーバーです。元のソースコードはhttps://codeberg.org/qradiolink/qradiolinkにあります。
検証: QRadioLinkに対応するブロックを持つ変換されたブロックは、元のQRadioLinkソース(ブランチ next、codeberg.org/qradiolink/qradiolink)に対して検証され、フローグラフ、フィルターパラメータ、スケーリング定数、ブロックの動作が一致するようにされています。SSBおよびAM変調器/復調器チェーン(CESSB構造およびクリッパー/ストレッチャー定数を含む)は、乖離があった箇所を元に戻して一致するように復元されました。このモジュールの一部のブロックにはQRadioLinkの src/gr/ に対応するソースがなく、その起源は以下の表に示されています。
クレジットと起源:
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アプリケーションから派生または再実装されました。src/gr/ に 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ら、Sensors 2023に基づく。 |
| gr-ident ZMQルーティング | このモジュール | gr-ident プリアンブルPUBとの相互運用。QRadioLink由来ではない。 |
コードはlibFuzzerを使用して広範囲にファジングされ、複数のブロックで1億400万回以上の実行が行われ、クラッシュやメモリリークは発見されませんでした。カバレッジの詳細についてはfuzzing-results/results.mdを参照してください。