Biquad Filter

Моделируйте биквадратичные фильтры БИХ (SOS)

  • Библиотека:
  • DSP System Toolbox/Фильтрация/Реализация фильтра

    Поддержка/фильтрация HDL-файлов DSP System Toolbox

  • Biquad Filter block

Описание

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

Блок Biquad Filter поддерживает Simulink® функция логгирования состояний. Для получения дополнительной информации см. раздел Состояние (Simulink).

Порты

Вход

расширить все

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

Если вход является фиксированной точкой, он должен быть подписан фиксированной точкой с двоичным масштабированием точки.

Этот порт не называется, если вы не задаете значение Coefficient source Input port(s).

Типы данных: single | double | int8 | int16 | int32 | int64 | fixed point
Поддержка комплексного числа: Да

Коэффициенты числителя биквадного фильтра, заданные как 3-бай- N матрица, где N - количество биквадных фильтров.

Если Num является фиксированной точкой, она должна быть подписана фиксированной точкой с двоичным масштабированием точки.

Зависимости

Этот порт появляется только, когда вы устанавливаете Coefficient source на Input port(s).

Типы данных: single | double | int8 | int16 | int32 | int64 | fixed point

Коэффициенты знаменателя биквадного фильтра, заданные как 2-бай- N матрица, где N - количество биквадных фильтров.

Если Den является фиксированной точкой, она должна быть подписана фиксированной точкой с двоичным масштабированием точки.

Зависимости

Этот порт появляется только, когда вы устанавливаете Coefficient source на Input port(s).

Типы данных: single | double | int8 | int16 | int32 | int64 | fixed point

Шкалы значения биквадного фильтра, заданные как вектор 1 бай- (N + 1), где N количество биквадных фильтров.

Если g является фиксированной точкой, она должна быть подписана фиксированной точкой с двоичным масштабированием точки.

Зависимости

Этот порт появляется только, когда вы устанавливаете Coefficient source на Input port(s).

Типы данных: single | double | int8 | int16 | int32 | int64 | fixed point

Выход

расширить все

Отфильтрованный выход, возвращенный как вектор или матрица.

Размерности выхода всегда равны размерностям входного сигнала. Вывод этого блока численно совпадает с выходами dsp.BiquadFilter Системные object™.

Если Out является фиксированной точкой, она должна быть подписана фиксированной точкой с двоичным масштабированием точки.

Этот порт не называется, если вы не задаете значение Coefficient source Input port(s).

Типы данных: single | double | int8 | int16 | int32 | int64 | fixed point
Поддержка комплексного числа: Да

Параметры

расширить все

Главная вкладка

Блок Biquad Filter может работать в трех различных режимах:

  • Dialog parameters - Введите информацию о фильтре, например структуру и коэффициенты, в маску блока.

  • Input port(s) - Введите информацию о структуре фильтра в маске блока с помощью параметра Filter structure. Коэффициенты фильтра поступают в блок через дополнительные входные порты, которые появляются на значке блока:

    • Num - Задайте коэффициенты числителя.

    • Den - Задайте коэффициенты знаменателя.

    • g - Задайте значения шкалы.

    Блок принимает первые коэффициенты знаменателя и каждого раздела равными 1. Это строение применяется, когда SOSMatrixSource свойство 'Input port' и ScaleValuesInputPort свойство true. Причина, по которой вам нужно было бы задать Num и Den вместо SOSMatrix, заключается в том, что при операции с фиксированной точкой числители и знаменатели могут иметь различные длины дробей. Поэтому необходимо иметь возможность передавать данные числителя с типом с фиксированной точкой, отличным от типа знаменателя.

  • Filter object - Задайте фильтр используя dsp.BiquadFilter Системный объект.

Укажите имя фильтра в дискретном времени, который необходимо реализовать блоку. Необходимо задать фильтр как dsp.BiquadFilter Системный объект.

Можно задать Системный объект в маске блока или в MATLAB® переменная рабочей области.

Для получения информации о создании системных объектов см. раздел «Определение основных системных объектов».

Зависимости

Этот параметр видим, только когда Coefficient source установлено на Filter object.

Задайте структуру фильтра.

Зависимости

Этот параметр видим, только когда Coefficient source установлено на Dialog parameters или Input port(s).

Задайте M -by-6 матрицу, где M количество разделов в фильтре секции второго порядка. Каждая строка матрицы SOS содержит коэффициенты числителя и знаменателя (bik и aik) соответствующего раздела в фильтре.

[b01b11b21a01a11a21b02b12b22a02a12a22b0Mb1Mb2Ma0Ma1Ma2M]

