システム構成
システム構成方法はシンプルです。
ラズベリーパイ3にPiRadio拡張ボードをGPIOソケットでドッキングさせます。
HDMIでモニターに接続、アンテナをSMA(RF入力側)に接続するだけです。
別にBluetoothまたはUSBキーボード、マウスなどが必要になりますが、
ロータリーエンコーダは必須ではありません。キーボードで代用可能です。
コンパイル方法
NFM復調ソフトウェアはソースコードで配布されるためそれぞれの環境でコンパイルが必要です。
コンパイルする前にALSAの開発環境を以下のようにラズベリーパイのターミナル上でインストールする必要があります。
$ sudo apt-get install libasound2 libasound2-dev
NFM復調ソフトウェアのダウンロードはこちら
NFM復調ソフト V1.00
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 | IIR | 5kHz |
F2 | IIR | 10kHz |
F3 | IIR | 20kHz |
F4 | IIR | 30kHz |
F5 | IIR | 40kHz |
F6 | IIR | 48kHz |
Key | 種類 | 帯域 |
F7 | FIR | 5kHz |
F8 | FIR | 10kHz |
F9 | FIR | 20kHz |
F10 | FIR | 30kHz |
F11 | FIR | 40kHz |
F12 | FIR | 48kHz |
フィルタが切り替わる様子は以下のようにスペアナモードでフロアノイズを見るとわかりやすいです。
中心にノッチがあるのは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トップページへ