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

Discrete Filter

Модель фильтра с бесконечной импульсной характеристикой (БИХ).

discrete filter

Описание

Блок Discrete Filter независимо фильтрует каждый канал входного сигнала с заданным цифровым БИХ-фильтром. Вы можете указать структуру фильтра как Direct form I, Direct form I transposed, Direct form II или Direct form II transposed.

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

Параметр Numerator coefficients задает коэффициенты полинома числителя фильтра. Параметр Denominator coefficients задает коэффициенты полинома знаменателя функции.

Коэффициенты полиномов числителя и знаменателя задаются в порядке возрастания степеней . Блок Discrete Filter позволяет использовать полиномы в (оператор задержки), чтобы представить дискретную систему. Такой подход, как правило, используется в цифровой обработке сигналов (ЦОС). Напротив, блок Discrete Transfer Fcn позволяет использовать полиномы от для представления дискретной системы. Такой подход чаще встречается в системах управления. Когда полиномы числителя и знаменателя имеют одинаковую длину, оба эти подхода эквивалентны.

Начальные состояния

  • Если начальное значение — скаляр, то для каждого канала для каждой задержки используется это начальное значение.

  • Если начальное значение — массив, то используется расширение размерности.

    Рассмотрим пример. Пусть начальное значение это [s1, s2, s3]. В таком случае это вектор-столбец, так что его для наглядности можно записать так:

    [
    s1,
    s2,
    s3,
    ]

    Допустим, канал у нас один. Тогда s1 — это начальное условие для первой задержки, s2 — для второй и т.д. Если каналов несколько, то все это верно для каждого отдельно взятого канала.

    Второй пример — [s1 s2 s3]. Это матрица-строка. Если у фильтра три задержки, то после расширения размерности начальные условия имеют вид:

    [
    s1 s2 s3;
    s1 s2 s3;
    s1 s2 s3;
    ]

    В данном случае начальные условия для задержек первого канала — это [s1, s1, s1], для второго — [s2, s2, s2] и т.д.

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

Число задержек определяется так, как написано выше. Для Direct form I и Direct form I transposed число задержек для числителя равняется длине числителя минус 1, для знаменателя — длине знаменателя минус 1. Для Direct form II и Direct form II transposed максимуму из длин знаменателя и числителя минус 1.

Параметр Initial states задает начальные состояния для задержек фильтра.

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

Начальное состояние Примеры Описание

Скаляр

5

Каждый элемент задержки для каждого канала установлен на 5.

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

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

Для трехканального входного сигнала и фильтра с двумя элементами задержки:

] или

Элементами задержки для канала 1 являются и .

Элементами задержки для канала 2 являются и .

Элементами задержки для канала 3 являются и .

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

  • Длина вектора должна быть равна произведению количества входных каналов и количества элементов задержки в фильтре.

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

Порты

Вход

u — входной сигнал
скаляр | вектор | матрица | многомерный массив

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

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

Выход

Port_1 — отфильтрованный сигнал
скаляр | вектор | матрица | многомерный массив

Отфильтрованный выходной сигнал.

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

Параметры

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

Задает дискретную структуру IIR-фильтра.

Программное использование

Параметр блока

FilterStructure

Значения

Direct form II | Direct form I transposed | Direct form I | Direct form II transposed

По умолчанию

Direct form II

Numerator coefficients — коэффициенты числителя
[1.0] (по умолчанию) | скаляр | вектор | матрица | многомерный массив

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

Программное использование

Параметр блока

Numerator

Значения

скаляр | вектор | матрица

По умолчанию

[1.0]

Denominator coefficients — коэффициенты знаменателя
[1.0, 0.5] (по умолчанию) | скаляр | вектор | матрица | многомерный массив

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

Программное использование

Параметр блока

Denominator

Значения

скаляр | вектор | матрица`

По умолчанию

[1.0, 0.5]

Initial states — начальные состояния фильтра
0.0 (по умолчанию) | скаляр | вектор | матрица | многомерный массив

Начальные состояния фильтра в виде скаляра, вектора или матрицы.

Зависимости

Чтобы использовать этот порт, установите для параметра Filter structure значение Direct form II или Direct form II transposed.

Программное использование

Параметр блока

InitialStates

Значения

скаляр | вектор | матрица`

По умолчанию

0.0

Initial states on numerator side — начальные состояния числителя
0.0 (по умолчанию) | скаляр | вектор | матрица

Укажите начальные состояния числителя фильтра в виде скаляра, вектора или матрицы.

Зависимости

Чтобы использовать этот порт, установите для параметра Filter structure значение Direct form I или Direct form I transposed.

Программное использование

Параметр блока

InitialStatesNumSide

Значения

скаляр | вектор | матрица`

По умолчанию

0.0

Initial states on denominator side — начальные состояния знаменателя
0.0 (по умолчанию) | скаляр | вектор | матрица

Начальные состояния знаменателя фильтра в виде скаляра, вектора или матрицы.

Зависимости

Чтобы использовать этот порт, установите для параметра Filter structure значение Direct form I или Direct form I transposed.

Программное использование

Параметр блока

InitialDenominatorStates

Значения

скаляр | вектор | матрица`

По умолчанию

0.0

Sample time (-1 for inherited) — интервал между шагами расчета
-1.0 (по умолчанию) | скаляр

Укажите интервал между шагами расчета как неотрицательное число. Чтобы наследовать шаг расчета, установите для этого параметра значение -1.

Программное использование

Параметр блока

SampleTime

Значения

скаляр | вектор

По умолчанию

-1.0