Skip to main content
. 2024 Feb 20;10:e1852. doi: 10.7717/peerj-cs.1852

Algorithm 3. 2LE-CEEMDAN denoising method.

Input: Timeseriesdata
IMFs:[IMF0,IMF1,...,IMFk1] k IMFs obtained with CEEMDAN() (Algorithm 1)
procedure SELECTION_IMF(IMFs)
sample_entropy_list=[]
approximate_entropy_list=[]
 for imf in IMFs do
   sample_entropy_list.append(SampEn(imf))
   approximate_entropy_list.append(ApEn(imf))
   total_SampEn=sum(sample_entropy_list)
   total_ApEn=sum(approximate_entropy_list)
   sample_entropy_ratio = [entropy*100total_SampEnfor entropy in sample entropy list]
   approximate_entropy_ratio = [entropy*100total_ApEn for entropy in approximate entropy list]
 end for
noisy_imfs=[]
noiseless_imfs=[]
 for i in range(len(IMFs)) do
  if sample_entropy_ratio[i]>20 approximate_entropy_ratio[i]>20 then
   noisy_imfs.append(IMFs[i])
  else
   noiseless_imfs.append(IMFs[i])
  end if
 end for
 return noisy_imfs, noiseless_imfs
end procedure
First_IMFs=CEEMDAN(Input)
First_decomposition_noisy_IMF,First_decomposition_noiseless_IMF=Selection_IMF(First_IMFs)
noisly_First_IMFs_sum=sum(First_decomposition_noisy_IMF)
Second_IMFs=CEEMDAN(noisly_First_IMFs_sum)
Second_decomposition_noisy_IMF,Second_decomposition_noiseless_IMF=Selection_IMF(Second_IMFs)