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//=============================================================================================================
89{
90public:
91 //=========================================================================================================
98 explicit DecodingSsd(int nComponents = 6,
99 double regParam = 0.05);
100
101 //=========================================================================================================
112 void fit(const Eigen::Ref<const Eigen::MatrixXd>& data,
113 double sfreq,
114 double signalLow, double signalHigh,
115 double noiseLow, double noiseHigh);
116
117 //=========================================================================================================
124 Eigen::MatrixXd transform(const Eigen::Ref<const Eigen::MatrixXd>& data) const;
125
126 //=========================================================================================================
130 Eigen::MatrixXd fitTransform(const Eigen::Ref<const Eigen::MatrixXd>& data,
131 double sfreq,
132 double signalLow, double signalHigh,
133 double noiseLow, double noiseHigh);
134
135 //=========================================================================================================
145 Eigen::MatrixXd apply(const Eigen::Ref<const Eigen::MatrixXd>& data) const;
146
147 //=========================================================================================================
151 const Eigen::MatrixXd& filters() const;
152
153 //=========================================================================================================
157 const Eigen::MatrixXd& patterns() const;
158
159 //=========================================================================================================
163 const Eigen::VectorXd& eigenvalues() const;
164
165 //=========================================================================================================
169 bool isFitted() const;
170
171private:
172 int m_nComponents;
173 double m_regParam;
174
175 Eigen::MatrixXd m_filters;
176 Eigen::MatrixXd m_patterns;
177 Eigen::VectorXd m_eigenvalues;
178 bool m_fitted = false;
179
183 static Eigen::MatrixXd bandpassFilter(const Eigen::MatrixXd& data,
184 double sfreq,
185 double lowFreq,
186 double highFreq);
187};
188
189} // namespace DECODINGLIB
190
191#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)