广州一起做网店属于什么网站,公司网站做推广支出分录,网站备案个人备案公司网站,南宁网站建设哪家公司实力强您可以跳过button的使用#xff0c;而只需为过滤器选择一个顺序#xff0c;看看它是否符合您的过滤条件。要生成带通滤波器的滤波器系数#xff0c;请将滤波器阶数、截止频率Wn[low, high]#xff08;表示为奈奎斯特频率的分数#xff0c;即采样频率的一半#xff09;和频…您可以跳过button的使用而只需为过滤器选择一个顺序看看它是否符合您的过滤条件。要生成带通滤波器的滤波器系数请将滤波器阶数、截止频率Wn[low, high]表示为奈奎斯特频率的分数即采样频率的一半和频带类型btypeband。
下面是一个脚本它定义了两个使用巴特沃斯带通滤波器的便利函数。当作为脚本运行时它生成两个图。其中一个显示了相同采样率和截止频率下几个滤波器阶数的频率响应。另一个图展示了滤波器阶数为6对样本时间序列的影响。from scipy.signal import butter, lfilter
def butter_bandpass(lowcut, highcut, fs, order5):
nyq 0.5 * fs
low lowcut / nyq
high highcut / nyq
b, a butter(order, [low, high], btypeband)
return b, a
def butter_bandpass_filter(data, lowcut, highcut, fs, order5):
b, a butter_bandpass(lowcut, highcut, fs, orderorder)
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 desired cutoff frequencies (in Hz).
fs 5000.0
lowcut 500.0
highcut 1250.0
# Plot the frequency response for a few different orders.
plt.figure(1)
plt.clf()
for order in [3, 6, 9]:
b, a butter_bandpass(lowcut, highcut, fs, orderorder)
w, h freqz(b, a, worN2000)
plt.plot((fs * 0.5 / np.pi) * w, abs(h), labelorder %d % order)
plt.plot([0, 0.5 * fs], [np.sqrt(0.5), np.sqrt(0.5)],
--, labelsqrt(0.5))
plt.xlabel(Frequency (Hz))
plt.ylabel(Gain)
plt.grid(True)
plt.legend(locbest)
# Filter a noisy signal.
T 0.05
nsamples T * fs
t np.linspace(0, T, nsamples, endpointFalse)
a 0.02
f0 600.0
x 0.1 * np.sin(2 * np.pi * 1.2 * np.sqrt(t))
x 0.01 * np.cos(2 * np.pi * 312 * t 0.1)
x a * np.cos(2 * np.pi * f0 * t .11)
x 0.03 * np.cos(2 * np.pi * 2000 * t)
plt.figure(2)
plt.clf()
plt.plot(t, x, labelNoisy signal)
y butter_bandpass_filter(x, lowcut, highcut, fs, order6)
plt.plot(t, y, labelFiltered signal (%g Hz) % f0)
plt.xlabel(time (seconds))
plt.hlines([-a, a], 0, T, linestyles--)
plt.grid(True)
plt.axis(tight)
plt.legend(locupper left)
plt.show()
以下是此脚本生成的绘图