function [Values_R_ecc] = R_ecc(weight,height,time_R_ecc,ch4_R_ecc, ch7_R_ecc, ch8_R_ecc, ch12_R_ecc) 
%funkcia na spracovanie nameraných signálov excentrického merania pravej končatiny
%vstupmi je hmotnosť a výška subjekta a ďalej sú na vstupe výstupy z funkcie imp2vect
%výstupom funkcie je tabuľka parametrov slúžiacich na vyhodnotenie výsledkov
%spustenie funkcie: [Values_R_ecc] = R_ecc(60,1.69,time_R_ecc,ch4_R_ecc, ch7_R_ecc, ch8_R_ecc, ch12_R_ecc)

% weight = _ v kg (subjekt D --> 60)
% height = _ v m (subjekt D --> 1.69)

%vzorkovacia frekvencia
fvz_R_ecc = 4000;

%kolko sekund zo zaznamu nas zaujima
s_R_ecc = 55.7;
time_R_ecc = time_R_ecc(1:(s_R_ecc*fvz_R_ecc));
ch4_R_ecc = ch4_R_ecc(1:(s_R_ecc*fvz_R_ecc));
ch7_R_ecc = ch7_R_ecc(1:(s_R_ecc*fvz_R_ecc));
ch8_R_ecc = ch8_R_ecc(1:(s_R_ecc*fvz_R_ecc));
ch12_R_ecc = ch12_R_ecc(1:(s_R_ecc*fvz_R_ecc));

%prepočty signálov
angle_R_ecc = ch12_R_ecc*2*1000/10; %uhol v °
torque_R_ecc = ch4_R_ecc*2*1000/5; %krútiaci moment v Nm
EMG_VM_R_ecc = ch7_R_ecc./1000; %EMG vastus medialis v mV
EMG_VL_R_ecc = ch8_R_ecc./1000; %EMG vastus lateralis v mV

%% izokineticky dynamometer

% filtracia signalov z izokinetickeho dynamometra
[b_R_ecc,a_R_ecc]=butter(3,20/fvz_R_ecc,'low');
torque_filtered_R_ecc=filtfilt(b_R_ecc,a_R_ecc,torque_R_ecc);
angle_filtered_R_ecc = filtfilt(b_R_ecc,a_R_ecc,angle_R_ecc);

% detekcia maximálnych hodnôt sily
[yPKS1_R_ecc, xPKS1_R_ecc]=findpeaks(torque_filtered_R_ecc, 'MinPeakHeight', 130, 'MinPeakDistance', 12000); %flexia
[yPKS2_R_ecc, xPKS2_R_ecc]=findpeaks(-torque_filtered_R_ecc, 'MinPeakHeight', 40, 'MinPeakDistance', 12000); %extenzia

%uhly kedy došlo k maximám
yANG1_R_ecc = angle_filtered_R_ecc(xPKS1_R_ecc); %flexia
yANG2_R_ecc = angle_filtered_R_ecc(xPKS2_R_ecc); %extenzia

%priemery sily
EXTENSION_R_ecc = mean(yPKS2_R_ecc); %extenzia...excentricky hamstring
FLEXION_R_ecc = mean(yPKS1_R_ecc); %flexia...excentricky kvadriceps
HAMQUAD_R_ecc = EXTENSION_R_ecc/FLEXION_R_ecc; %pomer H/Q

%priemery uhlov
ANG_EXTENSION_R_ecc = mean(yANG2_R_ecc); %extenzia
ANG_FLEXION_R_ecc = mean(yANG1_R_ecc); %flexia

%data na normalizáciu - body mass index
BMI_R_ecc = weight/(height^2);

%% EMG 

%filtracia signalov EMG
% pohybové artefakty a nestabilita spojení elektroda-koža
% zasahuju do pásma 0 až 20 Hz … filtrace HP s fm=15-20 Hz
[e_R_ecc,f_R_ecc]=butter(4,20/fvz_R_ecc,'high');
EMG_VL_filtered_R_ecc =filtfilt(e_R_ecc,f_R_ecc,EMG_VL_R_ecc); %vastus lateralis
EMG_VM_filtered_R_ecc =filtfilt(e_R_ecc,f_R_ecc,EMG_VM_R_ecc); %vastus medialis

%RMS 
rmsv_EMG_VL_R_ecc = sqrt(movmean(EMG_VL_filtered_R_ecc.^2, 10)); 
rmsv_EMG_VM_R_ecc = sqrt(movmean(EMG_VM_filtered_R_ecc.^2, 10));

%detekcia maximálnych hodnôt aktivacie
[EMG_VL_yPKS1_R_ecc, EMG_VL_xPKS1_R_ecc]=findpeaks(rmsv_EMG_VL_R_ecc, 'MinPeakHeight', 0.4, 'MinPeakDistance', 18000);
[EMG_VM_yPKS1_R_ecc, EMG_VM_xPKS1_R_ecc]=findpeaks(rmsv_EMG_VM_R_ecc, 'MinPeakHeight', 0.4, 'MinPeakDistance', 18000);

