Trouble Constructing Continuous Wavelet Transform in Mathematica 8
- To: mathgroup at smc.vnet.net
- Subject: [mg119256] Trouble Constructing Continuous Wavelet Transform in Mathematica 8
- From: Kevin <kevin.nielson at gmail.com>
- Date: Fri, 27 May 2011 06:12:43 -0400 (EDT)
- Reply-to: comp.soft-sys.math.mathematica at googlegroups.com
I am applying a continuous wavelet transform to a data series using a Morlet wavelet.
My trouble is that when I apply the transform using the built-in functions
MorletCWT = ContinuousWaveletTransform[data, MorletWavelet[]]
I get a very different power spectrum from what I obtain when I run this:
MorletPsi[x_] = WaveletPsi[MorletWavelet[],x]
ManualCWT = Flatten[ Table[ {b, a, Abs[1/sqrt[2^a] Sum[ data[[t]] MorletPsi[(t-b)/2^a],{t,1,300} ] ], {b, 1, 2300}, {a, 0.25, 7, 0.25}], 1];
In the above code, 297 is the number of data elements, which is spanned by 7 octaves with 4 voices/octave (hence the 7 and 0.25 in the 'a' list).
This is, near as I can tell, exactly what the Mathematica documentation claims is going on in the Continuous wave transform. (See the documentation for ContinuousWaveletTransform - More Information)
Is there a better way to do the Continuous Wavelet Transform "longhand"?
(For test functions, try
data = Table[Sin[0.125 pi i] + Random[Real,{-.5,.5}], {i,1,300}]
This sample data set produces similar, but nowhere near identical power spectra. The real data I am working with produces Built-in CWT and manual CWT powerspectra that are completely different from one another. )