【发布时间】:2021-11-25 04:42:34
【问题描述】:
根据两个函数的描述,filter(b, a, x)matlab 函数和lfilter(b, a, x, axis=-1, z_i=None)scipy.signal 应该给出相同的结果。
我以这个结果完全不同的例子为例:
import numpy as np
from scipy.signal import lfilter
bb = np.arange(0, 100, 1)
aa = 1
xx = np.tile(0.9, (100, 1))
yy = lfilter(b=bb, a=aa, x=xx)
print(yy[:10])
array([[0.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.],
[0.]])
print(yy.shape)
(100, 1)
# Same example on Matlab using filter
bb = 0:1:99
aa = 1
xx =repmat(0.9, 100, 1)
dd = filter(bb, aa, xx)
dd(1:10)
ans =
0
0.9000
2.7000
5.4000
9.0000
13.5000
18.9000
25.2000
32.4000
40.5000
print(size(dd)) # (100 ,1)
【问题讨论】: