Wavelets: how to determine scales from frequencies?
<p>In the following code sample, I would expect the rows of the printed output to match each other, at least approximately. But they don't.</p>

<pre><code>% input data
y  = rand(10000,1); 
dt = 1/500; % 500Hz is the sampling rate


% wavelet transform
f  = 1:50;                    % frequencies at which to perform WT
s  = scal2frq(f,'morl',dt);   % corresponding scales estimates
wt = cwtft( y, 'wavelet', 'morl', 'scales', s );

[ f; wt.frequencies/dt ]
</code></pre>

<p>I am trying to use the continuous wavelet transform in Matlab, and I want to perform the transform at different <em>frequencies</em> in my input signal, but I am struggling to find a reliable way for estimating the corresponding <em>scales</em>.</p>

<p>In that code sample, I am using <code>scal2freq</code> to estimate those scales (knowing that it is involutory, ie that <code>scal2frq(scal2frq(x,'morl',dt),'morl',dt) == x</code> up to numerical precision for all <code>x, dt</code>), but then I would expect that the frequency estimates returned by <code>cwtft</code> would be similar. As you can see, they are not.</p>

<p>Does anyone know how <code>cwtft</code> estimates these frequencies, and whether I can use the reverse estimate to predict the required scales?</p>