小波:如何根据频率确定尺度?
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 中)。
在下面的代码示例中,我希望打印输出的行彼此匹配,至少大致匹配。但他们没有。
% 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 中)。