def showFilter(self): k="low" for i in self.fTypeW.keys(): if self.fTypeW[i].get_active(): k=i self.x = self.varChIn.get_var() Wn = [] if k in ["low","bs","bp"]: Wn.append(float(self.fOpt["low"].get_value())/self.fOpt["Fs"].get_value()*2) if k in ["high","bs","bp"]: Wn.append(float(self.fOpt["high"].get_value())/self.fOpt["Fs"].get_value()*2) #print "butter", int(self.fOpt["order"].get_value()), Wn, k b,a = butter(int(self.fOpt["order"].get_value()),Wn,k) #print "filtfilt" self.y = filtfilt(b,a,self.x) #print "plot" self.canvas.hide() self.a.cla() self.a.plot(self.x[:,0]) self.a.plot(self.y[:,0]) self.a2.cla() self.a2.psd(self.x[:,0],Fs=self.fOpt["Fs"].get_value()) self.a2.psd(self.y[:,0],Fs=self.fOpt["Fs"].get_value()) self.a2.autoscale_view(tight=True) self.canvas.show()
def __init__(self, bands, border=2, baseline_interval=None, data_interval=None, Fs=1000.0, *args, **kwargs): """Initialize the FrequencyBandPowerMapper :Parameters: bands: list of 2-tuples list of (fl,fh), edge-frequencies for filtering border: int order of the filter to be used baseline_interval: 2-tuple of ints indices of the interval to be used for baseline correction data_interval: 2-tuple of ints indices of the interval to be used for cluster search args, kwargs: additional arguments passed to parent class """ Mapper.__init__(self,*args,**kwargs) self._bands = bands self._border = border self._baseline_interval = baseline_interval self._data_interval = data_interval self._Fs = Fs #TODO: Perform some checks, for valid intervals etc. #precalculate filter parameters (butter) self._bs = list(np.zeros((len(bands)))) self._as = list(np.zeros((len(bands)))) for i_b in range(len(bands)): [self._bs[i_b],self._as[i_b]]=butter(border,[bands[i_b][0]/(Fs/2),bands[i_b][1]/(Fs/2)], btype="band")
def __init__(self, bands, border=2, baseline_interval=None, data_interval=None, Fs=1000.0, *args, **kwargs): """Initialize the FrequencyBandPowerMapper :Parameters: bands: list of 2-tuples list of (fl,fh), edge-frequencies for filtering border: int order of the filter to be used baseline_interval: 2-tuple of ints indices of the interval to be used for baseline correction data_interval: 2-tuple of ints indices of the interval to be used for cluster search args, kwargs: additional arguments passed to parent class """ Mapper.__init__(self, *args, **kwargs) self._bands = bands self._border = border self._baseline_interval = baseline_interval self._data_interval = data_interval self._Fs = Fs #TODO: Perform some checks, for valid intervals etc. #precalculate filter parameters (butter) self._bs = list(np.zeros((len(bands)))) self._as = list(np.zeros((len(bands)))) for i_b in range(len(bands)): [self._bs[i_b], self._as[i_b] ] = butter(border, [bands[i_b][0] / (Fs / 2), bands[i_b][1] / (Fs / 2)], btype="band")