scipy.signal.
dbode#
- scipy.signal.dbode(system, w=None, n=100)[source]#
计算离散时间系统的幅度和相位数据。
- 参数:
- systemLTI 类的实例或描述系统的元组。
以下给出了元组中的元素数量和解释
1 (
dlti
的实例)2 (num, den, dt)
3 (zeros, poles, gain, dt)
4 (A, B, C, D, dt)
- warray_like,可选
频率数组(以弧度/采样)。幅度和相位数据针对此数组中的每个值计算。如果没有给出合理的集合,则会进行计算。
- nint,可选
如果没有给出w,则要计算的频率点数。n 个频率以对数间隔分布在选择的时间段内,以包括系统极点和零点的影响。
- 返回:
- w1D ndarray
频率数组 [rad/time_unit]
- mag1D ndarray
幅度数组 [dB]
- phase1D ndarray
相位数组 [deg]
说明
如果将 (num, den) 传入
system
,应按降序指数顺序指定分子和分母的系数(例如,z^2 + 3z + 5
将表示为[1, 3, 5]
)。在版本 0.18.0 中添加。
示例
>>> from scipy import signal >>> import matplotlib.pyplot as plt
以 0.05 秒的采样时间构建传递函数 \(H(z) = \frac{1}{z^2 + 2z + 3}\)
>>> sys = signal.TransferFunction([1], [1, 2, 3], dt=0.05)
等同:sys.bode()
>>> w, mag, phase = signal.dbode(sys)
>>> plt.figure() >>> plt.semilogx(w, mag) # Bode magnitude plot >>> plt.figure() >>> plt.semilogx(w, phase) # Bode phase plot >>> plt.show()