1

If I perform a standard wavelet transform and then perform the inverse, I was expecting to get the original signal back:

% dummy series:
Fs = 1e3;
t = 0:1/Fs:1;
x = exp(cos(2*pi*32*t).*(t>=0.1 & t<0.3) + sin(2*pi*64*t).*(t>0.7));

% perform default transform and inverse
wt=cwt(x)
rx=icwt(wt)

% plot
plot(t,x,t,rx)

Apart from the offset, the flat period signals are distorted.
original series and reconstruction from cwt and icwt It seems to be possible to perform a transform/inverse and have something close to the identity function, as here Wavelet reconstruction of time series , but reading the tutorials/help for cwt I do not see how to achieve this.

ClimateUnboxed
  • 7,106
  • 3
  • 41
  • 86
  • It depends on the wavelet whether this is possible or not. Most wavelets are not orthogonal and do not provide complete decompositions. – Cris Luengo Jan 30 '18 at 13:53
  • 1
    Is there any reason why not use the DWT? – DaBler Jan 31 '18 at 14:03
  • Well the DWT works (i.e. invariant inverse) but I wanted to use the cross-power between two series to construct a wavelet filter to retain the common signals between two similar timeseries, and I didn't see any option for that in DWT, only in the continuous wavelet package CWT. – ClimateUnboxed Feb 02 '18 at 11:38

1 Answers1

1

The matlab documentation explains that the CWT is not the best choice for perfect reconstruction. However if you want to compare different bands as signals with the same size as the original, you can use the MODWT (or the shift-invariant DWT by cycle-spinning, sometimes calles à trous).

alle_meije
  • 2,424
  • 1
  • 19
  • 40