zhangxiskd 发表于 2013-3-9 15:09

求disp_hht中函数imagesc(t,[0,0.5],im,[inf,0])的作用

function disp_hhs(varargin)
error(nargchk(1,3,nargin));
fs = 0;
inf = -20;
im = varargin{1};
t = 1:size(im,2);
switch nargin
case 1
    %raf
case 2
    if isscalar(varargin{2})
      inf = varargin{2};
    else
      t = varargin{2};
    end
case 3
    if isvector(varargin{2})
      t = varargin{2};
      inf = varargin{3};
    else
      inf = varargin{2};
      fs = varargin{3};
    end
case 4
    t = varargin{2};
    inf = varargin{3};
    fs = varargin{4};
end
if isempty(inf)
inf = -20;
end
if inf > 0
inf = -inf;
elseif inf == 0
error('inf must be nonzero')
end
M=max(max(im));
warning off
im = 10*log10(im/M);
warning on
figure
if fs == 0
imagesc(t,,im,);
ylabel('normalized frequency')
else
imagesc(t,,im,);
ylabel('frequency')
end
set(gca,'YDir','normal')
xlabel('time')
title('Hilbert-Huang spectrum')

如题中,函数imagesc(t,,im,)的作用,实际意义是什么,各个参数代表什么,我想用此函数绘画出实际信号的真实频率,应该如何操作?求各位大侠解答啊。

yghit08 发表于 2013-3-9 16:46

imagesc是Matlab自带的函数,请查看Matlab的帮助文档。至于想利用这个函数显示出信号的真实频率而不是归一化平率的话,那么这样调用disp_hhs(im,tt/sf,,sf)

=hhspectrum(IMFs);
=toimage(A,f);
sf是采样频率。
另外,这个问题在本板块有过提问,请搜索过板块后再发帖!

cwb 发表于 2014-9-4 19:43

yghit08 发表于 2013-3-9 16:46
imagesc是Matlab自带的函数,请查看Matlab的帮助文档。至于想利用这个函数显示出信号的真实频率而不是归一 ...

您说的hhspectrum和toimage函数的输出tt都是一样的是吧,都是时间序列号。

你的调用和下面的调用效果是一样吗?
=hhspectrum(imf);
=toimage(A,fa,tt,length(tt));

cwb 发表于 2014-9-4 19:56

yghit08 发表于 2013-3-9 16:46
imagesc是Matlab自带的函数,请查看Matlab的帮助文档。至于想利用这个函数显示出信号的真实频率而不是归一 ...

哦。。我看了函数,当toimage的输入参数达到四个的时候输出的2维频谱图像的行数和列数就是由用户指定的了,所以=toimage(A,fa,tt,length(tt));中,length(tt)和tt其实是相等的,都是时间序列的长度而已。。。但是我还是不明白源程序中,默认的行数是是400(频率分辨率)。

cwb 发表于 2014-9-9 11:16

yghit08 发表于 2013-3-9 16:46
imagesc是Matlab自带的函数,请查看Matlab的帮助文档。至于想利用这个函数显示出信号的真实频率而不是归一 ...

中的p是什么意思?
页: [1]
查看完整版本: 求disp_hht中函数imagesc(t,[0,0.5],im,[inf,0])的作用