<figure><img src="image_1.png" /></figure>

HAL
open science

# Parallel Fast DOA Estimation Algorithm Based on SML and Membrane Computing

Xiaofeng Bai, Huajun Song, Changbo Xiang

► To cite this version:

Xiaofeng Bai, Huajun Song, Changbo Xiang. Parallel Fast DOA Estimation Algorithm Based on SML and Membrane Computing. 17th IFIP International Conference on Network and Parallel Computing (NPC), Sep 2020, Zhengzhou, China. pp.159-169, 10.1007/978-3-030-79478-1_14 . hal-03768730

HAL Id: hal-03768730

https://inria.hal.science/hal-03768730v1

Submitted on 4 Sep 2022

**HAL** is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
<figure><img src="image_3.png" /></figure>

ifip

International Federation for Information Processing

This document is the original author manuscript of a paper submitted to an IFIP
conference proceedings or other IFIP publication by Springer Nature. As such, there
may be some differences in the official published version of the paper. Such
differences, if any, are usually due to reformatting during preparation for publication or
minor corrections made by the author(s) during final proofreading of the publication
manuscript.
Parallel Fast DOA Estimation Algorithm Based
on SML and Membrane Computing*

Xiaofeng Bai<fnref n="1" />, Huajun Song<fnref n="1" />, and Changbo Xiang<fnref n="2" />

**Abstract.** Direction of arrival (DOA) is widely used in communication, biomedicine, and other fields. Stochastic maximum likelihood (SML) algorithm is an excellent direction of arrival (DOA) estimation algorithm. However, the extremely heavy computational complexity in the process of SML analysis restricts its application in practical systems. Aiming at this problem of SML, this paper proposes a parallel accelerating algorithm of membrane computing (MC), particle swarm optimization (PSO), and artificial bee colony (ABC). Firstly, the solution space of SML algorithm is divided into basic membrane and surface membrane by using membrane computing; then particle swarm optimization algorithm is used for local parallel optimization in each basic membrane, and the locally optimal solution is transferred to the surface membrane; finally, the artificial bee colony algorithm is used to find the global optimum in the surface membrane. The results of the experiment show that the proposed algorithm greatly reduces the analytical complexity of SML, and the calculation time is decreased by more than 5 times compared with the commonly used optimization algorithms such as GA, AM, and PSO.

**Keywords:** Direction-of-arrival (DOA) · Stochastic maximum likelihood algorithm(SML) · Membrane computing(MC) · Parallel computing · Intelligent optimization.

# 1 Introduction

Since the 1960s, numerous fruitful algorithms about DOA have been proposed, and these algorithms are being developed rapidly. The mainstream algorithms in the current DOA field consist of linear prediction algorithms, subspace decomposition algorithms, and subspace fitting algorithms. The linear prediction algorithm is the basic algorithm of DOA estimation[10]. It is not commonly used in modern engineering practical systems for its poor resolution. Afterwards, RO

<footnote n="1">¹ College of Oceanography and Space Informatics, China University of Petroleum, Qingdao, China</footnote>

<footnote n="2">² The 41st Research Institute of China Electronic Science and Technology Group Corporation, Qingdao, China</footnote>

<footnote>* This project is supported by “the Fundamental Research Funds for the Central Universities(NO.18CX02109A)”; This project is supported by “Science and Technology on Electronic Test & Measurement Laboratory(6142001180514)”</footnote>
Schmit[12] proposed the multiple signal classification (MUSIC) algorithm. The algorithm launched the research of subspace decomposition algorithms. Then Paulraj, Roy, and Kailath[11] developed the estimation of signal parameters using rotational invariance techniques (ESPRIT) based on the decomposition of subspace. ESPRIT can obtain the closed-form solution directly, but accuracy is poor[3]. Since then, many DOA estimation algorithms have been proposed, including weighted subspace fitting (WSF)[5], deterministic maximum likelihood (DML)[2] and stochastic maximum likelihood (SML)[7]. This type of algorithm constructs the fitting relationship between the array manifold matrix and signal, then estimates the unknown parameters by calculating the cost function.

