Keywords

1 Introduction

Direction finding (DF) relates to estimating the DOA of signal sources that impinging on an antenna array either in the form of acoustic or electromagnetic waves. The need for DOA estimation stems from the requirements of tracking and locating signal emitters in both military and civilian applications, for example, radar systems, public security, seismology, sonar and emergency call locating [1]. Furthermore, wireless technology applications have disseminated into several fields, for instance, sensor networks, environmental monitoring, search and rescue [2]. All these applications motivated and focussed increased attention towards developing direction of arrival techniques for wireless communication systems. The AOA method is the heart of smart antenna systems technology that provides accurate direction information about signal sources for wireless communication network [3]. Smart antenna systems combine multiple antenna elements with a digital signal processing to improve and optimize its reception and transmission pattern adaptively according to signal environment response to improve signal to interference ratios [4]. This technology had been found useful in mobile communication systems since it allows increasing the number of mobile users given limited resources [5]. Several angle of arrival techniques have been proposed and developed during last five decades for array signal processing to estimate DOA [6]. The Bartlett or classical beamformer method is one of the earliest techniques proposed to estimate the direction of impinging signals by scanning across an angular space of interest [7]. However, this method suffers from poor resolution and high sidelobe levels. Later, Capon proposed a new approach for the same purpose, which is known as the minimum variance distortedness response (MVDR) method [8]. The principle of this method depends on estimating the signal from one direction and supposing that all other directions are interference. Although this method gives better resolution accuracy than the Bartlett method, its performance significantly drops when arriving signals are correlated or close to each other in angle. This type of techniques was called non-subspace since it does not need to decompose the covariance matrix of received signals. Another class of AOA techniques are called signal subspace methods, which present high accuracy compared with the previous ones. Multiple Signal Classification (MUSIC) was a well-known method, which provides high accuracy for direction estimation [9]. However, this method was a bit complex and required many computational processes since the size of the matrix increases as the number of the incoming signals increases. The complexity of the estimator is another issue that algorithm designers must take care of. Hence, this paper proposes a new and less complex method with good accuracy to estimate the direction of incident signals. This paper is organized as follows: Sect. 2 the mathematical modelling of the direction of arrival signals. The proposed estimator and its mathematical model are given in Sect. 3. Section 4 simulates the proposed estimator and discuss the simulation results. Lastly, in Sect. 5, conclusion and summarized results are presented.

2 Direction of Arrival Mathematical Modelling

When the antenna array receives signals from various directions, the angle of arrival algorithm is implemented to find these directions. Let’s assume there are D signals incident on M antenna elements as shown in Fig. 1. These signals will be received by M-elements with M potential weights, w m . Each k th sample of incident signal \( s(k) \) contains on an Additive White Gaussian Noise (AWGN). This can be modelled as in [10].

Fig. 1.
figure 1

M-element array with arriving signals.

The received vector signal can be defined as:

$$ {\bar{\text{x}}}\left( {\text{k}} \right)\,\, = {\bar{\text{A}}}.{\bar{\text{s}}}({\text{k}}) + {\bar{\text{n}}}({\text{k}}) $$
(1)

where

\( {\bar{\text{A}}}\left( {\uptheta_{\text{i}} } \right) \) is total steering matrix of received signals and defined by

$$ {\text{A}} = \left[ { {\bar{\text{a}}}(\uptheta_{1} )\,{\bar{\text{a}}}(\uptheta_{2} ) \ldots {\bar{\text{a}}}(\uptheta_{\text{D}} )} \right] $$
(2)

\( {\bar{\text{s}}}({\text{k}}) \) is a vector of incident complex signals at k∆t-time is given by:

$$ {\bar{\text{s}}}({\text{k}}) = \left[ {s_{1} \left( {\text{k}} \right),s_{2} \left( {\text{k}} \right), \ldots , \,s_{D} ({\text{k}})} \right] $$
(3)

n(k) is a zero mean Gaussian noise for each channel and is expressed by:

$$ {\bar{\text{n}}}({\text{k}}) = \left[ {n_{1} \left( {\text{k}} \right),n_{2} \left( {\text{k}} \right), \ldots , \,n_{D} ({\text{k}})} \right] $$
(4)

\( {\bar{\text{a}}}(\uptheta_{\text{i}} ) \) is the array steering vector and is given by [2]:

$$ {\bar{\text{a}}}\left(\uptheta \right) = \left[ {\begin{array}{*{20}c} 1 \\ {{\text{exp(j}}\upbeta{\text{dsin}}\uptheta )} \\ . \\ . \\ . \\ {{ \exp }({\text{j}}\upbeta{\text{d(M}} - 1){ \sin }\uptheta)} \\ \end{array} } \right] $$
(5)

