Gerhard Doblinger Interpolated Arrays

Design of wideband beamformers with interpolated arrays

We demonstrate the basics and show representative examples of an optimization method for wideband beamformers with applications to microphone arrays.

 

Main design objectives:

  • reduced number of sensors
  • small array size suitable e.g. for microphone arrays
  • reduced sensitivity regarding sensor noise, and sensor position errors

 

Background information on beamformer design:

Figure 1 shows a one-dimensional uniform array of N sensors exposed to a traveling plane wave.

int_array_fig1
In case of a narrow-band beamformer operating at frequency f, the complex-weighted sensor signals are summed up to obtain the beamformer output signal. The beam pattern |P(u)|² represents the output signal power versus azimuth variable u at frequency f.

Example: Delay & Sum Beamformer

int_array_fig2

Figure 2 shows the (narrow-band) beam patterns of a delay-and-sum beamformer at approximately f = 5 kHz (above) and f = 500 Hz (below). The visible regions (blue) contain the azimuth range from 0° to 180° and are normally plotted using polar coordinates (diagrams at right hand side of Fig. 2).

Problem: delay-and-sum beamformers exhibit sharp beam patterns in the high frequency region only!

Therefore, in case of wideband beamformers we cannot use the simple delay-and-sum beamformer.

Example: Superdirective MVDR Beamformer

int_array_fig3

A minimum-variance-distortionless-response (MVDR) beamformer minimizes the output signal power but maintains signals from the desired direction. Notice the sharper mainlobe at low frequencies (when compared with Fig.2). Beamformer weights are computed by a constrained optimization algorithm for each frequency f.

Disadvantage: The sharper the beampattern at low frequencies the more sensitive are the MVDR beamformers.

A large energy in the invisible region is responsible for amplification of sensor noise and sensitivity to sensor position errors. With an MVDR beamformer design, energy is transfered from the visible to the invisible region of the beam patterns (see Fig. 3).

How can we cope with this problem?

  • use more sensors (to obtain a large aperture at low frequencies)

  • try alternative design methods (e.g. equi-ripple design),

  • use sparse arrays (see my demo page on sparse array design)

  • use interpolated arrays

Principle of interpolated arrays:

int_array_fig4

We can save input sensors by introducing virtual sensors as shown in Fig.4. A linear, time-invariant, multi-channel mapping system T is connected as a preprocessing system to the beamformer. Sensor mapping in Fig. 4 is a very general technique that can be fitted to a large variety of array configurations. As an example, we can convert a nonuniform array to a uniform array with M = N, typically. Another example is extrapolation where we augment a uniform array of N sensors by M – N sensors to create an M sensor uniform array. The beamformer is then designed using the M virtual sensors.

Implementation of interpolated arrays using FFT-Filterbanks:

int_array_fig5

We implement the wideband beamformers with an overlap-add FFT filterbank for each sensor signal as shown in Fig. 5. In the frequency domain, the mapping system corresponds to an N x M mapping matrix T[k] for each frequency index k. T-matrix elements and MVDR weights are computed at frequency points between 0.3 kHz and 5.5 kHz with a sampling frequency of 16 kHz, and an FFT length of 512. Sensor spacing of uniform arrays is d = 2.5 cm to avoid spatial aliasing up to a frequency of fmax = c/2d = 6.8 kHz (sound velocity c = 340 m/s). We use an improved design method based on a norm-constrained least-squares (LS) algorithm to find optimum mapping matrices T[k]. Compared to a standard LS design, our algorithm shows a better beamforming behavior in case of noisy input sensors. In addition, room reverberations have less influence on the beam patterns.

Of course, if the beamformer has a fixed look direction, then we can combine the T-matrices with the beamformer weights in Fig. 5 to avoid storage of the T-matrices. In this case, the design of interpolated arrays is just another method to compute the beamformer weight vectors. The advantage of the system shown in Fig.5 is its flexibility in regard to the combination of different beamformer designs with different mappings of array geometries. It might also be useful in case of adaptive beamformers.

The design algorithm for interpolated arrays is published in

G. Doblinger, “Beamforming with optimized interpolated microphone arrays,” Proceedings of the HSCMA 2008 Joint Workshop on Hands-free Speech Communication and Microphone Arrays”, Trento, Italy, May 6-8, 2008, pp. 33-36, ISBN: 978-1-4244-2338-5, IEEE Catalog Number: CFP08HSM-CDR.

