В этом примере показано, как реализовать КИХ-фильтр lowpass с 32 касаниями с помощью блока Discrete FIR Filter HDL Optimized.
Оба блока фильтра в модели в качестве примера реализуют идентичное частично - последовательный фильтр с 32 касаниями. Главный блок конфигурирует последовательный фильтр путем определения количества циклов, N, между входными выборками. Этот интервал позволяет каждому множителю быть совместно использованным коэффициентами N. Второй блок сконфигурирован, чтобы использовать определенное число множителей, M. Эти две настройки приводят к той же реализации фильтра. Для 32 симметричных коэффициентов существует 16 уникальных коэффициентов. Поэтому фильтр совместно использует каждый из 2 множителей между 8 коэффициентами.
Модель показывает два способа применить входные выборки, в зависимости от уровня остальной части вашего проекта.
Откройте модель. Смотрите главные параметры блоков. Структура Фильтра установлена в Partly serial systolic
и Задайте фактор сериализации, как установлен в Minimum number of cycles between valid input samples
. Номер циклов определяется (к 8) использование переменной, numCycles. В более низком блоке Задайте фактор сериализации, как установлен в Maximum number of multipliers
. Номер множителей определяется (к 2) использование переменной. Переменные заданы в PostLoadFcn
функция обратного вызова.
От расцветки вы видите, что уровень обоих блоков фильтра является тем же самым, в то время как уровень сгенерированных входных выборок отличается.
Запустите модель. Наблюдайте сигналы ввода и вывода в сгенерированных графиках. Код, чтобы сгенерировать графики находится в PostSimFcn
'callback'.
Из панели инструментов модели откройте Logic Analyzer. Если кнопка не отображена, расширьте галерею приложения Результатов Анализа.
Смотрите возрастающие ребра ready
, validIn
, и validOut
.
Чтобы сгенерировать HDL-код от любого блока Discrete FIR Filter HDL Optimized, щелкните правой кнопкой по блоку и выберите Create Subsystem from Selection. Затем щелкните правой кнопкой по подсистеме и выберите HDL Code> Generate HDL Code for Subsystem. Оба блока генерируют тот же HDL-код.