def compute_wavelet_ffts(self): samplerate = self.time_series.attrs['samplerate'] freqs = np.atleast_1d(self.freqs) wavelets = morlet_multi(freqs=freqs, widths=5, samplerates=samplerate) # ADD WARNING HERE FROM PHASE_MULTI num_wavelets = len(wavelets) # computting length of the longest wavelet s_w = max(map(lambda wavelet: wavelet.shape[0], wavelets)) # length of the tie axis of the time series s_d = self.time_series['time'].shape[0] # determine the size based on the next power of 2 convolution_size = s_w + s_d - 1 convolution_size_pow2 = np.power(2, next_pow2(convolution_size)) # preallocating arrays wavelet_fft_array = np.empty(shape=(num_wavelets, convolution_size_pow2), dtype=np.complex64) convolution_size_array = np.empty(shape=(num_wavelets), dtype=np.int) # computting wavelet ffts for i, wavelet in enumerate(wavelets): wavelet_fft_array[i] = fft(wavelet, convolution_size_pow2) convolution_size_array[i] = wavelet.shape[0] + s_d - 1 return wavelet_fft_array, convolution_size_array, convolution_size_pow2
def compute_wavelet_ffts(self): # samplerate = self.time_series.attrs['samplerate'] samplerate = float(self.time_series['samplerate']) freqs = np.atleast_1d(self.freqs) wavelets = morlet_multi(freqs=freqs, widths=self.width, samplerates=samplerate) # ADD WARNING HERE FROM PHASE_MULTI num_wavelets = len(wavelets) # computing length of the longest wavelet s_w = max(map(lambda wavelet: wavelet.shape[0], wavelets)) time_series_length = self.time_series['time'].shape[0] if s_w > self.time_series['time'].shape[0]: raise ValueError( 'Time series length (l_ts=%s) is shorter than maximum wavelet length (l_w=%s). ' 'Please use longer time series or increase lowest wavelet frequency ' % (time_series_length, s_w)) # length of the tie axis of the time series s_d = self.time_series['time'].shape[0] # determine the size based on the next power of 2 convolution_size = s_w + s_d - 1 convolution_size_pow2 = np.power(2, next_pow2(convolution_size)) # preallocating arrays # wavelet_fft_array = np.empty(shape=(num_wavelets, convolution_size_pow2), dtype=np.complex64) wavelet_fft_array = np.empty(shape=(num_wavelets, convolution_size_pow2), dtype=np.complex) convolution_size_array = np.empty(shape=(num_wavelets), dtype=np.int) # computting wavelet ffts for i, wavelet in enumerate(wavelets): wavelet_fft_array[i] = fft(wavelet, convolution_size_pow2) convolution_size_array[i] = wavelet.shape[0] + s_d - 1 return wavelet_fft_array, convolution_size_array, convolution_size_pow2