【问题标题】:Plotting a discrete transfer function using scipy.signal.dstep使用 scipy.signal.dstep 绘制离散传递函数
【发布时间】:2021-04-25 00:57:13
【问题描述】:

我正在尝试使用 python 绘制离散传递函数 H(z) = (0.5 - 0.50z)/(z-1.0),但我不断收到绘图错误。我试图在 scipy.signal 中使用 dstep 函数。连续图工作正常,但我在plt.plot(t,y,'k-',label=name) 行出现错误。我将它用于连续传递函数并且工作正常。我认为其中一个论点一定是不正确的

from scipy import signal
import matplotlib.pyplot as plt

name = 'Discrete Transfer Function'
num = [-0.50, 0.50]
den = [1.0, -1.0]
sys3 = signal.TransferFunction(num, den, dt = 0.001)
t,y = signal.dstep(sys3)
plt.figure(3)
plt.plot(t,y,'k-',label=name)
plt.legend(loc='best')
plt.show()

【问题讨论】:

    标签: python matplotlib scipy


    【解决方案1】:

    y 是一个 numpy 数组的元组,因此需要将其索引为y[0] 并用ravel() 展平(似乎matplotlib 可以在不展平的情况下计算出来):

    plt.plot(t, y[0], 'k-', label=name)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多