-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathauto_reject.asv
More file actions
31 lines (27 loc) · 922 Bytes
/
auto_reject.asv
File metadata and controls
31 lines (27 loc) · 922 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function [artifact]=auto_reject(signal,events,fs)
if size(signal,1)>size(signal,2)
signal=signal';
end
nch=size(signal,1);
events=round(events*fs);
nt=length(events);
trials=cell(length(events)-1,1);
for t=1:nt-1
trials{t}=signal(:,events(t):events(t+1));
end
try
trials{nt}=signal(:,events(nt):events(nt)+round(mean(diff(events))));
catch
trials{nt}=signal(:,events(nt):events(nt)+round(5*fs));
end
dtrials=cellfun(@(x) max(abs(diff(x,1,2)),[],2),trials,'Uni',0); %maximum single sample difference in each trial
dtrials=cat(2,dtrials{:}); %ch x trials, max single sample difference
maxVol=cellfun(@(x) max(abs(x),[],2),trials,'UniformOutput',false);
maxVol=cat(2,maxVol{:}); % maximum amp sample, ch x trial
m=mean(maxVol,2); % mean max
s=std(maxVol,0,2); % std max
for i=1:nch
% finding the
artifact{i}=unique([find(maxVol(i,:)>m(i)+5*s(i)) find(dtrials(i,:)>25) ]);
end
end