The difference between the amplitudes of Fourier transform and wavelet transform

5 views (last 30 days)
Hello! I found unknown to me aspect of the wavelet transform.
I'm doing an analysis of pre-known signal, consisting of two sinusoids, which are in series:
F1 = 10; % The frequency of the first sinusoid (Hz)
F2 = 15; % The frequency of the second sinusoid (Hz)
Signal = sind((F2*360*T).*(T<5)) + sind((F1*360*T).*(T>5));
Then I do Fourier transform:
FftL = 1024;
FftS=abs(fft(Signal,FftL));
FftS=2*FftS./FftL;
FftS(1)=FftS(1)/2;
The frequencies of 10Hz and 15Hz are found correct.
Now I do wavelet transform:
y = cwt (Signal, [1:256], 'morl');
freq = scal2frq (1:256, 'morl', 0.01);
figure
mesh (T,freq,abs(y));
xlabel ('time'); ylabel ('Frequency');
The frequencies of 10Hz and 15Hz are found approximately correct.
Why there are the differences between amplitudes in the Fourier transform and wavelet transform?

Answers (2)

Alex
Alex on 24 Apr 2013
no ideas?
  1 Comment
Igor
Igor on 16 Apr 2014
Alex, since you add pure sinusoids, it is only the Fourier transform that will show you the true magnitudes at exactly the same frequencies that your signal consists of. This is due to the nature of the transform, which has scaled sinusoids as basis functions. By the way, it's not clear to me whether your signal contains 1024 samples. I think it doesn't. Otherwise, you should've seen peaks at 10 and 15 Hz only, with all the other values in the FFT spectrum being zeros (unlike your picture).
None of the wavelets I know (including the one you're using) resembles a pure sinusoid with 100% accuracy, hence rough frequency content estimation. The more the wavelet and a sinusoid are alike, the better the result should be in this case.

Sign in to comment.


Lisa Justin
Lisa Justin on 15 Apr 2014
It depends on the window function used.

Community Treasure Hunt

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

Start Hunting!