SDRSharpをWi-Fiネットワークで受信

SDR(Software Defined RADIO)を日本では、ソフトウェアラジオまたはソフトウェア無線などと呼ばれている。SDRはハードウエアの性能に依存するが、広帯域受信が可能であり、WindowsやLinuxのOS上で作動するソフトウェアである。受信チューナーには、おおむね24MHzから1700MHzが受信可能なドングル(Dongle)と呼ばれるUSB TVワンセグチューナーを使用し、周波数をコンバートすることでLF/MF/HFの受信も可能になる。なお、受信周波数帯に必要なアンテナの接続は必須である。

よく使用されるPC用SDRフリーウェアでは、[SDRSharp]、[HDSDR]など、スマホ用では[SDRoid]などが挙げられる。

ここでは、RTL2832をベースにしたDVB-Tレシーバ用のI/Qスペクトラムサーバー[rtl_tcp]を使用し、[SDRSharpをWi-Fiネットワークで受信]する方法を記す。

受信方法は至って簡単、本機PCに[rtl_tcp]をサーバーとして構築し、Wi-FiやLANケーブルにつながれたクライアント側でSDRSharpを作動させる。これによりサーバーが稼働していれば、他の部屋や離れた場所などで、SDRSharpの受信が楽しめるというものである。

※ 関連記事 ➡ HDSDRをWi-Fiネットワークで受信

1、フロー図

アンテナからドングルのチューナーへ入った受信信号は、A/Dコンバータ回路でアナログ-デジタル変換され、USB回路でパソコンへ導かれる。その信号を、I/Qスペクトラムサーバー[rtl_tcp]が読み取り、拾ってくれる相手を待つことになる。クライアント側ではその信号を、Wi-FiまたはLANケーブルで拾い[SDRSharp]で披露することになる。

2、USB TVワンセグチューナー

チューナーチップに[Elonics E4000]、[Rafael Micro R820T,R828D]、[Fitipower FC0012,FC0013]、[FCI FC2580]のICが搭載されており、デコーダーチップに[RTL2832U]ICが搭載されているものを使用する。(通称ドングルと呼ばれる)

※ ドングルの詳細は ➡ ここを参照。

現在ほとんどが中国製で、入手するには、[RTL2832U+R820T2]で検索し、インターネット購入となる。

参考 入門用としてはこのようなものでも十分作動する。

【 2019/02/22現在 】

ゾックス USBワンセグチューナー DS-DT308SV(¥748 配送料無料)

チューナーチップは[FC0013]LSIを、デコーダーチップに[RTL2832U]LSIを使用している。

3、rtl_tcp サーバーの構築およびバッチファイル作成

[DVB-Tレシーバ用のI/Qスペクトラムサーバー]を入手し、ネットワークを構築する。

rtl-sdr.comから、RTL-SDRドライバ[RelWithDebInfo.zip]をダウンロードし解凍する。解凍すると[rtl-sdr-release]フォルダが生成される。

フォルダを作成して任意名を付ける。

● 解凍した[rtl-sdr-release]フォルダ内から、サーバーを構築するPCに合わせて[×32]または[×64]のフォルダを開く。

● 開いたフォルダ内にある下記の4個のファイルを、❷で作成したフォルダ内に入れる。
※ PCが64bitの場合。

libusb-1.0.dll
pthreadVC2-w64.dll
rtl_tcp.exe
rtlsdr.dll

● 作成したフォルダの置き場所は任意で構わない。
※ ここでのフォルダ名は、[rtltcp]とし、Cドライブのカレントへ置いた。

メモ帳などで、下記のバッチファイルを作成する。
※ バッチファイルとは、コマンドプロンプトの実行ファイルである、

@ECHO OFF
cd /d "C:\rtltcp"
start /min rtl_tcp -a 192.168.1.100

● 作成したら任意名を付けて保存し、拡張子を[.bat]にする。

● ファイルの置き場所は任意で構わない。
※ ここでのファイル名は[rtltcp.bat]とし、デスクトップに置いた。

〇 2行目の["C:\rtltcp"]は、Cドライブのカレントに[rtltcp]フォルダを置いた場合。

