1 Introduction

Most of the high-resolution direction-of-arrival (DOA) estimation methods, e.g., MUSIC [1], ESPRIT [2] and the recently interest-attracting sparsity-inducing ones [38], are computationally very expensive, and much effort has been devoted to reduce the computational complexity of them [9, 10]. But some of the computation demanding processes, such as the spatial searching one for refined DOA estimation, are seldom skipped over completely, and the computational loads of the methods are still too heavy to meet practical requirements.

As the number of unknown directions in the 2-D direction-finding problem doubles that in the 1-D case, it is even more difficult to reduce the computational load in the 2-D direction-finding methods. Most of the existing 2-D direction-finding methods contain a 2-D spatial searching process [1113], which sharply increases the computational load. Thus the L-shaped arrays consisting of two orthogonal uniform linear array (ULA) arms have been introduced and are widely used for 2-D direction finding [1416]. Estimating the azimuths and elevations simultaneous with the L-shaped ULA may still be computationally demanding [14]; thus, most of successive researches resort to two-step techniques, i.e., obtaining some direction-related variables first and then estimating the directions based on the variables [15, 16]. Among the latter methods, the numeric ones are computationally cheaper [16], which is our major concern in this paper, and we concentrate mainly on further reducing the computational load of these methods. Another problem that should be highlighted in 2-D direction estimation is pairing azimuth and elevation estimates correctly when more than one signal impinges simultaneously [17, 18]. In previous studies, the cross-correlation of the two subarray outputs has been exploited to obtain new azimuth–elevation relating variables and realize azimuth–elevation pairing [1921], with a reduced but still heavy computational load.

This paper proposes a computationally efficient 2-D direction-finding method using an L-shaped array. This method first estimates the azimuths and elevations of the incident signals independently with the two array arms, and then two optional methods are proposed for azimuth–elevation pairing, with one exploiting the cross-correlation of the two subarray outputs and the other using the signal power estimates. Simulation results are finally carried out to demonstrate the predominance of the proposed methods in direction estimation and azimuth–elevation pairing performance.

2 Problem formulation

Assume that K independent signals with powers \(\sigma _1^2 ,\ldots ,\sigma _K^2 \) impinge onto the array from azimuths \(\bar{{\varvec{{\varPhi }} }}=\left[ {\bar{{\phi }}_1 ,\bar{{\phi }}_2 ,\ldots ,\bar{{\phi }}_K } \right] \) and elevations \(\varvec{{\varTheta }} =\left[ {\theta _1 ,\theta _2 ,\ldots ,\theta _K } \right] \), and the incident directions depart from the X axis by \(\varvec{{\varPhi }} =\left[ {\phi _1 ,\phi _2 ,\ldots ,\phi _K } \right] \), then the following relationships hold between the three angle sets,

$$\begin{aligned} \cos \phi _k =\sin \theta _k \cos \bar{{\phi }}_k \qquad k=1,2,\ldots ,K. \end{aligned}$$
(1)

The sketch map of the L-shaped array for 2-D direction finding is shown in Fig. 1, where the absence or presence of the element 0 is determined according to practical requirements.

Fig. 1
figure 1

Sketch map of the L-shaped array

Assume that the wavelength of the incident signals is \(\lambda \), the two uniform array arms are both interspaced by d, then the output of the Z subarray is

$$\begin{aligned} {{\varvec{Z}}}\left( t \right) ={{\varvec{A}}}\left( \varvec{{\varTheta }} \right) {{\varvec{s}}}\left( t \right) +{{\varvec{n}}}_{{\varvec{Z}}} \left( t \right) \end{aligned}$$
(2)

where \({{\varvec{A}}}\left( \varvec{{\varTheta }} \right) =\left[ {{{\varvec{a}}}\left( {\theta _1 } \right) ,{{\varvec{a}}}\left( {\theta _2 } \right) ,\ldots ,{{\varvec{a}}}\left( {\theta _K } \right) } \right] \), with \({{\varvec{a}}}\left( {\theta _k } \right) =\left[ {1,e^{-j2\pi {d\cos \theta _k }/\lambda },\ldots ,e^{-j2\pi {Md\cos \theta _k }/\lambda }} \right] ^{T}\) being the array responding vector according to the \(k\hbox { th}\) incident signal, \(\left[ {\bullet } \right] ^{T}\) is the transpose operator and \(s\left( t \right) =\left[ {s_1 \left( t \right) ,s_2 \left( t \right) ,\ldots ,}{s_K \left( t \right) } \right] ^{T}\) is the waveform vector of the K signals at time t, \({{\varvec{n}}}_{{\varvec{Z}}} \left( t \right) =\left[ {n_0 \left( t \right) ,n_1 \left( t \right) ,\ldots ,n_M \left( t \right) } \right] ^{T}\) is the additive white Gaussian noise with power \(\sigma _0^2 \). Various existing 1-D direction-finding methods can be used to estimate the elevations, denoted by \(\hat{{\varvec{{\varTheta }} }}=\left[ {\hat{{\theta }}_1 ,\ldots ,\hat{{\theta }}_K } \right] \), of the incident signals from \({{\varvec{Z}}}\left( t \right) \).

The X subarray output is given by

$$\begin{aligned} {{\varvec{X}}}\left( t \right) ={{\varvec{A}}}\left( {\varvec{{\varTheta }} ,\bar{{\varvec{{\varPhi }} }}} \right) {{\varvec{s}}}\left( t \right) +{{\varvec{n}}}_{{\varvec{X}}} \left( t \right) \end{aligned}$$
(3)

