нормализовать#
- 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