function [edcc]=edc_chu(y)

edcc=zeros(size(y));tmp=zeros(size(y));elozo=0; %inicializalas

LL=length(y);

zaj=y(round(.9*LL):end); % impválasz utolsó 10%-a (y // keskenysáv is lehet)
RMS_zaj = rms(zaj).^2;
ysqr = y.^2 - RMS_zaj; 
if max(isnan(ysqr)) > 0, summ=nansum(ysqr); else summ=sum(ysqr); end;
ysqr=abs(ysqr);
belsonan=isnan(ysqr);

if max(belsonan)>0, % ha nan van valahol félúton
    for i=1:LL, % belső szummák kiszámolása
        if ~belsonan(i),
            tmp(i)=ysqr(i)+elozo;
            elozo=tmp(i);
        end;
    end;
else
    for i=1:LL, % belső szummák kiszámolása
        tmp(i)=ysqr(i)+elozo;
        elozo=tmp(i);
    end;
end;

edcc=1-tmp./summ; % osztás az átlagértékkel

edcc(edcc<=0)=NaN;
            
edcc=10*log10(edcc);