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//=============================================================================================================
96{
97public:
98 //=========================================================================================================
102 enum class TransformMode {
103 AveragePower,
104 CspSpace
105 };
106
107 //=========================================================================================================
116 explicit DecodingCsp(int nComponents = 4,
117 TransformMode transformInto = TransformMode::AveragePower,
118 bool useLog = true);
119
120 //=========================================================================================================
127 void fit(const std::vector<Eigen::MatrixXd>& epochs,
128 const Eigen::VectorXi& y);
129
130 //=========================================================================================================
144 Eigen::MatrixXd transform(const std::vector<Eigen::MatrixXd>& epochs) const;
145
146 //=========================================================================================================
154 Eigen::MatrixXd fitTransform(const std::vector<Eigen::MatrixXd>& epochs,
155 const Eigen::VectorXi& y);
156
157 //=========================================================================================================
167 Eigen::MatrixXd inverseTransform(const Eigen::MatrixXd& X) const;
168
169 //=========================================================================================================
173 const Eigen::MatrixXd& filters() const;
174
175 //=========================================================================================================
179 const Eigen::MatrixXd& patterns() const;
180
181 //=========================================================================================================
185 const Eigen::VectorXd& mean() const;
186
187 //=========================================================================================================
191 const Eigen::VectorXd& stddev() const;
192
193 //=========================================================================================================
197 bool isFitted() const;
198
199private:
200 int m_nComponents;
201 TransformMode m_transformInto;
202 bool m_useLog;
203
204 Eigen::MatrixXd m_filters;
205 Eigen::MatrixXd m_patterns;
206 Eigen::VectorXd m_mean;
207 Eigen::VectorXd m_std;
208 bool m_fitted = false;
209
213 Eigen::MatrixXd computePowerFeatures(
214 const std::vector<Eigen::MatrixXd>& epochs) const;
215};
216
217} // namespace DECODINGLIB
218
219#endif // DECODING_CSP_H
constexpr int X
Export/import macros and build-info entry points for DECODINGLIB.
#define DECODINGSHARED_EXPORT
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)