In theory, the SML algorithm has the best DOA estimation accuracy, but the huge amount of computation hinders its application. To solve its problems, a series of optimization algorithms have been proposed in recent years, such as alternating minimization (AM)[1] algorithm, alternating projection (AP)[4], EM algorithm[9], artificial intelligence optimization algorithm, etc. The conventional optimization algorithm works well in solving low-dimensional optimization problems, but as the increase in dimension and the number of solution space, the optimization ability of conventional optimization algorithms also decreases. Moreover, the solution to the SML cost function is a multidimensional optimization problem, and there are multiple local best solutions, the problem will be more complicated. Traditional optimization algorithms can't deal with it well.

Membrane computing (MC) was proposed by Gheorghe Paun[6]. The basic idea of MC is to abstract the function and structure model of biological cells to build a similar computational model. MC combines the ideas of parallel computing and distributed computing. It is an ideal calculation mode suitable for multi-dimensional optimization problems of large spaces. Thus, this study aims to explore a new method suitable for SML cost function based on the theoretical framework of membrane computing.

The second part of the thesis introduce the basic model and SML algorithm about the DOA estimation. The third part describe the specific process of the SML algorithm based on MC. The fourth part analyze the results of experiment and algorithm performance. The fifth part draw the conclusion of the study.

# 2 Mathematical Model and SML

## 2.1 Array signal model

The q far-field narrow-band signals are incident on an antenna array from different angles $(\theta_1, \theta_2, L, \theta_a)$, and the center frequency of the signal is $\omega_0$, the antenna array consists of p array elements, the wavelength of the signal is $\lambda$, the spacing between the elements is $d = \lambda/2$. Under ideal conditions, assume that each array element in the array is isotropic, there is no channel inconsistency, mutual coupling, and other factors, the noise of the signal is Gaussian white noise, and the variance is $\sigma^2$. The mathematical model of the signal received by the p array elements is as follows:

$$X(t) = AS(t) + N(t) \qquad (1)$$
In the equation (1), $X(t)$ denotes a $p \times 1$ dimensional snapshot data vector of the array, $A$ is a $p \times q$ dimensional array manifold matrix of the antenna, $S(t)$ is a $q \times 1$ dimensional signal data vector, and $N(t)$ is a $p \times 1$ dimensional noise data vector. Suppose that the received data is subjected to $L$ fast sampling, and finally can be expressed as $X = [x(t_1), x(t_2), ..., x(t_L)]$. DOA estimation problem can be expressed as: given the observation data, then get the direction of arrival of the signal: $\hat{\Theta} = \{\hat{\theta}_1, \hat{\theta}_2, ... \hat{\theta}_q\}$.

## 2.2 Stochastic Maximum Likelihood Algorithm

The derived values of the variables were calculated according to the SML criterion [13], and the likelihood function of the single observation data is written as:

$$f_i(x) = \frac{1}{\pi^p \det\{R\}} \exp(x_i^H R^{-1} x_i) \quad (2)$$

The joint probability density function of $q$ observations is as follows:

$$f_{SML}\{x_1, x_2, ..., x_q\} = \prod_{i=1}^{q} \frac{1}{\pi^p \det\{R\}} \exp(x_i^H R^{-1} x_i) \quad (3)$$

In equation (3), $\det\{\cdot\}$ is the determinant of the matrix, $R$ is the covariance matrix of the observed data, and the negative logarithm of the joint probability density function is obtained:

$$-\ln f_{SML} = L(M \ln \pi + \ln(\det\{R\}) + \text{tr}\{R^{-1} \hat{R}\}) \quad (4)$$

