Exact, elegant coherence based sub-band angle of arrival estimation for broadband acoustic signals. The main challenge in all angle of arrival estimation is the uncertainties introduced by either ambient noise or a persistent interfering signal. Our main interest in angle of arrival estimation is a single parameter estimation using a number of measurements, a well researched field. A method that can conveniently deal with this problem using a minimum number is sensors is the so-called coherence using no more than two sensors.

Consider a far field acoustic signal impinging $2$ microphones with separation distance $d$ at an angle of $\theta^{\circ}$. The signal at microphone $i$, $x_i$ , can be denoted as $x_i(t) = s(t - \tau_i) + \nu_i(t), i \in \{1, 2\}$

where $\tau_i = \frac{d}{c} \sin{\theta}$ is the delay of the desired signal at microphone $i$, $s(t)$ is the source signal, $\nu_i(t)$ is noise and $c$ is the speed of acoustic signals. Both $s(t)$ and $\nu (t)$ are   zero mean ergodic processes. We will like to estimate the angle of arrival and beam form $s(t)$.  The setup is as shown in Figure below. Two microphones with pairwise distance of $d$

Define $\phi(X_i(\omega),X_j(\omega)), i \ne j$ as : $\phi(X_i(\omega),X_j(\omega)) = \mathrm{E}[X_i(\omega) X_j^*(\omega)]$ $\phi(X_i(\omega),X_j(\omega)) = |S(\omega)|^2 e^{-j\omega \frac{d}{c} \sin{\theta}} +\mathrm(E)[\nu_i(\omega) \nu_j^*(\omega)]$ $\phi(X_i(\omega),X_j(\omega)) =\sigma_{\nu}^2 \left(SNR(\omega)e^{-j\omega \frac{d}{c} \sin{\theta}} + 1 \right)$

Similarly, define $\phi(X_i(\omega),X_i(\omega))$ as : $\phi(X_i(\omega),X_i(\omega)) = \mathrm{E}[X_i(\omega) X_i^*(\omega)]$ $\phi(X_i(\omega),X_i(\omega)) = |S(\omega)|^2 +\mathrm(E)[\nu_i(\omega) \nu_i^*(\omega)]$ $\phi(X_i(\omega),X_i(\omega)) =\sigma_{\nu}^2 \left(SNR(\omega) + 1 \right)$

The sample coherence, $\Gamma_{X_1(\omega),X_2(\omega)}$, is: $\Gamma_{X_1(\omega),X_2(\omega)} = \frac{\phi(X_1(\omega),X_2(\omega)) }{\sqrt{\phi(X_1(\omega),X_1(\omega)) \phi(X_2(\omega),X_2(\omega)) }}$ $\Gamma_{X_1(\omega),X_2(\omega)} = \frac{SNR(\omega)e^{-j\omega \frac{d}{c} \sin{\theta}} + 1 }{SNR(\omega) + 1}$

Define the imaginary parts and real parts of the sample coherence as $i\Gamma_{X_1(\omega),X_2(\omega)}$ and $r\Gamma_{X_1(\omega),X_2(\omega)}$ respectively such that $i\Gamma_{X_1(\omega),X_2(\omega)} = -\frac{SNR(\omega)}{SNR(\omega)+1} \sin{\left(\omega \frac{d}{c} \sin{\theta}\right)}$

and $i\Gamma_{X_1(\omega),X_2(\omega)} = \frac{SNR(\omega)}{SNR(\omega)+1} \cos{\left(\omega \frac{d}{c} \sin{\theta}\right)} +\frac{1}{SNR(\omega)+1}$

From the above equations, we can synthesize $SNR(\omega) = -\frac{i\Gamma_{X_1(\omega),X_2(\omega)}}{i\Gamma_{X_1(\omega),X_2(\omega)}+\sin\left(\omega \frac{d}{c} \sin{\theta} \right)}$

and $SNR(\omega) = \frac{1-r\Gamma_{X_1(\omega),X_2(\omega)}}{r\Gamma_{X_1(\omega),X_2(\omega)}-\cos\left(\omega \frac{d}{c} \sin{\theta} \right)}$

