Отслеживание самолета с ADS-B собранные данные

Этот пример показывает, как реализовать Автоматическое Зависимое Наблюдение - Широковещательная передача (ADS-B) получатель для генерации HDL-кода и аппаратной реализации. Этот пример декодирует расширенные сообщения прерывистой генерации ADS-B, которые могут использоваться, чтобы отследить самолет. Оптимизированный пример Получателя ADS-B HDL показывает, как блоки Simulink®, которые поддерживают генерацию HDL-кода, могут использоваться, чтобы реализовать Получатель ADS-B. Эта модель в качестве примера используется для обработки в режиме реального времени в Реализации Элемента кода HW/SW ADS-B Transmitter/Receiver Используя Analog Devices® AD9361/AD9364, который требует Пакета Поддержки Communications Toolbox для Xilinx Находящееся в Zynq Радио.

Введение

ADS-B является управлением воздушным движением и системой наблюдения управления. Широковещательные сообщения (приблизительно однажды в секунду) содержат информацию о рейсе включая положение и скорость. Для введения на технологии ADS-B и режимах передачи, см. [1]. Подсистема HDLRx оптимизирована для генерации HDL-кода. Полученный полученный сигнал передается потоком в получатель (подсистема HDLRx) фронтэнд. Потоковая передача вывод получателя буферизуется и передается функции MapResults MATLAB®, чтобы просмотреть вывод.

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

Модель поддерживает и Нормальный и Режимы Accelerator. Структуру верхнего уровня модели получателя ADS-B показывают в следующей фигуре.

Входные данные получателя получены с помощью Реализации Элемента кода HW/SW ADS-B Transmitter/Receiver Используя Аналоговые устройства работа AD9361/AD9364 платформы Zynq®. Собранные данные представляют основную полосу полученный сигнал с уровнем выборки 4 МГц. Данные содержат 8 кадров расширенных сообщений прерывистой генерации. Передатчик ADS-B модулирует 112-битные расширенные сообщения прерывистой генерации с помощью 2-битной импульсно-позиционной модуляции и добавляет 16-битный префикс. Затем чтобы сгенерировать данные на 4 МГц, каждое 240-битное сообщение дополнено нулем и сверхдискретизировано 2.

Следующая схема показывает подробную структуру подсистемы HDLRx.

Подсистемы в далее описаны в следующих разделах.

1. Расчет значения - Находит комплексный модуль полученного входного сигнала

2. Пороговое Вычисление - Вычисляет пороговое значение на основе полученной силы входного сигнала

3. Корреляция с Преамбулой - Корреляты полученный сигнал со ссылочным сигналом обнаружить преамбулу

4. Синхронизация Управления - Обеспечивает синхронизацию синхронизации для получателя

5. Битный Процесс - Декодирует символы с помощью демодуляции PPM

6. Вычислите CRC, и Валидация Кадра - Подтверждает кадр путем проверки на ошибки CRC

HDL оптимизированный получатель ADS-B

1. Расчет значения

Входные параметры к подсистеме Расчета Значения являются (действительным) синфазным и квадратура (мнимые) выборки фазы. Эта подсистема выводит модуль комплексного числа. sqrt (I^2+Q^2) может быть аппроксимирован "|L | + 0.4* | S | алгоритм", описанный на странице 238 [2].

где

| L | большее значение | я | или | Q |

| S | меньшее значение | я | или | Q |.

Блок Gain преобразовывает полученный вход от 12-битного до 16-битного размера слова.

Для реализации "|L | + 0.4|S | алгоритм", см. следующая модель.

2. Пороговое вычисление

Пороговая подсистема Вычисления вычисляет энергию сигнала и применяет масштабный коэффициент, чтобы создать порог для обнаружения преамбулы. Фильтр Скользящего среднего значения является последовательной КИХ-архитектурой фильтра с 32 коэффициентами, которая работает со значениями значения. Коэффициенты КИХ-фильтра выбраны, чтобы найти среднюю энергию полученного сигнала. Этот пример масштабирует энергию сигнала 5, чтобы обнаружить допустимые преамбулы ADS-B. Для получения дополнительной информации на КИХ-фильтре, смотрите Дискретный КИХ-Фильтр.

3. Корреляция с преамбулой

Корреляция с подсистемой Преамбулы коррелирует полученный сигнал с последовательностью ссылки/преамбулы ADS-B [1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0] использование пикового фильтра обнаружения. Пиковый фильтр обнаружения является последовательной КИХ-архитектурой Фильтра, сконфигурированной с коэффициентами, которые совпадают с последовательностью преамбулы. Корреляция преамбулы идентифицирует потенциальные передачи ADS-B и выравнивает наш битный алгоритм обнаружения с первым битом сообщения. Преамбула обнаруживается, если пиковая амплитуда превышает масштабированное пороговое значение. Если преамбула обнаруживается, значение корреляции передается, как введено (SyncCorr) Блоку управления Синхронизации.

