The goal of an optimal beamformer is to minimize the interference and noise sources, while preserving the desired signal in a specific direction.

\min_w w^H S_{xx} w\ subject\ to\ w^H d=1

The solution to this constrained minimization problem is the well-known Minimum Variance Distortionless Response (MVDR) beamformer:

w_{opt}\ =\ \frac{\phi_N^{-1}d}{d^H\phi_N^{-1}d}

The optimal beamformer weights is dependent on the coherence of the noise field, and so is the expected SNR improvement. In an uncorrelated noise field, the expected SNR improvement is 10\ {(log}_{10}M)\ dB, where M is the number of microphones. For coherent noise sources, perfectly placed nulls can easily achieve over 30dB of attenuation.

However, in practical acoustic environments, reverberations cause a smearing of the noise sources. As the reverberation time increases, the coherent point noise source transforms into a spherically or cylindrically isotropic noise field. At a critical distance, typically around 1.5m, the signal energy of the direct sound source is equal to that of the reverberant signal energy coming from all other directions. This limits the attenuation of the noise source to 3dB for this beamformer design.

mic array reverberation

The Generalized Sidelobe Canceller(GSC), and beamforming post-filters are two potential solutions to this problem. The GSC creates noise reference signals, which can be used to enhanced the output of the noisy beamformer. With this structure, we now have an acoustic noise cancellation problem, where the impulse response of the noise source needs to be estimated. Beamforming post-filters apply a nonlinear gain factor to the output of the beamformer. The gain factor is often derived from a multi-channel Wiener filter.

VOCAL Technologies offers custom designed solutions for microphone array beamforming with a robust voice activity detection, acoustic echo cancellation and noise suppression. Our custom implementations of such systems are meant to deliver optimum performance for your specific beamforming task.