def Filter(self, LowCorner, HighCorner, Order=3):
"""
Butterworth bandpass filter
"""
FS = 1./self.HDR['TSMP']
if HighCorner >= FS/2.:
print 'Warning: High corner must be < {0:.2f} Hz'.format(FS/2.)
return
if LowCorner < 0.:
print 'Warning: Low corner must be > 0 Hz'.format(FS/2.)
return
# Corner frequencies
Corners = [2.*LowCorner/FS, 2.*HighCorner/FS]
# Butterworth filter
b, a = _sig.butter(Order, Corners, btype='band')
# Filtering records
for I,S in enumerate(self.CHN):
# self.CHN[I] = _sig.lfilter(b, a, S)
zi = _sig.lfilter_zi(b, a);
self.CHN[I],_ = _sig.lfilter(b, a, S, zi=zi*S[0])
#-----------------------------------------------------------------------------------------
评论列表
文章目录