0
$\begingroup$

I'm working on an acoustic source separation problem where I want to separate the voices of a choir based on intensity vector statistics. I'm currently implementing a paper by Günel called “Acoustic Source Separation of Convolutive Mixtures Based on Intensity Vector Statistics” In this paper, the acoustic source separation is achieved in a couple of steps:

  1. the signals from the microphone-array are converted to a time-frequency representation (using the modified discrete cosine transform, MDCT)
  2. The intensity vector direction is calculated and rounded to the nearest degree. All of the obtained directions are then plotted in a histogram to find the mixture probability density. On this histogram, a von Mises distribution is fitted for every source position. (my question is related to this step)
  3. As I understand it, this distribution is then used to define a directivity function for each sound source and a time-frequency bin and beamforming is applied to separate each source.
  4. Finally, the inverse MDCT is calculated for each separate signal, obtaining the separate signals in the time-domain.

So this brings me to my question. After calculating the vector intensity directions for a single source in a simulated anechoic room (pyroom acoustics) and real-life measurements with a GRASS 50VI-1 Intensity probe, all obtained directions are plotted on a histogram and here, something I can’t explain happens. For a source that should be positioned at 45 degrees relative to the microphone array, the histogram shows two peaks. One peak at 45 degrees, but also one peak at 225 degrees (so, 180 degrees shifted).

vector directions

This is simulated in a 3D space, but for now we are only using 4 microphones to find the source directions, so only finding the azimuth directions. These directions are found using the following formula (in python, we use the arctan2 operator):

enter image description here

where Pw, Py and Px are found by using our microhpone measurements as in the picture below:

enter image description here

I have read countless papers about DAO/separation using sound intensity, but not a single one I found shows any sign of this behaviour or talks about certain assumptions that should be made. It seems they only have a peak in the direction that the sound is actually coming from. Finally, here is the code I used:

enter image description here

$\endgroup$
2
  • $\begingroup$ What are there conjugate complex operators in the formula and the code? Isn't the MDCT all real ? $\endgroup$
    – Hilmar
    Mar 1 at 12:39
  • $\begingroup$ @Hilmar Yep the MDCT is all real, so my partner and I don't understand why it is written like this in the paper. Adding the .real in the code does not make a difference (I should've removed it) $\endgroup$
    – Dries
    Mar 1 at 14:12
0
$\begingroup$

So this technique approximates the velocity of the particles using the pressure gradient at a time instance. This approach is only correct for microphones that are spaced closely together. The max frequency it can measure correctly with the spacer we're using is around 4.8kHz (stated in datasheet), so all angles corresponding to higher frequencies gave a wrong answer. This caused the 180 degree shifted angles.

A great explanation/visualisation from Siemens can be found here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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