杰张 发表于 2013-9-26 15:03

瞬时频率出现负值怎么处理?各位大侠跪求解答。

小鱼在水里 发表于 2013-12-4 16:42

泥尘如故 发表于 2013-3-18 11:52 static/image/common/back.gif
我刚把我用的程序传上去了,,有3个图显示不出来啊,,,总共6个图,程序只画出了3个,,求指教

我也遇到了这样的问题,有图出不来。请问前辈的问题解决了吗?怎么解决的?求指教

forrestgang 发表于 2014-6-22 11:50

好东西。。。。

airazor 发表于 2014-6-29 16:20

yghit08 发表于 2013-3-20 16:14
黄的PPT我没看过,你是说要蓝色背景的还是白色背景的?白色背景的不知道,蓝色背景的你去掉代码中控制 ...

我照你的程序去做,使用了你的disp_hht没问题,但是图的右边没有数值条,怎样改才能加一个?

yghit08 发表于 2014-6-29 23:50

airazor 发表于 2014-6-29 16:20
我照你的程序去做,使用了你的disp_hht没问题,但是图的右边没有数值条,怎样改才能加一个?

这是Matlab的使用熟悉的问题,在出图后点击第一行那个五颜六色的小方块就好了

cwb 发表于 2014-9-1 17:17

能不能把完成的画边际谱的程序贴出来呀,谢谢啦!愁死了都,下载的程序运行之后提示错误“>> plot(f,bjp);
??? Error using ==> plot
Vectors must be the same lengths.”
一看,f和bjp的长度还真不一样!我怀疑是toimage的问题,但是又看不明白这个函数是干啥的,真纠结!

cwb 发表于 2014-9-4 10:08

yghit08 发表于 2013-3-20 17:53
见附件!

您好,您看我下载的disp_hhs程序对吗:
%DISP_HHSdisplay Hilbert-Huang spectrum
%
% DISP_HHS(im,t,inf)
% displays in a new figure the spectrum contained in matrix "im"
% (amplitudes in dB).
%
% inputs:- im: image matrix (e.g., output of "toimage")
%          - t (optional): time instants (e.g., output of "toimage")
%          - inf (optional): -dynamic range in dB (wrt max)
%            default: inf = -20
%          - fs: sampling frequency
%
% use:disp_hhs(im) ; disp_hhs(im,t) ; disp_hhs(im,inf)
%       disp_hhs(im,t,inf) ; disp_hhs(im,inf,fs) ; disp_hhs(im,[],fs)
%       disp_hhs(im,t,[],fs) ; disp_hhs(im,t,inf,fs)
%
%
% See also
%emd, hhspectrum, toimage
%
% G. Rilling, last modification 3.2007
% gabriel.rilling@ens-lyon.fr

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')

谢谢啦!

cwb 发表于 2014-9-4 10:18

yghit08 发表于 2013-3-20 16:14
黄的PPT我没看过,你是说要蓝色背景的还是白色背景的?白色背景的不知道,蓝色背景的你去掉代码中控制 ...

这样对吗,disp_hhs的参数个数不一样,出来的图也不一样。。。可能是我的disp_hhs不对吧,我的disp_hhs函数是下面这样,
%DISP_HHSdisplay Hilbert-Huang spectrum
%
% DISP_HHS(im,t,inf)
% displays in a new figure the spectrum contained in matrix "im"
% (amplitudes in dB).
%
% inputs:- im: image matrix (e.g., output of "toimage")
%          - t (optional): time instants (e.g., output of "toimage")
%          - inf (optional): -dynamic range in dB (wrt max)
%            default: inf = -20
%          - fs: sampling frequency
%
% use:disp_hhs(im) ; disp_hhs(im,t) ; disp_hhs(im,inf)
%       disp_hhs(im,t,inf) ; disp_hhs(im,inf,fs) ; disp_hhs(im,[],fs)
%       disp_hhs(im,t,[],fs) ; disp_hhs(im,t,inf,fs)
%
%
% See also
%emd, hhspectrum, toimage
%
% G. Rilling, last modification 3.2007
% gabriel.rilling@ens-lyon.fr

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')

airazor 发表于 2014-9-27 11:50

yghit08 发表于 2014-6-29 23:50
这是Matlab的使用熟悉的问题,在出图后点击第一行那个五颜六色的小方块就好了

谢谢你,我知道了,后面加一句colorbar就好了

binglanyouyou 发表于 2014-10-15 21:06

cwb 发表于 2014-9-1 17:17
能不能把完成的画边际谱的程序贴出来呀,谢谢啦!愁死了都,下载的程序运行之后提示错误“>> plot(f,bjp);
...

我也遇到这个问题 请问 您解决了吗 怎么解决的 望指教啊{:{21}:}

cwb 发表于 2014-10-16 10:06

本帖最后由 cwb 于 2014-10-16 10:07 编辑

binglanyouyou 发表于 2014-10-15 21:06
我也遇到这个问题 请问 您解决了吗 怎么解决的 望指教啊
f的长度必须和bjp一样,你看下你f的长度是不是和bjp的长度不相等?估计长度是大1或者2,其实如果你只想看bjp的形状的话也可以不用f做横轴呀,直接plot(bjp);就ok了。

binglanyouyou 发表于 2014-10-16 11:35

cwb 发表于 2014-10-16 10:06
f的长度必须和bjp一样,你看下你f的长度是不是和bjp的长度不相等?估计长度是大1或者2,其实如果你只想看 ...

我在用仿真信号的时候,得出的f和bip长度是一样的,但是用实测信号就会遇到各种问题,出现长度不一样的问题,在用disp_hhs话hilbert谱的时候,出现out of mermory问题,楼上遇到过吗?

cwb 发表于 2014-10-16 15:16

binglanyouyou 发表于 2014-10-16 11:35
我在用仿真信号的时候,得出的f和bip长度是一样的,但是用实测信号就会遇到各种问题,出现长度不一样的问 ...

是的,也会出现out of memory的问题,而且还有点随机性,也就是并不是总是出这个错,而是有时候还是能画出来的。其实从调用toiamge的时候就会碰到这种问题,如果你采用默认的参数个数(toimage(A,f)的话就不会出错,但是这样调用输出的im矩阵的行数是默认的400行,可能不满足你的精度要求。
换一台内存大点的电脑试试吧,应该可以解决这个溢出的问题。

binglanyouyou 发表于 2014-10-18 17:12

cwb 发表于 2014-10-16 15:16
是的,也会出现out of memory的问题,而且还有点随机性,也就是并不是总是出这个错,而是有时候还是能画 ...

我的程序一直出现错误,用的是论坛贴出来的程序,能否把您的程序贴出来参考一下。

iwecabt 发表于 2014-10-19 05:06

谢谢分享!!











http://qxycqr.com/sitemap.html   http://www.ylmba.com/   http://3gxh.net/
页: 1 [2] 3
查看完整版本: 在求HHT时频谱和边际谱中toimage和meshgrid问题