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

Дискретный фильтр

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

Тип: DiscreteFilter

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

/Basic/Discrete/Discrete Filter

Описание

Блок Дискретный фильтр независимо фильтрует каждый канал входного сигнала с заданным цифровым БИХ-фильтром. Вы можете указать структуру фильтра как Прямая форма I, Прямая форма I, транспонированная, Прямая форма II или Прямая форма II, транспонированная.

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

Параметр Обработка входных данных позволяет указать, как блок обрабатывает каждый элемент ввода. Вы можете указать, обрабатывать входные элементы как независимый канал (Элементы в виде каналов (на основе отсчётов)) или обрабатывать каждый столбец ввода как независимый канал (Столбцы в виде каналов (на основе кадров)). В режиме frame-based выходные размерности равны входным размерностям, за исключением случаев, когда вы задаете матрицу в качестве параметра Коэффициенты числителя. В режиме sample-based применяется механизм core-modeling/vectorization-broadcast-modeling.adoc#broadcast.

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

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

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

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

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

    Рассмотрим пример. Пусть начальное значение это [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] и т.д.

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

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

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

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

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

Скаляр

5

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

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

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

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

] или

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

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

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

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

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

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

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

Количество элементов задержки (состояния фильтра)
Структура фильтра Количество элементов задержки на канал

Прямая форма I

Прямая форма I, транспонированная

  • number of zeros — 1

  • number of poles — 1

Прямая форма II

Прямая форма II, транспонированная

max(number of zeros, number of poles) — 1

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

Обработка на основе кадра
Вход Количество каналов Допустимые начальные состояния (диалоговое окно) Допустимые начальные состояния (входной порт)

Вектор-столбец ( на 1)

Неориентированный вектор ( )

1

Скаляр

Вектор-столбец ( на 1)

Вектор-строка (1 на )

Скаляр

Вектор-столбец ( на 1)

Вектор-строка (1 на )

Матрица ( на )

N

Скаляр

Вектор-столбец ( на 1)

Вектор-строка (1 на )

Матрица ( на )

Скаляр

Матрица ( на )

Обработка на основе отсчетов
Вход Количество каналов Допустимые начальные состояния (диалоговое окно) Допустимые начальные состояния (входной порт)

Скаляр

1

Скаляр

Вектор-столбец ( на 1)

Вектор-строка (1 на )

Скаляр

Вектор-столбец ( на 1)

Вектор-строка (1 на )

Вектор-строка (1 на )

Вектор-столбец ( на 1)

Неориентированный вектор ( )

N

Скаляр

Вектор-столбец ( на 1)

Вектор-строка (1 на )

Матрица ( на )

Скаляр

Матрица ( на )

Скаляр

Вектор-столбец ( на 1)

Вектор-строка (1 на )

Матрица ( на )

Скаляр

Порты

Выход

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

Details

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

Типы данных

Float64

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

Нет

Вход

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

Details

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

Типы данных

Float64

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

Нет

# resetописание отсутствует

Details

Описание отсутствует

Типы данных

Описание отсутствует

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

Описание отсутствует

# Den — коэффициенты знаменателя
скаляр | вектор | матрица

Details

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

Зависимости

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

Если вы указываете коэффициенты знаменателя из входного порта Den, то необходимо установить флажок Оптимизировать, пропустив деление на ведущий коэффициент знаменателя (a0). При установке этого флажка блок игнорирует ведущий коэффициент знаменателя и заменяет его на 1.

Типы данных

Float64

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

Нет

# Num — коэффициенты числителя
скаляр | вектор | матрица

Details

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

Зависимости

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

Типы данных

Float64

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

Нет

# x0 — начальные состояния фильтра
скаляр | вектор | матрица

Details

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

Зависимости

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

Типы данных

Float64

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

Нет

Параметры

Основные

# Структура фильтра — структура фильтра
Прямая форма I | Прямая форма I, транспонированная | Прямая форма II | Прямая форма II, транспонированная

Details

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

Значения

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

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

Direct form II

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

FilterStructure

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

Нет

Вычисляемый

Нет

# Источник коэффициентов числителя — источник коэффициентов числителя
Поле ввода | Входной порт

Details

Укажите источник коэффициентов числителя:

  • Поле ввода — коэффициенты числителя задаются в параметре Коэффициенты числителя;

  • Входной порт — коэффициенты числителя поступают на порт Num.

Значения

Dialog | Input port

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

Dialog

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

NumeratorSource

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

Нет

Вычисляемый

Нет

# Коэффициенты числителя — коэффициенты числителя
Скаляр / массив вещественных чисел

