Where can I see the list of built-in wavelet functions that I can pass to scipy.signal.cwt?
python, scipy, signal-processing, wavelet
Solution
I asked the question on the SciPy Users List , answer 1:
I found the module for CWT quite confusing, so I rolled my own:
https://github.com/Dapid/fast-pycwt
It is built for speed (I got my running time from 4 h down to 20 min). It is not thoroughly tested, and it is limited to single and double; but for me it is in a "good enough" state.
Answer 2:
You might also find my version useful:
https://github.com/aaren/wavelets
I also found scipy wavelets confusing. My version includes a faster cwt that can take wavelets expressed in either frequency or time.
I found it more intuitive to have wavelet functions that take time/frequency and width as arguments rather than the present method (I prefer thinking in real space rather than sample space).
Presently, the morlet wavelet that comes with scipy, `scipy.signal.wavelets.morlet`, cannot be used as input to cwt. This is unfortunate I think.
Additionally, the present cwt doesn't allow complex output. This doesn't make a difference for ricker but wavelet functions are complex in general.
My modified 'cwt' method is here:
https://github.com/aaren/wavelets/blob/master/wavelets.py#L15
It can accept wavelet functions defined in time or frequency space, uses fftconvolve, and allows complex output.
My background on this is based on a reading of Torrence and Compo:
Torrence and Compo, 'A Practical Guide to Wavelet Analysis' (BAMS, 1998)
http://paos.colorado.edu/research/wavelets/
hope that helps a bit,
aaron
Problem
`scipy.signal.cwt`'s documentation says: scipy.signal.cwt(data, wavelet, widths) wavelet : function Wavelet function, which should take 2 arguments. The first argument is the number of points that the returned vector will have (len(wavelet(width,length)) == length). The second is a width parameter, defining the size of the wavelet (e.g. standard deviation of a gaussian). See ricker, which satisfies these requirements.wavelet : function Wavelet function, which should take 2 arguments. Beyond `scipy.signal.ricket`, what are the other built-in wavelet functions that I can pass to scipy.signal.cwt? I see in scipy / scipy / signal / wavelets.py ``` __all__ = ['daub', 'qmf', 'cascade', 'morlet', 'ricker', 'cwt'] ``` and looking at the arguments of each of those wavelet functions, only `ricket` seems to work with `scipy.signal.cwt(data, wavelet, widths)` (as only `ricker` takes precisely 2 arguments).