def FIR_hrf(self): """Calculate the FIR event-related estimated of the HRFs for different kinds of events Returns ------- A time-series object, shape[:-2] are dimensions corresponding to the to shape[:-2] of the EventRelatedAnalyzer data, shape[-2] corresponds to the different kinds of events used (ordered according to the sorted order of the unique components in the events time-series). shape[-1] corresponds to time, and has length = len_hrf """ #Make a list to put the outputs in: h = [0] * self._len_h for i in xrange(self._len_h): #Get the design matrix: design = tsu.fir_design_matrix(self.events[i],self.len_hrf) #Compute the fir estimate, in linear form: this_h = tsa.fir(self.data[i],design) #Reshape the linear fir estimate into a event_types*hrf_len array u = np.unique(self.events[i]) event_types = u[np.unique(self.events[i])!=0] h[i] =np.reshape(this_h,(event_types.shape[0],self.len_hrf)) h = np.array(h).squeeze() return UniformTimeSeries(data=h, sampling_rate=self.sampling_rate)
def FIR(self): """Calculate the FIR event-related estimated of the HRFs for different kinds of events Returns ------- A time-series object, shape[:-2] are dimensions corresponding to the to shape[:-2] of the EventRelatedAnalyzer data, shape[-2] corresponds to the different kinds of events used (ordered according to the sorted order of the unique components in the events time-series). shape[-1] corresponds to time, and has length = len_et XXX code needs to be changed to use flattening (see 'eta' below) """ #Make a list to put the outputs in: h = [0] * self._len_h for i in xrange(self._len_h): #XXX Check that the offset makes sense (there can't be an event #happening within one offset duration of the beginning of the #time-series: #Get the design matrix (roll by the offset, in order to get the #right thing): roll_events = np.roll(self.events[i],self._offset) design = tsu.fir_design_matrix(roll_events,self.len_et+ abs(self._offset)) #Compute the fir estimate, in linear form: this_h = tsa.fir(self.data[i],design) #Reshape the linear fir estimate into a event_types*hrf_len array u = np.unique(self.events[i]) event_types = u[np.unique(self.events[i])!=0] h[i] =np.reshape(this_h,(event_types.shape[0],self.len_et+ abs(self._offset))) h = np.array(h).squeeze() return ts.UniformTimeSeries(data=h,sampling_rate=self.sampling_rate, t0=-1*self.len_et*self.sampling_interval, time_unit=self.time_unit)
def FIR(self): """Calculate the FIR event-related estimated of the HRFs for different kinds of events Returns ------- A time-series object, shape[:-2] are dimensions corresponding to the to shape[:-2] of the EventRelatedAnalyzer data, shape[-2] corresponds to the different kinds of events used (ordered according to the sorted order of the unique components in the events time-series). shape[-1] corresponds to time, and has length = len_et XXX code needs to be changed to use flattening (see 'eta' below) """ #Make a list to put the outputs in: h = [0] * self._len_h for i in xrange(self._len_h): #XXX Check that the offset makes sense (there can't be an event #happening within one offset duration of the beginning of the #time-series: #Get the design matrix (roll by the offset, in order to get the #right thing): roll_events = np.roll(self.events[i], self.offset) design = tsu.fir_design_matrix(roll_events, self.len_et) #Compute the fir estimate, in linear form: this_h = tsa.fir(self.data[i], design) #Reshape the linear fir estimate into a event_types*hrf_len array u = np.unique(self.events[i]) event_types = u[np.unique(self.events[i]) != 0] h[i] = np.reshape(this_h, (event_types.shape[0], self.len_et)) h = np.array(h).squeeze() return ts.TimeSeries(data=h, sampling_rate=self.sampling_rate, t0=self.offset * self.sampling_interval, time_unit=self.time_unit)