南宫轩宇
发表于 2011-8-16 20:02
回复 67 # chenlu1986 的帖子
楼主你好,我想请教一下,我用了fft这个函数对每一阶的IMF进行频谱分析,为什么matlab提示fft错误呢,没有fft函数,请指教,谢谢了
光脚丫老头
发表于 2011-8-17 16:08
回复 52 # 憨憨帝 的帖子
请问:“怎么处理我自己采集的数据呢?”这个问题知道怎么处理了吗?小弟也正为此着急
柳一
发表于 2011-8-18 19:40
为什么=toimage(A,f);改成=toimage(A,f,t,length(t));得到的Hilbert谱就不一样了呢?
柳一
发表于 2011-8-18 20:17
回复 76 # 南宫轩宇 的帖子
不应该啊,fft是Matlab自带函数的,是不是你的表达出现了问题,例:fft(imf(1,:));是对第一个imf进行傅里叶变换。
柳一
发表于 2011-8-18 20:18
回复 77 # 光脚丫老头 的帖子
自己采集的数据,使用load()等函数导进去,即可使用emd()等进行分解~
柳一
发表于 2011-8-18 20:22
回复 74 # 文龙轩夕林梦 的帖子
如果知道采样频率fs,横坐标就改成N/fs,显示的就是时间了
南宫轩宇
发表于 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的路径。
南宫轩宇
发表于 2011-8-19 15:24
回复 85 # 柳一 的帖子
嗯是的,这个问题已经解决,非常感谢
songtingd
发表于 2011-8-23 13:38
回复 1 # fancy78066994 的帖子
能够上传一下cemd_visu.m文件吗?麻烦你了,谢谢!
wshcumt
发表于 2011-8-23 21:02
回复 1 # fancy78066994 的帖子
楼主辛苦了
chenlu1986
发表于 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);
=hhspectrum(imf); %对IMF分量求取瞬时频率与振幅:A:是每个IMF的振幅向量,f:每个IMF对应的瞬时频率,t:时间序列号
=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();
页:
1
2
3
4
5
[6]
7
8
9
10
11
12
13