00001 00066 #ifndef FASTICA_H 00067 #define FASTICA_H 00068 00069 #include <itpp/base/mat.h> 00070 #include <itpp/base/vec.h> 00071 00072 00074 #define FICA_APPROACH_DEFL 2 00076 #define FICA_APPROACH_SYMM 1 00077 00079 #define FICA_NONLIN_POW3 10 00081 #define FICA_NONLIN_TANH 20 00083 #define FICA_NONLIN_GAUSS 30 00085 #define FICA_NONLIN_SKEW 40 00086 00088 #define FICA_INIT_RAND 0 00090 #define FICA_INIT_GUESS 1 00091 00093 #define FICA_TOL 1e-9 00094 00095 namespace itpp { 00096 00101 //---------------------- FastICA -------------------------------------- 00102 00122 class Fast_ICA { 00123 00124 public: 00125 00133 Fast_ICA( mat ma_mixed_sig ); 00134 00140 void separate( void ); 00141 00149 void set_approach( int in_approach ); 00150 00158 void set_nrof_independent_components( int in_nrIC ); 00159 00167 void set_non_linearity( int in_g ); 00168 00176 void set_fine_tune( bool in_finetune ); 00177 00185 void set_a1( double fl_a1 ); 00186 00194 void set_a2( double fl_a2 ); 00195 00203 void set_mu( double fl_mu ); 00204 00212 void set_epsilon( double fl_epsilon ); 00213 00221 void set_sample_size( double fl_sampleSize ); 00222 00230 void set_stabilization( bool in_stabilization ); 00231 00239 void set_max_num_iterations( int in_maxNumIterations ); 00240 00248 void set_max_fine_tune( int in_maxFineTune ); 00249 00257 void set_first_eig( int in_firstEig ); 00258 00266 void set_last_eig( int in_lastEig ); 00267 00275 void set_pca_only( bool in_PCAonly ); 00276 00284 void set_init_guess( mat ma_initGuess ); 00285 00286 00294 mat get_mixing_matrix(); 00295 00303 mat get_separating_matrix(); 00304 00312 mat get_independent_components(); 00313 00321 int get_nrof_independent_components(); 00322 00330 mat get_principal_eigenvectors(); 00331 00339 mat get_whitening_matrix(); 00340 00348 mat get_dewhitening_matrix(); 00349 00357 mat get_white_sig(); 00358 00359 private: 00360 00361 int approach, numOfIC, g, initState; 00362 bool finetune, stabilization, PCAonly; 00363 double a1, a2, mu, epsilon, sampleSize; 00364 int maxNumIterations, maxFineTune; 00365 00366 int firstEig, lastEig; 00367 00368 mat initGuess; 00369 00370 mat mixedSig, A, W, icasig; 00371 00372 mat whiteningMatrix; 00373 mat dewhiteningMatrix; 00374 mat whitesig; 00375 00376 mat E, VecPr; 00377 vec D; 00378 00379 }; // class Fast_ICA 00380 00381 } // namespace itpp 00382 00383 00384 #endif // #ifndef FASTICA_H
Generated on Fri Jun 8 01:07:07 2007 for IT++ by Doxygen 1.5.2