function [edc]=edcn(y,p)

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

LL=length(y);
ysqr=abs(y).^p;
summ=nansum(ysqr);

for i=1:LL, % belső szummák kiszámolása
    tmp(i)=ysqr(i)+elozo;
    elozo=tmp(i);
end;

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

for i=1:LL, % log of zero warning elkerülése végett
    if edc(i)<=0,
        edc(i)=NaN;
    end;
end;
            
% edc=10*log10(edc.^(2/p)); % edc szeruseget ad vissza
edc=20/p*log10(edc); % energia mertekegysegre normaljuk