Simulink での ADS-B 信号を使用した飛行機追跡
この例では、放送型自動従属監視 (ADS-B) 信号を処理することにより飛行機を追跡する方法を示します。以前に取得した信号を使用することも、RTL-SDR 無線機、ADALM-PLUTO 無線機、または USRP™ 無線機を使用してリアルタイムに信号を受信することもできます。Mapping Toolbox™ を使用して、追跡している飛行機を地図上で可視化することもできます。
必要なソフトウェアとハードウェア
既定では、この例は以前に取得されたデータを使用して実行します。オプションとして、無線経由で信号を受信できます。このためには、次のいずれかも必要になります。
RTL-SDR 無線機と Communications Toolbox Support Package for RTL-SDR Radio。
Pluto 無線機と Communications Toolbox Support Package for Analog Devices® ADALM-PLUTO Radio。
USRP N2xx または B2xx シリーズ無線機と Communications Toolbox Support Package for USRP Radio。サポートされている無線機の詳細については、Supported Hardware and Required Softwareを参照してください。
USRP E3xx、N3xx、または X3xx シリーズ無線機と Wireless Testbench Support Package for NI USRP Radios。サポートされている無線機の詳細については、Supported Radio Devices (Wireless Testbench)を参照してください。
はじめに
飛行機を追跡するためのモード S 信号方式と ADS-B 技術の概要については、ADS-B 信号を使用した飛行機追跡の MATLAB® 例を参照してください。
受信機の構造
次のブロック線図に、受信機コードの構造をまとめています。この処理には、信号ソース、物理レイヤー、メッセージ パーサー、およびデータ ビューアーからなる 4 つの主要な部分があります。
![]()
信号ソース
次の信号ソースのいずれかを指定することができます。
''Captured Signal''- ファイルに書き込まれ、2.4 Msps で Baseband File Reader ブロックを使用して取得される無線信号''RTL-SDR Radio''- 2.4 Msps の RTL-SDR 無線機''ADALM-PLUTO''- サンプル レート 12 Msps の ADALM-PLUTO 無線機''USRP Radio''- すべての無線でサンプル レート 20 Msps の USRP 無線機 (2.4 Msps のサンプル レートを使用する N310/N300 無線機を除く)
ここで、拡張スキッタ メッセージは 120 マイクロ秒の長さになるため、信号ソースは 180 拡張スキッタ メッセージを同時に含むために十分なサンプルを処理するように構成され、信号プロパティの SamplesPerFrame を適宜設定します。残りのアルゴリズムは、データのこのフレームでモード S パケットを検索し、識別されたパケットをすべて正しく出力します。このタイプの処理はバッチ処理と呼ばれます。また、この代わりに一度に 1 つずつ拡張スキッタ メッセージを処理することもできます。この単一パケットの処理方法は、バッチ処理の 180 倍以上のオーバーヘッドが生じますが、一方で遅延が 1/180 以下になります。ADS-B 受信機は遅延に対して耐性があるため、この例ではバッチ処理を使用します。
物理レイヤー
物理レイヤー (PHY) は、信号ソースからのベースバンド サンプルを処理して、PHY レイヤーのヘッダー情報と生のメッセージ ビットを含むパケットを生成します。次の図は物理レイヤーの構造を示しています。
![]()
RTL-SDR 無線機が使用できるサンプル レートの範囲は [200e3, 2.8e6] Hz です。ソースが RTL-SDR 無線機の場合、例は、2.4 MHz のサンプル レートを使用し、実際のサンプル レートが 12 MHz になるように 5 倍に補間します。
ADALM-PLUTO 無線機が使用できるサンプル レートの範囲は [520e3, 61.44e6] Hz です。ソースが ADALM-PLUTO 無線機の場合、例は入力を 12 MHz で直接サンプリングします。
USRP 無線機は、さまざまなサンプル レートを使用することができます。ソースが USRP 無線機の場合、例は入力を 20 MHz で直接サンプリングします。N310/N300 無線機では、データが 2.4 MHz のサンプル レートで受信されるため、実際のサンプル レートが 12e6 になるように係数 5 で内挿します。
たとえば、データ レートが 1 Mbit/s で、実効サンプル レートが 12 MHz の場合、信号にはシンボルあたり 12 個のサンプルが含まれます。受信処理連鎖は、複素シンボルの振幅を使用します。
パケット同期装置は、2 つの拡張スキッタ パケット、すなわち 12 MHz または 120 マイクロ秒で 1440 サンプルに相当するデータのサブフレームで動作します。このサブフレームの長さによって、拡張スキッタ全体が必ずサブフレームに含まれるようになります。パケット同期装置は、受信信号と 8 マイクロ秒のプリアンブルとの相関をとってから、ピーク値を検索します。次に、シンクロナイザは、同期ポイントがプリアンブルのシーケンス [1 0 0 0 0 0 1 0 1 0 0 0 0 0 0] を確認することによって、見つかった同期ポイントを検証します。ここで、値 1 は高の値、値 0 は低の値を表します。
モード S の PPM 方式では、2 つのシンボルを定義します。各シンボルには 2 つのチップがあり、1 つが高の値をもち、もう 1 つが低の値をもちます。最初のチップが高で、後続のチップが低の場合、シンボルは 1 になります。逆に、最初のチップが低で、後続のチップが高の場合、シンボルは 0 になります。ビット パーサーは、受信したチップを復調し、バイナリ メッセージを作成します。CRC チェッカーがバイナリ メッセージを検証します。ビット パーサーの出力は、次のフィールドを含むモード S の物理レイヤー ヘッダー パケットのベクトルです。
RawBits - 生のメッセージ ビット
CRCError - CRC をパスした場合は FALSE、CRC が失敗した場合は TRUE
Time - 受信開始から受信までの秒単位の時間
DF - ダウンリンク形式 (パケットタイプ)
CA - 機能
メッセージ パーサー
メッセージ パーサーが、[ 2 ] で説明されているパケット タイプに従って、生のビットを抽出します。この例では、短スキッタ パケットと、飛行速度、識別情報および飛行位置データを含んだ拡張スキッタ パケットを解析できます。
データ ビューアー
データ ビューアーでは、受信したメッセージがグラフィカル ユーザー インターフェイス (GUI) に表示されます。データ ビューアーは、それぞれのパケット タイプについて、検出されたパケット数、正しく復号化されたパケット数、およびパケット エラー レート (PER) を表示します。データが取得されるたびに、アプリケーションによって、これらのメッセージから復号化された情報がテーブルにリストされます。
マップの起動とデータのログ記録
マップを起動し、2 つのスライダー スイッチ (マップの起動とデータのログ記録) を使用してテキスト ファイルのログ記録を開始することもできます。
Log Data* - [Log Data] をオンにすると、取得したデータを TXT ファイルに保存します。保存されたデータは、以降に後処理で使用できます。
Launch Map - [Launch Map] をオンにすると、追跡している航空便を表示できるマップが起動します。メモ: この機能を使用する必要がある場合は、Mapping Toolbox の有効なライセンスが必要です。
以下の図は、アプリケーションがどのように航空便を追跡し、航空便の詳細情報を一覧表示し、さらにそれらをマップ上に表示するかを示しています。


参考文献
International Civil Aviation Organization, Annex 10, Volume 4. Surveillance and Collision Avoidance Systems.
Technical Provisions For Mode S Services and Extended Squitter (Doc 9871)