To obtain the maximum likelihood estimation of the parameters, it is necessary to calculate the maximum value of the log likelihood function in the parameter space. For SML, $f$ is a function of the variable $\theta$ so that the maximum likelihood function is expressed as:

$$L_{SML}(\theta) = \sigma^{2(p-q)} \det\{A^{+} \hat{R} A(\theta)\} \quad (5)$$

$$\hat{\sigma} = \arg \min L_{SML}(\theta) \quad (6)$$

In equation (3), $A^+ = (A^H(\theta)A(\theta))^{-1}A^H(\theta)$, the orientation estimate of the Stochastic Maximum Likelihood algorithm is to find $\theta = [\theta_1, \theta_2, ..., \theta_p]$ to bring the likelihood function $L_{SML}(\theta)$ to a minimum. Because it involves the solution of multi-dimensional nonlinear functions, it is more complicated to solve it with traditional optimization algorithms. Membrane computing is very suitable for solving such problems because of its distributed and parallel characteristics. Accordingly, the minimum value of $L_{SML}(\theta)$ is calculated by the membrane computing algorithm.
# 3 SML Based on Membrane Computing

In recent years, inspired by the biological laws of nature, a bionic optimization algorithm called membrane computing has received great attention from people and has achieved remarkable results in practical engineering applications. Since MC is easy to optimize in parallel, this study combined the advantages of MC with the SML algorithm and proposed an SML algorithm using the theoretical framework of MC. First, divide the solution space of the SML algorithm. Second, use the PSO algorithm in parallel for local optimization in each basic membrane. Finally, use the ABC algorithm in the surface membrane for global optimization, which is the final result. In the parsing process of the entire algorithm, since the local optimization algorithms in each of the basic membranes are performed independently, no communication is performed between the basic membranes.

## 3.1 Membrane division of the solution space

The solution space of the SML is stratified into appropriate "base membranes". The solution of the SML cost function can be expressed by the following mathematical model:

$$L(\theta) = \ln(\sigma^{2(p-q)} \det\{A^{+} \hat{R} A(\theta)\}) \quad (7)$$

The maximum likelihood estimation of the DOA is set as the objective function of the solution:

$$\min f(\theta), \theta = [\theta_1, \theta_2, ..., \theta_q] \in Q = [-90^\circ, 90^\circ] \quad (8)$$

In equation (8), q denotes the dimension of the solution space, f(θ) is the objective function of the algorithm, and Q is the solution space of the SML algorithm. The feasible solution space Q is spatially stratified into m sub-regions, that is, m basic membranes, [s(1), t(1)], [s(2), t(2)], ..., [s(m), t(m)], the basic membranes is stratified as follows:

$$s(i) = -90^\circ + \frac{180^\circ}{m}(i - 1) \quad (9)$$

$$t(i) = -90^\circ + \frac{180^\circ}{m}i \quad (10)$$

Each subspace [s(i), t(i)] serves as a basic membrane region of the membrane system for intra-membrane local search. To verify the effect of the number of basic membranes (m) on the performance of the MC, the selection of the number of basic membranes is discussed below:

Fig. 1 shows the variation of the DOA estimates that is run 100 times separately when the two sources are incident from different directions (10° and -30°), as the number of basic membranes increased from 2 to 10. Fig. 1(a) shows that when the angle is 10° and the number of base membranes is 4, the DOA estimate is closest to the true value 10°; Fig. 1(b) suggests that when the angle is -30° and the number of base membranes is 4, the DOA estimate is the closest to the
true value −30°. In general, though the DOA estimate shows an irregular change
with the increase in the number of base membranes, when the number of base
membranes is 4, even if two sources are incident from different directions, the
DOA estimation error is the smallest, and it is more advantageous to obtain the
optimal value. Therefore, in this experiment, the number of basic membranes is
chosen to be 4.

<figure><img src="image_4.png" /><figcaption>**Fig. 1.** Experimental results of the DOA estimate as a function of the number of basic membranes.</figcaption></figure>

