声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2045|回复: 6

[HHT] EMD分解后如何求周期

[复制链接]
发表于 2011-3-16 15:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 hmjerry 于 2011-3-16 15:04 编辑

大家好,看论坛里都是做信号处理的,我是跨专业,没接触过信号处理,现在想用EMD方法做周期分析,因为用的是气象资料,无法给出采样频率,现在已经得到了IMF图,想求出各个IMF中的周期,请问该如何编程?

请大家帮帮忙!
谢谢各位!
数据、代码和结果如下
11.txt (228 Bytes, 下载次数: 19)

  1. clear
  2. z=[textread('D:\11.txt')]
  3. t=1982:1:2009;
  4. x=[1982:2:2010]  
  5. c=emd(z);  %  EMD 分解
  6. [m,n]=size(c);  
  7. for i=1:m-1  
  8. %--------------------------------------------------------------------
  9. %计算各IMF的方差贡献率
  10. %定义:方差为平方的均值减去均值的平方
  11. %均值的平方
  12. %imfp2=mean(c(i,:),2).^2
  13. %平方的均值
  14. %imf2p=mean(c(i,:).^2,2)
  15. %各个IMF的方差
  16. mse(i)=mean(c(i,:).^2,2)-mean(c(i,:),2).^2;
  17. end;
  18. for i=1:m-1
  19. mse(i)=mean(c(i,:).^2,2)-mean(c(i,:),2).^2;
  20. %方差百分比,也就是方差贡献率
  21. mseb(i)=mse(i)/sum(mse)*100;
  22. %显示各个IMF的方差和贡献率
  23. end;

  24. figure(1)
  25. for i=1:m-1
  26. disp(['imf',int2str(i)]) ;disp([mse(i) mseb(i)]);
  27. end;
  28. subplot(m+1,1,1)
  29. plot(t,z)
  30. set(gca,'fontname','times New Roman')
  31. set(gca,'fontsize',12.0)
  32. set(gca,'xtick',x);  
  33. ylabel(['signal'])   

  34. for i=1:m-1
  35. subplot(m+1,1,i+1);
  36. set(gcf,'color','w')
  37. plot(t,c(i,:),'k')
  38. set(gca,'fontname','times New Roman')
  39. set(gca,'fontsize',12.0)
  40. set(gca,'xtick',x);  
  41. ylabel(['imf',int2str(i)])
  42. end
  43. subplot(m+1,1,m+1);
  44. set(gcf,'color','w')
  45. plot(t,c(m,:),'k')
  46. set(gca,'fontname','times New Roman')
  47. set(gca,'fontsize',12.0)
  48. set(gca,'xtick',x);  
  49. ylabel(['r',int2str(m-1)])
  50. xlabel('Time')

复制代码


本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

 楼主| 发表于 2011-3-17 14:42 | 显示全部楼层
这么久了  怎么都没人回复呢...大家帮帮忙啊!
发表于 2011-3-19 02:26 | 显示全部楼层
学习中,帮你顶。
发表于 2011-4-30 21:31 | 显示全部楼层
回复 1 # hmjerry 的帖子

水平有限但好奇, 若如LZ所说无法给出采样频率, 可以求出各个对应的周期吗?
敢问LZ的数据是否为一年一笔数据, 若是, 那一年不就是采样週期(采样频率的倒数)
 楼主| 发表于 2011-5-3 09:15 | 显示全部楼层
回复 4 # ChaChing 的帖子

谢谢你的问题   
我用的是气温数据,原数据为一天一个值,处理成年平均值,现在所用为一年一个值。
想要计算的周期是很多年的变化周期,若给出一天或一年为采样频率,则周期为一天或一年,但此周期并不能代表长年的变化周期。
有人求算出每个IMF所对应的中心频率,然后求中心频率的倒数为周期,但个人觉得还不是很准确,所为问题一直没有得到解决,若有兴趣,可以一起讨论。
发表于 2011-5-3 10:35 | 显示全部楼层
我用的是轴承故障数据,滚动体有9个,出现9个冲击波形即为一个周期。
发表于 2013-5-17 10:41 | 显示全部楼层
困扰啊?如何解决?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-25 09:27 , Processed in 0.088600 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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