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

zp2tf

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

Библиотека

EngeeDSP

Синтаксис

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

  • b,a = zp2tf(z,p,k) — преобразует факторизованное представление передаточной функции

    системы с одним входом и несколькими выходами (Single-Input/Multi-Output, SIMO) в полиномиальное представление передаточной функции

Аргументы

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

# z — нули
вектор | матрица

Details

Нули системы, заданные как вектор-столбец или матрица. Аргумент z имеет столько столбцов, сколько выходных сигналов. Нули должны быть вещественными или представлять собой комплексно-сопряженные пары. Используйте значения Inf в качестве заполнителей в z, если в некоторых столбцах меньше нулей, чем в других.

Типы данных

Float32, Float64

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

Да

# p — полюса
вектор

Details

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

Типы данных

Float32, Float64

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

Да

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

Details

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

Типы данных

Float32, Float64

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

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

Details

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

# a — коэффициенты знаменателя передаточной функции
вектор

Details

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

Примеры

Передаточная функция системы «масса-пружина»

Details

Вычислим передаточную функцию затухающей системы «масса-пружина», удовлетворяющей дифференциальному уравнению

Измеряемой величиной является ускорение , а — движущая сила. В пространстве Лапласа система представляется следующим образом:

Система имеет единичный коэффициент усиления, двойной нуль при и два комплексно-сопряженных полюса.

k = 1
z = [0, 0]
p = roots([1, 0.01, 1])
2×1 Matrix{ComplexF64}:
 -0.0050000000000000044 + 0.999987499921874im
  -0.004999999999999977 - 0.999987499921874im

Используем функцию zp2tf для нахождения передаточной функции.

import EngeeDSP.Functions: zp2tf

b, a = zp2tf(z, p, k)
([1.0 0.0 0.0], [1.0 0.009999999999999981 0.9999999999999999])

Алгоритмы

Система преобразуется в форму передаточной функции с использованием функции poly с p и столбцами матрицы z.