I am looking to detect blink events in real-time single channel EEG. Classification of a moving window of samples to determine whether a blink artifact exists requires feature extraction (except when using deep learning, I am not experienced enough for this). What features would be useful to extract from a window of approx. 50-200 samples of time series data for detecting a blink event. The blink event can be easily seen in the below picture:
1 Answer
The EEG signature of eye blinks is typically visible for about 200ms of data. When you want to move a window of 50 to 200 samples, I assume that your sampling frequency is 1000Hz (you should specify this in your next question).
A classical feature for eye blink detection is the peak-to-peak amplitude, which is the absolute difference of the maximum amplitude and the minimum amplitude of the EEG within your window. Another feature could be the variance within your EEG window.
Pseudocode:
peak_to_peak_amp = abs(window.max() - window.min())
variance = var(window)
Note that both of these features are rather unspecific to eye blinks and will have a hard time to distinguish blinks from other peaks in the data. For this reason, the methods are often combined with filtering of the data and converting the amplitudes in microvolts to z-scores.
For reading I suggest chapter 6 in the canonical book by Steven Luck: An Introduction to the Event-Related Potential Technique