scipy.signal.
dfreqresp#
- scipy.signal.dfreqresp(system, w=None, n=10000, whole=False)[source]#
計算離散時間系統的頻率響應。
- 參數:
- system一個
dlti
類別的實例或描述系統的元組。 以下說明元組中元素的數量和解釋
1 (instance of
dlti
)2 (numerator, denominator, dt)
3 (zeros, poles, gain, dt)
4 (A, B, C, D, dt)
- warray_like, 選項
頻率陣列 (單位為弧度/樣本)。針對此陣列中的每個值計算幅度和相位資料。如果未給定,將計算合理的集合。
- nint, 選項
如果未給定 w,則要計算的頻率點數量。n 個頻率在選擇的區間內以對數方式間隔,以包含系統的極點和零點的影響。
- wholebool, 選項
通常,如果未給定 'w',則頻率計算範圍為 0 到奈奎斯特頻率,pi 弧度/樣本 (單位圓的上半部)。如果 whole 為 True,則頻率計算範圍為 0 到 2*pi 弧度/樣本。
- system一個
- 返回值:
- w1D ndarray
頻率陣列 [弧度/樣本]
- H1D ndarray
複數幅度值陣列
註解
如果將 (num, den) 傳遞給
system
,則分子和分母的係數都應以指數降序指定 (例如,z^2 + 3z + 5
將表示為[1, 3, 5]
)。在版本 0.18.0 中新增。
範例
產生傳遞函數的奈奎斯特圖
>>> from scipy import signal >>> import matplotlib.pyplot as plt
建構傳遞函數 \(H(z) = \frac{1}{z^2 + 2z + 3}\),採樣時間為 0.05 秒
>>> sys = signal.TransferFunction([1], [1, 2, 3], dt=0.05)
>>> w, H = signal.dfreqresp(sys)
>>> plt.figure() >>> plt.plot(H.real, H.imag, "b") >>> plt.plot(H.real, -H.imag, "r") >>> plt.show()