function Kod_1(Sample_Rate,doba_mereni,zacatek,stred,konec,delka_useku,signal,AAA)
fvz=Sample_Rate; % vzorkovaci frekvence (Hz)
T=length(signal); % déla signálu
time=doba_mereni/T:doba_mereni/T:doba_mereni; % èasový vektor
zacatekpom=zacatek*fvz; % zaèátek prvního úseku
stredpom=stred*fvz;
stredpom=round(stredpom); % zaèátek druhého úseku
konecpom=konec*fvz;
konecpom=round(konecpom); % zaèátek tøetího úseku
delka_usekupom=delka_useku*fvz; % délka úseku
seg1pom=zacatekpom+delka_usekupom-1;
seg1pom=round(seg1pom);
seg2pom=stredpom+delka_usekupom-1;
seg2pom=round(seg2pom);
seg3pom=konecpom+delka_usekupom-1;
seg3pom=round(seg3pom);
segment1=signal(zacatekpom:seg1pom); % prvni usek ze zacatku
segment2=signal(stredpom:seg2pom); % druhy usek ze støedu signalu
segment3=signal(konecpom:seg3pom); % tøetí usek z konce signalu
%XXXXXXXXXXXXXXXXXXX
%delete(get(findobj('tag','axes2'),'children')) % mazani stareho prubehu z axes2
delete(get(AAA(2),'children'))
%line(time,signal,'color','k','parent',findobj('tag','axes2')); % kresleni cas. prubehu do axes1
line(time,signal,'color','k','parent',AAA(2)); % kresleni cas. prubehu do axes2
line(time(zacatekpom:round(zacatekpom+delka_usekupom)),signal(zacatekpom:round(zacatekpom+delka_usekupom)),'color','g','parent',AAA(2)); % kresleni cas. prubehu do axes2
line(time(stredpom:round(stredpom+delka_usekupom)),signal(stredpom:round(stredpom+delka_usekupom)),'color','b','parent',AAA(2)); % kresleni cas. prubehu do axes2
line(time(konecpom:round(konecpom+delka_usekupom)),signal(konecpom:round(konecpom+delka_usekupom)),'color','r','parent',AAA(2)); % kresleni cas. prubehu do axes2
axes(AAA(2))
title('EMG signál')
xlabel('èas [s]');
ylabel('napìtí (aktivace) [mV]');
% výpoèet výkonového spektra
S1F=abs(fft(segment1)); % spektrum prvniho useku (oboustranne)
S2F=abs(fft(segment2)); % spektrum druheho useku (oboustranne)
S3F=abs(fft(segment3)); % spektrum tøetího useku (oboustranne)
S1F=S1F(1:round(end/2));% spektrum prvniho useku (jednostranne)
S2F=S2F(1:round(end/2));% spektrum druheho useku (jednostranne)
S3F=S3F(1:round(end/2));% spektrum tøetího useku (jednostranne)
% kumulativní souèet výkonového spektra
% med_f=f(find(cumsum(S)>=0.5*sum(S),1))
%median pro prvni usek
f1F=linspace(0,fvz/2,length(S1F)); % frekvence spektra
med1=medfreq(S1F,f1F); % frekvence, kde kumulativní souèet výkonového spektra dosáhne 50 % 
%median pro druhy usek
f2F=linspace(0,fvz/2,length(S2F)); % frekvence spektra
med2=medfreq(S2F,f2F); % frekvence, kde kumulativní souèet výkonového spektra dosáhne 50 % 
%median pro tøetí usek
f3F=linspace(0,fvz/2,length(S3F)); % frekvence spektra
med3=medfreq(S3F,f3F); % frekvence, kde kumulativní souèet výkonového spektra dosáhne 50 % 
%XXXXXXXXXXX
axes(AAA(3))
medfreq(S1F,f1F);
set(gca,'color',[0.7 0.7 0.7])
%XXXXXXXXXXX
axes(AAA(4))
medfreq(S2F,f2F);
set(gca,'color',[0.7 0.7 0.7])
%XXXXXXXXXXX
axes(AAA(5))
delete(get(AAA(5),'children'))%zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
medfreq(S3F,f3F);
set(gca,'color',[0.7 0.7 0.7])
%XXXXXXXXXXX
rozdil=(med1-med3);
diary on
diary('Výpis_výsledkù.txt')
disp(['VÝPIS VÝSLEDKÙ']);
disp(['- ROZDÌLENÍ SIGNÁLU DO TØÍ OBLASTÍ']);
disp(['  Medián na zaèátku je: ',num2str(med1),' Hz']);
disp(['  Medián uprostøed je: ',num2str(med2),' Hz']);
disp(['  Medián na konci je: ',num2str(med3),' Hz']);
disp(['  Rozdíl mediánu frekvencí na zaèátku a na konci signálu je: ', num2str(rozdil), ' Hz']);
window=128;                  % Welchova metoda
S1W=pwelch(segment1,window); % Vykonove spektrum na zacatku signalu pomoci Welchovy metody
S2W=pwelch(segment2,window); % Vykonove spektrum na prostøedku signalu pomoci Welchovy metody
S3W=pwelch(segment3,window); % Vykonove spektrum na konci signalu pomoci Welchovy metody
S1Wmax=max(S1W);
S2Wmax=max(S2W);
S3Wmax=max(S3W);
rozdil2=(S3Wmax-S1Wmax);
diary on
disp(['  Špièka spektra na zaèátku je: ',num2str(S1Wmax),' Hz'])
disp(['  Špièka spektra uprostøed je: ',num2str(S2Wmax),' Hz'])
disp(['  Špièka spektra na konci: ',num2str(S3Wmax),' Hz'])
disp(['  Rozdíl špièky výkonového spektra na konci a na zaèátku signálu je: ', num2str(rozdil2), ' Hz']);
diary off
%XXXXXXXXXXXXXXX
NN=length(S1W);
kk=1:NN;
%delete(get(findobj('tag','axes6'),'children')) % mazani stareho prubehu z axes6
delete(get(AAA(6),'children'))
line(kk,S1W,'color','g','parent',AAA(6)); % kresleni cas. prubehu do axes6
hold on
line(kk,S2W,'color','b','parent',AAA(6)); % kresleni cas. prubehu do axes6
hold on
line(kk,S3W,'color','r','parent',AAA(6)); % kresleni cas. prubehu do axes6
axes(findobj('tag','axes6'))
title('Výkonové spektrum EMG signálu')
xlabel('frekvence [Hz]');
ylabel('výkon [dB/Hz]');
legend('zaèátek','støed','konec')
med=[med1 med2 med3]; % index svalové únavy
%XXXXXXXXXXXXXXXXX
%delete(get(findobj('tag','axes7'),'children')) % mazani stareho prubehu z axes7
delete(get(AAA(7),'children'))
line([1 , 2, 3],med,'color','b','marker','*','parent',AAA(7)); % kresleni cas. prubehu do axes7
axes(AAA(7))
ylabel('fmed [Hz]');
xlabel('Dobra trvání kontrakce');
title('Pokles mediální frekvence');
set(gca,'XTick',[1 2 3], 'XTickLabel',{'zaèátek','støed','konec'});
% rozdìlení na více úsekù
sig=signal(round(T/fvz):round(T-T/fvz)); % orez signalu
delka_useku2=T/doba_mereni; % délka úseku (pøibližnì 1s)
delka2=length(sig); % delka orezeneho signalu
prekryv=0;
index=1:delka_useku2-prekryv:delka2-delka_useku2; % rozdeleni signalu na useky
mediany=[]; % inicializace
meany=[];   % inicializace
%spektrum a nalezeni medianu
    for i=index
        i=round(i);
        sm=i+delka_useku2-1;
        sm=round(sm);
    %S=abs(fft(sig(i:i+delka_useku2-1))); % oboustranne spektrum jednoho z useku
    S=abs(fft(sig(i:sm)));
    S=S(1:round(end/2)); % jednostranne spektrum
    f=linspace(0,fvz/2,length(S)); % frekvence spektra
    medv=f(find(cumsum(S)>=0.5*sum(S),1)); % nalezeni medianu 
    meanv=meanfreq(S,f);
    meany=[meany,meanv];
    mediany=[mediany,medv]; % ulozeni vsech medianu do vektoru
    end
