Документация Engee

Discrete FIR Filter HDL

Фильтр с конечной импульсной характеристикой.

Тип: HDLDiscreteFIRFilter

Путь в библиотеке:

/Basic/Additional/Discrete/Discrete FIR Filter HDL

Описание

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

Блок предоставляет полностью параллельную реализацию фильтрации, подходящую для приложений FPGA и ASIC (режим Direct form transposed).

Порты

Вход

# data — входные данные
скаляр | вектор-столбец | вектор-строка

Details

Входные данные, заданные как скаляр, вектора-столбец или вектора-строка вещественных или комплексных значений.

Можно использовать вектор-строку [c1 c2 c3] для представления входных выборок для нескольких каналов в одном цикле, или можно предоставить скалярные мультканальные данные с чередованием каналов: выборка данных c1 в цикле 1, выборка данных c2 в цикле 2, выборка данных c3 в цикле 3. Каналы могут иметь независимые коэффициенты фильтра.

discrete fir filter hdl 1

Фреймовый ввод (векторов-столбец) не поддерживается для мультканальных коэффициентов. Для реализации высокопроизводительного мультканального фильтра можно использовать блок For Each, чтобы реализовать высокопроизводительный фильтр для каждого канала.

Размер вектора-строки или вектора-столбца должен быть меньше или равен 64 элементам. Чтобы реализовать мультканальный фильтр с более чем 64 каналами, необходимо использовать скалярный ввод с чередованием.

Если входные данные имеют целочисленный тип или тип с фиксированной точкой, блок использует арифметику с фиксированной точкой для внутренних вычислений и предоставляет параметры на вкладке Data Types для настройки типов данных. Если входные данные имеют тип с плавающей точкой, блок использует данный тип входных данных с плавающей точкой для внутренних вычислений и выходных данных.

Программное обеспечение поддерживает типы данных Float64 и Float32 для моделирования, но не для генерации HDL-кода.

Типы данных

Fixed-point, Float32, Float64, Int8, Int16, Int32, UInt8, UInt16, UInt32

Поддержка комплексных чисел

Да

# valid — указывает на корректность входных данных
скаляр

Details

Управляющий сигнал, указывающий на корректность входных данных. Если значение порта valid равно 1 (true), блок получает значения из порта входных данных data. Если значение порта valid равно 0 (false), блок игнорирует значения из порта data.

Типы данных

Bool

Поддержка комплексных чисел

Нет

Выход

# data — отфильтрованные выходные данные
скаляр | вектор-столбец | вектор-строка

Details

Отфильтрованные выходные данные, возвращаемые в виде скаляра, вектора-столбца или вектора-строки вещественных или комплексных значений. Размеры выходных данных соответствуют размерам входных данных. Если входные данные имеют тип с плавающей точкой, выходные данные наследуют тип входных данных. Если входные данные имеют целочисленный тип или тип с фиксированной точкой, параметр Output на вкладке Data Types управляет типом выходных данных.

Типы данных

Fixed-point, Float32, Float64

Поддержка комплексных чисел

Да

# valid — указывает на корректность выходных данных
скаляр

Details

Управляющий сигнал, указывающий на корректность выходных данных порта data. Если значение порта valid равно 1 (true), блок возвращает корректные данные из выходного порта data. Если значение порта valid равно 0 (false), значения из выходного порта data некорректны.

Типы данных

Bool

Поддержка комплексных чисел

Нет

Параметры

Filter parameters

# Coefficient source — источник коэффициентов фильтра
Property

Details

Вы можете установить постоянные коэффициенты фильтра в виде параметра (скаляр, вектор или матрица чисел).

Значения

Property

Значение по умолчанию

Property

Имя для программного использования

CoefficientsSource

Настраиваемый

Нет

Вычисляемый

Нет

# Coefficients — коэффициенты дискретного КИХ-фильтра

Details

Коэффициенты дискретного КИХ-фильтра, заданные как вектор-строка вещественных или комплексных значений. Мультканальные коэффициенты можно задать с помощью матрицы размером на вещественных или комплексных значений, где — количество каналов, а — длина фильтра. Для оптимизации симметрии, характеристики симметрии всех каналов должны быть согласованы. Например, если один канал имеет четную симметрию, все каналы должны быть четно-симметричными.

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

Зависимости

Чтобы использовать этот параметр, установите для параметра Coefficient source значение Property.

Значение по умолчанию

[0.5, 0.5]

Имя для программного использования

Coefficients

Настраиваемый

Нет

Вычисляемый

Да

# Filter structure — архитектура HDL-фильтра
Direct form transposed

Details

Укажите архитектуру HDL-фильтра как одну из следующих структур:

  • Direct form transposed — эта архитектура представляет собой полностью параллельную реализацию, подходящую для приложений FPGA и ASIC. При указании мультканальных коэффициентов в этой архитектуре (с чередующимися входными выборками) блок чередует коэффициенты каналов с помощью одного параллельного фильтра.

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

Значения

Direct form transposed

Значение по умолчанию

Direct form transposed

Имя для программного использования

FilterStructure

Настраиваемый

Нет

Вычисляемый

Нет

Fixed-point operational parameters

# Rounding mode — режим округления для приведения выходных данных к выбранному типу данных
Zero

Details

Режим округления для приведения выходных данных к типу данных, указанному в параметре Output. Если входные данные имеют тип с плавающей точкой, блок игнорирует этот параметр. Вы можете выбрать:

  • Zero — округляет число в сторону нуля.

Значения

Zero

Значение по умолчанию

Zero

Имя для программного использования

RoundingMode

Настраиваемый

Нет

Вычисляемый

Нет

Floating-point inheritance takes precedence over the data type settings in this section. When the block input is floating point, all block data types match the input.

# Coefficients — тип данных коэффициентов дискретного КИХ-фильтра
Same word length as input | Fixed-point

Details

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

Рекомендуемое значение для этого параметра: Same word length as input.

Зависимости

Чтобы использовать этот параметр, установите для параметра Coefficient source значение Property.

Значения

Same word length as input | Fixed-point

Значение по умолчанию

Same word length as input

Имя для программного использования

CoefficientsTypeMode

Настраиваемый

Нет

Вычисляемый

Нет

# Coefficients type — тип данных коэффициентов
Data type

Details

Укажите тип данных коэффициентов для этого блока.

Значение по умолчанию

fixdt(1, 16, 0)

Имя для программного использования

CoefficientsTypeStr

Настраиваемый

Нет

Вычисляемый

Да

# Output — тип выходных данных фильтра
Inherit via internal rule | Same word length as input | Fixed-point

Details

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

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

При указании фиксированного набора коэффициентов фактическая внутренняя длина слова с полной точностью обычно меньше, чем , поскольку значения коэффициентов ограничивают потенциальный рост.

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

Значения

Inherit via internal rule | Same word length as input | Fixed-point

Значение по умолчанию

Inherit via internal rule

Имя для программного использования

OutputTypeMode

Настраиваемый

Нет

Вычисляемый

Нет

# Output type — тип выходных данных
Data type

Details

Укажите тип выходных данных для этого блока.

Значение по умолчанию

fixdt(1, 16, 0)

Имя для программного использования

OutputTypeStr

Настраиваемый

Нет

Вычисляемый

Да