Discrete Filter
Модель фильтра с бесконечной импульсной характеристикой (БИХ).
Тип: DiscreteFilter
Путь в библиотеке:
|
Описание
Блок Discrete Filter независимо фильтрует каждый канал входного сигнала с заданным цифровым БИХ-фильтром.
Вы можете указать структуру фильтра как Direct form I
, Direct form I transposed
, Direct form II
или Direct form II transposed
.
Блок реализует статический фильтр с фиксированными коэффициентами. Каждый канал входного сигнала фильтруется независимо во времени.
Параметр Input processing позволяет указать, как блок обрабатывает каждый элемент ввода. Вы можете указать, обрабатывать входные элементы как независимый канал (Elements as channels (sample based)
) или обрабатывать каждый столбец ввода как независимый канал (Columns as channels (frame based)
).
В режиме frame-based выходные размерности равны входным размерностям, за исключением случаев, когда вы задаете матрицу в качестве параметра Numerator coefficients. В режиме sample-based применяется механизм core-modeling/vectorization-broadcast-modeling.adoc#broadcast.
Параметр 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 являются . |
Каждый элемент вектора или матрицы задает уникальное начальное условие для соответствующего элемента задержки в соответствующем канале:
|
Количество элементов задержки (состояний фильтра) на входной канал зависит от структуры фильтра, как показано в следующей таблице.
Структура фильтра | Количество элементов задержки на канал |
---|---|
|
|
|
|
В следующих таблицах описываются допустимые начальные состояния для различных размеров входных данных и различного количества каналов в зависимости от значения параметра Input processing — обработка на основе кадра Columns as channels (frame based)
или обработка на основе отсчетов Elements as channels (sample based)
.
Вход | Количество каналов | Допустимые начальные состояния (диалоговое окно) | Допустимые начальные состояния (входной порт) |
---|---|---|---|
Вектор-столбец ( на 1) Неориентированный вектор ( ) |
1 |
Скаляр Вектор-столбец ( на 1) Вектор-строка (1 на ) |
Скаляр Вектор-столбец ( на 1) |
Вектор-строка (1 на ) Матрица ( на ) |
N |
Скаляр Вектор-столбец ( на 1) Вектор-строка (1 на ) Матрица ( на ) |
Скаляр Матрица ( на ) |
Вход | Количество каналов | Допустимые начальные состояния (диалоговое окно) | Допустимые начальные состояния (входной порт) |
---|---|---|---|
Скаляр |
1 |
Скаляр Вектор-столбец ( на 1) Вектор-строка (1 на ) |
Скаляр Вектор-столбец ( на 1) Вектор-строка (1 на ) |
Вектор-строка (1 на ) Вектор-столбец ( на 1) Неориентированный вектор ( ) |
N |
Скаляр Вектор-столбец ( на 1) Вектор-строка (1 на ) Матрица ( на ) |
Скаляр |
Матрица ( на ) |
|
Скаляр Вектор-столбец ( на 1) Вектор-строка (1 на ) Матрица ( на ) |
Скаляр |
Порты
Выход
#
OUT_1
—
отфильтрованный сигнал
скаляр
| вектор
| матрица
| многомерный массив
Details
Отфильтрованный выходной сигнал.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
Вход
#
u
—
входной сигнал
скаляр
| вектор
| матрица
| многомерный массив
Details
Входной сигнал, заданный в виде скаляра, вектора, матрицы или массива с любым числом размерностей.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
#
external reset
—
внешний сигнал сброса блока
скаляр
Details
Внешний сигнал, который сбрасывает состояние блока в начальные условия.
Зависимости
Чтобы использовать этот порт, установите для параметра External reset любое значение, кроме None
.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
#
Den
—
коэффициенты знаменателя
скаляр
| вектор
| матрица
Details
Коэффициенты знаменателя дискретного фильтра как убывающие степени . Используйте вектор-столбец, чтобы задать коэффициенты для полинома с одним знаменателем.
Зависимости
Чтобы использовать этот порт, установите для параметра Denominator source значение Input port
.
Если вы указываете коэффициенты знаменателя из входного порта Den, то необходимо установить флажок Optimize by skipping divide by leading denominator coefficient (a0). При установке этого флажка блок игнорирует ведущий коэффициент знаменателя и заменяет его на 1
.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
#
Num
—
коэффициенты числителя
скаляр
| вектор
| матрица
Details
Коэффициенты числителя дискретного фильтра как убывающие степени . Используйте вектор-столбец, чтобы задать коэффициенты для одного полинома числителя.
Зависимости
Чтобы использовать этот порт, установите для параметра Numerator source значение Input port
.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
#
x0
—
начальные состояния фильтра
скаляр
| вектор
| матрица
Details
Начальные состояния фильтра в виде скаляра, вектора или матрицы.
Зависимости
Чтобы использовать этот порт, установите для параметра Filter Structure значение Direct form II
или Direct form II transposed
, а для параметра Initial states source значение Input port
.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
Параметры
Основные
#
Filter Structure —
структура фильтра
Direct form I
| Direct form I transposed
| Direct form II
| Direct form II transposed
Details
Задает дискретную структуру IIR-фильтра.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Numerator source —
источник коэффициентов числителя
Dialog
| Input port
Details
Укажите источник коэффициентов числителя:
-
Dialog
— коэффициенты числителя задаются в параметре Numerator coefficients; -
Input port
— коэффициенты числителя поступают на порт Num.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Numerator coefficients —
коэффициенты числителя
Scalar / array of real numbers
Details
Коэффициенты числителя дискретного фильтра как убывающие степени . Используйте вектор-столбец, чтобы задать коэффициенты для одного полинома числителя.
Зависимости
Чтобы использовать этот параметр, установите для параметра Numerator source значение Dialog
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Да |
Вычисляемый |
Да |
#
Denominator source —
источник коэффициентов знаменателя
Dialog
| Input port
Details
Укажите источник коэффициентов знаменателя:
-
Dialog
— коэффициенты знаменателя задаются в параметре Denominator coefficients; -
Input port
— коэффициенты знаменателя поступают на порт Den.
Если вы указываете коэффициенты знаменателя из входного порта Den, то необходимо установить флажок Optimize by skipping divide by leading denominator coefficient (a0).
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Denominator coefficients —
коэффициенты знаменателя
Scalar / array of real numbers
Details
Коэффициенты знаменателя дискретного фильтра как убывающие степени . Используйте вектор-столбец, чтобы задать коэффициенты для полинома с одним знаменателем.
Если установлен флажок Optimize by skipping divide by leading denominator coefficient (a0), то возникает ошибка, если в параметре Denominator coefficients указаны коэффициенты знаменателя, а .
Зависимости
Чтобы использовать этот параметр, установите для параметра Denominator source значение Dialog
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Да |
Вычисляемый |
Да |
#
Initial states source —
источник начальных состояний
Dialog
| Input port
Details
Укажите источник начальных состояний:
-
Dialog
— начальные состояния задаются в параметре Initial states; -
Input port
— начальные состояния поступают на порт x0.
Зависимости
Чтобы использовать этот параметр, установите для параметра Filter Structure значение Direct form II
или Direct form II transposed
.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Initial states —
начальные состояния фильтра
Scalar / array of real numbers
Details
Начальные состояния фильтра в виде скаляра, вектора или матрицы.
Зависимости
Чтобы использовать этот параметр, установите для параметра Filter Structure значение Direct form II
или Direct form II transposed
, а для параметра Initial states source значение Dialog
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Да |
Вычисляемый |
Да |
#
Initial states on numerator side —
начальные состояния числителя
Scalar / array of real numbers
Details
Укажите начальные состояния числителя фильтра в виде скаляра, вектора или матрицы.
Зависимости
Чтобы использовать этот параметр, установите для параметра Filter Structure значение Direct form I
или Direct form I transposed
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Да |
Вычисляемый |
Да |
#
Initial states on denominator side —
начальные состояния знаменателя
Scalar / array of real numbers
Details
Начальные состояния знаменателя фильтра в виде скаляра, вектора или матрицы.
Зависимости
Чтобы использовать этот параметр, установите для параметра Filter Structure значение Direct form I
или Direct form I transposed
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Да |
Вычисляемый |
Да |
#
External reset —
сброс внешнего состояния
None
| Rising
| Falling
| Either
| Level
| Level hold
Details
Укажите событие запуска, которое будет использоваться для возврата состояний к начальным условиям. Варианты для выбора:
-
None
— нет сброса. -
Rising
— сброс по нарастающему фронту. -
Falling
— сброс по понижающему фронту. -
Either
— сброс по нарастающему или понижающему фронту. -
Level
— сброс в любом из этих случаев:-
Когда сигнал сброса отличен от нуля на текущем временном шаге.
-
Когда значение сигнала сброса изменяется от ненулевого на предыдущем временном шаге до нуля на текущем временном шаге.
-
-
Level hold
— сброс, когда сигнал сброса отличен от нуля на текущем временном шаге.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Input processing —
обработка на основе отсчетов или кадра
Columns as channels (frame based)
| Elements as channels (sample based)
Details
Укажите, выполняет ли блок обработку на основе отсчетов или кадра:
-
Elements as channels (sample based)
— обработка каждого элемента входного сигнала как независимого канала. -
Columns as channels (frame based)
— обработка каждого столбца входного сигнала как независимого канала.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Optimize by skipping divide by leading denominator coefficient (a0) —
пропустить деление на a0
Logical
Details
Если установить этот флажок, то блок не будет делить на в симуляции. Этот параметр оптимизирует код. Если в параметрах блока указать коэффициенты знаменателя, а значение , то возникнет ошибка.
Если вы указываете коэффициенты знаменателя из входного порта Den, то необходимо установить флажок Optimize by skipping divide by leading denominator coefficient (a0). При установке этого флажка блок игнорирует ведущий коэффициент знаменателя и заменяет его на 1
.
Если снять этот флажок, то блок будет полностью настраиваться во время моделирования. Он будет делить на при симуляции.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Sample time —
интервал между шагами расчета
SampleTime (real number / vector of two real numbers)
Details
Укажите интервал между шагами расчета как неотрицательное число. Чтобы наследовать шаг расчета, установите для этого параметра значение -1
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |