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

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

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

Phased Array System Toolbox обеспечивает поведенческую модель с плавающей точкой для моноимпульсного метода через phased.MonopulseFeed Системный объект. DSP System Toolbox обеспечивает КИХ-фильтр, важный для вниз фильтрация преобразования.

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

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

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

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

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

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

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

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

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

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

После того, как сгенерированный, коэффициенты могут быть экспортированы в оптимизированный блок FIR Filter HDL.

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

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

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

На рисунке выше, цифровой компаратор берет держащиеся векторы и вычисляет сумму и различие различных руководящих векторов sVA, sVB, sVC и sVD соответственно. Можно также вычислить держащиеся векторы при помощи phased.SteeringVector Системного объекта, или можно сгенерировать их метод использования, похожий на один показанный в FPGA Основанный Beamforming в Simulink: Часть 1 - Проект Алгоритма. Однажды сумма и различие различных руководящих векторов, соответствующих каждому элементу массива, был сделан, вычисление суммы и каналов различия для соответствующего азимута, и углы возвышения выполняются. От подсистемы Моноимпульса Суммы и Различия 3 сигнала получены, а именно, сумма, различие в азимуте и различие в вертикальном изменении. Целая арифметика выполняется в фиксированной точке. Моноимпульсная сумма и подсистема канала различия могут быть открыты при помощи команды ниже

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

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

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

sim(modelname);

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

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

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

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

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