scipy.signal.

dlti#

class scipy.signal.dlti(*system, **kwargs)[source]#

離散時間線性非時變系統基底類別。

參數:
*system: 參數

dlti 類別可以使用 2、3 或 4 個參數實例化。以下說明參數數量以及建立的對應離散時間子類別

每個參數可以是陣列或序列。

dt: 浮點數, 可選

離散時間系統的取樣時間 [s]。預設值為 True (未指定的取樣時間)。必須指定為關鍵字參數,例如 dt=0.1

註解

dlti 實例不會直接存在。相反地,dlti 會建立其子類別之一的實例:StateSpaceTransferFunctionZerosPolesGain

變更非目前系統表示法一部分的屬性值 (例如 StateSpace 系統的 zeros) 非常沒有效率,並可能導致數值不準確。最好先轉換為特定的系統表示法。例如,在存取/變更零點、極點或增益之前,先呼叫 sys = sys.to_zpk()

如果為 *system 傳入 (分子, 分母),則分子和分母的係數都應以遞減指數順序指定 (例如,z^2 + 3z + 5 將表示為 [1, 3, 5])。

在 0.18.0 版本中新增。

範例

>>> from scipy import signal
>>> signal.dlti(1, 2, 3, 4)
StateSpaceDiscrete(
array([[1]]),
array([[2]]),
array([[3]]),
array([[4]]),
dt: True
)
>>> signal.dlti(1, 2, 3, 4, dt=0.1)
StateSpaceDiscrete(
array([[1]]),
array([[2]]),
array([[3]]),
array([[4]]),
dt: 0.1
)

建構傳遞函數 \(H(z) = \frac{5(z - 1)(z - 2)}{(z - 3)(z - 4)}\),取樣時間為 0.1 秒

>>> signal.dlti([1, 2], [3, 4], 5, dt=0.1)
ZerosPolesGainDiscrete(
array([1, 2]),
array([3, 4]),
5,
dt: 0.1
)

建構傳遞函數 \(H(z) = \frac{3z + 4}{1z + 2}\),取樣時間為 0.1 秒

>>> signal.dlti([3, 4], [1, 2], dt=0.1)
TransferFunctionDiscrete(
array([3., 4.]),
array([1., 2.]),
dt: 0.1
)
屬性:
dt

傳回系統的取樣時間。

poles

系統的極點。

zeros

系統的零點。

方法

bode([w, n])

計算離散時間系統的 Bode Magnitude 和相位資料。

freqresp([w, n, whole])

計算離散時間系統的頻率響應。

impulse([x0, t, n])

傳回離散時間 dlti 系統的脈衝響應。

output(u, t[, x0])

傳回離散時間系統對輸入 u 的響應。

step([x0, t, n])

傳回離散時間 dlti 系統的步階響應。