v2.0.0
Loading...
Searching...
No Matches
ica.h
Go to the documentation of this file.
1//=============================================================================================================
29
30#ifndef ICA_DSP_H
31#define ICA_DSP_H
32
33//=============================================================================================================
34// INCLUDES
35//=============================================================================================================
36
37#include "dsp_global.h"
38
39//=============================================================================================================
40// EIGEN INCLUDES
41//=============================================================================================================
42
43#include <Eigen/Core>
44
45//=============================================================================================================
46// QT INCLUDES
47//=============================================================================================================
48
49#include <QVector>
50
51//=============================================================================================================
52// DEFINE NAMESPACE UTILSLIB
53//=============================================================================================================
54
55namespace UTILSLIB
56{
57
58//=============================================================================================================
69{
70 Eigen::MatrixXd matMixing;
71 Eigen::MatrixXd matUnmixing;
72 Eigen::MatrixXd matSources;
73 Eigen::VectorXd vecMean;
75};
76
77//=============================================================================================================
84{
85public:
86 //=========================================================================================================
99 static IcaResult run(const Eigen::MatrixXd& matData,
100 int nComponents = -1,
101 int maxIter = 200,
102 double tol = 1e-4,
103 int randomSeed = 42);
104
105 //=========================================================================================================
115 static Eigen::MatrixXd applyUnmixing(const Eigen::MatrixXd& matData,
116 const IcaResult& result);
117
118 //=========================================================================================================
129 static Eigen::MatrixXd excludeComponents(const Eigen::MatrixXd& matData,
130 const IcaResult& result,
131 const QVector<int>& excludedComponents);
132
133private:
134 //=========================================================================================================
146 static Eigen::MatrixXd whiten(const Eigen::MatrixXd& matCentered,
147 int nComponents,
148 Eigen::MatrixXd& matWhitening,
149 Eigen::MatrixXd& matDewhitening);
150};
151
152} // namespace UTILSLIB
153
154#endif // ICA_DSP_H
Export/import macros and namespace declaration for the DSP library.
#define DSPSHARED_EXPORT
Definition dsp_global.h:50
Shared utilities (I/O helpers, spectral analysis, layout management, warp algorithms).
Result of an ICA decomposition.
Definition ica.h:69
Eigen::MatrixXd matUnmixing
Definition ica.h:71
Eigen::MatrixXd matSources
Definition ica.h:72
Eigen::MatrixXd matMixing
Definition ica.h:70
Eigen::VectorXd vecMean
Definition ica.h:73
bool bConverged
Definition ica.h:74
Independent Component Analysis using the FastICA algorithm (deflationary, logcosh nonlinearity).
Definition ica.h:84
static Eigen::MatrixXd excludeComponents(const Eigen::MatrixXd &matData, const IcaResult &result, const QVector< int > &excludedComponents)
Definition ica.cpp:202
static IcaResult run(const Eigen::MatrixXd &matData, int nComponents=-1, int maxIter=200, double tol=1e-4, int randomSeed=42)
Definition ica.cpp:73
static Eigen::MatrixXd applyUnmixing(const Eigen::MatrixXd &matData, const IcaResult &result)
Definition ica.cpp:193