Temporal Predictability

Blind Source Separation Using Temporal Predictability


The accompanying matlab code (version 5.2) demonstrates how to separate three mixtures of three signals (e.g. speech) which have arbitrary pdfs.

The code executes the method described in the paper:
JV Stone, "Blind Source Separation Using Temporal Predictability", Neural Computation, 13(7), July, 2001.

Downloading the Code

The code contained in DEMO_BSS.tar (32K) can be downloaded, after a brief registration form has been completed.
Use a tar tool to unpack files.
The resultant directory (DEMO_BSS) contains five files:

Using the Code

Set the current directory to the one containing the files named above. To run the code, type "demo_BSS" on the matlab command line.

There are two demonstrations, which are set via the variable demo_id=[1,2] in the file demo_BSS.m (default = 2).

Demonstration 1

The program is demonstrated on three signals:

Demonstration 2

The program makes use of three matlab sound files. The sounds are played during the demonstration. The path associated with these sound files needs to be set in the file get_data.m to: Matlab5:Toolbox:matlab:datafun:

Program Output

For both demonstrations, results are presented as follows. The program plots the three signal mixtures in figure 1. The original signals and the recovered signals are plotted in figure 2. A correlation matrix is printed in the command window. Each entry in this matrix is the correlation between one source signal and one recovered signal.

For example, the program output should look like this for demonstration 2:

Correlations between sources and recovered signals ...
0.0171 0.9998 0.0012
0.9993 0.0001 0.0129
0.0778 0.0081 0.9996


The code has been tested on a PC and a Mac.

Contact Details

Jim Stone,
Psychology Department, Sheffield University, Sheffield, S10 2UR, England.
Email: j.v.stone@sheffield.ac.uk
Web: http://www.shef.ac.uk/~pc1jvs/