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
64//=============================================================================================================
93{
94public:
95 //=========================================================================================================
99 enum class TransformMode
100 {
101 AveragePower,
102 CspSpace
103 };
104
105 //=========================================================================================================
113 explicit DecodingSpoc(int nComponents = 4,
114 TransformMode transformInto = TransformMode::AveragePower,
115 bool useLog = true);
116
117 //=========================================================================================================
124 void fit(const std::vector<Eigen::MatrixXd>& epochs,
125 const Eigen::VectorXd& y);
126
127 //=========================================================================================================
134 Eigen::MatrixXd transform(const std::vector<Eigen::MatrixXd>& epochs) const;
135
136 //=========================================================================================================
144 Eigen::MatrixXd fitTransform(const std::vector<Eigen::MatrixXd>& epochs,
145 const Eigen::VectorXd& y);
146
147 //=========================================================================================================
151 const Eigen::MatrixXd& filters() const;
152
153 //=========================================================================================================
157 const Eigen::MatrixXd& patterns() const;
158
159 //=========================================================================================================
163 const Eigen::VectorXd& mean() const;
164
165 //=========================================================================================================
169 const Eigen::VectorXd& stddev() const;
170
171 //=========================================================================================================
175 bool isFitted() const;
176
177private:
178 int m_nComponents;
179 TransformMode m_transformInto;
180 bool m_useLog;
181
182 Eigen::MatrixXd m_filters;
183 Eigen::MatrixXd m_patterns;
184 Eigen::VectorXd m_mean;
185 Eigen::VectorXd m_std;
186 bool m_fitted = false;
187
188 Eigen::MatrixXd computePowerFeatures(
189 const std::vector<Eigen::MatrixXd>& epochs) const;
190};
191
192} // namespace DECODINGLIB
193
194#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)