Tag Info

Hot answers tagged

11

In the old Mathematica wavelet explorer, the one used in the tutorial, coefficients were arranged in decreasing order of energy. You can see that from the following line from the tutorial, In[8]:= Dimensions /@ wtdata Out[8]= {{32,32},{3,32,32},{3,64,64}....} In the new Mathematica 8 wavelets the coefficients are arranged in increasing order of energy as ...


10

So, in order to answer your question I will first provide a little information about the so-called padding in wavelet transforms. For the continuous wavelet transform there will be problems near the edge of the time series, as the wavelet starts to run off the end. To minimize these problems, the time series can be padded with zeroes. This reduces the ...


10

Since you haven't provided any data I define something like: data = Table[ Sin[2 Pi t] + 0.86 Sin[97 Pi t] Cos[46 Pi t] Sin[39 Pi t] Cos[19 Pi t] Exp[-102 (1/3 - t)^2], {t, 0.091, 0.519, 1/4095}]; ListLinePlot[data, PlotStyle -> Thick] Now let's demonstrate how WaveletScalogram depends on the choice of ContinuousWaveletTransform ...


10

Yes, you are right. WaveletScalogram produces a plot that is very similar in behaviour to that used in music. Here, the octave axis is also logarithmic: -Log[2,b], meaning that the frequency at the next octave is doubled. We can illustrate this by a simple example - Consider a signal with a freq = 440Hz and a signal with double that freq = 880Hz. Now, ...


9

After consulting a friend of mine P.M. I can tell you this. First of all as @Szabolcs @ruebenko already mentions - in order to get a comparison with Wavelet explorer (v7) to v8, you can go to the following link in the documentation center which shows how the syntax has changed: ...


8

EDIT: First, a note: As the usage of options, parameters and functions listed below is not documented, be advised that they still need proper tuning and/or may not work at all. CMorletWavelet[]["WaveletQ"] := True CMorletWavelet[]["OrthogonalQ"] := False CMorletWavelet[]["BiorthogonalQ"] := False CMorletWavelet[]["WaveletFunction"] := 1/Sqrt[π] Exp[2 I π ...


8

I found a way to do this thanks to the more simple question I posted here: Wrapping ArrayPlot or MatrixPlot around a circle but it takes a very long time to compute. So I will post the answer but I hope someone will post a faster solution. cwd = ContinuousWaveletTransform[data, GaborWavelet[6], {4, 12}, WaveletScale -> 100]; ws = WaveletScalogram[cwd, ...


6

We can visualize the wavelet scalogram using ListPolarPlot data = Re[Zeta[1/2 + I Range[0, 100, 0.01]]]; cwd = ContinuousWaveletTransform[data, GaborWavelet[6], {4, 12}, WaveletScale -> 100]; ListPolarPlot[Abs@Reverse[Last /@ cwd[All]], ColorFunction -> "Rainbow"] Additionally we can see the scalogram in 3D using ListPlot3D: ...


6

An alternative; we will discard the time values. f[list_, pos_] := Module[{x = list}, x[[All, pos]] = Sequence[]; x] data = Import[ "http://www.fileconvoy.com/gf.php?id=geed872d9b8a38dc6999443310. 4661369818fbd5fa1bf3bc&sts=138977900593152145247060b494909aee48bb2a26b595048647"]; fdata = Flatten@f[data, 1]; cwd = ContinuousWaveletTransform[fdata, ...


5

The Spectrogram function also allows you to alter the window length, overlap and apply a windowing function to your data segment before FFT. You'll get better results if you utilize those (which requires some knowledge of DSP and your specific problem) instead of using the default parameters and the rectangle window. For instance, the following shows the ...


5

Try specifying your function as MyWavelet[n_,opts:OptionsPattern[]] (documentation) and define Options to your function Method->"PrimalLowpass",Precision->$MachinePrecision, like this: Options[MyWavelet] ={Method->"PrimalLowpass",Precision->$MachinePrecision} To actually construct all this as a function, you need to put certain steps as a ...


5

So, the scalogram is a raster, so what? Why does it deter you from just wrapping it around the pole? ws = WaveletScalogram[cwd, All, Re, ColorFunction -> "CherryTones", Axes -> False, PlotRangePadding -> None, AspectRatio -> 1] ImageTransformation[ws, {(ArcTan @@ (0.5 - #) + Pi)/(2 Pi),2 Norm[0.5 - #]} &]


4

Unless I'm missing something, your question does not make sense. The cascade algorithm is an iterative solution to $\phi(x)=\sum_{k=0}^{N-1} c_k \phi(2 x - k)$, which computes $\phi(x)$ approximately at dyadic points $x=k\times2^{-j}$, to whatever resolution you choose for the initial approximation. The definition $\phi_{j,k}(x)=2^{j/2} \phi(2^{j} x - k)$ ...


4

I don't know if you are wedded to wavelets but... Have you considered a "compound median filter" (q.v.) ? For a list of data x and filter width 2r+1, MedianFilterRoot[x_, r_] := FixedPoint[MedianFilter[#, r] &, x] CompoundMedianFilter[x_, r_] := Fold[MedianFilterRoot[#1, #2] &, x, Range[r]] Plotting ...


3

While it may be a complicated question about whether the Continuous Wavelet Transform (CWT) in general is a linear operator, it is possible to answer the question "experimentally" without undue hassle regarding Mathematica's implementation of the CWT. Here are two sequences, a and b and their ContinuousWaveletTransforms: a = RandomReal[{-1, 1}, 100]; b = ...


2

Once again I repeat that trying to reproduce something like the curve you are trying to get is going to be inaccurate - There are more suitable representations you can use to get the desired frequency spectrum, but you are the one asking the questions :) First, we fetch your data data = Import[ ...


1

Urghhh ... I hate those "RustTones"... Nevertheless ^o^ sa = SpectrogramArray[data2]; ListDensityPlot[Transpose@Abs@sa, ColorFunction -> "DeepSeaColors", AspectRatio -> 1/2, Frame -> None] ListDensityPlot[Transpose@Abs@sa, ColorFunction -> Hue, AspectRatio -> 1/2, Frame -> None]



Only top voted, non community-wiki answers of a minimum length are eligible