vektor=(1:length(index)); 
aprox=polyfit(vektor,mediany,1); % aproximace 1. stupne=linearne mediany
f1 = polyval(aprox,vektor); 
aprox2=polyfit(vektor,meany,1); % aproximace 1. stupne=linearne meany
f2 = polyval(aprox2,vektor); 
smernicemedian=(f1(end)-f1(1))/(length(f1)-1); % smernice primky (aproximacni primky 1.radu)
smernicevmean=(f2(end)-f2(1))/(length(f2)-1); % smernice primky (aproximacni primky 1.radu)
prumermedian=mean(mediany);
odchylkamedian=std(mediany);
prumermean=mean(meany);
odchylkamean=std(meany);
inetrceptmedian=smernicemedian(1,1);
inetrceptmean=smernicevmean(1,1);
diary on
disp(['- RODZÌLENÍ SIGNÁLU DO VÍCE OBLASTÍ']);
disp(['  Smìrnice pøímky medianu je: ', num2str(smernicemedian)]);
disp(['  Smìrnice pøímky mean je: ', num2str(smernicevmean)]);
disp(['  Intercept pøímky medianu je: ', num2str(inetrceptmedian)]);
disp(['  Intercept pøímky mean je: ', num2str(inetrceptmean)]);
disp(['  Rovnice regresní pøímky medianu je: y = ', num2str(smernicemedian) '·x + ',num2str(inetrceptmedian)]);
disp(['  Rovnice regresní pøímky mean je: y = ', num2str(smernicevmean) '·x + ',num2str(inetrceptmean)]);
diary off
%XXXXXXXXXXXXXXXX
%delete(get(findobj('tag','axes8'),'children')) % mazani stareho prubehu z axes8
delete(get(AAA(8),'children'))
line([1:length(mediany)],mediany,'color','b','parent',findobj('tag','axes8')); % kresleni cas. prubehu do axes8
hold on
%plot(vektor,f1,'r')
line(vektor,f1,'color','r','parent',AAA(8)); % kresleni cas. prubehu do axes8
axes(AAA(8))
legend('èasový prùbìh mediánù','lineární aproximace');
hold off
title('Èasový prùbìh hodnoty mediánù');
xlabel('Dobra trvání kontrakce [s]')
ylabel('medián [Hz]')
%XXXXXXXXXXXXXXXXXX
%delete(get(findobj('tag','axes9'),'children')) % mazani stareho prubehu z axes9
delete(get(AAA(9),'children'))
line([1:length(meany)],meany,'color','b','parent',AAA(9)); % kresleni cas. prubehu do axes9
hold on
%plot(vektor,f2,'r')
line(vektor,f2,'color','r','parent',AAA(9)); % kresleni cas. prubehu do axes9
axes(AAA(9))
legend('èasový prùbìh prùmìrù','lineární aproximace')
hold off
title('Èasový prùbìh hodnoty mean');
xlabel('Dobra trvání kontrakce [s]')
ylabel('mean [Hz]')
%XXXXXXXXXXXXXXXXXXXXXX
%delete(get(findobj('tag','axes10'),'children')) % mazani stareho prubehu z axes10
delete(get(AAA(10),'children'))
line([1:length(meany)],meany,'color','g','parent',AAA(10)); % kresleni cas. prubehu do axes10
hold on
line([1:length(mediany)],mediany,'color','r','parent',AAA(10)); % kresleni cas. prubehu do axes10
line(vektor,f2,'color','b','parent',AAA(10)); % kresleni cas. prubehu do axes10
line(vektor,f1,'color','b','parent',AAA(10)); % kresleni cas. prubehu do axes10
axes(AAA(10))
title('Èasový prùbìh hodnoty medián a mean - porovnání');
xlabel('Dobra trvání kontrakce [s]')
ylabel('medián, mean [Hz]')
legend('mean','median')
% Zero crosing
zrc=[]; % inicializace
for i=index;
    i=round(i);
    szrc=i+delka_useku2-1;
    szrc=round(szrc);
    %segment=sig(i:i+delka_useku2-1); % vyber useku signalu pro zpracovani  
    segment=sig(i:szrc);
    znamenko=sign(segment); % oznaceni hodnot signalu kladne nebo zaporne (1,-1) 
    pruchod=sum(abs(diff(znamenko))); % zjisteni poctu pruchodu nulou daneho useku
    zrc=[zrc, pruchod]; % ulozeni vsech poctu pruchodu nulou 
