v2.0.0
Loading...
Searching...
No Matches
decoding_ssd.h
Go to the documentation of this file.
1//=============================================================================================================
38
39#ifndef DECODING_SSD_H
40#define DECODING_SSD_H
41
42//=============================================================================================================
43// INCLUDES
44//=============================================================================================================
45
46#include "decoding_global.h"
47
48//=============================================================================================================
49// EIGEN INCLUDES
50//=============================================================================================================
51
52#include <Eigen/Core>
53
54//=============================================================================================================
55// DEFINE NAMESPACE DECODINGLIB
56//=============================================================================================================
57
58namespace DECODINGLIB
59{
60
61//=============================================================================================================
92{
93public:
94 //=========================================================================================================
101 explicit DecodingSsd(int nComponents = 6,
102 double regParam = 0.05);
103
104 //=========================================================================================================
115 void fit(const Eigen::Ref<const Eigen::MatrixXd>& data,
116 double sfreq,
117 double signalLow, double signalHigh,
118 double noiseLow, double noiseHigh);
119
120 //=========================================================================================================
127 Eigen::MatrixXd transform(const Eigen::Ref<const Eigen::MatrixXd>& data) const;
128
129 //=========================================================================================================
141 Eigen::MatrixXd fitTransform(const Eigen::Ref<const Eigen::MatrixXd>& data,
142 double sfreq,
143 double signalLow, double signalHigh,
144 double noiseLow, double noiseHigh);
145
146 //=========================================================================================================
156 Eigen::MatrixXd apply(const Eigen::Ref<const Eigen::MatrixXd>& data) const;
157
158 //=========================================================================================================
162 const Eigen::MatrixXd& filters() const;
163
164 //=========================================================================================================
168 const Eigen::MatrixXd& patterns() const;
169
170 //=========================================================================================================
174 const Eigen::VectorXd& eigenvalues() const;
175
176 //=========================================================================================================
180 bool isFitted() const;
181
182private:
183 int m_nComponents;
184 double m_regParam;
185
186 Eigen::MatrixXd m_filters;
187 Eigen::MatrixXd m_patterns;
188 Eigen::VectorXd m_eigenvalues;
189 bool m_fitted = false;
190
194 static Eigen::MatrixXd bandpassFilter(const Eigen::MatrixXd& data,
195 double sfreq,
196 double lowFreq,
197 double highFreq);
198};
199
200} // namespace DECODINGLIB
201
202#endif // DECODING_SSD_H
Export/import macros and build-info entry points for DECODINGLIB.
#define DECODINGSHARED_EXPORT
Supervised and unsupervised spatial-filter decompositions for M/EEG decoding.
DecodingSsd(int nComponents=6, double regParam=0.05)
Eigen::MatrixXd apply(const Eigen::Ref< const Eigen::MatrixXd > &data) const
const Eigen::MatrixXd & filters() const
const Eigen::VectorXd & eigenvalues() const
Eigen::MatrixXd transform(const Eigen::Ref< const Eigen::MatrixXd > &data) const
const Eigen::MatrixXd & patterns() const
void fit(const Eigen::Ref< const Eigen::MatrixXd > &data, double sfreq, double signalLow, double signalHigh, double noiseLow, double noiseHigh)
Eigen::MatrixXd fitTransform(const Eigen::Ref< const Eigen::MatrixXd > &data, double sfreq, double signalLow, double signalHigh, double noiseLow, double noiseHigh)