pywt icon indicating copy to clipboard operation
pywt copied to clipboard

Singularity detection and processing with wavelets (1D, real-valued)

Open andres-fr opened this issue 4 years ago • 0 comments

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!

andres-fr avatar Nov 21 '21 21:11 andres-fr