Removing EEG eye blink and heartbeat artefacts without EOG and ECG references

Is it possible in Brainstorm to remove/filter out eye blinks and heartbeats without the use of reference electrodes? And if so, how?


ECG: Most of the time, the heartbeats are not visible in EEG recordings. Unless you clearly see regular peaks (period around 1s) in your EEG traces, you don’t need to correct for this.

EOG: Blinks are usually visible on all the frontal electrodes. You can run the detection on any signal on which you observe them.
The SSP technique is not always adapted for removing ocular artifacts in EEG recordings. If you have a high-density cap, you can try to follow the procedure described in the introduction tutorials, but check carefully that the projectors are not removing too much signal… Look at the EEG traces and select/unselect multiple times the blink SSP projector for different time windows (with and without blinks) to get an idea of its effect.
If not, you can simply mark the detected blinks as bad (rename the event “blink” into “blink_bad”, it will tag as bad all the imported trials that contain any “bad” event).
We will work soon on adding ICA methods to remove blinks from EEG setups for with the SSP cleaning is too abrasive.


Hello dear Francois,
appreciate your help and direction in this regard. I would like to ask about this topic and please let me know how I can make sure, to some extent, I am able to remove eyeblink contaminations. any guidelines and new updates for this purpose would be appreciated.

Most users review visually the data after the application of an eye-blink removal procedure. If you need to be more quantitative, you may epoch your data around each eye blink event and average them before/after applying the removal procedure. You can then quantify the attenuation of the removal procedure.

Hey Sylvain,
Today I talked to a professor (expert in EEG) and he gave me instructions in this regard. Might this help someday someone like me, and explain it here. Even this process might be criticized by others in which I welcome it to. He recommended me (by considering my experimental condition, in which I have 129 channel all EEG) to edit the channel name of which is near to eye (could be E1, E8, or any other close enough to eyeball), one by one, a few of electrodes should be chosen for this purpose and fom the Artifact > SSP: eyeblinks, after detection, you can merge the detected eye blinks , into a gingle one and then, do import data things and remove the ICA which you see them as eyeblink artifact ,,,
but overall I would be glad to hear more comments in this regard.

You can use one of the prefrontal electrodes, where eye blinks are clearly visible, as a proxy for the EOG signal, and then apply SSP based on the blink events detected at that electrode. Note that ICA is often preferred over SSP in EEG analysis, but with a large number of channels (129), this might be less of an issue. However, it's common for users to choose either SSP or ICA, not both, for the same type of artifacts. ICA can complement SSP by reducing other types of artifacts.

1 Like