MATLAB: How to calculate the peak frequency for Morse Wavelets

MATLABmorse waveletpeak frequencyWavelet Toolbox

I'm using Matlab 2019a and specifically the wavelet toolbox. My goal is to transform the frequency output f from the cwt function for a morse wavelet (parametrized by gamma and beta) back to the wavelet scale, often defined as a variable s. In the paper "Higher order properties of analytic wavelets" by Jonathan M. Lilly et al. (2009) it's indicated, that the transform from frequency to scale can be done with the central or peak frequency of the wavelet f_c, i.e. s= f c/ f. The central frequency is defined as (beta/gamma)^(1/gamma) (cf. Lilly 2009). The documentation of the wavelet toolbox (Wavelet Toolbox™User's Guide R2019a, p 2-21 and 2-22) uses now the time-bandwidth product P^2 := beta*gamma instead of the beta parameter. On page 2-22 it's written, that the peak frequency f_c can be calculated by the following formula: f_c = (P^2/gamma)^(1/gamma) == (beta)^(1/gamma). This equation is in conflict with Lilly's equation. Shouldn't it be f_c = (P^2/gamma^2)^(1/gamma)?
Lilly, J. M., and S. C. Olhede. “Higher-order properties of analytic wavelets.” IEEE Transactions on Signal Processing, Vol. 57, No. 1, 2009, pp. 146-160.

Best Answer

It seems that there is a mistake in the documentation only, since in the MATLAB's morsepeakfreq function, the peak frequency is defined as:
peakAF = exp(1/ga*(log(be)-log(ga)));
which is in agreeement with Lilly's equation.