lcy1989 发表于 2012-4-18 20:30

一个比较方便进行HHT的软件,不敢独享,故来向大家分享。bing

本帖最后由 lcy1989 于 2012-4-19 00:36 编辑

软件名是:Visual Signal 是一个台湾公司的,可以去官网申请正版一个月试用,过程比较麻烦。而且其中提交申请的网站由于是繁体字的关系,需要自己改变一下网页编码才能正确显示,而且填写的内容最好都是中文!!

顺便我也问一个关于HHT流程的问题:
1、数据进行EMD分解,得到IMF;
2、对每个IMF进行Hilbert变换;
3、然后呢???
怎么得到Hilbert谱??

最后,我附上一个我用到的数据,为txt格式。第一列是时间,第二列是转矩信号。
我用Visual Signal软件分析的Hilbert谱结果如下,希望有会用matlab分析的朋友,用你的方法分析一遍,看我的结果是不是对的,从而可以证明我在Visual Signal进行的流程是对的。
万分

lcy1989 发表于 2012-4-19 00:23

怎么不能上传txt附件啊?

梦泉 发表于 2012-4-19 10:21

第一张图是用论坛下载的EMD、hhspectrum、toimage、disp_hhs来生成Hilbert谱,第二张图是用诸福磊等编写《机械故障诊断中的现代信号处理方法》中介绍的matlab程序生成的于Hilbert谱,第二张图跟你的差不多。
第二张Hilbert谱生成的源程序粘贴到下面这个帖子的回复中,你可以参考一下:http://forum.vibunion.com/forum.php?mod=viewthread&tid=110925&page=1#pid625753


lcy1989 发表于 2012-4-24 16:39

回复 3 # 梦泉 的帖子

太感谢了我用matlab还没成功画出来过
谢谢

yghit08 发表于 2012-4-24 20:58

回复 1 # lcy1989 的帖子

然后利用做Hilbert谱(当然在HHT工具箱里提供的hhtspecturm.m这个函数内部做了对IMF的Hilbert变换):做Hilbert谱的过程是这样的,通过Hilber变换将信号转换成分析信号,然后分解信号的幅值和角度,利用求解瞬时频率的.m文件求解角度的导数(亦即瞬时频率)。注意这里求出来的瞬时频率是归一化的,因为调用时频工具箱中求解瞬时频率的函数是时间项变了(有1/采样频率变成了1)。接着就是利用提取出来的频率和幅值做成三维显示(横坐标时间,纵坐标频率,颜色深浅显示幅值大小)这就是所谓的Hilbert谱。

梦泉 发表于 2012-4-24 22:20

回复 4 # lcy1989 的帖子

:@)不客气,一起交流学习。

lcy1989 发表于 2012-5-8 09:23

回复 5 # yghit08 的帖子

谢谢很详细的回答

rogen 发表于 2012-5-27 22:02

我一直在自问,我们用HHT分析信号,想得到什么?也就是我们的目的是什么?

rohui 发表于 2012-5-28 10:55

软件呢,楼主上传一个吧

daxue123 发表于 2012-7-19 06:35

大家学习劲头好足呀,这个论坛太好了。

kangyan139 发表于 2012-7-25 11:45

??? Out of memory. Type HELP MEMORY for your options.

Error in ==> plot_hht_3d at 23
Spectrum=zeros(numfreq,n);

怎么解决 out of memory?

kangyan139 发表于 2012-7-25 12:01


图为希尔伯特普和边际谱,你的采样率是1K吗?我也不知道对不。高手看下!

kangyan139 发表于 2012-7-25 15:44

楼主还在否?那个Visual signal的下载页面进不去啊。

lxz2011 发表于 2012-8-7 14:16

很强大,虚心学习

vera吧噗 发表于 2012-8-15 10:08

回复 5 # yghit08 的帖子

不知道你这个回复里提到的“求出来的瞬时频率是归一化的”指的是用hhspectrum.m求instantaneous amplitudes 和 instantaneous frequencies过程中调用的instfreq.m函数吗?

