How to properly multiply the Wavelet transform of a signal by a function of frequency and then reconstruct the signal?

1 次查看(过去 30 天)
Hi everyone! So, I have been struggling with this for a few days.. I am not an expert on signal processing, but I am using it as a tool for an analysis, so I'm a bit unsure.
I have a signal x(t) and a function t(f), where f are the frequencies present in my spectrum. I need to multiply y(f) for the amplitudes of x(t) corresponding to f for each time stamp I have. So I have tried a few things:
% a. Obtain CWT of signal;
% fs = sampling frequency
[wt, f] = cwt(x,fs,'amor');
% b. Obtain the value of t(f) for each f from my spectrogram
for i = 1:length(f);
y(i) = Y*f;
end
% c. Multiply t(f) for wt for each time stamp
y = y';
wt_2 = [];
for i = 1:length(wt)
wt_2(:,i) = y.*wt(:,i);
end
% d. Reconstruct the multiplied transform wt_2
x_2 = icwt(wt_2,'amor','SignalMean',nanmean(x));
However, this ends up giving me an underestimated result. Should I make any changes to t(f) when performing step c? I have tried
abs(t(f))^2
but that underestimates my results even more as t(f) < 1.
2.
% a. Obtain CWT of signal;
% fs = sampling frequency
[wt, f] = cwt(x,fs,'amor');
% b. Obtain the value of t(f) for each f from my spectrogram
for i = 1:length(f);
y(i) = Y*f;
end
% c. Multiply t(f) for wt for each time stamp
y = y';
wt_2 = [];
for i = 1:length(wt)
wt_2(:,i) = y.*wt(:,i);
end
% d. Sum the real part of the transform for all the frequency bands in each time stamp.
x_2 = nansum(real(wt_2));
This second method gives me more reasonable results. However, I am not sure this is mathematically correct. I feel like this ignores scaling, but I am not sure how to overcome this.
When I plot cwt(x,fs,'amor');, the magnitude that shows up is not the amplitude of my signal at that given frequency, right? It is the transform coefficients?
Many thanks! :)

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Continuous Wavelet Transforms 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by