www.pudn.com > ica_v0.04.rar > ica.1


.de Sh
.br
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp
.if t .sp .5v
.if n .sp
..
.TH ICA 1 "13 August 2001"
.SH NAME

ica - Independent Component Analysis (ICA)
.SH SYNOPSIS
.TP
.B ica
\fB[ -i \fIinput file \fB]
[ -o \fIoutput file \fB]
.br
[ -it \fIinput type \fB]
[ -ot \fIoutput type \fB]
.br
[ -c \fInumber of channels \fB]
[ -l \fIleaning rate \fB]
.br
[ -n \fInumber of passes \fB]
[ -b \fIblock size \fB]
.br
[ -nl \fInon-linearity \fB]
[ -cov \fB]
[ -nounmix \fB]
.br
[ -iw \fB]
[ -wi \fIw input file \fB]
.br
[ -w \fB]
[ -wo \fIw output file \fB]
.br
[ -h \fB]\fR
.br
.SH DESCRIPTION

The \fBica\fR program provides source separation for a number or mixed
signals where the number of recordings is equal to the number
of the sources. A good description of the ICA algorithm used can be
found in [1]. The non-linearity used to perform the separation
is based on either the exp() or tanh() function.

Input to the program can come from one of four different file
formats. These include 16 bit integers, 32 bit floating point numbers,
64 bit floating point numbers and the European Data Format (EDF). In
the case of the integer and the floating point numbers, these are
stored such that the all the values from a particular point in time
are stored together. The input data does not have to be zero meaned
before being used by this program. The original unmixing matrix can
also be set otherwise a unity matrix is used.

The output from the program is optionally the unmixed input stored in
a file as either 16 bit integers, 32 bit floating point numbers or 64
bit floating point numbers.  The resultant unmixing matrix can also be
saved to a file.

The progress of the program is displayed for each loop through
the data. After the input data has been processed and the unmixed
version saved to a file, the RMS value of the covariance matrix
for the unmixed and the mixed signals will be calculated. This is
just to give a rough indication on how well the data has been
separated. Note that the input data does not get sphered. The
displaying of the RMS covariance is optional and is reliant on the
unmixed output being saved to a file.
.br
.SH OPTIONS

There are default values for all parameters used by the program. To
view the default options use the \fB-h\fR switch. To set the various
parameters, the following options are available:
.RS
.TP 10
\fB-i \fIinput file\fR
.br
Name of the input file.
.TP 10
\fB-o \fIoutput file\fR
.br
Name of the output file.
.TP 10
\fB-it \fIinput type\fR
.br
The format type of the input. See below for options.
.TP 10
\fB-ot \fIoutput type\fR
.br
The format type of the output. See below for options.
.TP 10
\fB-c \fInumber of channels\fR
.br
The number of channels to be separated. This is required if using
either the integer or floating point input option. If using an EDF
file as input, the number of sources information will be read from
the file directly.
.TP 10
\fB-l \fIlearning rate\fR
.br
The learning rate to be used by the algorithm. This should be a
positive real number. The learning rate will remain constant
during the whole learning.
.TP 10
\fB-n \fInumber of passes\fR
.br
The number of times the algorithm should pass through the data. This
should be a positive integer value. The program will indicate the
end of each pass.
.TP 10
\fB-b \fIblock size\fR
.br
The size of a moving window that is to be used. Data in this window
will be reused for updating the unmixing parameters. Each data
point will be used a \fIblock size\fR number of times. This value
should be a positive integer.
.TP 10
\fB-nl \fInon-linearity\fR
.br
The type of non-linearity to be used for the algorithm. See below
for options.
.TP 10
\fB-cov
.br
Calculate the RMS covariance of the input and the output data. Note
that this option is conditional on the unmixed output being written
to a file.
.TP 10
\fB-nounmix
.br
Do not output the unmixed input to a file. This option is useful
when only the unmixing matrix is of importance.
.TP 10
\fB-iw
.br
Input the initial unmixing matrix using the input type
format. Otherwise a unity matrix will be used for the initial value.
.TP 10
\fB-wi \fIw input file\fR
.br
Name for the unmixing matrix input file.
.TP 10
\fB-w
.br
Output the resultant unmixing matrix using the output type format. If
the name is set to standard output, then a readable text file is
produced.
.TP 10
\fB-wo \fIw output file\fR
.br
Name for the unmixing matrix output file.
.TP 10
\fB-h
.br
Print out a brief usage message. Also included are the default
values for all the parameters that will be used if they are not
specified explicitly.
.RE
.PP
The parameters to be used for the \fIinput type\fR and \fIoutput
type\fR switches are as follows:
.RS
.TP
\fBINT16\fR
.br
16 bit integer. Need to be careful with byte ordering.
.TP
\fBFLOAT32\fR
.br
32 bit floating point number.
.TP
\fBFLOAT64\fR
.br
64 bit floating point number.
.TP
\fBEDF\fR
.br
European Data Format file. Note that this option is only available
for the input file type. Also need to be careful about byte
ordering.
.RE
.PP
The parameters to be used for the \fInon-linearity\fR switch are as
follows:
.RS
.TP
\fBEXP\fR
.br
1/(1+exp(-u)) non-linearity.
.TP
\fBTANH\fR
.br
The tanh(u) non-linearity.
.RE
.PP
The parameters chosen for a particular data set will determine how
well the separation will be. The RMS covariance values printed
out for the input data and the unmixed data can give some
indication as to how well the separation was.
.br
.SH LIMITATIONS

This program was written to provide a much faster means for doing ICA
than Matlab. The only down side to this is that it lacks the
flexibility that Matlab has.

The data entered to the program is currently zero meaned by
calculating the iterative mean during the first pass of the data. On
subsequent passes, the mean calculated in the first pass will be
used. This is indeed the true mean of the whole data set. In future,
a moving window average or forgetting term will be used so that the
program will lend itself more for using non-stationary input data.

The output file is generated after passing all the input data
through the algorithm. Thus, a fixed unmixing matrix is used
to separate the data. At the moment there is no option to output
the separated data as it is being read in, which would be the
case if doing real-time ICA.
.br
.SH REFERENCES
.TP
[1]
A.J. Bell & T.J. Sejnowski (1995). An information-maximization approach
to blind separation and blind deconvolution,
.br
\fINeural Computation\fR 7:1129-1159.
.br
.SH COPYRIGHT

This program has been written by:

.RS
Peter Stepien

Computer Engineering Laboratory (CEL)
.br
School of Electrical & Information Engineering
.br
The University of Sydney, SYDNEY NSW 2006 Australia.

(Email: pstepien@sedal.usyd.edu.au)
.RE

All comments and suggestions are most welcome.

(Version 0.04)