The variation diagram in Fig.2 reveals that when the number of basic mem-
branes is 4, the average fitness value will be the smallest (SML algorithm seeks
the minimum cost function value). In summary, when two sources are incident
from different directions (10° and -30°), and the number of basic membranes is
4, the DOA estimation performance will be the best.

**3.2 Intra-membrane local search parallel algorithm**

The PSO-based intra-membrane local search algorithm based on PSO integrates
the idea of parallel computing of membrane computing, and combines mem-
brane computing with traditional PSO algorithm[8]. The following describes the
specific process of local search algorithm in membrane:

(1) The cost function L(θ) of SML is the fitness function of the PSO algorithm;

(2) Since the receiving array is a uniform planar array, the range of the solution space is [-90°, 90°], namely the optimized spatial extent of the PSO algorithm is [-90°, 90°], and the solution space is spatially stratified into m sub-regions [s(1), t(1)], [s(2), t(2)], ..., [s(m), t(m)];

(3) Construct a particle group $\Theta = \{\Theta_1, \Theta_2, ..., \Theta_n\}$, the number of particles in the particle group is $n$, divide $n$ particles into $m$ parts, the number of each part is $n/m$, the $m$ particles are randomly distributed in $m$ base membranes
<figure><img src="image_5.png" /><figcaption>Fig. 2. Experimental results of the fitness value changing with the number of basic membranes.</figcaption></figure>

(the surface membranes must be empty), and each particle is a potential solution to the optimization problem;

(4) Initialize various parameters in the PSO algorithm, such as the number of particles n/m, the inertia factor ω, the number of iterations, etc. Each particle continuously iterates according to the local optimal solution and the global optimal solution. Let i be the ith particle, l means the number of lth iterations, $\Theta_i^l$ is the position of the ith particle in the search space at the lth iteration, $C_i^l$ is the local optimal solution of the ith particle after lth iteration. It is obvious that:

$$C_i^0 = \Theta_i^0 \qquad (11)$$

$$C_i^1 = \arg \min_{\Theta_i^0, \Theta_i^l} L(\theta), \dots \qquad (12)$$

$$C_i^l = \arg \min_{\Theta_i^0, \dots, \Theta_i^l} L(\theta). \qquad (13)$$

Let $D^l$ be the global optimal solution that all particles can find after lth iterations, thus

$$D^l = \min\{C_1^l, C_2^l, \dots, C_{n/m}^l\} \qquad (14)$$

(5) The independent variable $\Theta_i$, the local optimal solution $C_i^l$ and the global optimal solution $D^l$ is updated by loop iteration. The formula for updating the position and velocity of the lth particle is:

$$\theta_i^{l+1} = \theta_i^l + v_i^{l+1} \qquad (15)$$

$$V_i^{l+1} = \omega V_i^l + c_1 r_1 (C_i^l - \Theta_i^l) + c_2 r_2 (D^l - \Theta_i^l) \qquad (16)$$

$L$ is the number of iterations, $\omega$ is the inertia factor, $\omega \in [0.4, 0.9]$, $r_1, r_2$ is the learning factor, and $r_1, r_2$ is the random number between 0 and 1;
(6) If reach the maximum number of iterations or the accuracy reaches 10⁻⁵, send the global optimal solution to surface membrane; otherwise, go to step (5) and iterate again.

In the process of local search in membrane, the solution space is divided firstly, and the local optimal solution and global optimal solution are updated iteratively in different solution spaces. In the program running, the loop structure often consumes the most computing resources. Optimizing the code in the loop body or parallelizing the loop is the most common way to speed up the program running. Because the search algorithm is independent in different solution space, we can use parfor loop to accelerate the calculation, and make full use of the parallel processing ability of multi-core processor to shorten the running time of problem processing and improve the running efficiency of the algorithm.

## 3.3 Global Optimization Strategy

