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

tf2latc

Преобразование коэффициентов передаточной функции фильтра в форму решетчатого фильтра.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • k,v = tf2latc(b,a) — возвращает коэффициенты решетки k и коэффициенты лестницы v для решетчато-лестничного БИХ-фильтра (AutoRegressive Moving Average, ARMA), нормированные на a[1]. Функция выдает ошибку, если один или несколько коэффициентов решетки в точности равны 1.

  • k,v = tf2latc(b0,a) — возвращает коэффициенты лестницы, в которой только первый элемент вектора v ненулевой. Аргумент b0 является скаляром.

  • k,v = tf2latc(1,a) — возвращает коэффициенты решетки k и коэффициенты лестницы v для всеполюсного решетчатого БИХ-фильтра (AutoRegressive, AR).

  • k,v = tf2latc(b) — возвращает коэффициенты решетки k и коэффициенты лестницы v для решетчатого КИХ-фильтра (Moving Average, MA), нормированные на b[1].

  • k,v = tf2latc(b,phase) — задает тип решетчатого КИХ-фильтра (MA): минимально-фазовый или максимально-фазовый.

Аргументы

Входные аргументы

# b,a — коэффициенты передаточной функции
векторы

Details

Коэффициенты передаточной функции, заданные как векторы.

Типы данных

Float32, Float64

# b0 — коэффициенты числителя передаточной функции
скаляр

Details

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

Типы данных

Float32, Float64

# phase — тип КИХ-фильтра (MA)
"none" (по умолчанию) | "max" | "min"

Details

Тип КИХ-фильтра (MA), заданный как "max" или "min". Для максимально-фазового фильтра укажите значение "max". Для минимально-фазового фильтра укажите значение "min".

Типы данных

String

Выходные аргументы

# k — коэффициенты решетки
вектор

Details

Коэффициенты решетки, возвращаемые в виде вектора.

# v — коэффициенты лестницы
вектор

Details

Коэффициенты лестницы, возвращаемые в виде вектора.

Примеры

Преобразование коэффициентов всеполюсного БИХ-фильтра в коэффициенты решетки

Details

Преобразуем всеполюсный БИХ-фильтр в коэффициенты решетки.

import EngeeDSP.Functions: tf2latc

a = [1 13/24 5/8 1/3]
k, v = tf2latc(1, a)
println("k = ", k)
k = [0.24999999999999997; 0.5000000000000001; 0.3333333333333333;;]