laughing 发表于 2008-11-23 00:52

toimage执行错误,搜遍论坛找不到答案,有类似问题的学友很多!

= hhspectrum(imf);
= toimage(A,f,tt,length(tt));
disp_hhs(E,[],fs);

??? Error using ==> unknown
Out of memory. Type HELP MEMORY for your options.
Error in ==> log10 at 20
y = log2(x);
Error in ==> disp_hhs at 67
im = 10*log10(im/M);


请问高人究竟怎么解决,这非常重要!
别告诉我用下面语句代替:
= hhspectrum(imf(1:end-1,:));
= toimage(A,f,tt);
disp_hhs(E,[],fs);

这两种语句画出的图差别很大!!细心的学友应该有类似经验!
比如分析下列的非常简单的信号(论坛里一网友提供的):
fs=1000;
tspan=1;
t=1/fs:1/fs:tspan;
N=1000;
x2=sin(2*25*pi*t)+5*sin(2*75*pi*t);
xn=x2;
如果分别用上面两套画hhs的语句作图,会发现差别巨大。随之作出的边际谱图形也是差别很大。

也别告诉我计算机内存不够、数据太长溢出什么的,我选取了6000点数据,应该属于小儿科范围!


请真正懂的兄弟点拨小弟一下!先谢过了:)

[ 本帖最后由 laughing 于 2008-11-23 11:29 编辑 ]

civil1314 发表于 2008-11-28 20:58

能不能把你的图粘贴上来看看

把你计算结果图片发上来看看。
还有你的数据上传一下。

baobao1982 发表于 2008-12-2 10:24

用你的例子我演示了一下
如下图

他们的区别就是前者多了一条25Hz的线
那是因为前者的HHT谱是画出了所有的IMF分量, = hhspectrum(imf);
而后者的HHT谱,画出了除最后一条IMF分量的所有分量, = hhspectrum(imf(1:end-1,:));

楼主,你的程序不一样,画出的图当然不一样了,还有其他大的区别吗

laughing 发表于 2008-12-3 11:19

哈哈,谢谢baobao点拨,明白了:)
页: [1]
查看完整版本: toimage执行错误,搜遍论坛找不到答案,有类似问题的学友很多!