我的instfreq.m用的是论坛一个帖子给出的程序,如下,不知和你是不是一个程序。
PS.请教一下为什么要进行归一化,有没有不进行归一化的instfreq程序呢?多谢!

function =instfreq(x,t,L,trace);
%INSTFREQ Instantaneous frequency estimation.
%      =INSTFREQ(X,T,L,TRACE) computes the instantaneous
%      frequency of the analytic signal X at time instant(s) T, using the
%      trapezoidal integration rule.
%      The result FNORMHAT lies between 0.0 and 0.5.
%
%      X : Analytic signal to be analyzed.
%      T : Time instants                (default : 2:length(X)-1).
%      L : If L=1, computes the (normalized) instantaneous frequency
%            of the signal X defined as angle(X(T+1)*conj(X(T-1)) ;
%            if L>1, computes a Maximum Likelihood estimation of the
%            instantaneous frequency of the deterministic part of the signal
%            blurried in a white gaussian noise.
%            L must be an integer               (default : 1).
%      TRACE : if nonzero, the progression of the algorithm is shown
%                                        (default : 0).
%      FNORMHAT : Output (normalized) instantaneous frequency.
%      T : Time instants.
%
%      Examples :
%         x=fmsin(70,0.05,0.35,25); =instfreq(x); plot(t,instf)
%         N=64; SNR=10.0; L=4; t=L+1:N-L; x=fmsin(N,0.05,0.35,40);
%         sig=sigmerge(x,hilbert(randn(N,1)),SNR);
%         plotifl(t,); grid;
%         title ('theoretical and estimated instantaneous frequencies');
%
%      See alsoKAYTTH, SGRPDLAY.

%      F. Auger, March 1994, July 1995.
%      Copyright (c) 1996 by CNRS (France).
%
%      ------------------- CONFIDENTIAL PROGRAM --------------------
%      This program can not be used without the authorization of its
%      author(s). For any comment or bug report, please send e-mail to
%      f.auger@ieee.org

if (nargin == 0),
error('At least one parameter required');
end;
= size(x);
if (xcol~=1),
error('X must have only one column');
end

if (nargin == 1),
t=2:xrow-1; L=1; trace=0.0;
elseif (nargin == 2),
L = 1; trace=0.0;
elseif (nargin == 3),
trace=0.0;
end;

if L<1,
error('L must be >=1');
end
= size(t);
if (trow~=1),
error('T must have only one row');
end;

if (L==1),
if any(t==1)|any(t==xrow),
error('T can not be equal to 1 neither to the last element of X');
else
fnormhat=0.5*(angle(-x(t+1).*conj(x(t-1)))+pi)/(2*pi);
end;
else
H=kaytth(L);
if any(t<=L)|any(t+L>xrow),
error('The relation L<T<=length(X)-L must be satisfied');
else
for icol=1:tcol,
   if trace, disprog(icol,tcol,10); end;
   ti = t(icol); tau = 0:L;
   R = x(ti+tau).*conj(x(ti-tau));
   M4 = R(2:L+1).*conj(R(1:L));
   
   diff=2e-6;
   tetapred = H * (unwrap(angle(-M4))+pi);
   while tetapred<0.0 , tetapred=tetapred+(2*pi); end;
   while tetapred>2*pi, tetapred=tetapred-(2*pi); end;
   iter = 1;
   while (diff > 1e-6)&(iter<50),
    M4bis=M4 .* exp(-j*2.0*tetapred);
    teta = H * (unwrap(angle(M4bis))+2.0*tetapred);
    while teta<0.0 , teta=(2*pi)+teta; end;
    while teta>2*pi, teta=teta-(2*pi); end;
    diff=abs(teta-tetapred);
    tetapred=teta; iter=iter+1;
   end;
   fnormhat(icol,1)=teta/(2*pi);
end;
end;
end;
页: [1] 2
查看完整版本: 一个比较方便进行HHT的软件,不敢独享,故来向大家分享。bing