I am currently trying to implement the MUSIC algorithm for a real dataset which captures a sound signal in a room using a cubic 8 sensor array setup.

Every example I've found for the MUSIC algorithm talks about the steering matrix and calculates it using a set of DOAs which are, well, the actual DOAs that the algorithm is trying to estimate? This part deeply confuses me.

All I have as inputs are: X = [M x N] matrix, where M is the number of antennas, N is the number of timesteps of the signals. So essentially an 8 channel signal snapshot. Y = [M x 3] matrix, which holds the 3D coordinates of each sensor.

It is worth noting that the sensors in my dataset are not actually a perfect cuboid. It's essentially two rectangles where the upper rectangle is above the other, but also slightly shifted in the X axis.

It is my understanding that a steering matrix should be computed using only Y. X is used later, for the eigenvector computation. So how would I go about generating this matrix if all I have are mic positions?

Any advice, literature would help me greatly.


1 Answer 1


Figured it out reading Gridless Multidimensional Angle of Arrival Estimation for Arbitrary 3D Antenna Arrays.

Basically, you construct the matrix for all directions. so 360x180 for all elevations and azumoths.

  • $\begingroup$ It could prove to be quite beneficial for everyone and for future reference if you were to provide at least a brief explanation of the answer provided in your link. This way, if one is interested in the answer can find it here on SE and in addition to that, if the link goes dead in the future your answer won't be invalidated. $\endgroup$
    – ZaellixA
    Commented Jan 1, 2022 at 11:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.