v2.0.0
Loading...
Searching...
No Matches
INVLIB::InvLCMV Class Reference

LCMV beamformer (time-domain). More...

#include <inv_lcmv.h>

Static Public Member Functions

static InvBeamformer makeLCMV (const FIFFLIB::FiffInfo &info, const MNELIB::MNEForwardSolution &forward, const FIFFLIB::FiffCov &dataCov, double reg=0.05, const FIFFLIB::FiffCov &noiseCov=FIFFLIB::FiffCov(), BeamformerPickOri pickOri=BeamformerPickOri::None, BeamformerWeightNorm weightNorm=BeamformerWeightNorm::UnitNoiseGain, bool reduceRank=false, BeamformerInversion invMethod=BeamformerInversion::Matrix)
static InvSourceEstimate applyLCMV (const FIFFLIB::FiffEvoked &evoked, const InvBeamformer &filters)
static InvSourceEstimate applyLCMVRaw (const Eigen::MatrixXd &data, float tmin, float tstep, const InvBeamformer &filters)
static InvSourceEstimate applyLCMVCov (const FIFFLIB::FiffCov &dataCov, const InvBeamformer &filters)
static QList< InvSourceEstimateapplyLCMVEpochs (const QList< Eigen::MatrixXd > &epochs, float tmin, float tstep, const InvBeamformer &filters)
static Eigen::MatrixXd makeLCMVResolutionMatrix (const MNELIB::MNEForwardSolution &forward, const FIFFLIB::FiffInfo &info, const FIFFLIB::FiffCov &dataCov, double reg=0.05, const FIFFLIB::FiffCov &noiseCov=FIFFLIB::FiffCov())

Detailed Description

LCMV beamformer (time-domain).

Linearly Constrained Minimum Variance (LCMV) beamformer for MEG/EEG source localization.

Typical workflow:

// 1. Compute the spatial filter from forward model + data covariance
InvBeamformer filters = InvLCMV::makeLCMV(info, forward, dataCov, noiseCov, reg,
pickOri, weightNorm, reduceRank, inversion);
// 2. Apply to evoked data -> source time courses
InvSourceEstimate stc = InvLCMV::applyLCMV(evoked, filters);
// 3. Or apply to covariance -> source power map
InvSourceEstimate power = InvLCMV::applyLCMVCov(dataCov, filters);
Computed beamformer spatial filter container.
static InvSourceEstimate applyLCMVCov(const FIFFLIB::FiffCov &dataCov, const InvBeamformer &filters)
Definition inv_lcmv.cpp:301
static InvBeamformer makeLCMV(const FIFFLIB::FiffInfo &info, const MNELIB::MNEForwardSolution &forward, const FIFFLIB::FiffCov &dataCov, double reg=0.05, const FIFFLIB::FiffCov &noiseCov=FIFFLIB::FiffCov(), BeamformerPickOri pickOri=BeamformerPickOri::None, BeamformerWeightNorm weightNorm=BeamformerWeightNorm::UnitNoiseGain, bool reduceRank=false, BeamformerInversion invMethod=BeamformerInversion::Matrix)
Definition inv_lcmv.cpp:55
static InvSourceEstimate applyLCMV(const FIFFLIB::FiffEvoked &evoked, const InvBeamformer &filters)
Definition inv_lcmv.cpp:212
Source-space inverse-solution container with dense grid plus optional focal-dipole,...

Definition at line 75 of file inv_lcmv.h.

Member Function Documentation

◆ applyLCMV()

InvSourceEstimate InvLCMV::applyLCMV ( const FIFFLIB::FiffEvoked & evoked,
const InvBeamformer & filters )
static

Apply LCMV beamformer to evoked data to produce source time courses.

stc = W @ (whitener @ proj @ evoked.data)

Parameters
[in]evokedEvoked data (averaged, channel x time).
[in]filtersPre-computed LCMV beamformer from makeLCMV().
Returns
Source estimate with time courses at each source point.

Definition at line 212 of file inv_lcmv.cpp.

◆ applyLCMVCov()