Начальные коэффициенты знаменателя [a01 a02... a0N] рассматриваются как 1s, независимо от их фактических значений. Масштабирование не применяется к матрице SOS, когда a0 не 1.

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

Зависимости

Этот параметр видим, только когда Coefficient source установлено на Dialog parameters.

Задайте значения шкалы для использования между разделами SOS. Можно задать действительный скаляр или вектор длины M + 1:

  • Когда вы вводите скаляр, значение задает значение усиления перед первой секцией фильтра второго порядка. Остальная часть значений усиления по умолчанию равна 1.

  • Когда вы вводите вектор M + 1 значений, каждое значение задает отдельную секцию фильтра. Для примера первый элемент является первым значением усиления, второй элемент является вторым значением усиления и так далее.

Установите флажок Optimize unity scale values, чтобы оптимизировать симуляцию, когда одно или несколько значений шкалы равны 1. Выбор этой опции удаляет коэффициент усиления, так что значения обрабатываются как линии Simulink или провода. В некоторых случаях с фиксированной точкой, когда существуют значения шкалы единиц, выбор этого параметра также опускает определенные приведения. Для получения дополнительной информации см. раздел Fixed-Point Conversion под Extended Capabilities.

Зависимости

Этот параметр видим, только когда Coefficient source установлено на Dialog parameters.

Задайте начальные условия состояния фильтра.

Блок Biquad Filter по умолчанию инициализирует состояния внутреннего фильтра до нуля. Опционально используйте параметр Initial conditions, чтобы задать ненулевые начальные состояния для задержек фильтра.

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

Действительные начальные условия

Начальное условиеОписание

Скаляр

Блок инициализирует все элементы задержки в фильтре до скалярного значения.

Вектор или матрица
(для применения различных элементов задержки к каждому каналу)

Каждый вектор или элемент матрицы задает уникальное начальное условие для соответствующего элемента задержки в соответствующем канале. M - количество каскадов, а N - количество входных каналов:

  • Длина вектора должна равняться количеству элементов задержки в фильтре, 2 M.

  • Матрица должна иметь то же количество строк, что и количество элементов задержки в фильтре 2 M N. Матрица должна также иметь по одному столбцу для каждого канала входного сигнала.

Зависимости

Этот параметр видим только, когда Coefficient source установлено на Dialog parameters или Input port(s) и значение Filter structure устанавливается равным Direct form II или Direct form II transposed.

Задайте начальные условия для состояний фильтра на стороне структуры фильтра с нулями (b0, b1, b2,...).

Блок Biquad Filter по умолчанию инициализирует состояния внутреннего фильтра до нуля. Опционально используйте параметр Initial conditions on zeros side, чтобы задать ненулевые начальные состояния для задержек фильтра. Для получения примера см. ex_biquad_filter_ref.

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

Действительные начальные условия

Начальное условиеОписание

Скаляр

Блок инициализирует все элементы задержки в фильтре до скалярного значения.

Вектор или матрица
(для применения различных элементов задержки к каждому каналу)

Каждый вектор или элемент матрицы задает уникальное начальное условие для соответствующего элемента задержки в соответствующем канале. Где M - количество каскадов, а N - количество входа каналов:

  • Длина вектора должна равняться количеству элементов задержки в фильтре, 2 M.

  • Матрица должна иметь то же количество строк, что и количество элементов задержки в фильтре 2 M N. Матрица должна также иметь по одному столбцу для каждого канала входного сигнала.

Зависимости

Этот параметр видим, только когда Coefficient source установлено на Dialog parameters или Input port(s) и значение Filter structure устанавливается равным Direct form I или Direct form I transposed.

Задайте начальные условия для состояний фильтра на стороне структуры фильтра с полюсами (a0, a1, a2,...).

Блок Biquad Filter по умолчанию инициализирует состояния внутреннего фильтра до нуля. Опционально используйте параметр Initial conditions on poles side, чтобы задать ненулевые начальные состояния для задержек фильтра. Для получения примера см. ex_biquad_filter_ref.

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

Действительные начальные условия

Начальное условиеОписание

Скаляр

Блок инициализирует все элементы задержки в фильтре до скалярного значения.

Вектор или матрица
(для применения различных элементов задержки к каждому каналу)

Каждый вектор или элемент матрицы задает уникальное начальное условие для соответствующего элемента задержки в соответствующем канале. Где M - количество каскадов, а N - количество входа каналов:

  • Длина вектора должна равняться количеству элементов задержки в фильтре, 2 M.

  • Матрица должна иметь то же количество строк, что и количество элементов задержки в фильтре 2 M N. Матрица должна также иметь по одному столбцу для каждого канала входного сигнала.

