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
Generated on Sat Apr 19 11:01:27 2008 for IT++ by Doxygen 1.5.5