IT++ 4.3.1
fastica.h
Go to the documentation of this file.
1
61
62#ifndef FASTICA_H
63#define FASTICA_H
64
65#include <itpp/base/mat.h>
66#include <itpp/itexports.h>
67
69#define FICA_APPROACH_DEFL 2
71#define FICA_APPROACH_SYMM 1
72
74#define FICA_NONLIN_POW3 10
76#define FICA_NONLIN_TANH 20
78#define FICA_NONLIN_GAUSS 30
80#define FICA_NONLIN_SKEW 40
81
83#define FICA_INIT_RAND 0
85#define FICA_INIT_GUESS 1
86
88#define FICA_TOL 1e-9
89
90namespace itpp
91{
92
96
97//---------------------- FastICA --------------------------------------
98
118class ITPP_EXPORT Fast_ICA
119{
120
121public:
122
130 Fast_ICA(mat ma_mixed_sig);
131
138 bool separate(void);
139
147 void set_approach(int in_approach);
148
156 void set_nrof_independent_components(int in_nrIC);
157
165 void set_non_linearity(int in_g);
166
174 void set_fine_tune(bool in_finetune);
175
183 void set_a1(double fl_a1);
184
192 void set_a2(double fl_a2);
193
201 void set_mu(double fl_mu);
202
210 void set_epsilon(double fl_epsilon);
211
219 void set_sample_size(double fl_sampleSize);
220
228 void set_stabilization(bool in_stabilization);
229
237 void set_max_num_iterations(int in_maxNumIterations);
238
246 void set_max_fine_tune(int in_maxFineTune);
247
255 void set_first_eig(int in_firstEig);
256
264 void set_last_eig(int in_lastEig);
265
273 void set_pca_only(bool in_PCAonly);
274
282 void set_init_guess(mat ma_initGuess);
283
284
292 mat get_mixing_matrix();
293
302
311
320
329
338
347
355 mat get_white_sig();
356
357private:
358
359 int approach, numOfIC, g, initState;
360 bool finetune, stabilization, PCAonly;
361 double a1, a2, mu, epsilon, sampleSize;
362 int maxNumIterations, maxFineTune;
363
364 int firstEig, lastEig;
365
366 mat initGuess;
367
368 mat mixedSig, A, W, icasig;
369
370 mat whiteningMatrix;
371 mat dewhiteningMatrix;
372 mat whitesig;
373
374 mat E, VecPr;
375 vec D;
376
377}; // class Fast_ICA
378
379} // namespace itpp
380
381
382#endif // #ifndef FASTICA_H
mat get_white_sig()
Get whitened signals.
Definition fastica.cpp:232
Fast_ICA(mat ma_mixed_sig)
Constructor.
Definition fastica.cpp:99
void set_init_guess(mat ma_initGuess)
Set initial guess matrix instead of random (default)
Definition fastica.cpp:212
mat get_dewhitening_matrix()
Get the de-whitening matrix.
Definition fastica.cpp:230
void set_mu(double fl_mu)
Set parameter.
Definition fastica.cpp:194
void set_a1(double fl_a1)
Set parameter.
Definition fastica.cpp:190
void set_approach(int in_approach)
Set approach : FICA_APPROACH_DEFL or FICA_APPROACH_SYMM (default)
Definition fastica.cpp:182
void set_max_fine_tune(int in_maxFineTune)
Set maximum number of iterations for fine tuning.
Definition fastica.cpp:204
void set_pca_only(bool in_PCAonly)
If true, only perform Principal Component Analysis (default = false)
Definition fastica.cpp:210
void set_a2(double fl_a2)
Set parameter.
Definition fastica.cpp:192
bool separate(void)
Explicit launch of main FastICA function.
Definition fastica.cpp:126
mat get_independent_components()
Get separated signals.
Definition fastica.cpp:222
void set_first_eig(int in_firstEig)
Set first eigenvalue index to take into account.
Definition fastica.cpp:206
void set_sample_size(double fl_sampleSize)
Set sample size.
Definition fastica.cpp:198
void set_non_linearity(int in_g)
Set non-linearity.
Definition fastica.cpp:186
mat get_mixing_matrix()
Get mixing matrix.
Definition fastica.cpp:218
void set_epsilon(double fl_epsilon)
Set convergence parameter .
Definition fastica.cpp:196
mat get_whitening_matrix()
Get the whitening matrix.
Definition fastica.cpp:228
void set_max_num_iterations(int in_maxNumIterations)
Set maximum number of iterations.
Definition fastica.cpp:202
void set_last_eig(int in_lastEig)
Set last eigenvalue index to take into account.
Definition fastica.cpp:208
void set_stabilization(bool in_stabilization)
Set stabilization mode true or off.
Definition fastica.cpp:200
mat get_separating_matrix()
Get separating matrix.
Definition fastica.cpp:220
mat get_principal_eigenvectors()
Get nrIC first columns of the de-whitening matrix.
Definition fastica.cpp:226
void set_fine_tune(bool in_finetune)
Set fine tuning.
Definition fastica.cpp:188
int get_nrof_independent_components()
Get number of independent components.
Definition fastica.cpp:224
void set_nrof_independent_components(int in_nrIC)
Set number of independent components to separate.
Definition fastica.cpp:184
Matrix Class Definitions.
itpp namespace
Definition itmex.h:37