end;
vektorzrc=(1:length(index)); % aproximace vektoru pruchodu nulou
aproxzrc=polyfit(vektorzrc,zrc,1); % aproximace 1. stupne=linearne
f1zrc = polyval(aproxzrc,vektorzrc);
smernicezrc=(f1zrc(end)-f1zrc(1))/(length(f1zrc)-1); % smernice linearni primky
prumerzrc=mean(zrc); % prumer
odchylkazrc=std(zrc); % smerodatna odchylka
interceptzrc=smernicezrc(1,1);
diary on
disp(['- ZERO CROSSING']);
disp(['  Smìrnice pøímky Zero Crossing je: ', num2str(smernicezrc)]);
disp(['  Intercept pøímky Zero Crossing je: ', num2str(interceptzrc)]);
disp(['  Rovnice regresní pøímky Zero Crossing je: y = ', num2str(smernicezrc) '·x + ',num2str(interceptzrc)]);
diary off
%XXXXXXXXXXXXXXXXXXXXXXXXXX
%delete(get(findobj('tag','axes11'),'children')) % mazani stareho prubehu z axes11
delete(get(AAA(11),'children'))
line([1:length(zrc)],zrc,'color','b','parent',AAA(11)); % kresleni cas. prubehu do axes11
hold on
line(vektorzrc,f1zrc,'color','r','parent',AAA(11)); % kresleni cas. prubehu do axes11
axes(AAA(11))
title('Èasový prùbìh prùchodu EMG signálu nulou');
xlabel('jednotlivé úseky [s]')
ylabel('poèet prùchodù nulou')
legend('èasový prùbìh poètù prùchodù nulou','polynom 1.st.')
% rùst amplitùdy
y=envelope(signal,1000,'rms');
vektorv=(time);          % Aproximace vektroru spicka spicka
aproxv=polyfit(vektorv,y,1);   % aproximace 1. stupne=linearne
f1v = polyval(aproxv,vektorv); % 
smerniceS=(f1v(end)-f1v(1))/(length(f1v)-1);
interceptS=smerniceS(1,1);
diary on
disp(['- ROSTOUCÍ AMPLITÙDA SIGNÁLU']);
disp(['  Smìrnice pøímky signálu v absolutní hodnotì je: ', num2str(smerniceS)]);
disp(['  Intercept pøímky vyhlazeného signálu je: ', num2str(interceptS)]);
disp(['  Rovnice regresní pøímky vyhlazeného signálu je: y = ', num2str(smerniceS) '·x + ',num2str(interceptS)]);
diary off
%XXXXXXXXXXXXXXXXX
%delete(get(findobj('tag','axes12'),'children')) % mazani stareho prubehu z axes12
delete(get(AAA(12),'children'))
line([time],y,'color','k','parent',AAA(12)); % kresleni cas. prubehu do axes12
hold on
line(vektorv,f1v,'color','r','parent',AAA(12)); % kresleni cas. prubehu do axes12
axes(AAA(12))
title('Nárùst amplitùdy EMG signálu v èase');
xlabel('èas[s]')
ylabel('napìtí [mV]')
legend('Aproximace','polynom 1.st.')
%-------------------------------------------------------