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

global ir;
global Fs;

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 T20 (zde jako T30)
%jednotlivé dB poklesy a počátky podle definic 

begin = min(find(E < -3));
t35   = min(find(E < -35));

if ~isempty(t35)
    [A30,B30] = intlinear(x(begin:t35),E(begin:t35));
    T30 = (-60)/(B30);
else
    T30=100;                
end

end