MATLAB Answers

Wavelet synchrosqueezed transform decomposition

조회 수: 28(최근 30일)
Marc Huber
Marc Huber 15 Apr 2016
Edited: Marc Huber 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

  댓글 수: 0

로그인 to comment.

채택된 답변

Wayne King
Wayne King 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.

  댓글 수: 0

로그인 to comment.

More Answers (1)

Wayne King
Wayne King 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

Marc Huber
Marc Huber 15 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

로그인 to comment.

이 질문에 답변하려면 로그인을(를) 수행하십시오.


Translated by