我正在用python中的过滤器做一些测试。已经在matlab中做过了。当这样做的时候,我在matlab中使用impz和python中使用scipy.signal.impulse2时,对同一个过滤器得到不同的结果。Matlab impz:这是python实现的结果。为了得到相同的结果,我在matlab和python中都使用了这个过滤器系数。
b = np.array([0.0335718093676408, 0, -0.0671436187352817, 0, 0.0335718093676408])
a = np.array([1,-1.74768237925094,2.19561759706246,-1.29097205253115,0.553269889688682])
这样做的matlab代码是(这也会在matlab livescript中创建图):
impz(b,a)
我使用的python代码如下:
T, yout = scipy.signal.impulse2((b,a))
和绘图:
plt.plot(T, yout)
我在文档中找不到任何说明这些应该表现得如此不同的内容
1条答案
按热度按时间62lalag41#
impz
和impulse2
不是同一个函数。impz
处理的是离散时间系统,而impulse2
处理的是连续时间系统,impz
的等价函数实际上是dt为1的dimpulse
。