v2.0.0
Loading...
Searching...
No Matches
inv_signal_model.h
Go to the documentation of this file.
1//=============================================================================================================
21
22#ifndef INV_SIGNAL_MODEL_H
23#define INV_SIGNAL_MODEL_H
24
25//=============================================================================================================
26// INCLUDES
27//=============================================================================================================
28
29#include "../inv_global.h"
31
32//=============================================================================================================
33// QT INCLUDES
34//=============================================================================================================
35
36#include <QSharedPointer>
37
38//=============================================================================================================
39// EIGEN INCLUDES
40//=============================================================================================================
41
42#include <Eigen/Core>
43
44//=============================================================================================================
45// FORWARD DECLARATIONS
46//=============================================================================================================
47
48namespace INVLIB
49{
50//=============================================================================================================
51// Declare all structures to be used
52//=============================================================================================================
53
54//=============================================================================================================
61{
62
63public:
64 typedef QSharedPointer<InvSignalModel> SPtr;
65 typedef QSharedPointer<const InvSignalModel> ConstSPtr;
66
67 //=========================================================================================================
71 explicit InvSignalModel() = default;
72
73 //=========================================================================================================
83 Eigen::MatrixXd fitData(const InvHpiModelParameters& hpiModelParameters,
84 const Eigen::MatrixXd& matData);
85
86private:
87 //=========================================================================================================
92 void selectModelAndCompute();
93
94 //=========================================================================================================
99 void computeInverseBasicModel();
100 void computeInverseAdvancedModel();
101
102 //=========================================================================================================
110 bool checkDataDimensions(const int iCols);
111
112 //=========================================================================================================
119 bool checkModelParameters(const InvHpiModelParameters& hpiModelParameters);
120
121 //=========================================================================================================
128 bool checkEmpty(const InvHpiModelParameters& hpiModelParameters);
129
130 Eigen::MatrixXd m_matInverseSignalModel{Eigen::MatrixXd(0,0)};
131 int m_iCurrentModelCols{0};
132 InvHpiModelParameters m_modelParameters{InvHpiModelParameters()};
133};
134
135//=============================================================================================================
136// INLINE DEFINITIONS
137//=============================================================================================================
138
139} // namespace INVLIB
140
141#endif // SignalModel_H
142
INVLIB library export/import macros, build-info accessors, and namespace docstring for the inverse-so...
#define INVSHARED_EXPORT
Definition inv_global.h:38
Immutable configuration for the HPI signal model — coil drive frequencies, sample rate,...
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
Configuration parameters for the HPI signal model (line frequency, coil frequencies,...
Eigen::MatrixXd fitData(const InvHpiModelParameters &hpiModelParameters, const Eigen::MatrixXd &matData)
QSharedPointer< InvSignalModel > SPtr
QSharedPointer< const InvSignalModel > ConstSPtr