G. Doblinger, “Optimized design of interpolated array and sparse array wideband beamformers,” Proc. 16th European Signal Processing Conference EUSIPCO2008, Lausanne, Switzerland, Aug. 25-29, 2008.

MATLAB programs of the complete array designs are available here. Note that these programs are published under the GNU GENERAL PUBLIC LICENSE (see file attached to the programs).

Some experimental results on interpolated array beamforming:

In the following examples, we illustrate the functioning of our design method.  The weight vectors are computed with an MVDR design. The superdirectivity of an MVDR beamformer can be controlled by the diagonal loading of the spatio-spectral correlation matrix involved in the design procedure. In the examples, we use the same additive constant to the diagonal elements of the spatio-spectral correlation matrix in all MVDR designs.

int_array_fig6

Figure 6 shows a typical design result of beamformers with 60° look direction, and desired spatial nulls at 20° and 160°. The beampatterns are measured with a white noise source signal band-limited to 0.3 kHz – 5.5 kHz. A uniform array with 8 input sensors is augmented by up to 6 virtual sensors. Compared to the beam pattern with 8 sensors (blue curve) the interpolated arrays (red curves) approach the beam pattern with 14 input sensors (green curve).

The following 3d plots illustrate beampatterns of the 8 sensor array (left) and of the 8+6 interpolated array (right). Notice the sharper mainlobe at frequencies below approximately 2 kHz. This gives rise to the better wideband performance of interpolated arrays as shown in Fig. 6.

 bp_3d_60
bp_3d_60_int

Influence of sensor noise:

The T-matrices of interpolated arrays amplify noise of the input sensors. Therefore, more noise is present at the virtual sensors. With our norm-constrained algorithm to compute the T-matrices, we can significantly improve the noise behavior of interpolated arrays.

int_array_fig7

Figure 7 shows the influence of sensor noise (SNR = 25 dB). As indicated in Fig. 7, the mainlobe of the interpolated array is still close to the full array main lobe. Sidelobe levels are increased in case of array interpolation by approx 2.5 dB in the azimuth range 120° – 140°. In addition, the sharpness of spatial nulls is diminished.

Influence of room reverberations:

In order to test the beamformer design in a room environment, we show the influence of simulated room acoustics on the beam patterns in Fig. 8.

int_array_fig8

Room size is L x W x H = 6 m x 5 m x 3 m with a reverberation time T60 = 0.13 seconds. Moderate room reverberations increase sidelobe levels by 2 – 4 dB, and nearly remove spatial nulls. However, we observe only a minor influence on the mainlobe performance.

In the following animation, we illustrate the wideband beam pattern measurement. You can observe the room impulse response in addition to the successive beam pattern measurement at 10° azimuth steps. 

bp_measurement_int_array

Array interpolation is especially useful in case of compact size arrays with only a small number of input sensors and additional virtual sensors. These arrays require only a moderate additional computational effort to implement the interpolation algorithm. As a final example we show design results of a uniform array with 6 input sensors augmented by 1 virtual sensor on each end of the array (6+2 interpolated array).

int_array_fig9

Fig.9 shows a design result of an 6+2 interpolated array compared with a 6 sensor array, and an 8 sensor array. This beamformer has an end-fire (0°) look direction, and a spatial null at 160°. The far-field beam pattern of the interpolated array is quite close to the array with 8 input sensors.

int_array_fig10

The noise behavior of the 6+2 interpolated array is plotted in Fig.10. There is barely a influence on the mainlobe width. However, sidelobe levels are more increased as compared to non-interpolated arrays.

int_array_fig11

Fig. 11 shows the beam pattern when operating the arrays in a simulated room (same size and reverberation time as before). Again, the mainlobe of the interpolated array is still close to that of the N=8 array, and sidelobe levels are more influenced by room reverberations (compared to non-interpolated arrays).

Conclusions:

  • Interpolated arrays are flexible regarding beamformer design and mapping of array geometries.
  • Interpolated arrays can improve beam patterns, especially for arrays with a small number of sensors.
  • Interpolated arrays exhibit a larger influence of sensor noise, and of room reverberations.
  • We can modify a given array by changing the software of a DSP beamformer implementation to include the array interpolation.