PythonとbladeRFでSDR
ソフトウェア無線のプログラミング、皆さんはどんな言語を使っていますか?私達はMATLAB/Simulinkを使ったり、時にはC言語を使ったりしていますが、PythonもSDRとの相性は良いと思います。今回はPythonでSDRにトライしてみました。
WindowsでもPythonは使えますが、ハマってしまうといやなので、今回は最初からLinux環境を用意しました。WindowsにVirtualBoxをインストールして環境構築するところからスタートします。
1 VirtualBoxのインストール
仮想環境はVirtualBoxを選びました。もちろん、VMWareでも問題ありません。
https://www.virtualbox.org/
インストール時の注意点としては①UEFI/BIOSでハードウェア仮想化(Intel VTなど)を有効にすることと、②Windowsの仮想化機構”Hyper-V”を無効化することです。”Hyper-V”はVirtualBoxと競合するのでオフにします。
参考:
https://www.atmarkit.co.jp/ait/articles/1806/25/news026.html
VirtualBoxのインストールそのものは簡単なので省略します。ただしVirtualBoxはUSB3.0がデフォルトで入っていないので、別途有効化しておきます。メモリサイズは2GBもあればいいでしょう。ストレージは10GB程度でしょうか。必要に応じて増減させてください。
参考:
http://ultra-genma.hateblo.jp/entry/2018/04/08/210259
2 Linuxのインストール
今回インストールするのはUbuntu16.04です。もっと新しいバージョンでも動作するかもしれませんが、私が動作させた環境はこのバージョンです。こちらも特に注意すべき点はありません。
参考:
https://qiita.com/ykawakami/items/4bae371932110b2e25e3
3 PothosSDRのインストール
Ubuntuが起動したら、いよいよSDR環境のインストールです。PothosSDR(とSoapySDR)をインストールすると、様々なSDRデバイスをPython(とGo言語)で操作できるようになります。オープンソースなのでソースからビルドする方法もありますが、Ubuntuはapt-getコマンドでインスト―ルするのが楽です。
参考:
https://github.com/pothosware/PothosCore/wiki/Ubuntu
4 bladeRFを繋いでみる
インストールが成功したかどうかは、”SoapySDRUtil --info”コマンドで確認できます。bladeRFを接続した状態で上記コマンドを打つと、接続したbladeRFのシリアルナンバー等の情報が表示されます。
もしうまく動かない時は、bladeRFがVirtualBoxに接続されているかどうか確認します。
5 サンプルプログラムの動作実験
GitHubからサンプルプログラムをダウンロードして動かしてみます。適当なフォルダにGitから下記リポジトリをcloneしてください。
git clone https://github.com/pothosware/SoapySDR.git
VMにgitがインストールされていない場合は先にaptコマンドでインストールします。
% sudo apt install git
サンプルプログラムのフォルダに移動して周波数=1GHz、サンプリングレート=1MHzで起動します。
スペアナがある場合はbladeRFのTx端子をスペアナに繋いで信号が出ていることを確認してみると良いでしょう。
さあこれであなたも、Pythonを使って自由にSDRプログラミングできる環境を手に入れました。
参考:
https://github.com/pothosware/SoapySDR/blob/master/python/apps/SimpleSiggen.py
















