Отслеживание самолетов с использованием сигналов ADS-B

В этом примере показано, как отслеживать самолеты путем обработки сигналов Automatic Dependent Surveillance-Broadcast (ADS-B) с помощью MATLAB ® и Communications Toolbox™. Можно использовать записанные сигналы или принимать сигналы в режиме реального времени с помощью Радио RTL-SDR или Радио ADALM-PLUTO. Пример может показать отслеживаемые плоскости на карте, если у вас есть Mapping Toolbox™.

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

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

  • Communications Toolbox™

Для приема сигналов в режиме реального времени необходимо также одно из следующих устройств SDR и соответствующий пакет поддержки дополнение:

  • Радио RTL-SDR и соответствующий пакет поддержки Communications Toolbox для дополнения ПО RTL-SDR

  • Радио ADALM-PLUTO и соответствующий пакет поддержки Communications Toolbox для дополнение программного обеспечения ADALM-PLUTO Radio

Полный список платформ SDR, поддерживаемых Communications Toolbox, см. в разделе «Поддерживаемые аппаратные средства» страницы Программно определяемого радио (SDR).

Фон

ADS-B - кооперативная технология наблюдения для слежения за летательными аппаратами. Эта технология позволяет самолету периодически транслировать информацию о своем положении (высота, координаты GPS, курс и т.д.) с помощью схемы сигнализации Mode-S.

Mode-S является типом режима запроса ответчика авиации. Когда самолет получает запрос на допрос, он отправляет назад код скребка ответчика. Это называется Mode 3A. Mode-S (Select) является другим типом режима опроса, который разработан, чтобы помочь избежать слишком частого опроса транспондера. Дополнительные сведения о Mode-S см. в разделе [1]. Этот метод широко используется в Европе и постепенно переходит к Северной Америке.

Схема сигнализации Mode-S использует сообщения squitter, которые определяются как незапрошенные сообщения, используемые в авиационных радиосистемах. Mode-S имеет следующие свойства:

  • Частота передачи: 1090 МГц

  • Модуляция: Импульсная позиционная модуляция

  • Скорость передачи данных: 1 Мбит/с

  • Короткая длина сквиттера: 56 микросекунд

  • Удлиненная длина сквиттера: 112 микросекунд

Короткие сообщения squiter содержат следующую информацию:

  • Нисходящий формат (DF)

  • Возможности (CA)

  • Идентификатор самолета (уникальная 24-битная последовательность)

  • Контрольная сумма CRC

Расширенные сообщения squitter (ADS-B) содержат всю информацию в коротком squitter и одно из следующих:

  • Высота

  • Положение

  • Заголовок

  • Горизонтальная и вертикальная скорость

Формат сигнала Mode-S имеет синхроимпульс, который имеет длину 8 микросекунд, за которым следуют 56 или 112 микросекунд данных, как показано на следующем рисунке.

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

Тип ADSBExample в командном окне MATLAB или щелкните ссылку, чтобы запустить пример. При запуске примера необходимо ввести следующую информацию:

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

  2. Источник сигнала (захваченные данные или радио RTL-SDR или радио ADALM-PLUTO).

  3. Необязательные методы выхода (map и/или текстовый файл).

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

Вы также можете наблюдать самолеты на карте, если у вас есть действительная лицензия для Mapping Toolbox.

Структура приемника

Следующий блок суммирует структуру кода приемника. Обработка состоит из четырех основных частей: Signal Source, Physical Layer, Message Parser и Data Viewer.

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

Этот пример может использовать три источника сигналов:

  1. «Записанный сигнал»: Беспроводные сигналы, записанные в файл и полученные от объекта Baseband File Reader в 2.4 Msps

  2. «Радио RTL-SDR»: радио RTL-SDR в 2.4 членах Шотландского парламента

  3. «ADALM-PLUTO Radio»: радио ADALM-PLUTO на 12 Msps

Если вы назначаете «RTL-SDR» или «ADALM-PLUTO» в качестве источника сигнала, то в примере компьютер ищет указанное вами радио или радио RTL-SDR по радио-адресу '0' или радио ADALM-PLUTO по радио-адресу 'usb: 0

Здесь расширенное сообщение squitter имеет длину 120 микросекунд, поэтому источник сигнала сконфигурирован для обработки достаточного количества выборок, чтобы содержать 180 расширенных сообщений squitter сразу и установить SamplesPerFrame свойства сигнала соответственно. Остальная часть алгоритма ищет пакеты Mode-S в этой системе координат данных и выводит все правильно идентифицированные пакеты. Этот тип обработки определяется как пакетная обработка. Альтернативным подходом является обработка одного расширенного сообщения squitter за раз. Этот подход обработки одного пакета несет в 180 раз больше накладных расходов, чем пакетная обработка, в то время как он имеет в 180 раз меньше задержек. Поскольку приемник ADS-B допускает задержку, была использована пакетная обработка.

Физический слой

Выборки основной полосы частот, принятые от источника сигнала, обрабатываются физическим (PHY) слоем для получения пакетов, которые содержат информацию заголовка слоя PHY и необработанные биты сообщений. Следующая схема показывает структуру физического слоя.

