システム構成

システム構成方法はシンプルです。
ラズベリーパイ3にPiRadio拡張ボードをGPIOソケットでドッキングさせます。 HDMIでモニターに接続、アンテナをSMA(RF入力側)に接続するだけです。
別にBluetoothまたはUSBキーボード、マウスなどが必要になりますが、 ロータリーエンコーダは必須ではありません。キーボードで代用可能です。




コンパイル方法

NFM復調ソフトウェアはソースコードで配布されるためそれぞれの環境でコンパイルが必要です。
コンパイルする前にALSAの開発環境を以下のようにラズベリーパイのターミナル上でインストールする必要があります。

$ sudo apt-get install libasound2 libasound2-dev

NFM復調ソフトウェアのダウンロードはこちら


PiRadio ディレクトリを作り、ダウンロードしたソースファイルをその下に置きます。

ソースコードのコンパイル方法

$ cd PiRadio
$ g++ -I/usr/include/X11 -L/usr/X11 -o piradio piradio.cpp -lX11 -lasound -lm


起動方法

ラズベリーパイのターミナルを起動し、PiRadioディレクトリに移動。
sudo ./piradio でNFM復調ソフトウェアが起動します。
ラズベリーパイのGPIOにアクセスするため管理者権限のsudoが必要になります。



起動時はオシロ画面です。起動時の周波数はデバッグで使用していた地域振興MCA無線の周波数 367.5MHzになっています。 波形が3つありますが、以下のようになっています。

上段: I ch
中段: √(I^2+Q^2) ←RMS波形
下段: Q ch



この波形は100MHzを受信してPiRadio内部のFPGAクロック50MHzの高調波を見ています。 この信号はアンテナがなくても受信できます。

最初にFM放送を受信してみる

最も簡単に探せるFM放送を受信してみます。
SMA端子に50cm程度のホイップアンテナを接続しても受信できます。

[スペース]キーを押すとスペアナ表示になります。この時スパンは1.5MHzです。
ここで東京の場合、キーボードから80[リターン]と入力すると80.0MHzの東京FMに同調されます。
スペアナの中心に東京FMのスペクトルが見えます。



[スペース]キーを再度押すとナローバンドのオシロスコープ画面になります。
この状態でラズベリーパイのヘッドホンジャックから復調音声が出力されます。
ただしこの時の帯域は40kHz(最大48kHz)なのでFM放送の復調には不足しているため 音声は歪んでいます。



[スペース]キーを押すことでスパン1.5MHzのスペアナモードと帯域48kHzの復調モードをスムーズに行き来できます。 ほとんどの場合、スパン1.5MHzのスペアナ画面で信号の探索、選択するのが効果的なためです。

アマチュア無線を受信する

次に48kHz帯域できれいに聞こえるアマチュア無線を受信してみます。
接続するアンテナは屋外に立てたGPやディスコーンなどPiRadioから離れた位置にあるアンテナをお勧めします。

[スペース]キーを押してスペアナ表示にします。
キーボードから145[リターン]と入力すると145.000MHzのアマチュアバンドに同調されます。
下の例では中心より上にすこしずれた場所に強いスペクトラムが立っているのが見えます。 このスペクトラムにマウスカーソルを当ててクリックすると、この周波数が中心になります。



[スペース]キーを再度押すとオシロスコープ画面になり、この通信を傍受できます。
この時の帯域は40kHzなのでアマチュア局の帯域16kHzはきれいに聞こえます。



このとき音声が歪んでいる場合は同調のセンターずれです。 ロータリーエンコーダーを回すと周波数が1kHzずつ変化します。 もっと大きく周波数を動かしたい場合は[↑]または[↓]キーでSTEP周波数を変更できます。 ロータリーエンコーダー以外でも[←]または[→]キーで1STEPづつ周波数を動かせます。

スペアナのスパンを変更する

簡易スペアナ画面はスパンを50MHz、1.5MHz、48kHzの3段階に切り替えられます。

[スペース]キーを押してスペアナ表示にします。
[CTRL]キーを押すたびに Narrow → Mid → Wide とスパンが切り替わります。


Narrow Span=48kHz


Mid Span=1.5MHz


Wide Span=50MHz
エイリアシングフィルタのため帯域30MHzより外側の周波数は感度がありません。


フィルタを切り替える

FIRフィルタとIIRフィルタをそれぞれ5段階で切り替えられます。 FIRは64タップ、IIRフィルタは2次のバタワース特性です。
受信中にキーを押すことでリアルタイムで変更可能です。

Key種類帯域
F1 IIR5kHz
F2 IIR10kHz
F3 IIR20kHz
F4 IIR30kHz
F5 IIR40kHz
F6 IIR48kHz

Key種類帯域
F7 FIR5kHz
F8 FIR10kHz
F9 FIR20kHz
F10FIR30kHz
F11FIR40kHz
F12FIR48kHz

フィルタが切り替わる様子は以下のようにスペアナモードでフロアノイズを見るとわかりやすいです。 中心にノッチがあるのはFIRフィルタにDCカット特性を組み込んであるためです。


FIR fc=48kHz IIR fc=48kHz


FIR fc=20kHz IIR fc=48kHz


FIR fc=48kHz IIR fc=5kHz


その他の機能

キーに割り当てられている機能一覧です。

Key名称 機能   
スペースTune/Mod選局/復調切替
CTRL Domain 時間軸/周波数軸切替
M MODE AM/FM切替
D DEM 復調ON/OFF
A AF 復調波形表示ON/OFF
C CAL DC offset CAL ON/OFF
X XY リサージュ表示 ON/OFF
R REC 波形CSV保存 ON/OFF
TAB SPA オシロ・スペアナ切替

波形CSV保存はオシロ画面中段の√(I^2+Q^2) RMS波形をCVS形式で保存します。
DC offset CALはWideスペアナ表示中のDCオフセット分の除去をON/OFFします。

NFM復調ソフトについて

このNFM復調ソフトウェアはトランジスタ技術2017年1月号の特集記事、 第2章の気象衛星NOAA受信、第3章の黒体放射測定のために作った学習用のソフトウェアです。 そのためGUIなどはシンプルにしてソースコードを読みやすいよう簡素に作ってあります。 営利目的に利用するのでなければ、改造、配布は自由です。


Radiunトップページへ