InvSignalModel
Namespace: INVLIB · Library: Inverse Library
#include <inv/inv_signal_model.h>
class INVLIB::InvSignalModel
Description of what this class is intended to do (in detail).
Generates the forward sinusoidal model matrix for HPI coil signals at known drive frequencies
src/examples/ex_inv_hpi/main.cpp
// Sine and cosine amplitudes of every coil frequency in every channel, least-squares fitted.
InvSignalModel signalModel;
const InvHpiModelParameters ordered(fit.hpiFreqs, info->sfreq, info->linefreq, false);
const MatrixXd amplitudes = signalModel.fitData(ordered, updater.getProjectedData()); // (sin, cos) x 4 coils, then channels
Public Methods
InvSignalModel()
Constructs a InvSignalModel object.
fitData(hpiModelParameters, matData)
Fit the data to the model constructed from given model parameters.
Parameters:
-
hpiModelParameters : const InvHpiModelParameters & The
InvHpiModelParameters. -
matData : const Eigen::MatrixXd & The data matrix.
Returns:
- Eigen::MatrixXd — the fitted data
Example
- Full source:
src/examples/ex_inv_hpi/main.cpp - Build target:
ex_inv_hpi(runs under CTest) - Data: mne-cpp-test-data
Used in examples
ex_inv_hpi
Inverse library: continuous head position (HPI) fitting.
src/examples/ex_inv_hpi/main.cpp, line 125
// Sine and cosine amplitudes of every coil frequency in every channel, least-squares fitted.
InvSignalModel signalModel;
const InvHpiModelParameters ordered(fit.hpiFreqs, info->sfreq, info->linefreq, false);
const MatrixXd amplitudes = signalModel.fitData(ordered, updater.getProjectedData()); // (sin, cos) x 4 coils, then channels
ok &= expect(amplitudes.rows() == 8 && amplitudes.cols() == updater.getProjectedData().rows() && amplitudes.allFinite(),
"InvSignalModel: sine and cosine amplitudes of the 4 coils for every channel");
Authors of this file
- Christoph Dinh <christoph.dinh@mne-cpp.org>