matlab filter(b,a,x)和python中的什么对应?
scipy.signal.correlate还是filter还是其他的函数?
为什么说scipy.signal.correlate是因为这篇文章MATLAB filter2/conv2 函数在 Python 语言中的等价函数,没有直接搜到filter只搜到filter2的
为什么说python的filter但是暂时没有用它因为它的用法是filter(function, iterable),和matlab的不太一样
附上matlab代码段
%%数据处理
%———————滤波————————
n=20;%滤波器阶数
Wn=[990,1010]./(fs./2);%滤波器截止频率
b=fir1(n,Wn);%fir滤波器系数
a=1;
p1=filter(b,a,p1);
Vx1=filter(b,a,Vx1);
Vy1=filter(b,a,Vy1);
p2=filter(b,a,p2);
Vx2=filter(b,a,Vx2);
Vy2=filter(b,a,Vy2);
%—————————————————
已尝试用python实现matlab中的filter函数中的方法,但是好像因为a=1是数字,类型不匹配不能用
在 Python 中,scipy.signal 模块中的 lfilter 函数与 Matlab 中的 filter 函数类似. 你需要使用 scipy.signal.lfilter(b,a,x) 来实现 Matlab 中的 filter(b,a,x),其中 b,a 和 x 分别对应 Matlab 中的 b, a 和 x.
scipy.signal.correlate 是用来计算两个序列的卷积的函数,它与 Matlab 中的 filter2/conv2 函数不同。
在你的代码中, a = 1,所以你应该使用 scipy.signal.lfilter(b,1,x) 代替 filter(b,a,x).