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
답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Continuous Wavelet Transforms에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!