[FieldTrip] Reject components using prepared vs. original data

"Jens Klinzing, Universität Tübingen" jens.klinzing at uni-tuebingen.de
Sun Aug 13 19:29:15 CEST 2017

Dear FieldTrip community,
I highpass-filter and downsample my data in order to prepare them for 
doing an ICA. I want to apply the resulting unmixing matrix and my list 
of suspicious components to the original data (before downsampling and 

In the ECG artifacts tutorial [1], this is done like this:

% decompose the original data as it was prior to downsampling to 150Hz
cfg           = [];
cfg.unmixing  = comp.unmixing;
cfg.topolabel = comp.topolabel;
comp_orig     = ft_componentanalysis(cfg, data_orig);

% the original data can now be reconstructed, excluding those components
cfg           = [];
cfg.component = [4 17];
data_clean    = ft_rejectcomponent(cfg,comp_orig, data_orig);

However, based on some older posts on this mailinglist I tried to 
directly provide the components calculated on prepared data like this:

data_clean2    = ft_rejectcomponent(cfg,comp, data_orig);

The output for both versions seems to be identical. This is maybe not 
surprising considering that the only fields ft_rejectcomponents seems to 
use from the second input comp are .label, .topolabel, .unmixing and 
.topo. The first three are identical for comp and comp_orig.  The values 
in comp.topo are however slightly different (in the order of 10^-14, 
looks like a precision issue?) compared to the values in comp_orig.topo.

So my questions are:
a) Are the two solutions equivalent or am I missing something?
b) Where do the tiny differences in comp/comp_orig.topo come from?
c) Should the tutorial be altered to the simpler version or are there 
scenarios in which the two versions are not equivalent?



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20170813/d8cd174f/attachment-0001.html>

More information about the fieldtrip mailing list