image thumbnail

eogui – a software to analyze electro-oculogram (EOG) recordings

by

 

10 Aug 2011 (Updated )

detects blinks and saccadic eye movements in EOG recordings

checkplausi.m
function result2=checkplausi(subList,f1,f2,plausi,noise)
%prft ob eine Sakkade alle log. Bedingungen erfllt
% $Id: checkplausi.m 6 2004-12-13 12:28:39Z maik $
result2=[];

if(isempty(subList))    
    return;    
end



% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
% 1. Fasse Sakkaden mit Abstand < 24ms und gleicher Richtung zusammen
% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

pos=2;
aktsakk=subList(1);
result=[];
while pos<=length(subList)
    
    %liegen zwischen ende der einen un start der anderen sakkade weniger als 24 ms, und stimmt die Richtung,
    %fasse zusammen
    if  (subList(pos).start-aktsakk.ende<plausi.vereinigung) && (aktsakk.sign == subList(pos).sign)        
        aktsakk.ende=subList(pos).ende;        
        if(aktsakk.maxspeed <subList(pos).maxspeed)
            aktsakk.maxspeed=subList(pos).maxspeed;
            aktsakk.maxspeedpos=subList(pos).maxspeedpos;            
        end                
    else %% if
        result=[result aktsakk];
        aktsakk=subList(pos);
    end %% if                  
    pos=pos+1;   
end %while
result=[result aktsakk];



% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
% @  2. Plausibilitaetspruefungen
% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
for i=1:length(result)

    sakkade=result(i);
            %Prfe das Sakkade alle  Plausibilitaetspruefungen erfllt
            %----------------------------------------------------------                        
            % 1. Plausi:  Sakkade muss mindestens cv.sakk.min.dauer (10 msec) lang sein
            if (sakkade.ende - sakkade.start < plausi.min_dauer)
                %disp('Artefakt 1, sakkade zu kurz');
                continue;                 
            end
            
            % 2. Plausi:  Sakkade muss gleiche Richtung haben wie Sakkade in Tiefpass gefiltertem Signal
            if sign(f1(sakkade.start)-f1(sakkade.ende)) ~= sign(f2(sakkade.start)-f2(sakkade.ende)) 
                %disp('Artefakt 2, Richtung im Tiefpass');                
                continue; 
            end
            
            %3. Plausi:  Sakkadenamplitude muss mindestens Noisegroesse haben, suche 30 ms am ende ...
            % halbe noise !!!!!
            fail=0;
            
            for i=1:plausi.plateaudauer
                % nderung 14.10.04, suche Schwellwertberschreitung im
                % lowpass gefilterten Signal, minimiert Fehler durch
                % Rauschen
                %
                %if (abs(f1(sakkade.start)-f1(sakkade.ende+i)) < noise)                 
                if (abs(f2(sakkade.start)-f2(sakkade.ende+i)) < noise)
                    fail=1;
                    break;
                end
            end                       
            if (fail==1) 
                %disp('Artefakt 3, keine Ebenenverschiebung');                                
                continue; 
            end
            
            %4. Plausi prfe das Vorzeichen nicht gekippt ist.
            %if(sakkade.vorzflg == 1) 
                %disp('Artefakt 4, Vorzeichen');                                                
                %continue; 
            %end
            
            result2=[result2 sakkade];
end

Contact us