After the intra-membrane local search with PSO algorithm, the local optimal value can be easily obtained, and then send the optimal solution in each basic film to the surface film to guide the algorithm for global optimal search. Artificial bee colony (ABC) algorithm has strong global search ability. Therefore, to improve the computational efficiency of the algorithm, the ABC algorithm is used for global optimization in the surface film region.

(1) At first, initialize the population to generate initial control parameters and initial solutions. Mainly includes: the number of food sources is M (the number of solutions of optimization problem), the maximum number of iterations is P, and the maximum number of iterations of the food source whose quality has not been improved is Limit. The initial solution is composed of the local optimal solution transferred from the basic membrane to the surface membrane, which corresponds to the bees one by one, then records the fitness value and the optimal solution of each initial solution;

(2) According to equation (17), bees conduct neighborhood search to generate a new candidate solution $\dot{\theta}_{in}$, calculate the fitness value, and select the probability of $\dot{\theta}_{in}$ and $\theta_{in}$ to record the better solution;

$$ \dot{\theta}_{in} = \theta_{in} + \phi_{in}(\theta_{in} - \theta_{kn}) \quad (17) $$

(3) Calculate the selection probability associated with each solution according to equation (18);

$$ p_i = \frac{fit_i}{\sum_{j=1}^{M} fit_j} \quad (18) $$

(4) The observation bees according to the Roulette Wheel Selection method to select the food source with probability $P_i$. Then the observation bees perform a neighborhood search according to equation (17) to generate a new candidate solution $\dot{\theta}_{in}$, computing the fitness value and making optimal choices for $\dot{\theta}_{in}$ and $\theta_{in}$, then record the better solutions;
(5) The scout bees judge whether there is a solution to give up according to *Limit*. If there is, a new solution will be selected from the local optimal solution to replace the abandoned solution;

(6) Record the optimal solution to date;

(7) *Cycle* = *Cycle* + 1, If *Cycle* < *P* or the accuracy less than 10⁻⁵, go to step (2); otherwise, output the optimal solution.

**3.4 DOA estimation step based on membrane computing**

The above analysis reveals that the SML algorithm based on MC could be pri-
marily stratified into three parts, and the flow chart is shown in Figure 3.

<figure><img src="image_6.png" /><figcaption>Fig. 3. Flow chart of SML algorithm based on membrane computing.</figcaption></figure>

**4 Simulation and performance analysis**

Through specific simulation experiments, the performance of the SML algorithm based on MC proposed in this paper is analyzed. And compare it with PSO, AM, and GA algorithm.The simulation environments include:

MATLAB R2016b,
i7-4770k CPU with 3.4GHz, 4-core, and 8-thread,
12GB DDR3 RAM.
During the experiment, assuming the array is a uniform planar array, the steering vector can be simplified as:

$$a(\theta) = [1, e^{-j\phi(\theta)}, L, e^{-j(p-1)\phi(\theta)}]^T \qquad (19)$$

$$\phi(\theta) = 2\pi\Delta\sin\theta/\lambda \qquad (20)$$

In equation (19), $\lambda$ denotes the signal wavelength, $\Delta$ is the distance between array elements. In the experiment, $\Delta = \lambda/2$, SNR is defined as:

$$SNR_k = 10\log_{10}\frac{E[|S_k(t)|^2]}{\sigma^2} \qquad (21)$$

The Root-Mean-Square-Error (RMSE) is defined as:

$$RMSE = \sqrt{\frac{1}{qN} \sum_{k=1}^{q} \sum_{m=1}^{M} |\hat{\theta}_{k,m} - \theta_k|^2} \qquad (22)$$

In the equation (22), $\hat{\theta}_{k,m}$ denotes the derived value of $\theta_k$ in the $m$th experiment, and do 100 times Monte Carlo experiments for each case.

<figure><img src="image_7.png" /><figcaption>Fig. 4. RMSE relationship with signal-to-noise ratio change.</figcaption></figure>

