% 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.rar_EEMD分解_eemd的有关代码_let5l3_亲测可用_信号分解
版权申诉
125 浏览量
2022-09-15
01:43:48
上传
评论
收藏 4KB RAR 举报
寒泊
- 粉丝: 75
- 资源: 1万+
最新资源
- 上市公司-人工智能的采纳程度面板数据(2003-2021年).xlsx
- 第5章spring-mvc请求映射处理
- 2023-04-06-项目笔记 - 第一百十六阶段 - 4.4.2.114全局变量的作用域-114 -2024.04.27
- app-release.apk.1
- soap json 等系列化方式
- c++的五子棋代码,在vs6.0上完美运行
- 基于Javaee的影视创作论坛的设计与实现.rar
- Python导出Mysql数据字典(部分表或全表)
- Java工具类实现输入一个路径,强创建路径、并且鉴权目标路径是否具备修改权限,用于增强程序的健壮性与稳定性,快速开发!
- 资源【STM32+HAL】三轴按键PS2摇杆
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