Рабочий процесс метода монопульса на основе FPGA: Часть 1 - Проект алгоритмов

Этот пример является первой частью двухчастной серии, которая помогает вам разработать Метод Монопульса, где сигнал преобразуется вниз через цифровое преобразование вниз (DDC). Разработанная здесь модель подходит для реализации на FPGA. Этот пример фокусируется на проекте моноимпульсного метода для оценки азимута и повышения объекта. Вторая часть примера FPGA Based Monopulse Technique Workflow: Part 2 - Генерация Кода показывает, как сгенерировать HDL-код из модели реализации и проверить, что сгенерированный HDL-код дает правильные результаты по сравнению с поведенческой моделью. Модель готова к реализации, и это будет проверено в примере. Весь рабочий процесс разработан в фиксированной точке.

Пример показывает, как спроектировать готовый к реализации метод монопульса FPGA, чтобы соответствовать соответствующей поведенческой модели в Simulink ®, используя Toolbox™ Phased Array System, DSP System Toolbox™ и Fixed-Point Designer™. Чтобы проверить модель реализации, она сравнивает выходы симуляции модели реализации с выходами поведенческой модели.

Phased Array System Toolbox предоставляет поведенческую модель с плавающей точкой для метода моноимпульса через фазированную. Системный объект. DSP System Toolbox обеспечивает фильтр конечную импульсную характеристику, необходимый для фильтрации преобразования вниз.

Fixed-Point Designer предоставляет типы данных и инструменты для разработки алгоритмов с фиксированной и одной точностью для оптимизации эффективности встроенного оборудования. Симуляции Bit-true могут выполняться, чтобы наблюдать влияние ограниченной области значений и точности без реализации проекта на оборудовании.

Моноимпульс является методом, в котором принятые эхо-сигналы от различных элементов антенны используются для оценки направления прибытия (DOA) сигнала. Это, в свою очередь, помогает оценить местоположение объекта. Для разработки модуля в примере используются DSP System Toolbox и Fixed-Point Designer. Этот метод использует четыре луча, которые помогают измерить угловое положение цели. Все четыре луча генерируются одновременно, и различие азимута и повышения достигается за один импульс, следовательно, имя.

Разработка Подсистемы

Алгоритм реализован путем использования блоков Simulink ®, которые совместимы с HDL. Модель, показанная ниже, принимает, что сигнал принимается от 4-элементного равномерного прямоугольного массива (URA). Следовательно, начальная точка для модели показывает 4 синусоиды в качестве входов. Принимая URA с 4 элементами, модель состоит из 4 каналов приема от каждого из элементов URA. Когда сигналы преобразуются в цифровую область, блоки DDC гарантируют, что частота принимаемого сигнала уменьшается, поэтому уменьшается частота дискретизации для обработки. Блок-схема ниже показывает подсистему, которая состоит из следующих модулей.

  1. Многоканальный входной сигнал

  2. Цифровое преобразование вниз

  3. Моноимпульсная сумма и разностные каналы

Ниже приведена команда для открытия модели Simulink

modelname = 'SimulinkDDCMonopulseHDLWorkflowExample';
open_system(modelname);

% Ensure model is visible and not obstructed by scopes.
open_system(modelname);
set(allchild(0),'Visible','off');

Модель Simulink имеет две ветви. Верхняя ветвь является поведенческой моделью с плавающей точкой метода монопульса и алгоритма цепи цифрового преобразования вниз, а нижняя ветвь является функционально эквивалентной версией с фиксированной точкой, используя блоки, которые поддержка генерацию HDL-кода. Помимо графического изображения вывода обеих ветвей для сравнения двух, также была вычисляет и наносимо различие, или ошибка, между суммарным каналом обоих выходов.

Заметьте, что на $Z^{-220}$выходе поведенческой модели есть задержка (). Это необходимо, потому что алгоритм реализации использует 220 задержек, чтобы включить конвейеризацию, которая создает задержку, которая должна учитываться. Эта задержка необходима для выравнивания по времени выхода между поведенческой моделью и моделью реализации.

Цифровое преобразование вниз (DDC)

Подсистема ниже показывает, как принятый сигнал при дискретизации на частоте 80 МГц и несущей частоте почти 15 МГц преобразуется с понижением частоты в полосу модулирующих частот через DDC и затем передается в подсистему моноимпульсной суммы и различия. Модуль DDC является комбинацией численно управляемого генератора (NCO) и набора lowpass фильтров. NCO обеспечивает сигнал для смешивания и демодуляции входящего сигнала. Откройте подсистему, которая выполняет преобразование вниз

