When I use the batch-mode signal averaging capability in mne_suite, what
is the order that the following procedures are done?
- baselining (done per trial?)
- averaging across trials
- filtering
- artifact rejection
I understand all except artifact rejection to be a linear process (meaning
can be done in any order without changing the end result). But that
artifact rejection is non-linear, in that when you do it relative to the
other functions, the end result may change. Is my understanding correct?
What is the common wisdom as to when artifact rejection should be done?
In fact, you almost certainly want to first do artifact rejection then filter, then the last two the order makes no difference. The reason being that filters take time to settle. If you average first, you will have large filter artifacts at the beginning and ends of each trial (you would much rather put these artifacts on the beginning and ends of each run and then just leave extra time in the beginning and ends of runs that you do not analyze). There are filter tricks that can be done to minimize these edge effects, but in my experience the mne stream does leave substantial filter artifacts at the beginning and ends of runs. You would have to write your own filter (which you may have already done) if you want to avoid these.
Just to clarify: if there is a significant dc offset in the data,
there is, indeed, ringing in the mne_browse_raw/mne_process_raw
filters in the beginning and possibly at the end of the runs but *not*
for each trial. Usually this is no big concern.
MNE filters first and then check for artifacts. The reasoning for this
is that the purpose of a filter is to reject noise which you do not
want to mistake for an artifact because it will be removed by the
filter anyways.