Increasing Frequency Resolution of CWT

조회 수: 9 (최근 30일)
Kevin
Kevin 2011년 7월 13일
댓글: Naveen Kumar Pothapakula 2023년 11월 14일
I am using the cwt function in MATLAB's wavelet toolbox to compute the power spectrum of a signal. I am using the complex Morlet wavelet ('cmor') and my scales are 15:45. The results I currently get have excellent temporal resolution, but poor frequency resolution. I would like to sacrifice some temporal resolution to improve the frequency resolution. As I understand it, the way to do this is to use a wider wavelet, corresponding to an increased sigma, or standard deviation, value of the wavelet. Is there any way to adjust the sigma value used for the transform?
  댓글 수: 1
Kevin
Kevin 2011년 7월 14일
To elaborate, I've determined that the wavefun.m is the function within the toolbox that generates the wavelet:
[out1,out2] = feval(fname,lb,ub,np,wname);
The 5 input arguments are defined earlier in the function as follows:
fname = morlet
lb = -8
ub = 8
np = 1024
wname = morl
However, I don't know how the feval command works to generate the 1024 wavelet coefficients, or how to modify it to increase the sigma value. The feval command is used to execute a function within another m-file, but the 5 arguments are all variables. There is no function called.

댓글을 달려면 로그인하십시오.

채택된 답변

Kevin
Kevin 2011년 7월 15일
The problem was solved by creating a new wavelet and adding it to the package of wavelets in the toolbox. The original Morlet wavelet is coded in the toolbox as out1 = exp(-(out2.^2)/2) .* cos(5*out2); where out2 is the domain of points at which to evaluate the wavelet between the upper and lower bounds, and out1 is a vector of wavelet y values. The number of oscillations of the wavelet, controlled by the standard deviation, can be changed by adding a scaling factor to out2. A scaling factor >1 will produce a taller wavelet with the same number of oscillations, while a factor <1 will produce a wavelet with more oscillations, thereby decreasing temporal resolution of the wavelet transform and increasing frequency resolution. For example, out1 = exp(-((out2*0.2).^2)/2) .* cos(5*out2) produces a wavelet with many more oscillations than the original Morlet wavelet, shown by plotting out1 vs. out2.
This new wavelet can be added to the toolbox using wavemngr: wavemngr('add',FN,FSN,WT,NUMS,FILE,B)
See the wavemngr documentation for further instruction on adding the new wavelet.
  댓글 수: 1
Naveen Kumar Pothapakula
Naveen Kumar Pothapakula 2023년 11월 14일
Hello Kevin, Can you elaborate on the process of modifying the existing morlet wavelet function and adding it as new wavelet to the tool box.? is it possible to increase the frequency resolution by sacrificing the time resolution completely? I was thinking, what does the time support UB and LB indicates and can we increase it?
Thanks in Advance

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Continuous Wavelet Transforms에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by