杰张
发表于 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/