Inverse wavelet transform using only one wavelet transform

19 ビュー (過去 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 Center および File ExchangeContinuous Wavelet Transforms についてさらに検索

タグ

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by