SDR(2)-RTL-SDRを使ってFM放送受信

このエントリーをはてなブックマークに追加

前回は、「GRC」をインストールして実際に使用してみました。具体的には、cos波を出力してみました。前回の内容は下記より参照できます。

SDR(1)-GRCを使ってみる

今回は、「GRC」を使用して、FM放送を受信してみようと思います。使用するSDRデバイスは、「RTL-SDR」になります。下記のような流れで進めていきたいと思います。

  • 「RTL-SDR」のドライバをインストール
  • 「SDR#」を使用して、FM放送の受信
  • 「GRC」を使用してFM放送の受信

「GRC」でFM放送を受信してみる前に、「RTL-SDR」が「SDR#(受信した無線電波を処理してくれるソフトウェア)」を使用して動作するかどうか確認してみようと思います。

まずは、「RTL-SDR」のドライバのインストールからです。

「RTL-SDR」のドライバをインストールするときには、「zadig」というソフトウェアを使用します。「Windows10」に対応したドライバがないようなので、このようなソフトウェアが用意されているですかね?「SDR#」のパッケージに含まれていますので、まずは下記のサイトよりダウロードします。

https://airspy.com/download/

参考にですが、下記のサイトより直接「zadig」をダウンロードすることも可能です。

https://zadig.akeo.ie/

「SDR#」をダウロードしたら解凍します。その中の「install-rtlsdr.bat」を実行します。すると、「zadig.exe」が同じフォルダにダウンロードされます。「zadig」がダウンロードできたので、まずは、「RTL-SDR」をPCに接続します。私の場合最初は認識せずに、「Bulk-In, Interface (Interface 0)」と「Bulk-In, Interface (Interface 1)」が表示されていました。ここで私は間違って、ドライバの更新をしてしまい、「サウンド、ビデオ、およびゲームコントローラ」の「REALTEK 2832U Device」として認識してしまいました。この状態で、「SDR#」を試してみましたが、動作はしませんでした。そこでダウンロードした「zadig.exe」を実行して、ドライバを変更しました。「zadig.exe」を実行して、メニューの「Options」→「List All Devices」を選択します。

すると、下記のように「Bulk-In, Interface (Interface 0)」を選択できるようになります。「Bulk-In, Interface (Interface 0)」を選択したら「Replace Driver」を選択して、ドライバを変更します。

変更が完了したので、デバイスマネージャで確認すると、ユニバーサルシリアルバスデバイスに「Bulk-In, Interface」として認識されています。これでドライバの設定は完了です。

ダウンロードして解凍したSDR#フォルダの中にある「SDRSharp.exe」を実行します。すると、「SDR#」が起動します。

歯車マークを選択すると、デバイスの選択画面が右側に表示されました。現在、「AIRSPY」と選択されているので、これを、「RTL-SDR USB(Original)」に変更します。

もう一度歯車マークを選択すると、下記のようにRTL-SDR Controller画面が表示されます。ここで、RF Gainなどを設定できます。

あとは、Radioより「WFM」を選択して、中央に表示されている周波数をFM放送の周波数に設定します。

再生ボタン「▶」を押すと受信を開始します。FM放送が受信できました。これで、「RTL-SDR」の動作確認ができたので、次は「GRC」を使用してFM放送を受信してみたいと思います。「GRC」を起動して下記のようにボックスを配置して接続しました。

配置したボックスは、「RTL-SDR Source」「LowPass Filter」「WBFM Receive」「Audio Sink」「QT GUI Time Sink」「 QT GUI Range」になります。「RTL-SDR Source」は、ライブラリ→(no module specified)→Source→RTL-SDR Sourceをドラッグ&ドロップするか、ダブルクリックすることで、追加できます。まだ試していませんが、osmocom Sourceでも問題ないと思います。ここで、選局しています。「Low Pass Filter」は、ライブラリ→Core→Filters→Low Pass Filterをドラッグ&ドロップするか、ダブルクリックすることで、追加できます。ここで、高周波成分を除去しています。「WBFM Receive」は、ライブラリ→Core→Modulators→WBFM Receiveをドラッグ&ドロップするか、ダブルクリックすることで、追加できます。ここで、復調しています。

「Audio Sink」「QT GUI Time Sink」「QT GUI Range」に関しては、前回設定したので下記のサイトを参考にしてください。

SDR(1)-GRCを使ってみる

「RTL-SDR Source」ブロックで設定したパラメータは下記の通りです。その他はデフォルト値です。

  • Device Arguments = rtl=0
  • Sample Rate(sps) = samp_rate*50
  • Ch0:Frequency(Hz) = vairiable_qtgui_range_0 ※QT GUI RangeのID
  • Ch0:Gain Mode = Automatic

この「Device Arguments」に悩まされました。デバイスを引数で設定する必要があるようです。「Low Pass Filter」ブロックで設定したパラメータは下記の通りです。その他はデフォルト値です。

  • Decimation = 5
  • Sample Rate = sample_rate*50
  • Cutoff Freq = 150e3
  • Transition Width = 50e3

「WBFM Receive」ブロックで設定したパラメータは下記の通りです。その他はデフォルト値です。

  • Quadrature Rate = samp_rate*10
  • Audio Decimation = 10

「Audio Sink」ブロックはデフォルト値のままです。

「QT GUI Time Sink」ブロックで設定したパラメータは下記の通りです。その他はデフォルト値です。

  • Type = Float

「QT GUI Range」ブロックで設定したパラメータは下記の通りです。その他はデフォルト値です。

  • Default Value = 80e6
  • Stop = 100e6
  • Step = 1e5

これで、作成は完了したので、実行します。FM放送を受信することができました。

2023年1月28日 | カテゴリー : SDR | タグ : , , , | 投稿者 : prog