DMelt:DSP/5 Fast Wavelet Transform

From HandWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Member

Fast Wavelet Transform (FWT)

Here is FWT for 1D array using Haar method. We use Transform Transform class for this task:

from math.jwave import Transform
from math.jwave.transforms import *
from math.jwave.transforms.wavelets import *

t=Transform(  FastWaveletTransform( Haar02( ) ))
arrTime = [1, 10, 12, 8, 1, 1, 1, 1. ]
arrFreq = t.forward( arrTime ) # 1-D FWT Haar forward
print arrFreq.tolist()
arrReco = t.reverse( arrFreq ) # 1-D FWT Haar reverse
print arrReco.tolist()

The output of this code is:

[12.374368670764577, 9.545941546018389, -4.499, 0.0, -6.363, 2.8284, 0.0, 0.0]
[1, 10, 12, 8, 1, 1, 1, 1. ]

FWT in 2D

Now let us consider a FWT transformation of 2D array. This is an extension of the above script:

from math.jwave import Transform
from math.jwave.transforms import *
from math.jwave.transforms.wavelets import *

t=Transform(  FastWaveletTransform( Haar02( ) ))
arrTime = [[1, 10, 12, 8, 1, 1, 1, 1. ], [1, 2, 2, 3, 1, 1, 1, 1. ]]
arrFreq = t.forward( arrTime ) # 1-D FWT Haar forward
print arrFreq
arrReco = t.reverse( arrFreq ) # 1-D FWT Haar reverse
print arrReco