InvHpiModelParameters
Namespace: INVLIB · Library: Inverse Library
#include <inv/inv_hpi_model_parameters.h>
class INVLIB::InvHpiModelParameters
Description of what this class is intended to do (in detail).
Configuration parameters for the HPI signal model (line frequency, coil frequencies, sample rate, buffer size)
InvHpiDataUpdater updater(info); // good MEG channels, their sensors and the digitised coil positions
updater.prepareDataAndProjectors(segment, MatrixXd::Identity(info->nchan, info->nchan));
// The coil frequencies are known but not their order; the first fit with bOrderFrequencies finds it.
const InvHpiModelParameters model(QVector<int>({154, 158, 161, 166}), info->sfreq, info->linefreq, true);
InvHpiFit hpi(updater.getSensors());
HpiFitResult fit;
hpi.fit(updater.getProjectedData(), updater.getProjectors(), model, updater.getHpiDigitizer(), true, fit);
Public Methods
InvHpiModelParameters()
Defaul Constructor.
InvHpiModelParameters(vecHpiFreqs, iSampleFreq, iLineFreq, bBasic)
Constructs a InvHpiModelParameters object.
Parameters:
-
vecHpiFreqs : const QVector< int > The Hpi frequencies.
-
iSampleFreq : const int The sampling frequency.
-
iLineFreq : const int The line Frequency
-
bBasic : const bool Create a basic model without line frequeny or not.
InvHpiModelParameters(hpiModelParameter)
Copy constructor.
Parameters:
- hpiModelParameter : const InvHpiModelParameters &
InvHpiModelParameterswhich should be copied.
operator=(other)
operator==(b)
operator!=(b)
vecHpiFreqs()
Inline functions to get acces to parameters.
Returns:
- QVector< int > — HPI coil frequencies, in Hz.
iNHpiCoils()
iSampleFreq()
iLineFreq()
bBasic()
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.
InvHpiDataUpdater updater(info); // good MEG channels, their sensors and the digitised coil positions
updater.prepareDataAndProjectors(segment, MatrixXd::Identity(info->nchan, info->nchan));
// The coil frequencies are known but not their order; the first fit with bOrderFrequencies finds it.
const InvHpiModelParameters model(QVector<int>({154, 158, 161, 166}), info->sfreq, info->linefreq, true);
InvHpiFit hpi(updater.getSensors());
HpiFitResult fit;
hpi.fit(updater.getProjectedData(), updater.getProjectors(), model, updater.getHpiDigitizer(), true, fit);
// MaxFilter head position at t = 0: translation (-0.814, -11.046, 53.572) mm. One 200 ms window, so allow 1 mm
// (test_hpiFit_integration holds the mean over the whole recording to 0.3 mm).
MatrixXd maxfilter;
IOUtils::read_eigen_matrix(maxfilter, data + "/Result/ref_hpiFit_pos.txt");
const Vector3d translation = fit.devHeadTrans.trans.block<3, 1>(0, 3).cast<double>();
const Vector3d reference = maxfilter.block<1, 3>(0, 4).transpose();
ex_hpiFit
Example for cHPI fitting on raw data with SSP. The result is written to a .txt file for comparison with MaxFilter's .pos file.
const auto& matProjectedData = hpiDataUpdater.getProjectedData();
const auto& matPreparedProjectors = hpiDataUpdater.getProjectors();
const auto& matCoilsHead = hpiDataUpdater.getHpiDigitizer();
InvHpiModelParameters hpiModelParameters(vecFreqs,
pFiffInfo->sfreq,
pFiffInfo->linefreq,
bFast);
ex_dsp_rt
DSP real-time workers: averaging, covariance, noise spectrum, connectivity, HPI fitting and inverse operators.
InvHpiDataUpdater updater(hpiInfo); // MEG picks, sensor geometry and digitised coil positions
updater.prepareDataAndProjectors(hpiData, projectors);
const InvHpiModelParameters model(QVector<int>({166, 154, 161, 158}), hpiInfo->sfreq, hpiInfo->linefreq, false);
Authors of this file
- Christoph Dinh <christoph.dinh@mne-cpp.org>