We can now explicitly eliminate the $SNR(\omega)$ term to leave an equation with a single unknown parameter, thus: $-\frac{i\Gamma_{X_1(\omega),X_2(\omega)}}{i\Gamma_{X_1(\omega),X_2(\omega)}+\sin\left(\omega \frac{d}{c} \sin{\theta} \right)} = \frac{1-r\Gamma_{X_1(\omega),X_2(\omega)}}{r\Gamma_{X_1(\omega),X_2(\omega)}-\cos\left(\omega \frac{d}{c} \sin{\theta} \right)}$ $i\Gamma_{X_1(\omega),X_2(\omega)} \cos\left(\omega \frac{d}{c} \sin{\theta} \right) = i\Gamma_{X_1(\omega),X_2(\omega)}+\sin\left(\omega \frac{d}{c} \sin{\theta} \right)-r\Gamma_{X_1(\omega),X_2(\omega)} \sin\left(\omega \frac{d}{c} \sin{\theta} \right)$ $1 = \cos\left(\omega \frac{d}{c} \sin{\theta} \right) + \frac{r\Gamma_{X_1(\omega),X_2(\omega)}-1 }{i\Gamma_{X_1(\omega),X_2(\omega)} }\sin\left(\omega \frac{d}{c} \sin{\theta} \right) , i\Gamma_{X_1(\omega),X_2(\omega)} \neq 0$

We note that $i\Gamma_{X_1(\omega),X_2(\omega)} =0$ if and only if the angle of arrival is $\theta = 0$. If that was so, we can end. Now suppose $theta \neq 0$, then $1 = \sqrt{1-\sin^2\left(\omega \frac{d}{c} \sin{\theta} \right) } + \frac{r\Gamma_{X_1(\omega),X_2(\omega)}-1 }{i\Gamma_{X_1(\omega),X_2(\omega)} }\sin\left(\omega \frac{d}{c} \sin{\theta} \right)$

which simplifies to $\sin{\left(\omega \frac{d}{c} \sin{\theta} \right)} \left( \left(\left ( \frac{r\Gamma_{X_1(\omega),X_2(\omega)}-1 }{i\Gamma_{X_1(\omega),X_2(\omega)} }\right)^2 +1\right)\sin{\left(\omega \frac{d}{c} \sin{\theta} \right)} - 2 \frac{r\Gamma_{X_1(\omega),X_2(\omega)}-1 }{i\Gamma_{X_1(\omega),X_2(\omega)} }\right) =0$

Now, since $\theta \neq 0$, there is only one other viable solution: $\theta =\arcsin{\left( \frac{c}{\omega d}\arcsin\left(\frac{2\left(\frac{r\Gamma_{X_1(\omega),X_2(\omega)}-1 }{i\Gamma_{X_1(\omega),X_2(\omega)} }\right)}{\left(\frac{r\Gamma_{X_1(\omega),X_2(\omega)}-1 }{i\Gamma_{X_1(\omega),X_2(\omega)} }\right)^2+1}\right) \right)}$

For the sub-band solution, the above equation reduces to $\theta[k] =\arcsin{\left( \frac{N c}{2 \pi k d}\arcsin\left(\frac{2 \left(\frac{r\Gamma_{X_1[k],X_2[k]}-1 }{i\Gamma_{X_1[k],X_2[k]} }\right)}{\left(\frac{r\Gamma_{X_1[k],X_2[k]}-1 }{i\Gamma_{X_1[k],X_2[k]} }\right)^2+1}\right) \right)}, k \in [1,N-1]$

Note that an indeterminate form arises for $k=0$, which can be ignored or resolved if required.
The required angle of arrival could be polled across all sub-bands for a single frame or within sub-bands for multiple frames.
Preliminary testing shows this approach is indeed very robust to noise. In the example, three frames are averaged for each coherence value. Further, only the estimates for frequencies between the bands of $500Hz$ $1.5kHz$ are used. For $16kHz$ sampling rate, this corresponds to the samples $10$ $30$ if a 160 point FFT is used for each $10ms$ frame (160 samples).

The results for using this approach to separate two signals from $\pm \frac{\pi}{2}$ is illustrated in Figure 1 below. Results of separating two alternating signals

VOCAL Technologies offers custom designed direction of arrival estimation solutions for beamforming with a robust voice activity detector, acoustic echo cancellation and noise suppression. Our custom implementations of such systems are meant to deliver optimum performance for your specific beamforming task. Contact us today to discuss your solution!