Back to the main page.

Bug 3105 - implement NAI / unit-noise gain MV beamformer; orientation not properly optimized when NAI manually calculated as in tutorial

Reported 2016-04-06 18:40:00 +0200
Modified 2016-04-07 16:14:06 +0200
Product: FieldTrip
Component: inverse
Version: unspecified
Hardware: All
Operating System: All
Importance: P5 major
Assigned to: Sarang Dalal
Depends on:
See also:

Sarang Dalal - 2016-04-06 18:40:35 +0200

For beamforming time series, it is desirable to implement the unit-noise gain minimum-variance (aka Borgiotti-Kaplan) beamformer and the related neural activity index. The major reason this should happen directly in the beamformer code is that when the optimal orientation is calculated, any such "weight normalization" should be taken into account. (See equation 4.47 in the Sekihara & Nagarajan 2008 book.) This is not feasible to recalculate after the weights are already obtained, but can make a surprisingly dramatic improvement in the source reconstruction quality.

Sarang Dalal - 2016-04-06 19:02:59 +0200

I think I have resolved this with Pull #133 :-)

Sarang Dalal - 2016-04-06 19:06:20 +0200

Note: I have tested this with vector lead fields with orientation optimization, i.e., a scalar beamformer. A vector beamformer may require a "trace" operation on the denominator for both NAI and UNG.

Robert Oostenveld - 2016-04-06 20:24:32 +0200

thanks, I just I merged your PR Are you planning to look into the trace for vector BFs?

Sarang Dalal - 2016-04-07 16:14:06 +0200

Yes, I can take care of adding support for vector BF. I was mistaken, the solution is not a trace, but a more complicated formula, so it may take some time for me to write and test it. Also a small clarification to my first comment. If a vector beamformer is used, it *is* indeed feasible to compute the optimum orientation at a later stage. :-) But with a scalar beamformer, it must be done upon weight computation.