[Math] Signal differentiation by wavelet transform

derivativeswavelets

I have a noisy signal x(t) that I want to differentiate in time, in order to obtain x'(t). Though numerical finite difference approximantion does not work well on noisy signal, I would like to differentiate its continuous wavelet transform (cwt) and to reconstruct the derivative from its wavelet transform. Is it possible to do so? Given the wavelet transform of the original signal, how do I differentiate it in order to get the wavelet transform of its derivative? I am using complex Morlet wavelet. Please bear in mind that I no matematician, so please be as human as you can in your answer.

Best Answer

I usually work more with Discrete Wavelet Transforms, but I will give it a go. I base this guide below on an own rewritten version of Matlab source implementation of the Morlet wavelet.

$$ W(X) = ((\pi F_B)^{-0.5})\exp(2i\pi\cdot F_C \cdot X)\exp\left(-\frac{X^2}{F_B}\right)$$

It seems to me that the real and imaginary parts of the Morlet wavelet are in quadrature. This means they measure the whole phase range for a range of fourier frequencies. The first order derivative will be parts of the odd component, since a first order differential operator is, well odd. You have a bunch of parameters:

  • Spatial size of filter (range of $X$)
  • Center frequency ($F_C$)
  • Gaussian window ($F_B$) $\sigma^2$

What is important if you want to create a differential approximator is to fine tune the bandwidth parameter. Too narrow band width and the wave will be very long, including many zero-crossings.

enter image description here

Example of Morlet wavelet where the wave is too long. We need to narrow it down in the time-domain, i.e. choose a shorter Gaussian window. The black envelope is the shape of our broad gaussian.

enter image description here

Here we can see that with a tighter Gaussian black envelope we pick out just one zero crossing for the odd part, which would be suitable to measure a derivative.

Related Question