open_system([modelname '/DDC and Monopulse HDL']);

Заметьте, что задержка 215 мс была добавлена к сумме и разностному выходу векторов управления в подсистеме реализации, чтобы компенсировать задержку, которая возникает из цепи преобразования вниз.

DDC также содержит набор lowpass фильтров, как показано на рисунке. После смешивания требуется lowpass фильтрация смешанного сигнала, чтобы исключить компоненты высокой частоты. В этом примере мы используем каскадную цепь фильтров для достижения lowpass. NCO используется для генерации высокоточной синусоиды для смесителя. Задержка 6 обеспечивается для блока NCO, оптимизированного HDL. Этот сигнал смешивается с входным сигналом и преобразуется с более высокой частоты на относительно более низкую частоту, когда он прогрессирует через различные каскады.

open_system([modelname '/DDC and Monopulse HDL/HDL_DDC']);

В этом примере входящий сигнал имеет несущую частоту 15 МГц и дискретизируется на частоте 80 МГц. Процесс преобразования с понижением частоты снижает дискретизированный сигнал до нескольких кГц. Коэффициенты для соответствующих низкочастотных конечная импульсная характеристика разработаны с использованием filterBuilder, один из которых аналогичен описанному ниже. Значения должны быть выбраны, чтобы удовлетворить необходимым критериям полосы пропускания.

После генерации коэффициенты могут быть экспортированы в блок оптимизированного Конечная Импульсная Характеристика HDL.

Моноимпульсная сумма и разностные каналы

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

open_system([modelname '/DDC and Monopulse HDL/DIGITAL COMPARATOR']);

На рисунке выше цифровой компаратор принимает векторы управления и вычисляет сумму и различие различных векторов управления sVA, sVB, sVC и sVD соответственно. Можно также вычислить векторы управления при помощи фазированных. Системный объект рулевых векторов или можно сгенерировать их с помощью метода, аналогичного показанному в FPGA Based Beamforming in Simulink: Part 1 - Algorithm Design. После выполнения вычисления суммы и различия различных векторов управления, соответствующих каждому элементу массива, выполняется вычисление суммы и различия каналов для соответствующих азимута и углов возвышения. Из подсистемы Sum и Difference Monopulse получают 3 сигнала, а именно сумму, различие азимута и различие повышений. Вся арифметика выполняется в фиксированной точке. Подсистема моноимпульсной суммы и разностного канала может быть открыта с помощью команды ниже

open_system([modelname '/DDC and Monopulse HDL/Monopulse Sum and Difference Channel']);

Сравнение результатов модели реализации с поведенческой моделью

Чтобы сравнить результаты модели реализации с поведенческой моделью, запустите модель, созданную для отображения результатов. Можно запустить модель Simulink, нажав кнопку Play или вызвав команду sim в командной строке MATLAB, как показано ниже. Используйте блоки Scope, чтобы сравнить выходные системы координат.

sim(modelname);

Графики показывают выход из суммарного и разностного каналов. Эти каналы могут быть поданы в блок оценки для указания угла/направления объекта.

Сводные данные

Этот пример демонстрирует, как разработать алгоритм, готовый к реализации FPGA, автоматически сгенерировать HDL-код и проверить HDL-код в Simulink. Пример иллюстрирует проект модели Simulink для системы подачи DDC и моноимпульса, проверьте результаты с эквивалентной поведенческой настройкой из набора инструментов Phased Array System Toolbox, который предоставляет золотую ссылку. Помимо поведенческой модели, пример демонстрирует, как создать подсистему для реализации с использованием блоков Simulink, которые поддерживают генерацию HDL-кода. Он также сравнил вывод модели реализации с выходом соответствующей поведенческой модели, чтобы убедиться, что эти два алгоритма функционально эквивалентны.

Если алгоритм реализации функционально верифицирован как эквивалентный золотой ссылке, HDL Coder может использоваться для Генерации HDL-кода и HDL Verifier™ Simulink, чтобы сгенерировать модель косимуляции (HDL Coder) испытательного стенда.

Вторая часть этой двухсерийной серии показывает, как сгенерировать HDL-код из модели реализации и проверить, что сгенерированный HDL-код дает те же результаты, что и поведенческая модель с плавающей точкой, а также модель реализации с фиксированной точкой.