update: artifact detection

Robert Oostenveld r.oostenveld at FCDONDERS.RU.NL
Tue Jan 17 13:28:20 CET 2006

Dear Fieldtrip users,

I have updated the artifact detection functions (artiact_xxx, where
xxx=jump, eog and muscle). Each of these three functions was already
based on the same underlying idea, namely to filter and preprocess
the data, then z-transform the result, cummulate the z-values over
channels and finally look for z-values that are larger than the
cutoff level. To reflect this similarity, I have created a new
function: artifact_zvalue. Each of the artifact_jump, eog and muscle
functions now sets some default values and then calls
artifact_zvalue. That facilitates the maintenance and ensures that
all functions behave the same regarding graphical feedback. From now
on, you can also visually verify the trial definition and the
detected artifacts in rejectartifact, using cfg.artfctdef.feedback=yes.

Most important for you to know is that:
1) the new functions should be largely backward compatible. The
filtering and preprocessing computations were only marginally
changed, so the outcome should be almost the same.
2) the padding has been better defined. I will also write an artifact
detection tutorial that explains these padding values better.
3) the new artifact detections functions (for jump, eog and muscle)
now only will work on continuous and pseudo-continuous data. Jumps in
the data at the trial boundaries for non-continous data are not dealt
with and will mess up the result so --if you want to use them on
trial-based data-- you are responsible yourself for configuring the
padding options correctly.
4) the old functions are still available, with the name
artifact_xxx_old (where xxx=jump, eog and muscle). If you want to use
them, you should specify cfg.artifact.type={'eog_old', ...} and call
the rejectartifact function.

The idea (which I will describe in the upcoming "artifact tutorial")
is that you do not use cfg.rejectjump/muscle/eog=yes any more in the
preprocessing cfg structure, but that you do the following steps
   cfg = something to start with...
   cfg = definetrial(cfg)
   cfg = artifact_eog(cfg)
   cfg = artifact_eog(cfg)
   cfg = artifact_jump(cfg)
   cfg = artifact_muscle(cfg)
   cfg = rejectartifact(cfg)
   data = preprocessing(cfg)

The fieldtrip version on home/common (inside the FCDC) will be
updated this afternoon. The fieldtrip version on the ftp server
(outside the FCDC) will be updated this evening.

Since it is a large change in the fieldtrip code, bugs might have
crept in. Please be extra cautious the upcoming time and report
unusual behaviour. Sorry for the inconvenience that this may result in.

best regards,

Robert Oostenveld, PhD
F.C. Donders Centre for Cognitive Neuroimaging
Radboud University Nijmegen
phone: +31-24-3619695

More information about the fieldtrip mailing list