- Research
- Open Access

# Design of broadband beamformers with low complexity

- Zhiguo Feng
^{1}, - Cedric Ka Fai Yiu
^{1}Email author, - Kok-Lay Teo
^{2}and - Sven Nordholm
^{3}

**2012**:62

https://doi.org/10.1186/1687-6180-2012-62

© Feng et al; licensee Springer. 2012

**Received:**31 August 2011**Accepted:**9 March 2012**Published:**9 March 2012

## Abstract

In this article, we consider the design of broadband beamformers with low complexity. In fact, the design problem is multi-objective in nature, trading off between speech distortion and noise suppression. Finding a balance between these two objectives is important in order to achieve a desired sound quality. These measures are introduced as the objectives here. The design can then be obtained via a bi-objective integer programming problem, where the coefficients of the filters are expressed as sums of signed powers-of-two terms. We study two different integer spaces and penalty functions for solving the problem. Then, an algorithm based on a discrete filled function is developed for finding the optimal design. In order to illustrate the effectiveness of the algorithm, real data is used and two broadband beamformers are demonstrated.

## Keywords

- Finite Impulse Response
- Sequential Quadratic Programming
- Recursive Function
- Interference Suppression
- Microphone Array

## 1 Introduction

The increased popularity of wireless cellular telephones and their uses in a variety of occasions has motivated the development of handsfree communication devices. In this particular acoustic environment, the microphone array is required to suppress the car noise as well as the interference from the handsfree loudspeaker, while keeping the distortion of the speech low. Since the mathematical model of this problem is very difficult to construct, sequences of calibration signals are used instead for the design of beamformers [1].

Under this signal model, the least-squares technique (LS) and the signal-to-noise plus interference ratio (SNIR) are often used [2, 3] to optimize the performance of the beamformer. However, evaluation results [3] have shown that beamformers designed by LS have very good distortion controls, while the ones designed by SNIR have better suppression levels of both noise and interference when compared to LS. Both approaches cannot control directly the individual level of speech distortion, noise suppression and interference suppression. This problem is partially overcome in [4], where it was proposed to use nonlinear programming to design beamformers with multi-criteria and demonstrated the set of Pareto optimal. Indeed, trade-offs between different performance indicators in different beamforming systems are important and have been studied in the literature [5–10]. However, after achieving the required performances, coefficients of the designed beamformers are of very high precision and hence require significant efforts in order to preserve the performance and trade off the computational efficiency. Indeed, in many designs, the truncation method is still widely employed and quantization errors play a significant role in the dynamic range of filter gain and increase with filter order [11, 12]. Furthermore, an efficient implementation of the beamformers in fixed-point arithmetic hardware (such as FPGA) is essential [13] in the production stage. However, there is very little result for finding the finite precision beamformers subject to achieving a certain speech quality.

One way to achieve low complexity is to express the coefficients of the filters as sums of signed powers-of-two (SPT) terms, and minimize the number of SPT terms required. This problem has received a great attention. For the design of high-pass or low-pass finite impulse response (FIR) filters, the use of SPT terms via the least squares criterion or the minimax criterion have been widely studied in the literature. Several optimization methods, such as branch and bound [14], simulated annealing [15], and searching techniques [16, 17] have been proposed to tackle this class of problems. For the design of the filter bank, several algorithms have been proposed, such as the genetic algorithm [18], and the tree search algorithm [19]. However, these approaches have not been applied for broadband beamformer designs yet, especially when we consider the model of optimizing signal distortion and noise suppression directly. Effective algorithms are required to tackle this new constrained optimization problem.

The problem of designing FIR filters with low complexity is always formulated as a constrained optimization problem, where the variables take values in -1, 0, and 1. However, the number of variables for this formulation is very large and the proposed methods, such as branch and bound and the tree search algorithm, are very expensive. The heuristic methods such as the genetic algorithm and simulated annealing are not only expensive but also unpredictable. To reduce the number of variables, it is necessary to find a fast conversion between an integer and its minimum combination of signed power of two terms. In [20], a method is proposed to allocate the number of SPT terms to each coefficient value, but the optimum assignment scheme is not guaranteed. In this article, a fast and optimal conversion based on a recursive function is introduced and the problem is transformed into an integer programming problem with the number of variables greatly reduced. For this problem, the optimal solution should be close to the infinite precision solution, which can easily be obtained by gradient-based methods. Hence, the truncation of the infinite precision solution can be set as a good initial point and we are required to search the neighborhood of the initial point in the integer space. A suitable technique is the filled function method, which was first introduced in [21] for global optimization with continuous variables employed in a hybrid setting similar to [22]. It searches for a better minimizer among local minimizers by means of a function, which is called a filled function. A discrete filled function method was later developed in [23] for solving discrete global optimization problems. In this article, a novel method is proposed for the finite precision beamformer design using a discrete filled function. We formulate the design problem and transform it into an unconstrained integer programming problem. By incorporating a procedure for choosing initial points and using a discrete filled function, we develop an efficient algorithm to tackle the problem.

