python中与MATLAB的lowpass()函数等效的函数吗?

时间:2019-11-21 16:18:50

标签: python matlab scipy lowpass-filter

我在matlab中有以下代码,该代码将过滤器应用于“数据”数据集。我想在python中找到等效的功能。

epsilon = 8;
minpts = 12;
Normfreq = 0.0045;
Steepness = 0.9999;
StopbandAttenuation = 20;
filtered = lowpass(data, Normfreq, 'Steepness', Steepness, 'StopbandAttenuation', StopbandAttenuation);

1 个答案:

答案 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,以获取更深入的示例。