where

d denotes the distance between each two adjacent elements.

β is the spatial frequency and defined by:

$$ \upbeta = \frac{{2\uppi}}{\lambda } $$
(6)

The output signal can be expressed as:

$$ {\text{y}}\left( {\text{k}} \right) = {\bar{\text{w}}}^{\text{H}} \cdot {\bar{\text{x}}}\left( {\text{k}} \right) $$
(7)

with \( {\bar{\text{w}}} \), the array weights, given by [10]:

$$ {\bar{\text{w}}} = \left[ {{\text{w}}_{1} \,{\text{w}}_{2} \, \ldots \,{\text{w}}_{\text{M}} } \right]^{\text{T}} $$
(8)

The calculations depend on time samples of the received signals since these signals are time varying. Obviously, when the signal emitters are moving from one place to another, their corresponding arrival angles are changing, and this will cause to change the steering vectors matrix as well. Thus, the covariance matrix \( {\bar{\text{R}}}_{\text{xx}} \) of uncorrelated receiving signals case is given as follows.

$$ \begin{aligned} {\bar{\text{R}}}_{\text{xx}} = {\text{E}}\left[ {{\bar{\text{x}}}\,{\bar{\text{x}}}^{\text{H}} \,} \right] & = {\text{E}}\left[ {\left( {{\bar{\text{A}}}\,{\bar{\text{s}}} + {\bar{\text{n}}}} \right){ \times (}\,{\bar{\text{s}}}^{\text{H}} {\bar{\text{A}}}^{\text{H}} + {\bar{\text{n}}}^{\text{H}} \text{)}} \right] \\ {\bar{\text{R}}}_{\text{xx}} & = {\text{E}}\left[ {\left( {{\bar{\text{A}}}\,{\bar{\text{s}}} + {\bar{\text{n}}}} \right){ \times (}{\bar{\text{s}}}^{\text{H}} {\bar{\text{A}}}^{\text{H}} + {\bar{\text{n}}}^{\text{H}} \text{)}} \right] \\ {\bar{\text{R}}}_{\text{xx}} & = {\bar{\text{A}}\text{E}}\left[ {{\bar{\text{s}}}.\,{\bar{\text{s}}}^{\text{H}} } \right]{\bar{\text{A}}}^{\text{H}} + {\text{E}}\left[ {{\bar{\text{n}}}.\,{\bar{\text{n}}}^{\text{H}} } \right] \\ \end{aligned} $$
(9)
$$ {\bar{\text{R}}}_{\text{xx }} = {\bar{\text{A}}}\,{\bar{\text{R}}}_{\text{ss }} {\bar{\text{A}}}^{\text{H}} + \,{\bar{\text{R}}}_{\text{nn}} $$
(10)

And

$$ {\bar{\text{R}}}_{\text{ss }} = {\text{E}}\left[ {{\bar{\text{s}}}\,{\bar{\text{s}}}^{\text{H}} } \right] $$
(11)
$$ {\bar{\text{R}}}_{\text{nn}} =\upsigma_{\text{n}}^{2} \,\,{\text{I}} $$
(12)

In this situation, \( {\bar{\text{R}}}_{\text{ss}} \) is a diagonal matrix since the incoming signals are assumed as uncorrelated. When the incoming signals are correlated, the covariance matrix will be different from the previous condition due to \( {\bar{\text{R}}}_{\text{ss}} \) matrix is non-diagonal. This situation is given by [10].

$$ {\bar{\text{R}}}_{\text{xx }} = {\bar{\text{A}}}\,{\bar{\text{R}}}_{\text{ss }} {\bar{\text{A}}}^{\text{H}} + {\bar{\text{A}}}\,{\bar{\text{R}}}_{\text{sn }} {\bar{\text{A}}}^{\text{H}} + {\bar{\text{A}}}\,{\bar{\text{R}}}_{\text{ns }} {\bar{\text{A}}}^{\text{H}} + \,{\bar{\text{R}}}_{\text{nn}} $$
(13)

And

