
% Výpočet parametru, který je v textu označen kvůli jednotnosti jako T10,
% zde však z důvodu lepší synchronizace se zdrojem jako T20.
% Zdroj výpočetního algoritmu jsou z oficiálních webové stránky výrobce
% programu  Matlab 
% (http://www.mathworks.com/matlabcentral/fileexchange/11392-acmus-room-acoustic-parameters)


function [T20,A20,B20] = reverberb_T20(ir,Fs)

global Fs; 
global T20;

E(length(ir):-1:1) = (cumsum(ir(length(ir):-1:1))/sum(ir));

if find(E < 0)
    E(min(find(E < 0)):end) = [];
    E=10*log10(E);
else
    E=10*log10(E);
end

E

x = (0:length(E)-1)/44100;

% ------------------------------------------------------------
function    [A,B] = intlinear(x,y)

mx = mean(x);        my = mean(y);
mx2 = mean(x.^2);    my2 = mean(y.^2);
mxy = mean(x.*y);
A = (mx2*my-mx*mxy)/(mx2-mx^2);
B = (mxy - (mx*my))/(mx2-mx^2);
end
% ---------------------------------------------------
% výpočet parametru T10 (zde jako T20)
%jednotlivé dB poklesy a počátky podle definic 

begin = min(find(E < -5));
t25   = min(find(E < -25));    

if ~isempty(t25)
    [A20,B20] = intlinear(x(begin:t25),E(begin:t25));
    T20 = (-60)/(B20);
else
    T20 = 100;
end

end