RaspberryPiとLimeSDRを用いたGNURadioの動作

2 min read

RaspberryPiとLimeSDRを用いたGNURadioの動作

前回の記事ではRaspberryPi上にSDR用の環境を構築したため、今回の記事ではGNU Radioを用いてLime SDRを動作させて信号の送信と受信を行いたいと思います。

動作構築

()は私が使用したもの

  • RaspberryPi(RaspberryPi4 8GB)
  • LimeSDR
  • SMAケーブル
  • 減衰器(10dB)
  • USB電源とか

##動作環境

GNURadioを用いたプログラム構築の流れ

  1. LimeSDRのセットアップ
  2. GNU Radioの動作
  3. 作成途中のつまづきポイント

1. LimeSDRのセットアップ

まずは下記のようにSDRをセットアップします。
RaspberryPiからUSB3.0でLimeSDRに接続します。また、今回使用するSDRの出力ポートと入力ポートを減衰器10dBをかませてつなぎます。減衰器をかませる理由は誤って大きな出力信号が入力ポートに入り、SDR自体の故障を防ぐためです。

2. GNU Radioの動作

作成したプログラム

https://github.com/Raspberry765/limesdr/blob/main/transmitter_and_receiver.grc
今回作成したGNU RadioのプログラムはFM_transmitter.grcとFM_receiver.grcのサンプルプログラムを合わせたものになります。信号はSignal Sourceにより正弦波を生成し送信する簡単なプログラムになっています。

作成したプログラムを動かすためにLimeSDRのDEVICE serialをLimeSDR Sink(TX)とLimeSDR Sink(RX)を入力する必要があります。

まず、LimeSDR Sink(TX)をクリックして設定GUIを開きます。
そうすると下記の画面の場所にDevice serialの項目があります。この場所に使用するLimeSDRのserialを入力します。

LimeSDRを接続した状態で、コマンドプロントを立ち上げます。Cmd上で下記のコマンドを入力する。

pi@raspberrypi:~ $ LimeUtil --find
  * [LimeSDR-USB, media=USB 2.0, module=FX3, addr=1d50:6108, serial=**************]

serial=のの英数字をコピーしてDevice serialの方に貼り付けます。記事を書く際にSerialをにしてあります(する必要性はないかもしれませんが)。

入力が完了したら、実行ボタンをクリック

そうすると下記の画面が表示されます。左側が送信側、右側が受信側になります。

受信側の波形が送信側に比べて歪んでいるので、この原因が気になりますが受信は出来ています。

3. 作成途中のつまづきポイント

ここでは本プログラムを作成する上でつまづいた箇所の場所を解説します。

1. QT CUI ChooserのDefaultの設定

サンプルプログラムのFM_transmitter.grcとFM_receiver.grcでもそうでしたがQT CUI ChooserのDefault optionを255⇒0にする必要性があります。この原因は定かではありませんが、PythonのVerとGNU RadioのVerが関係するようです。

次は変調方式等を実装して信号を送信してみたいと思います。