%uhly kedy k maximám došlo
EMG_VL_yPKS1_ANG_R_ecc = angle_filtered_R_ecc(EMG_VL_xPKS1_R_ecc);
EMG_VM_yPKS1_ANG_R_ecc = angle_filtered_R_ecc(EMG_VM_xPKS1_R_ecc);

%uhly kedy k maximám došlo
rectified_EMG_VL_R_ecc =abs(EMG_VL_R_ecc);
max_rectified_EMG_VL_R_ecc = max(rectified_EMG_VL_R_ecc);
rectified_EMG_VM_R_ecc =abs(EMG_VM_R_ecc);
max_rectified_EMG_VM_R_ecc = max(rectified_EMG_VM_R_ecc);

%priemery EMG                                                                
VL_R_ecc = mean(EMG_VL_yPKS1_R_ecc);
VM_R_ecc = mean(EMG_VM_yPKS1_R_ecc);
EMG_R_ecc = VM_R_ecc/VL_R_ecc;

%priemery uhlov
ANG_VL_R_ecc = mean(EMG_VL_yPKS1_ANG_R_ecc);
ANG_VM_R_ecc = mean(EMG_VM_yPKS1_ANG_R_ecc);

%% surove signaly
figure
subplot 411
plot(time_R_ecc, ch12_R_ecc)
title('Pozícia - uhol končatiny', 'FontSize', 16)
xlabel('Čas [s]', 'FontSize', 16)
ylabel('Napätie [V]', 'FontSize', 16)
subplot 412
plot(time_R_ecc, ch4_R_ecc)
title('Krútiaci moment', 'FontSize', 16)
xlabel('Čas [s]', 'FontSize', 16)
ylabel('Napätie [V]', 'FontSize', 16)
subplot 413
plot (time_R_ecc, ch7_R_ecc)
title('EMG vastus medialis', 'FontSize', 16)
xlabel('Čas [s]', 'FontSize', 16)
ylabel('Napätie [mikroV]', 'FontSize', 16)
subplot 414
plot(time_R_ecc, ch8_R_ecc) 
title('EMG vastus lateralis', 'FontSize', 16)
xlabel('Čas [s]', 'FontSize', 16)
ylabel('Napätie [mikroV]', 'FontSize', 16)

sgtitle('Pravá končatina/excentrické meranie - surové signály', 'FontSize', 18, 'FontWeight','bold')

%% torque spracovanie
figure
subplot 311
plot(time_R_ecc,ch4_R_ecc)
title('Krútiaci moment')
xlabel('Čas [s]')
ylabel('Napätie [V]')
subplot 312
plot(time_R_ecc,torque_filtered_R_ecc)
title('Krútiaci moment: prepočty a filtrácia')
xlabel('Čas [s]')
ylabel('Krútiaci moment [Nm]')
subplot 313
hold on
plot(time_R_ecc,abs(torque_filtered_R_ecc))
scatter(xPKS2_R_ecc./fvz_R_ecc, abs(yPKS2_R_ecc), 'magenta')
scatter(xPKS1_R_ecc./fvz_R_ecc, abs(yPKS1_R_ecc), 'black')
title('Krútiaci moment: detekcia max. hodnôt a prevod do absolútnych hodnôt')
xlabel('Čas[s]')
ylabel('Krútiaci moment [Nm]')

sgtitle('Pravá končatina/excentrické meranie - spracovanie krútiaceho momentu')

%% angle spracovanie
figure
subplot 311
plot(time_R_ecc, ch12_R_ecc)
title('Pozícia - uhol končatiny')
xlabel('Čas [s]')
ylabel('Napätie [V]')
subplot 312
plot(time_R_ecc, angle_filtered_R_ecc)
title('Pozícia - uhol končatiny: prepočty a filtrácia')
xlabel('Čas [s]')
ylabel('Uhol [°]')
subplot 313
hold on
plot(time_R_ecc,angle_filtered_R_ecc)
scatter(xPKS1_R_ecc./fvz_R_ecc,yANG1_R_ecc, 'black')
scatter(xPKS2_R_ecc./fvz_R_ecc,yANG2_R_ecc,'magenta')
scatter(EMG_VL_xPKS1_R_ecc./fvz_R_ecc,EMG_VL_yPKS1_ANG_R_ecc, 'red')
scatter(EMG_VM_xPKS1_R_ecc./fvz_R_ecc,EMG_VM_yPKS1_ANG_R_ecc, 'green')
title('Pozícia - uhol končatiny')
xlabel('Čas[s]')
ylabel('Uhol [°]')
legend('uhol v čase', 'krútiaci moment - flexia', 'krútiaci moment - extenzia','EMG VL', 'EMG VM')

sgtitle('Pravá končatina/excentrické meranie - spracovanie pozície = uhlu končatiny') 

