function [N,d]=fract_d(x,NK);
%Âû÷èñëåíèå ôðàêòàëüíîé ðàçìåðíîñòè âðåìåííîãî ð?äà x(t)
%êëåòî÷íûì ìåòîäîì.
%Äèàïàçîí èçìåíåíèé t è x íîðìèðóåòñ? ê êâàäðàòó ñî ñòîðîíîé = 1.
%Çàòåì âû÷èñë?åòñ? êîëè÷åñòâî êâàäðàòîâ N ñî ñòîðîíîé d, íåîáõîäèìûõ
%äë? ïîêðûòè? êðèâîé x(t). Â êàæäîì ñòîëáöå ïî t øèðèíîé d
%âû÷èñë?åòñ? ðàçìàõ max(x(d))-min(x(d)) è N åñòü êîëè÷åñòâî
%èíòåðâàëîâ d, ïîêðûâàþùèõ ýòîò äèàïàçîí. Ñóììèðîâàíèå ïî âñåì
%ñòîëáöàì äàåò N(d).
%
%Âûçîâ:  [N,d]=fract_d(x,[NK])
%
%x - èñõîäíûé ð?ä x(t), NK - ïîêàçàòåëü ñòåïåíè 2, ò.å. êîëè÷åñòâî
%äåëåíèé èñõîäíîãî êâàäðàòà (ïî óìîë÷àíèþ - îïðåäåë?åòñ? äëèíîé
%ðåàëèçàöèè x(t)).
%N,d - êîëè÷åñòâî êâàäðàòîâ ñî ñòîðîíîé d;

% .... íîðìèðîâêà ð?äà x îò 0 äî 1
%tt=(t-min(t))/(max(t)-min(t));
xx=(x-min(x))/(max(x)-min(x));
%
lx=length(xx);
if nargin<2
   NK=nextpow2(lx);   % Âîçìîæíîå êîë-âî äåëåíèé èñõîäíîãî ð?äà íà 2
   if (2 .^NK > lx)
      NK = NK-1;
   end
%   NK=NK-2;
end
N=zeros(NK,1);
d=zeros(NK,1);
for k=1:NK,
    kk=2 .^(k-1);
    d(k)=1/kk;
    for l=1:kk,
        i1=(l-1)*lx/kk+1;
        i2=l*lx/kk;
        N(k)=N(k)+ceil( ( max(xx(i1:i2)) - min(xx(i1:i2)) )/d(k) );
    end
%    disp([k d(k) N(k)])
end
%d=d*(max(x)-min(x));
