IT++ Logo

fastica.h

Go to the documentation of this file.
00001 
00063 #ifndef FASTICA_H
00064 #define FASTICA_H
00065 
00066 #include <itpp/base/mat.h>
00067 
00068 
00070 #define FICA_APPROACH_DEFL 2
00072 #define FICA_APPROACH_SYMM 1
00073 
00075 #define FICA_NONLIN_POW3 10
00077 #define FICA_NONLIN_TANH 20
00079 #define FICA_NONLIN_GAUSS 30
00081 #define FICA_NONLIN_SKEW 40
00082 
00084 #define FICA_INIT_RAND  0
00086 #define FICA_INIT_GUESS 1
00087 
00089 #define FICA_TOL 1e-9
00090 
00091 namespace itpp {
00092 
00097   //---------------------- FastICA --------------------------------------
00098 
00118   class Fast_ICA {
00119 
00120   public:
00121 
00129     Fast_ICA( mat ma_mixed_sig );
00130 
00136     void separate( void );
00137 
00145     void set_approach( int in_approach );
00146 
00154     void set_nrof_independent_components( int in_nrIC );
00155 
00163     void set_non_linearity( int in_g );
00164 
00172     void set_fine_tune( bool in_finetune );
00173 
00181     void set_a1( double fl_a1 );
00182 
00190     void set_a2( double fl_a2 );
00191 
00199     void set_mu( double fl_mu );
00200 
00208     void set_epsilon( double fl_epsilon );
00209 
00217     void set_sample_size( double fl_sampleSize );
00218 
00226     void set_stabilization( bool in_stabilization );
00227 
00235     void set_max_num_iterations( int in_maxNumIterations );
00236 
00244     void set_max_fine_tune( int in_maxFineTune );
00245 
00253     void set_first_eig( int in_firstEig );
00254 
00262     void set_last_eig( int in_lastEig );
00263 
00271     void set_pca_only( bool in_PCAonly );
00272 
00280     void set_init_guess( mat ma_initGuess );
00281 
00282 
00290     mat get_mixing_matrix();
00291 
00299     mat get_separating_matrix();
00300 
00308     mat get_independent_components();
00309 
00317     int get_nrof_independent_components();
00318 
00326     mat get_principal_eigenvectors();
00327 
00335     mat get_whitening_matrix();
00336 
00344     mat get_dewhitening_matrix();
00345 
00353     mat get_white_sig();
00354 
00355   private:
00356 
00357     int approach, numOfIC, g, initState;
00358     bool finetune, stabilization, PCAonly;
00359     double a1, a2, mu, epsilon, sampleSize;
00360     int maxNumIterations, maxFineTune;
00361 
00362     int firstEig, lastEig;
00363 
00364     mat initGuess;
00365 
00366     mat mixedSig, A, W, icasig;
00367 
00368     mat whiteningMatrix;
00369     mat dewhiteningMatrix;
00370     mat whitesig;
00371 
00372     mat E, VecPr;
00373     vec D;
00374 
00375   }; // class Fast_ICA
00376 
00377 } // namespace itpp
00378 
00379 
00380 #endif // #ifndef FASTICA_H
SourceForge Logo

Generated on Sat Apr 19 10:59:23 2008 for IT++ by Doxygen 1.5.5