function [ANGLE_XCORR,ANGLE_vector] = xcorr_update_linearni(sig_c)
% vypocita krizovou korelaci pro linearni mikrofonni pole a nasledne
% spocita uhel pro kazdy dvojici a z nich prumernou hodnotu
%   sig_c 

global f_vz c d

%% inicializace promennych
M = length(sig_c(1,:)); % pocet vstupnich signalu
Angle_c = zeros(M-1,1); % vypocitane uhly
tau_est = zeros(M,1); % casova zpozdeni

for i = 1:M
[Cor,Posunuti] = xcorr(sig_c(:,i),sig_c(:,1)); % vypocita krizovou korelaci
[~,I] = max(abs(Cor)); % najdeme index maximalni hodnoty v korelaci
tau_est(i,1) = Posunuti(I)/f_vz; % hodnota posunuti se prepocita na casovy rozdil
end


for n = 2:M
    %% vyhodnoceni uhlu
    Angle_c(n-1,1) = rad2deg(asin((tau_est(n)*c)/(d*(n-1))));
    
    % overeni, ze hodnota neni NaN
    if isnan(Angle_c(n-1,1))
        Angle_c(n-1,1) = [];
    end
end
% test, jestli vyjde realna hodnota, kdyz ne, tak vysledek nesmi byt
% zahrnut do vysledneho vypoctu uhlu
%Angle_c(imag(Angle_c)~=0) = []; % pokud je v uhlu imaginarni cast, vysledek neni zahrnut do vysledku
  
    
ANGLE_vector = real(Angle_c);
ANGLE_XCORR = mean(ANGLE_vector); % prumerna hodnota z vektoru uhlu

end