The rest of the article is organized as follows. In Section 2, with the calibration signal, we present the signal model and formulate the beamformer design problem. In Section 3, we transform the original problem into an unconstrained integer programming problem. An algorithm is then developed in Section 4, which is then applied for the off-line design of beamformers. Two examples are given in Section 5 and the numerical results obtained are compared with other methods.

## 2 Problem formulation

*M*elements in the microphone array. In general, the signals received by the

*i*th microphone element can be represented as

*n*is the discrete time index. Assume that known calibration sequence observations are used for each of these signals. The output of the beamformer is given by

*L*is the length of the filters and w= ((w

^{1})

^{⊺},

*...*, (w

^{ M })

^{⊺})

^{⊺}, where

*w*

^{ i }(

*j*),

*i*= 1,

*...*,

*M*,

*j*= 0,

*...*,

*L -*1, are expressed by

*b*is the wordlength and

*s*

_{ k }

_{,i,j}∈ {-1, 0,1}. To reduce the hardware complexity in real applications, the coefficients need to satisfy the constraints

*N*

_{1}is the total allowable number of the SPT terms used, and

where *N*_{2} is the allowable number of SPT terms for each coefficient *w*^{
i
}(*j*). Let $\mathcal{W}$ denote the set of all those w such that the constraints (2.4) and (2.5) are satisfied.

Basically, the LS formulation and the SNIR formulation are two different kinds of methods for determining the weight matrix. In both approaches, there is no direct control over the level of distortion and the level of noise and interference suppression. In particular, LS is very good at the distortion level, but poor in the suppression level. On the other hand, SNIR is always very good at the suppression level but left a consistently high level of distortion.

*r*th microphone is chosen as reference, and ${\widehat{P}}_{{y}_{s}{y}_{s}}\left(\omega \right)$ is the power spectrum estimate of the beamformer output with filtering when the source signal is active alone. The normalized distortion measure can be defined as:

*•*} denotes the mean value and

*ω*is the frequency. The constant

*C*

_{ d }is defined as:

where ${C}_{s}=\frac{1}{{C}_{d}}$. Note that in (2.8), ${\widehat{P}}_{{y}_{N}{y}_{N}}\left(\omega \right)$ and ${\widehat{P}}_{{x}_{N}^{r}{x}_{N}^{r}}\left(\omega \right)$ are power spectrum estimates of the beamformer output with and without filtering, when the surrounding noise is active alone. In the same manner, ${\widehat{P}}_{{y}_{I}{y}_{I}}\left(\omega \right)$ and ${\widehat{P}}_{{x}_{I}^{r}{x}_{I}^{r}}\left(\omega \right)$ are power spectrum estimates when the interference signals are active alone. Both the noise and the interference suppression measures are normalized in accordance with the amplification/attenuation caused by the beamformer to the reference observation when the source signal is active alone, i.e., when the beamformer attenuates the source signal by a specific amount, the noise and interference suppression quantities are reduced by the same amount.

In order to control the suppression and the distortion simultaneously, the filter design problem is formulated as a nonlinear programming problem given below.

**Problem 1**.

*Find a*$\mathit{w}\in \mathcal{W}$

*such that*

*is minimized*,

*subject to*

*where c*_{1} *is a pre-defined distortion level in dB scale*.

Similar to Problem 1, we can also formulate the constrained nonlinear programming problem as:

**Problem 2**.

*Find a*$\mathit{w}\in \mathcal{W}$

*such that*

*is minimized*,

*subject to*

*where c*_{
2
} *is a pre-defined suppression level in dB scale*.

**Remark 1**. *In some situations*, *the influence of interference noise can be ignored. In such cases*, *the term S*_{
I
} *in both Problems 1 and 2 can be removed*.

## 3 Infinite precision solution

Both Problems 1 and 2 are discrete optimization problems. There is a lack of gradient information and hence they are much more difficult to be solved than continuous optimization problems. Here, we will first solve the infinite precision solution of the continuous version of the optimization problem, and use it as an initial guess to search for a finite precision solution in the second stage.

### 3.1 Equivalent form

*y*

_{ s }

*,y*

_{ N }, and

*y*

_{ I }for every w[4]. To simplify the computation, we take the discrete time Fourier transform of both sides of (2.2) yielding

*W*

_{ k }(

*ω*),

*X*

_{ k }(

*ω*), and

*Y*(

*ω*) are the Fourier transforms of

*w*

^{ k },

*x*

^{ k }, and

*y*, respectively. Denote ¯ as the conjugate symbol, we have

*x*

^{ k }and

*x*