InvSourceEstimate InvLCMV::applyLCMVCov ( const FIFFLIB::FiffCov & dataCov,
const InvBeamformer & filters )
static

Apply LCMV beamformer to a data covariance to produce a source power map.

power_i = trace(W_i @ Cm @ W_i^T)

Parameters
[in]dataCovData covariance matrix.
[in]filtersPre-computed LCMV beamformer from makeLCMV().
Returns
Source estimate where data column 0 contains power at each source.

Definition at line 301 of file inv_lcmv.cpp.

◆ applyLCMVEpochs()

QList< InvSourceEstimate > InvLCMV::applyLCMVEpochs ( const QList< Eigen::MatrixXd > & epochs,
float tmin,
float tstep,
const InvBeamformer & filters )
static

Apply LCMV beamformer to a list of epochs.

Parameters
[in]epochsList of epoch data matrices (n_channels x n_times each).
[in]tminStart time of each epoch (seconds).
[in]tstepTime step (1/sfreq).
[in]filtersPre-computed LCMV beamformer from makeLCMV().
Returns
List of source estimates, one per epoch.

Definition at line 331 of file inv_lcmv.cpp.

◆ applyLCMVRaw()

InvSourceEstimate InvLCMV::applyLCMVRaw ( const Eigen::MatrixXd & data,
float tmin,
float tstep,
const InvBeamformer & filters )
static

Apply LCMV beamformer to raw data matrix.

Parameters
[in]dataData matrix (n_channels, n_times).
[in]tminStart time in seconds.
[in]tstepTime step in seconds.
[in]filtersPre-computed LCMV beamformer from makeLCMV().
Returns
Source estimate with time courses.

Definition at line 268 of file inv_lcmv.cpp.

◆ makeLCMV()

InvBeamformer InvLCMV::makeLCMV ( const FIFFLIB::FiffInfo & info,
const MNELIB::MNEForwardSolution & forward,
const FIFFLIB::FiffCov & dataCov,
double reg = 0.05,
const FIFFLIB::FiffCov & noiseCov = FIFFLIB::FiffCov(),
BeamformerPickOri pickOri = BeamformerPickOri::None,
BeamformerWeightNorm weightNorm = BeamformerWeightNorm::UnitNoiseGain,
bool reduceRank = false,
BeamformerInversion invMethod = BeamformerInversion::Matrix )
static

Compute LCMV beamformer spatial filters.

Parameters
[in]infoMeasurement info (for channel matching).
[in]forwardForward solution containing the leadfield.
[in]dataCovData covariance matrix (from recording epoch).
[in]regRegularization parameter (default 0.05 = 5% of trace).
[in]noiseCovNoise covariance for whitening. If empty, identity whitening.
[in]pickOriOrientation selection mode (default: None = keep all).
[in]weightNormWeight normalization (default: UnitNoiseGain).
[in]reduceRankReduce leadfield rank by 1 (default: false).
[in]invMethodInversion method for denominator (default: Matrix).
Returns
The computed beamformer containing spatial filter weights.

Definition at line 55 of file inv_lcmv.cpp.

◆ makeLCMVResolutionMatrix()

MatrixXd InvLCMV::makeLCMVResolutionMatrix ( const MNELIB::MNEForwardSolution & forward,
const FIFFLIB::FiffInfo & info,
const FIFFLIB::FiffCov & dataCov,
double reg = 0.05,
const FIFFLIB::FiffCov & noiseCov = FIFFLIB::FiffCov() )
static

Compute the LCMV resolution matrix: R = W @ G.

The resolution matrix describes the point-spread function of the beamformer. Each row shows how a unit source at one location maps through the forward model and back through the beamformer. Ideally R = I (perfect resolution).

Parameters
[in]forwardForward solution with leadfield.
[in]infoMeasurement info.
[in]dataCovData covariance.
[in]regRegularization (default 0.05).
[in]noiseCovNoise covariance for whitening (optional).
Returns
Resolution matrix (n_sources x n_sources).

Definition at line 360 of file inv_lcmv.cpp.


The documentation for this class was generated from the following files: