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//=============================================================================================================
67{
68 Eigen::MatrixXd matMixing;
69 Eigen::MatrixXd matUnmixing;
70 Eigen::MatrixXd matSources;
71 Eigen::VectorXd vecMean;
73};
74
75//=============================================================================================================
90{
91public:
92 //=========================================================================================================
105 static IcaResult run(const Eigen::MatrixXd& matData,
106 int nComponents = -1,
107 int maxIter = 200,
108 double tol = 1e-4,
109 int randomSeed = 42);
110
111 //=========================================================================================================
121 static Eigen::MatrixXd applyUnmixing(const Eigen::MatrixXd& matData,
122 const IcaResult& result);
123
124 //=========================================================================================================
135 static Eigen::MatrixXd excludeComponents(const Eigen::MatrixXd& matData,
136 const IcaResult& result,
137 const QVector<int>& excludedComponents);
138
139private:
140 //=========================================================================================================
152 static Eigen::MatrixXd whiten(const Eigen::MatrixXd& matCentered,
153 int nComponents,
154 Eigen::MatrixXd& matWhitening,
155 Eigen::MatrixXd& matDewhitening);
156};
157
158} // namespace UTILSLIB
159
160#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:67
Eigen::MatrixXd matUnmixing
Definition ica.h:69
Eigen::MatrixXd matSources
Definition ica.h:70
Eigen::MatrixXd matMixing
Definition ica.h:68
Eigen::VectorXd vecMean
Definition ica.h:71
bool bConverged
Definition ica.h:72
Independent Component Analysis using the FastICA algorithm (deflationary, logcosh nonlinearity).
Definition ica.h:90
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:72
static Eigen::MatrixXd applyUnmixing(const Eigen::MatrixXd &matData, const IcaResult &result)
Definition ica.cpp:193