^{ j }. Since for each

*k*,

*W*

_{ k }(

*ω*) can be expressed as

*ω*) = (1,

*e*

^{ -iω }

*...*,

*e*

^{ -i }

^{(L-1)ω})

^{⊺}, it is clear that

_{ ξ }(

*ω*) and I

_{ ξ }(

*ω*) be, respectively, the real part and imaginary part of $\xi \left(\omega \right){\left(\stackrel{\u0304}{\xi}\left(\omega \right)\right)}^{\u22ba}$ given by

*ω*) be a ℝ

^{ ML×ML }matrix function given by

*C*

_{ d }defined in (2.7) can be simplified as

With (2.6), (2.8), and (2.9) replaced by (3.11)-(3.13), the computation of distortion and suppression values has been greatly simplified.

### 3.2 Properties

From (3.11)-(3.13), we have the following lemma.

*For any*w

*and any λ ≠*0,

*it holds that*

By Lemma 1, we can restrict each coefficient *w*^{
i
}(*j*) in a bounded open interval (-1,1). Let $\overline{\mathcal{W}}={\left(-1,1\right)}^{ML}$, the respective infinite precision solutions of Problems 1 and 2 can be solved with the coefficients w confined in $\overline{\mathcal{W}}$.

We obtain the optimal solution w* by maximizing (3.13) using the same principle.

The continuous versions of the optimization problems of Problems 1 and 2 are nonlinear programming problems. One well-known method for solving this type of problems is the sequential quadratic programming (SQP) which will be employed here. An overview of SQP can be found in [24].

## 4 Finite precision solution

For the coefficients of beamformers, it is advantageous to express each one as the sum of signed power-of-two terms. In general, we hope to use less wordlength and less SPT terms to obtain a satisfying performance when compared with the infinite precision solution. However, if the wordlength is not long enough, the truncated finite precision solution will produce very poor performance. As a result, we need to develop a method to find a satisfying finite precision solution by using a relatively small number of SPT terms.

### 4.1 Problem transformation

Let us first construct a transformation to convert Problem 1 to an equivalent integer programming problem.

*w*

^{ i }(

*j*) is {2

^{-b}

*k*,

*k*= 1-2

^{ b },...,2

^{ b }-1}. That is, for any $\stackrel{\u0303}{w}\in \left\{{2}^{-b}k,k=1-{2}^{b},\dots ,{2}^{b}-1\right\}$, there exists a vector $\stackrel{\u0304}{s}=\left({\stackrel{\u0304}{s}}_{k}\right),{\stackrel{\u0304}{s}}_{k}\in \left\{-1,0,1\right\}$, such that

*b*-bit, the minimal number of SPT terms for $\stackrel{\u0304}{w}$ is defined as:

*z*= ((

*z*

^{1})

^{⊺}

*...*, (

*z*

^{ M })

^{⊺})

^{⊺}, where

*i*and

*j*,

*z*

^{ i }(

*j*) ∈ {1 - 2

^{ b },..., 2

^{ b }- 1}. Thus, when the wordlength is taken as

*b*-bit, the minimal number of SPT terms for some integer $\stackrel{\u0304}{z}$ can be defined by

**Remark 2**. *The computation of* ${P}_{z}\left(\stackrel{\u0304}{z},b\right)$ *and the conversion from an integer to signed digit code can be implemented by recursive functions. These are given in the Appendix*.

*Q*

_{1},

*Q*

_{ 2 },

*Q*

_{ 3 },

*Q*

_{ 4 }and

*Q*

_{ 5 }denote five sufficiently large positive real numbers. The constraints (4.4), (4.5), (2.11), and (2.13) are replaced with

respectively. Let $\mathcal{Z}={\left\{1-{2}^{b},\dots ,{2}^{b}-1\right\}}^{ML}$ denote the space of all possible z. Thus, Problem 1 is transformed into:

**Problem 3**. *Find a* $\mathit{z}\in \mathcal{Z}$ *such that E*_{1}(z), *which is defined by* (*4.12*), *is minimized*.

Similarly, Problem 2 is transformed into:

**Problem 4**. *Find a* $\mathit{z}\in \mathcal{Z}$ *such that E*_{2}(z), *which is defined by* (*4.13*), *is minimized*.

Problems 3 and 4 are unconstrained integer programming problems. To solve Problems 3 and 4, we will develop a three-step algorithm. The first step is the selection of an initial point, the second step is a local search, while the third step is a global approach.

### 4.2 Initial point

We will develop an efficient computational method to search for the optimal solutions of Problems 3 and 4. But first, we need to find a good initial point.

In general, it is much more difficult to solve the discrete optimization problem than to solve the continuous version of the optimization problem. In order to select good initial points for Problems 3 and 4, we first find the solutions (infinite precision solutions) of the continuous version of Problems 1 and 2 and then round them to the nearest discrete solutions.

