Отслеживать корабли, используя сигналы AIS

Этот пример показывает вам, как отследить корабли путем обработки сигналов Автоматической идентификационной системы (AIS) с помощью MATLAB® и Communications Toolbox™. Можно или использовать записанные сигналы или получить сигналы в режиме реального времени с помощью Радио RTL-SDR. Пример может показать отслеженные корабли на карте, если у вас есть Mapping Toolbox™.

Необходимое аппаратное и программное обеспечение

Чтобы запустить этот пример с помощью записанных сигналов, вам нужно следующее программное обеспечение:

Чтобы получить сигналы в режиме реального времени, вам также нужны радио RTL-SDR и соответствующее Дополнение пакета поддержки:

Для полного списка Communications Toolbox поддерживаемые платформы SDR обратитесь к разделу Supported Hardware страницы открытия Программно определяемого радио (SDR).

Фон

В морской транспортировке услуги по движению судов используют AIS в качестве компонента полной морской системы мониторинга трафика. AIS выполняет следующие функции:

  • Передайте идентификатор судна, положение, курс и скорость.

  • Получите и процесс, заданный, опросив вызовы.

  • Действуйте постоянно в то время как полным ходом или в привязке.

Спецификации AIS:

  • Передайте частотный диапазон: 156,025 МГц 162,025 МГц

  • Схема модуляции: Гауссово манипулирование сдвига частоты

  • Битрейт: 9 600 бит/с

  • Продукт времени пропускной способности передачи: 0.4

  • Получите продукт времени пропускной способности: 0.5

  • Индекс модуляции: 0.5

Пакеты передачи AIS содержат эти поля:

  • Обучающая последовательность: 24-битная последовательность переменных нулей и единиц (0101...).

  • Запустите Флаг: 8-битная последовательность, 01111110.

  • Данные: фрагмент данных 168 битов длиной в пакете передачи по умолчанию.

  • Последовательность проверки системы координат (FCS): Использует контроль циклическим избыточным кодом (CRC) 16-битный полином, чтобы вычислить контрольную сумму.

  • Флаг конца: Идентичный флагу запуска.

  • Буфер: буфер обычно 24 бита длиной, чтобы составлять заполнение битами (максимальные 4 бита), задержка расстояния (14 битов) и дрожание синхронизации (6 битов).

Этот рисунок показывает формат пакета AIS

Запустите пример

Введите AISExample в Окне Команды MATLAB или щелкните по ссылке, чтобы запустить пример. Необходимо ввести следующую информацию, когда вы запускаете пример:

  1. Длительность приема в секундах,

  2. Источник сигнала (собранные данные или радио RTL-SDR),

  3. Дополнительные выходные методы (карта и/или текстовый файл).

Пример показывает информацию об обнаруженных поставках в табличной форме как показано в следующем рисунке.

Если вам лицензировали Mapping Toolbox, можно также наблюдать отслеживание AIS поставок на карте.

Структура получателя

Следующая блок-схема обобщает структуру получателя кода. Обработка имеет три основных части: Источник Сигнала, Физический уровень и Средство просмотра Данных.

Источник сигнала

Задайте источник сигнала как "Файл" или "RTL-SDR".

  1. ''Файл'': использует comm.BasebandFileReader чтобы считать файл, который содержит, ранее сигнал получил беспроводной.

  2. ''RTL-SDR'': Использует радио RTL-SDR, чтобы получить живой сигнал.

Код использует уровень символа сигнала 9 600 Гц и 24 выборки на символ.

Если вы присваиваете ''RTL-SDR'' как источник сигнала, пример ищет ваш компьютер радио RTL-SDR в радиообращении '0' и использует его в качестве источника сигнала.

Физический уровень

Основополосные выборки, полученные от источника сигнала, обрабатываются физическим уровнем (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)

Дальнейшее исследование

Можно также ввести AISExampleApp в Окне Команды MATLAB или щелкнуть по ссылке, чтобы использовать пользовательский интерфейс AISExampleApp, чтобы исследовать сигналы AIS. Интерфейс приложения позволяет вам выбирать источник сигнала и изменять длительность.

Можно исследовать следующие функции и Системные объекты для деталей реализации физического уровня:

Выбранная библиография

  1. Рекомендация ITU-R M.1371-5, Технические характеристики для автоматической идентификационной системы, использующей деление времени, несколько получают доступ в VHF к морскому мобильному диапазону частот.