赞
踩
我尝试使用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输出如下图:
但是,在应用上述过滤器后:
^{pr2}$
其中fs是采样频率(在我的例子中是1000),我得到的是FFT:
看起来滤波器把频率移到了左边,我没有得到它应该达到的峰值。
你知道为什么会这样吗?在
以防万一我把data file (second column)放在那里。直流电很强,所以在FFT之后,第一个元素不应该包含在绘图中。在
谢谢你!在
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。