The receiving antenna adopts a 32-element uniform linear array, and four narrow-band signals are incident from the far-field. The number of snapshots of the signal is 1024, and the noise is Gaussian white noise with a mean of 0. For the SML algorithm based on MC, according to the above analysis, the solution space is divided into four basic membranes, and six particles are initialized in each basic membrane. Fig. 4 describes how the RMSE of each algorithm varies with SNR. For the ESPRIT algorithm, preprocessing is required when dealing with coherent sources; for non-coherent sources, when $SNR \in [-10dB, 20dB]$, the RMSE of PSO algorithm is much better than ESPRIT algorithm, and the RMSE of SML algorithm based on MC is slightly better than PSO algorithm. For the coherent source, the RMSE of the PSO algorithm is much better than
the ESPRIT algorithm when SNR ∈ [−10dB, 15dB]. When SNR ∈ [15dB, 20dB], the performance of the PSO algorithm and ESPRIT algorithm are similar. The RMSE of the SML algorithm based on the MC is slightly better than the PSO algorithm.

Under the same experimental environment, compare the performance of SML algorithm based on MC, PSO, GA and AM algorithm.

For the AM algorithm, a search method combining long and short steps is used. First, perform a rough search with a long step size (0.1°) to find the range of the optimal solution, and then perform a detailed search with a short step size (0.01°), when the estimated accuracy meet |G(l+1) − G| ≤ 10⁻⁵, record the result. This method reduces the computational complexity of the global search by the interactive minimization algorithm without reducing the DOA accuracy requirements.

In the artificial genetic algorithm (GA), set the number of populations as 60, set the crossover probability as 0.6, and set the mutation probability as 0.1. When the estimation accuracy of the DOA meet |G(l+1) − G| ≤ 10⁻⁵, stop the iteration.

<table><caption>**Table 1.** Comparison of performance of different algorithms (non-coherent sources).</caption><thead><tr><th></th><th>MC-SML</th><th>PSO-SML</th><th>AM-SML</th><th>GA-SML</th></tr></thead><tbody><tr><td>Number of particles</td><td>—</td><td>25</td><td>—</td><td>—</td></tr><tr><td>Average number of iterations</td><td>—</td><td>143.5</td><td>—</td><td>—</td></tr><tr><td>Total number of calculations</td><td>—</td><td>25*143.5=3587.5</td><td>—</td><td>46300</td></tr><tr><td>Spend time (seconds)</td><td><strong>0.88</strong></td><td>4.52</td><td>6.53</td><td>36.58</td></tr></tbody></table>

<table><caption>**Table 2.** Comparison of performance of different algorithms (coherent sources).</caption><thead><tr><th></th><th>MC-SML</th><th>PSO-SML</th><th>AM-SML</th><th>GA-SML</th></tr></thead><tbody><tr><td>Number of particles</td><td>—</td><td>25</td><td>—</td><td>—</td></tr><tr><td>Average number of iterations</td><td>—</td><td>146</td><td>—</td><td>—</td></tr><tr><td>Total number of calculations</td><td>—</td><td>25*146=3650</td><td>—</td><td>46300</td></tr><tr><td>Spend time (seconds)</td><td><strong>0.95</strong></td><td>4.74</td><td>6.61</td><td>36.65</td></tr></tbody></table>
The results of various aspects of the SML algorithm based on the MC, the PSO, the GA, and the AM algorithm in dealing with non-coherent sources and coherent sources are listed in Table 1 and Table 2. According to Table 1, when dealing with non-coherent sources under the premise of ensuring convergence accuracy, the calculation time cost by the AM algorithm is 6.53 sec, the time cost by the GA algorithm is 36.58 sec, and the cost time of the conventional PSO algorithm is 4.52 sec, whereas the calculation time of the proposed membrane calculation method is only 0.88 sec, about 1/5 of the conventional PSO algorithm. The results suggest that the convergence speed of the proposed membrane computing algorithm is significantly improved. Table 2 shows that various algorithms spend more time processing coherent sources in the same situation than processing non-coherent sources. In brief, the results reveal that the proposed membrane computing algorithm has a significant real-time effect.

