GNU Radio + ADALM-PLUTOであっけなくワンセグ受信ができた
先日購入したADALM-PLUTOをGNU Radioで使って、ワンセグの受信ができました。
これを使いました。https://t.co/VVOhWn2djb
— TT@北海道 (@edy555) 2018年8月21日
GuardInterval 1/8に設定。Manual Gain、IQ Bal, DC OffsetはOFF。
上記で@edy555さんが紹介されている、下記のコードを使用しました。
https://github.com/git-artes/gr-isdbt
基本的には上記GitHubにある通りにmake & installします。そして、examplesディレクトリに入っているrx_1seg_demo.grcを開いて、次の画面のように変更しました。
PlutoSDR Sourceを追加し、テレビ周波数チャンネルを参考に、NHK東京総合の557.142857MHzをLO Frequencyに入力しました。Sample rateは1M, RF bandwidthは500k、後はデフォルトです。また、Low Pass Filterの周波数は1*64/63MHzなので、LPFの前にRational Resamplerを追加して、Interpolation 64, Decimation 63にしました。 また、OFDM Synchronization 1segのGuard Intervalは1/8にします。
上記のサンプルレート変換は、GitHubからリンクされている論文PDFに記載されているFigure 3を参考にしました。
いざ実行しようとしたら、
AttributeError: 'module' object has no attribute 'viterbi_decoder'
といったエラーが表示されました。GitHubにもFAQで書いてありましたが、自分の場合はswigをインストールしていませんでした。それで
$ sudo apt-get install swig
でインストールして、再度gr-isdbtをmake & installしたところ、動作するようになりました。
現在F端子をSMAに変換するアダプタが到着していないので、アンテナとして、秋月で買った、下記のものを使いました。
正直あまり感度は良くありません。アンテナの向きがシビアです。実行時には、次のような画面が表示されますが、 なんとかアンテナの向きを色々変えることで、コンスタレーションが集まるようにすると、コンソールにTMCC OKといった表示がされ、ちゃんとデコードできるようです。
上のダイアグラムの場合だと、test_out.tsというファイルにMPEG TSストリームが保存されるので、ffplayコマンドで保存されたtest_out.tsを開くと、NHKの映像が再生されました。