function [r3] = detektorRRR(vsig)
slo = 5000; % nastavení délky prohledávaného signálu
%% nalezení lokálního maxima
for i = 2 : slo
    if vsig(1,i) > vsig(1,i-1) && vsig(1,i) > vsig(1,i+1) % pokud je předchozí hodnota menší než následující a zároveň pokud je následující signál menší než předchozí je detekováno lokální maximum 
        detmax(1,i) = vsig(1,i);
    else
        detmax(1,i) = 0; 
    end
end
%% nalezení lokálního minima
for ii = 2 : slo
    if vsig(1,ii) < vsig(1,ii-1) && vsig(1,ii) < vsig(1,ii+1)% pokud je předchozí hodnota větší než následující a zároveň pokud je následující signál větší než předchozí je detekováno lokální maximum 
        detmin(1,ii) = vsig(1,ii);
    else
        detmin(1,ii) = 0;
    end
end
%% sloučení nalezených maxim
extremy = detmax+detmin;
%% nastavení prahů
prah1 = (max(vsig(1,396:1100)))*(1.5/3);
prah2 = (min(vsig(1,396:1100)))*(1.5/3);
%% nastavení hodnot pod prahem na nulu 
extremy1 = extremy;
extremy(extremy<prah1)=0; % pokud je nalezená hodnota menší než prah je nastavena 0
extremy1(extremy1>prah2)=0; % pokud je nalezená hodnota větší než prah je nastavena 0
extremy = extremy+extremy1; % sloučení prahovaných hodnot
%% vypuštění nul pro detekci průchodu nulou
i = 1;
for k = 1 : length(extremy)
   if extremy(k) < 0
       extrem(i) = -k; % pokud je nalezená pozice meší než 0 je nastavena záporně
       i = i+1;
   elseif extremy(k) > 0
       extrem(i) = k; % pokud je nalezená pozice větší než 0 je nastavena kladně
       i = i+1;
   end
end
%% detekce průchodu nulou
ii = 1;
for i=2:length(extrem)     
    if (extrem(i-1)<0 && extrem(i)>0) || (extrem(i-1)>0 && extrem(i)<0) % zjištění jestli dav sousední vzorky mají opačné znamínka
         if abs(abs(extrem(i))-abs(extrem(i-1)))<=50 % pokud jsou pozice vzdálené méně než 50 vzorků nejsou použity
             for ind = abs(extrem(i-1)):abs(extrem(i))
                 if (vsig(ind)<=0 && vsig(ind+1)>=0) || (vsig(ind)>=0 && vsig(ind+1)<=0)
                 r(1,ii) = ind+1;
                 ii = ii+1;
                 end
             end
         end
    end  
end
%% shluková analýza
r2 = shluk(r,vsig);
%% omezení detekce nesprávných R kmitů
r3 = r2(1,1);
for ind1 = 2 : size(r2,2)
   if abs(r2(1,ind1))-abs(r2(1,ind1-1)) <= 200 % pokud jsou dvě sousední hodnoty vzdáleny o méně než 200 vzorků jsou vynechány
      r3 = [r3]; 
   else 
      r3 = [r3 r2(1,ind1)]; 
   end
end