Радио RTL-SDR способно использовать частоту дискретизации в области значений [200e3, 2.8e6] Гц. Когда RTL-SDR радио является источником, пример использует частоту дискретизации 2,4e6 Гц и интерполирует в 5 раз до практической частоты дискретизации 12e6 Гц.

Радио ADALM-PLUTO способно использовать частоту дискретизации в области значений [520e3, 61.44e6] Гц. Когда источником является радио ADALM-PLUTO, пример дискретизирует вход непосредственно на 12 МГц.

Со скоростью передачи данных 1 Мбит/с и практической частотой дискретизации 12 МГц на символ приходится 12 выборки. В цепь обработки приема используются величины сложных символов.

Пакетный синхронизатор работает с подкадрами данных, эквивалентными двум расширенным пакетам squitter, то есть 1440 выборок на 12 МГц или 120 микросекундах. Эта длина субкадра гарантирует, что в субкадре содержится целый расширенный квадратурный пакет. Пакетный синхронизатор сначала коррелирует принятый сигнал с преамбулой 8 микросекунд и находит пиковое значение. Затем он проверяет точку синхронизации, проверяя, соответствует ли она последовательности преамбул, [1 0 0 0 0 0 1 0 1 0 0 0 0 0 0], где '1' представляет высокое значение, а '0' представляет низкое значение.

Схема модуляции Mode-S PPM задает два символа. Каждый символ имеет два чипа, где один имеет высокое значение, а другой имеет низкое значение. Если первый чип высок, за которым следует низкий чип, это соответствует символу 1. В качестве альтернативы, если первый чип является низким, за которым следует высокий чип, то символ равен 0. Анализатор битов демодулирует полученные чипы и создает двоичное сообщение. Двоичное сообщение проверяется с помощью проверки CRC. Выходы анализатора битов являются вектором пакетов заголовков физического слоя Mode-S, которые содержат следующие поля:

  • RawBits: биты необработанных сообщений

  • CRCError: FALSE, если CRC проверяет, TRUE, если CRC не работает

  • Время: Время приема в секундах от начала приемника

  • DF: нисходящий формат (тип пакета)

  • CA: Возможность

Анализатор сообщений

Анализатор сообщений извлекает данные из необработанных бит на основе типа пакета, как описано в [2]. Этот пример может анализировать короткие пакеты squiter и расширенные пакеты squitter, которые содержат воздушную скорость, идентификацию и данные о положении в воздухе.

Средство просмотра данных

Средство просмотра данных показывает полученные сообщения на графическом интерфейсе пользователя (GUI). Для каждого типа пакета показано количество обнаруженных пакетов, количество правильно декодированных пакетов и частота ошибок пакета (PER). Когда данные захвачены, приложение перечисляет информацию, декодированную из этих сообщений, в табличной форме.

Пример кода

Приемник запрашивает вход пользователя и инициализирует переменные. Затем он вызывает источник сигнала, физический слой, анализатор сообщений и средство просмотра данных в цикле. Цикл отслеживает время радиосвязи, используя длительность системы координат.

%For the option to change default settings, set |cmdlineInput| to 1.
cmdlineInput = 0;
if cmdlineInput
    % Request user input from the command-line for application parameters
    userInput = helperAdsbUserInput;
else
    load('defaultinputsADSB.mat');
end

% Calculate ADS-B system parameters based on the user input
[adsbParam,sigSrc] = helperAdsbConfig(userInput);

% Create the data viewer object and configure based on user input
viewer = helperAdsbViewer('LogFileName',userInput.LogFilename, ...
    'SignalSourceType',userInput.SignalSourceType);
if userInput.LogData
  startDataLog(viewer);
end
if userInput.LaunchMap
  startMapUpdate(viewer);
end

% Create message parser object
msgParser = helperAdsbRxMsgParser(adsbParam);

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

% Main loop
while radioTime < userInput.Duration


     if adsbParam.isSourceRadio
        if adsbParam.isSourcePlutoSDR
            [rcv,~,lostFlag] = sigSrc();
        else
            [rcv,~,lost] = sigSrc();
            lostFlag = logical(lost);
        end
    else
        rcv = sigSrc();
        lostFlag = false;
     end

  % Process physical layer information (Physical Layer)
  [pkt,pktCnt] = helperAdsbRxPhy(rcv,radioTime,adsbParam);

  % Parse message bits (Message Parser)
  [msg,msgCnt] = msgParser(pkt,pktCnt);

  % View results packet contents (Data Viewer)
  update(viewer,msg,msgCnt,lostFlag);

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

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

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

Вы можете дополнительно изучить сигналы ADS-B с помощью приложения ADSBExampleApp. Это приложение позволяет вам выбрать источник сигнала и изменить длительность. Чтобы запустить приложение, введите DSBExampleApp в командном окне MATLAB или щелкните ссылку.

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

Избранная библиография

  1. Международная организация гражданской авиации, приложение 10, том 4. Системы наблюдения и предотвращения столкновений.

  2. Технические условия на услуги режима S и расширенный разбавитель (док. 9871)