_{0}as the nearest point in $\mathcal{Z}$ to $\u1e91$, that is,

*T*is a function defined by

in which $\left[\stackrel{\u0304}{z}\right]$ denotes the largest integer less than or equal to $\stackrel{\u0304}{z}$.

### 4.3 Local search

With an initial point, we can start to search for a local minimizer. The steepest descent algorithm is applied here to find a local minimizer by selecting the point which produces the largest reduction in the value of the objective function over the current point's neighborhood. The definition of neighborhood is given in

*For any*$\mathit{z}\in \mathcal{Z}$,

*the neighborhood of*z

*is defined by*

*where* e_{
i
} *is the ith unit vector* (*the* ℝ^{
ML
}vector with the ith component equal to one and all other components equal to zero).

If we have found a point which minimizes the objective function over its neighborhood, then the local search stops and the point obtained is called a local minimizer. The precise definition of local minimizers is given as follows:

**Definition 2**. *A point* z ** is called a local minimizer of E*_{
i
} *over* $\mathcal{Z}$ *if* ${E}_{i}\left({\mathit{z}}^{*}\right)\le {E}_{i}\left(\mathit{z}\right),\phantom{\rule{2.77695pt}{0ex}}\forall \mathit{z}\in \mathcal{N}\left({\mathit{z}}^{*}\right)$.

Based on the two definitions given above, we present a discrete steepest descent algorithm, which will be used as a subroutine, to search for a local minimizer of the cost function *E*_{
i
} in the following algorithm.

**Algorithm** 1. (Subroutine)

*1. Start from an initial minimum z* and an initial point* z *'* = z_{0}. *Compute the objective function value E*_{
i
}.

*2. For each point* $\mathit{z}\in \mathcal{N}\left({\mathit{z}}^{\prime}\right)\backslash \left\{{\mathit{z}}^{\prime}\right\}$, *compute the corresponding objective function value Ei*(z). *Suppose* z *' is such that E*_{
i
}(z') *is the minimum. If E*_{
i
}(z') ≥ *E*_{
i
}(z*), *then* z ** is a local minimizer of E*_{
i
} *and stop*, *else goto Step 3*.

*3. Set* z* = z'. *Goto Step 2*.

### 4.4 Global approach

With Algorithm 1, we can find a local minimizer from any initial point. For this problem, there exist many local minimizers, and not all of them are useful in practice. Thus, we shall derive a discrete filled function method to search for the best local minimizer.

where ║ ⋅ ║ denotes the usual Euclidean norm. When *ρ* > 0, 0 < *μ* < *ρ/K* (*K* is a sufficiently large real number), (4.17) is called a discrete filled function.

It is not necessary to define the function *F*_{
μ
}_{,p}when *E*_{
i
}(z) *< E*_{
i
}(z*). In this case, we can use the discrete steepest descent method directly with z as the initial point and will obtain a local minimizer, which is better than z* with reference to the objective function.

The search according to this discrete filled function (4.17) takes place as follows. With the starting point z*, the *μ*[*E*_{
i
}(z) *- E*_{
i
}(z*)]^{2} term favors a solution with lower objective function value while the *-ρ║* z *-* z **║*^{2} term favors a solution far away from z*. Combining the effects, the discrete filled function favors a solution whose objective function value is not too much greater than that of z* and at a considerable distance away from z*. The idea is to direct its search towards the direction with the least increase in the objective function value.

To address the situation when we fail to find a point z such that *E*_{
i
}(z) *<E*_{
i
}(z*) using the discrete filled function (4.17) as the objective function, we choose a positive integer number *n*_{
s
}. When the number of searching steps is greater than *n*_{
s
}, we stop and return the current local minimizer. This is because for the problem considered in this article, the optimal solution should be in the neighborhood of the continuous solution. Therefore, when the number of searching steps is greater than *n*_{
s
}, we can consider that the best local minimizer has been obtained and it is not necessary to continue searching.

Then, with the current local minimizer z* of *E*_{
i
}, we present a discrete steepest descent algorithm to search for a point better than z* in the following algorithm.

**Algorithm 2**. (Subroutine)

*1. Set the current local minimizer* z ** as the initial point* z_{0}. *Set l* = 0 *be the number of searching steps*.

