当前位置:   article > 正文

python过滤器_python中的Butterworth过滤器

*filter, name, type=butterworth, operator limit

我尝试使用Python中的Butterworth过滤器,如this thread中所述,并使用以下函数:def butter_bandpass(lowcut, highcut, fs, order=5):

nyq = 0.5 * fs

low = lowcut / nyq

high = highcut / nyq

b, a = butter(order, [low, high], btype='band')

return b, a

def butter_bandpass_filter(data, lowcut, highcut, fs, order=5):

b, a = butter_bandpass(lowcut, highcut, fs, order=order)

y = lfilter(b, a, data)

return y

在不应用滤波器的情况下,我的数据的FFT输出如下图:

a5d1a65de74fd62fcfeebcc7b3ae0756.png

但是,在应用上述过滤器后:

^{pr2}$

其中fs是采样频率(在我的例子中是1000),我得到的是FFT:

b450dfffddbe4bc4d9da774f32356aec.png

看起来滤波器把频率移到了左边,我没有得到它应该达到的峰值。

你知道为什么会这样吗?在

以防万一我把data file (second column)放在那里。直流电很强,所以在FFT之后,第一个元素不应该包含在绘图中。在

谢谢你!在

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/78312
推荐阅读
相关标签
  

闽ICP备14008679号