v2.0.0
Loading...
Searching...
No Matches
decoding_spoc.h
Go to the documentation of this file.
1//=============================================================================================================
35
36#ifndef DECODING_SPOC_H
37#define DECODING_SPOC_H
38
39//=============================================================================================================
40// INCLUDES
41//=============================================================================================================
42
43#include "decoding_global.h"
44
45//=============================================================================================================
46// EIGEN INCLUDES
47//=============================================================================================================
48
49#include <Eigen/Core>
50
51//=============================================================================================================
52// STL INCLUDES
53//=============================================================================================================
54
55#include <vector>
56
57//=============================================================================================================
58// DEFINE NAMESPACE DECODINGLIB
59//=============================================================================================================
60
61namespace DECODINGLIB{
62
63//=============================================================================================================
90{
91public:
92 //=========================================================================================================
96 enum class TransformMode {
97 AveragePower,
98 CspSpace
99 };
100
101 //=========================================================================================================
109 explicit DecodingSpoc(int nComponents = 4,
110 TransformMode transformInto = TransformMode::AveragePower,
111 bool useLog = true);
112
113 //=========================================================================================================
120 void fit(const std::vector<Eigen::MatrixXd>& epochs,
121 const Eigen::VectorXd& y);
122
123 //=========================================================================================================
130 Eigen::MatrixXd transform(const std::vector<Eigen::MatrixXd>& epochs) const;
131
132 //=========================================================================================================
136 Eigen::MatrixXd fitTransform(const std::vector<Eigen::MatrixXd>& epochs,
137 const Eigen::VectorXd& y);
138
139 //=========================================================================================================
143 const Eigen::MatrixXd& filters() const;
144
145 //=========================================================================================================
149 const Eigen::MatrixXd& patterns() const;
150
151 //=========================================================================================================
155 const Eigen::VectorXd& mean() const;
156
157 //=========================================================================================================
161 const Eigen::VectorXd& stddev() const;
162
163 //=========================================================================================================
167 bool isFitted() const;
168
169private:
170 int m_nComponents;
171 TransformMode m_transformInto;
172 bool m_useLog;
173
174 Eigen::MatrixXd m_filters;
175 Eigen::MatrixXd m_patterns;
176 Eigen::VectorXd m_mean;
177 Eigen::VectorXd m_std;
178 bool m_fitted = false;
179
180 Eigen::MatrixXd computePowerFeatures(
181 const std::vector<Eigen::MatrixXd>& epochs) const;
182};
183
184} // namespace DECODINGLIB
185
186#endif // DECODING_SPOC_H
Export/import macros and build-info entry points for DECODINGLIB.
#define DECODINGSHARED_EXPORT
Supervised and unsupervised spatial-filter decompositions for M/EEG decoding.
Source Power Comodulation decoder for continuous-target regression on band-power.
DecodingSpoc(int nComponents=4, TransformMode transformInto=TransformMode::AveragePower, bool useLog=true)