考虑一个简单的线性时不变系统:
y_k = c * y_k-1 +(1-c)x_k
该系统的脉冲响应可以通过dimpulse或将lfilter应用于由一个后跟零组成的向量来计算:
import scipy.signal as sp_signal
import numpy as np
Ts = 1
c = 0.9
A = [1, -c]
B = [1-c]
time, imp_resp1 = sp_signal.dimpulse((B, A, Ts))
x = np.zeros(100)
x[0] = 1
imp_resp2 = sp_signal.lfilter(B, A, x)
print(imp_resp1[0][:5,0])
print(imp_resp2[:5])
产生:
array([ 0. , 0.1 , 0.09 , 0.081 , 0.0729])
[ 0.1 0.09 0.081 0.0729 0.06561]
为什么dimpulse在脉冲响应中引入单样本延迟?
答案 0 :(得分:0)
观察到,如果在分子上加上零,即[1-c,0]调光将得到与lfilter相同的结果。添加这个零应该什么也没有做,所以我怀疑是一个错误。