mia::FastICA Class Reference

#include <mia/core/fastica.hh>

Public Types

enum  EApproach { appr_defl, appr_symm }
 

Public Member Functions

 FastICA (int num_ic)
 
const gsl::Matrixget_dewhitening_matrix () const
 
const gsl::Matrixget_independent_components () const
 
const gsl::Matrixget_mixing_matrix () const
 
int get_nr_of_independent_components () const
 
const gsl::Matrixget_principal_eigenvectors () const
 
const gsl::Matrixget_separating_matrix () const
 
const gsl::Matrixget_white_signal () const
 
const gsl::Matrixget_whitening_matrix () const
 
bool separate (const gsl::Matrix &mix)
 
void set_approach (EApproach apr)
 
void set_component_energy_limit (double limit)
 
void set_epsilon (double epsilon)
 
void set_finetune (bool in_finetune)
 
void set_init_guess (const gsl::Matrix &ma_initGuess)
 
void set_max_fine_tune (int maxFineTune)
 
void set_max_num_iterations (int maxNumIterations)
 
void set_mu (double mu)
 
void set_nonlinearity (PFastICADeflNonlinearity in_g)
 
void set_nr_of_independent_components (int nrIC)
 
void set_pca_only (bool in_PCAonly)
 
void set_saddle_check (bool saddle_check)
 
void set_saddle_check_postiterations (int saddle_postiter)
 
void set_sample_size (double sampleSize)
 
void set_stabilization (bool in_stabilization)
 

Detailed Description

This class implements the FastICA blind source separation

As additional feature the saddle-check [1] can be run to improve the obtained results.

[1] Petr Tichavský, Zbynek Koldovský, and Erkki Oja "Performance Analysis of the FastICA Algorithm and Cramér–Rao " "Bounds for Linear Independent Component Analysis" IEEE Tran Signal Processing, 54(4), 2006, 1189-1203

Definition at line 43 of file fastica.hh.

Member Enumeration Documentation

Separation approach to be used.

Enumerator
appr_defl 

Deflation approach - each component is extimated separately

appr_symm 

Symmetric approach thet estimates all components at the same time

Definition at line 49 of file fastica.hh.

Constructor & Destructor Documentation

mia::FastICA::FastICA ( int  num_ic)

Construct the FastICA algorithms with the number of expected components.

Parameters
num_icwill seperate in at most this number of components

Member Function Documentation

const gsl::Matrix& mia::FastICA::get_dewhitening_matrix ( ) const
const gsl::Matrix& mia::FastICA::get_independent_components ( ) const
const gsl::Matrix& mia::FastICA::get_mixing_matrix ( ) const
int mia::FastICA::get_nr_of_independent_components ( ) const
Returns
number of estimated independedn components
const gsl::Matrix& mia::FastICA::get_principal_eigenvectors ( ) const
const gsl::Matrix& mia::FastICA::get_separating_matrix ( ) const
const gsl::Matrix& mia::FastICA::get_white_signal ( ) const
const gsl::Matrix& mia::FastICA::get_whitening_matrix ( ) const
bool mia::FastICA::separate ( const gsl::Matrix mix)

Separate the given signal

Parameters
mixthe mixed signal, each row contains a time step
Returns
true if the method converged
void mia::FastICA::set_approach ( EApproach  apr)

Set the separation approach to be used.

Parameters
aprappr_delf|appr_symm
void mia::FastICA::set_component_energy_limit ( double  limit)

Set the limit of the energy sum used to estimate the number of components that make sense based on the PCA

Parameters
limitenergy limit, set >= 1.0 if you want to enforce the number
void mia::FastICA::set_epsilon ( double  epsilon)

Iteration breaking condition, i.e. maximum change in mixing vector

void mia::FastICA::set_finetune ( bool  in_finetune)

Set if fine tuning is to be applied

void mia::FastICA::set_init_guess ( const gsl::Matrix ma_initGuess)

Set an initial guess (not yet used)

void mia::FastICA::set_max_fine_tune ( int  maxFineTune)

Set number of additional fine-tune iterations that might be run

void mia::FastICA::set_max_num_iterations ( int  maxNumIterations)

Set maximum number of iteration to run

void mia::FastICA::set_mu ( double  mu)

Set parameter mu to run the iteration

void mia::FastICA::set_nonlinearity ( PFastICADeflNonlinearity  in_g)

Set the non-linearity to be used for separation

void mia::FastICA::set_nr_of_independent_components ( int  nrIC)

Set the number of components to be estimated

Parameters
nrIC(maximum) number of components to be estimated
void mia::FastICA::set_pca_only ( bool  in_PCAonly)

Run only PCA (Why is this here, PCA is a aseparate class?)

void mia::FastICA::set_saddle_check ( bool  saddle_check)

Use the saddle check in the symetric method

void mia::FastICA::set_saddle_check_postiterations ( int  saddle_postiter)

Number of iterations after a sucessful saddle check

void mia::FastICA::set_sample_size ( double  sampleSize)

Sample size to be used (not yet implemented)

void mia::FastICA::set_stabilization ( bool  in_stabilization)

Set if stablilization is to be used.


The documentation for this class was generated from the following file: