В этом примере показано, как отслеживать плоскости путем обработки сигналов ADS-B с помощью MATLAB ® и Communications Toolbox™. Можно либо использовать захваченные сигналы, либо принимать сигналы в реальном времени с помощью RTL-SDR Radio или ADALM-PLUTO Radio. В примере можно показать отслеживаемые плоскости на карте при наличии Toolbox™ «Сопоставление».
Для выполнения этого примера с использованием захваченных сигналов необходимо следующее программное обеспечение:
Коммуникационный Toolbox™
Для приема сигналов в режиме реального времени необходимо также одно из следующих устройств SDR и соответствующий пакет поддержки Add-On:
Радиоблок RTL-SDR и соответствующий пакет поддержки Communications Toolbox для программного обеспечения RTL-SDR Radio Add-On
ADALM-PLUTO и соответствующий пакет поддержки Communications Toolbox для ADALM-PLUTO Radio Add-On
Полный список платформ SDR, поддерживаемых Communications Toolbox, см. в разделе Поддерживаемые аппаратные средства на странице обнаружения Software Defined Radio (SDR).
ADS-B - это технология совместного наблюдения для слежения за летательными аппаратами. Эта технология позволяет самолету периодически передавать информацию о своем положении (высота, координаты GPS, курс и т.д.) с использованием схемы сигнализации Mode-S.
Режим-S - тип режима опроса авиационного ответчика. Когда летательный аппарат получает запрос на запрос, он отправляет обратно код squawk ответчика. Это называется Mode 3A. Режим-S (Select) - это другой тип режима опроса, который предназначен для того, чтобы избежать слишком частого опроса ответчика. Более подробную информацию о режиме S можно найти в [1]. Этот способ широко используется в Европе и постепенно внедряется в Северной Америке.
Схема сигнализации Mode-S использует сообщения squitter, которые определяются как сообщения без запроса, используемые в авиационных радиосистемах. Mode-S имеет следующие свойства:
Частота передачи: 1090 МГц
Модуляция: Импульсная позиционная модуляция
Скорость передачи данных: 1 Мбит/с
Длина короткого сквиттера: 56 микросекунд
Увеличенная длина сквиттера: 112 микросекунд
Короткие сообщения squitter содержат следующую информацию:
Формат нисходящей линии связи (DF)
Возможности (CA)
Идентификатор самолета (уникальная 24-разрядная последовательность)
Контрольная сумма CRC
Расширенные сообщения сквиттера (ADS-B) содержат всю информацию в коротком сквиттере и одно из следующих:
Высота
Положение
Заголовок
Горизонтальная и вертикальная скорость
Формат сигнала Mode-S имеет синхроимпульс длиной 8 микросекунд, за которым следуют 56 или 112 микросекунд данных, как показано на следующей фигуре.

Напечатать ADSBExample в окне команды MATLAB или щелкните ссылку для выполнения примера. При выполнении примера необходимо ввести следующую информацию:
Продолжительность приема в секундах,
источник сигнала (захваченные данные или радио RTL-SDR или радио ADALM-PLUTO),
Дополнительные методы вывода (карта и/или текстовый файл).
В примере показана информация об обнаруженных самолетах в табличной форме, как показано на следующем рисунке.

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

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

Источник сигнала
В этом примере можно использовать три источника сигнала:
«Захваченный сигнал»: эфирные сигналы, записанные в файл и полученные из объекта чтения файлов основной полосы частот на 2,4 мс
«RTL-SDR Radio»: RTL-SDR radio at 2.4 Msps
«Радио ADALM-PLUTO»: радио ADALM-PLUTO в 12 членах Шотландского парламента
Если в качестве источника сигнала назначен «RTL-SDR» или «ADALM-PLUTO», в примере выполняется поиск на компьютере указанного радио, либо радио RTL-SDR по адресу «0», либо радио ADALM-PLUTO по адресу «usb: 0» и использует его в качестве сигнала.
Здесь расширенное сообщение сквиттера имеет длину 120 микро секунд, поэтому источник сигнала конфигурируется для обработки достаточного количества выборок, чтобы содержать 180 расширенных сообщений сквиттера одновременно, и устанавливается SamplesPerFrame соответствующего свойства сигнала. Остальная часть алгоритма ищет пакеты Mode-S в этом кадре данных и выводит все правильно идентифицированные пакеты. Этот вид обработки определяется как пакетная обработка. Альтернативный подход заключается в обработке одного расширенного сообщения сквиттера за один раз. Этот подход обработки одного пакета требует в 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 выборок. Цепочка обработки приема использует величину комплексных символов.
Синхронизатор пакетов работает на подкадрах данных, эквивалентных двум расширенным пакетам сквиттера, то есть 1440 выборок с частотой 12 МГц или 120 микро секунд. Эта длина подкадра гарантирует, что в подкадре содержится весь расширенный пакет сквиттера. Синхронизатор пакетов сначала коррелирует принятый сигнал с 8 микросекундной преамбулой и находит пиковое значение. Затем он проверяет точку синхронизации, проверяя, соответствует ли она последовательности преамбулы [1 0 0 0 0 0 1 0 1 0 0 0 0 0 0], где «1» представляет высокое значение, а «0» - низкое значение.
Схема модуляции PPM Mode-S определяет два символа. Каждый символ имеет две микросхемы, где одна имеет высокое значение, а другая имеет низкое значение. Если первая микросхема является высокой, за ней следует низкая микросхема, то это соответствует символу, являющемуся 1. Альтернативно, если первая микросхема является низкой, за ней следует высокая микросхема, то символ равен 0. Битовый синтаксический анализатор демодулирует принятые элементарные сигналы и создает двоичное сообщение. Двоичное сообщение проверяется с помощью средства проверки CRC. Выходной сигнал битового синтаксического анализатора представляет собой вектор пакетов заголовка физического уровня Mode-S, который содержит следующие поля:
RawBits: биты необработанного сообщения
CRURError: FALSE при проверке CRC, TRUE при сбое CRC
Время: время приема в секундах от начала приема
DF: Формат нисходящей линии связи (тип пакета)
CA: Возможности
Анализатор сообщений
Анализатор сообщений извлекает данные из необработанных битов на основе типа пакета, как описано в [2]. В этом примере можно анализировать короткие пакеты сквиттеров и расширенные пакеты сквиттеров, которые содержат данные о скорости, идентификации и положении в воздухе.
Средство просмотра данных
Средство просмотра данных показывает полученные сообщения в графическом интерфейсе пользователя (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)
![]()
Вы можете далее исследовать сигналы ОБЪЯВЛЕНИЙ-B, используя приложение ADSBExampleApp. Это приложение позволяет Вам выбирать источник сигнала и изменять продолжительность. Чтобы запустить приложение, введите DSBExampleApp в окне команды MATLAB или щелкните ссылку.
Для получения подробной информации о реализации физического уровня можно изучить следующие вспомогательные функции:
Международная организация гражданской авиации, приложение 10, том 4. Системы наблюдения и предотвращения столкновений.
Технические положения для служб режима S и расширенных сквиттеров (документ 9871)