v2.0.0
Loading...
Searching...
No Matches
mvar_model.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef MVARMODEL_H
36#define MVARMODEL_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include "../conn_global.h"
43
44//=============================================================================================================
45// QT INCLUDES
46//=============================================================================================================
47
48#include <QVector>
49
50//=============================================================================================================
51// EIGEN INCLUDES
52//=============================================================================================================
53
54#include <Eigen/Core>
55
56//=============================================================================================================
57// FORWARD DECLARATIONS
58//=============================================================================================================
59
60//=============================================================================================================
61// DEFINE NAMESPACE CONNLIB
62//=============================================================================================================
63
64namespace CONNLIB {
65
66//=============================================================================================================
67// CONNLIB FORWARD DECLARATIONS
68//=============================================================================================================
69
70//=============================================================================================================
82{
83
84public:
85 //=========================================================================================================
89 MvarModel() = default;
90
91 //=========================================================================================================
100 void fit(const Eigen::MatrixXd& data, int p = 0);
101
102 //=========================================================================================================
110 QVector<Eigen::MatrixXd> coefficients() const;
111
112 //=========================================================================================================
120 Eigen::MatrixXd noiseCov() const;
121
122 //=========================================================================================================
130 int order() const;
131
132 //=========================================================================================================
144 QVector<Eigen::MatrixXcd> transferFunction(const Eigen::VectorXd& freqs) const;
145
146 //=========================================================================================================
156 QVector<Eigen::MatrixXcd> spectralMatrix(const Eigen::VectorXd& freqs) const;
157
158private:
159 //=========================================================================================================
166 void fitLevinsonDurbin(const Eigen::MatrixXd& data, int p);
167
168 //=========================================================================================================
177 int selectOrderBIC(const Eigen::MatrixXd& data, int maxOrder = 20) const;
178
179 QVector<Eigen::MatrixXd> m_coeffs;
180 Eigen::MatrixXd m_noiseCov;
181 int m_order = 0;
182 int m_nChannels = 0;
183};
184
185//=============================================================================================================
186// INLINE DEFINITIONS
187//=============================================================================================================
188} // namespace CONNLIB
189
190#endif // MVARMODEL_H
conn library export/import macros.
#define CONNSHARED_EXPORT
Definition conn_global.h:50
Functional connectivity metrics (coherence, PLV, cross-correlation, etc.).
Eigen::MatrixXd noiseCov() const
QVector< Eigen::MatrixXcd > spectralMatrix(const Eigen::VectorXd &freqs) const
QVector< Eigen::MatrixXcd > transferFunction(const Eigen::VectorXd &freqs) const
int order() const
void fit(const Eigen::MatrixXd &data, int p=0)
QVector< Eigen::MatrixXd > coefficients() const