Besides, when using i5-4210M CPU with 2-core, the cost time of MC-SML is about 2.7 sec, about half of the serial processing time. When using i7-860 CPU with 4-core, the cost time of MC-SML is about 2.5 sec, about a quarter of the serial processing time. It can be seen that the number of CPU cores and single-core performance will affect the computational efficiency of parallel algorithms.

# 5 Conclusion

Based on the theoretical framework of membrane computing, this study proposed a membrane computing method suitable for SML cost function. The algorithm is capable of effectively solving the problem of DOA estimation while ensuring the estimation accuracy. According to the results of the experiment, the proposed membrane computing algorithm can perform a global search and local search simultaneously, which reduces the computational complexity of SML. Thus, it has an obvious advantage in convergence speed.
Bibliography

[1] B. Chen, L. Xing, J.L.e.a.: Steady-state mean-square error analysis for adaptive filtering under the maximum correntropy criterion. IEEE Signal Processing Letters **21**(7), 880–884 (2014)

[2] Chang, W., Ru, J., Deng, L.: Stokes parameters and doa estimation of polarized sources with unknown number of sources. Iet Radar Sonar and Navigation **12**(2), 218–226 (2018)

[3] Dandekar, K.R., Ling, H., Xu, G.: Smart antenna array calibration procedure including amplitude and phase mismatch and mutual coupling effects. In: IEEE International Conference on Personal Wireless communications. pp. 293–297 (2000)

[4] Francois, V., Olivier, B., Eric, C.: Approximate unconditional maximum likelihood direction of arrival estimation for two closely spaced targets. IEEE Signal Processing Letters **22**(1), 86–89 (2015)

[5] Gao H, H.X.: Direction finding of signal subspace fitting based on cultural bee colony algorithm. IEEE Fifth International Conference on Bio-inspired Computing: Theories Applications (2010)

[6] Gheorghe, P.: Computing with membranes (p systems): An introduction. Current trends in theoretical computer science pp. 845–866 (2001)

[7] J, S.H., F, L., H, C.H., H, Z.: A stochastic maximum likelihood algorithm based on improved pso. Acta Electronica Sinica **45**(8), 1989–1994 (2017)

[8] Jianfeng, S., Xiaomin, Z., Yihai, L., Fuzhou, Y.: Estimation of time reversal target doa over underwater acoustic multipath time-varying channels. In: 2014 IEEE China Summit and International Conference on Signal and Information Processing (2014)

[9] Longjian, Z., Weiqiang, Z., Jingqing, L., Hui, K.: Direct positioning maximum likelihood estimator using tdoa and fdoa for coherent short-pulse radar. Iet Radar Sonar and Navigation **11**(10), 1505–1511 (2017)

[10] Nguyen, A.T., Matsubara, T., Kurokawa, T.: Low-complexity and high-accuracy doa estimation for coprime arrays using toeplitz matrices. IEEE International Conference on Computational Electromagnetics (ICCEM) (2017)

[11] Roy R, Paulraj A, K.T.: Estimation of signal parameters via rotational invariance techniques - esprit. Advanced Algorithms and Architectures for Signal Processing I. International Society for Optics and Photonics (1986)

[12] Schmidt, R., Schmidt, R.O.: Multiple emitter location and signal parameters estimation. IEEE Transactions on Antennas and Propagation **34**(3), 276–280 (1986)

[13] Schwartz, O., Dorfan, Y., Taseska, M., Habets, E.A.P., Gannot, S.: Doa estimation in noisy environment with unknown noise power using the em algorithm. In: Hands-free Speech Communications and Microphone. pp. 86–90 (2017)