function [imf_L,imf_R]=emd(x_L,x_R)
%% Empirická modální dekompozice, rozloží vstupní zašuměný signál a na výstup pošle 4. vnitřní funkci pro pravou a levou končetinu zvlášť

  IMF_L=cell(10,1);
  x_orig=x_L;
  osa_x=1:length(x_orig);

  for i=1:10                  % rozklad na 10 vnitřních funkcí
        odchylka=10;   

         while odchylka>0.3

                    %lokální maxima + jejich obálka
                    [maxima,pozice]=findpeaks(x_L);                             
                     obalka_max=spline([0 pozice osa_x(end)+1],[0 maxima 0],osa_x); 
                    
                    %lokální minima + jejich obálka
                    [minima,pozice1]=findpeaks(-x_L);                             
                    obalka_min=spline([0 pozice1 osa_x(end)+1],[0 -minima 0],osa_x); 
                    
                    mean=(obalka_max+obalka_min)/2;
                    slozka=x_L-mean;                       %odečtení průměru od signálu

                    odchylka=sum(((x_L-slozka).^2)/((x_L).^2));    

                    x_L=slozka;

          end
           vnitrni_fce=x_L;
           IMF_L{i,1}=vnitrni_fce;
           x_L=x_orig-vnitrni_fce;
           x_orig=x_L;
  end

  imf_L=IMF_L{4,1};   % výstup 4. vnitřní funkce

  IMF_R=cell(10,1);
  x_orig=x_R;
  osa_x=1:length(x_orig);

  for i=1:10                 % rozklad na 10 vnitřních funkcí
      odchylka=10;   

          while odchylka>0.3

%                     lokální maxima + jejich obálka
                    [maxima,pozice]=findpeaks(x_R);                             
                    obalka_max=spline([0 pozice osa_x(end)+1],[0 maxima 0],osa_x); 

%                     lokální minima + jejich obálka
                    [minima,pozice1]=findpeaks(-x_R);                             
                    obalka_min=spline([0 pozice1 osa_x(end)+1],[0 -minima 0],osa_x); 
                    
                    mean=(obalka_max+obalka_min)/2;
                    slozka=x_R-mean;                       %odečtení průměru od signálu

                    odchylka=sum(((x_R-slozka).^2)/((x_R).^2));    

                    x_R=slozka;

          end
          vnitrni_fce=x_R;
          IMF_R{i,1}=vnitrni_fce;
          x_R=x_orig-vnitrni_fce;
          x_orig=x_R;
  end

  imf_R=IMF_R{4,1};     % výstup 4. vnitřní funkce
end