91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 15KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-15
  • 語言: Matlab
  • 標簽: EMD??

資源簡介

對于正在開始研究EMD進行信號處理的朋友有幫助,里面有EMD的源碼,可以直接在MATLAB實驗。

資源截圖

代碼片段和文件信息

%EMD
function?[imfortnbits]?=?emd(varargin)
[xtsdsd2tolMODE_COMPLEXndirsdisplay_siftingsdtsd2trimfknbitNbItMAXITERATIONSFIXEFIXE_HMAXMODESINTERPmask]?=?init(varargin{:});
if?display_sifting
??fig_h?=?figure;
end
%主循環?:?要求至少有3個極值
while?(~stop_EMD(rMODE_COMPLEXndirs)?&&?(k?%?當前模態
??m?=?r;
%?先前的迭代模態
??mp?=?m;
%均值的計算和終止準則
??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
%?為了避免當前模態太小以致精度引起假的極值出現?
??if?(max(abs(m)))?????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
%?篩選循環
??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)?????end
?%篩選
????m?=?m?-?moyenne;
%均值計算和終止準則
????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;
????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)‘.‘])
??????end
????end
??end?%?篩選循環
??imf(k:)?=?m;
??if?display_sifting
????disp([‘mode?‘int2str(k)‘?stored‘])
??end
??nbits(k)?=?nbit;
??k?=?k+1;
??r?=?r?-?m;
??nbit=0;
end?%主循環
if?any(r)?&&?~any(mask)
??imf(k:)?=?r;
end
ort?=?io(ximf);
if?display_

評論

共有 條評論