$$ \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\text{R}}_{{\text{ss}}} \left( k \right)\approx \frac{1}{\text{K}}\mathop \sum \limits_{{{\text{k}} = 1}}^{\text{K}} \,{\bar{\text{s}}}\left( k \right){\bar{\text{s}}}^{\text{H}} \left( k \right) $$
(14)
$$ \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\text{R}}_{{\text{sn}}} \left( k \right) \approx \frac{1}{\text{K}}\mathop \sum \limits_{{{\text{k}} = 1}}^{\text{K}} \,{\bar{\text{s}}}\left( k \right){\bar{\text{n}}}^{\text{H}} \left( k \right) $$
(15)
$$ \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\text{R}}_{{\text{ns}}} \left( k \right)\approx \frac{1}{\text{K}}\mathop \sum \limits_{{{\text{k}} = 1}}^{\text{K}} {\bar{\text{n}}}\left( k \right){\bar{\text{s}}}^{\text{H}} \left( k \right) $$
(16)
$$ \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\text{R}}_{{\text{nn}}} \left( k \right) \approx \frac{1}{\text{K}}\mathop \sum \limits_{{{\text{k}} = 1}}^{\text{K}} \,{\bar{\text{n}}}\left( k \right){\bar{\text{n}}}^{\text{H}} \left( k \right) $$
(17)

3 Proposed Method

After the covariance matrix is computed, a method is required to estimate the DOA of incoming signals. Hence, this paper suggests a new approach to estimate the direction of emitters; this approach (i.e. MSS) can be classified as a subspace method. The method consists of three main steps: first, sample the incoming signals and construct the covariance matrix. Secondly, applying decomposition on this matrix and select the Eigenvector that corresponds to the largest Eigenvalue. Lastly, compute the pseudospectrum and find the location of peaks as shown in Fig. 2.

Fig. 2.
figure 2

Proposed method block diagram for direction estimation.

According to the matrix theory, the \( {\bar{\text{R}}}_{\text{xx}} \) can be diagonalised by a nonsingular orthogonal transformation matrix as follows:

$$ \bar{Q}^{*} \,\,{\bar{\text{R}}}_{\text{xx }} \bar{Q}^{T} =\Lambda $$
(18)

where \( \Lambda \) is (M × M) diagonal matrix consists of real Eigenvalues and is given by:

$$ \Lambda = \left[ {\, \begin{array}{*{20}c} {\uplambda_{1} } & { 0} & { \begin{array}{*{20}c} \ldots & { 0} \\ \end{array} } \\ 0 & { \uplambda_{2} } & { \begin{array}{*{20}c} { \ldots } & 0 \\ \end{array} } \\ {\begin{array}{*{20}c} \vdots \\ 0 \\ \end{array} } & { 0} & { \begin{array}{*{20}c} {\begin{array}{*{20}c} \ddots \\ \cdots \\ \end{array} } & { \begin{array}{*{20}c} \vdots \\ {\uplambda_{\text{M}} } \\ \end{array} } \\ \end{array} } \\ \end{array} \,} \right] $$
(19)

\( Q \) is the eigenvectors matrix and can be defined as:

$$ \bar{Q} = [\,{\bar{\text{e}}}_{1} ,{\bar{\text{e}}}_{2} ,\, \ldots \,{\bar{\text{e}}}_{\text{M}} ] $$
(20)

where \( {\bar{\text{e}}}_{\text{i}} \) is the Eigenvector column with size (M × 1). For each Eigenvector (\( {\bar{\text{e}}}_{\text{i}} \)), there is a corresponding Eigenvalue \( \uplambda_{\text{i}} \). These Eigenvalues have to be sorted in descending way (i.e. from largest to smallest) and then selects the Eigenvector, which is associated with largest Eigenvalue. Once this eigenvector is obtained, the DOA can be found from the orthogonality between the Largest Eigenvector (LE) and the antenna array steering vector as follows:

$$ P \left( \theta \right) = \bar{e}_{1} \cdot \bar{a}(\theta ) $$
(21)

The above equation will search on the maximal points, which represent the angles of arrival. However, these peaks are wide and in addition, there are high sidelobes associated with pseudospectrum of this equation. Therefore, it is better to search for nulls instead of maximal peaks. This can be achieved by subtracting the maximum value of \( P \left( \theta \right) \) from all other values of \( P \left( \theta \right) \) to obtain sharp peaks in the direction of received signals as follows:

$$ P_{MSS} \left( \theta \right) = \frac{1}{{P \left( \theta \right)_{max} - P \left( \theta \right) + \varepsilon }} $$
(22)

where \( \varepsilon \) is small scalar value added in order to avoid the singularities.

4 Simulation Results and Discussion

