def band_stop(ite_data,freqmin,freqmax,samp_freq,corners=4,zerophase=True):
fe = samp_freq/2.0
low = freqmin/fe
high = freqmax/fe
# raise error for illegal input
if high - 1.0 > -1e-6:
msg = ("Selected high corner frequency ({}) of bandpass is at or above Nyquist ({}). Applying a high-pass instead.").format(freqmax, fe)
return False
if low >1 :
msg = "selected low corner requency is above Nyquist"
return False
z,p,k = signal.iirfilter(corners,[low,high],btype='bandstop',ftype='butter',output='zpk')
sos = zpk2sos(z,p,k)
ite_data = sosfilt(sos,ite_data)
if zerophase:
ite_data = sosfilt(sos,ite_data[::-1])[::-1]
return ite_data
评论列表
文章目录