弱弱的问一个关于函数tfrscalo的问题
看过原来zhlong大侠写的关于做小波时频谱的帖子,自己根据一篇论文上的例子试着自己用小波时频谱分析了一个仿真信号,但感觉不太对,不知为什么?以下是程序:
N=1000;
fs=1000;
t=1/fs:1/fs:N/fs;
x=cos(2*pi*20*t)+2*cos(2*pi*60*t+0.5*sin(30*pi*t))+2.5*cos(2*pi*120*t);
=tfrscalo(hilbert(x'));
imagesc(t/fs,(f(1:N)*fs),tfr(1:N,:));
set(gca,'YDir','normal');colorbar;title('小波时频图');
频率应该在20Hz,60Hz(伴有调制成分),120Hz,但结果却是在50、100、140.
还有不知为什么没有相应的时频菜单显示,请教各位,谢谢! =tfrscalo(hilbert(x'));
imagesc(t/fs,(f(1:N)*fs),tfr(1:N,:));
set(gca,'YDir','normal');colorbar;title('小波时频图');
不要上面的,直接tfrscalo(hilbert(x'));试试! “还有不知为什么没有相应的时频菜单显示”
我只能回答你一个问题
When called without output arguments, TFRSCALO runs TFRQVIEW.
也就是说直接 tfrscalo(hilbert(x'))
才能显示时频菜单
另一个,我也不懂了
谢谢zhlong,再次求助
不要上面的,直接tfrscalo(hilbert(x'));试试!采用zhlong说的办法,确实能得到正确的结果(感觉上),结果如下图所示。但不知道原因,恳请能否解释一下,谢谢!! 关注…… 关注中,我也需要请教 向大家求教:
我用superlu的一段程序:
N=1000;
fs=1000;
t=1/fs:1/fs:N/fs;
x=cos(2*pi*20*t)+2*cos(2*pi*60*t+0.5*sin(30*pi*t))+2.5*cos(2*pi*120*t);
=tfrscalo(hilbert(x'));
imagesc(t/fs,(f(1:N)*fs),tfr(1:N,:));
set(gca,'YDir','normal');colorbar;title('小波时频图');
在自己的matlab里运行,为什么出现如下的错误啊?
Undefined function or method 'tfrscalo' for input arguments of type 'double'.
是不是我的函数库里没有'tfrscalo'这个函数?
页:
[1]