eemd代码%ThisisanEMD/EEMDprogram%%functionallmode=eemd(Y,Nstd,NE)%(allmode是函数名)%INPUT:(输入)%Y:Inputteddata;(Y:输入数据)%Nstd:ratioofthestandarddeviationoftheaddednoiseandthatofY;(Nstd:输入的数据的
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
差与添加的噪声的标准差之比)%NE:EnsemblenumberfortheEEMD(NE:EEMD的集合数)%OUTPUT:(输出)%AmatrixofN*(m+1)matrix,whereNisthelengthoftheinputdataY,andm=fix(log2(N))-1.Column1istheoriginaldata,columns2,3,...maretheIMFsfromhightolowfrequency,andcomlumn(m+1)istheresidual(overalltrend).(一个N*(m+1)阶矩阵,其中N是输入数据的个数,m是fix(log2(N))-1(fix函数为向0方向取整)。第1列是原始数据,第2,3,。。。m列是分解出的按频率从高到低排列的IMFs,第(m+1)列是趋势项)%%NOTE:%ItshouldbenotedthatwhenNstdissettozeroandNEissetto1,theprogramdegeneratestoaEMDprogram.(注:当Nstd设置为零并且NE设置为1时,程序退化为EMD程序。)functionallmode=eemd(Y,Nstd,NE)xsize=length(Y);dd=1:1:xsize;Ystd=std(Y);Y=Y/Ystd;TNM=fix(log2(xsize))-1;TNM2=TNM+2;forkk=1:1:TNM2,forii=1:1:xsize,allmode(ii,kk)=0.0;endendforiii=1:1:NE,fori=1:xsize,temp=randn(1,1)*Nstd;X1(i)=Y(i)+temp;endforjj=1:1:xsize,mode(jj,1)=Y(jj);endxorigin=X1;xend=xorigin;nmode=1;whilenmode<=TNM,xstart=xend;iter=1;whileiter<=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;endxend=xend-xstart;nmode=nmode+1;forjj=1:1:xsize,mode(jj,nmode)=xstart(jj);endendforjj=1:1:xsize,mode(jj,nmode+1)=xend(jj);endallmode=allmode+mode;endallmode=allmode/NE;allmode=allmode*Ystd;