GNU Radio

SDRSharp が動かなかったので GNU Radio を使ってみることにしました。

インストール

$ sudo apt-get install -y gnuradio gr-osmosdr

起動

 メニューのプログラミングから起動してもいいですが、コマンドラインから起動するには、次のようにします。

$ gnuradio-companion

 ブロックを追加してつなげていくようです。Gstreamer をグラフィカルにした感じです。

ブロックを作成してつなげていく

 ブロックを組んでみたが実行できません。F6 を押すとで実行できましたが、xterm がないと怒られました。なぜ?

 とにかくインストールしました。

$ sudo apt-get install xterm

 Audio Sink(ALSA) を使って復調した音を鳴らそうとしましたがエラーになりました。

Generating: '/home/pi/Downloads/top_block.py' Executing: /usr/bin/python2 -u /home/pi/Downloads/top_block.py qt5ct: using qt5ct plugin gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.13.4 built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp Using device #0 Generic RTL2832U SN: 77771111153705700 usb_claim_interface error -6 FATAL: Failed to open rtlsdr device. Trying to fill up 1 missing channel(s) with null source(s). This is being done to prevent the application from crashing due to gnuradio bug #528. gr::log :INFO: audio source - Audio sink arch: alsa gr::log :ERROR: audio_alsa_sink0 - [default]: set_channels failed: 無効な引数です Traceback (most recent call last): File "/home/pi/Downloads/top_block.py", line 171, in main() File "/home/pi/Downloads/top_block.py", line 160, in main tb.start() File "/usr/lib/python2.7/dist-packages/gnuradio/gr/top_block.py", line 109, in start top_block_start_unlocked(self._impl, max_noutput_items) File "/usr/lib/python2.7/dist-packages/gnuradio/gr/runtime_swig.py", line 5656, in top_block_start_unlocked return _runtime_swig.top_block_start_unlocked(r, max_noutput_items) RuntimeError: check topology failed on audio_alsa_sink(7) using ninputs=1, noutputs=0 >>> Done (return code 1)

 Audio Sink のデバイス名を hw:0,0 とか hw:0,1 とかいろいろ変えてみてもだめでした。

 https://github.com/lutusp/PLSDR/issues/6 に書かれていることを見ると、Audio Sink の Input を 2 にする必要があるようです。入力が 2 つ必要になりますがとりあえず、同じものを2つつなぎました。再生はできるようになりました。

ブロック図
実行した画面

 ちゃんと動くようです。ちょっと使ってみみましょう。

http://www.asahi-net.or.jp/~ei7m-wkt/numb1044.htm が参考になりそうです。

今回使った GNU Radio のブロック図は各種ダウンロードからどうぞ。

Raspberry Pi

Posted by sirius