function [edcf]=edc(y)

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

LL=length(y);
ysqr=y.^2;

if max(isnan(ysqr)) > 0, summ=nansum(ysqr); else summ=sum(ysqr); end;
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;

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

edcf(edcf<=0)=NaN;

edcf=10*log10(edcf);