% SKRIPT SLOUŽÍ K NAHRÁNÍ DAT ZÍSKANÝCH Z QTDB
% POSTUPNĚ NAHRÁVÁ JEDNOLIVÉ SVODY EKG A PROVÁDÍ NA NICH
% VYHLAZENÍ POMOCÍ KUBICKÉHO SPLINU A PRVNÍ DERIVACI SIGNÁLU
% VÝSLEDNÝ SIGNÁL JE ULOŽEN VE FORMÁTU .CSV

close all, clc
%%

%load ('QTData.mat')


%% CSV maker

iter=1;
for i=(1:1)
    source = QTData.Source{i, 1};
    
    for j=(1:1)
        patient = source (j,:);

        x = 1:length(patient);
        smooth = csaps(x,patient,0.25) %smoothing with cubic spline
        der_data = diff(patient); %1. derivation
        
        patient = patient';
        
        smooth_data=smooth.coefs (:,4);
        smooth_data(end+1)= patient(end);
        der_data(end+1)=der_data(end);
        der_data=der_data';
       
        
        if j==1
             data = QTData.Labels.WaveformLabels_Chan1{i,1};
        else 
             data = QTData.Labels.WaveformLabels_Chan2{i,1};    
        end

        Annotation=data{:,2};
        Annotation=renamecats(Annotation,'n/a','n');
%         Annotation=renamecats(Annotation,'P','0');
%         Annotation=renamecats(Annotation,'QRS','1');
%         Annotation=renamecats(Annotation,'T','2');
%         Annotation=renamecats(Annotation,'n/a','3');

        data{:,2} = Annotation;
        data{:,3} = patient;
        data{:,4} = smooth_data;
        data{:,5} = der_data;
        
        data.Properties.VariableNames = {'index','annotation' 'signal' 'smooth' 'derivation'};
        
        pom = int2str(iter);
        name = ['p_data',pom,'.csv']
        
        writetable(data,name,'Delimiter',';')
        iter = iter+1;
    end
    
end

%% visualization
%  
% figure ('DefaultAxesFontSize',24)
% plot(data{:,1}(1:500),data{:,3}(1:500),'LineWidth',3)
% hold on
% plot(data{:,1}(1:500),data{:,4}(1:500),'LineWidth',3)
% hold on
% plot(data{:,1}(1:500),data{:,5}(1:500),'LineWidth',3)
% legend('originální signál','vyhlazení kubickým splinem','první derivace')
% xlabel('vzorek [-]')
% ylabel('amplituda [mV]')