EMD与EEMD程序.docx
- 文档编号:2900868
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:58
- 大小:36.39KB
EMD与EEMD程序.docx
《EMD与EEMD程序.docx》由会员分享,可在线阅读,更多相关《EMD与EEMD程序.docx(58页珍藏版)》请在冰豆网上搜索。
EMD与EEMD程序
%%%%%%%%%%%载入信号
x=load('1.txt');%产生信号
N=length(x);%采样点数
fs=2000;%采样频率
dt=1/fs;%采样时间间隔
t=(0:
N-1)*dt;%产生时间序列
%%%%%%%%EMD
imf=emd(x);
%EMD.M(EMD程序)
%G.Rilling,July2002
%
%computesEMD(EmpiricalModeDecomposition)accordingto:
%
%N.E.Huangetal.,"Theempiricalmodedecompositionandthe
%Hilbertspectrumfornon-linearandnonstationarytimeseriesanalysis,"
%Proc.RoyalSoc.LondonA,Vol.454,pp.903-995,1998
%
%withvariationsreportedin:
%
%G.Rilling,P.FlandrinandP.Gonçalvès
%"OnEmpiricalModeDecompositionanditsalgorithms"
%IEEE-EURASIPWorkshoponNonlinearSignalandImageProcessing
%NSIP-03,Grado(I),June2003
%
%stoppingcriterionforsifting:
%ateachpoint:
meanamplitude %& %meanofbooleanarray((meanamplitude)/(envelopeamplitude)>threshold) %& %|#zeros-#extrema|<=1 % %inputs: -x: analysedsignal(linevector) %-t(optional): samplingtimes(linevector)(default: 1: length(x)) %-stop(optional): threshold,threshold2andtolerance(optional) %forsiftingstoppingcriterion %default: [0.05,0.5,0.05] %-tst(optional): ifequalsto1showssiftingstepswithpause %ifequalsto2nopause % %outputs: -imf: intrinsicmodefunctions(lastline=residual) %-ort: indexoforthogonality %-nbits: numberofiterationsforeachmode % %calls: -extr(findsextremaandzero-crossings) %-io: computestheindexoforthogonality function[imf,ort,nbits]=emd(x,t,stop,tst); %defaultforstopping defstop=[0.05,0.5,0.05]; if(nargin==1) t=1: length(x); stop=defstop; tst=0; end if(nargin==2) stop=defstop; tst=0; end if(nargin==3) tst=0; end S=size(x); if((S (1)>1)&(S (2)>1))|(length(S)>2) error('xmusthaveonlyoneroworonecolumn') end ifS (1)>1 x=x'; end S=size(t); if((S (1)>1)&(S (2)>1))|(length(S)>2) error('tmusthaveonlyoneroworonecolumn') end ifS (1)>1 t=t'; end if(length(t)~=length(x)) error('xandtmusthavethesamelength') end S=size(stop); if((S (1)>1)&(S (2)>1))|(S (1)>3)|(S (2)>3)|(length(S)>2) error('stopmusthaveonlyoneroworonecolumnofmaxthreeelements') end ifS (1)>1 stop=stop'; S=size(stop); end ifS (2)<3 stop(3)=defstop(3); end ifS (2)<2 stop (2)=defstop (2); end sd=stop (1); sd2=stop (2); tol=stop(3); iftst figure end %maximumnumberofiterations MAXITERATIONS=2000; %maximumnumberofsymmetrizedpointsforinterpolations NBSYM=2; lx=length(x); sdt(lx)=0; sdt=sdt+sd; sd2t(lx)=0; sd2t=sd2t+sd2; %maximumnumberofextremaandzero-crossingsinresidual ner=lx; nzr=lx; r=x; imf=[]; k=1; %iterationscounterforextractionof1mode nbit=0; %totaliterationscounter NbIt=0; whilener>2 %currentmode m=r; %modeatpreviousiteration mp=m; sx=sd+1; %testsifenoughextrematoproceed test=0; [indmin,indmax,indzer]=extr(m); lm=length(indmin); lM=length(indmax); nem=lm+lM; nzm=length(indzer); j=1; %siftingloop while(mean(sx>sd)>tol|any(sx>sd2)|(abs(nzm-nem)>1))&(test==0)&nbit if(nbit>MAXITERATIONS/5&mod(nbit,floor(MAXITERATIONS/10))==0) disp(['mode',int2str(k),'nombrediterations: ',int2str(nbit)]) disp(['stopparametermeanvalue: ',num2str(s)]) end %boundaryconditionsforinterpolations: ifindmax (1) (1) ifm (1)>m(indmin (1)) lmax=fliplr(indmax(2: min(end,NBSYM+1))); lmin=fliplr(indmin(1: min(end,NBSYM))); lsym=indmax (1); else lmax=fliplr(indmax(1: min(end,NBSYM))); lmin=[fliplr(indmin(1: min(end,NBSYM-1))),1]; lsym=1; end else ifm (1) (1)) lmax=fliplr(indmax(1: min(end,NBSYM))); lmin=fliplr(indmin(2: min(end,NBSYM+1))); lsym=indmin (1); else lmax=[fliplr(indmax(1: min(end,NBSYM-1))),1]; lmin=fliplr(indmin(1: min(end,NBSYM))); lsym=1; end end ifindmax(end) ifm(end) rmax=fliplr(indmax(max(end-NBSYM+1,1): end)); rmin=fliplr(indmin(max(end-NBSYM,1): end-1)); rsym=indmin(end); else rmax=[lx,fliplr(indmax(max(end-NBSYM+2,1): end))]; rmin=fliplr(indmin(max(end-NBSYM+1,1): end)); rsym=lx; end else ifm(end)>m(indmin(end)) rmax=fliplr(indmax(max(end-NBSYM,1): end-1)); rmin=fliplr(indmin(max(end-NBSYM+1,1): end)); rsym=indmax(end); else rmax=fliplr(indmax(max(end-NBSYM+1,1): end)); rmin=[lx,fliplr(indmin(max(end-NBSYM+2,1): end))]; rsym=lx; end end tlmin=2*t(lsym)-t(lmin); tlmax=2*t(lsym)-t(lmax); trmin=2*t(rsym)-t(rmin); trmax=2*t(rsym)-t(rmax); %incasesymmetrizedpartsdonotextendenough iftlmin (1)>t (1)|tl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EMD EEMD 程序