В этом примере показано, как отслеживать самолеты путем обработки сигналов 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 или щелкните ссылку, чтобы запустить пример. При запуске примера необходимо ввести следующую информацию:
Длительность приема в секундах,
Источник сигнала (захваченные данные или радио RTL-SDR или радио ADALM-PLUTO).
Необязательные методы выхода (map и/или текстовый файл).
Пример показывает информацию об обнаруженных самолетах в табличной форме, как показано на следующем рисунке.
Вы также можете наблюдать самолеты на карте, если у вас есть действительная лицензия для Mapping Toolbox.
Следующий блок суммирует структуру кода приемника. Обработка состоит из четырех основных частей: Signal Source, Physical Layer, Message Parser и Data Viewer.
Источник сигнала
Этот пример может использовать три источника сигналов:
«Записанный сигнал»: Беспроводные сигналы, записанные в файл и полученные от объекта Baseband File Reader в 2.4 Msps
«Радио RTL-SDR»: радио RTL-SDR в 2.4 членах Шотландского парламента
«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 или щелкните ссылку.
Для получения дополнительной информации о реализации физического слоя можно изучить следующие вспомогательные функции:
Международная организация гражданской авиации, приложение 10, том 4. Системы наблюдения и предотвращения столкновений.
Технические условия на услуги режима S и расширенный разбавитель (док. 9871)