声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: fancy78066994

[HHT] 完整的EMD分解全过程,有Hilbert谱和边际谱

  [复制链接]
发表于 2011-8-16 20:02 | 显示全部楼层
回复 67 # chenlu1986 的帖子

楼主你好,我想请教一下,我用了fft这个函数对每一阶的IMF进行频谱分析,为什么matlab提示fft错误呢,没有fft函数,请指教,谢谢了
回复 支持 反对
分享到:

使用道具 举报

发表于 2011-8-17 16:08 | 显示全部楼层
回复 52 # 憨憨帝 的帖子

请问:“怎么处理我自己采集的数据呢?”这个问题知道怎么处理了吗?小弟也正为此着急
发表于 2011-8-18 19:40 | 显示全部楼层
为什么[E,t,Cenf]=toimage(A,f);  改成[E,t,Cenf]=toimage(A,f,t,length(t));  得到的Hilbert谱就不一样了呢?
发表于 2011-8-18 20:17 | 显示全部楼层
回复 76 # 南宫轩宇 的帖子

不应该啊,fft是Matlab自带函数的,是不是你的表达出现了问题,例:fft(imf(1,:));是对第一个imf进行傅里叶变换。

评分

1

查看全部评分

发表于 2011-8-18 20:18 | 显示全部楼层
回复 77 # 光脚丫老头 的帖子

自己采集的数据,使用load()等函数导进去,即可使用emd()等进行分解~

评分

1

查看全部评分

发表于 2011-8-18 20:22 | 显示全部楼层
回复 74 # 文龙轩夕林梦 的帖子

如果知道采样频率fs,横坐标就改成N/fs,显示的就是时间了

评分

1

查看全部评分

发表于 2011-8-19 11:54 | 显示全部楼层
回复 79 # 柳一 的帖子

我在想是不是因为我在matlab里面加入hht的工具箱之后又进行了路径的设置,会不会影响matlab自带程序的运行?
发表于 2011-8-19 13:55 | 显示全部楼层
回复 82 # 南宫轩宇 的帖子

这个应该不会的,因为我就是那么做的啊,你以前用过fft这个函数了吗?
发表于 2011-8-19 14:15 | 显示全部楼层
回复 83 # 柳一 的帖子

我之前没有用过,因为我不是信号专业的,老板非要我做这方面的,恼火的很啊,
发表于 2011-8-19 15:06 | 显示全部楼层
回复 84 # 南宫轩宇 的帖子

你在matlab的命令窗口中输入which fft,回车,看看出来的是不是fft的路径。

评分

1

查看全部评分

发表于 2011-8-19 15:24 | 显示全部楼层
回复 85 # 柳一 的帖子

嗯是的,这个问题已经解决,非常感谢
发表于 2011-8-23 13:38 | 显示全部楼层
回复 1 # fancy78066994 的帖子

能够上传一下cemd_visu.m文件吗?麻烦你了,谢谢!
发表于 2011-8-23 21:02 | 显示全部楼层
回复 1 # fancy78066994 的帖子

楼主辛苦了
发表于 2011-9-3 08:52 | 显示全部楼层
回复 87 # songtingd 的帖子

问题解决了吗
发表于 2011-9-3 17:34 | 显示全部楼层
本帖最后由 光脚丫老头 于 2011-9-3 17:39 编辑

这是轴承故障数据 用上面程序修改后 运行 得频率不理想 小弟初学 望不吝赐教
N=10000;
n=1:N;
fs=10000;
t=n/fs;
imf=emd(data);                       
[A,f,t]=hhspectrum(imf);            %对IMF分量求取瞬时频率与振幅:A:是每个IMF的振幅向量,f:每个IMF对应的瞬时频率,t:时间序列号
[E,t,Cenf]=toimage(A,f);            %将每个IMF信号合成求取Hilbert谱,E:对应的振幅值,Cenf:每个网格对应的中心频率  这里横轴为时间,纵轴为频率        
                                                   %即时频图(用颜色表示第三维值的大小)和三维图(三维坐标系:时间,中心频率,振幅)         
cemd_visu(data,1:length(data),imf);   %显示每个IMF分量及残余信号--------------------------------------------
disp_hhs(E);                          %希尔伯特谱----------------------------------------------------------
%画出边际谱
%N=length(Cenf);%设置频率点数   %完全从理论公式出发。网格化后中心频率很重要,大家从连续数据变为离散的角度去思考,相信应该很容易理解
for k=1:size(E,1)
    bjp(k)=sum(E(k,:))*1/fs;
end
figure(3);
plot(Cenf(1,:)*fs,bjp);  % 作边际谱图   进行求取Hilbert谱时频率已经被抽样成具有一定窗长的离散频率,所以此时的频率轴已经是中心频率
xlabel('频率 / Hz');
ylabel('幅值');
axis([0 300 0 inf]);
图.jpg
师兄用令一方法运行得图.jpg

data.mat.pdf

23.58 KB, 下载次数: 38

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 13:07 , Processed in 0.065207 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表