公開資料
FIRフィルタの振幅・位相・群遅延特性を計算してグラフ表示するコード
finite impulse response(FIR)ディジタルフィルタのインパルス応答ファイルを読み込みして,振幅・位相・群遅延特性を計算してグラフ表示するMATLABコードgpd_fir.mとテスト用インパルス応答ファイルlpf65.txtをgpd_fir.zipとして公開します.Signal Processing Toolboxに含まれるfreqz( )関数を使用していますが,サンプリング周波数Fsで正規化した正規化周波数で結果を表示していることがミソです.どなたでも,無償で使用・改変していただいて結構です.Signal Processing Toolboxでの正規化周波数は,ナイキスト周波数(Fs/2)で正規化した正規化周波数になっているようです.これは本来の正規化周波数の2倍の値に見えます(ちょっと不便です).下記のコードは,この不便さを解消します.信号処理分野を学ぼうとされる初学者の方にぜひお使いいただきたいコードです.
位相同期機能を備えたGNU Radio Companionのための独自ブロックのソースコード
下記の研究会資料やポスタ発表で紹介した,USRP N200シリーズやUSRP X300シリーズのための周波数/位相同期機能を備えたGNU Radio Companion (GRC)用の独自ブロックのソースコードです.GPL v3ライセンスで公開します.GNU Radio 3.8.4 + UHD 3.15の環境で,SBX-120あるいはSBXドータボードに対応しています.ソースコードの開発者は,T. Nakahama氏です.性能評価には,H. Nakamura氏が貢献しています.PybombsによりGNU RadioをインストールしたLinuxマシンで,cmake, make, make install, ldconfigを行い,GRC上で独自ブロックを利用可能にします.ビルド手順は,この記事とこの記事に詳細に記載してあります.SBXドータボードやUBXドータボードは,LO(local oscillator)を外部から供給して共有するハードウェア的な機構を有しません.このため,C++やPythonでUHD timed commandの機構を利用して同期を意識したコードを記述するか,または以下に示すGRC用独自ブロックをGRC上で使用することが,LO位相同期を実現する主要な手法であると考えられます.
中村陽斗, 山田洋士, 亀田 卓, 末松憲治, “UHDによるLO位相同期を適用したUSRP/ドータボード間の位相同期性能評価," 電子情報通信学会 技術研究報告 スマート無線 SR2021-69, vol. 121, no. 345, pp. 46-53, Jan. 2022.
Y. Yamada, T. Nakahama and H. Nakamura, “Source Code Release of Own Functional Blocks for GNU Radio Companion that Enables Phase Synchronization of USRP N200 / X300 devices," IEICE 2021 International Conference on Emerging Technologies for Communications, P4-9, Dec. 2021.
USRP N200およびX300シリーズ用の同期を確立するための付加コード
GNU Radio上でUHD(USRP Hardware Driver)の機能を利用して複数台のUSRPおよびドータボード間での動作タイミングの同期と位相同期を行う3種類のPythonコードの実装例が,下記からダウンロード可能です.この実装例は,USRP N200シリーズおよびX300シリーズをSBXまたはBasic TX/RXドータボードと組み合わせて使用する場合を対象としています.(a)1台のUSRPで送信・受信を同時に実行する場合,(b)2台のUSRPで位相の揃った同時受信を行う場合,(c)2台のUSRPで送信・受信を同時に実行する場合に,GNU Radio Companion(GRC)で付与されないUHDのプロパティ値をUHD Timed Commandsを用いて指定することで目的を達成していますので,GRCで生成されたPythonコードに10~20行程度の同期確立用のPythonコードを追記する形態での実装例となっています.
GRCのフロー図を作成する際に,X300シリーズやN200シリーズならびに使用ドータボードに合わせた記述をしていただき,本付加コードでタイミング・位相同期を確立することから,X300シリーズやN200シリーズなど異なる種類のUSRP/ドータボードに同一の付加コードで対応しています.この実装例は,実験室内での無線信号の観測・測定などにUSRPを用いる際に,便利な機能を提供します.使用条件を,下記の README.pdf に記載しております.SR2020_34_code.zip をダウンロードする前に,使用条件をご確認下さい.
上記について,下記の研究会で報告いたしました.研究会でのプレゼン資料は,こちらからダウンロードできます.
中浜智也, 山田洋士, 亀田 卓, “GNU Radioを用いたUSRPおよびドータボードでの位相同期の実装例," 電子情報通信学会技術研究報告 スマート無線 SR2020-34, vol.120, no.238, pp.74-81, 2020年11月19日.
USRP X300シリーズでのインパルス応答測定プログラムの実装例
下記の論文で扱った内容の実装例のコードを公開します(準備中).
中浜智也, 山田洋士, 亀田 卓, 本良瑞樹, 末松憲治, “ソフトウェア無線機USRP X300を用いた非因果的成分を考慮したチャネルインパルス応答測定," 電子情報通信学会論文誌, vol.J104-B, no.3, pp.199-209, Mar. 2021. 早期公開日:2020年11月9日. DOI: 10.14923/transcomj.2020GWP0019