Зависимости

Этот параметр видим, только когда Coefficient source установлено на Dialog parameters или Input port(s) и значение Filter structure устанавливается равным Direct form I или Direct form I transposed.

Выберите, как задать значения шкалы для использования между сечениями фильтра. Когда вы выбираете Specify via input port (g), вы вводите значения шкалы как вектор 2-D в порте g. Когда вы выбираете Assume all are unity and optimizeвсе значения шкалы удаляются и обрабатываются как линии Simulink или провода.

Зависимости

Этот параметр видим, только когда Coefficient source установлено на Input port(s).

Задайте действие, которое должен выполнить блок, когда значения a0j матрицы SOS не равны единице. Действие может быть Warning, Error, или None.

Когда вы выбираете Noneначальные коэффициенты a0j обрабатываются как 1-е, независимо от их фактических значений. Масштабирование не применяется к матрице SOS, когда a0 не 1.

Зависимости

Этот параметр видим, только когда Coefficient source установлено на Dialog parameters.

Установите этот флажок, чтобы оптимизировать симуляцию, когда одно или несколько значений шкалы равны 1. Выбор этой опции удаляет коэффициент усиления, так что значения обрабатываются как линии Simulink или провода. В некоторых случаях с фиксированной точкой, когда существуют значения шкалы единиц, выбор этого параметра также опускает определенные приведения. Для получения дополнительной информации см. раздел Fixed Point в разделе Расширенные возможности.

Зависимости

Этот параметр видим, только когда Coefficient source установлено на Dialog parameters.

Укажите, как блок должен обрабатывать вход. Если вход является матрицей M -by N, можно задать этот параметр как:

  • Columns as channels (frame based) (по умолчанию) - блок обрабатывает каждый столбец как отдельный канал. В этом режиме блок создает M образцов того же фильтра, каждый со своим собственным независимым буфером состояний. Каждый из M фильтров обрабатывает N входных выборок на каждом временном шаге Simulink.

  • Elements as channels (sample based) - Блок обрабатывает каждый элемент как отдельный канал. В этом режиме блок создает M N образцов же фильтра, каждый со своим собственным независимым буфером состояний. Каждый фильтр обрабатывает одну входную выборку на каждом временном шаге Simulink.

Эта кнопка открывает Инструмент визуализации фильтра (fvtool) и отображает фильтровальную характеристику фильтра, заданную в диалоговом окне.

Примечание

Когда вы вносите изменения в параметры фильтра в диалоговом окне блока, необходимо нажать кнопку Apply перед использованием кнопки View Filter Response.

Вкладка «Типы данных»

Примечание

Эта вкладка появляется только, когда вы задаете Coefficient source Dialog parameters или Input port(s). Когда для Coefficient source задано значение Filter objectтипы данных, заданные в свойствах объекта фильтра, используются блоком.

Задайте режим округления для операций с фиксированной точкой.

Для получения дополнительной информации смотрите режим округления. Коэффициенты фильтра не подчиняются этому параметру; вместо этого они всегда округляют до Nearest.

Когда вы выбираете этот параметр, блок насыщает результат своей операции с фиксированной точкой. Когда вы очищаете этот параметр, блок переносит результат своей операции с фиксированной точкой. Для получения дополнительной информации о saturate и wrap, см. Режим переполнения для операций с фиксированной точкой.

Коэффициенты фильтра всегда насыщены и не подчиняются этому параметру.

Выберите, как вы задаете длины слова и дроби типа данных с фиксированной точкой, переходящие в каждый раздел биквадратического фильтра. Смотрите раздел Fixed-Point Conversion в разделе Расширенные возможности (Extended Capabilities) для рисунков с использованием типа входных данных раздела в этом блоке. Когда вы выбираете:

  • Same as input - Характеристики длины и длины дроби Section input типа данных совпадают с характеристиками входов блока.

  • Binary point scaling - Введите слово и длину дроби входного параметра раздела в битах.

Выберите, как вы задаете длины слова и дроби типа данных с фиксированной точкой, выходящих из каждого раздела биквадратического фильтра. См. раздел Fixed-Point Conversion под Extended Capabilities для рисунков, описывающих использование типа выходных данных раздела в этом блоке. Когда вы выбираете:

  • Same as section input - Характеристики длины и длины дроби Section output типа данных соответствуют характеристикам входов блока.

  • Binary point scaling - Введите слово и длину дроби выходного раздела в битах.

Выберите, как вы задаете длины слова и дроби для типа данных multiplicand Direct form I transposed структура фильтра. См. раздел Fixed-Point Conversion под Extended Capabilities для рисунков, описывающих использование типа данных multiplicand в этом блоке.

