function [t_rr] = zjisti_zot_dob_zav(data_zaver, polarizace, perioda_realna, posun, h)
% podle namerenych dat, polarizace a realne periody vzorkovani nalezne
% hodnotu zaverne zotavovaci doby
% predpoklada spravny pocet vzorku (tak, aby byla jedna perioda)

t_rr = 0;


delka = length(data_zaver(1:posun:end));

% prahovani podle hodnoty prahoveho napeti
podm = 1;
i = 1;
while podm == 1
    data = data_zaver(i:posun:end);
    % zmenit na napr. polovinu zjisteneho prahoveho napeti
    prahovane = data > 1e-3;
    derivace = conv(double(prahovane), [1 -1]);
    derivace = [0; derivace(2:end-1)];
    [~, index] = min(derivace);
    if index > 10 && index < delka / 2
        podm = 0;
    end
    i = i + 1;
    if i > 25
        t_rr = -1;
        return;
    end
end

% spravne nastavena data
axes(h);
cla;
xlabel('t (\mus) \rightarrow');
ylabel('I (mA) \rightarrow');
plot( (1:length(data)) .* perioda_realna .* 1e6 , data .* 1e3);
hold on;

[minimum ~] = min(data);

% v prubehu neni pruchod nulou, zotavovaci dobu nelze urcit
if minimum > -5e-5
    t_rr = -1;
    %xlabel('nelze urcit zot. dobu');
else
    % hledani useku mezi prusecikem s osou a desetinou z maxima peaku
    pruchod = 0;
    mista = [0 0];
    for i=2:delka
        if pruchod == 0
            % hledani pruchodu shora dolu
            if data(i-1) > 0 && data(i) < 0
                pruchod = 1;
                mista(1) = i;
            end
        elseif pruchod == 1
            % hledani pruchodu zespoda nahoru
            if data(i-1) < minimum/10 && data(i) > minimum/10
                mista(2) = i;
                break;
            end
        end
    end
    
    t_rr = (mista(2) - mista(1)) * perioda_realna;
    
    % zobrazeni krivek, ktere vymezuji zotavovaci dobu
    plot([mista(1) mista(1)] .* perioda_realna .* 1e6, [min(data) max(data)] .* 1e3, 'Color', [0.5 0.5 0.5]);
    plot([mista(2) mista(2)] .* perioda_realna .* 1e6, [min(data) max(data)] .* 1e3, 'Color', [0.5 0.5 0.5]);
    
end
