马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我用小波提取信号的某几个频率成分。
编的程序如下:
clc
clear all
fs=1000; %程序测试原始数据
t=0:1/fs:(1-1/fs);
s=2*cos(2*pi*40*t)+2*cos(2*pi*100*t)+2*cos(2*pi*200*t)+2*cos(2*pi*250*t);
wavename='cmor50-3';
scal=1:0.1:50;
coefs=cwt(s,scal,wavename);
f=scal2frq(scal,wavename,1/fs); %将尺度转换为频率
imagesc(t,scal,abs(coefs)); %绘制色谱图
colormap(jet);
xlabel('Time/Space(s)');
ylabel('Scale');
title('wavelet-transform time-frequency plane');
时间-尺度图为第一个图:
现在我的问题是:
根据
f=scal2frq(scal,wavename,1/fs); 所求的频率成分是正确的, 即 40 100 200 250;
如第一个图所示,画的尺度--时间图也是正确的,4条尺度线是对的;
但是用 imagesc(t,f,abs(coefs));
画时间-频率时就错了,如第二个图,不是我想要的 40 100 200 250这4条线;
恳请各位大虾帮忙解决这个问题,多谢!
|