Explanation for the Matlab files:


In order to produce the results of the paper, please run the Performance_analysis_v74.m 
file in Matlab. There are a number of parameters that need to be set to produce the 
desired results. The parameters are well explained through comments inside the code. 
Here is more clarification on how to set the parameters:

The desired method for DOA estimation can be chosen in lines 80 to 83. Uncomment the 
desired method and comment the rest. For the root-swap methods, a mex function called 
VChooseK is used in the programs. In order to be able to run the program for root-swap 
methods, the VChooseK.c file needs to be compiled in Matlab. To do so, first run the 
"mex -setup" command in the command line of Matlab to set up the C compiler for Matlab. 
If there are no compilers already installed on your computer, you may need to do that 
first. After setting up the C compiler, run the "mex VChooseK.c" command in the command 
line of Matlab to compile the VChooseK.c mex function. 

The ML method used in the paper is stochastic, so the deterministic option in line 86 
can be ignored. 

The parameters in lines 88 to 104 are explained in the code. 

CorrelationCoef in line 105 is the correlation between the two sources. In the 
simulations presented in the paper two cases are considered. Uncorrelated sources 
with a correlation coefficient of 0, and correlated sources with a correlation 
coefficient of 0.9.

The number of Monte Carlo iterations can be reduced to a smaller number to reduce the 
simulation time. However, the results may not be accurate enough if a small number of 
iterations is used.

In line 107, a vector of values can be chosen for the SNR (in dB). To produce the 
results for the uncorrelated sources, set the SNR vector to 6:2:28 and for the 
correlated sources set the SNR vector to 14:2:34. In order to get the results only 
for one SNR value, simply set SNR_vec to that value.

Line 109 can be used to set gamma to a fixed value. Also set auto_gamma_selection to 
false in line 110, so that no optimization is performed in the second step of the 
algorithm. If auto_gamma_selection is set to true the value of gamma set in line 109 
will be ignored and gamma will be chosen automatically by minimizing the SML function.

The results of the simulation are stored in the matrices given in lines 163 to 178. 
For example MSE_tot_I_root_Music_data_dB stores the MSE for different SNR values at 
the first and second steps of the algorithm. The rows represent the SNR values and 
the columns represent the steps of the algorithm.