在matlab的最后和开始的cwt的奇怪行为

时间:2017-05-04 15:41:57

标签: matlab signal-processing wavelet-transform

我在matlab R2016a中经历了连续小波变换(CWT),发现了一些奇怪的东西。当我对构造的信号进行CWT并绘制系数绝对值的对数时,图中显示,在结束时,开始时有非常高的频率,但是如果我将CWT做到更大的间隔,然后限制,然后没有这样的奇怪效果。这是两张图片,说明: strange not strange 在第一个我做CWT到有限的间隔,但在第二个我限制了我做CWT后的情节,这是我的MWE:

Fs=160;
time=1/160:1/160:61;
data=sin(time);
figure;
cfrq=centfrq('morl');
minscl=cfrq*Fs/100;
maxscl=cfrq*Fs;
scales = minscl:maxscl;

cfs = cwt(data,scales,'morl');

colormap(jet);
pfreq = scal2frq(scales,'morl',1/Fs);
contourf(time,pfreq,log(abs(cfs)),'LineStyle','none');
axis tight;
grid on;
xlim([40 50]);
figure;
time=time(40*160:50*160);
data=data(40*160:50*160);

cfs = cwt(data,scales,'morl');

colormap(jet);
pfreq = scal2frq(scales,'morl',1/Fs);
contourf(time,pfreq,log(abs(cfs)),'LineStyle','none');
axis tight;
grid on;

请提前感谢,请帮助解释这种奇怪的效果。

1 个答案:

答案 0 :(得分:0)

正如我的评论中所提到的,该问题与计算FFT(或CWT)时周期性输入信号的假设有关。在您的示例中,开始和结束值完全不同。因此,如果您定期重复信号,从最后一个样本到下一个重复的第一个样本时,您会获得巨大的跳跃。这会导致CWT图像的振幅很大。