scipy.signal.

dfreqresp#

scipy.signal.dfreqresp(system, w=None, n=10000, whole=False)[source]#

计算离散时间系统的频率响应。

参数:
systemdlti 类的一个实例或描述系统的元组。

以下是元组中的元素数以及解释

  • 1 (dlti 的实例)

  • 2 (分子、分母、dt)

  • 3 (零点、极点、增益、dt)

  • 4 (A、B、C、D、dt)

warray_like,可选

频率数组(弧度/采样)。将计算此数组中每个值的幅度和相位数据。如果没有给出,则将计算一组合理的值。

nint,可选

如果未给出w 则要计算的频点数。 n 个频率在区间内进行对数间隔,该区间选择为包含系统的极点和零点的影响。

whole布尔值,可选

通常,如果未给出“w”,则会计算从 0 到奈奎斯特频率(每样本 π 弧度)(单位圆的上半部分)的频率。如果 whole 为 True,则计算从 0 到 2*π 弧度/样本的频率。

返回:
w1D ndarray

频率数组(弧度/样本)

H1D ndarray

复数振幅值数组

注释

如果对 system 传入 (num, den),则分子和分母的系数应按降幂顺序指定(例如, 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()
../../_images/scipy-signal-dfreqresp-1.png