MISEP Linear and Nonlinear ICA Toolbox

Version 1.2

0. What's new in this version

Version 1.2 introduced two kinds of naming changes, to make the toolbox compatible with Matlab 7:

1. Introduction

This page gives access to a MATLAB toolbox for Independent Component Analysis (ICA) and Blind Source Separation (BSS), based on the MISEP method.

The toolbox can perform both linear and nonlinear ICA.

2. Toolbox download

The toolbox can be downloaded here (zip file, around 50 kBytes).

3. Installation

To install the toolbox simply unzip all the files contained in the zip archive into a directory of your choice.

4. Documentation

4.1 ICA method

Papers that describe the ICA method can be downloaded here.

4.2 Detailed documentation

A manual is included with the toolbox.

4.3 Brief usage instructions

  1. In MATLAB, 'cd' to the directory containing the toolbox files.

  3. Give the command 'netpar' (this initializes the toolbox parameters).

  5. Create an array named 'trpattern' with the data to be analyzed.

  6. The array should have one mixture component per row and one mixture pattern (mixture vector) per column.
    Give the commands:
      ninputs = <number of mixture components>
      ntrain = <number of training patterns>
    Note: For a quick test of the toolbox just give the command 'generate', which will generate a nonlinear mixture of two supergaussian random sources, with ntrain training patterns. The variable 'ntrain' is initially set to 1000, by the 'netpar' command.
  7. Give the command 'netinit' (this initializes the analysis network's weights and auxiliary data).

  9. Give the command 'train'.

Training should start. The value of the cost function, the cost function improvement and epoch number should start being reported, one epoch per line.

A figure should be displayed, and should be updated once every five epochs. Resize this figure so that the left and center plots are square. The figure shows:

If you want to stop the training before reaching the set number of training epochs, press Ctrl-C (you may also set a desired number of training epochs by setting the variable 'nepochs' before giving the train command).

To process test data with the resulting ICA system:

  1. Create an array named 'mixeddata' with the mixture to be processed. The format is the same as for 'trpattern' above, except that the number of columns doesn't need to be equal to 'ntrain'.
  2. Give the command 'processdata'.
  3. The extracted components will be available in an array called 'separdata', with the same format as 'mixeddata'.

5. Contact

Toolbox author:

Luis B. Almeida
Instituto de Telecomunicações
Instituto Superior Técnico
Av. Rovisco Pais, 1
1049-001 Lisboa

E-mail (delete the first two c's, which are there to prevent spamming: ccluis.almeida@lx.it.pt

Home page: http://www.lx.it.pt/~lbalmeida/

6. Acknowledgement

The development of this toolbox has been partially supported by the European IST project BLISS and by Praxis project P/EEI/14091/1998.