Inverse wavelet transform using only one wavelet transform

조회 수: 9 (최근 30일)
jian zhou
jian zhou 2023년 3월 31일
댓글: jian zhou 2023년 4월 5일
I used the code below to conduct cwt on signal first. Then, pick one cwt coefficient to reconstruct the signal, i.e., Re_signal using icwt.
In my understanding, the reconstructed Re_signal should be in the form of a wavelet. But the results turned out that the Re_signal equals to zero other than the specific time point.
Can anyone help me with this question?
Thank you a lot.
signal = rand(1,3000);
cwt_coef = cwt(signal);
icwt_coef = cwt_coef.*0;
icwt_coef(5,500) = cwt_coef(5,500);
Re_signal = icwt(icwt_coef);
plot(Re_signal)
  댓글 수: 4
Daniel
Daniel 2023년 4월 4일
TL;DR version: If you're looking for information on the mother wavelet, this might be of more interest than trying to construct it via synthetic CWT coefficients. Morse Wavelets - MATLAB & Simulink (mathworks.com)
With the huge caveat that my experience in wavelets is not that high, especially with the continuous variety, I don't think comparing the Fourier transform to the wavelet transform is entirely fair. They fulfill different purposes, since a Fourier transform is a one-dimensional representation of a one-dimensional input time signal, whereas the wavelet transform is a two-dimensional time-frequency representation of a one-dimensional input time signal.
Every Fourier coefficient in the DFT is orthogonal. So they'll have an independent effect. I'm not sure if this is true of MATLAB's continuous-time wavelet transform. It's true of the discrete-time version because the scaling was chosen to produce orthogonal coefficients. But for the discrete-time transform, if you plot row 87 you'll find the signal varying much more slowly than in row 1. So row 87 is being oversampled.
Because of that oversampling, I don't think you can, in general, produce a single nonzero coefficient in the (sampled, underlying-continuous, numerically approximated) cwt coefficients and have it be a valid cwt. So whatever numerical methods MATLAB is running to recover time data from a (valid, largely oversampled, intrinsically correlated) cwt coefficient set isn't likely to produce valid output on a single nonzero coefficient, because the cwt outputs aren't all orthogonal.
I apologize for the vague language. Again, it's been a while since I've delved into this level of theory. It's an area of interest, but wavelets are so special-use-case that it's not that easy to find an application that lets me play with them enough to develop expertise.
jian zhou
jian zhou 2023년 4월 5일
Thank you for your nice explanation.
The goal for me is to try to figure out the geometric meaning of each wavelet coefficient.
> - if you plot row 87 you'll find the signal varying much more slowly than in row 1. So row 87 is being oversampled.
I don't agree with you that its oversampled, I think it's just the low frequency component.
Please have a check with the attached figure explaning CWT.
It can be seen that if I use only one wavelet coefficient to conduct the inverse wavelet transform,
x(t) = the picked wavelet coefficient times the scaled and shifted motherwavelet.
so x(t) should be in a form of wavelet.
Thank you again for your information.
Hope to talk with you further.

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

답변 (1개)

Bruno Luong
Bruno Luong 2023년 4월 4일
편집: Bruno Luong 2023년 4월 4일
I guess because you feed in random data, the scale cannot by estimate correctly therefore the first level of the scale (and also the fith) is too small and the motherwavelet is scaled to less than one sample.
Try signal that contains meaningful information content.
What disturb me is icwt accepts array of coefficients as input and nothing else. I don't know how it can figure out the absolute scale factor related to time sample rate.
Note that I knows a little to wavelet theory but I don't own the toolbox license and never pratice it.
  댓글 수: 1
jian zhou
jian zhou 2023년 4월 4일
Thank you for your answer.
I am not using the dwt, but using the cwt. The function to obtain the wavelet coeffiecient is below:
Hope to talk to you further

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

카테고리

Help CenterFile Exchange에서 Continuous Wavelet Transforms에 대해 자세히 알아보기

태그

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by