可以使用函数^{}或^{}创建带通FIR滤波器。也可以使用^{}设计FIR滤波器
下面的代码为创建带通FIR滤波器提供了一些方便的包装。它使用这些来创建与问题中请求的数字对应的带通滤波器。这假设采样是均匀的。如果采样不均匀,则不适合使用FIR滤波器。from scipy.signal import firwin, remez, kaiser_atten, kaiser_beta
# Several flavors of bandpass FIR filters.
def bandpass_firwin(ntaps, lowcut, highcut, fs, window='hamming'):
nyq = 0.5 * fs
taps = firwin(ntaps, [lowcut, highcut], nyq=nyq, pass_zero=False,
window=window, scale=False)
return taps
def bandpass_kaiser(ntaps, lowcut, highcut, fs, width):
nyq = 0.5 * fs
atten = kaiser_atten(ntaps, width / nyq)
beta = kaiser_beta(atten)
taps = firwin(ntaps, [lowcut, highcut], nyq=nyq, pass_zero=False,
window=('kaiser', beta), scale=False)
return taps
def bandpass_remez(ntaps, lowcut, highcut, fs, width):
delta = 0.5 * width
edges = [0, lowcut