CB-Frequency-Coding-of-Motor-Kinematics / Supporting Functions / A_EPdetect2.m
A_EPdetect2.m
Raw
function varargout = A_EPdetect2(EPSource,Th,Int,fs,ThM)
% OUPUT=A_EPdetect2(EPSource,Th,Int,F,ThM)
%    Output is marked as 1 in the corresponding slots of "EPSource" array
%    EPdetect2 is for compatibility for Matlab 2014a, otherwise use
%    EPdetect
% Detailed descrption
%"EPSource": a 1D array for threshold detection
% "Th": Threshold
% "Int": minimal selected time interval for EP 
%       (has to silent longer than this interval), defined in second
% "F": sampling frequency for the Source
% "ThM": Thresholding method: 1==positive thresholding; -1==negative
%        tresholding
% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%% Main function %%%%
if size(EPSource,1)>=2;
    EPSource=EPSource';
end
TpInt(1:Int*fs-1)=1; % defined the Timepoints(Tp)for detection interval
% thresholding source
if ThM==1;
    Data=(EPSource>=Th);
    %EPSource(2,:)=(EPSource>=Th);
else if ThM==-1;
        Data=(EPSource<=Th);
        %EPSource(2,:)=(EPSource<=Th);        
    else
        error('Wrong threhold method')
        return
    end
end
% define detection points
Data=double(Data);
DTh=conv(Data,TpInt);
Data(2,:)=DTh(1:length(Data)); % Data is a logic struture allow only 0 or 1
Data=logical(Data);
%DTh(2:3,1:length(Data))=Data;
DetPoint=Data(2,:)-[0,Data(2,1:end-1)];
%%%%%% Define output %%%%%
varargout{1}=DetPoint;
end