赞
踩
您可以跳过使用buttord,而只是选择过滤器的顺序,并查看它是否符合您的过滤条件。为了产生带通滤波器的滤波器系数,给予滤波器阶数,截止频率Wn = [低,高](表示为奈奎斯特频率的一部分,是采样频率的一半)和频带类型btype =“band”。
这里是一个脚本,定义了一些方便的功能,使用一个巴特沃斯带通滤波器。当作为脚本运行时,它做出两个图。一个示出了对于相同采样率和截止频率的若干滤波器阶的频率响应。另一个图显示了滤波器(阶数= 6)对采样时间序列的影响。
from scipy.signal import butter, lfilter
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
if __name__ == "__main__":
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import freqz
# Sample rate and de
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。