資源簡介
這是最新的emd去噪的程序,并且有和小波去噪的比較。
采用的是符合emd分解特性的閾值去噪方法。

代碼片段和文件信息
function?EMDdenoised=EMDdenoise(signalmethoditerationsaltermethodnofsiftsthrestypeT_multM1IM2)
%EMDdenoised??:?denoised?signal
%signal???????:?Noisy?signal
%method???????:?EMDdenoising?method?
%???????????????‘IT‘?for?Interval?Thresholding?(see?[1])
%???????????????‘IIT‘?for?Iterative?Interval?Thresholding?(see?[1])
%???????????????‘CIIT‘?for?Clear?first?Iterative?Interval?Thresholding?[1]
%iterations???:?Number?of?averaging?iterations?for?IIT?and?CIIT?methods
%altermethod??:?Noise?altering?method
%???????????????‘circ‘?for?random?circulations
%???????????????‘perm‘?for?random?permutations
%nofsifts?????:?Number?of?sifting?iterations?(it?should?take?a?value
%???????????????between?5?and?10.
%threstype????:?Thresholding?method
%???????????????‘hard‘?for?hard?Thresholding
%???????????????‘soft‘?for?soft?Thresholding?(see?[2])
%???????????????‘softSCAD‘?for?smoothly?clipped?absolute?deviation
%??????????????????????????(SCAD)?penalty?Thresholding?(see?[2]).
%T_mult???????:?Multiplication?factor?of?the?universal?threshold.?For
%???????????????example?if?T_mult=0.7?then?the?threshold?applied?is
%???????????????T=0.7*sigma*sqrt(2*log*n)
%M1???????????:?Value?of?parameter?M1?in?the?reconstruction?equation?(see
%???????????????[1]?Eq.?(11)).
%IM2??????????:?Sets?parameter?M2?(see?[1]?Eq.?(11))?equal?to?the?number?
%???????????????of?IMFs?resulted?from?EMD?decomposition?minus?IM2.
%?REFERECIES
%?[1]?Y.?Kopsinis?S.?McLaughlin?揇evelopment?of?EMD-based?Denoising
%?Methods?Inspired?by?Wavelet?Thresholding???IEEE?Trans.?on?Signal
%?Processing?VOL.?57?NO.?4?APRIL?2009.
%?[2]?Y.?Kopsinis?S.?McLaughlin?揈mpirical?Mode?Decomposition?based
%?Soft-Thresholding???EUSIPCO?2008.
warning(‘off‘‘MATLAB:dispatcher:InexactMatch‘)
n=length(signal);
t=1:n;
if?strcmp(method‘IT‘)==1
????iterations=1;
end
[IMFlocalmean]?=?emdfull(signaltnofsifts);
nofIMFs=size(IMF1);
clear?localmean
estimenergy_F(1)=(median(abs(IMF(1:)))/0.6745)^2;%這里算的不是能量,是類似于噪聲方差的東西。先算出第一層的,然后根據噪聲能量估計公式,估計后面層的
for?k=2:size(IMF1)+3
????estimenergy_F(k)=estimenergy_F(1)/0.719*2.01^(-k);
end
T_mult=T_mult*sqrt(2*log(n));
M2=nofIMFs-IM2;
if?strcmp(method‘CIIT‘)==1
????clearfirst=1;
else
????clearfirst=0;
end
triggered=alteringnoise(IMFiterationsnofsiftsaltermethodclearfirst);
EMDdenoised=EMDdenoise_averaging(IMFtriggered.IMFprostriggered.zcpos_prtriggered.extrema_prestimenergy_FthrestypeT_multM1M2);
end
function?out_aver=EMDdenoise_averaging(IMFIMFproszcposextremaIMFenergythrestypemultM1M2)
%?IMF:?Matrix?containing?the?IMFs
%?IMFpros:?Cell?array?containing?matrices?of?IMFs?of?each?different?random?realization
%?IMFenergy:?Vector?containing?the?estimated?variances?of?each?IMF.?If
%?isempty?[]?then?the?energies?of?the?n_a?processed?IMFpros?are?estimated
%?separately.?If?it?is?equal?to?0?then?the?average?of?all?the?IMFpros{}?is
%?adopted?as?the?final?variance
%
%?mult:?The?multipli
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????19911??2010-03-18?15:29??EMD?denoising\EMDdenoise.asv
?????文件??????19911??2010-03-18?15:30??EMD?denoising\EMDdenoise.m
?????文件????????712??2009-04-12?19:46??EMD?denoising\example.m
?????文件????????496??2009-04-12?19:39??EMD?denoising\readme.txt.txt
????..AD...?????????0??2010-05-06?20:56??EMD?denoising
-----------?---------??----------?-----??----
????????????????41030????????????????????5
評論
共有 條評論