IT++ Logo Newcom Logo

fastica.h

Go to the documentation of this file.
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
SourceForge Logo

Generated on Fri Jun 8 00:27:12 2007 for IT++ by Doxygen 1.5.2