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

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

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

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

  • Communications Toolbox™

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

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

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

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

Фон

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

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

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

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

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

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

  • Короткая Длина Прерывистой генерации: 56 микросекунд

  • Расширенная Длина Прерывистой генерации: 112 микросекунд

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

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

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

  • ID самолета (Уникальная 24-битная последовательность)

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

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

  • Высота

  • Положение

  • Заголовок

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. ''Записанный сигнал'': Беспроводные сигналы записаны в файл и полученные от объекта Baseband File Reader в 2.4 членах Шотландского парламента

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

  3. ''Радио ADALM-PLUTO'': радио ADALM-PLUTO в 12 членах Шотландского парламента

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

Здесь расширенное сообщение прерывистой генерации составляет 120 микро секунд долго, таким образом, источник сигнала сконфигурирован, чтобы обработать достаточно выборок, чтобы содержать 180 расширенных сообщений прерывистой генерации целиком и установить SamplesPerFrame из свойства сигнала соответственно. Остальная часть алгоритма ищет пакеты Режимов в этой системе координат данных и выходных параметров все правильно идентифицированные пакеты. Этот тип обработки задан как пакетная обработка данных. Альтернативный подход должен обработать расширенное сообщение прерывистой генерации того за один раз. Этот один пакетный подход обработки подвергается в 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 выборок на символ. Получить цепь обработки использует величину комплексных символов.

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

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

  • RawBits: Необработанные биты сообщения

  • CRCError: 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)

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

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

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

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

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

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