Description
Description The objective of this assignment is to understand the application of Independent Component Analysis (ICA) for source separation. This is a simple source separation problem that can be addressed using ICA. It has the same number of observed mixtures as the number of signals to be separated. In this assignment you will be performing source separation for two scenarios. One consists of synthetic signals and the other uses speech signals. You will be using the FastICA [3] algorithm to do the source separation. Read the reference paper [1] or book [2] to understand the steps in the FastICA algorithm. In class we discussed using kurtosis as the cost-function for ICA and will be interested only in this. Assignment Download and install the FastICA package for Matlab from: http://research.ics.aalto. fi/ica/fastica/. You will have to understand the algorithm and use it to perform source separation. You will have to submit a brief writeup of your analysis and observations. Follow these steps and get started on ICA. 1. Download and install the FastICA toolbox (for Matlab or Scilab). 2. If your roll number ends with zero or odd number use ica data set1.zip to get the mixtures, else use ica data set2.zip. You can try both, but your report should have the description relevant to your roll number. 3. Go through the file fastica.m and understand how it implements the ICA algorithm discussed in [1], [2]. Read the comments and code to understand the required input, outputs, and options. You can use the ’default’ options for most of the assignment. Specifically you need not worry about the various types of nonlinearities (g) and use the default pow3. 4. For Scenario 1, you are provided with two mixture signals (M = 2) in mixedsig setX.mat. Load the file to get mixedsig whose rows are the mixture signals. Use fastica to separate the sources. Include in your report ICA.pdf the following details along with your comments and conclusions. Also see item 6 for report requirement. (a) Plot of the individual mixture signals x1 and x2 and include a scatter plot of x1, x2. Plot the histograms of x1 and x2. Comment. (b) Plot of the estimated separated source signals s1 and s2 and a scatter plot of s1, s2. Plot the histograms of s1 and s2. Comment. (c) What can you interpret from the scatter plots ? Compare the mixture and separated signal histograms. Include the estimated mixing matrix A in your report. Should the estimated signals match the original signals in the mixture ? Comment on the signals obtained. (d) Use the options of only with white and pca to obtain the whitened and PCA signals. Use the scatter plot of these signals and compare it to that obtained using ICA. Comment on your observations about the signal estimates. 5. For Scenario 2, you are provided with mixtures mix1 setX.wav and mix2 setX.wav of two speech signals. Read the files to get the oberved the speech mixtures. Obtain the source speech signals using FastICA. Repeat Items 3.(a), 3.(b), 3.(c) and for the speech signals. Listen to the mixed and separated speech signals. Include your observations in your report. 6. Upload your report file ICA.pdf. Your report should at least have these sections. 1 (a) Brief description of the FastICA algorithm you used in your own words. (b) Your plots, comments, and observations for the synthetic signals (addressing item 4 above). (c) Your plots, comments, and observations for the speech signals (addressing item 5 above). (d) Optional section. Any additional comments, observations, and conclusion. Can you relate A to the mixed data ? What happens if the original signals are corrupted by Gaussian noise ? What if the number of mixtures is less than the number of source signals ? References [1] Aapo Hyvarinen, Fast and Robust Fixed-Point Algorithms for Independent Component Analysis, IEEE Trans. Neural Networks, Vol. 10, no. 3, 1999, pp.626–634. [2] Aapo Hyvarinen, Juha Karhunen, Errki Oja , Independent Component Analysis, John Wiley & Sons, 2001. [3] The Fast-ICA MATLAB package. Available at http://research.ics.aalto.fi/ica/fastica/. 2