Biquad Filter

Биквадратный (БИХ) фильтр.

biquad filter

Описание

Блок Biquad Filter (Биквадратный фильтр) — это разновидность фильтра с бесконечной импульсной характеристикой (БИХ), в котором числитель и знаменатель разделены на ряд секций второго порядка, соединенных блоками усиления. Этот тип фильтра может заменить большой КИХ-фильтр, использующий нецелесообразное количество аппаратных ресурсов. В проектах часто используются биквадратные фильтры в качестве фильтров блокировки постоянного тока или для соответствия спецификации, изначально реализованной с помощью аналогового фильтра, такого как фильтр предыскажения.

Порты

Вход

data — входные данные
скаляр

Входные данные в виде скаляра.

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

valid — допустимость входных данных
скаляр

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

Тип данных: Bool

Выход

data — отфильтрованные выходные данные
скаляр

Отфильтрованные выходные данные. Выходные размеры соответствуют входным размерам.

Типы данных: Float64

Параметры

Filter structure — структура фильтра
Direct form II (по умолчанию) | Direct form II transposed

Обе архитектуры Direct form II и Direct form II transposed конвейерны и квантованы, чтобы вписаться в блоки FPGA. Эти архитектуры сводят к минимуму количество множителей, используемых фильтром, и имеют критический путь через петлю обратной связи, поэтому в некоторых случаях не могут обеспечить более высокие тактовые частоты.

Numerator coefficients of filter — коэффициенты для числителя
[1,2,1] (по умолчанию) | матрица NumSections на 3

Задайте коэффициенты числителя как матрицу NumSections на 3. NumSections — количество секций фильтра второго порядка. Блок выводит количество секций фильтра из размера коэффициентов числителя и знаменателя. Матрицы коэффициентов числителя и знаменателя должны быть одинакового размера. Фильтр по умолчанию имеет один раздел.

Denominator coefficients of filter — коэффициенты для знаменателя
[1,.1,.2] (по умолчанию) | матрица NumSections на 3

Задайте коэффициенты знаменателя как матрицу NumSections на 3. Блок предполагает, что первый коэффициент знаменателя каждой секции равен 1.0. NumSections — количество секций фильтра второго порядка. Блок выводит количество разделов из размера коэффициентов числителя и знаменателя. Матрицы коэффициентов числителя и знаменателя должны быть одинакового размера. Фильтр по умолчанию имеет один раздел.

Scale values of filter — масштабировать значения фильтра
[1] (по умолчанию) | вектор от 1 до NumSections +1

Задайте значения усиления как вектор от 1 до NumSections +1. NumSections — количество секций фильтра второго порядка. Блок выводит количество разделов из размера коэффициентов числителя и знаменателя. Если вектор имеет только одно значение, блок применяет это усиление перед первым разделом. Если вы задаете меньше значений, чем есть разделы фильтра, блок устанавливает оставшиеся значения усиления раздела в один. На диаграмме показан трехсекционный фильтр и расположение четырех значений шкалы до и после секций.

biquad scale

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