Noise covariance unused in the LCMV beamformer?

Hello Alex, others,

Yes, I'm the guilty party who asked Francois to include both in the interface. As of the Brainstorm 2018, we are only using the data covariance in our LCMV implementation. But, I'm on the hook to re-implement noise pre-whitening, before applying regularized data covariances.

The BST2018 variation did exceptionally well in a recent publication, in which we (several research developers) had a friendly competition to see who did what in their various forms:

Comparison of beamformer implementations for MEG source localization
https://doi.org/10.1016/j.neuroimage.2020.116797
https://www.sciencedirect.com/science/article/pii/S1053811920302846

BST2018 used a simple but elegant "trick" (but rigorous) in programming that simply replaces noise with data covariance, while holding the rest of the code fixed, as you may have surmised when digging through the code. This is mathematically rigorous, but it is more conventional to have separate code. As you'll note in the above article, however, we did quite well.

One of the strong issues that arose among us is how to condition deficient covariance matrices, particularly in the case of mixed sensors, where simple conditioning often suppresses important information. So I still have in my notes how to re-apply the noise covariance first, in order to improve the truncation or regularization of the whitened data covariance, rather than applying the methods directly to the data covariance. Still a work in progress.

  • John