Wavelet synchrosqueezed transform decomposition

4 Ansichten (letzte 30 Tage)
Marc Huber
Marc Huber am 15 Apr. 2016
Bearbeitet: Marc Huber am 18 Apr. 2016
Hello,
I want to decompose a Signal in approximation an details. Like the 1-D Decimated Wavelet Transform it do. http://de.mathworks.com/help/wavelet/ug/ex1d2.png
Is this also possible with wavelet synchrosqueezed transform? Or is the 'only' I can get by wsst a time-frequency plot? http://de.mathworks.com/help/examples/wavelet_product/synchrosqueezingExample_02.png
Thank you

Akzeptierte Antwort

Wayne King
Wayne King am 15 Apr. 2016
Hi Marc, synchrosqueezing and the closely related continuous wavelet transform do not provide perfect reconstruction of the input signal in general like the DWT does.
You may want to look at MODWPT and/or MODWT.
The MODWT will give you an octave band decomposition of the input signal (into progressively finer octave bands) with energy conservation and perfect reconstruction without loss of time resolution.
For example
load wecg;
wt = modwt(wecg);
Now if you look at the energies of the wt matrix by row and sum those you will get back the energy of the original signal
sum(var(wt,1,2))
% compare to
var(wecg)
Now if you want to progressively build up your signal from "details" at different levels, use MODWTMRA
mra = modwtmra(wt);
If you sum this mra long the columns you will eventually build back up the original signal.
max(abs(wecg-sum(mra)'))
You can view what the contributions look like at different levels:
subplot(6,1,1);
plot(wecg);
for kk = 2:6
subplot(6,1,kk);
plot(mra(kk-1,:));
end
For a more finely tuned time-frequency analysis see MODWPT and MODWPTDETAILS.

Weitere Antworten (1)

Wayne King
Wayne King am 15 Apr. 2016
Hi Marc, the synchrosqueezed transform does not specifically provide "details" like the discrete wavelet transform, but it does provide the ability to do something very similar. After all, details in discrete wavelet transforms are equivalent to bandpass filterings of the input. With the inverse synchrosqueezed transfom you can reconstruct frequency-localized signal approximations. For example
load multicompsig;
sig = sig1+sig2;
[sst,F] = wsst(sig,sampfreq);
contour(t,F,abs(sst));
xlabel('Time'); ylabel('Hz');
grid on;
title('Synchrosqueezed Transform of Two-Component Signal');
Now let's reconstruct an approximation without the low-frequency sine wave and compare to the original isolated sig1.
xrec = iwsst(sst,F,[25 250]);
plot(sig1); hold on;
plot(xrec,'r'); grid on;
Also, have a look at wsstridge, where you can identify and simply reconstruct along a time-frequency ridge.
[fridge,iridge] = wsstridge(sst,10,F,'NumRidges',2);
hold on;
plot(t,fridge,'k','linewidth',2);
You can pass the iridge vector or matrix (matrix here because there are two ridges) to IWSST to simply invert the synchrosqueezed transform along a ridge.
  1 Kommentar
Marc Huber
Marc Huber am 15 Apr. 2016
Bearbeitet: Marc Huber am 18 Apr. 2016
Thank you. I'm not sure if I have understood it right. xrec is the detail and fridge the approximation, right? But I want to do a multilevel 1-D wavelet decomposition (sry didn't say) with wavelet synchrosqueezed transform.
When I do a multilevel 1-D wavelet decomposition I receive the following:
Signal s=a_n+d_1+...+d_n
So, in your case, a_n = fridge and d_1 = xrec (not exactly the same (so the '=' is false if we are precise) but the idea) so that s=fridge+xrec is.
But how can I get more deeper levels like s=fridge_n+xrec_1+...+xrec_n
Is a multilevel 1-D wavelet transform with Wavelet synchrosqueezed transform (here the same, not exactly, but only the idea to multilevel 1-D wavelet transform similar) possible
Thank you very much

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu AI for Signals and Images finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by