Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to compute inter-mic distance for general mic arrays and cylindrical noise #3

Closed
fakufaku opened this issue Dec 14, 2022 · 5 comments

Comments

@fakufaku
Copy link

Hi @ehabets , thank you for sharing this code! I am implementing the method for general arrays to integrate in pyroomacoustics, and I have a couple of question about cylindrical noise.

  1. The papers and the code are not completely clear about how the distance d between two sensors should be interpreted for general arrays in 3D. If the cylinder axis is the z-axis, is it correct to take d as the horizontal distance sqrt(x ** 2 + y ** 2) ?
  2. While inspecting the code, I saw that you recommend to use Cholesky rather than eigenvalue decomposition for babble noise. What is the rational for that ?

Thank you in advance for your help!

@ehabets
Copy link
Owner

ehabets commented Dec 14, 2022

Thank you for your inquiry, @fakufaku.

  1. For a 3D array, you indeed need to take the Euclidian distance between the sensor positions.
  2. The EVD produces eigenvectors that can largely vary from one frequency band to the following. This can lead to discontinuities in the filters’ magnitude response. The Cholesky decomposition was found to produce "smoother" magnitude responses and, consequently, more natural-sounding babble noise. A discussion and some improvements are discussed in [1].

[1] https://doi.org/10.1121/10.0003565

@ehabets ehabets closed this as completed Dec 14, 2022
@ehabets ehabets reopened this Dec 14, 2022
@fakufaku
Copy link
Author

Thanks for the quick replay! Just to confirm:

  1. For spherical noise, we use the sinc function and the 3D euclidean distance. For cylindrical noise, we use the Bessel function and the horizontal distance between sensors (i.e., ignoring z). Is that correct ?
  2. I see, interesting! Thank you for the additional reference!

@ehabets
Copy link
Owner

ehabets commented Dec 14, 2022

  1. Correct. Please note that these models hold only for omnidirectional sensors in free-field.
  2. You're welcome.

@fakufaku
Copy link
Author

Please note that these models hold only for omnidirectional sensors in free-field.

Excellent point, I need to add an error or warning if directional microphones are used! 👍
Thank you so much for your help! 🙏

@fakufaku
Copy link
Author

Here is where I started to add the code in case you are interested!
LCAV/pyroomacoustics#296

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants