public class ICA
extends java.lang.Object
implements java.io.Serializable
Like most ICA algorithms, FastICA seeks an orthogonal rotation of prewhitened data, through a fixedpoint iteration scheme, that maximizes a measure of nonGaussianity of the rotated components. Nongaussianity serves as a proxy for statistical independence, which is a very strong condition and requires infinite data to verify. To measure nonGaussianity, FastICA relies on a nonquadratic nonlinear function f(u), its first derivative g(u), and its second derivative g2(u).
A simple application of ICA is the cocktail party problem, where the underlying speech signals are separated from a sample data consisting of people talking simultaneously in a room. Usually the problem is simplified by assuming no time delays or echoes.
An important note to consider is that if N sources are present, at least N observations (e.g. microphones if the observed signal is audio) are needed to recover the original signals.
Modifier and Type  Field and Description 

double[][] 
components
The independent components (rowwise).

Constructor and Description 

ICA(double[][] components)
Constructor.

Modifier and Type  Method and Description 

static ICA 
fit(double[][] data,
int p)
Fits independent component analysis.

static ICA 
fit(double[][] data,
int p,
DifferentiableFunction contrast,
double tol,
int maxIter)
Fits independent component analysis.

static ICA 
fit(double[][] data,
int p,
java.util.Properties prop)
Fits independent component analysis.

public ICA(double[][] components)
components
 each row is an independent component.public static ICA fit(double[][] data, int p)
data
 training data. The number of columns corresponding with the
number of samples of mixed signals and the number of rows
corresponding with the number of independent source signals.p
 the number of independent components.public static ICA fit(double[][] data, int p, java.util.Properties prop)
data
 training data. The number of columns corresponding with the
number of samples of mixed signals and the number of rows
corresponding with the number of independent source signals.p
 the number of independent components.public static ICA fit(double[][] data, int p, DifferentiableFunction contrast, double tol, int maxIter)
data
 training data.p
 the number of independent components.contrast
 the contrast function which is capable of separating or
extracting independent sources from a linear mixture.
It must be a nonquadratic nonlinear function that
has secondorder derivative.tol
 the tolerance of convergence test.maxIter
 the maximum number of iterations.