お知らせ

2019年05月19日

CQ ham radio編集部

「今日から始める ハムのSDR入門」第4回 gr-ARPSを動かす&ADS-Bの受信に挑戦

※本記事は,CQ ham radio 2019年6月号掲載の「今日から始める ハムのSDR入門」(筆者:JG1UDL 藤井 義巳)の補足ページです.下記は,すべてフリー版の仮想環境 VMware 上に構築したLinux環境で作業します.もちろん,Linux専用のPCをご用意いただいても構いません.


 

gr-APRSを動かす

 ■ gr-APRSプログラムのダウンロード

 まず,「端末」を開いて以下のコマンドを入力してgr-APRSのソースツリーを任意のフォルダに展開します.

 yfujii@ubuntu:~$ mkdir gnuradio-dev
 yfujii@ubuntu:~$ cd gnuradio-dev
 yfujii@ubuntu:~/projects$ git clone
               https://github.com/handiko/gr-APRS

 (git clone に続けてURLを入力しましょう.上記は見やすさのために改行しています.)

 ディレクトリ名などは一例です.gr-APRSというフォルダが作られ,その下に必要なソースファイルなどが格納されます.

■ Hier(階層)ブロックAFSK_Demod.grcのインストール

 次に,二つの「階層ブロック」をインストールします.
階層ブロックとは,GnuRadioのブロック(モジュール)をフローグラフで作ったブロックです.
まず最初にAFSK_Demod.grcをインストールします.順番に注意しましょう.
HierBlockディレクトリの下にあるAFSK_Demod.grc(図A)を開いて実行(F6)してください.これだけでインストールは完了です.


図A 階層ブロックAFSK_Demod.grc

 ※ 本誌に掲載のものとは図が異なりますが,動作に影響はありません.本誌にはブロックの説明を追加している都合上,わかりやすく並び替えてあります.

■ Hier(階層)ブロックAPRS_Rx.grcのインストール

 階層ブロック”APRS_RX.grc”をインストールします。HierBlockディレクトリの下にあるAPRS_RX.grcをGRCで開き(図B)、AFSK_Demod.grcと同様「実行(F6)」するだけです。


図B 階層ブロックAPRS_RX.grc

 

 ここまで準備ができたら,本誌の説明の通り,APRS_WAV.grcを実行してみましょう.

 

ADS-B受信に挑戦

ADS-Bの概要

 ADS-B(Automatic Dependent Surveillance-Broadcast)とは,空中衝突防止装置(TACS: Traffic alert and Collision Avoidance System)を搭載した航空機が,1030MHzで他の航空機からの問い合わせがあった時に1090MHzで送信する自らの位置情報を含む情報を,問合せが無くても定期的に同じ周波数で送信(放送)する信号です.

  • 変調:パルス時間変調
  • データ転送速度:1 メガビット/秒
  • 短スキッタ長:56 マイクロ秒
  • 拡張スキッタ長:112 マイクロ秒

 

■ GnuRadioでADS-B受信

 APRSと同様,ADS-BもGnuRadioの既存モジュールだけでは受信機をつくることができません.gr-APRSの場合はHier Blockという手法で既存ブロックを使って新しいブロックを作りましたが,ここでご紹介するgr-adsbは本誌2019年5月号でご紹介したOOT(Out Of Tree)モジュール,つまりGnuRadioのメニュー(ツリー)に無いモジュールをC++とPythonで実装して組込みます.

■ ADS-B OOTモジュールのインストール方法

 まずは以下のURLからソースをクローン(あるいはZIPを展開)して用意しましょう.
https://github.com/mhostetter/gr-adsb.git
Linuxのソフトウェアをソースからビルドする手順をご存知の皆様にはお馴染みの方法でビルド手順を実行します.

$ cd gr-adsb
$ mkdir build

$ cd build
$ cmake ../
$ make
$ sudo make install
$ sudo ldconfig

これでGnuRadio Companionを起動し直すと,ブロックツリーにadsbモジュールが追加されています.


図C ADS-B OOTモジュールがモジュールツリーに追加される

 次にadsb_rx.grcを開いて一部修正を加えます.
UHD(USRP)ソースブロックを右クリックしてポップアップメニューから無効化します.
無効化したブロックは,リンクをクリックして選択⇒[DEL]で接続を切り離しておきましょう.


図D UHD(USRP)ソースブロックを無効化

 UHDブロックの代りに,RTL-SDRブロックをリストから選んで配置します.
パラメータ設定はUHDブロックに合わせて設定します.


図E RTL-SDRソースブロックの設定(3ヶ所)

完成したフローグラフは図Fに示す通りです.


図F ADS-Bフローグラフ(USRPをRTL-SDRに置換している)

 これで準備は完了です.
早速,RTL-SDRドングルにアンテナを接続して実行してみましょう(図G).
時系列の信号強度(復調結果)のグラフと共に,コンソールエリアにはデコードされた航空機の情報が次々と表示されると思います.
 お住まいの近くに空港が無い場合でも,
Flightradar24(https://www.flightradar24.com)などで上空を航空機が飛行するタイミングを見計らって受信にトライしてみてください.
アンテナなどの条件次第ですが100km~300km以内の距離なら受信できると思います.

図G フローグラフを実行してみる

 

最新記事

カテゴリー