Homework 4 Part 4


In [1]:
import numpy as np
import bellsej

First load the mixes. Every column has exactly one mix.


In [2]:
mixes = bellsej.load_data('mix.dat')

In [3]:
mixes.shape


Out[3]:
(53442, 5)

Normalize the mixes and compute the weight matrix for ICA.


In [4]:
normalized_mixes = bellsej.split_and_normalize_mixes(mixes)

In [5]:
W = bellsej.analyze(normalized_mixes)

Compute the original unmixed sources.


In [6]:
sources = mixes.dot(W.T)

Finally, we write out the normalized sources to disk.


In [12]:
bellsej.write_mixes(sources)

Applying ICA to the mixed sources, we found that the unmixed audio sources were all coherent. The algorithm clearly identifies the source audio material (with sounds from other sources still present in the background). The other sources are not as prevelant in each unmixed audio stream. While ICA could not perfectly split the audio sources, it approximated them well. We elected not to renormalize the sources after applying the weight matrix to them since it zeroed out the audio tracks.


In [ ]: