このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

AIS 信号を使用した船の追跡

この例では、MATLAB® および Communications Toolbox™ を使用して Automatic Identification System (AIS) 信号を処理することにより船を追跡する方法を示します。取得した信号か、RTL-SDR 無線機を使用してリアルタイムに受信した信号のいずれかを使用できます。この例では、Mapping Toolbox™ があれば、追跡している船を地図上に表示できます。

必要なソフトウェアとハードウェア

取得した信号を使用してこの例を実行するには、次のソフトウェアが必要です。

信号をリアルタイムで受信するには、RTL-SDR 無線機と、対応するサポート パッケージ アドオンも必要です。

Communications Toolbox でサポートされる SDR プラットフォームのすべてのリストについては、Software-Defined Radio (SDR) 情報ページのサポートされているハードウェアの節を参照してください。

背景

海上輸送では、船舶交通サービスは AIS を海上交通監視システム全体のコンポーネントとして使用します。AIS は次の機能を実行します。

  • 船舶の識別子、位置、進路、および速度の送信。

  • 指定された問い合わせ呼び出しの受信と処理。

  • 航行中または停泊中の連続稼働。

AIS の仕様:

  • 送信周波数範囲: 156.025 MHz ~ 162.025 MHz

  • 変調方式: ガウス周波数シフト キーイング

  • ビット レート: 9600 ビット/秒

  • 送信帯域幅と時間の積: 0.4

  • 受信帯域幅と時間の積: 0.5

  • 変調指数: 0.5

AIS の送信パケットには、以下のフィールドが含まれています。

  • トレーニング シーケンス: 0 と 1 が交互に並んだ 24 ビット シーケンス (0101...)。

  • 開始フラグ: 8 ビット シーケンス、01111110。

  • データ: 既定の送信パケットのデータ部分は 168 ビット長です。

  • フレーム チェック シーケンス (FCS): 巡回冗長検査 (CRC) の 16 ビット多項式を使用してチェックサムを計算します。

  • 終了フラグ: 開始フラグと同じです。

  • バッファー: バッファーは通常、ビット スタッフィング (最大 4 ビット)、距離遅延 (14 ビット)、および同期ジッター (6 ビット) を考慮して、24 ビット長です。

この図は AIS のパケット形式を示しています。

例の実行

MATLAB コマンド ウィンドウで AISExample と入力するか、リンクをクリックして例を実行します。この例を実行するときには、次の情報を入力する必要があります。

  1. 受信期間の秒数

  2. 信号ソース (取得されたデータまたは RTL-SDR 無線機)

  3. オプションの出力方法 (マップ、テキスト ファイル、またはそれら両方)

この例では、次の図のように、検出された船に関する情報が表形式で表示されます。

Mapping Toolbox のライセンスがある場合は、地図上で船の AIS 追跡を観察することもできます。

受信機の構造

次のブロック線図は、受信機コードの構造をまとめています。処理には 3 つの主要な部分があります。信号ソース、物理層、およびデータ ビューアー。

信号ソース

信号ソースを "File" または "RTL-SDR" として指定します。

  1. ''File'': comm.BasebandFileReaderを使用して、以前に無線で取得された信号を含むファイルを読み取ります。

  2. ''RTL-SDR'': RTL-SDR 無線機を使用してライブ信号を受信します。

このコードは、9600 Hz の信号シンボル レートと、シンボルあたり 24 個のサンプルを使用します。

''RTL-SDR'' を信号ソースとして割り当てる場合、例は、無線アドレス '0' の RTL-SDR 無線機をコンピューターで検索し、信号ソースとして使用します。

物理層

信号ソースから受信したベースバンド サンプルは物理層 (PHY) によって処理され、船の位置情報と生のメッセージ バイトを含むパケットが生成されます。この図は PHY の処理コンポーネントを示しています。

  • パケット検索: 複数のウィンドウに分割して、受信信号の最も強いバーストを検索します。

  • DC オフセットの削除: 検出信号から DC オフセットを削除します。

  • 周波数補正: 搬送周波数オフセットを推定して補正します。

  • 整合フィルター処理: AIS の仕様に従って生成されたガウス パルスを使用してフィルター処理を実行します。

  • 同期と復調: 受信信号を既知のプリアンブルと相関させることでタイミング同期を実行し、復調してビットを生成します。

  • AIS ビット パーサー: 開始フラグと終了フラグを検出してから、CRC 検出を実行します。CRC が成功すると、船の情報が復号化されます。

AIS には 64 種類の固有のメッセージ タイプがあります。船の位置情報は、11 種類のメッセージ タイプに含まれています。この例では、位置情報を含む 11 種類すべてのメッセージ タイプを復号化します。

前の図で示されているように、この例では船の ID、緯度、経度、日付、および時刻が表示されます。[1] で説明されているように、メッセージには復号化できる追加情報が含まれています。

データ ビューアー

データ ビューアーでは、受信したメッセージがグラフィカル ユーザー インターフェイス (GUI) に表示されます。データが取得されるたびに、アプリケーションでは、これらのメッセージから復号化された情報が表形式で一覧表示されます。

コード例

手順の例を以下に説明します。詳細な操作を確認するには、この例で呼び出される補助関数で実行されるコードを確認してください。

% Request user input from the command-line for application parameters
userInput = helperAisUserInput;

% Calculate AIS parameters based on the user input
[aisParam,sigSrc] = helperAisConfig(userInput);

% Create the data viewer object and configure based on user input
viewer = helperAisViewer('LogFileName', userInput.LogFilename, ...
                         'SignalSourceType', userInput.SignalSourceType);

% Launch map based on user input
if userInput.LaunchMap
    startMapUpdate(viewer);
end

% Log data based on user input
if userInput.LogData
    startDataLog(viewer);
end

% Start the viewer and initialize radio time
start(viewer)
radioTime = 0;

% Main loop for capturing and decoding the AIS samples
while radioTime < userInput.Duration
    if aisParam.isSourceRadio       % For RTL-SDR
        [rcv,~,lost,~] = sigSrc();
        lostFlag = logical(lost);
    else                            % For baseband file
        rcv = sigSrc();
        lostFlag = uint32(0);
    end

    % Recover the information by decoding AIS samples
    [info, pkt] = helperAisRxPhy(rcv,aisParam);

    % View decoded information on viewer
    update(viewer, info, pkt, lostFlag);

    % Update radio time
    radioTime = radioTime + aisParam.FrameDuration;
end

% Stop the viewer and release the signal source
stop(viewer)
release(sigSrc)

その他の調査

MATLAB コマンド ウィンドウで AISExampleApp と入力するか、リンクをクリックすることで、AISExampleApp ユーザー インターフェイスを使用して AIS 信号を調べることもできます。このアプリ インターフェイスでは、信号ソースを選択して、時間を変更できます。

物理層の実装の詳細については、次の関数や System object に関する情報を参照してください。

参考文献

  1. Recommendation ITU-R M.1371-5, Technical characteristics for an automatic identification system using time division multiple access in the VHF maritime mobile frequency band.