v2.0.0
Loading...
Searching...
No Matches
decoding_csp.h
Go to the documentation of this file.
1//=============================================================================================================
37
38#ifndef DECODING_CSP_H
39#define DECODING_CSP_H
40
41//=============================================================================================================
42// INCLUDES
43//=============================================================================================================
44
45#include "decoding_global.h"
46
47//=============================================================================================================
48// EIGEN INCLUDES
49//=============================================================================================================
50
51#include <Eigen/Core>
52
53//=============================================================================================================
54// STL INCLUDES
55//=============================================================================================================
56
57#include <vector>
58
59//=============================================================================================================
60// DEFINE NAMESPACE DECODINGLIB
61//=============================================================================================================
62
63namespace DECODINGLIB
64{
65
66//=============================================================================================================
99{
100public:
101 //=========================================================================================================
105 enum class TransformMode
106 {
107 AveragePower,
108 CspSpace
109 };
110
111 //=========================================================================================================
120 explicit DecodingCsp(int nComponents = 4,
121 TransformMode transformInto = TransformMode::AveragePower,
122 bool useLog = true);
123
124 //=========================================================================================================
131 void fit(const std::vector<Eigen::MatrixXd>& epochs,
132 const Eigen::VectorXi& y);
133
134 //=========================================================================================================
148 Eigen::MatrixXd transform(const std::vector<Eigen::MatrixXd>& epochs) const;
149
150 //=========================================================================================================
158 Eigen::MatrixXd fitTransform(const std::vector<Eigen::MatrixXd>& epochs,
159 const Eigen::VectorXi& y);
160
161 //=========================================================================================================
171 Eigen::MatrixXd inverseTransform(const Eigen::MatrixXd& X) const;
172
173 //=========================================================================================================
177 const Eigen::MatrixXd& filters() const;
178
179 //=========================================================================================================
183 const Eigen::MatrixXd& patterns() const;
184
185 //=========================================================================================================
189 const Eigen::VectorXd& mean() const;
190
191 //=========================================================================================================
195 const Eigen::VectorXd& stddev() const;
196
197 //=========================================================================================================
201 bool isFitted() const;
202
203private:
204 int m_nComponents;
205 TransformMode m_transformInto;
206 bool m_useLog;
207
208 Eigen::MatrixXd m_filters;
209 Eigen::MatrixXd m_patterns;
210 Eigen::VectorXd m_mean;
211 Eigen::VectorXd m_std;
212 bool m_fitted = false;
213
217 Eigen::MatrixXd computePowerFeatures(
218 const std::vector<Eigen::MatrixXd>& epochs) const;
219};
220
221} // namespace DECODINGLIB
222
223#endif // DECODING_CSP_H
Export/import macros and build-info entry points for DECODINGLIB.
#define DECODINGSHARED_EXPORT
constexpr int X
Supervised and unsupervised spatial-filter decompositions for M/EEG decoding.
Common Spatial Patterns decoder for two-class discriminative spatial filtering.
DecodingCsp(int nComponents=4, TransformMode transformInto=TransformMode::AveragePower, bool useLog=true)