PyWavelets / pywt

PyWavelets - Wavelet Transforms in Python
http://pywavelets.readthedocs.org
MIT License
2.04k stars 470 forks source link

Adding Morse wavelet #596

Closed pavleb closed 2 years ago

pavleb commented 3 years ago

Regarding complex analytical wavelets the Morse wavelet is currently among the best ones with respect to accuracy and spectral leakage for ultra low frequencies. The biggest issue is that the close form exists in frequency domain. As far as I could see the implementation of the mother wavelets in cwt.template.c requires time-domain representation of the mother wavelet.

Could you please advise how to proceed with implementation of mother wavelets that have closed form only in frequency domain? I guess this is a little outside of the current development framework so before starting the implementation I would like to consult with the development team on the guidelines.

grlee77 commented 3 years ago

Yes, it is not easy to integrate wavelets defined in the frequency domain in the existing CWT code. It would probably be best in that case to just have a new FFT-based CWT. The main issue is that our original contributor of CWT code is no longer active here and I personally have expertise mostly with the discrete wavelet transforms.

There was some past discussion of this wavelet in #421 which points to an implementation in: https://github.com/aaren/wavelets There is also PyTorch-based code here: https://github.com/tomrunia/PyTorchWavelets

Have you looked into either these or other existing implementations to determine what value could be added by making another implementation here?

rgommers commented 2 years ago

There's more discussion on generalized Morse wavelets in gh-544. From checking different sources, "Morse wavelet" and "generalized Morse wavelet" appear to be the exact same thing, terminology is just inconsistently used. https://www.mathworks.com/help/wavelet/ug/morse-wavelets.html for example uses these terms interchangeably.

gh-544 is older and has more discussion, so I will close this as a duplicate. Thanks @pavleb and @grlee77.