00001 00062 #ifndef FASTICA_H 00063 #define FASTICA_H 00064 00065 #include <itpp/base/mat.h> 00066 00067 00069 #define FICA_APPROACH_DEFL 2 00070 00071 #define FICA_APPROACH_SYMM 1 00072 00074 #define FICA_NONLIN_POW3 10 00075 00076 #define FICA_NONLIN_TANH 20 00077 00078 #define FICA_NONLIN_GAUSS 30 00079 00080 #define FICA_NONLIN_SKEW 40 00081 00083 #define FICA_INIT_RAND 0 00084 00085 #define FICA_INIT_GUESS 1 00086 00088 #define FICA_TOL 1e-9 00089 00090 namespace itpp 00091 { 00092 00097 //---------------------- FastICA -------------------------------------- 00098 00118 class Fast_ICA 00119 { 00120 00121 public: 00122 00130 Fast_ICA(mat ma_mixed_sig); 00131 00137 void separate(void); 00138 00146 void set_approach(int in_approach); 00147 00155 void set_nrof_independent_components(int in_nrIC); 00156 00164 void set_non_linearity(int in_g); 00165 00173 void set_fine_tune(bool in_finetune); 00174 00182 void set_a1(double fl_a1); 00183 00191 void set_a2(double fl_a2); 00192 00200 void set_mu(double fl_mu); 00201 00209 void set_epsilon(double fl_epsilon); 00210 00218 void set_sample_size(double fl_sampleSize); 00219 00227 void set_stabilization(bool in_stabilization); 00228 00236 void set_max_num_iterations(int in_maxNumIterations); 00237 00245 void set_max_fine_tune(int in_maxFineTune); 00246 00254 void set_first_eig(int in_firstEig); 00255 00263 void set_last_eig(int in_lastEig); 00264 00272 void set_pca_only(bool in_PCAonly); 00273 00281 void set_init_guess(mat ma_initGuess); 00282 00283 00291 mat get_mixing_matrix(); 00292 00300 mat get_separating_matrix(); 00301 00309 mat get_independent_components(); 00310 00318 int get_nrof_independent_components(); 00319 00327 mat get_principal_eigenvectors(); 00328 00336 mat get_whitening_matrix(); 00337 00345 mat get_dewhitening_matrix(); 00346 00354 mat get_white_sig(); 00355 00356 private: 00357 00358 int approach, numOfIC, g, initState; 00359 bool finetune, stabilization, PCAonly; 00360 double a1, a2, mu, epsilon, sampleSize; 00361 int maxNumIterations, maxFineTune; 00362 00363 int firstEig, lastEig; 00364 00365 mat initGuess; 00366 00367 mat mixedSig, A, W, icasig; 00368 00369 mat whiteningMatrix; 00370 mat dewhiteningMatrix; 00371 mat whitesig; 00372 00373 mat E, VecPr; 00374 vec D; 00375 00376 }; // class Fast_ICA 00377 00378 } // namespace itpp 00379 00380 00381 #endif // #ifndef FASTICA_H
Generated on Sat Jul 9 2011 15:21:32 for IT++ by Doxygen 1.7.4