where \({{\varvec{A}}}\left( {\varvec{{\varTheta }} ,\bar{{\varvec{{\varPhi }} }}} \right) =\left[ {{{\varvec{a}}}\left( {\theta _1 ,\bar{{\phi }}_1 } \right) ,{{\varvec{a}}}\left( {\theta _2 ,\bar{{\phi }}_2 } \right) ,\ldots ,{{\varvec{a}}}\left( {\theta _K ,\bar{{\phi }}_K } \right) } \right] \), \({{\varvec{a}}}\left( {\theta _k ,\bar{{\phi }}_k } \right) =\left[ {1,e^{-j2\pi {d\sin \theta _1 \cos \bar{{\phi }}_1 }/\lambda },\ldots ,}{e^{-j2\pi M{d\sin \theta _K \cos \bar{{\phi }}_K }/\lambda }} \right] ^{T}\), and \({{{\varvec{n}}}}_{{\varvec{X}}} \left( t \right) =\left[ {{n}'_0 \left( t \right) ,{n}'_1 \left( t \right) ,\ldots ,}{{n}'_M \left( t \right) } \right] ^{T}\) is the additive noise. Then the azimuth estimates, denoted by \(\hat{{\bar{{\phi }}}}_1 ,\hat{{\bar{{\phi }}}}_2 ,\ldots ,\hat{{\bar{{\phi }}}}_K \), can be obtained similarly as the elevation ones.

When more than one signal impinges onto the array simultaneously, the azimuth–elevation pairing problem arises. Many methods have been developed to solve this problem, and the one having the state-of-the-art performance exploits the cross-correlation of the X and Z subarray outputs [19].

3 Azimuth/elevation estimation and pairing

In this section, the azimuths and elevations of the incident signals are estimated with the two array arms independently at first and then paired via two optional methods. Similar to [19], we assume in this paper that there is no common antenna between the two arms of the L-shaped array, i.e., the antenna element indexed by 0 is absent in Fig. 1.

3.1 Azimuth and elevation estimation

The output of the X subarray can be rewritten in a different form from (3) as

$$\begin{aligned} {{\varvec{X}}}\left( t \right) ={{\varvec{A}}}\left( \varvec{{\varPhi }} \right) {{{\varvec{s}}}}\left( t \right) +{{\varvec{n}}}_{{\varvec{X}}} \left( t \right) \end{aligned}$$
(4)

where \({{\varvec{A}}}\left( \varvec{{\varPhi }} \right) =\left[ {{{\varvec{a}}}\left( {\phi _1 } \right) ,{{\varvec{a}}}\left( {\phi _2 } \right) ,\ldots ,{{\varvec{a}}}\left( {\phi _K } \right) } \right] \) and \({{\varvec{a}}}\left( {\phi _k } \right) =\left[ {1,e^{-j2\pi {d\cos \phi _k }/\lambda },\ldots ,e^{-j2\pi {\left( {M-1} \right) d\cos \phi _k }/\lambda }} \right] ^{T}\). As the incident signals are independent to each other, the covariance of \({{\varvec{X}}}\left( t \right) \) is given by \({{\varvec{R}}}_{{\varvec{X}}} ={{\varvec{A}}}\left( \varvec{{\varPhi }} \right) \varvec{{\varLambda }} _{{\varvec{s}}} {{\varvec{A}}}^{H}\left( \varvec{{\varPhi }} \right) +\sigma _0^2 {{{\varvec{I}}}}\), where \(\left( \bullet \right) ^{H}\) is the complex transpose operator and \(\varvec{{\varLambda }} _{{\varvec{s}}} \) is a diagonal matrix made up by the signal powers, i.e., \(\varvec{{\varLambda }} _{{\varvec{s}}} =diag\left\{ {\left[ {\sigma _1^2 ,\sigma _2^2 ,\ldots ,\sigma _K^2 } \right] } \right\} \). The \(\left( {p,q} \right) \hbox {th}\) element of the covariance matrix is

$$\begin{aligned} {{\varvec{R}}}_{{\varvec{X}}} \left( {p,q} \right)= & {} \sum _{k=1}^K {\sigma _k^2 e^{-j2\pi {\left( {p-1} \right) d\cos \phi _k }/\lambda }e^{j2\pi {\left( {q-1} \right) d\cos \phi _k }/\lambda }}\nonumber \\&+\, \sigma _0^2 \delta \left( {p-q} \right) \nonumber \\= & {} \sum _{k=1}^K {\sigma _k^2 e^{-j2\pi {\left( {p-q} \right) d\cos \phi _k }/\lambda }} +\sigma _0^2 \delta \left( {p-q} \right) .\nonumber \\ \end{aligned}$$
(5)

The matrix elements along the \(\left( {-m} \right) \hbox {th} \left( m=1,2,\ldots ,M-1 \right) \) diagonal share the same form as \({{\varvec{R}}}_{{\varvec{X}}} \left( {m+p,p} \right) =\sum \nolimits _{k=1}^K {\sigma _k^2 e^{-j2\pi {md\cos \phi _k }/\lambda }}\). Take the average of the matrix elements along the \(\left( {-m} \right) \hbox {th}\) diagonal and denote it by \(r_m \), then

$$\begin{aligned} r_m \buildrel {{\varDelta }} \over = \frac{1}{M-m}\sum _{p=1}^{M-m} {{{\varvec{R}}}_{{\varvec{X}}}\! \left( {m+p,p} \right) } \!=\!\sum _{k=1}^K {\sigma _k^2 e^{-j2\pi {md\cos \phi _k }/\lambda }} \!. \end{aligned}$$
(6)

In practical applications, the covariance matrix can only be obtained from finite samplings (denoted their number by N), i.e., \(\hat{{{{\varvec{R}}}}}_{{\varvec{X}}} =\frac{1}{N}\sum \nolimits _{n=1}^N {{{\varvec{X}}}\left( {t_n } \right) {{\varvec{X}}}^{H}\left( {t_n } \right) } \). Averaging the matrix elements along the -1 to \(-\left( {M-1} \right) \) diagonals yields a group of new measurements. Denote them by \(\hat{{r}}_1 ,\hat{{r}}_2 ,\ldots ,\hat{{r}}_{M-1} \), i.e.,

$$\begin{aligned} \hat{{r}}_m \buildrel {{\varDelta }} \over = \frac{1}{M-m}\sum _{p=1}^{M-p} {\hat{{{{\varvec{R}}}}}_{{\varvec{X}}} \left( {m+p,p} \right) } . \end{aligned}$$
(7)

According to (6), a relationship between the measurements \(r_1 ,r_2 ,\ldots ,r_{M-1} \) and the source directions can be established via an equation \(f_1 \left( \alpha \right) \) whose roots are \(\beta _k =e^{-j2\pi {d\cos \phi _k }/\lambda }\left( {k=1,2,\ldots ,K} \right) \) [22], i.e.,

$$\begin{aligned} f_1 \left( \alpha \right)= & {} \prod _{k=1}^K {\left( {\alpha -\beta _k } \right) }\nonumber \\= & {} \alpha ^{K}+h_{K-1} \alpha ^{K-1}+\cdots +h_1 \alpha +h_0 =0. \end{aligned}$$
(8)

Setting \(\alpha =\beta _k \) in \(f_1 \left( \alpha \right) \), and multiplying both sides by \(\sigma _k^2 \beta _k^J \) for \(J=1,2,\ldots ,M-K-1\) yields K equalities,

$$\begin{aligned}&\sigma _k^2 \beta _k^{K+J} +h_{K-1} \sigma _k^2 \beta _k^{K+J-1} +\, \cdots + h_1 \sigma _k^2 \beta _k^{J+1} \nonumber \\&\quad +\,h_0 \sigma _k^2 \beta _k^J =0\quad k=1,2,\ldots ,K. \end{aligned}$$
(9)

Adding up the K equalities in (9) yields

$$\begin{aligned}&\sum _{k=1}^K {\sigma _k^2 \beta _k^{K+J} } +h_{K-1} \sum _{k=1}^K {\sigma _k^2 \beta _k^{K+J-1} } +\cdots \nonumber \\&\quad +\, h_1 \sum _{k=1}^K {\sigma _k^2 \beta _k^{J+1} } +h_0 \sum _{k=1}^K {\sigma _k^2 \beta _k^J } =0. \end{aligned}$$
(10)

Combining (6) and (10) obtains a series of equalities for \(r_1 ,r_2 ,\ldots ,r_{M-1} \), i.e.,

$$\begin{aligned}&r_{K+J} +h_{K-1} r_{K+J-1} +\cdots +h_1 r_{J+1} +h_0 r_J =0 \nonumber \\&\quad J=1,2,\ldots ,M-K-1. \end{aligned}$$
(11)

whose matrix form is

$$\begin{aligned} \left[ {{\begin{array}{c@{\quad }c@{\quad }c@{\quad }cc} {r_1 }&{} {r_2 }&{} \cdots &{} {r_K } \\ {r_2 }&{} {r_3 }&{} \cdots &{} {r_{K+1} } \\ \vdots &{} \vdots &{} \ddots &{} \vdots \\ {r_{M-K-1} }&{} {r_{M-K} }&{} \cdots &{} {r_{M-2} } \\ \end{array} }} \right] \left[ {{\begin{array}{c} {h_0 } \\ {h_1 } \\ \vdots \\ {h_{K-1} } \\ \end{array} }} \right] =-\left[ {{\begin{array}{c} {r_{K+1} } \\ {r_{K+2} } \\ \vdots \\ {r_{M-1} } \\ \end{array} }} \right] . \end{aligned}$$
(12)

In practice, the coefficients of equation \(f_1 \left( \alpha \right) \), i.e., \(h_0 ,h_1 ,\ldots ,h_{K-1} \), can be estimated by solving the following least squares problem, i.e.,

$$\begin{aligned} \begin{array}{l} G_1 \left( {{{\varvec{W}}}_1 ,{{\varvec{h}}}} \right) \\ =\left\| {{{\varvec{W}}}_1 \left( {\left[ {{\begin{array}{c@{\quad }c@{\quad }cl} {\hat{{r}}_1 }&{} {\hat{{r}}_2 }&{} \cdots &{} {\hat{{r}}_K } \\ {\hat{{r}}_2 }&{} {\hat{{r}}_3 }&{} \cdots &{} {\hat{{r}}_{K+1} } \\ \vdots &{} \vdots &{} \ddots &{} \vdots \\ {\hat{{r}}_{M-K-1} }&{} {\hat{{r}}_{M-K} }&{} \cdots &{} {\hat{{r}}_{M-2} } \\ \end{array} }} \right] \left[ {{\begin{array}{c} {h_0 } \\ {h_1 } \\ \vdots \\ {h_{K-1} } \\ \end{array} }} \right] +\left[ {{\begin{array}{c} {\hat{{r}}_{K+1} } \\ {\hat{{r}}_{K+2} } \\ \vdots \\ {\hat{{r}}_{M-1} } \\ \end{array} }} \right] } \right) } \right\| _2^2 \\ \buildrel {{\varDelta }} \over = \left\| {{{\varvec{W}}}_1 \left( {\hat{{\varvec{{\varGamma }} }}_1 {{\varvec{h}}}+{{{\varvec{b}}}}_1 } \right) } \right\| _2^2 , \\ \end{array} \end{aligned}$$
(13)

where \(\hat{{\varvec{{\varGamma }} }}_1 =\left[ {{\begin{array}{l@{\quad }l@{\quad }l@{\quad }l} {\hat{{r}}_1 }&{} {\hat{{r}}_2 }&{} \cdots &{} {\hat{{r}}_K } \\ {\hat{{r}}_2 }&{} {\hat{{r}}_3 }&{} \cdots &{} {\hat{{r}}_{K+1} } \\ \vdots &{} \vdots &{} \ddots &{} \vdots \\ {\hat{{r}}_{M-K-1} }&{} {\hat{{r}}_{M-K} }&{} \cdots &{} {\hat{{r}}_{M-2} } \\ \end{array} }} \right] \), \({{\varvec{h}}}=\left[ {h_0 ,h_1 ,}{\ldots ,h_{K-1} } \right] ^{T}\) and \({{\varvec{b}}}_1 =\left[ {\hat{{r}}_{K+1} ,\hat{{r}}_{K+2} ,\ldots ,\hat{{r}}_{M-1} } \right] ^{T}\), and a diagonal weighting matrix \({{\varvec{W}}}_1 \) is introduced to make up for the estimation precision difference of the measurements.

Since each element in \(\hat{{{{\varvec{R}}}}}_{{\varvec{X}}} \) is estimated from the same number of measurements, and \(\hat{{r}}_1 ,\hat{{r}}_2 ,\ldots ,\hat{{r}}_{M-1} \) are then obtained by diagonally averaging \(M-1,M-2,\ldots ,1\) elements of \(\hat{{{{\varvec{R}}}}}_{{\varvec{X}}} \), the variances of \(\hat{{r}}_1 ,\hat{{r}}_2 ,\ldots ,\hat{{r}}_{M-1} \) can be demonstrated to satisfy a ratio of \(1\big /{\left( {M-1} \right) }:1\big /{\left( {M-2} \right) }:\cdots :1\) statistically. So we set the diagonal weighting matrix approximately according to the first column of \(\hat{{\varvec{{\varGamma }} }}_1 \) as

$$\begin{aligned} {{\varvec{W}}}_1 =\left( {1\big /{\sum _{k=K+1}^{M-1} k }} \right) \times \, diag\left\{ {\left[ {M-1,M-2,\ldots ,K+1} \right] } \right\} \!, \end{aligned}$$
(14)

where \(diag\left\{ {\bullet } \right\} \) denotes a diagonal matrix with its diagonal elements forming the given vector. Thus the least squares solution to \({{\varvec{h}}}=\left[ {h_0 ,h_1 ,\ldots ,h_{K-1} } \right] ^{T}\) is given accordingly as

$$\begin{aligned} \hat{{{{\varvec{h}}}}}=-\left( {{{\varvec{W}}}_1 \hat{{\varvec{{\varGamma }} }}_1 } \right) ^{\dagger } {{\varvec{W}}}_1 {{\varvec{b}}}_1 , \end{aligned}$$
(15)

where \(\left( \bullet \right) ^{\dagger }\) stands for pseudo-inverse.

Substituting the equation coefficient estimates into (8) obtains the DOA-dependent equation \(\hat{{f}}_1 \left( \alpha \right) \),

$$\begin{aligned} \hat{{f}}_1 \left( \alpha \right) =\alpha ^{K}+\hat{{h}}_{K-1} \alpha ^{K-1}+\cdots +\hat{{h}}_1 \alpha +\hat{{h}}_0 =0. \end{aligned}$$
(16)

Solving the equation and denoting its K roots by \(\hat{{\beta }}_k \quad \left( {k=1,}{2,\ldots ,K} \right) \), then the angles of the incident signals from the X axis are given by

$$\begin{aligned} \hat{{\phi }}_k =\cos ^{-1}\left( {-{\lambda \times \hbox {angle}\left( {\hat{{\beta }}_k } \right) }/{2\pi d}} \right) \qquad k=1,2,\ldots ,K. \end{aligned}$$
(17)

Similarly, the elevations of the sources can also be estimated based on the output of the Z subarray. Detailed derivations of the estimation process are omitted here for brevity, and the estimates are denoted by \(\hat{{\theta }}_k \left( {k=1,2,\ldots ,K} \right) \).

3.2 Cross-correlation-based azimuth–elevation pairing

The signal directions from the X and Z axis, which are estimated independently, should be paired when more than one signal impinges simultaneously. In this part, the idea of equation establishing and rooting used for 1-D direction estimation in this paper is extended for azimuth–elevation pairing by exploiting the cross-correlation of the two subarray outputs.

The cross-correlation of the Z and X subarray outputs is given by

$$\begin{aligned} {{\varvec{R}}}_{{{\varvec{ZX}}}} =E\left\{ {{{\varvec{Z}}}\left( t \right) {{\varvec{X}}}^{H}\left( t \right) } \right\} ={{\varvec{A}}}\left( \varvec{{\varTheta }} \right) \varvec{{\varLambda }} _{{\varvec{s}}} {{\varvec{A}}}^{H}\left( \varvec{{\varPhi }} \right) \end{aligned}$$
(18)

where \({{\varvec{A}}}\left( \varvec{{\varTheta }} \right) \), \(\varvec{{\varLambda }} _{{\varvec{s}}} \) and \({{\varvec{A}}}\left( \varvec{{\varPhi }} \right) \) are defined identically as are stated above. As the X and Z subarrays do not share any antenna, the perturbations of any two elements of \({{\varvec{R}}}_{{\varvec{ZX}}} \) are independent of each other, and the M main diagonal elements of \({{\varvec{R}}}_{{\varvec{ZX}}} \) form an azimuth–elevation relating vector \({{\varvec{r}}}_{{{\varvec{ZX}}}} \) as follows:

$$\begin{aligned} {{\varvec{r}}}_{{{\varvec{ZX}}}}= & {} \left[ {{{\varvec{R}}}_{{{\varvec{ZX}}}} \left( {1,1} \right) ,{{\varvec{R}}}_{{{\varvec{ZX}}}} \left( {2,2} \right) ,\ldots ,{{\varvec{R}}}_{{{\varvec{ZX}}}} \left( {M,M} \right) } \right] ^{T} \nonumber \\= & {} \left[ \sum _{k=1}^K {\sigma _k^2 } ,\sum _{k=1}^K {\sigma _k^2 e^{-j2\pi {d\left( {\cos \theta _k -\cos \phi _k } \right) }/\lambda }} ,\ldots ,\nonumber \right. \\&\left. \sum _{k=1}^K {\sigma _k^2 e^{-j2\pi {\left( {M-1} \right) d\left( {\cos \theta _k -\cos \phi _k } \right) }/\lambda }} \right] ^{T}. \end{aligned}$$
(19)

Denote \(\xi _k =e^{-j2\pi {d\left( {\cos \theta _k -\cos \phi _k } \right) }/\lambda }\), and establish an equation \(f_2 \left( \alpha \right) \) with roots \(\xi _k \left( {k=1,2,\ldots ,K} \right) \), i.e.,

$$\begin{aligned} f_2 \left( \alpha \right) =\prod _{k=1}^K {\left( {\alpha -\xi _k } \right) } =\alpha ^{K}+\rho _{K-1} \alpha ^{K-1}+\cdots +\rho _1 \alpha +\rho _0 =0. \end{aligned}$$
(20)

Then \(\varvec{\rho } =\left[ {\rho _0 ,\rho _1 ,\ldots ,\rho _{K-1} } \right] ^{T}\) can be estimated by minimizing \(G_2 \left( {{{\varvec{W}}}_2 ,\rho } \right) \),

$$\begin{aligned}&G_2 \left( {{{\varvec{W}}}_2 ,\rho } \right) \nonumber \\&\quad =\left\| {{\varvec{W}}}_2 \left( \left[ {{\begin{array}{c@{\quad }c@{\quad }c@{\quad }c} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( 1 \right) }&{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( 2 \right) }&{} \cdots &{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( K \right) } \\ {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( 2 \right) }&{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( 3 \right) }&{} \cdots &{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {K+1} \right) } \\ \vdots &{} \vdots &{} \ddots &{} \vdots \\ {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {M-K} \right) }&{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {M-K+1} \right) }&{} \cdots &{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {M-1} \right) } \\ \end{array} }} \right] \right. \right. \nonumber \\&\qquad \left. \left. \times \left[ {{\begin{array}{c} {\rho _0 } \\ {\rho _1 } \\ \vdots \\ {\rho _{K-1} } \\ \end{array} }} \right] +\left[ {{\begin{array}{c} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {K+1} \right) } \\ {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {K+2} \right) } \\ \vdots \\ {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( M \right) } \\ \end{array} }} \right] \right) \right\| _2^2 . \end{aligned}$$
(21)

