Local pages:


Swan wavelet analysis tool


Swan is a tool for wavelet data analysis meant to be simple in use and easy to extend.

The project is divided in two parts. One part is a python library—pycwt—to perform the CWT (Morlet and Mexican hat are supported) via the FFT. The other part is a GUI (called Swan), which uses part of the functionality of the pycwt.

So far only morlet wavelet can be used in the Swan gui. Morlet and Mexican hat can be used with pycwt package. Wavelet transform is done in Fourier space.

Basically, you just open a data file, which should be in a textual format, but can be gzipped too, and click on the `Apply CWT!' button when you are done with setting the parameter spins and knobs.

You can display the real and imaginary parts of the wavelet transform coefficients, modulus, phase, and energy density surface (this last one still a little bit under construction) in different colourmaps, whether in linear or logarithmic scale. You can also switch between coloured image and contourmap ways of visualization.

Once you have the results displayed, you can see local modulus maxima lines, and try to trace a desired rhythm manually. Just click the `Add' button in the `Rhythms' frame.

Why develop and use Swan?

The group I work in needs some software to do wavelet analysis of biophyics data. I develop Swan to do this data series analysis. To some extent, it is a bicycle invention, of course. I am aware of at least two mature software projects of wavelet data analysis: one included in MatLab(tm) and LastWave.

Both projects are opensource. The latter one is really cool, it is written mostly by Emmanuel Bacry, who is a author of quite a number of papers on the theory and application of wavelet analysis. And you don't need any bulky commercial software to use it. I tried to use it some time before but first, I needed something simpler and more flexible, something I can play with and learn something and second, I needed a linear stepping in scales as an option. In LastWave there was only a possibility to have scales organised as "voices" in "octaves" (meaning logarithmic stepping), and we did need to have linear scale (frequency) stepping.

Is there a way to contribute?

Feedback is very welcome.

Noticed a bug or have a feature request? Drop a line or use launchpad servises, like Answers or Bugs. In other words, visit the project page at Launchpad and see what you can do.

Any help is always appreciated.