li_1025tian 发表于 2008-11-20 19:30

边际谱问题

= wavread('normal.wav');
z=Y(10000:25000);
N=length(z);
imf_a=emd(z,1:length(z));
= hhspectrum(imf_a);
=toimage(A,fa,tt,length(tt));
E=flipud(E);
for k=1:size(E,1)
    bjp(k)=sum(E(k,:))*1/fs;
end
f=(0:N-3)/N*(fs/2);    %用hhspectrum求瞬时频率和瞬时幅值后,就少了两个数据所以N-3
plot(f,bjp);
xlabel('频率 / Hz');
ylabel('幅值');%边际谱

提示错误为:??? Out of memory. Type HELP MEMORY for your options.
Error in ==> E:\智能信息处理\心音处理HHT\hhtmai\toimage.m
On line 62==> im(splx,sply) = 0;

我知道错误在=toimage(A,fa,tt,length(tt));是因为我的数据太大(15000)才那样.如果这样我给怎么办呢?
我在法国人代码有求边际谱是
psd=hhmspectrum_new(A,fa,200);
disp_hhms_new(psd,200);
但是出来的结果有是错的.(我有两个频率,但出来一个)

li_1025tian 发表于 2008-11-20 19:31

麻烦大家帮我看看 谢谢

laughing 发表于 2008-11-24 22:42

是啊!我跟楼主的问题很相似。楼主,你如果把HHS的语句改为:
= hhspectrum(imf(1:end-1,:));
= toimage(A,f,tt);
disp_hhs(E,[],fs);
就可以执行了。为什么?难道没有大牛来回答吗?
对于有的信号,两套语句都可以执行,但作出的图差别很大。
另外,用=toimage(A,fa,tt,length(tt));求出的E,其行数目和列数目相同,与 = toimage(A,f,tt);也不一样。
谁能回答啊?感激ing

li_1025tian 发表于 2008-11-25 21:22

好几天了也没高手来看看啊!:'(
在论坛上大多数信号就是那些正弦 余弦等叠加.数据也比较少
如果我数据多,就碰到上述问题.

li_1025tian 发表于 2008-12-4 15:54

斑竹帮我看看啊
页: [1]
查看完整版本: 边际谱问题