scipy.signal.

нормализовать#

scipy.signal.нормализовать(b, a)[источник]#

Нормализовать числитель/знаменатель передаточной функции непрерывного времени.

Если значения b слишком близки к 0, они удаляются. В этом случае выдается предупреждение BadCoefficients.

Параметры:
b: array_like

Числитель передаточной функции. Может быть 2-D массивом для нормализации нескольких передаточных функций.

a: array_like

Знаменатель передаточной функции. Не более 1-D.

Возвращает:
num: массив

Числитель нормализованной передаточной функции. Как минимум 1-D массив. 2-D массив, если входной число является двумерным массивом.

den: 1-D массив

Знаменатель нормированной передаточной функции.

Примечания

Коэффициенты для числителя и знаменателя должны быть указаны в порядке убывания степени (например, s^2 + 3s + 5 будет представлен как [1, 3, 5]).

Примеры

>>> from scipy.signal import normalize

Нормализовать коэффициенты передаточной функции (3*s^2 - 2*s + 5) / (2*s^2 + 3*s + 1):

>>> b = [3, -2, 5]
>>> a = [2, 3, 1]
>>> normalize(b, a)
(array([ 1.5, -1. ,  2.5]), array([1. , 1.5, 0.5]))

Предупреждение генерируется, если, например, первый коэффициент b равно 0. В следующем примере результат соответствует ожиданиям:

>>> import warnings
>>> with warnings.catch_warnings(record=True) as w:
...     num, den = normalize([0, 3, 6], [2, -5, 4])
>>> num
array([1.5, 3. ])
>>> den
array([ 1. , -2.5,  2. ])
>>> print(w[0].message)
Badly conditioned filter coefficients (numerator): the results may be meaningless