Wavelet synchrosqueezed transform decomposition

조회 수: 4 (최근 30일)
Marc Huber
Marc Huber 2016년 4월 15일
편집: Marc Huber 2016년 4월 18일
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

채택된 답변

Wayne King
Wayne King 2016년 4월 15일
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.

추가 답변 (1개)

Wayne King
Wayne King 2016년 4월 15일
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 2016년 4월 15일
편집: Marc Huber 2016년 4월 18일
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

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 AI for Signals and Images에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by