RobustICA algorithm for independent component analysis
RobustICA is based on the normalized kurtosis contrast function, which is optimized by a
computationally efficient iterative technique. This technique computes algebraically
the step size (adaption coefficient) globally optimizing the contrast in the search direction
at each iteration. Any independent component with non-zero kurtosis can be extracted in this
The present implementation performs the deflationary separation of statistically independent
sources under the instantaneous linear mixture model. Full separation is achieved if at most
one source has zero kurtosis.
Some advantages of RobustICA are:
More details about the RobustICA algorithm and its comparative performance analysis can be found
in references - below. A similar optimization technique is used in the OS-CMA.
- Real- and complex-valued signals are treated by exactly the same algorithm. Both type of
source signals can be present simultaneously in a given mixture. Complex sources need not be
circular. The mixing matrix coefficients may be real or complex, regardless of the source type.
- Prewhitening is not required, so that the performance limitations it imposes can be avoided.
In particular, the absence of prewhitening improves asymptotic performance. In that case,
sequential extraction (deflation) can be performed via linear regression.
- The algorithm can target sub-Gaussian or super-Gaussian sources in the order defined by a
by a kurtosis-sign vector provided by the user. Full separation, as well as the consequent
increase in complexity and estimation error, can be spared if the Gaussianity character of
the source(s) of interest is known in advance.
- The optimal step-size technique provides some robustness to the presence of saddle points and
spurious local extrema in the contrast function, which tend to appear when processing short
- The method shows a very high convergence speed measured in terms of source extraction quality
versus number of operations. In the real-valued two-signal case, the algorithm theoretically
converges in a single iteration, even without prewhitening.
 V. Zarzoso and P. Comon, "Robust Independent
Component Analysis by Iterative Maximization of the Kurtosis Contrast
with Algebraic Optimal Step Size", IEEE Transactions on Neural
Networks, Vol. 21, No. 2, February 2010, pp. 248-261.
 V. Zarzoso and P. Comon, "Comparative Speed Analysis of FastICA",
in: Proceedings ICA-2007, 7th International Conference on Independent Component Analysis
and Signal Separation, London, UK, September 9-12, 2007,
 V. Zarzoso, P. Comon and M. Kallel, "How Fast is FastICA?",
in: Proceedings EUSIPCO-2006, XIV European Signal Processing Conference,
Florence, Italy, September 4-8, 2006.
Download the RobustICA package
(Release 3, November 21, 2014; Matlab version;
What's new in Release 3:
What was new in Release 2 (Feb. 16, 2010):
- If required, the user can force the separating matrix to be real-valued. This is useful, e.g.,
when the mixing matrix is known to take real values but the separation is carried out in a complex domain
(e.g., after Fourier transform).
- The calling syntax has been simplified by using a cell-array
- The code is now licensed under a Creative Commons Non-Commercial License
(see Conditions of use for details).
Download and installation instructions:
- The optimal step-size computation has been refined (
- Circular and noncircular complex sources are now included in the
- For the sake of reproducible research, the code used to generate
some of the results reported in reference  has been added to the
robustica_tnn_fig3_sim.m and related
Conditions of use:
- Download the zip-file by clicking on the above link.
- Extract the files into
- From Matlab's command line, set current directory to
help robustica_package or
doc robustica_package for details about the algorithm
and the different functions contained in the package.
robustica_demo to run a simple demo.
This is open-source code. Please, feel free to edit the M-files and
modify them as you wish. It is only requested that original authorship
be acknowledged and modifications be clearly indicated in the code
(history section and elsewhere as appropriate).
If you use this package to generate results in your publications,
please cite at least reference  above.
The RobustICA algorithm by Vicente Zarzoso and Pierre
Comon is licensed under a Creative
Commons Attribution-NonCommercial 4.0 International License.
The package has been tested on Matlab 7.14.
Please, report any bugs, comments or suggestions to <>.
Back to software