資源簡介
經(jīng)驗(yàn)?zāi)B(tài)分解EMD(不帶邊界延拓的),根據(jù)法國學(xué)者的鏡像延拓經(jīng)驗(yàn)?zāi)B(tài)分解修改而來。
代碼片段和文件信息
%2007新出來的包含復(fù)數(shù)的emd函數(shù)(端點(diǎn)視作極值點(diǎn))
function?[imfortnbits]?=?emd3(varargin)
[xtsdsd2tolMODE_COMPLEXndirsdisplay_siftingsdtsd2trimfknbitNbItMAXITERATIONSFIXEFIXE_HMAXMODESINTERPmask]?=?init(varargin{:});
if?display_sifting
??fig_h?=?figure;
end
%?主循環(huán)?:?至少要求存在3個(gè)極值點(diǎn),如果采用mask信號(hào),不進(jìn)入主循環(huán)
while?~stop_EMD(rMODE_COMPLEXndirs)?&&?(k?
??%?當(dāng)前模式
??m?=?r;
??%?前一次迭代的模式
??mp?=?m;
??%?計(jì)算均值和停止條件
??if?FIXE?%?如果設(shè)定了迭代次數(shù)
????[stop_siftmoyenne]?=?stop_sifting_fixe(tmINTERPMODE_COMPLEXndirs);
??elseif?FIXE_H?%?如果設(shè)定了迭代次數(shù),且保留停止條件|#zeros-#extrema|<=1
????stop_count?=?0;
????[stop_siftmoyenne]?=?stop_sifting_fixe_h(tmINTERPstop_countFIXE_HMODE_COMPLEXndirs);
??else?%?采用默認(rèn)停止條件
????[stop_siftmoyenne]?=?stop_sifting(mtsdsd2tolINTERPMODE_COMPLEXndirs);
??end
??%?當(dāng)前模式幅度過小,機(jī)器精度就可能引起虛假極值點(diǎn)的出現(xiàn)
??if?(max(abs(m)))?(1e-10)*(max(abs(x))) %?IMF的最大值小于信號(hào)最大值的1e-10
????if?~stop_sift?%?如果篩過程沒有停止
??????warning(‘emd:warning‘‘forced?stop?of?EMD?:?too?small?amplitude‘)
????else
??????disp(‘forced?stop?of?EMD?:?too?small?amplitude‘)
????end
????break
??end
??%?篩循環(huán)
??while?~stop_sift?&&?nbit
????if(~MODE_COMPLEX?&&?nbit>MAXITERATIONS/5?&&?mod(nbitfloor(MAXITERATIONS/10))==0?&&?~FIXE?&&?nbit?>?100)
??????disp([‘mode?‘int2str(k)‘?iteration?‘int2str(nbit)])
??????if?exist(‘s‘‘var‘)%查找是否存在變量s(var是指查找變量)
????????disp([‘stop?parameter?mean?value?:?‘num2str(s)])
??????end
??????[imiM]?=?extr(m);
??????disp([int2str(sum(m(im)?>?0))‘?minima?>?0;?‘int2str(sum(m(iM)?0))‘?maxima?0.‘])
????end
????%?篩過程
????m?=?m?-?moyenne;
????%?計(jì)算均值和停止條件
????if?FIXE
??????[stop_siftmoyenne]?=?stop_sifting_fixe(tmINTERPMODE_COMPLEXndirs);
????elseif?FIXE_H
??????[stop_siftmoyennestop_count]?=?stop_sifting_fixe_h(tmINTERPstop_countFIXE_HMODE_COMPLEXndirs);
????else
??????[stop_siftmoyennes]?=?stop_sifting(mtsdsd2tolINTERPMODE_COMPLEXndirs);
????end
????%?演示過程
????if?display_sifting?&&?~MODE_COMPLEX
??????NBSYM?=?2;
??????[indminindmax]?=?extr(mp);
??????[tmintmaxmminmmax]?=?boundary_conditions(indminindmaxtmpmpNBSYM);
??????envminp?=?interp1(tminmmintINTERP);
??????envmaxp?=?interp1(tmaxmmaxtINTERP);
??????envmoyp?=?(envminp+envmaxp)/2;
??????if?FIXE?||?FIXE_H
????????display_emd_fixe(tmmprenvminpenvmaxpenvmoypnbitkdisplay_sifting)
??????else
????????sxp?=?2*(abs(envmoyp))./(abs(envmaxp-envminp));
????????sp?=?mean(sxp);
????????display_emd(tmmprenvminpenvmaxpenvmoypsspsxpsdtsd2tnbitkdisplay_siftingstop_sift)
??????end
????end
????mp?=?m;
????nbit?=?nbit+1; %?單輪迭代計(jì)數(shù)
????NbIt?=?NbIt+1; %?總體迭代計(jì)數(shù)
????if?(nbit==(MAXITERATIONS-1)?&&?~FIXE?&&?nbit?>?100)
??????if?exist(‘s‘‘var‘)
????????warning(‘emd:warning‘[‘forced?stop?of?sifting?:?too?many?iterations...?mode?‘int2str(k)‘.?stop?parameter?mean?value?:?‘num2str(s)])
??????else
????????warning(‘emd:warning‘[‘f
- 上一篇:ACCESS酒店管理系統(tǒng)
- 下一篇:KNN,Matlab代碼
評(píng)論
共有 條評(píng)論