%% emg spracovanie - rovnaké pre VL aj VM
figure
subplot 311
plot(time_R_ecc, ch8_R_ecc) 
title('EMG vastus lateralis')
xlabel('Čas [s]')
ylabel('Napätie [mikroV]')
subplot 312
plot(time_R_ecc, EMG_VL_filtered_R_ecc)
title('EMG vastus lateralis: prepočet a filtrácia')
xlabel('Čas [s]')
ylabel('Napätie [mV]')
subplot 313
plot(time_R_ecc, rmsv_EMG_VL_R_ecc)
hold on
scatter(EMG_VL_xPKS1_R_ecc./fvz_R_ecc, EMG_VL_yPKS1_R_ecc, 'black')
hold off
title('EMG vastus lateralis: RMS a detekcia max. hodnôt')
xlabel('Čas [s]')
ylabel('Napätie [mV]')

sgtitle('Pravá končatina/excentrické meranie - spracovanie EMG signálu') 

%% spracované data
figure
subplot 411
hold on
plot(time_R_ecc,angle_filtered_R_ecc)
scatter(xPKS1_R_ecc./fvz_R_ecc,yANG1_R_ecc, 'black')
scatter(xPKS2_R_ecc./fvz_R_ecc,yANG2_R_ecc,'magenta')
scatter(EMG_VL_xPKS1_R_ecc./fvz_R_ecc,EMG_VL_yPKS1_ANG_R_ecc, 'red')
scatter(EMG_VM_xPKS1_R_ecc./fvz_R_ecc,EMG_VM_yPKS1_ANG_R_ecc, 'green')
title('Pozícia - uhol končatiny', 'FontSize', 16)
xlabel('Čas [s]', 'FontSize', 16)
ylabel('Uhol [°]', 'FontSize', 16)
legend('10° -> 90° = flexia končatiny, 90° -> 10° = extenzia končatiny', 'krútiaci moment - flexia', 'krútiaci moment - extenzia','EMG vastus lateralis', 'EMG vastus medialis', 'FontSize', 14)
subplot 412
hold on
plot(time_R_ecc,abs(torque_filtered_R_ecc))
scatter(xPKS1_R_ecc./fvz_R_ecc, abs(yPKS1_R_ecc), 'black')
scatter(xPKS2_R_ecc./fvz_R_ecc, abs(yPKS2_R_ecc), 'magenta')
title('Krútiaci moment', 'FontSize', 16)
xlabel('Čas [s]', 'FontSize', 16)
ylabel('Krútiaci moment [Nm]', 'FontSize', 16)
legend('Krútiaci moment v čase', 'maximá počas flexie', 'maximá počas extenzie', 'FontSize', 14);
subplot 413
plot(time_R_ecc, rmsv_EMG_VM_R_ecc)
hold on
scatter(EMG_VM_xPKS1_R_ecc./fvz_R_ecc, EMG_VM_yPKS1_R_ecc, 'green')
hold off
title('EMG vastus medialis - RMS', 'FontSize', 16)
xlabel('Čas [s]', 'FontSize', 16)
ylabel('Napätie [mV]', 'FontSize', 16)
legend('EMG vastus medialis v čase' , 'maximálne aktivácie', 'FontSize', 14)
subplot 414
plot(time_R_ecc, rmsv_EMG_VL_R_ecc)
hold on
scatter(EMG_VL_xPKS1_R_ecc./fvz_R_ecc, EMG_VL_yPKS1_R_ecc, 'red')
title('EMG vastus lateralis - RMS', 'FontSize', 16)
xlabel('Čas [s]', 'FontSize', 16)
ylabel('Napätie [mV]', 'FontSize', 16)
legend('EMG vastus leteralis v čase' , 'maximálne aktivácie', 'FontSize', 14)

sgtitle('Pravá končatina/excentrické meranie - spracované signály', 'FontSize', 18, 'FontWeight','bold')

%% hodnoty
values_R_ecc = zeros(11,1);
values_R_ecc(1,1) = BMI_R_ecc;
values_R_ecc(2,1) = EXTENSION_R_ecc;
values_R_ecc(3,1) = ANG_EXTENSION_R_ecc;
values_R_ecc(4,1) = FLEXION_R_ecc;
values_R_ecc(5,1) = ANG_FLEXION_R_ecc;
values_R_ecc(6,1) = VM_R_ecc;
values_R_ecc(7,1) = ANG_VM_R_ecc;
values_R_ecc(8,1) = VL_R_ecc;
values_R_ecc(9,1) = ANG_VL_R_ecc;
values_R_ecc(10,1)= max_rectified_EMG_VM_R_ecc; 
values_R_ecc(11,1)= max_rectified_EMG_VL_R_ecc;

values_R_ecc = values_R_ecc.';
column_R_ecc = {'BMI','Hamstring_Exc','Uhol_HE','Kvadriceps_Exc','Uhol_KE','VM_Exc','Uhol_VME ','VL_Exc','Uhol_VLE','Max_VME','Max_VLE'};
row_R_ecc = {'Subjekt'};
Values_R_ecc = array2table(values_R_ecc, 'RowNames', row_R_ecc, 'VariableNames', column_R_ecc);
