**5. UT-MeMBer DOA Particle Filter Tracking Algorithm**

In this section, we describe the particle filter implementation of the UT-MeMBer algorithm. From [22], if the multi-target probability density parameter set at time *<sup>k</sup>* <sup>−</sup> 1 is , *r j k*−1|*k*−1 ,*s j k*−1|*k*−1 -*Jk*−<sup>1</sup> *j*=1 , then the spatial posterior probability density at time *k* − 1 and can be expressed as:

$$s\_{k-1|k-1}^{(j)}(\mathbf{x}) = \sum\_{i=1}^{N\_{k-1}} w\_{k-1}^{(i,j)} \mathbf{x}\_{k-1'}^{(i,j)} j = 1, \dots, J\_{k-1} \tag{23}$$

where *s j <sup>k</sup>*−1|*k*−<sup>1</sup> is the spatial posterior probability density, which can be approximated as the weighted particle set ω(*i*) *k*−1 , *x* (*i*) *k*−1 *Nk*−<sup>1</sup> *i*=1 . *Nk*−<sup>1</sup> is the total number of particles, where *<sup>x</sup>* (*i*) *<sup>k</sup>*−<sup>1</sup> represents the state of the *i* th particle, including angle and speed, i.e., *x* (*i*) *<sup>k</sup>*−<sup>1</sup> <sup>=</sup> θ*k*−1, . θ*k*−<sup>1</sup> *T* . ω(*i*) *<sup>k</sup>*−<sup>1</sup> denotes the weight, usually satisfying \$*Nk*−<sup>1</sup> *<sup>i</sup>*=<sup>1</sup> <sup>ω</sup>(*i*) *<sup>k</sup>*−<sup>1</sup> <sup>=</sup> 1.

According to (12), the spatial posterior probability density of the prediction step consists of two items and can be written as

$$\mathbf{x}\_{k|k-1}^{(j)}(\mathbf{x}) = \sum\_{i=1}^{N\_{k|k-1}} \boldsymbol{\alpha}\_{k|k-1}^{(i,j)} \mathbf{x}\_{k|k-1}^{(i,j)} \boldsymbol{j} = \mathbf{1}\_{\prime} \dots \boldsymbol{\iota}\_{\prime} \mathbf{l}\_{k|k-1} \tag{24}$$

where *Nk*|*k*−<sup>1</sup> = *Nk*−<sup>1</sup> + *NB*,*<sup>k</sup>* and *Jk*|*k*−<sup>1</sup> = *Jp*,*k*|*k*−<sup>1</sup> + *JB*,*<sup>k</sup>* represent the number of predicted particles and predicted MeMBer parameter sets, respectively. All particles can be sampled from two parts:

$$\mathbf{x}\_{k|k-1}^{(i,j)} = \begin{cases} \mathbf{x}\_{k-1,lIT'}^{(i,j)} & i = 1, \dots, N\_{k-1} \\ \boldsymbol{\beta}\_{k}(\mathbf{x}\_{k}|\mathbf{Z}\_{k-1}), & i = N\_{k-1} + 1, \dots, N\_{k-1} + N\_{B,k} \end{cases} \tag{25}$$

Among them, *NB*,*<sup>k</sup>* denotes the number of newborn particles at time *k*, *x* (*i*,*j*) *<sup>k</sup>*−1,*UT* is obtained by UT of *x* (*i*,*j*) *<sup>k</sup>*|*k*−<sup>1</sup> [13]. Particle filtering suffers from missing sample diversity, resulting in depletion of the sampled particles. In order to solve this problem, the surviving particles will be subjected to UT operations. A set of sigma points with different weights are selected by UT operation, and then the posterior probability density of the state is approximated by these sigma points. The weight is

$$
\boldsymbol{\omega}\_{k|k-1}^{(i,j)} = \begin{cases}
\frac{p\_r r\_{k-1|k-1}^{(i)}}{r\_{k|k-1}^{(i)}} \cdot \frac{f\_{k|k-1} \left(\mathbf{x}\_{k|k-1}^{(i,j)} \middle| \mathbf{x}\_{k-1|k-1}^{(i,j)}\right)}{\rho\_k \left(\mathbf{x}\_{k|k-1}^{(i,j)} \middle| \mathbf{x}\_{k-1|k-1}^{(i,j)} \mathbf{Z}\_k\right)} \cdot \boldsymbol{\omega}\_{k-1}^{(i,j)} & i = 1, \dots, N\_{k-1} \\
\frac{p\_t \left(1 - r\_{k-1|k-1}^{(i)}\right)}{r\_{k|k-1}^{(i)}} \cdot \frac{b\_{k|k-1} \left(\mathbf{x}\_{k|k-1}^{(i,j)}\right)}{\beta\_k \left(\mathbf{x}^{(i,j)} \middle| \mathbf{Z}\_{k-1}\right)} \cdot \frac{1}{\mathbf{B}}, & i = N\_{k-1} + 1, \dots, N\_{k-1} + B
\end{cases} \tag{26}
$$

where *ps* and *pb* represent the survival probability of particles and the newborn probability of particles, respectively. *Nk*−<sup>1</sup> is the number of surviving particles sampled from the transition probability density *fk*|*k*−1, and *B* is the number of newborn particles from the proposal probability density β*k*. If the prediction MeMBer parameter sets can be expressed as *r j k*|*k*−1 , ω(*i*,*j*) *k*|*k*−1 , *x* (*i*,*j*) *k*|*k*−1 *Nk*|*k*−<sup>1</sup> *i*=1 +*Jk*|*k*−<sup>1</sup> *j*=1 at time *k*, then the update MeMBer parameter sets can be written as *r j k*|*k* , ω(*i*,*j*) *<sup>k</sup>* , *<sup>x</sup>* (*i*,*j*) *k Nk i*=1 +*Jk j*=1 . The weight is

$$
\boldsymbol{\omega}\_{k}^{(i,j)} = p\_{D,k} \mathbf{(x}\_{k|k-1}^{(i,j)}) \cdot \mathbf{g} \left( \mathbf{Z}\_{k} \middle| \mathbf{x}\_{k|k-1}^{(i,j)} \right) \cdot \boldsymbol{\omega}\_{k|k-1}^{(i,j)} \tag{27}
$$

where *pD*,*<sup>k</sup>* is the detection probability, and the likelihood function *g* % *Zk* - - - *x* (*i*,*j*) *k*|*k*−1 & calculated by the MUSIC algorithm can be expressed as

$$\log\left(\mathbf{Z}\_k \middle| \mathbf{x}\_{k|k-1}^{(i,j)}\right) = P\_{\text{FLOW}-\text{MISUIC}}\left(\mathbf{Cx}\_{k|k-1}^{(i,j)}\right) = \left|\frac{1}{a\left(\mathbf{Cx}\_{k|k-1}^{(i,j)}\right)^{\text{Id}} \mathbf{U}\_{\text{IN}}\mathbf{L}\_{\text{IN}}^{\text{Id}} a\left(\mathbf{Cx}\_{k|k-1}^{(i,j)}\right)}\right|^{\zeta} \tag{28}$$

where **C** = [**1,0**], and **C***x* (*i*,*j*) *<sup>k</sup>*|*k*−<sup>1</sup> represents the azimuth angle information, <sup>ζ</sup> is the exponential weighting factor. *U***<sup>n</sup>** represents the noise subspace obtained by the MUSIC algorithm. The steps of the UT-MeMBer DOA particle filter tracking algorithm are shown in Algorithm 1.

**Algorithm 1** UT-MeMBer DOA particle filter tracking algorithm **Input:** ⎡ ⎢⎢⎢⎢⎣ *r* (*j*) *k*−1|*k*−1 , <sup>ω</sup>(*i*,*j*) *<sup>k</sup>*−<sup>1</sup> , *<sup>x</sup>* (*i*,*j*) *k*−1 *Nk*−<sup>1</sup> *i*=1 +*Jk*−<sup>1</sup> *j*=1 ,*Zk* ⎤ ⎥⎥⎥⎥⎦ **Time Update** 1. Predict the existence probability: *r j <sup>k</sup>*|*k*−<sup>1</sup> <sup>=</sup> *<sup>r</sup> j <sup>P</sup>*,*k*|*k*−<sup>1</sup> <sup>+</sup> *<sup>r</sup> j B*,*k* . where *r j <sup>P</sup>*,*k*|*k*−<sup>1</sup> <sup>=</sup> *<sup>r</sup> j <sup>k</sup>*−<sup>1</sup> · \$*Nk*−<sup>1</sup> *<sup>i</sup>*=<sup>1</sup> <sup>ω</sup>(*i*,*j*) *<sup>k</sup>*−<sup>1</sup> · *ps*,*<sup>k</sup>* % *x* (*i*,*j*) *k*−1 & denotes the existence probability of survival model, *r j <sup>B</sup>*,*<sup>k</sup>* <sup>=</sup> , 1 − *r j k*−1 - · \$*NB*,*<sup>k</sup> <sup>i</sup>*=<sup>1</sup> <sup>ω</sup>(*i*,*j*) *<sup>k</sup>*−<sup>1</sup> · *pb*,*<sup>k</sup>* % *x* (*i*,*j*) *k*−1 & represents the existence probability of newborn model. 2. Calculate the predicted state of surviving particles: *x* (*i*,*j*) *k*|*k*−1 *Nk*−<sup>1</sup> *i*=1 <sup>=</sup> *UT x* (*i*,*j*) *k*−1 *Nk*−<sup>1</sup> *i*=1 . -Calculate the array flow matrix *A* % *Cx*(*i*,*j*) *k*−1 & ; -Calculate the amplitude of the signal *<sup>S</sup>* = *A*(θ) *<sup>H</sup>A*(θ) −<sup>1</sup> *A*(θ) *<sup>H</sup>Zk*; -Calculate the noise variance σ<sup>2</sup> = <sup>1</sup> *P* \$*P p*=1 - - -*<sup>Z</sup><sup>k</sup>* <sup>−</sup> *<sup>A</sup>*(θ)*<sup>S</sup>* - - - 2 ; -Select a weighted sample point of 2*nx* + 1 for each particle *x* (*i*,*j*) *<sup>k</sup>*−<sup>1</sup> , where χ<sup>0</sup> = *x* (*i*,*j*) *<sup>k</sup>*−<sup>1</sup> , *<sup>W</sup>*<sup>0</sup> <sup>=</sup> <sup>κ</sup>/(*nx* <sup>+</sup> <sup>κ</sup>)*s*<sup>=</sup> <sup>0</sup> χ*<sup>s</sup>* = *x* (*i*,*j*) *<sup>k</sup>*−<sup>1</sup> <sup>+</sup> , <sup>=</sup> (*nx* + κ)σ<sup>2</sup> - , *Ws* = κ/2(*nx* + κ)*s*= 1, ... , *nx* χ*<sup>s</sup>* = *x* (*i*,*j*) *<sup>k</sup>*−<sup>1</sup> − , = (*nx* + κ)σ<sup>2</sup> - , *Ws* = κ/2(*nx* + κ)*s* = *nx* + 1, ... , 2*nx* , κ = 5 is a secondary scaling parameter, *nx* = 2. -Each sigma point propagates through a nonlinear function: γ*<sup>s</sup>* = *fk*|*k*−1(χ*s*),*s* = 1, ... , 2*nx*; -Compute the mean and covariance of <sup>γ</sup>*s*: <sup>ψ</sup> <sup>=</sup> <sup>2</sup> \$*nx s*=0 *Ws*γ*s*, *<sup>P</sup>* <sup>=</sup> <sup>2</sup> \$*nx s*=0 *Ws* , γ*<sup>s</sup>* − ψ -,γ*<sup>s</sup>* <sup>−</sup> <sup>ψ</sup> -*T* ; -Obtain: *x* (*i*,*j*) *<sup>k</sup>*|*k*−<sup>1</sup> ∼ N, ψ, *P* - ; 3. Construct a newborn target weighted particle: *x* (*i*,*j*) *<sup>k</sup>*|*k*−<sup>1</sup> <sup>∼</sup> <sup>β</sup>*k*(*xk*|*Zk*−1), *<sup>i</sup>* <sup>=</sup> *Nk*−<sup>1</sup> <sup>+</sup> 1, ... , *Nk*−<sup>1</sup> <sup>+</sup> *NB*,*k*. 4. Calculate the prediction weight <sup>ω</sup>(*i*,*j*) *k*|*k*−1 , *i* = 1, ... , *Nk*|*k*−<sup>1</sup> according to (26). 5. Unite weighted particle set: % *x* (*i*,*j*) *k*|*k*−1 , <sup>ω</sup>(*i*,*j*) *k*|*k*−1 &*Nk*|*k*−<sup>1</sup> *i*=1 +*Jk*|*k*−<sup>1</sup> *j*=1 = % *x* (*i*,*j*) *p*,*k*−1 , <sup>ω</sup>(*i*,*j*) *p*,*k*−1 &*Nk*−<sup>1</sup> *i*=1 +*Jk*−<sup>1</sup> *j*=1 ∪ % *x* (*i*,*j*) *<sup>B</sup>*,*<sup>k</sup>* , <sup>ω</sup>(*i*,*j*) *B*,*k* &*NB*,*<sup>k</sup> i*=1 +*JB*,*<sup>k</sup> j*=1 where *Jk*|*k*−<sup>1</sup> = *Jk*−<sup>1</sup> + *JB*,*k*, *Nk*|*k*−<sup>1</sup> = *Nk*−<sup>1</sup> + *NB*,*k*. **Measurements Update** 6. For each particle *x* (*i*,*j*) *k*|*k*−1 , Calculate the likelihood function *g* % *Zk* - - - *x* (*i*,*j*) *k*|*k*−1 & according to (28). 7. Update existence probability: *r j <sup>k</sup>*|*<sup>k</sup>* <sup>=</sup> *r j <sup>k</sup>*|*k*−1· *Nk* \$|*k*−1 *i*=1 *g* , *Zk* - - - *x* (*i*,*j*) *k*|*k*−1 ω(*i*,*j*) *<sup>k</sup>*|*k*−<sup>1</sup>*pD*,*<sup>k</sup>* , *x* (*i*,*j*) *k*|*k*−1 - 1−*r j <sup>k</sup>*|*k*−<sup>1</sup>+*<sup>r</sup> j <sup>k</sup>*|*k*−1· *Nk* \$|*k*−1 *i*=1 *g* , *Zk* - - - *x* (*i*,*j*) *k*|*k*−1 ω(*i*,*j*) *<sup>k</sup>*|*k*−<sup>1</sup>*pD*,*<sup>k</sup>* , *x* (*i*,*j*) *k*|*k*−1 - . where *j* = 1, ··· , *Jk*|*k*−1. 8. The updated weight is calculated by (27) and normalized <sup>ω</sup>(*i*,*j*) *<sup>k</sup>* <sup>=</sup> <sup>ω</sup>'(*i*,*j*) *<sup>k</sup>* / % \$*Jk*|*k*−<sup>1</sup> *j*=1 \$*Nk*|*k*−<sup>1</sup> *<sup>i</sup>*=<sup>1</sup> <sup>ω</sup>'(*i*,*j*) *k* & . **Resample Step** 9. % *x* (*i*,*j*) *k*|*k*−1 , <sup>ω</sup>(*i*,*j*) *k*|*k*−1 &*Nk*|*k*−<sup>1</sup> *i*=1 +*Jk*|*k*−<sup>1</sup> *j*=1 → % *x* (*i*,*j*) *<sup>k</sup>* , <sup>ω</sup>(*i*,*j*) *k* &*Nk i*=1 +*Jk j*=1 . **Output**: *r j k* , % *x* (*i*,*j*) *<sup>k</sup>* , <sup>ω</sup>(*i*,*j*) *k* &*Nk i*=1 +*Jk j*=1 .

Algorithm 1 gives the pseudo-code of UT-MeMBer DOA particle filter tracking algorithm. The prediction is made in steps 1–5. Step 6 calculates each predicted particle likelihood function which is replaced by the MUSIC spatial spectral function. The update existence probability is calculated in step 7. Step 8 calculates the normalized weight. Particle resampling is performed in step 9. The particle set ω(*i*,*j*) *<sup>k</sup>* , *<sup>x</sup>* (*i*,*j*) *k Nk i*=1 +*Jk j*=1 approximates the spatial probability density function *s j k*|*k* , and the estimation of updated source can be expressed as *x<sup>k</sup>* = \$*<sup>N</sup> <sup>i</sup>*=<sup>1</sup> <sup>ω</sup>(*i*,*j*) *<sup>k</sup>* · *<sup>x</sup>* (*i*,*j*) *<sup>k</sup>* .