〇 3行目の[/min]は起動と同時に最小化でタスクバーにピン止めする場合。デスクトップに表示したい場合は削除する。

〇 3行目の[192.168.1.100]は、サーバー用PCのプライベートIPアドレスである。

・プライベートIPアドレスは、[192.168.~]で始まるクラスCを使用する。

[127.~]で始まるクラスBのローカル ループバック アドレスは、サーバー用PCで、SDRSharpを作動させるには問題ないが、クライアントは他のPCのため無論接続できない。

・IPアドレスを固定していない場合は、[0.0.0.0]の全てオンでも問題はないが、長く楽しむのであれば固定した方が無難である。

〇 ポート番号を変更したい場合は、IPアドレスの後に、[start /min rtl_tcp -a 192.168.1.100 -p 4500]のように半角空け、同じ行に連続して設定する。

※ 参考 ディバイスの引数を示す。

-aリスニン アドレス
-pリスニン ポート(デフォルト:1234)
-fチューニング周波数[Hz]
-gゲイン(デフォルト:autoの場合は0)
-sサンプルレート(デフォルト:2048000 Hz)
-bバッファ数(デフォルト:32、ライブラリで設定)
-n保存するリンクリストバッファの最大数(デフォルト:500)
-ddevice_index(デフォルト:0)

[rtl_tcp]I/Qスペクトラムサーバーの詳細については ➡ ここを参照すること。

4、バッチファイルの起動およびパラメータの入力

クライアント側に、SDRSharpのソフトウェアが導入されていることを前提に記すが、まだ導入していない場合はこのウェブサイトで紹介している ➡ SDRSharp ソフトウェアラジオが参考になると思う。

なお、SDRSharpをクライアントPCのみで使用するのであれば、サーバーPCに導入する必要はない。

サーバーPC側で、バッチファイルを起動する。
SDRSharpを起動する前に、サーバーPC側で前記3の❸で仕込んだ[バッチファイル]をダブルクリックして立ち上げておく。

立ち上げると小窓が一瞬現れタスクバーに張り付く。小窓の内容を確認したい場合は、タスクバーに張り付いたアイコンをクリックすると、下のコマンドプロンプトの小窓が再度現れる。

小窓内に、['rtl_tcp=192.168.1.100:1234']と、設定したIPアドレスになっているのが確認できる。(下線部分)

クライアントPC側で、SDRSharpのソフトを起動する。
SDRSharpが起動したら、プルダウンメニューの[Source:]をクリックして、さらにプルダウンメニュー内の[RTL-SDR(TCP)]を選択する。

パラメータを設定する。
歯車のマークの設定アイコンをクリックすると下記のダイアログが現れるので、入力フォーム内に[サーバーPCのプライベートIPアドレス]および[ポート番号]を入力する。
※ 例
・ [Host]のフォーム内に[192.168.1.100]
・ [Port]のフォーム内に[1234]

入力文字を確認後ダイアログを閉じる。

5、クライアントPCのSDRSharpをスタートする

さて、やっとスタートできる。「ちょっと待って!」サーバーPCのバッチファイルは起動した状態であるかもう一度確認する。起動していないと入力したパラメータと一致するディバイスを探し続けるので、いつまでも固まった状態になる。

うまくスタートできれば下の画像のように、[クライアントを受け入れたよ!]とのメッセージを出し、進行状況を表示してくれる。(白線より下)

下の画像は、LenovoノートPCをクライアントとして作動させ、7MHz帯のアマチュアバンドを受信している様子である。

※ 参考 Wi-Fi機器の速度は、子機側の電波レベルで100Mbpsでは音声が途切れてきついので、電波状況によるが、子機側で最低でも150Mbps又はそれ以上出せる機器であれば問題なさそうである。

6、最後に

無線通信で、クライアントPCからサーバーPCを操りながら送受信する場合は、リモート操作でないとうまくないが、受信のみはここで記してきた方法で行えば、サーバーPCに大きな負担をかけずに済むので、PCの寿命は多少延びるだろう。

筆者は、HPのサーバーPCにドングルを差し込み、ここで作成したバッチファイルを作動させ、他の部屋にノートPCを持ち歩き、SDRの受信を楽しんでいる。

page_top