RTL-SDR.COMというソフトウェア無線のチューナーのウェブサイトにおいてAndroid端末用ソフトウェア無線ソフトの紹介が載っていたので動かしてみました。
Androidのようなタッチパネル端末は操作が難しいので快適に使えるとは言えませんが、ラジオ放送やエアバンドを聞くだけであれば、PCでの受信とほぼ遜色無く使うことが出来ます。
USBチューナーはバスパワーで駆動するため、できるだけ大きなバッテリーを搭載したAndroid端末を使いたいので、先日購入したAmazon Fire HD 10を使いました。
Fire HD 10はバッテリーが6500mAh(想定値)もあり、スマホよりも長時間駆動が期待できます。SDRには最適なタブレット端末です。
準備するもの(端末、USBケーブル、USBチューナー)
- Andoroid端末:ドライバーとアプリが要求するAndroidのOSバーションは4.1以上で、バージョン依存となる処理は無さそうで最近の端末ではどれでも動きそうです。USBチューナーが電力を消費するのでバッテリーが大きい端末が良いと思い、Amazon Fire HDを使いました。
- USB OTGケーブル:USB On-The-GoというAndroidのUSB-Cコネクタをホストにするケーブルが必要です。OTGケーブルは結線が特殊ですので単にUSB Type-Cオス→Type-Aメスに変換しただけでは動作出来ませんので注意してください。
- USBチューナーとアンテナ:RTL2832が乗ったチューナー(RTL-SDR.COMや海外ワンセグTV受信用)、または、HackRF oneに対応します。今回はモバイルで強電界の無線を受信する用途として使いますので、2,000円以内で購入できる安価なUSBチューナーでも十分楽しめると思います。
USBチューナーの選定に迷った場合は、周波数精度が良く、短波帯域もそこそこ受信できるRTL-SDR.COMをおすすめします。HackRF oneは素晴らしい性能を持っていますが、ファームウェアが乗っているため、メンテナンスが難しく玄人向きです。
ソフトの入手とインストール
ソフトはチューナードライバーとアプリの2つが必要となりますが、Android用SDRソフトにおいて、無償で使えるものがほとんどなく、あまり選べません。
今回は以下の2つのソフトを使わせていただきました。
- チューナードライバー:SDR Driver (有償版SDR Touchのドライバーで無償)
- チューナーアプリ:RF Analyzer (SDR Touchは有償版なのでフリーソフトのこちらを利用)
インストールをすると、すぐにタップしてソフトが起動するようになりますから、試しに動かしてみると良いでしょう。
RF Analyzerはとても軽いソフトでサクサク動きますから、VHF帯のアナログ受信はこのソフトだけで十分でしょうね。
他にもタイトルを見て使えそうなアプリを一通り入れて使ってみましたが、rtl_tcp経由(PCからLANでサンプルデータを転送する方式)や、飛行機のACARS受信専用だったりしたので、広帯域受信としては使えるものはありませんでした。
Android端末とUSBチューナを接続する
Android端末とUSBチューナはOTGケーブルで接続します。ここは単に差し込んで接続するだけでとても簡単でした。
アンテナはチューナーに付属しているおまけのFMアンテナでも十分楽しめます。
RF AnalyzerでFM放送を受信してみる
受信は、RF Analyzerを起動して、設定画面からSouce TypeとSource Settingsより、USBチューナーをRTL-SDRを設定すると、スペクトラムアナライザに受信波形が表示されます。
起動時の音声復調は「OFF」になっており、いきなり大音量がならないよう配慮されています。PCのSDRではいきなり大音量の雑音が出てびっくりすることがあったので親切な設計だと思いました。
近隣の100KW級FM放送局の電波を受信し、画面に電界強度が正常に表示できることを確認します。(東京:80.0MHz, 大阪85.1MHzあたりが強力な送信局です。)
FFTサイズは最大の65536にしておくとより幅広いスペクトラムが表示できるようになります。FM放送帯域では波形を見ているだけでも面白いのでおすすめの設定です。
希望する周波数が画面に出ていたら、変調方式を設定します。FM放送局は帯域200kHzのWideFMですので「WFM」を選択すると、音声が聴こえるようになります。
変調方式の概要はPCのSDRで解説していますので適宜参照してください。
エアバンドもよく聞こえる
空港の無線連絡に使われるエアバンドも普通に聞くことが出来ます。エアバンドはAM変調によるアナログ通信が使われているのでこのSDRでそのまま聞くことが出来ます。
近隣エアバンド(110MHz近辺)のタワー局の周波数に合わせ、復調方式に「AM」を選ぶと聞こえます。
しかし、エアバンドは無線交信時にしか電波は出ませんし、飛行場の運用時間外では聞こえません。
RF Analyzerにはチャンネルスキャンの機能がありませんので、受信する際はタワー局にチャンネルを固定して聞くようにしたほうが良さそうです。
RTL-SDR.COMのダイレクトサンプリングは動作しない
RF Analyzerは、USBチューナーのSource 設定に「direct_samp=2」が存在しませんので、RTL-SDR.COMのダイレクトサンプリングモード(受信アンプが機能しない領域の波形サンプリングデータをPCに転送するモード)で動作させることは出来ないようです。
筆者はHack RF oneも持っており、Souceを「Hackrf」にしてAM放送を受信をしてみたところ、RF Analyzer受信画面が妙に不安定でした。AM放送の音声デコードもノイズ混じりで復調するのがやっとというレベルです。
AM放送は、USBチューナーの受信可能周波数が下限付近で動作させることになるので、いろいろな設定を適切に合わせる必要があり、RF Analyzerではきれいな音声で復調することはできないと思います。
このような使い方はニッチなニーズとなるので、GNURadioでプログラムしないと受信できるようにならないように想定します。
波形記録は出来ますが音声録音は出来ません
RF Analyzerに録音ボタンらしきものがありますが、音声に復調したものではなく、電波をサンプリングした信号データを記録するものとなっています。
信号データを記録しておくと後で音声の復調することもできますが、データ量が大きいのでストレージの量に注意して使うほうが良さそうでした。
今後の発展
2020年にAndroid Studio (Androidアプリ開発プラットフォーム)を使ったGNUradioのツールキットがリリースされており、Android上でもGNURadioでプログラムが組めるとの記事がありました。
Android Studioはプログラム経験者でないと、なかなか踏み込むことができない領域ですが、時間を見つけてチャレンジしてみたいと思います。