[Eeglablist] Cleanline and Basic FIR filter

Andreas Widmann widmann at uni-leipzig.de
Sun Aug 30 11:20:00 PDT 2015

Hi Eric,

> I have some questions about both cleanline and the basic FIR filter:
> 1) Do you have any recommendation about which one should be used first? At the moment I'm doing this (cleanline first and then bandpass filtering):
Highpass filtering should be done before cleanline. Cleanline expects stationary data. See Nima’s recent paper for a more detailed explanation (Bigdely-Shamlo N, Mullen T, Kothe C, Su K-M and Robbins KA (2015) The PREP pipeline: standardized preprocessing for large-scale EEG analysis. Front. Neuroinform. 9:16. doi: 10.3389/fninf.2015.0001). Consider the „temporary highpass“-solution suggested there in applications not requiring a highpass otherwise.

> [EEG, Sorig, Sclean, f, amps, freqs, g] = pop_cleanline(EEG, 'Bandwidth',2,'ChanCompIndices',[1:EEG.nbchan], ...
>                           'SignalType','Channels','ComputeSpectralPower',true,             ...
>                           'LineFrequencies',[50 100] ,'NormalizeSpectrum',false,           ...
>                           'LineAlpha',0.01,'PaddingFactor',2,'PlotFigures',false,          ...
>                           'ScanForLines',true,'SmoothingFactor',100,'VerboseOutput',1,    ...
>                           'SlidingWinLength',EEG.pnts/EEG.srate,'SlidingWinStep',EEG.pnts/EEG.srate); 
> EEG = pop_eegfiltnew(EEG, 1, 70, 1650, 0, [], 1); 
> 2) I'm doing the filtering before epoching the data (on continuous data). Can that lead to any problem with the filtering?
Filtering should always be done on the continuous data!

> In cleanline: Both the 'SlidingWinLength' and 'SlidingWinStep' are the length of the recording. However, the 'SmootingFactor is 100, which shouldn't matter when the window length = EEG length.
> 3) Is there an easy way to figure out the filter order for pop_eegfiltnew? The current 1650 is just what was decided through the GUI. 
Use the windowed sinc FIR filter to manually adjust the filter order. pop_eegfiltnew is just a front-end for the windowed sinc filter with hardcoded hamming window and a default heuristic for filter order as explained in the help text. The only major difference is that you define passband edges in pop_eegfiltnew but half amplitude (-6 dB) cutoffs in the windowed sinc filter.

Hope this helps! Best,

More information about the eeglablist mailing list