clc
clear all
%close all
load EEG.mat %carica il segnale EEG: 
%si tratta di una registrazione a 61 canali e con registrazioni lunghe
%356126 campioni per ogni canale con una frequenza di campionamento pari a 
% fs=1kHz
%nel vettore T è contenuto l'asse temporale associato in secondi
%si consiglia una volta caricato e fatto girare, di salvare la matrice segnali 
%con questo comando save segnali_eeg.mat segnali
%e successivamente commentare la precedente e utilizzare
% load segnali_eeg.mat in un nuovo script
eventi=importdata('events_1_2.txt'); %in events ci sono gli eventi
%che sono gli stimoli visivi e i rispettivi tempi (in ms) 
%esistono due tipi di stimoli 1 e 2 
%in pratica lo script deve cercare gli indici temporali di tali stimoli
% e taglia una finestra a cavallo di tali istanti definendo un'epoca
%ogni epoca è inserita come riga in una matrice

%ci sono in realtà 3 matrici perchè in una sono contenute le risposte ad
%entrambe le categorie di stimolo e nelle altre le risposte a 1 o a 2

 
 events=eventi.data(:,1); %quando importo gli eventi, si carica una 
 %struttura con due campi, il primo sono i ms e il secondo la categoria 
 %dell'evento
 events_type=eventi.data(:,2);
 
 %% 
%AA: questa parte serve a trovare gli indici degli eventi (tutti)
%e ad inserirli in un vettore index_events_all
ii=1;
for kk=1:length(events)
    ind=find(T==events(kk)/1000);
    if true
        index_events_all(ii)=ind;
        ii=ii+1;
    end
end
%fine AA
%% qui invece si inseriscono gli indici degli eventi 1 o 2 in
% due vettori diversi
ii1=1;
ii2=1;
for kk=1:length(events)
    if events_type(kk)==1;
        index_events_1(ii1)=index_events_all(kk);
        ii1=ii1+1;
    else
       index_events_2(ii2)=index_events_all(kk);
       ii2=ii2+1; 
    end
end
%% taglio i pezzi di EEG attorno agli eventi e li metto nelle tre matrici
% prendo 100 campioni prima e 400 campioni dopo l'arrivo dello stimolo
pre=100; 
post=400;
for kk=1:length(events)
    epochs_all(kk,:,:)=EEG(index_events_all(kk)-pre:index_events_all(kk)+post,:);
end

for kk=1:length(index_events_1)
    epochs_1_3(kk,:,:)=EEG(index_events_1(kk)-pre:index_events_1(kk)+post,:);
end

for kk=1:length(index_events_2)
    epochs_2_3(kk,:,:)=EEG(index_events_2(kk)-pre:index_events_2(kk)+post,:);
end
%%
load electrode_list.mat %carico un cell array con i nomi dei canali


ch=[1];% 1 è O2


for kk=1:length(ch);

epochs_12=epochs_all(:,:,ch(kk));
epochs_1=epochs_1_3(:,:,ch(kk));
epochs_2=epochs_2_3(:,:,ch(kk));

end

%sommo delle costanti in modo da rappresentare i segnali in una unica
%figura

%visualizzo solo gli eventi 1
num_realizz=size(epochs_1,1);
segnali=epochs_1;
costanti=0:20:20*(num_realizz-1);

costanti=repmat(costanti',1,size(segnali,2));
segnali_per_visualizz=segnali+costanti;%non usare per l'analisi 
%usare segnali
figure;
plot(-pre:post,mean(segnali_per_visualizz(1:10,:))')

