
% Výpočet parametru, který je v textu označen kvůli jednotnosti jako T30,
% zde však z důvodu lepší synchronizace se zdrojem jako T40.
% 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 [T40,A40,B40] = reverberb_T40(ir,Fs)

global Fs;
global ir;

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
% ---------------------------------------------------

begin = min(find(E < -5));  
t45   = min(find(E < -45));

    if ~isempty(t45)
        [A40,B40] = intlinear(x(begin:t45),E(begin:t45));
        T40 = (-60)/(B40);
    else
        T40=100;
    end

end