v2.0.0
Loading...
Searching...
No Matches
ica.h
Go to the documentation of this file.
1//=============================================================================================================
38
39#ifndef ICA_DSP_H
40#define ICA_DSP_H
41
42//=============================================================================================================
43// INCLUDES
44//=============================================================================================================
45
46#include "dsp_global.h"
47
48//=============================================================================================================
49// EIGEN INCLUDES
50//=============================================================================================================
51
52#include <Eigen/Core>
53
54//=============================================================================================================
55// QT INCLUDES
56//=============================================================================================================
57
58#include <QVector>
59
60//=============================================================================================================
61// DEFINE NAMESPACE UTILSLIB
62//=============================================================================================================
63
64namespace UTILSLIB
65{
66
67//=============================================================================================================
76{
77 Eigen::MatrixXd matMixing;
78 Eigen::MatrixXd matUnmixing;
79 Eigen::MatrixXd matSources;
80 Eigen::VectorXd vecMean;
82};
83
84//=============================================================================================================
99{
100public:
101 //=========================================================================================================
114 static IcaResult run(const Eigen::MatrixXd& matData,
115 int nComponents = -1,
116 int maxIter = 200,
117 double tol = 1e-4,
118 int randomSeed = 42);
119
120 //=========================================================================================================
130 static Eigen::MatrixXd applyUnmixing(const Eigen::MatrixXd& matData,
131 const IcaResult& result);
132
133 //=========================================================================================================
144 static Eigen::MatrixXd excludeComponents(const Eigen::MatrixXd& matData,
145 const IcaResult& result,
146 const QVector<int>& excludedComponents);
147
148private:
149 //=========================================================================================================
161 static Eigen::MatrixXd whiten(const Eigen::MatrixXd& matCentered,
162 int nComponents,
163 Eigen::MatrixXd& matWhitening,
164 Eigen::MatrixXd& matDewhitening);
165};
166
167} // namespace UTILSLIB
168
169#endif // ICA_DSP_H
dsp library export/import macros.
#define DSPSHARED_EXPORT
Definition dsp_global.h:56
Shared utilities (I/O helpers, spectral analysis, layout management, warp algorithms).
Result of an ICA decomposition.
Definition ica.h:76
Eigen::MatrixXd matUnmixing
Definition ica.h:78
Eigen::MatrixXd matSources
Definition ica.h:79
Eigen::MatrixXd matMixing
Definition ica.h:77
Eigen::VectorXd vecMean
Definition ica.h:80
bool bConverged
Definition ica.h:81
Independent Component Analysis using the FastICA algorithm (deflationary, logcosh nonlinearity).
Definition ica.h:99
static Eigen::MatrixXd excludeComponents(const Eigen::MatrixXd &matData, const IcaResult &result, const QVector< int > &excludedComponents)
Definition ica.cpp:223
static IcaResult run(const Eigen::MatrixXd &matData, int nComponents=-1, int maxIter=200, double tol=1e-4, int randomSeed=42)
Definition ica.cpp:93
static Eigen::MatrixXd applyUnmixing(const Eigen::MatrixXd &matData, const IcaResult &result)
Definition ica.cpp:214