function [OUTput, OUTclear] = firstCLUSTERING(cyklyFF,cyklyKOR,RR) 
% Tato funkce dělá takovou primitivní shlukovku, kdy vybere jeden vzor ze
% signálu a dělá korelaci se všema ostatníma, u těch kde je korelace vyšší
% než práh přidá do své skupiny ve vektoru OUTput a to tak že budou mít stejné
% číslo, pokud po dokončení korelace se najdou nějaké odlišné signály vše
% probíhá znovu s jiným vzorem.

[N,~] = size(cyklyKOR);
OUTput = ones(N,1);
prahKOR = 0.84;  
%% Pokud secondCLUSTERING bude fungovat dobře tak sem mužeme dát vyšší hodnotu aby sem vubec nechodily PVC
%PrahSTD = 0.04; %pokud je std nižší pak tam není žádná výchilka
rest = 2:N;
mark = 2; %značení shluků
v = 1; 
ff = FF(cyklyFF)'; 
smerOD = std(ff); %směrodatná odchylka tvarových faktorů

while 1 
    r_new = [];
    maxKOR = [];
    OUTput(v,1) = mark; % Vzor jde do svého shluku
    vzor = cyklyKOR(v,:);
    for i = rest
           pom = cyklyKOR(i,:);
           next = corr(vzor',pom');
           % Zahrnutí do rozhodování tvarový faktor, který bereme ze širšího okna než korelaci 
           if ff(i)>(ff(v)+smerOD) || ff(i)<(ff(v)-smerOD) 
               next = next-0.1; 
           end
           maxKOR = [maxKOR; next];
           if next<prahKOR, r_new =[r_new i]; end
    end
    highKOR = rest(maxKOR>=prahKOR );   % Uložení indexu řadků kde je korelace vyšší než práh

    OUTput(highKOR) = mark;
    if isempty(r_new) % Shlukování hotovo
      break 
    elseif numel(r_new)==1
      OUTput(r_new) = mark+1;
      break
    end
    v = r_new(1);  % Jako vzor určíme další 
    rest = r_new(2:end); % Ze zpracování vynecháme to co je vzor
    mark = mark+1;
end

pom = unique(OUTput); %kolik máme druhů 
for i = 1:size(pom,1) %chci vědět počet řádků
    pom(i,2) = sum(OUTput==pom(i,1)); %první sloupec označení a druhý četnost
end
[M,~] =  max(pom(:,2));



if numel(find(pom(:,2)==M))<=2 
    %Hledání ABSV provedu pouze pokud je jedno nebo 2 maxima!
    oznaceni = pom(pom(:,2)==M);
    [OUTput, OUTclear,~] = PosouzeniRR(OUTput, oznaceni, RR); % jsou ty nejčetnější skupiny

else % V případě kdy je hodně shluků
    OUTclear = OUTput; % Jdeme dál pracovat se všema
end
end
