function [F0 E]=f_F0(y,fs,k,delkaS,handles)
% zde bude provedena detekce základního tonu a vyhodnocení průměrného
% základního tonu.
% definice zakladnich parametru
NN=2048;
prekryv=NN;     %definuje se v poctech vzorku
fmin=50;
fmax=450;
prah=350;
konst=1.2;
% konfigurace % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
if exist('conf.xls','file')==2
    st=konfigurace('ton   ');
    for l=1:length(st)
        switch st(l).name
            case('fmin')
                fmin=st(l).cislo;
            case('fmax')
                fmax=st(l).cislo;
            case('NN')
                NN=st(l).cislo;
            case('prekryv')
                prekryv=st(l).cislo;
            case('prah')
                prah=st(l).cislo;
            case('konst')
                konst=st(l).cislo;
        end
    end
end
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

%     figure
%     spectrogram(y,hanning(1024),512,1024,fs, 'yaxis');
%     xlabel('{{\itt}} (s) \rightarrow')
%     ylabel('{{\itf}} (Hz) \rightarrow')
%     text(6.2,-1500,'{{\itSG}} (dB) \downarrow')
%     caxis([-60 -40])
%     colorbar
%     set(gca,'layer','top','box','on')
% y=y/max(y);
% [b,a]=butter(5,1000/(fs/2),'low');
% y=filter(b,a,y);

% segmentace signalu
if(prekryv==NN)
    f=enframe(y,hanning(NN))';
else
    f=enframe(y,hanning(NN),prekryv)';       %vstup je signal velikost okna je 2048 a 1024 je prekryv
end
% detekce zakladniho tonu reci
[R0 N]=size(f);

zn=zeros(1,N);
F0=zeros(3,N);
% definice "lagu" tj zakladni perioda ve vzorcich

Lmin=fix(fs/fmax);
Lmax=fix(fs/fmin);
%     vypocet casove osy
F0(2,:)=linspace(1/(fs/NN)+k*delkaS,(N*prekryv/NN)/(fs/NN)+k*delkaS,N);

% 1.stanovení energie
E=sum(f.^2)/R0;
Em=mean(E);
if get(handles.checkbox2,'Value')==1
    for i=1:N
        if E(i)>Em   %zrychleni algoritmu akf se pocita jenom tam kde je potreba. 
            %    urceni zakladniho tonu
            R=xcorr(f(:,i));
            R=R(R0+Lmin:R0+Lmax);
            Rk=find(R==max(R))+Lmin;
            F0(1,i)=fs/min(Rk);
            zcrr(i)=zcr(f(:,i));
        end
    end
end
% konec urceni zakladniho tonu reci
% % % % % % % % % % % % % % % % % % % % % % % % % %
% stanoveni zmelosti a neznelosti hlasek a energie

if get(handles.checkbox2,'Value')==1
    index=find(F0(1,:)<(fmin+10)*ones(1,N));
    F0(1,index)=0;
    %     určení významných okamžiku a uložení do F0
    index=find(F0(1,:)>ones(1,N));
    mez=mean(F0(1,index));
    indme=find(F0(1,:)>ones(1,N)*konst*mez);
    %segmentace na mensi useky
    seg=enframe(diff(indme),5);
    seg1=enframe(indme,5);
    su=sum(seg')/5;
    for j=1:length(seg(:,1))
        if (su(j)<10)
            F0(3,seg1(j,:))=1;
        end
    end
end
% plot E
if get(handles.checkbox8,'Value')==1
    plot(handles.axes1,F0(2,:)/60,E);
    pause(0.001)
end
