资源简介
eemd的选择和使用,并有相关的例程,对非平稳信号进行经验模态分解,提取IMF,并进行HILBERT变换。很好的程序。
代码片段和文件信息
% This is an EMD/EEMD program
%
% function allmode=eemd(YNstdNE)
%
% INPUT:
% Y: Inputted data;
% Nstd: ratio of the standard deviation of the added noise and that of Y;
% NE: Ensemble number for the EEMD
% OUTPUT:
% A matrix of N*(m+1) matrix where N is the length of the input
% data Y and m=fix(log2(N))-1. Column 1 is the original data columns 2 3 ...
% m are the IMFs from high to low frequency and comlumn (m+1) is the
% residual (over all trend).
%
% NOTE:
% It should be noted that when Nstd is set to zero and NE is set to 1 the
% program degenerates to a EMD program.
%
% 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 allmode=eemd(YNstdNE)
xsize=length(Y);
dd=1:1:xsize;
Ystd=std(Y);%求信号的标准差
Y=Y/Ystd;%?
TNM=fix(log2(xsize))-1;
TNM2=TNM+2;
for kk=1:1:TNM2
for ii=1:1:xsize
allmode(iikk)=0.0;
end
end
for iii=1:1:NE
for i=1:xsize
temp=randn(11)*Nstd;
X1(i)=Y(i)+temp;
end
for jj=1:1:xsize
mode(jj1) = Y(jj);
end
xorigin = X1;
xend = xorigin;
nmode = 1;
while nmode <= TNM
xstart = xend;
iter = 1;
while iter<=10
[spmax spmin flag]=extrema(xstart);%极值
upper= spline(spmax(:1)spmax(:2)dd);
lower= spline(spmin(:1)spmin(:2)dd);
mean_ul = (upper + lower)/2;
xstart = xstart - mean_ul;
iter = iter +1;
end
xend = xend - xstart;
nmode=nmode+1;
for jj=1:1:xsize
mode(jjnmode) = xstart(jj);
end
end
for jj=1:1:xsize
mode(jjnmode+1)=xend(jj);
end
allmode=allmode+mode;
end
allmode=allmode/NE;
allmode=allmode*Ystd;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2034 2011-10-22 09:11 eemd.m
文件 2187 2009-04-10 20:25 extrema.m
文件 394388 2018-05-08 11:51 105230317CEEMD_eemd.zip
----------- --------- ---------- ----- ----
398609 3
- 上一篇:AutoCAD横向图纸模板
- 下一篇:车辆动力学8自由度模型
评论
共有 条评论