Can one use MUSIC algorithm to estimate DOA for a circular microphone array with a small radius?

I am trying to locate the sound source using MUSIC algorithm in a circular microphone array. The array that I am using is "ReSpeaker Mic Array - Far-field w/7 PDM Microphones", and the distances between microphones are very small, less than 10cm. Is MUSIC algorithm suitable for such a geometry?

If not, which other methods should I try with this array?

If yes, how should the steering vector A be constructed based on the locations of the microphones?

• What is your signal bandwidth? This determines if we can do a narrow-band approximation and use the steering vectors. In the case of wide-band, we might need to use a different approach. Commented Jun 7, 2023 at 19:53
• @learner makes a good point that the bandwidth of the signal matters. Given that this is an audio application, it's probably safe to assume the frequencies of interest are the human audible range of about 20 Hz to 20 kHz, unless the sound source is something very specific with much narrower bandwidth. If it's the full audible band, the high fractional bandwidth makes beamforming and DOA using phase rather than time delays difficult. Commented Jun 9, 2023 at 2:12

Problem Summary

You have a couple of difficulties with this problem:

• The microphone array isn't a uniform linear array (ULA), which is the most straightforward to model steering vectors for.
• Unless you have a scenario where the types of sounds you'll encounter have a small fractional bandwidth, you can't use standard phased array beamforming or direction finding (DOA) without first bandpass filtering to a narrower bandwidth (I assume the band in question is 20 Hz to 20 kHz, the human audible range). This is because phase delay beamforming rests on the assumption that the signal of interest can be approximated as having one frequency/wavelength.

Solution

This question deals with the exact same issue. To solve this problem, the Pyroomacoustics library uses the following steps, as I detail in my answer there:

1. Filter the sounds into narrow frequency bins that have acceptably small fractional bandwidth.
2. Perform MUSIC separately on each frequency bin, using phase steering vectors based on the array geometry, which can be arbitrary.

I explain in my answer how to calculate steering vectors for an arbitrary array:

Let $$X_{array}$$ be a 3-by-M matrix of 3-D coordinate locations for the M microphones, and $$\hat D_{dir}$$ be a 3-by-N matrix of N unit vectors that point in the directions of interest (e.g., perhaps equally spaced in azimuth relative to the array from -90 to +90 degrees). Then, the N steering vectors are given by: $$V = e^{j\frac{2\pi}{\lambda}\cdot X_{array}^T \hat D_{dir}}$$

where $$V$$ is M-by-N and $$\lambda$$ is the wavelength.

See the rest of that answer for more details. Note that in your case, the wavelength $$\lambda$$ will be different for each frequency bin.

– Peter K.
Commented Jun 9, 2023 at 11:44
• //"... phase delay beamforming rests on the assumption that the signal of interest can be approximated as having one frequency/wavelength."// . . . . . I don't think that's true. You can cross-correlate two broadbanded signals (that are assumed to have a common source at an angle) and estimate a delay difference in the time of arrival. From that you can point it a direction angle on any plane that contains the two microphones. Commented Jul 27 at 0:46

The paper 2D DOA estimation with sparse uniform circular arrays in the presence of mutual coupling suggests that the steering vectors are given by:

For your array, it looks like there are 4 sensors at

$$\gamma_n = \frac{n \pi}{2}$$

There is this famous base paper for circular array DoA estimation: Eigenstructure techniques for 2-D angle estimation with uniform circular arrays.