def __init__(self, order=20, size=1024): self.size = size self.half = A.nblock2(size) self.wlen = self.half * 2 self.wvlt_i = wvlt.daubechies(order) self.wwrk_i = wvlt.workspace(self.wlen) self.tail_i = N.zeros(self.half) self.wvlt_q = wvlt.daubechies(order) self.wwrk_q = wvlt.workspace(self.wlen) self.tail_q = N.zeros(self.half)
def __init__(self, order = 20, size = 1024): self.size = size self.half = A.nblock2(size) self.wlen = self.half*2 self.wvlt_i = wvlt.daubechies(order) self.wwrk_i = wvlt.workspace(self.wlen) self.tail_i = N.zeros(self.half) self.wvlt_q = wvlt.daubechies(order) self.wwrk_q = wvlt.workspace(self.wlen) self.tail_q = N.zeros(self.half)
def run(array): # Initalise the wavelet and the workspace w = wavelet.daubechies(4) ws = wavelet.workspace(len(array)) # Transform forward result = w.transform_forward(array, ws) # Select the largest 20 coefficients abscoeff = numx.absolute(result) indices = numx.argsort(abscoeff) # ascending order tmp = numx.zeros(result.shape, numx.float_) for i in indices[-20:]: tmp[i] = result[i] # Set all others to zero # And back result2 = w.transform_inverse(tmp, ws)