A computer simulation has been performed to verify and demonstrate the theoretical concepts of the proposed method. This method has been applied to a uniform linear array (ULA) consisting of ten isotropic elements (M = 10) with a spacing distance equal to d = 0.5 \( \lambda \). Two Binary Phase Shift Keying (BPSK) signals are assumed impinging on this antenna array. Four scenarios are considered in the simulation to explain the performance of proposed technique. The first scenario tests the ability of the proposed method to detect incoming signals when they are close to each other. The second scenario evaluates the behaviour of this method at different signal to noise ratio (SNR). The third case presents the estimation accuracy of the suggested method by computing the error between estimated and actual angles. The last one compare the performance and complexity of the proposed algorithm with three common methods. To estimate DOA by using this method, the following steps should be achieved:

  • Step 1: Generate D signals with N samples for each signal.

  • Step 2: Generate the angle of arrival of D signals randomly.

  • Step 3: Compute the steering vectors a (θ) for each signal by applying Eq. 5 and then use Eq. 2 to compute total steering matrix of received signals A(θ).

  • Step 4: Generate noise with specific SNR and then add it to the signal.

  • Step 5: Compute the covariance matrix of the received signals by applying Eq. (9) for uncorrelated signals condition and Eq. (17) for coherent signals condition.

  • Step 6: Use Eigen Value Decomposition (EVD) approach to decompose the covariance matrix and then select the eigenvector that corresponds to the largest eigenvalue.

  • Step 7: Apply Eq. 21 and then determine the value of the maximum point. Subtract the value from all the values by applying Eq. 22 to obtain sharp peaks in the direction of arrival angles; \( \varepsilon \) is set to 0.01.

  • Step 8: Compute the locations of the peaks to detect the arrival angles.

4.1 Angular Separation

This section simulates the performance of the suggested method by considering the angular separation between arrival signals. The SNR is assumed 10 dB and the number of samples taken for incident signals is 100; the true location of the direction of signals is represented by “o”. Figure 3a shows the performance of the proposed method when the arrival signals are far from each other. While in the second case, it is supposed that there is a small angular separation between received signals as shown in Fig. 3b. It is obvious from these graphs that the proposed method has the ability to estimate the direction of arrival signals accurately even when these directions are close to each other.

Fig. 3.
figure 3

The performance of the MSS method when changing the angular separation between AOAs; (a) Large angular space between AOAs, (b) Small angular space between AOAs.

4.2 Different SNR

This section tests the robustness of proposed method and its ability to work efficiently even if one or more of network parameters have failed. This can be achieved by changing the value of SNR of received signals. Thus, three different SNR values have been considered are SNR = 20 dB, 0 dB, −20 dB; and the number of samples chosen N = 100; the true direction of arrival signals are represented by “o”. It is clear from this graph Fig. 4, that this algorithm gives good accuracy even at poor SNR. However, as the SNR increases, the peaks will be sharper and more accurate.

Fig. 4.
figure 4

The performance of MSS method with various SNR.

4.3 Accuracy of Estimation and Error Calculation

The accuracy of estimation is one of the most important factors which should take into our consideration to evaluate the performance of each technique. Accuracy illustrates the deviation degree of the estimated angles from the actual angles. Hence, Ten thousand sets of two angles of arrival have been generated randomly in order to evaluate and examine the resolution of estimation. This simulation section was achieved with the number of samples is 100 and SNR = 10 dB. The average absolute error between the actual and estimated directions is 1.422° and the cumulative distribution function (CDF) is shown in Fig. 5. It is clear from this figure, eighty percent of the average error is less than two degrees and this seems acceptable in most of the application.

Fig. 5.
figure 5

CDF plot of total average error of the MSS algorithm.

4.4 Performance Comparsion

Two signals are assumed incident on ULA from different directions (θ = −20° and 10°); the simulation parameters are M = 10, SNR = 10 dB, N = 100 and d = 0.5 \( \lambda \). The proposed and three other methods namely: Bartlett, MVDR and MUSIC have been applied to estimate the direction of incident signals. The performance estimation of each method is shown in Fig. 6. In order to compare the computational complexity of the proposed technique with these techniques, a MATLAB programme of each method has been written and then run with ten thousands trials under same conditions. The execution time of each method is recorded and then plotted as shown in Fig. 7. It is obvious from these graphs that the proposed technique is the lowest complexity and also gives a good estimation accuracy.

Fig. 6.
figure 6

Comparison between the proposed and other methods.

Fig. 7.
figure 7

Execution time comparison.

5 Conclusion

A maximum signal subspace (MSS) algorithm based on the eigenvector associated with the largest eigenvalue is has been proposed. The main benefits of the proposed technique its low computational complexity and does not require to pervious knowledge to the number of arrival signals since it only utilizes one eigenvector, regardless of the number of arrival signals. It has been tested and evaluated with different SNR and different directions of AOAs to demonstrate the theoretical concepts. In order to examine and test the proposed method on a wide range of circumstances, ten thousand values for two different AOA have been generated randomly. The error between actual and estimated angles has been computed and plotted as CDF function. This method has been compared with three common AOA techniques and the results have verified the effectiveness of the proposed method with good resolution, low computational complexity and small estimation error.