Genetic Algorithm for parameter estimation in EEMD (Ensemble Empirical Mode Decomposition)

15 visualizaciones (últimos 30 días)
Hello, I have problem how to implement code changes. I have good working EEMD program on a some data. But in the program I have prameter Nstd = 0.3; % param to white noise. which is fixed and it must be adjusting by genetic algorithm (in range 0-1). The EEMD code is bellow:
y=xlsread('some.data'); % load a signal.
aim = 5; % numbers of IMF
NR = 10; % value of ensemble
Nstd = 0.3; % param to white noise
IMF1=eemd(y,aim,NR,Nstd);
and the eemd.m
function [modes] = eemd(y, aim, NR, Nstd)
stdy = std(y);
if stdy < 0.01
stdy = 1;
end
y = y ./ stdy;
siz = length(y);
modes = zeros(aim+1, siz);
for k = 1:NR
disp(['Ensemble number #' num2str(k)]);
wn = randn(1, siz) .* Nstd;
y1 = y + wn;
y2 = y - wn;
modes = modes + emd(y1, aim);
if Nstd > 0 && NR > 1
modes = modes + emd(y2, aim);
end
end
modes = modes .* stdy ./ (NR);
if Nstd > 0 && NR > 1
modes = modes ./ 2;
end
end
from emd.m in eemd.m I get the IMF's - as much as is "aim"
  3 comentarios
Arpana Singh
Arpana Singh el 19 de Ag. de 2020
could u plz help me with EEMD . . i m not able to run this code evn . ..if possible mail me at apsingh014@gmail.com
Atik Faysal
Atik Faysal el 3 de Sept. de 2020
@ Arpana Singh, what version of MATLAB are you using? The emd fuction is available from version 2017b and above.

Iniciar sesión para comentar.

Respuestas (1)

Kalpesh Prajapati
Kalpesh Prajapati el 19 de Jul. de 2017
Editada: Kalpesh Prajapati el 19 de Jul. de 2017
Hello, You have to define some objective function such as quality of algorithm (PSNR,MSE etc) as output argument and make standard deviation of noise as input argument as input parameter. Then just apply genetic algorithm on it. For more detail of how to use genetic algorithm, see some example. You can understand it easily.
  6 comentarios
Atik Faysal
Atik Faysal el 3 de Sept. de 2020
Editada: Atik Faysal el 3 de Sept. de 2020
@ Manal Choubi, the NR represents the number of ensembles of EEMD. For each ensemble different white noise is added with the signal. The Nstd represents the white noise that is added. Here 0.3 means the randomly generated white noise has a std of 0.3.
Do some study on the theory of EEMD.
If you are still confused reach me out at faisal.atik@gmail.com
Jan Ali
Jan Ali el 14 de Mzo. de 2021
@Ajeet Patil, Could you/anyone please explain what the difference between zeros(siz,aim) and zeros(aim+1, siz) is, why did you put 'MaxNumIMF' in emd(y2,'MaxNumIMF',aim)?
Thanks in advance,

Iniciar sesión para comentar.

Categorías

Más información sobre Audio I/O and Waveform Generation en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by