Hi everyone
I’m after some general advice for preprocessing EEG data and using ICA for artifact/noise removal.
I am analysing sleep data from humans, in 64channel recordings which are ~9 hours long. My current preprocessing procedure is as follows:
- Load in data
- downsample from 512–>256Hz
- bandpass filter 1-40Hz
- flag, remove & interpolate bad channels
- add in FCz reference channel & re-reference to average reference
- mark noisy data segments as ‘bad’
- run fastica with 30 components to identify artifacts & noise & then manually pick which components to remove from my data
- fit the ICA to my raw data
I am however not convinced that the ICA is appropriate to use in this way. As my recordings are so long (with many channels), there is a lot of variabiltiy in the signals due to movements & the different brain activity profiles in each sleep stage. I am concerned which components I should remove, as quite a few tend to be centred around one electrode. As example of components I generate is as follows:
When I topoplot the resulting data, there does not appear to be clear power distributions of different frequencies as I might expect (e.g. high delta & theta power at the front of the head). I am therefore hoping for some guidance on whether my method is correct.
I was wondering whether I ought to epoch my data and run the ICA according to the sleep stage (e.g. run ICA only on the stage 3 sleep, then fit to stage 3 sleep and this will identify components specific to that stage & allow for more specific cleaning). Alternatively, maybe epoching the data into 30 second chunks regardless of sleep stage is better than my current method of running the ICA on the entire 9 hour recording.
Any advice is greatly appreciated as I feel I am going round in circles trying to figure out the right approach!
Many thanks
- MNE-Python version: 0.22
- operating system: windows 10