小波:如何根据频率确定尺度?

Wavelets: how to determine scales from frequencies?

在下面的代码示例中,我希望打印输出的行彼此匹配,至少大致匹配。但他们没有。

% 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 ]

我正在尝试在 Matlab 中使用连续小波变换,我想在我的输入信号中以不同的 频率 执行变换,但我正在努力寻找可靠的方法估计相应的 scales.

的方法

在该代码示例中,我使用 scal2freq 来估计这些尺度(知道它是合合的,即 scal2frq(scal2frq(x,'morl',dt),'morl',dt) == x 达到所有 x, dt 的数值精度),但是那么我希望 cwtft 返回的频率估计值是相似的。如您所见,它们不是。

有谁知道cwtft如何估计这些频率,我是否可以使用反向估计来预测所需的尺度?

Morlet 小波的频率和尺度之间的对应关系是 scale = 6 / (2*pi * frequency*dt)(其中 frequency*dt 在 cycles/unit 中)。