xiaoxiong702 发表于 2009-6-20 12:04

请教画hht谱的程序中看不懂的几句

我用Rilling的程序,画边际谱或者hht谱。求完瞬时频率和瞬时幅值后要用toimage函数把一维转换成二维图输出,此函数的最后几句看不懂,请大侠指点。如下:
   indf = round(2*f*(sply-1)+1);
   indt = repmat(round(linspace(1,length(t),splx)),size(A,1),1);
   im = accumarray(,A(:),);
   indt = indt(1,:);
   tt = t(indt);
   ff = (0:sply-1)*0.5/sply+1/(4*sply);

qishiaq 发表于 2009-6-20 17:32

这段代码中核心是accumarray函数
楼主可以仔细看看这个函数的matlab说明文档。这和黄的程序中的这段代码实现的功能是一样的
h1=zeros(npt-1,nyy+1);
p=round(nyy*(omg-wmn)/dw)+1;
for j1=1:npt-1
   for i1=1:knb
      ii1=p(j1,i1);
      h1(j1,ii1)=h1(j1,ii1)+a(j1,i1);
   end
end
主要是按照频率大小将相应的振幅放到相应的矩阵的元素之中,实现hilbert 谱。

xiaoxiong702 发表于 2009-6-20 19:39

回复 沙发 qishiaq 的帖子

多谢指点,之前看了accumarray函数的帮助说明,还是不太清楚才求助的。请问huang的程序和rilling 的程序有什么不同嘛?可以把整个程序都发给我看看不?多谢,我邮箱xiaoxiong702@126.com。

xiaoxiong702 发表于 2009-6-22 18:05

回复 沙发 qishiaq 的帖子

现在把每句语言都搞明白了,但是又有新的问题想请教。accumarray(,A(:)]已经可以把不同时间不同频率的瞬时幅值找到了,为什么还要把它复制成sply行,splx列呢。
页: [1]
查看完整版本: 请教画hht谱的程序中看不懂的几句