• 大小: 12KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签: emd  去噪  

资源简介

这是最新的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


评论

共有 条评论