Ads-b信号を使用した飛行機追跡
この例では,MATLAB®および通信工具箱™を使用して自动从属监控广播”(ads - b)信号を処理することにより飛行機を追跡する方法を示します。取得した信号か,RTL-SDR無線機またはADALM-PLUTO無線機を使用してリアルタイムに受信した信号のいずれかを使用できます。この例では,映射工具箱™があれば,追跡している飛行機を地図上に表示できます。
必要なソフトウェアとハ,ドウェア
取得した信号を使用してこの例を実行するには,次のソフトウェアが必要です。
通信工具箱™
信号をリアルタイムで受信するには,以下の特别提款权デバイスのいずれかと,対応するサポートパッケージアドオンも必要です。
RTL-SDR無線機と対応する通信工具箱支持包RTL-SDR无线电ソフトウェアの万博1manbetxアドオン
ADALM-PLUTO無線機と対応する模拟设备通信工具箱支持包ADALM-PLUTO无线万博1manbetx电ソフトウェアのアドオン
通信工具箱でサポートされる特别提款权プラットフォームのすべてのリストについては,软件定义无线电(SDR)情報ペ,ジのサポ,トされているハ,ドウェアの節を参照してください。
背景
Ads-bは,航空機を追跡するため協調監視技術です。この技術により,航空機は,モード年代信号方式を使用して,位置情報(高度,GPS座標,機首方位など)を定期的にブロードキャストします。
モドは,航空トランスポンダの質問モドの種類です。航空機は,質問要求を受信すると,トランスポンダ,の“スクォ,クコ,ド”を返信します。これは,モ,ド3aと呼ばれています。モードS(選択)はトランスポンダーが頻繁に質問されるのを避けるために設計された質問モードの一種です。モ,ドsの詳細に,いては,[1]を参照してください。このモ,ドはヨ,ロッパで広く採用されており,北アメリカでは段階的に導入されています。
モード年代信号方式は,航空無線システムで使用される非要請メッセージとして定義されたスキッタメッセージを使用します。モドsには次のプロパティがあります。
送信周波数:1090 MHz
変調:パルス時間変調
デ,タ転送速度:1メガビット/秒
短スキッタ長:56マescクロ秒
拡張スキッタ長:112マescクロ秒
短スキッタメッセ,ジには,次の情報が含まれています。
ダウンリンク形式(df)
機能(ca)
航空機id(一意の24ビットシケンス)
CRCチェックサム
拡張スキッタ(ads - b)メッセージには,短スキッタ内のすべての情報と,次のいずれかが含まれています。
高度
位置
機首方位
水平および垂直速度
モード年代の信号形式には,次の図のように8マイクロ秒の長さの同期パルスに続き,56または112マイクロ秒のデータが含まれています。
例の実行
取得したデ,タを使用して,既定の構成が実行されます。この例の後半で,cmdlineInput
を1
に設定してから例を実行することで,次の構成設定をオプションで変更できます。
受信期間の秒数
信号ソース(取得されたデータまたはRTL-SDR無線機またはADALM-PLUTO無線機)
オプションの出力方法(マップ,テキストファ)
この例では,次の図のように,検出された飛行機に関する情報が表形式で表示されます。
映射工具箱の有効なライセンスがある場合は,マップ上で飛行機を観察することもできます。
受信機の構造
次のブロック線図は,受信機コ,ドの構造をまとめています。処理には4の主要な部分があります。信号ソ,ス、物理層、メッセージ パーサー、およびデータ ビューアー。
信号ソ,ス
この例では,3の信号ソスを使用できます。
“取得した信号”:ファイルに書き込まれ,2.4议员でベースバンドファイルリーダーオブジェクトから取得される無線信号
“RTL-SDR無線機”:2.4 MspsのRTL-SDR無線機
“ADALM-PLUTO無線機”:12 MspsのADALM-PLUTO無線機
“RTL-SDRまたは“ADALM-PLUTOを信号ソースとして割り当てる場合,例は,指定した無線機(無線アドレス' 0 'のRTL-SDR無線機または無線アドレス的usb: 0のADALM-PLUTO無線機のいずれか)のコンピューターを検索し,信号ソースとして使用します。
ここで,拡張スキッタメッセージは120マイクロ秒の長さになるため,信号ソースは180拡張スキッタメッセージを一度に含むために十分なサンプルを処理するように構成され,信号プロパティのSamplesPerFrame
を適宜設定します。残りのアルゴリズムは,データのこのフレームでモード年代パケットを検索し,識別されたパケットをすべて正しく出力します。このタesc escプの処理は,バッチ処理として定義されます。また,この代わりに一度に1。この単一パケットの処理方法は,バッチ処理の180倍以上のオーバーヘッドが生じますが,一方で遅延が1/180以下になります。Ads-b受信機には遅延に対する耐性があるため,バッチ処理が使用されました。
物理層
信号ソースから受信したベースバンドサンプルは物理(体育)層によって処理され,PHY層のヘッダー情報と生のメッセージビットを含むパケットが生成されます。次の図は,物理層の構造を示しています。
RTL-SDR無線機は,(200年e3, 2.8 e6)赫兹の範囲のサンプリングレートを使用することができます。RTL-SDR無線機がソースの場合,例は,e6 2.4 Hzのサンプリングレートを使用し,12 e6赫兹の実際のサンプリングレートに対して係数5によって内挿します。
ADALM-PLUTO無線機は,(520年e3, 61.44 e6)赫兹の範囲のサンプリングレートを使用することができます。ADALM-PLUTO無線機がソ,スの場合,例は12 MHzで直接入力をサンプリングします。
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チェッカを使用して検証されます。ビットパーサーの出力は,次のフィールドを含むモード年代の物理層ヘッダーパケットのベクトルです。
RawBits:生のメッセ,ジビット
CRCError: CRCがチェックをする場合FALSE, CRCが失敗した場合TRUE
时间:受信機の開始から受信までの秒単位の時間
Df:ダウンリンク形式(パケットタaapl .プ)
CA:能力
メッセジパサ
メッセ,ジパ,サ,が,[2]で説明されているパケットタ@プに従って,生のビットからデ@タを抽出します。この例では,短スキッタパケットと,飛行速度,識別情報および飛行位置データを含んだ拡張スキッタパケットを解析できます。
デタビュア
データビューアーでは,受信したメッセージがグラフィカルユーザーインターフェイス(GUI)に表示されます。それぞれのパケットタイプについて,検出されたパケット数,正しく復号化されたパケット数,およびパケットエラーレート(每)が表示されます。データが取得されるたびに,アプリケーションでは,これらのメッセージから復号化された情報が表形式で一覧表示されます。
コド例
受信機は,ユ,ザ,の入力を求めて,変数を初期化します。次にループで,信号ソース,物理層,メッセージパーサー,およびデータビューアーを呼び出します。ル,プは,フレ,ム時間を使用して無線時間を追跡します。
如果要更改默认设置,请将|cmdlineInput|设置为1。cmdlineInput = 0;如果cmdlineInput从命令行请求用户输入应用程序参数userInput = helperAdsbUserInput;其他的负载(“defaultinputsADSB.mat”);结束根据用户输入计算ADS-B系统参数[adsbParam,sigSrc] = helperAdsbConfig(userInput);创建数据查看器对象并根据用户输入进行配置查看器= helperAdsbViewer(“LogFileName”, userInput。LogFilename,...“SignalSourceType”, userInput.SignalSourceType);如果userInput。LogData startDataLog(观众);结束如果userInput。LaunchMap startMapUpdate(观众);结束创建消息解析器对象msgParser = helperAdsbRxMsgParser(adsbParam);启动查看器并初始化无线电时间start(viewer) radioTime = 0;%主循环而radioTime < userInput。持续时间如果adsbParam.isSourceRadio如果adsbParam。isSourcePlutoSDR [rcv,~,lostFlag] = sigSrc();其他的[rcv,~,lost] = sigSrc();lostFlag =逻辑(丢失);结束其他的rcv = sigSrc();lostFlag = false;结束%处理物理层信息(物理层)[pkt,pktCnt] = helperAdsbRxPhy(rcv,radioTime,adsbParam);解析消息位(消息解析器)[msg,msgCnt] = msgParser(pkt,pktCnt);查看结果包内容(数据查看器)更新(观众、味精、msgCnt lostFlag);%更新无线电时间radioTime = radioTime + adsbParam.FrameDuration;结束停止查看器,释放信号源。%停止(观众)发布(sigSrc)
その他の調査
ADSBExampleAppアプリを使用して,ADS-B信号をさらに調査できます。このアプリでは,信号ソ,スを選択して,時間を変更できます。アプリを起動するには,matlabコマンドウィンドウでDSBExampleApp
と入力するか,リンクをクリックします。
物理層の実装の詳細にいては,次の補助関数の情報を参照してください。
*helperAdsbRxPhy.m*helperAdsbRxPhySync.m*helperAdsbRxPhyBitParser.m*helperAdsbRxMsgParser.m
参考文献
国际民用航空组织,附件10,第四卷。监控和防撞系统。
S型服务和扩展式喷管技术规定(Doc 9871)