MUltiple SIgnal Classification (MUSIC) Implementation I have a linear 4 element antenna array currently in my design, I am able to obtain the I/Q data from each antenna. Now I am trying to implement the MUSIC algorithm to obtain the AoA (Angle of Arrival). I have read some articles about the algorithm, however, I did not come across any article that explains how theory can be implemented in practice. I have few question hope some one will support me.

Are there any tutorials or articles that describes the MUSIC algorithm implementation detail? I prefer in C/C++ language. But any other language is also ok.

In the derivation of the MUSIC algorithm, normally it assumes N number of sources. Is this the number of actual sources or does it also counts multipath signals?

Are there any articles describing MUSIC algorithm implementation once we have the I/Q data?


Thanks a lot!!
I'm going to group number 1 and 3 as related.

For a high level description of MUSIC, you can take a look at MATLAB's overview here. One of the main steps in the algorithm is to find the eigenvectors of a correlation matrix, which can be done via singular value decomposition or other methods. MATLAB has functions for this, so you may want to find equivalent functions in C/C++, or implement your own. The other steps in the algorithm are more implementation agnostic: mostly data collection and simple vector operations.

Using an N-element array, MUSIC can resolve at most N - 1 sources. These can be real sources or their images and must be dealt with accordingly.


For some more specific implementation details, I have an answer here where we go through the process of collecting data and performing MUSIC in MATLAB.