Beamformer of correlated sources

Cristiano Micheli michelic72 at GMAIL.COM
Fri Aug 15 15:08:29 CEST 2008

About your last email:

On Fri, 8 Aug 2008 14:30:38 +0200, jan-mathijs schoffelen
<j.schoffelen at PSY.GLA.AC.UK> wrote:

>Dear Cristiano,
>Nice simulation in figure 1!
>The way you did the second simulation is just the 'traditional' DICS,
>giving you a huge mountain of coherence around the reference location.
>This will drown any other true cortico-cortical coherence to the
>right hemisphere dipole. (Note that a double dipole approach will not
>be of too
>much help here, if you do a ccc-analysis with respect to your
>reference: this is an important point in the paper you refer to. The
>double dipole approach
>will hopefully be able to unveil low coherence of the second dipole
>to the reference, which is masked by the high power + high coherence
>(one of these,
>or perhaps both) in the reference dipole.)
>As such, the double dipole approach is not yet implemented in a
>straightforward way in the release-version of fieldtrip, but I will
>be happy to give you some handles:
>I would suggest to include the leadfield of the reference location in
>the grid with precomputed leadfields which will be passed in the
>configuration to sourceanalysis.
>You have to concatenate the dipole-location specific leadfields with
>the reference dipole's leadfield. This will give you leadfields of
>dimensionality Nx6 (or Nx2 if you
>have a reason to assume a fixed orientation).
>Subsequently you can run sourceanalysis with cfg.keepfilter = 'yes'
>and without cfg.refdip, to extract the filter coefficients. These
>will have the dimensionality 6xN for each
>double dipole, the first 3 rows corresponding to the location
>specific location, and the last 3 rows corresponding to the reference

I  created a file named  'my_prepare_leadfield.m' and i concatenated the
lead field as written (line 235):

%   grid.leadfield{dipindx} = lf; %old
%%%%%%%%%%%%%%%%%%% new
lf2 = compute_leadfield([0 5 10], sens, vol, 'reducerank', cfg.reducerank,
'normalize', cfg.normalize,'normalizeparam',cfg.normalizeparam);
grid.leadfield{dipindx} = [lf lf2];
%%%%%%%%%%%%%%%%%%% new

Then I run the DICS with the following settings as you adviced:

cfg           = [];
cfg.grid      = grid_;
cfg.method    = 'dics';  
cfg.projectnoise = 'yes';
cfg.reducerank = 2;
cfg.lambda    = 0;
cfg.refchan   = refch;
cfg.frequency = 20;
cfg.hdmfile   = 'mymodel.hdm';
cfg.keepfilter= 'yes';
sourcecond    = sourceanalysis(cfg, freqcond);

>To then compute your 'dipole pair and reference channel'-based cross-
>spectral density you have to sandwich the sensor-level cross-spectral
>density (take care to have
>the channel-order identical to the channel order in the filters)
>between the augmented filters. You can augment the filters to
>accommodate for the reference channel in
>the following way: [filter zeros(size(filter,1),1);zeros(1,size
>(filter,2)) 1]; (make sure to put the reference channel last in the
>channel csd.

Before doing it I think I will have to include Cf and Cr and Pr in the same
matrix, but i am not sure.
Namely: csd = filter * Cf_ * ctranspose(filter)
with filt of dimensions 6X(N+1) channels after augmenting, and Cf_ made of
the contributions of MEG channel-channels cross-variance plus the
contribution of MEG-EMG channels crossvariance Cr (column vector):

Cf_ = [Cf,Cr;Cr' Pr];

> From each sandwiched csd (7x7) you should be able to extract
>anything you want. The top-left 6x6 block will contain the between
>dipole csd (diagonal 3x3 blocks contain
>the within dipole parameters from which power can be estimated: the
>off-diagonal blocks contain the between dipole csd). The bottom right
>value will contain the reference
>signal power, and the 6x1 and 1x6 remaining vectors contain the
>reference to dipole csds, in two groups of 3. The coherence can be
>estimated (according to Joachim's 2001
>PNAS-paper) in this case by: svd( csd(1:3,7))./ sqrt(svd(csd(1:3,1:3))
>Good luck,

This makes sense to me, considering also the literature (Dalal et al. 2006,
Brookes et al. 2007), but I weight equally the contributions of two
correlated dipoles, which can also have different amplitudes.
This is why maybe my simulations are not able to attenuate the main dipole?


The aim of this list is to facilitate the discussion between users of the FieldTrip  toolbox, to share experiences and to discuss new ideas for MEG and EEG analysis. See also and

More information about the fieldtrip mailing list