當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python SciPy signal.normalize用法及代碼示例

本文簡要介紹 python 語言中 scipy.signal.normalize 的用法。

用法:

scipy.signal.normalize(b, a)#

標準化 continuous-time 傳遞函數的分子/分母。

如果 b 的值太接近 0,則將其刪除。在這種情況下,會發出 BadCoefficients 警告。

參數

b: array_like

傳遞函數的分子。可以是一個二維數組來標準化多個傳遞函數。

a: array_like

傳遞函數的分母。至多一維。

返回

數字:數組

歸一化傳遞函數的分子。至少一個一維數組。如果輸入 num 是二維數組,則為二維數組。

den:一維數組

歸一化傳遞函數的分母。

注意

分子和分母的係數應按指數降序指定(例如, 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

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.signal.normalize。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。