[FieldTrip] Removing power line

Stephen Whitmarsh stephen.whitmarsh at gmail.com
Sun Oct 3 14:45:07 CEST 2021


Dear Emilie,

Those sound indeed like challenging, and interesting, circumstances.
I don't have a direct answer to your question, that would depend on having
more information about the data, but here are my 2 cents;

You could first make an FFT plot (e.g. using cfg.method = mtmfft in
ft_freqanalysis) to get a better picture of the frequencies in your data
(on both 'successful' and 'unsuccessful' data), for several reasons:

   - You are also trying to remove both 50 and 60Hz, and their harmonics,
   of which probably only one of those would reflect the noise in the power
   lines.
   - You are using cfg.dftreplace = 'neighbour'; which might only work if
   the frequency band of the noise is sharp enough, or can be estimated
   precise enough (depending on the duration of the data you are filtering).
   - It would confirm whether it is line noise at all (which is probable,
   but more might be at play, e.g. some non-linear combinations and strange
   harmonics).
   - You could look for whether the degree of noise is stationary, by e.g.
   plotting the FFT over different periods, but it might be more important
   that the frequency is accurately chosen and stable over time.

Depending on your data, the duration of data, whether or not your are
looking at trials or the whole data file at once (*), etc., you might also
want to use a 'welch method' for estimating the power in the data, i.e. by
averaging over several (sliding) windows. Using cfg.method = 'mtmconvol' in
ft_freqanalysis, then averaging over time with ft_selectdata
(cfg.avgovertime), would be an easy way to do that. Once you have a good
picture of the noise, it will be easier to both choose the right filters
and to check their efficacy (by comparing the FFT before and after
filtering, on both 'successful' and 'unsuccessful' data). In fact, since
you are dealing with EEG in such noisy conditions, and assuming you are
interested in either ERPs or slow oscillations (<40Hz), you could consider
just using a lowpass filter at e.g. 40 Hz.

Good luck, I hope this helps,
Stephen

*) The behaviour of filters depends a lot on the structure/size of the
data, so to better understand its behaviour you would need to describe your
data(structures) in more detail, i.e. trial length, nr. of trials/channels,
and any processing steps until filtering.



Op zo 3 okt. 2021 om 13:12 schreef Emilie Caspar via fieldtrip <
fieldtrip at science.ru.nl>:

> Dear Fieldtrippers,
>
> I recently acquired EEG data in Rwanda in complicated testing conditions,
> especially for the power line : we were testing in rural villages with a
> single electrical system for the whole village. Our signal is thus
> parasited by what the villagers were plugging on the electrical system (so
> probably nonstationary noise) during the testing. The electrical system was
> also very rudimentary and not correctly grounded.
>
> Usually, I use the following command in Fieldtrip to remove the 50H or 60
> Hz power line and it works quite well. Here, it worked for roughly 70% of
> our acquired data, but it does not work for all the data acquired.
>
>     cfg= [];
>     cfg.dftfilter = 'yes';
>     cfg.dftfreq = [50 60 100 120 150 180];
>     cfg.dftreplace = 'neighbour';
>     cfg.dftbandwidth = [2 2 2 2 2 2];
>     cfg.dftneighbourwidth = [2 2 2 2 2 2];
>     data_intpl = ft_preprocessing(cfg, allData_preprosses);
>
>
> When I look at the graphs (see figure attached), it really looks like it’s
> a 60Hz noise, but it seems that the dftfilter function does not remove it.
> We are certain it’s power noise because when the electricity was cut off
> because of a storm or else, and we were thus only relying on the batteries
> to collect our data, the signal was perfect. So in theory we should be able
> to remove it but we have no cue of what other possibilities to try. Perhaps
> it’s because the noise is non stationary and dftfilter does not account for
> that? I know some residual power noise can stay after a dftfiltre, but here
> it does not remove anything.
>
> Thanks a lot for the help,
>
> Emilie
>
> ---------------------------------------------
> *Prof. Dr. Emilie Caspar*
>
> *Associate Professor *
>
> Department of Experimental Psychology, Ghent University
> office: Henri Dunantlaan, 2 - Floor 2, Room 94
>
> lab’s website: https://moralsocialbrain.com/
> personal website: https://emiliecaspar.home.blog/
>
> Université libre de Bruxelles (office & contact): DB10.138 / +32 2 650 32
> 95
>
> _______________________________________________
> fieldtrip mailing list
> https://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> https://doi.org/10.1371/journal.pcbi.1002202
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20211003/cec9a44a/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PowerLine.jpg
Type: image/jpeg
Size: 37857 bytes
Desc: not available
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20211003/cec9a44a/attachment.jpg>


More information about the fieldtrip mailing list