# [Eeglablist] high frequency oscillation- eeg advice

Makoto Miyakoshi mmiyakoshi at ucsd.edu
Mon Jan 30 19:29:03 PST 2017

```Dear Andreas,

> This was just a wild guess based on experience.

Oh ok I see.

> But note that the EEGLAB iirfilt-plugin does implement an Elliptic and
not a Butterworth IIR filter.

That's true. If I remember correctly, Elliptic filter can make
theoretically the sharpest filter.

> In MATLAB you compute the impulse response with impz (see the code
example in my previous post).

Yes, this is a new thing I learned this time! This function is very
convenient.

Thanks Andreas as always.

Makoto

On Sat, Jan 28, 2017 at 1:26 AM, Andreas Widmann <widmann at uni-leipzig.de>
wrote:

> Dear Makoto
>
> >> > A roughly equivalent Butterworth filter will have an estimated
> effective (numerically relevant) impulse response duration of 20592 samples
> (~82s!):
> >
> > I tried to replicate it with EEGLAB iirfilt() but the filter order was
> only 6. How did you calculate this number?
> Not sure whether I understand the question.
>
> Do you mean how I estimated the order (4) of the Butterworth filter in my
> example to be "roughly equivalent“ to the FIR variant? This was just a wild
> guess based on experience. In case necessary I could check how rough
> "roughly equivalent" really is. But note that the EEGLAB iirfilt-plugin
> does implement an Elliptic and not a Butterworth IIR filter.
>
> Or do you mean the comparison of your iirfilt order (6) to the impulse
> response duration (20592) of my example? One cannot directly compare the
> order of IIR and FIR filters. This is a (unfortunately common)
> misconception. For FIR filters (implemented by convolution) the order
> equals the duration of the impulse response (minus one sample). This does
> not hold for IIR filters implemented *recursively*. However, even if the
> impulse response of IIR filters is infinite by definition in digital
> implementations it is practically limited by numerical precision. That is,
> you can compute the impulse response of a digital IIR filter which is now
> also finite and can be applied by convolution exactly like a FIR filter
> finally giving the same result (within limits of numerical precision).
>
> In MATLAB you compute the impulse response with impz (see the code example
> in my previous post). If I remember correctly you may specify required
> numerical precision as an input argument to impz. I trusted the default
> here. You have to get the filter coefficients (b, a) of your EEGLAB iirfilt
> filter and feed them to impz. The length of the resulting impulse response
> times two is the duration to be compared to the order (or IR duration) of a
> FIR filter. Times two because you have to apply the non-linear phase IIR
> derived filter in forward and reverse direction (to get zero-phase).
>
> Does this help? Best,
> Andreas
>
> >
> > Makoto
> >
> >
> >
> > On Fri, Jan 27, 2017 at 2:35 PM, Andreas Widmann <widmann at uni-leipzig.de>
> wrote:
> > Dear Makoto,
> >
> > to my understanding these are two different and mostly unrelated issues:
> >
> > (1) Recommendations for very low high-pass cutoff frequencies:
> > The filter implementation (IIR vs. FIR) doesn’t really matter here. It
> is correct that you need very long epochs to resolve these very low
> frequencies. However, it is not valid to reverse this conclusion. Also, for
> short epochs apparently small differences in cutoff frequency may matter.
> You do filter the continuous data, that is, epoch length does not directly
> influence the filter effects. High-pass filter distortions (mainly due to
> larger late and slow components biasing smaller early and fast components)
> were shown empirically several times, e.g. most convincingly by Acunzo et
> al.
> >
> > But I agree that this issue is a matter of debate (mainly affecting ERP
> research). Personally, I recommend to individually adjust filter cutoffs to
> the properties of signal and noise. It is in principle possible to apply
> higher high-pass cutoff frequencies if noise level really requires this and
> it is properly demonstrated that filter distortions do not bias the
> conclusions. But people always ask for general recommendations and you have
> to be on the save side...
> >
> > (2) IIR vs. FIR
> > In the first part you argue against long impulse response durations. For
> IIR filters these are usually even (considerably) longer. Besides other
> issues (as the non-linear phase property of IIR filters and its
> side-effects) this is the main reason why I do not recommend IIR filters
> for offline processing in electrophysiology/ERPs. Following your example
> with a slightly higher cutoff of 0.1 Hz and a Hamming windowed sinc FIR
> filter you will have a impulse response duration of 4127 samples (~16s). A
> roughly equivalent Butterworth filter will have an estimated effective
> (numerically relevant) impulse response duration of 20592 samples (~82s!):
> >
> > [b, a]=butter(4, 0.1/125, 'high');
> > h = impz(b, a);
> > length(h)*2 % Times 2 as you have to apply the non-linear phase filter
> in forward and reverse direction to achieve zero-phase doubling the impulse
> response duration
> >
> > Thus, if you define filter efficiency as achieved roll-off per impulse
> response duration (as I do) IIR filters can be considerably less efficient.
> Impulse response duration defines the extent the signal is convoluted and
> artifacts and distortions are potentially smeared.
> >
> > > 0.1Hz IIR high-pass filter can be found in EEG amplifiers, so in that
> sense it is not strange at all.
> >
> > IIR filters have their merits if high throughput and/or low delays are
> required. FIR filters have large delays and are computationally less
> efficient (there are however highly optimized implementations). Delay and
> throughput do not matter for offline processing but both are highly
> relevant in amplifiers and BCI applications. Thus, IIR filters are
> frequently preferred for online processing (despite non-linear phase).
> >
> > > I thought it seemed a bit odd to report it like this in a paper.
> >
> > I do not see a problem as long as you reason your approach.
> >
> > Best,
> > Andreas
> >
> > > Am 27.01.2017 um 21:34 schrieb Makoto Miyakoshi <mmiyakoshi at ucsd.edu>:
> > >
> > > Dear Andreas,
> > >
> > > >> And I still don't like 0.1Hz high-pass if you use FIR
> > > > Why? What is the problem?
> > >
> > > Assuming people just enter '0.1' to EEGLAB default FIR filter GUI,
> it'll apply 0.05Hz cut-off high-pass filter with Hamming window. When the
> sampling rate is 250Hz, the model order it calculates is 8251, which is 33
> sec long. Meanwhile, people are usually only interested in the first few
> hundreds milliseconds of the averaged signal. And they subtract
> pre-stimulus baseline mean value from the entire epoch anyway. I don't see
> much reason to apply 0.1-Hz high-pass filter in these cases. Of course, I
> saw papers discussing this issue and I have no objection, but intuitively
> it is still weird to me. I think the point is that people want to claim
> that ERP is a broadband phenomenon, but the way they demonstrate it is not
> satisfactory to me.
> > >
> > > By the way, people often complain about our recommended -1 to 2 sec
> epoch to be too long, and our recommended 1-Hz high-pass filter too
> aggressive. But doesn't it makes more sense to apply 1-Hz high-pass filter
> to 3-sec epoch data, compared with applying 0.1-Hz high-pass for 0.8 sec
> epoch data? This kind of unbalancedness makes me feel weird.
> > >
> > > > What would be your suggested alternative?
> > >
> > > I thought IIR would be more reasonable for such a low cutoff
> frequency, but I have never tried it myself (as far as I know,
> clean_rawdata plugin comes with its IIR filter, which could be a part of
> BCILAB for online processing). It depends on your relative time scale. If I
> analyze hour-long resting state data to target minute-long slow changes, I
> would use FIR with no problem.
> > >
> > > I did not know much about stability issue, but this time you made me
> learn it a little bit. Thank you Andreas for always pushing my back in this
> way.
> > >
> > > Makoto
> > >
> > >
> > >
> > > On Fri, Jan 27, 2017 at 3:28 AM, Andreas Widmann <
> widmann at uni-leipzig.de> wrote:
> > > Dear Makoto,
> > >
> > > > And I still don't like 0.1Hz high-pass if you use FIR
> > > Why? What is the problem? What would be your suggested alternative?
> > >
> > > > (and I do not know how bad it is to use IIR... I've heard it can
> become 'unstable' but I've never seen it myself)
> > > Here you go:
> > > [b,a]=butter(4,0.1/500,'high');
> > > isstable(b,a)
> > > freqz(b,a)
> > >
> > > But note that possible instability is not the main problem with IIR
> application in electrophysiology. There are workarounds (e.g. for this
> example using zpk: [z,p,k]=butter(4,0.1/500,'high'); sos=zp2sos(z,p,k);
> isstable(sos)).
> > >
> > > Best,
> > > Andreas
> > >
> > >
> > > >
> > > > > I won't be using granger causality but I will be estimating phase
> during ITC.
> > > >
> > > > Should be ok.
> > > >
> > > > Makoto
> > > >
> > > > On Thu, Jan 26, 2017 at 2:12 PM, Ahmad, Jumana <
> > > > Dear Makoto,
> > > > I actually switched to the pop eeg filt eeglab function and it now
> Really attenuated anything >40Hz, and my ERPs are cleaner. However I
> filtering between 0.1-40Hz at the same time in the GUI (I interned the high
> pass and low pass simultaneously). Is this OK to do? The frequency response
> looks OK.
> > > >
> > > > The filter order was automatically set very high by the GUI, but
> it's continuous data and I have room without events at the beginning and
> end of the data so any edge effects can be disgusted. What do you think?
> > > >
> > > > Also, this is for my ERP analysis- I trained ICA on a 1Hz high pass
> filtered set.
> > > > I won't be using granger causality but I will be estimating phase
> during ITC.
> > > > Best wishes, and thanks,
> > > > Jumana
> > > >
> > > > ------------------------------------------
> > > > Jumana Ahmad
> > > > Post-Doctoral Research Worker in Cognitive Neuroscience
> > > > EU-AIMS Longitudinal European Autism Project (LEAP) & SynaG Study
> > > > Room M1.26.Department of Forensic and Neurodevelopmental Sciences
> (PO 23) | Institute of Psychiatry, Psychology & Neuroscience | King’s
> College London | 16 De Crespigny Park | London SE5 8AF
> > > >
> > > > Phone: 0207 848 5359| Email: jumana.ahmad at kcl.ac.uk | Website:
> > > >
> > > > From: Makoto Miyakoshi <mmiyakoshi at ucsd.edu>
> > > > Sent: 26 January 2017 23:49:50
> > > > To: Ahmad, Jumana
> > > > Cc: eeglablist at sccn.ucsd.edu
> > > > Subject: Re: [Eeglablist] high frequency oscillation- eeg advice
> > > >
> > > > Dear Jumana,
> > > >
> > > > It's a bad idea to perform ICA with 0.1Hz high-pass filtered data.
> The cutoff frequency is too low. See this page and the referenced paper.
> > > >
> > > > https://sccn.ucsd.edu/wiki/Makoto%27s_preprocessing_
> pipeline#High-pass_filter_the_data_at_1-Hz_.28for_ICA.2C_
> ASR.2C_and_CleanLine.29
> > > >
> > > > > A 30Hz low pass does not help to get rid of the oscillation, which
> is really significant in the data.
> > > >
> > > > Check the channel frequency spectra and tell me if you see peaks in
> it. If necessary, you can cut it off using a designed low-pass filter (not
> like Butterworth...)
> > > >
> > > > > I use a butterworth filter, which is good for ERP analysis with
> low phase distortion.
> > > >
> > > > Do not make qualitative judgement just because something is NOT a
> classic Butterworth. Of course, if the attenuation is small, the phase
> 'distortion' is small. But if such small attenuation is not useful, it does
> not help at all! Also, be careful with the word 'phase'. Particularly
> people who do not know basics of signal processing believe phase as some
> magical thing. If you are not performing Granger Causality Analysis or
> something, you don't need to be so worried about phase issue in practice.
> > > >
> > > > > I also already run ICA, but in some datasets there is a very
> significant high frequency oscillation.
> > > >
> > > >
> > > > Remember, to eliminate this is more important than being afraid of
> qualitative phase issue.
> > > >
> > > > > However, I can see the high frequency oscillations in my ERP,
> which is not ideal and now I need to try and get rid of it further.
> > > >
> > > > Can I filter again on top of the data which already has already
> undergone ICA- I only use ICA to remove blinks?
> > > >
> > > >
> > > > You'd better to filter the data on continuous state. If you need to
> filter the epoched data, the half of filter length from both ends becomes
> unreliable.
> > > >
> > > > > Should I do cleanline, although it would have to be after ICA now-
> > > >
> > > > > Should I use a notch filter?
> > > >
> > > >
> > > > If you see > 20dB line noise, Cleanline may not help. In this case,
> I would simply apply a designed low-pass filter, either Hamming (-50dB) or
> Blackman (-70dB) using firfilt(). See 'Tools' -> 'Filter the data' ->
> 'Windowed sinc FIR filter'.
> > > >
> > > > There are different guys saying different things about data
> preprocessing. It is confusing, I know! The only good solution for this is
> to become an engineer yourself...
> > > >
> > > > Makoto
> > > >
> > > >
> > > >
> > > > On Tue, Jan 24, 2017 at 7:00 AM, Ahmad, Jumana <
> > > > Hi  Everyone,
> > > >
> > > > I am running a large scale ERP analysis. I filtered 1-40Hz (ICA
> AMICA), or 0.1-40Hz for the ERP dataset. A 30Hz low pass does not help to
> get rid of the oscillation, which is really significant in the data. I use
> a butterworth filter, which is good for ERP analysis with low phase
> distortion.
> > > >
> > > > I also already run ICA, but in some datasets there is a very
> significant high frequency oscillation.
> > > >
> > > > I do not use cleanline, which is not typical in the literature I
> have been basing my pipeline on.
> > > >
> > > >
> > > >
> > > > However, I can see the high frequency oscillations in my ERP, which
> is not ideal and now I need to try and get rid of it further.
> > > >
> > > > Can I filter again on top of the data which already has already
> undergone ICA- I only use ICA to remove blinks?
> > > >
> > > > Should I do cleanline, although it would have to be after ICA now- I
> > > >
> > > > Should I use a notch filter?
> > > >
> > > >
> > > >
> > > > Any help would be appreciated.
> > > >
> > > > Best wishes,
> > > >
> > > > Jumana
> > > >
> > > >
> > > >
> > > > ------------------------------------------
> > > >
> > > > Jumana Ahmad
> > > >
> > > > Post-Doctoral Research Worker in Cognitive Neuroscience
> > > >
> > > > EU-AIMS Longitudinal European Autism Project (LEAP) & SynaG Study
> > > >
> > > > Room M1.09. Department of Forensic and Neurodevelopmental Sciences
> (PO 23) | Institute of Psychiatry, Psychology & Neuroscience | King’s
> College London | 16 De Crespigny Park | London SE5 8AF
> > > >
> > > >
> > > >
> > > > Phone: 0207848 0260| Email: jumana.ahmad at kcl.ac.uk | Website:
> > > >
> > > >
> > > >
> > > > ************************************************************
> ***************************
> > > >
> > > > ************************************************************
> ***************************
> > > >
> > > > We are currently looking for volunteers with mild intellectual
> disability to be part of our exciting and world-leading European project
> into brain development and social behaviour. Please, do get in touch if you
> know of anyone who may be interested in taking part.
> > > >
> > > > ************************************************************
> ***************************
> > > >
> > > > ************************************************************
> ***************************
> > > >
> > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > > > To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.
> ucsd.edu
> > > > For digest mode, send an email with the subject "set digest mime" to
> eeglablist-request at sccn.ucsd.edu
> > > >
> > > >
> > > >
> > > > --
> > > > Makoto Miyakoshi
> > > > Swartz Center for Computational Neuroscience
> > > > Institute for Neural Computation, University of California San Diego
> > > >
> > > >
> > > >
> > > > --
> > > > Makoto Miyakoshi
> > > > Swartz Center for Computational Neuroscience
> > > > Institute for Neural Computation, University of California San Diego
> > > > _______________________________________________
> > > > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > > > To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.
> ucsd.edu
> > > > For digest mode, send an email with the subject "set digest mime" to
> eeglablist-request at sccn.ucsd.edu
> > >
> > >
> > >
> > >
> > > --
> > > Makoto Miyakoshi
> > > Swartz Center for Computational Neuroscience
> > > Institute for Neural Computation, University of California San Diego
> > > _______________________________________________
> > > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > > To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.
> ucsd.edu
> > > For digest mode, send an email with the subject "set digest mime" to
> eeglablist-request at sccn.ucsd.edu
> >
> >
> >
> >
> > --
> > Makoto Miyakoshi
> > Swartz Center for Computational Neuroscience
> > Institute for Neural Computation, University of California San Diego
> > _______________________________________________
> > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.
> ucsd.edu
> > For digest mode, send an email with the subject "set digest mime" to
> eeglablist-request at sccn.ucsd.edu
>
>

--
Makoto Miyakoshi
Swartz Center for Computational Neuroscience
Institute for Neural Computation, University of California San Diego
-------------- next part --------------
An HTML attachment was scrubbed...