exponenta event banner

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

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

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

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

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

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

Проектирование подсистемы

Алгоритм реализуется с использованием блоков Simulink ®, совместимых с HDL. Модель, показанная ниже, предполагает, что сигнал принимается от 4-элементной однородной прямоугольной матрицы (URA). Следовательно, начальная точка для модели показывает 4 синусоиды в качестве входных данных. Предполагая 4-элементное URA, модель состоит из 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) и набора фильтров нижних частот. NCO обеспечивает сигнал для смешивания и демодуляции входящего сигнала. Откройте подсистему, выполняющую преобразование с понижением частоты

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

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

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

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

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

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

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

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

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

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

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

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

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

sim(modelname);

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

Резюме

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

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

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