How to reconstruct original signal from continuous wavelet coefficients

5 visualizaciones (últimos 30 días)
Hai Tran
Hai Tran el 11 de Jun. de 2016
Comentada: Hai Tran el 14 de Jun. de 2016
Dear all, After using CWT (signal,3:10,'haar'), i got one matrix with CWT coefficients with scale from 3 to 8. I still do not understand 2 bellow problems: 1. How can i reconstruct signal from each scale? 2. in CWT (signal,3:10,'haar'), haar at scale 3 is [1/sqrt(2^3 1/sqrt(2^3 -1/sqrt(2^3 -1/sqrt(2^3] ? Thank you so much

Respuestas (1)

Wayne King
Wayne King el 13 de Jun. de 2016
Dear Hai, I would first ask. Are you sure you need the CWT here and not the MODWT? The MODWT is limited to dyadic scales (that is a limitation as opposed to CWT), but it has the property that it allows for perfect reconstruction (perfect inversion) and it allows you to obtain a reconstruction (projection) of the signal onto each scale with MODWTMRA.
The MODWT and associated functionality work with orthogonal wavelets -- the Haar is one such wavelet.
For example:
load wecg; % load ecg signal
dt = 1/180; % data sampled at 180 Hz
t = 0:dt:(length(wecg)*dt)-dt;
wtecg = modwt(wecg,3,'haar'); % obtain the MODWT at three levels of resolution -- scales, 2,4,8
ecgmra = modwtmra(wtecg,'haar');
subplot(5,1,1);
plot(t,wecg); title('Original Data');
for kk = 1:size(ecgmra,1)
subplot(5,1,kk+1)
plot(t,ecgmra(kk,:));
end
The top plot is the original signal, the first plot is the projection onto the wavelet (detail) subspace corresponding to a scale of 2 (the highest resolution or shortest scale), the next is the projection onto the wavelet subspace of scale 4, and finally the last row is the projection onto the scaling (lowpass) space at scale 2^3=8
If you sum the rows of ecgmra (summing the MODWT MRA at each time point), you will get back the original signal.
figure;
ts = sum(ecgmra,1);
plot(t,[wecg ts'])
grid on;
  1 comentario
Hai Tran
Hai Tran el 14 de Jun. de 2016
Dear Dr.Wayne King, First, I am very much appreciated your answer. Because, now my analysis has some problem with WAVEDEC, and MODWT but I still do not know exactly where is it wrong? So, I just try to use CWT, that is a reason why i asked you. Okay, I will consider to your advice and check my code again. Regards, Hai

Iniciar sesión para comentar.

Categorías

Más información sobre Discrete Multiresolution Analysis en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by