資源簡介
HHT變換matlab程序。可修改各種參數,采樣點數,各種電能質量原始信號均由程序所得,可以信號疊加而來。比如電壓跌落,諧波,暫時上升,中斷等。例子給出的是 電壓暫降。
代碼片段和文件信息
function?[imfortnbits]?=?emd(varargin)
[xtsdsd2tolMODE_COMPLEXndirsdisplay_siftingsdtsd2trimfknbitNbItMAXITERATIONSFIXEFIXE_HMAXMODESINTERPmask]?=?init(varargin{:});
if?display_sifting
??fig_h?=?figure;
end
%main?loop?:?requires?at?least?3?extrema?to?proceed
while?~stop_EMD(rMODE_COMPLEXndirs)?&&?(k?
??%?current?mode
??m?=?r;
??%?mode?at?previous?iteration
??mp?=?m;
??%computation?of?mean?and?stopping?criterion
??if?FIXE
????[stop_siftmoyenne]?=?stop_sifting_fixe(tmINTERPMODE_COMPLEXndirs);
??elseif?FIXE_H
????stop_count?=?0;
????[stop_siftmoyenne]?=?stop_sifting_fixe_h(tmINTERPstop_countFIXE_HMODE_COMPLEXndirs);
??else
????[stop_siftmoyenne]?=?stop_sifting(mtsdsd2tolINTERPMODE_COMPLEXndirs);
??end
??%?in?case?the?current?mode?is?so?small?that?machine?precision?can?cause
??%?spurious?extrema?to?appear
??if?(max(abs(m)))?(1e-10)*(max(abs(x)))
????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
??%?sifting?loop
??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‘)
????????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
????%sifting
????m?=?m?-?moyenne;
????%computation?of?mean?and?stopping?criterion
????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
????%?display
????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;
????NbIt=NbIt+1;
????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‘[‘forced?stop?of?sifting?:?too?many?iterations...?mode?‘int2str(k)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????17417??2013-06-20?09:41??HHT變換matlab程序\emd.m
?????文件???????1133??2013-06-20?09:41??HHT變換matlab程序\emdyy.m
?????文件???????1915??2013-06-20?09:41??HHT變換matlab程序\hhspectrum.m
?????文件???????2292??2013-06-20?09:41??HHT變換matlab程序\IMFeg.asv
?????文件???????1628??2013-06-20?09:41??HHT變換matlab程序\IMFeg.m
?????文件??????14397??2013-06-20?09:51??HHT變換matlab程序\input.m
?????文件???????1942??2013-06-20?09:41??HHT變換matlab程序\toimage.m
?????文件????1065984??2013-06-20?09:47??HHT變換matlab程序\河北南網數據-西柏坡1號機.xls
?????文件????????165??2013-06-20?09:41??HHT變換matlab程序\說明.txt
?????目錄??????????0??2013-06-20?09:54??HHT變換matlab程序
-----------?---------??----------?-----??----
??????????????1106873????????????????????10
- 上一篇:脈沖多普勒雷達
- 下一篇:利用雙向漸進結構優化法(BESO )優化連續體的結構拓撲
評論
共有 條評論