def __init__(self, lowFreq, highFreq, sampRate=1.0,
order=3, filtType='butter', zeroPhase=True,
dtype=None, **kwargs):
"""Construct a new IIR bandpass filter.
"""
BandpassFilterBase.__init__(self, lowFreq, highFreq, sampRate, dtype=dtype)
self.order = order
self.filtType = filtType.lower()
self.zeroPhase = zeroPhase
if self.bandType not in ('allpass', 'allstop'):
if self.bandType == 'lowpass':
self.Wn = self.high
elif self.bandType == 'highpass':
self.Wn = self.low
elif self.bandType == 'bandpass':
self.Wn = (self.low, self.high)
elif self.bandType == 'bandstop':
self.Wn = (self.high, self.low)
else:
raise Exception('Invalid bandType: ' + str(self.bandType))
self.numCoef, self.denomCoef = spsig.iirfilter(order, self.Wn,
ftype=filtType, btype=self.bandType, **kwargs)
self.numCoef = self.numCoef.astype(self.dtype, copy=False)
self.denomCoef = self.denomCoef.astype(self.dtype, copy=False)
self.initZi()
评论列表
文章目录