*2. For each point* $\mathit{z}\in \mathcal{N}\left({\mathit{z}}_{l}\right)\backslash \left\{{\mathit{z}}_{l}\right\}$, *compute the corresponding objective function value F*_{
μ
}_{,p}(z; z*). *Choose* z *' such that F*_{
μ
}_{,p}(z'; z*) *is the minimum. Go to Step 3*.

*3. If Ei*(z *'*) *<Ei*(z*), *then stop and return* z *' which is better than* z*, *else set l* = *l* + 1 *and goto Step 4*.

*4. If l <n*_{
s
}, *go to Step 2*, *else stop and return* z *'* = z*, *which means there is no point better than* z*.

### 4.5 Algorithm

The proposed algorithm solving Problem 3 (or Problem 4) is summarized in the following:

**Algorithm 3**. (Main program)

*1. Calculate the infinite precision solution* $\widehat{\mathit{w}}$ *of Problem 1* (*or Problem 2*) *by using the SQP method. Compute the initial point* z_{0}.

*2. Apply Algorithm 1 to obtain a local minimizer of the objective function E*_{
i
} *with the initial point* z_{0}. *Let the local minimizer be denoted as* z*.

*3. Apply Algorithm 2 to find a point* z *' better than* z*. *If* z' ≠ z*, *set* z_{0} = z *' and go to Step 2*, *else stop search and obtain the solution* z*, *go to Step 4*.

*4. If the best value E*_{
i
}(z*) *is sufficiently large*, *it means some constraints are not satisfied and the solution is infeasible*, *else return the solution* z ** and its value E*_{
i
}(z*). *Stop*.

It can be seen that Algorithm 3 includes two searches: the search of local minimizer and the search for switching to the better local minimizer. Both searches are based on the discrete steepest descent algorithm.

## 5 Simulation results

In the first example, the measurements were performed in a car environment. The calibration signals were recorded with a sample rate of 12 kHz and with a 300-3400 Hz bandwidth. A linear microphone array with four elements is considered. Noise calibration signals were used, which are emitted individually from the artificial talker and the handsfree loudspeaker as the source and the interference calibration signals, respectively. Interference signals were recorded by emitting an independent sequence of white noise, from the handsfree loudspeaker alone, within the bandwidth. This recording serves as the point source interference calibration signal. Recordings with real speech signals were recorded both individually and while driving. In order to gather background noise signals, the car was driving at a speed of 110 km/h on a paved road. The duration of these signals was 8 s [3].

We consider Problem 1 with the filter length given as 8. The total allowable number of SPT terms is constrained by *N*_{1} = 40 and the allowable number for each coefficient is constrained by *N*_{2} = 3. To see how our method studies, we take an example when the distortion level is taken as *c*_{1} = -25 dB and the wordlength is taken as *b* = 5. We use the function fmincon in Matlab to solve the infinite precision solution, whose objective value is -23.8079 dB. The truncation solution is obtained, where the objective value is -20.7160 and the number of SPT terms is 60. For the proposed method, we first obtain a local minimizer by Algorithm 1, where the objective value is -21.9350 dB. By the discrete filled function, we apply Algorithm 1 to search for a solution better than the current local minimizer. Then, setting this solution as the initial point, we apply Algorithm 1 to obtain a better local minimizer whose objective value is -22.1598 dB. Again, by applying the discrete filled function four times, we obtain the local minimizer whose objective value is -23.4359 dB. This is then the best solution we found. Hence, we can see that from the truncation method to the proposed method, the total improvement of performance is 2.72 dB and the improvement of the number of SPT terms is 20. Furthermore, the improvement of performance from local search to global search is 1.50 dB.

*N*

_{1}= 50,

*N*

_{2}= 3, and

*b*= 6, we apply the proposed method to solve the infinite precision solution with the distortion level taken as

*c*

_{1}= -20 dB, -22 dB, and -25 dB, respectively. The infinite and finite precision solutions and their values are reported in Table 1.

Results for Example 1

Solutions | Distortion level | Sum of SPT | Constraint G | F |
---|---|---|---|---|

Infinite | -20 dB | -- | 0 | -31.9979 |

Precision | -22 dB | -- | 0 | -26.7198 |

Solutions | -25 dB | -- | 0 | -23.8079 |

-20 dB | 75 | 0.0052 | -31.9196 | |

Truncated | -22 dB | 79 | 0.0254 | -26.5992 |

Solutions | -25 dB | 77 | -0.1208 | -21.9489 |

-20 dB | 50 | -0.0022 | -31.8630 | |

Proposed | -22 dB | 50 | -0.0260 | -26.6194 |

Method | -25 dB | 50 | -0.0206 | -23.6929 |

*c*

_{1}= -20 dB are depicted in Figures 2 and 3. In the suppression figure, if the line of beamformer output is lower than that of the single sensor observation, then the noise signal or interference signal is suppressed. The much the dashed line is lower than the real line, the much the signal is suppressed, especially at some frequency when the intensity is strong (dB value is high). It can be seen from Figures 2 and 3 that the noise or interference signal has been suppressed.

*N*

_{1}= 50 and the allowable number for each coefficient is constrained by

*N*

_{2}= 3. The wordlength is taken as

*b*= 6. We use the function fmincon in Matlab to solve the infinite precision solution with the suppression level taken as

*c*

_{2}= -20 dB, -22 dB, and -25 dB, respectively. The infinite and finite precision solutions and their values are reported in Table 2. The power spectrum estimates of the unprocessed and processed noise and interference signal using Welch's periodogram in the case of

*c*

_{2}= -20 dB are shown in Figure 4. As the dashed line is lower than the real line for all frequencies in Figure 4, the noise signal has been suppressed remarkably.

Results for Example 2

Solutions | Suppression level | Sum of SPT | Constraint G | F |
---|---|---|---|---|

Infinite | -20 dB | -- | 0 | -26.7387 |

Precision | -22 dB | -- | 0 | -26.2833 |

Solutions | -25 dB | -- | 0 | -25.3942 |

-20 dB | 67 | 0.3268 | -26.7499 | |

Truncated | -22 dB | 93 | 0.0981 | -26.2938 |

Solutions | -25 dB | 73 | 0.3541 | -25.4031 |

-20 dB | 50 | -0.0047 | -26.7228 | |

Proposed | -22 dB | 50 | -0.0188 | -26.2194 |

Method | -25 dB | 50 | -0.0057 | -25.3521 |

We can see from Tables 1 and 2 that the sums of SPT terms of the directly truncated solutions are always very large, and neither their values are satisfactory when compared with the infinite precision solutions, nor are the constraints. For the solutions obtained by the discrete filled function method, the sums of SPT terms are reduced remarkably and their values are very close to that of the infinite precision solutions.

## 6 Conclusion

In this article, a novel design method is developed for the finite precision beamformers. The design is based on a bi-criteria formulation trading off speech distortion against noise suppression, and the method is based on the concept of discrete filled functions, where filter coefficients are expressed as sums of SPT terms. An algorithm is derived using gradient descent techniques together with a procedure. From our numerical studies, the proposed method is highly effective, producing superior performance and reasonable design complexity.

## Appendix 1: computation of ${P}_{z}\left(\stackrel{\u0304}{z},b\right)$

When the wordlength is taken as *b*-bit, the minimal number of SPT terms for $\stackrel{\u0304}{z}$, which is defined as ${P}_{z}\left(\stackrel{\u0304}{z},b\right)$ in (4.3), is computed as a recursive function:

**Recursive Function** $\left({P}_{z}\left(\stackrel{\u0304}{z},b\right)\right)$.

*1. If* $\left|\stackrel{\u0304}{z}\right|\ge {2}^{b}$, *then* ${P}_{z}\left(\stackrel{\u0304}{z},b\right)=+\infty $. *Stop and return* ${P}_{z}\left(\stackrel{\u0304}{z},b\right)$.

*2. If* $\stackrel{\u0304}{z}=\pm 1$, *then* ${P}_{z}\left(\stackrel{\u0304}{z},b\right)=1$. *Stop and return* ${P}_{z}\left(\stackrel{\u0304}{z},b\right)$.

*3. If* $\left|\stackrel{\u0304}{z}\right|>1$ *and* $\stackrel{\u0304}{z}$ *is odd*, *then call the functions* ${P}_{z}\left(\stackrel{\u0304}{z}-1,b\right)$ *and* ${P}_{z}\left(\stackrel{\u0304}{z}+1,b\right)$ *respectively. Then*, *let* ${P}_{z}\left(\stackrel{\u0304}{z},b\right)=1+\text{min}\left\{{P}_{z}\left(\stackrel{\u0304}{z}-1,b\right),{P}_{z}\left(\stackrel{\u0304}{z}+1,b\right)\right\}$. *Stop and return* ${P}_{z}\left(\stackrel{\u0304}{z},b\right)$.

*4. If* $\stackrel{\u0304}{z}$ *is even*, *then call the function* ${P}_{z}\left(\stackrel{\u0304}{z}/2,b-1\right)$. *Then*, ${P}_{z}\left(\stackrel{\u0304}{z},b\right)={P}_{z}\left(\stackrel{\u0304}{z}/2,b-1\right)$. *Stop and return* ${P}_{z}\left(\stackrel{\u0304}{z},b\right)$.

For this recursive function, the first two terms are the terminal conditions and the last two terms are the recursive rules. It is not difficult to see that the recursive rules preserve the property that ${P}_{z}\left(\stackrel{\u0304}{z},b\right)$ is the minimal number of SPT terms for $\stackrel{\u0304}{z}$. For example, in the third term, if ${P}_{z}\left(\stackrel{\u0304}{z}-1,b\right)$ is the minimal number of SPT terms for $\stackrel{\u0304}{z}-1$ and ${P}_{z}\left(\stackrel{\u0304}{z}+1,b\right)$ is the minimal number of SPT terms for $\stackrel{\u0304}{z}+1$, then ${P}_{z}\left(\stackrel{\u0304}{z},b\right)$ is the minimal number of SPT terms for $\stackrel{\u0304}{z}$. Hence, we can compute ${P}_{z}\left(\stackrel{\u0304}{z},b\right)$ by applying this recursive function.

## Appendix 2: converting an integer into signed digit code

Let $\Lambda \left(\stackrel{\u0304}{z},b\right)$ denotes the minimal number of signed powers of two terms of $\stackrel{\u0304}{z}$ when the wordlength is taken as *b*-bit. Generally, $\Lambda \left(\stackrel{\u0304}{z},b\right)$ is not unique.

**Recursive Function** $\left(\Lambda \left(\stackrel{\u0304}{z},b\right)\right)$.

*1. If* $\left|\stackrel{\u0304}{z}\right|\ge {2}^{b}$, *then* $\Lambda \left(\stackrel{\u0304}{z},b\right)=\varnothing $. *Stop*.

*2. If* $\stackrel{\u0304}{z}=1$, *then* $\Lambda \left(\stackrel{\u0304}{z},b\right)=\left\{{2}^{0}\right\}$. *If* $\stackrel{\u0304}{z}=-1$, *then* $\Lambda \left(\stackrel{\u0304}{z},b\right)=\left\{-{2}^{0}\right\}$. *Stop and return* $\Lambda \left(\stackrel{\u0304}{z},b\right)$.

*3. If* $\left|\stackrel{\u0304}{z}\right|>1$ *and* $\stackrel{\u0304}{z}$ *is odd*, *then call the functions* ${P}_{z}\left(\stackrel{\u0304}{z}-1,b\right),\phantom{\rule{2.77695pt}{0ex}}{P}_{z}\left(\stackrel{\u0304}{z}+1,b\right)$ *and* $\Lambda \left(\stackrel{\u0304}{z}-1,b\right),\phantom{\rule{2.77695pt}{0ex}}\Lambda \left(\stackrel{\u0304}{z}+1,b\right)$. *if* ${P}_{z}\left(\stackrel{\u0304}{z},b\right)=1+{P}_{z}\left(\stackrel{\u0304}{z}+1,b\right)$ *then let* $\Lambda \left(\stackrel{\u0304}{z},b\right)=\Lambda \left(\stackrel{\u0304}{z}+1,b\right)\cup \left\{-{2}^{0}\right\}$, *else if* ${P}_{z}\left(\stackrel{\u0304}{z},b\right)=1+{P}_{z}\left(\stackrel{\u0304}{z}-1,b\right)$, *then let* $\Lambda \left(\stackrel{\u0304}{z},b\right)=\Lambda \left(\stackrel{\u0304}{z}-1,b\right)\cup \left\{{2}^{0}\right\}$. *Stop and return* $\Lambda \left(\stackrel{\u0304}{z},b\right)$.

*4. If* $\stackrel{\u0304}{z}$ *is even*, *then call the function* $\Lambda \left(\stackrel{\u0304}{z}/2,b-1\right)$. *Suppose that* $\Lambda \left(\stackrel{\u0304}{z}/2,b-1\right)=\left\{{s}_{{i}_{k}}{2}^{{i}_{k}},k=1,\dots \right\}$, *then let* $\Lambda \left(\stackrel{\u0304}{z},b\right)=\left\{{s}_{{i}_{k}}{2}^{{i}_{k}+1},k=1,\dots \right\}$. *Stop and return* $\Lambda \left(\stackrel{\u0304}{z},b\right)$.

## Declarations

### Acknowledgements

This study was supported by RGC Grant PolyU. (5365/09E). Z. G. Feng and K. F. C. Yiu would also like to thank the support from NSFC Grant (10901170) and the Research Committee of the Hong Kong Polytechnic University. Sven Nordholm would like to acknowledge support from ARC DP1096348.

## Authors’ Affiliations

## References

- Nordholm S, Claesson I, Dahl M: Adaptive microphone array employing calibration signals: an analytical evaluation.
*IEEE Trans Speech Audio Process*1999, 7(3):241-252. 10.1109/89.759030View ArticleGoogle Scholar - Dahl M, Claesson I: Acoustic noise and echo canceling with microphone array.
*IEEE Trans Veh Technol*1999, 48(5):1518-1526. 10.1109/25.790527View ArticleGoogle Scholar - Nordholm S, Claesson I, Grbić N, Brandstein M, Ward D: Optimal and adaptive microphone arrays for speech input in automobiles. In
*Microphone Arrays*. Springer Verlag, Berlin Heidelberg New York; 2001:307-330.View ArticleGoogle Scholar - Yiu KFC, Grbić N, Teo KL, Nordholm S: A new design method for broadband microphone arrays for speech input in automobiles.
*IEEE Signal Process Lett*2002, 9(7):222-224.View ArticleGoogle Scholar - Weiss S, Proudler IK:
*Comparing efficient broadband beamforming architectures and their performance trade-offs*.*Volume 1*. International Conference on Digital Signal Processing, Santorini, Greece; 2002:417-423.Google Scholar - Zhang Y, Milstein L, Siegel P:
*The tradeoff between diversity gain and interference suppression via beamforming in a CDMA system*.*Volume II*. Proceedings of the 2003 IEEE conference on Military communications, Boston, USA; 2003:1132-1137.Google Scholar - Lanne M, Lundgren A, Viberg M:
*Optimized beamforming calibration in the presence of array imperfections*.*Volume II*. Proceedings of the ICASSP, Honolulu, Hawaii, USA; 2007:973-976.Google Scholar - Guenther D, Walker W: Robust finite impulse response beamforming applied to medical ultrasound.
*IEEE Trans Ultrason Ferroelectron Freq Control*2009, 56: 1168-1188.View ArticleGoogle Scholar - Liu YP, Wan Q: Total difference based partial search LCMV beamformer.
*Progress Electromag Res Lett*2010, 18: 97-103.View ArticleGoogle Scholar - Sharma N, Buck J, Simmons J: Trading detection for resolution in active sonar receivers.
*J Acoustical Soc Am*2011, 130: 1272-1281. 10.1121/1.3614547View ArticleGoogle Scholar - Gerven SV, Compernolle DV, Wauters P, Verstraeten W, Eneman K, Delaet K:
*Multiple beam broadband beamforming: filter design and real-time implementation*. IEEE ASSP Workshop on Applications of Signal Processing to Audio and Acoustics, New York; 1995:173-176.Google Scholar - Srinivasan S, Pandharipande A, Janse K: Beamforming under quantization errors in wireless binaural hearing aids.
*EURASIP J Audio Speech Music Process*2008, Article ID 824797.Google Scholar - Yiu KFC, Ho CH, Grbric N, Lu Y, Shi XX, Luk W:
*Reconfigurable acceleration of microphone array algorithms for speech enhancement*. 19th IEEE International Conference on Application-specific Systems, Architectures and Processors (ASAP 2008). Leuven, Belgium; 2008:203-208.Google Scholar - Lim YC, Parker SR: FIR filter design over a discrete powers-of-two coefficient space.
*IEEE Trans Acoust Speech Signal Process*1983, 31: 583-591. 10.1109/TASSP.1983.1164085View ArticleGoogle Scholar - Benvenuto N, Marchesi M, Uncini A: Applications of simulated annealing for the design of special digital filters.
*IEEE Trans Signal Process*1992, 40: 323-332. 10.1109/78.124942View ArticleGoogle Scholar - Li DN, Lim YC, Lian Y, Song JJ: A polynomial-time algorithm for designing FIR filters with power-of-two coefficients.
*IEEE Trans Signal Process*2002, 50: 1935-1941. 10.1109/TSP.2002.800385View ArticleGoogle Scholar - Feng ZG, Teo KL: A discrete filled function method for the design of FIR filters with signed-powers-of-two coefficients.
*IEEE Trans Signal Process*2008, 56: 134-139.MathSciNetView ArticleGoogle Scholar - Yu YJ, Lim YC: A novel genetic algorithm for the design of a signed power-of-two coefficient quadrature mirror filter lattice filter bank.
*Circ Syst Signal Process*2002, 21(3):263-276. 10.1007/s00034-004-7043-zView ArticleGoogle Scholar - Lim YC, Yu YJ: A width-recursive depth-first tree search approach for the design of discrete coefficient perfect reconstruction lattice filter bank.
*IEEE Trans Circ Syst II*2003, 50(6):257-266. 10.1109/TCSII.2003.812912View ArticleGoogle Scholar - Lim YC, Yang R, Li DN, Song JJ: Signed power-of-two term allocation scheme for the design of digital filters.
*IEEE Trans Circ Syst II*1999, 46(5):577-584. 10.1109/82.769806View ArticleGoogle Scholar - Ge RP: A filled function method for finding a global minimizer of a function of several variables.
*Math Program*1990, 46: 191-204. 10.1007/BF01585737View ArticleGoogle Scholar - Yiu KFC, Liu YQ, Teo KL: A hybrid descent method for Global optimization.
*J global Optim*2004, 28(2):229-238.MathSciNetView ArticleGoogle Scholar - Ng CK, Zhang LS, Li D, Tian WW: Discrete filled function method for discrete global optimization.
*Comput Optim Appl*2005, 31: 87-115. 10.1007/s10589-005-0985-7MathSciNetView ArticleGoogle Scholar - Fletcher R:
*Practical Methods of Optimization*. John Wiley and Sons, Great Britain; 1987.Google Scholar

## Copyright

This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.