Singularity detection and processing with wavelets (1D, real-valued)
I'm currently reading the 1992 paper by Mallat and Hwang, Singularity Detection and Processing with Wavelets, because I'm interested in quantifying how "spiky" a 1D function is at given points.
The paper proposes a method to do so through Lipschitz exponents, relatively efficiently and with many mathematical guarantees. As far as I could understand (I'm about halfway through), if the function is not rapidly oscillating, this can be done by computing a CWT, then extracting local maxima lines and computing their gradient on a log scale. A wavelet with an appropriate number of moments must be chosen.
Before getting into more details, I looked for existing implementations to play with it, but all I could find were these (rather distorted/vague) mentions to the paper here.
Questions/proposed contribution:
- Is anyone aware of an existing implementation?
- If I end up implementing it, would it be interesting to include it into pywt? The idea is: given a 1D discrete-time real-valued function, or alternatively its WT, return the minimal pointwise Lipschitz exponent found for each time point. The lower, the more spiky.
I'm only interested in 1D, real-valued signals for the moment. The 1992 work is focused on real-valued signals, but it has been extended to C since then. Also, the 1992 work provides a section for image processing which should allow to extend to 2D.
I'd appreciate any thoughts on the matter!