Details

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

Зависимости

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

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

[1.0]

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

Numerator

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

Да

Вычисляемый

Да

# Источник коэффициентов знаменателя — источник коэффициентов знаменателя
Поле ввода | Входной порт

Details

Укажите источник коэффициентов знаменателя:

  • Поле ввода — коэффициенты знаменателя задаются в параметре Коэффициенты знаменателя;

  • Входной порт — коэффициенты знаменателя поступают на порт Den.

Если вы указываете коэффициенты знаменателя из входного порта Den, то необходимо установить флажок Оптимизировать, пропустив деление на ведущий коэффициент знаменателя (a0).

Значения

Dialog | Input port

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

Dialog

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

DenominatorSource

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

Нет

Вычисляемый

Нет

# Коэффициенты знаменателя — коэффициенты знаменателя
Скаляр / массив вещественных чисел

Details

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

Если установлен флажок Оптимизировать, пропустив деление на ведущий коэффициент знаменателя (a0), то возникает ошибка, если в параметре Коэффициенты знаменателя указаны коэффициенты знаменателя, а .

Зависимости

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

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

[1.0, 0.5]

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

Denominator

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

Да

Вычисляемый

Да

# Источник начальных состояний — источник начальных состояний
Поле ввода | Входной порт

Details

Укажите источник начальных состояний:

  • Поле ввода — начальные состояния задаются в параметре Начальные состояния;

  • Входной порт — начальные состояния поступают на порт x0.

Зависимости

Чтобы использовать этот параметр, установите для параметра Структура фильтра значение Прямая форма II или Прямая форма II, транспонированная.

Значения

Dialog | Input port

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

Dialog

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

InitialStatesSource

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

Нет

Вычисляемый

Нет

# Начальные состояния — начальные состояния фильтра
Скаляр / массив вещественных чисел

Details

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

Зависимости

Чтобы использовать этот параметр, установите для параметра Структура фильтра значение Прямая форма II или Прямая форма II, транспонированная, а для параметра Источник начальных состояний значение Поле ввода.

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

0.0

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

InitialStates

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

Да

Вычисляемый

Да

# Начальные состояния в числителе — начальные состояния числителя
Скаляр / массив вещественных чисел

Details

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

Зависимости

Чтобы использовать этот параметр, установите для параметра Структура фильтра значение Прямая форма I или Прямая форма I, транспонированная.

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

0.0

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

InitialStatesNumSide

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

Да

Вычисляемый

Да

# Начальные состояния в знаменателе — начальные состояния знаменателя
Скаляр / массив вещественных чисел

Details

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

Зависимости

Чтобы использовать этот параметр, установите для параметра Структура фильтра значение Прямая форма I или Прямая форма I, транспонированная.

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

0.0

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

InitialDenominatorStates

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

Да

Вычисляемый

Да

# External resetописание отсутствует
None | Rising | Falling | Either | Level | Level hold

Details

описание отсутствует

Значения

None | Rising | Falling | Either | Level | Level hold

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

None

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

ExternalReset

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

Нет

Вычисляемый

Нет

# Обработка входных данных — обработка на основе отсчетов или кадра
Столбцы в виде каналов (на основе кадров) | Элементы в виде каналов (на основе отсчётов)

Details

Укажите, выполняет ли блок обработку на основе отсчетов или кадра:

  • Элементы в виде каналов (на основе отсчётов) — обработка каждого элемента входного сигнала как независимого канала.

  • Столбцы в виде каналов (на основе кадров) — обработка каждого столбца входного сигнала как независимого канала.

Значения

Columns as channels (frame based) | Elements as channels (sample based)

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

Elements as channels (sample based)

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

InputProcessing

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

Нет

Вычисляемый

Нет

# Оптимизировать, пропустив деление на ведущий коэффициент знаменателя (a0) — пропустить деление на a0
Логический тип

Details

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

Если вы указываете коэффициенты знаменателя из входного порта Den, то необходимо установить флажок Оптимизировать, пропустив деление на ведущий коэффициент знаменателя (a0). При установке этого флажка блок игнорирует ведущий коэффициент знаменателя и заменяет его на 1.

Если снять этот флажок, то блок будет полностью настраиваться во время моделирования. Он будет делить на при симуляции.

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

false (выключено)

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

a0EqualsOne

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

Нет

Вычисляемый

Нет

# Период дискретизации — интервал между шагами расчета
SampleTime (вещественное число / вектор из двух вещественных чисел)

Details

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

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

-1

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

SampleTime

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

Нет

Вычисляемый

Да