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)