我在matlab中有以下代码,该代码将过滤器应用于“数据”数据集。我想在python中找到等效的功能。
epsilon = 8;
minpts = 12;
Normfreq = 0.0045;
Steepness = 0.9999;
StopbandAttenuation = 20;
filtered = lowpass(data, Normfreq, 'Steepness', Steepness, 'StopbandAttenuation', StopbandAttenuation);
答案 0 :(得分:1)
Scipy可能是最好的工具。您可以使用scipy的信号处理库。
他们甚至从docs中提供了matlab样式的过滤器设计。
Matlab样式的IIR滤波器设计
butter(N,Wn [,btype,模拟,输出,fs])-Butterworth数字和模拟滤波器设计。
buttord(wp,ws,gpass,gstop [,模拟,fs])-巴特沃思滤波器顺序选择。
cheby1(N,rp,Wn [,btype,模拟,输出,fs])- 切比雪夫I类数字和模拟滤波器设计。
cheb1ord(wp,ws,gpass,gstop [,模拟,fs])- Chebyshev I型过滤器订单选择。
cheby2(N,rs,Wn [,btype,Analog,Output,fs])- Chebyshev II型数字和模拟滤波器设计。
cheb2ord(wp,ws,gpass,gstop [,模拟,fs])- 切比雪夫(Chebyshev)II型过滤器顺序选择。
ellip(N,rp,rs,Wn [,btype,模拟,输出,fs])- 椭圆(Cauer)数字和模拟滤波器设计。
ellipord(wp,ws,gpass,gstop [,模拟,fs])- 椭圆(Cauer)过滤器顺序选择。
bessel(N,Wn [,btype,模拟,输出,范数,fs])- 贝塞尔/汤姆森数字和模拟滤波器设计。
iirnotch(w0,Q [,fs])- 设计二阶IIR陷波数字滤波器。
iirpeak(w0,Q [,fs])- 设计二阶IIR峰值(谐振)数字滤波器。
您可能想要使用butterworth过滤器,然后使用lfilter
将过滤器应用于数据。
请参阅此SO answer,以获取更深入的示例。