The elements of \({\hat{{\varvec{r}}}}_{{{\varvec{ZX}}}} \) are obtained in the same way and should have the same variance; the rows in the bracket in (21) should be weighted equally, i.e., \({{\varvec{W}}}_2 ={{\varvec{I}}}_{M-K} \). The equation coefficients \(\varvec{\rho } =\left[ {\rho _0 ,\rho _1 ,\ldots ,\rho _{K-1} } \right] ^{T}\) can be estimated similarly as that in (15) by substituting \({{\varvec{W}}}_1 ={{\varvec{I}}}_{M-K} \), and

$$\begin{aligned} \hat{{\rho }}=-\hat{{\varvec{{\varGamma }} }}_2^\dagger {{\varvec{b}}}_2 , \end{aligned}$$
(22)

where \(\hat{{\varvec{{\varGamma }} }}_2 =\left[ {{\begin{array}{c@{\quad }c@{\quad }c@{\quad }c} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( 1 \right) }&{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( 2 \right) }&{} \cdots &{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( K \right) } \\ {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( 2 \right) }&{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( 3\right) }&{} \cdots &{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {K+1} \right) } \\ \vdots &{} \vdots &{} \ddots &{} \vdots \\ {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {M-K} \right) }&{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {M-K+1} \right) }&{} \cdots &{} {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {M-1} \right) } \\ \end{array} }} \right] \), \({{\varvec{b}}}_2 =\left[ {{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {K+1} \right) ,{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( {K+2} \right) ,\ldots ,{\hat{{\varvec{r}}}}_{{\varvec{ZX}}} \left( M \right) } \right] ^{T}\). Substituting \(\hat{{\rho }}\) into (20) yields \(\hat{{f}}_2 \left( \alpha \right) =\alpha ^{K}+\hat{{\rho }}_{K-1} \alpha ^{K-1}+\cdots +\hat{{\rho }}_1 \alpha +\hat{{\rho }}_0 =0\). Solving this equation obtains the estimates of the azimuth–elevation relating variables \(\xi _k \) for \(k=1,2,\ldots ,K\), which are denoted by \(\hat{{\xi }}_k \).

Finally, the pairing of the azimuths and elevations can be realized by minimizing the distance between the azimuth–elevation relating variables and the azimuth–elevation pair candidates, i.e.,

$$\begin{aligned}&\left\{ {\left( {\hat{{\theta }}_{p_k } ,\hat{{\phi }}_{q_k } } \right) } \right\} _{k=1}^K =\arg \mathop {\min }\limits _{p_k ,q_k } \left\{ \sum _{k=1}^K \left| \hat{{\xi }}_k\right. \right. \nonumber \\&\quad \left. \left. \quad -\left( e^{-j2\pi {d\left( {\cos \hat{{\theta }}_{p_k } -\cos \hat{{\phi }}_{q_k } } \right) }\big / \lambda } \right) \right| \right\} \end{aligned}$$
(23)

where \(\left( {p_k } \right) _{k=1}^K ,\left( {q_k } \right) _{k=1}^K \) are two permutations of the number set \(1,2,\ldots ,K\) and are paired without repetition. Denote the paired estimates by \(\left( {\hat{{\theta }}_{p_k } ,\hat{{\phi }}_{q_k } } \right) \left( {k=1,2,\ldots ,K} \right) \), then the azimuths and elevations of the K incident signals can be calculated according to \(\left( {\hat{{\theta }}_{p_k } ,\cos ^{-1}\left( {{\cos \hat{{\phi }}_{q_k } }\big /{\sin \hat{{\theta }}_{p_k } }} \right) } \right) \quad \left( {k=1,2,\ldots ,K} \right) \) [18].

3.3 Signal power-based azimuth–elevation pairing

In this part, we extend our direction-finding method stated above to estimate the signal powers jointly and then use the power estimates to pair the azimuth and elevation estimates.

Equation (6) implies that the following equation holds for the signal powers \(\sigma _1^2 ,\sigma _2^2 ,\ldots ,\sigma _K^2 \),

$$\begin{aligned}&\left[ {{\begin{array}{c@{\quad }c@{\quad }c@{\quad }c} {e^{-j2\pi {d\cos \phi _1 }/\lambda }}&{} {e^{-j2\pi {d\cos \phi _2 }/\lambda }}&{} \cdots &{} {e^{-j2\pi {d\cos \phi _K }/\lambda }} \\ {e^{-j2\pi {2d\cos \phi _1 }/\lambda }}&{} {e^{-j2\pi {2d\cos \phi _2 }/\lambda }}&{} \cdots &{} {e^{-j2\pi {2d\cos \phi _K }/\lambda }} \\ \vdots &{} \vdots &{} \ddots &{} \vdots \\ {e^{-j2\pi {\left( {M-1} \right) d\cos \phi _1 }/\lambda }}&{} {e^{-j2\pi {\left( {M-1} \right) d\cos \phi _2 }/\lambda }}&{} \cdots &{} {e^{-j2\pi {\left( {M-1} \right) d\cos \phi _K }/\lambda }} \\ \end{array} }} \right] \nonumber \\&\quad \times \left[ {{\begin{array}{l} {\sigma _1^2 } \\ {\sigma _2^2 } \\ \vdots \\ {\sigma _K^2 } \\ \end{array} }} \right] =\left[ {{\begin{array}{l} {r_1 } \\ {r_2 } \\ \vdots \\ {r_{M-1} } \\ \end{array} }} \right] . \end{aligned}$$
(24)

Therefore, after estimating the angles \(\hat{{\varvec{{\varPhi }} }}\), the signal powers can be estimated from the X subarray output by minimizing the following function,

$$\begin{aligned}&H_1 \left( {{{{\varvec{W}}}}'_1 ,\left. {\sigma _k^2 } \right| _{k=1}^K } \right) =\left\| {{{\varvec{W}}}}'_1 \left( \left[ {{\begin{array}{c@{\quad }c@{\quad }c@{\quad }c} {e^{-j2\pi {d\cos \hat{{\phi }}_1 }/\lambda }}&{} {e^{-j2\pi {d\cos \hat{{\phi }}_2 }/\lambda }}&{} \cdots &{} {e^{-j2\pi {d\cos \hat{{\phi }}_K }/\lambda }} \\ {e^{-j2\pi {2d\cos \hat{{\phi }}_1 }/\lambda }}&{} {e^{-j2\pi {2d\cos \hat{{\phi }}_2 }/\lambda }}&{} \cdots &{} {e^{-j2\pi {2d\cos \hat{{\phi }}_K }/\lambda }} \\ \vdots &{} \vdots &{} \ddots &{} \vdots \\ {e^{-j2\pi {\left( {M-1} \right) d\cos \hat{{\phi }}_1 }/\lambda }}&{} {e^{-j2\pi {\left( {M-1} \right) d\cos \hat{{\phi }}_2 }/\lambda }}&{} \cdots &{} {e^{-j2\pi {\left( {M-1} \right) d\cos \hat{{\phi }}_K }/\lambda }} \\ \end{array} }} \right] \left[ {{\begin{array}{c} {\sigma _1^2 } \\ {\sigma _2^2 } \\ \vdots \\ {\sigma _K^2 } \\ \end{array} }} \right] -\left[ {{\begin{array}{c} {\hat{{r}}_1 } \\ {\hat{{r}}_2 } \\ \vdots \\ {\hat{{r}}_{M-1} } \\ \end{array} }} \right] \right) \right\| _2^2\nonumber \\ \end{aligned}$$
(25)

where the diagonal weighting matrix \({{{\varvec{W}}}}'_1 \) is set to be \({{{\varvec{W}}}}'_1 =\left( {1\big /{\sum \limits _{k=1}^{M-1} k }} \right) \times \, diag\left\{ {\left[ {M-1,M-2,\ldots ,1} \right] } \right\} \) following similar considerations as \({{\varvec{W}}}_1 \) and \({{\varvec{W}}}_2 \).

Then the least squares estimates of the signal powers are given by

$$\begin{aligned} \left[ {\hat{{\sigma }}_1^2 ,\hat{{\sigma }}_2^2 ,\ldots ,\hat{{\sigma }}_K^2 } \right] ^{T}=\left( {{{{\varvec{W}}}}'_1 {\hat{{{{\varvec{A}}}}}}'_1 } \right) ^{\dagger }{{{\varvec{W}}}}'_1 \hat{{{{\varvec{r}}}}} \end{aligned}$$
(26)

where \({\hat{{{{\varvec{A}}}}}}'_1 =\) \({\left[ {{\begin{array}{cccc} {e^{-j2\pi {d\cos \hat{{\phi }}_1 }/\lambda }}&{} {e^{-j2\pi {d\cos \hat{{\phi }}_2 }/\lambda }}&{} \cdots &{} {e^{-j2\pi {d\cos \hat{{\phi }}_K }/\lambda }} \\ {e^{-j2\pi {2d\cos \hat{{\phi }}_1 }/\lambda }}&{} {e^{-j2\pi {2d\cos \hat{{\phi }}_2 }/\lambda }}&{} \cdots &{} {e^{-j2\pi {2d\cos \hat{{\phi }}_K }/\lambda }} \\ \vdots &{} \vdots &{} \ddots &{} \vdots \\ {e^{-j2\pi {\left( {M-1} \right) d\cos \hat{{\phi }}_1 }/\lambda }}&{} {e^{-j2\pi {\left( {M-1} \right) d\cos \hat{{\phi }}_2 }/\lambda }}&{} \cdots &{} {e^{-j2\pi {\left( {M-1} \right) d\cos \hat{{\phi }}_K }/\lambda }} \\ \end{array} }} \right] }\) and \(\hat{{{{\varvec{r}}}}}=\left[ {\hat{{r}}_1 ,\hat{{r}}_2 ,\ldots ,\hat{{r}}_{M-1} } \right] ^{T}\). In addition, the function in (25) pairs the source power estimates and the azimuth estimates automatically. Denote the azimuth-power pairs by \(\left\{ {\left( {\hat{{\phi }}_{p_1 } ,\hat{{\sigma }}_{p_1 }^2 } \right) ,\ldots ,\left( {\hat{{\phi }}_{p_K } ,\hat{{\sigma }}_{p_K }^2 } \right) } \right\} \), in which \(\hat{{\sigma }}_{p_1 }^2 \le \cdots \le \hat{{\sigma }}_{p_K }^2 \) and \(p_k \quad \left( {k=1,2,\ldots ,K} \right) \) is a permutation of the number set \(\left\{ {1,2,\ldots ,K} \right\} \).

Similarly, another group of estimates of the signal powers can also be obtained based on the elevation estimates \(\hat{{\varvec{{\varTheta }} }}=\left[ {\hat{{\theta }}_1 ,\hat{{\theta }}_2 ,\ldots ,\hat{{\theta }}_K } \right] \). The power estimates and the elevation estimates are also paired automatically as \(\left\{ {\left( {\hat{{\theta }}_{q_1 } ,\hat{{\sigma }}_{q_1 }^2 } \right) ,\ldots ,\left( {\hat{{\theta }}_{q_K } ,\hat{{\sigma }}_{q_K }^2 } \right) } \right\} \), in which \(q_k \left( {k=1,2,\ldots ,}\right. \left. {K} \right) \) is a permutation of the number set \(\left\{ {1,2,\ldots ,K} \right\} \) and \(\hat{{\sigma }}_{q_1 }^2 \le \cdots \le \hat{{\sigma }}_{q_K }^2 \). The angle estimates of \(\hat{{\varvec{{\varPhi }} }}=\left[ {\hat{{\phi }}_1 ,\hat{{\phi }}_2 ,\ldots ,\hat{{\phi }}_K } \right] \) and \(\hat{{\varvec{{\varTheta }} }}=\left[ {\hat{{\theta }}_1 ,\hat{{\theta }}_2 ,\ldots ,\hat{{\theta }}_K } \right] \) can then be paired according to the signal powers straightforwardly. Denoting the paired angles by \(\left\{ \left( {\hat{{\phi }}_{p_1 } ,\hat{{\theta }}_{q_1 } } \right) ,\ldots ,\left( \hat{{\phi }}_{p_K },\hat{{\theta }}_{q_K } \right) \right\} \), the 2-D directions of the incident signals are given by \(\left\{ \left( {\cos ^{-1}\left( {{\cos \hat{{\phi }}_{q_1 } }\big /{\sin \hat{{\theta }}_{p_1 } }} \right) ,\hat{{\theta }}_{p_1 } } \right) ,\ldots ,\left( {\cos ^{-1}}\left( {\cos \hat{{\phi }}_{q_K } }\big /{\sin \hat{{\theta }}_{p_K } } \right) ,\hat{{\theta }}_{p_K } \right) \right\} \).

4 Method selection for azimuth–elevation pairing

Two optional azimuth–elevation pairing methods have been proposed in this paper. The first one is based on a group of azimuth–elevation relating variables, but if the variables for different signals are much close to each other, i.e.,

$$\begin{aligned}&\left| {\xi _{k_1 } -\xi _{k_2 } } \right| \nonumber \\&\quad =\left| {e^{-j2\pi {d\left( {\cos \theta _{k_1 } -\cos \phi _{k_1 } } \right) }/\lambda }-e^{-j2\pi {d\left( {\cos \theta _{k_2 } -\cos \phi _{k_2 } } \right) }/\lambda }} \right| \nonumber \\&\quad \ll 1, \end{aligned}$$
(27)

where \(1\le k_1 <k_2 \le K\). The estimates of \(\xi _{k_1 } \) and \(\xi _{k_2 } \) may mix up, and the azimuth–elevation pairing becomes very difficult. The second method uses the signal power estimates to bridge the azimuth and elevation estimates, its performance depends heavily on the power diversity of the incident signals, and it is believed to behave poorly when the signals are close to each other in power, i.e., \({\left| {\sigma _{k_1 }^2 -\sigma _{k_2 }^2 } \right| }\big /{\sigma _{k_1 }^2 }\ll 1\).

That is to say, the two proposed azimuth–elevation pairing methods have different adaptability to special signal environments. If the azimuth–elevation relating variables \(\xi _k \) of different signals are close to each other, the first method may fail, and the signal powers should be exploited for azimuth–elevation pairing. But if the powers of the incident signals cannot be distinguished easily, the signal power-based method becomes ineffective, and one should resort to the cross-correlation-based pairing method.

5 Numerical examples

Simulations are carried out in this section to demonstrate the predominance of the proposed method in direction estimation and azimuth–elevation pairing. In the simulations, an L-shaped array consisting of two independent ULA arms along the X and Z axis is used, and each of the arms contains 10 omnidirectional antennas interspaced by half wavelength. Five hundred samples are collected in each simulation, and 1000 independent trials are carried out to obtain the statistical performance in each signal environment.

The azimuth and elevation estimating method in [16] and the pairing method in [19] are chosen for performance comparison. As the propagator method (PM) and the ESPRIT method are used in [16] and [19], respectively, we name this combined method PM+ESPRIT. In the one-source simulations, we compare the direction estimation performance of the proposed method with that of the method in [16], while in the multi-source cases, we focus on the probability of correct azimuth–elevation pairing of the proposed methods in comparison with PM+ESPRIT. For convenience, we denote the proposed method that uses the method of equation establishing and rooting all along by equation rooting and the method that estimates the directions using equations and pairs the azimuths and elevations via power bridging by power pairing. In addition, the angle pair \(\left( {\phi ,\theta } \right) \), instead of \(\left( {\bar{{\phi }},\theta } \right) \), is used to describe the 2-D direction of the incident signals and evaluate the simulation results without causing any confusion.

5.1 One-source case

Assume that the signal impinges from the direction of \(\left( {60^{\circ },70^{\circ }} \right) \), and the signal-to-noise ratio (SNR) varies from 0 to 20 dB. Figure 2 shows the root-mean-square error (RMSE) of the azimuth estimates and the relative error of the power estimates derived from the X subarray outputs.

Fig. 2
figure 2

Parameter estimation precision according to the X subarray for varying SNRs: a RMSE of the azimuth estimates; b relative error of the power estimates

It can be concluded from the results in Fig. 2 that the proposed method obtains more precise azimuth estimates than the method in [16] and is also able to obtain satisfying power estimates with a relative error <2.5 % when the SNR is above 0 dB. The elevation estimation process has also been carried out to obtain similar performance, and the results are omitted here for brevity.

5.2 Multi-source case

Assume that two independent signals impinge from directions \(\left( {60^{\circ },70^{\circ }} \right) \) and \(\left( {80^{\circ },85^{\circ }} \right) \), the amplitude of the second source is 0.8 times that of the first one, and the SNR of the first source varies from −10 to 20 dB. Figure 3 shows the correct pairing probability of the two proposed methods and the method PM \(+\)ESPRIT.

Fig. 3
figure 3

Correct pairing probability of the two proposed methods and PM \(+\) ESPRIT for varying SNRs

The simulation results shown in Fig. 3 imply that the method of power pairing has the highest correct pairing probability, while the methods of PM+ESPRIT and equation rooting predominate alternately in different signal environments, so we focus on the method of power pairing hereinafter and demonstrate its predominance over PM+ESPRIT. Extra experiments have also been carried out to demonstrate the satisfying performance of the proposed method in the environments of spatially adjacent signals.

The predominance of the proposed methods in computational efficiency over the existing PM+ESPRIT method has also been demonstrated in the simulations, which is indicated by the implementation time of them. The implementation speed of these methods is seldom affected by the factors such as signal SNR and angle separation, and in all of the environments considered in this subsection, PM+ESPRIT requires about 52.6 s to complete 1000 simulations, the proposed equation rooting method requires about 15.9 s, and power pairing requires about 13.2 s. That is to say, the proposed methods save approximately 70–75 % of the implementation time when compared with the existing method.

5.3 Failure of the azimuth–elevation pairing methods

The analysis in Sect. 4 indicates that the performance of the proposed pairing methods will greatly deteriorate in different environments. We carry out numerical examples here to demonstrate this conclusion.

Assume that two independent signals impinge onto the array instantaneously, the direction of the first signal is fixed at \(\left( {60^{\circ },70^{\circ }} \right) \) and its SNR at 5 dB; the amplitude of the second source is 0.8 multiples of the first one and its azimuth is \(80^{\circ }\). Then it can be computed according to (27) that the equality \(\left| {\xi _1 -\xi _2 } \right| =0\) holds when the elevation of the second source is \(89.1^{\circ }\), and the correct pairing probability may decrease significantly. By varying the elevation of the second source from \(85^{\circ }\) to \(95^{\circ }\), the correct pairing probabilities of PM+ESPRIT and power pairing are obtained and shown in Fig. 4.

Fig. 4
figure 4

Correct pairing probabilities of PM+ESPRIT and power pairing for varying elevation of the second source

Then assume that two independent signals impinge from the directions of \(\left( {60^{\circ },70^{\circ }} \right) \) and \(\left( {80^{\circ },95^{\circ }} \right) \), respectively, and the SNR of the first source is 5 dB, the SNR deviation of the two sources varies from −1 dB to 1 dB. Figure 5 shows the correct pairing probabilities of PM+ESPRIT and power pairing for varying SNR deviations.

Fig. 5
figure 5

Correct pairing probabilities of PM+ESPRIT and power pairing for varying SNR deviations

The simulation results in Fig. 4 show that the performance of the cross-correlation-based azimuth–elevation pairing method deteriorates most significantly when the elevation of the second source approaches \(89.1^{\circ }\). This phenomenon supports the foregoing analysis in Sect. 4 on the performance constraint of the cross-correlation-based azimuth–elevation pairing method. Figure 5 indicates that when the powers of the two signals are equal, the correct pairing probability of the power pairing method falls by nearly 50 %, which means power diversity is no longer usable for signal distinguishing. But fortunately, the detection performance of power pairing recovers rapidly when the SNR difference of the two signals is slightly deviated from 0 dB (by about 0.2 dB in the considered environment).

6 Conclusions

A new 2-D direction-finding method using L-shaped arrays is proposed in this paper, together with two azimuth–elevation pairing methods, with one based on the subarray cross-correlation and the other on the signal power estimates. Simulation results show that the proposed method obtains direction and power estimates of satisfying precision, and the power-bridging azimuth–elevation pairing method demonstrates predominance over its cross-correlation-based counterparts, while the exception happens only when the power diversity between different signals is negligible.