江树空 发表于 2013-10-17 21:18
你先在workspace里看你t、f的维度,再看看coefs的维度,看是否一致?要别人帮忙查看的话,最好能贴出你完 ...
内个,有点不好意思了,维度是什么,不知道怎么看,如果不一样应该怎么办呢,错误提示的意思好像就是维度不一样,非常感谢您的指导,我信号采样频率是1250Hz,信号的频率在1~6Hz,尺度的设定的确有待继续摸索,(不过循序渐进吧,先能确定小波用于自己信号分析能替代FFT,并且有时间信息)下面是我的整段程序
load 'lasuxiajiang.txt';
t1=lasuxiajiang(:,1);
y1=lasuxiajiang(:,2);
fs=1250;
t=16:1/fs:26;
figure(1);
plot(t1,y1);
xlabel('t');ylabel('MDF');
title('original')
wavename='cmor3-3'; %建议使用complex morlet小波(cmor后的系数3-3得根据实际情况设置,看matlab help),最好是根据具体信号选择合适的母小波函数,个人经验使用该小波函数做出的时频图比较好
totalscal=128; %尺度序列的长度,即scal的长度,尺度数不要太大,过大的话计算时间长,虽说频率划分的更细,但没那个必要
wcf=centfrq(wavename); %小波的中心频率
cparam=2*wcf*totalscal; %为得到合适的尺度所求出的参数
a=totalscal:-1:1;
scal=cparam./a; %得到各个尺度,以使转换得到频率序列为等差序列
coefs=cwt(y1,scal,wavename); %得到小波系数
f=scal2frq(scal,wavename,1/fs); %将尺度转换为频率
figure(2);
surf(t,f,abs(coefs)); %绘制色谱图(建议使用surf函数,因为使用它,能在时频面上查看每个点的数值,imagesc则不具备该特点)
shading interp请大神查看错误
|