ADS-B信号の受信データを詳細分析してみた

2024年3月25日

最近、RTL-SDRというUSBドングルといくつかのソフトウェアで航空機から発せられるADS-B信号を受信する遊びをしています。解析結果は地図にプロットしてみていたのですが、実際の信号にどんな情報が含まれていいてどのくらいの頻度で通信されているのかが気になります。

RTL-SDR Blog V4でADS-Bを受信しFlightradar24とFlightAwareにデータを送信 ①(dump1090-fa設定まで) | ぶっ飛び工房 (short-flight-works.uh-oh.jp)

そこで、今回は、Dump1090-faで受信したADS-B信号をポート30005からBeastフォーマットで取り出し「pyModeS」というPythonのモジュールを使って、データを解析してみます。

信号の分析方法

DUMP1090-faが動いているLinuxのパソコンで下記のコマンドでBeastフォーマット(バイナリ形式)のデータとして保存します。

>ncat localhost:30005 > adsb_log.dat

後は、リンクの情報を参考にpyModeSでデータを解析します。

受信したデータ数

2024/3/21の20:30~21:30に自宅(石川県2024/3/21の20:30~21:30に自宅(石川県)にてdump1090-faで受信したADS-B信号をBeastフォーマットで記録し、内容の内訳を分析しました。 ADS-B信号は合計で685,560メッセージを受信した。平均190個/秒ほどである。Skyawareで見た表示でも同じくらいの受信レートだったので、正確な値だと思います。

受信できた信号の飛行機の数は何機でしょうか?ICAOコード数を確認しました。ユニークなICAOコードは175機分でした。ざっくり計算では1機から平均3,900回ほど信号を受信したことになります。自宅の受信機の受信範囲内を飛行機が通過するのにかかる時間が1時間とすると1Hzで送信される位置情報は3,600回信号を受信することになります。そのため、先のざっくり計算もおおむね合っていそうです。

受信メッセージの内訳

受信したADS-B信号にはどんな種類の信号があるのか、内訳を調べてみました。

フレームタイプ(ADS-Bのモード)

ADS-Bのどのモードの信号か(フレームタイプはなにか)を調べてみました。

従来方式であるMode-A、Mode-Cの信号はほとんどなく、大半はMode-Sの信号であることが分かります。

また、Mode-Sにはメッセージの長さが56bitと112bitのものがありますが、その内訳は56bitの方が少し多いくらいでした。

含まれるデータの種類(Downlink Format)

ADS-B Mode-Sメッセージには、含まれる情報や役割によってDownlink Format(DF)が決められています。

上記のフレームタイプのうちMode-S 56bit(short)とMode-S 112bit(Long)のデータについてDFの割合を調べました。

ADS-Bの解析の中でメインになるのがDF17で、航空機から自動的に1秒周期で送信されており、位置情報や高度情報が含まれます。受信したメッセージ中最も数が多かったです。

他には、地上のレーダー(インタロゲータ)に対する応答であるDF4、DF5、DF11、DF20も多くみられます。

また、飛行機同士が衝突を防止するためにお互いに通信使あっているACAS用の通信であるDF0、DF16の通信も確認できました。また、飛行機同士が衝突を防止するためにお互いに通信使あっているACAS用の通信であるDF0、DF16の通信も確認できました。

また、飛行機同士が衝突を防止するためにお互いに通信使あっているACAS用の通信であるDF0、DF16の通信も確認できました。

DF17のメッセージに含まれる情報の種類

DF17のメッセージ信号に含まれる情報は、メッセージ内のタイプコードを調べればわかります。

下記の結果を見ると、位置(高度含む)の情報を含メッセージと速度の情報を持つメッセージが大半であることが分かりました。

MLATで座標が取得できた機体の送信メッセージ確認

ADS-B信号自体には緯度・経度の座標情報が含まれておらず、MLATにより座標が取得できた機体がどのようなメッセージを送信していたのかを確認します。

1時間の受信データのうち、MLATによって座標が取得できた13機のメッセージのDFを確認しましました。

受信したDFを下表で黄色く塗りました。

これらの機体は自発的に位置座標等の情報を発信するDF17の信号は出しておらず、航空機同士の衝突防止用ACASの返答や地上の2次レーダーのインタロゲータへの返答のみが信号として出されているようです。

理由はわかりませんが、一部の航空機は意図的にDF17をOFFにしているのだと思われます。

電波強度と距離の関係

Dump1090-faから出力されるBeast Formatデータには受信したADS-Bの電波強度(dB)が含まれている。受信距離を延ばすためにアンテナやアンプを変更したときにどの程度効果があったのかを可視化するために、飛行機と受信機との距離と電波強度の関係をグラフ化しました。

Mode-Sに含まれる緯度・経度情報から受信機との距離を計算し、距離と電波強度の分散図を作成しました。

距離が離れると受信電波強度が下がっている様子が分かる。

100km以内は受信感度が飽和しているのかあまり電波強度が下がらない。受信距離を延ばすために、もうすこし真上方向の感度を犠牲にして水平方向の指向性の高いアンテナ(コリニアアンテナ等)を使用したほうがいいかもしれません。

参考情報

上記の分析では、下記のサイトを参考にしました。

The 1090 Megahertz Riddle

radartutorial.eu

github – firestuff / adsb-tools

github – junzis / pyModeS

無線

Posted by Takuma