• PUDN用户
    了解作者
  • matlab
    开发工具
  • 4KB
    文件大小
  • rar
    文件格式
  • 2
    收藏次数
  • 1 积分
    下载积分
  • 560
    下载次数
  • 2010-04-14 11:50
    上传日期
Zhaohua Wu编写的实现eemd的程序。共5个。比较权威。
eemd.rar
  • dist_value.m
    854B
  • eemd.m
    2KB
  • extrema.m
    2.1KB
  • ifndq.m
    1.8KB
  • significance.m
    2.9KB
内容介绍
% function [sigline, logep] = significance(imfs, percenta) % % that is used to obtain the "percenta" line based on Wu and % Huang (2004). % % NOTE: For this program to work well, the minimum data length is 36 % % INPUT: % percenta: a parameter having a value between 0.0 ~ 1.0, e.g., 0.05 % represents 95% confidence level (upper bound); and 0.95 % represents 5% confidence level (lower bound) % imfs: the true IMFs from running EMD code. The first IMF must % be included for it is used to obtain the relative mean % energy for other IMFs. The trend is not included. % OUTPUT: % sigline: a two column matrix, with the first column the natural % logarithm of mean period, and the second column the % natural logarithm of mean energy for significance line % logep: a two colum matrix, with the first column the natural % logarithm of mean period, and the second column the % natural logarithm of mean energy for all IMFs % % References can be found in the "Reference" section. % % The code is prepared by Zhaohua Wu. For questions, please read the "Q&A" section or % contact % zhwu@cola.iges.org % function [sigline, logep] = significance(imfs, percenta) nDof = length(imfs(:,1)); pdMax = fix(log(nDof))+1; pdIntv = linspace(1,pdMax,100); yBar = -pdIntv; for i=1:100, yUpper(i)=0; yLower(i)= -3-pdIntv(i)*pdIntv(i); end for i=1:100, sigline(i,1)=pdIntv(i); yPos=linspace(yUpper(i),yLower(i),5000); dyPos=yPos(1)-yPos(2); yPDF=dist_value(yPos,yBar(i),nDof); sum = 0.0; for jj=1:5000, sum = sum + yPDF(jj); end jj1=0; jj2=1; psum1=0.0; psum2=yPDF(1); pratio1=psum1/sum; pratio2=psum2/sum; while pratio2 < percenta, jj1=jj1+1; jj2=jj2+1; psum1=psum1+yPDF(jj1); psum2=psum2+yPDF(jj2); pratio1=psum1/sum; pratio2=psum2/sum; yref=yPos(jj1); end sigline(i,2) = yref + dyPos*(pratio2-percenta)/(pratio2-pratio1); sigline(i,2) = sigline(i,2) + 0.066*pdIntv(i) + 0.12; end sigline=1.4427*sigline; columns=length(imfs(1,:)); for i=1:columns, logep(i,2)=0; logep(i,1)=0; for j=1:nDof, logep(i,2)=logep(i,2)+imfs(j,i)*imfs(j,i); end logep(i,2)=logep(i,2)/nDof; end sfactor=logep(1,2); for i=1:columns, logep(i,2)=0.5636*logep(i,2)/sfactor; % 0.6441 end for i=1:3, [spmax, spmin, flag]= extrema(imfs(:,i)); temp=length(spmax(:,1))-1; logep(i,1)=nDof/temp; end for i=4:columns, omega=ifndq(imfs(:,i),1); sumomega=0; for j=1:nDof, sumomega=sumomega+omega(j); end logep(i,1)=nDof*2*pi/sumomega; end logep=1.4427*log(logep);
评论
    相关推荐
    • EEMD程序.zip
      %应该注意的是,由于在eemd.m中,IMF的总数m被指定为log2(N)-1,在某些情况解的线条进行了合并 %因此会比实际分解得到的减少,但在计算周期和表现显著性的时候要将每个模态的周期和显著性计算在内。
    • EMD与EEMD程序.zip
      超宽带生物雷达中呼吸和心跳信号探测用到的EMD和EEMD算法matlab程序,可以学习一下
    • EEMD程序.zip
      关于管道泄漏泄漏信号的预处理,应用EEMD算法对真实泄漏信号进行仿真。
    • EEMD集合经验模态分解matlab程序代码
      EEMD是Ensemble Empirical Mode Decomposition的缩写,中文是集合经验模态分解,是针对EMD方法的不足,提出了一种噪声辅助数据分析方法。EEMD分解原理是当附加的白噪声均匀分布在整个时频空间时,该时频...MATLAB版本
    • emd 和 eemdMATLAB程序
      emd 和 eemdMATLAB程序,供大家参考学习了
    • matlabEEMD0.rar
      eemdmatlab程序,用来希尔伯特变换,分析信号,经验模态,里面还有其他有用子程序。萌新在学习
    • EEMD和EMD工具箱 matlab
      matlab中~~EEMD和EMD~工具箱~ 供有需要的下载 ,,,
    • 台湾中央大学的EEMD分解matlab程序(1)
      台湾中央大学最新的EEMD分解程序,非常好用!
    • EEMD集成经验模态分解matlab程序.rar
      全面的EEMD程序,用作信号分解,故障诊断邻域得到广泛应用