Когда вы выбираете:

  • Same as output - Характеристики длины и длины дроби Multiplicand типа данных соответствуют характеристикам выхода блока.

  • Binary point scaling - Введите размер слова и длину дроби мультипликации, в битах.

Зависимости

Этот параметр видим, только когда параметр Filter structure установлен в Direct form I transposed.

Выберите, как вы задаете длины слова и дроби коэффициентов фильтра (числитель, знаменатель и значение шкалы), когда Coefficient source установлено в Dialog parameters. См. раздел Fixed-Point Conversion под Extended Capabilities для рисунков, описывающих использование типов данных коэффициентов в этом блоке. Когда вы выбираете:

  • Same word length as input - Длина слова коэффициентов фильтра соответствует длине входных параметров блока. В этом режиме блок автоматически устанавливает длину дроби коэффициентов в двоичное масштабирование только для точки, которая обеспечивает лучшую точность, учитывая значение и размер слова коэффициентов.

  • Specify word length - Введите размер слова коэффициентов, в битах. В этом режиме блок автоматически устанавливает длину дроби коэффициентов в двоичное масштабирование только для точки, которая обеспечивает лучшую точность, учитывая значение и размер слова коэффициентов.

  • Binary point scaling - Введите размер слова и длину дроби коэффициентов в битах. Если применимо, вводите отдельные длины дробей для коэффициентов числителя и знаменателя.

Коэффициенты фильтра не подчиняются параметрам Rounding mode и Overflow mode; вместо этого они всегда насыщены и округлены до Nearest.

Зависимости

Этот параметр видим, только когда Coefficient source установлено на Dialog parameters.

Задайте, как обозначить выходное слово продукта и длины дробей. Смотрите Типы данных умножения и Fixed-Point Conversion раздел под Extended Capabilities для рисунков с использованием типа данных выходов продукта в этом блоке. Когда вы выбираете:

  • Same as input - Характеристики выходного слова продукта и длины дроби совпадают с характеристиками входов блока.

  • Inherit via internal rule - Длина выходного слова продукта и длина дроби вычисляются на основе правил полной точности. Эти правила препятствуют квантованию внутри блока. Биты складываются, при необходимости, так, чтобы не происходило округления или переполнения. Для получения дополнительной информации см. раздел Наследование через внутреннее правило.

  • Binary point scaling - Введите размер слова и длину дроби выходного продукта в битах. Если применимо, введите отдельные длины дробей для типа выходных данных числителя и знаменателя продукта.

Задайте, как обозначить слово аккумулятора и длины дробей. См. Типы данных умножения и раздел Fixed-Point Conversion под Extended Capabilities для рисунков, описывающих использование типа данных аккумулятора в этом блоке. Когда вы выбираете:

  • Same as input - Характеристики слова и длины дроби аккумулятора совпадают с характеристиками входов блока.

  • Same as product output - Характеристики слова и длины дроби аккумулятора совпадают с характеристиками выходных данных продукта.

  • Binary point scaling - Введите размер слова и длину дроби аккумулятора в битах. Если применимо, введите отдельные длины дробей для типа данных числителя и знаменателя аккумулятора.

Задайте, как обозначить слово состояния и длины дроби, когда Coefficient source задано значение Dialog parameters. См. раздел Fixed-Point Conversion под Extended Capabilities для рисунков, описывающих использование типа данных о состоянии в этом блоке.

Когда вы выбираете:

  • Same as input - Характеристики слова и длины дроби соответствуют характеристикам входов блока.

  • Same as accumulator - Характеристики слова и длины дроби соответствуют характеристикам аккумулятора.

  • Binary point scaling - Введите размер слова и длину дроби состояния в битах. Если применимо, вводите отдельные длины дробей для типа данных числителя и состояния знаменателя.

Зависимости

Этот параметр видим, только когда Filter structure установлено на Direct form II или Direct form II transposed.

Выберите способ определения выхода размера слова и длины дроби. См. раздел Fixed-Point Conversion под Extended Capabilities для рисунков, описывающих использование типа выходных данных в этом блоке. Когда вы выбираете:

  • Same as input - Выходные характеристики слова и длины дроби совпадают с характеристиками входов блока.

  • Same as accumulator - Выходы слова и длины дроби совпадают с характеристиками аккумулятора.

  • Binary point scaling - Введите размер слова и длину дроби выхода, в битах.

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

Характеристики блоков

Типы данных

double | fixed point | integer | single

Прямое сквозное соединение

no

Многомерные сигналы

no

Сигналы переменного размера

yes

Обнаружение пересечения нулем

no

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2008b