4. Синхронизация управления

Блок управления Синхронизации является конечным автоматом, который обнаруживает преамбулу и генерирует управляющие сигналы ActivateBP и Сброс, которые указывают на запуск кадра, конец кадра и сбрасывают состояние к Битному Процессу и Вычисляют CRC и блоки Валидации Кадра.

5. Битный процесс

Битная подсистема Процесса демодулирует и вниз преобразовывает 4 МГц полученный сигнал в последовательность битов на 1 МГц. Каждый бит данных представлен четырьмя битами PPM. Чтобы демодулировать, блок находит сумму первых двух битов и последних двух битов каждого квадруплета. Затем это сравнивает суммы, чтобы определить исходное битовое значение. Вывод допустимый сигнал утверждается каждый четвертый цикл, чтобы выровняться с последовательностью битов на 1 МГц.

6. Вычислите CRC и структурируйте валидацию

Эта подсистема проверяет на несоответствия в 24-битной контрольной сумме каждого 88-битного сообщения. Блоку CRC нужна индикация относительно контуров кадра, чтобы определить, какие биты являются контрольной суммой. Возрастающее ребро сигнала ActivateBP, сгенерированного от Блока управления Синхронизации, указывает на запуск кадра, и падающее ребро указывает на конец кадра. Сигнал запуска задержан, чтобы совпадать с demod задержкой. Когда блок вывод допускает ошибку, сигнал является нулем, кадр является допустимым сообщением ADS-B. Подсистема буферизует биты сообщения, пока сообщение не подтверждено, чтобы не иметь никакой ошибки CRC.

Запустите карту и данные логов

Можно запустить карту и запустить журналирование текстового файла с помощью двух переключателей ползунка (Карта запуска и Регистрация данных).

Запустите Карту - Запуск карта, где отслеженные рейсы могут быть просмотрены. ПРИМЕЧАНИЕ: у Вас должна быть лицензия Mapping Toolbox, чтобы использовать эту функцию.

Регистрация данных - Сохраняет собранные данные в файле TXT. Можно на потом использовать сохраненные данные для обработки сообщения.

Результаты и отображения

Подсистема HDLRx демодулирует и декодирует данные ADS-B, и вывод передается потоком через блок Deserializer1D и функцию MATLAB MapResults, которая производит шестнадцатеричную выходную информацию о самолете. Каждый расширенный Режим прерывистой генерации S пакет содержит частичную информацию (любой ID Самолета, ID Рейса, Высота, Скорость и Местоположение) о самолете, и таблица создается из нескольких сообщений. Вывод получен как показано в следующей схеме. Пакетные статистические данные включают количество обнаруженных пакетов, количество правильно декодируемых пакетов и пакетный коэффициент ошибок (PER). Эти детали самолета совпадают с переданными значениями от Реализации Элемента кода HW/SW ADS-B Transmitter/Receiver Используя Аналоговые устройства пример AD9361/AD9364.

Генерация HDL-кода и результаты синтеза

Конвейерно обработайте регистры, были добавлены к модели, чтобы убедиться, что подсистема HDLRx не имеет долгого критического пути. HDL-код, сгенерированный от подсистемы HDLRx, синтезировался с помощью Xilinx® Vivado® на FPGA Zynq с устройством 7z045ffg900-2, и проект достигает частоты часов на 264,2 МГц, которая достаточна, чтобы декодировать сигналы ADS-B в реальном времени. Сгенерированный HDL-код тестируется и проверяется в примере в реальном времени Реализация Элемента кода HW/SW ADS-B Transmitter/Receiver Используя Аналоговые устройства AD9361/AD9364. Проверять и сгенерировать HDL-код сослались в этом примере, у вас должна быть лицензия HDL Coder™. Следующая таблица показывает результаты синтеза этого примера.

Можно использовать команды makehdl и makehdltb, чтобы сгенерировать HDL-код и испытательный стенд для подсистемы HDLRx. Чтобы сгенерировать HDL-код, используйте следующую команду:

   makehdl('commadsbrxhdl/HDLRx')

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

   makehdltb('commadsbrxhdl/HDLRx')

Ссылки

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

  2. Марвин Э. Фреркинг, цифровая обработка сигналов в системах связи, научных СМИ бизнеса Спрингера, Нью-Йорк, 1994.