## 3 Proposed Algorithm
Table 3 compares the complexity of the PDDA and other popular AOA methods at this stage as described below. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Method** & **Covariance Matrix** & **Eigen-Decomposition** & **Knowledge of the** \\  & **1 Inverse Required?** & **(EVD) Required?** & **Number of Arriving** \\ \hline Capon [16] & Yes & No & No \\ Maximum Entropy (ME) [39] & Yes & No & No \\ MUSIC [17] & No & Yes, in order to & Yes \\ Min-Norm [19] & No & Yes & Yes \\ Pisarenko [40] & No & Yes & No \\ \hline \multicolumn{3}{c}{Yes, for decomposition of an} \\ ESPRIT [27] & No & (\(M\times M\)) matrix and a (\(D\times D\)) & Yes \\ \multicolumn{3}{c}{matrix} \\ Root MUSIC [41] & No & Yes & Yes \\ Propagator [42] & No but it needs to compute matrix & No & Yes \\ \multicolumn{3}{c}{inverse with size (\(D\times D\))} \\ PDDA & No & No & No \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Showing the complexity comparison between the propagator direct data acquisition (PDDA) and other angle of arrival (AOA) techniques. Figure 2: Comparison of complexity for covariance matrix (CM) and propagator vector (\(\mathbf{p}\)) construction. (**a**) Multiplications required for \(N=100\) and \(M=1{:}256\); (**b**) Additions required for \(N=100\) and \(M=1{:}256\); (**c**) Multiplications required for \(M=100\) and \(N=1{:}1000\); (**d**) Additions required for \(M=100\) and \(N=1{:}1000\). To obtain narrower peaks and also to minimize side-lobe levels, we propose the following approach: first find the maximum point in \(\mathbf{P}(\theta)\):  
\[w=max(\mathbf{P}(\theta)) \tag{22}\]  
where \(w\) is a scalar value. The second step is subtracting the value of the global maximum from the other points in Equation (21). This yields the following equation:  
\[\mathbf{P_{s}}(\theta)=w-\mathbf{P}\left(\theta\right) \tag{23}\]  
Once this condition is achieved, we will obtain nulls in the direction of incoming signals. The PDDA method can be expressed in a new formula to acquire maximum peaks in the AOA as follows:  
\[\mathbf{P_{PDDA}}\left(\theta\right)=\frac{1}{\mathbf{P_{s}}(\theta)+\varepsilon} \tag{24}\]  
where \(\varepsilon\) is a small scalar value added in order to avoid possible singularities. Equation (24) is highly non-linear, so it exaggerates signals close to \(w\) and suppresses side-lobes. With an appropriate choice of \(\varepsilon\), it is then straightforward to apply a threshold value to separate genuine peaks from side-lobes. The simulation steps of this method are illustrated as follows:  
```
Input: the received signals \(\mathbf{X}\in C^{M\times N}\), with \(M\) sensors, \(N\) number of snapshots, \(D\) source signals. Output: The estimated AOAs. Step 1: Compute the received signal and add noise with a certain SNR (\(\mathbf{X}(t)=\mathbf{AS}(t)+\mathbf{N}(t)\)) Step 2: Divide the received signal matrix into two portions as given in Equations (17) and (18) Step 3: Construct the propagator vector (\(\mathbf{p}\)) by applying Equation (19). Step 4: Compute the vector (\(\varepsilon\)) by using Equation (20). Step 5: Construct the pseudospectrum of the proposed method by scanning \(\copyright\) through the whole scanning range of the \(\theta\) plane with a specific scanning Step, \(\delta\), thus: fori = 0:\(\hat{\
eq}\theta\) \(P_{PDDA}(\mathrm{ii})=|\:\mathbf{a}(\theta)\:\mathbf{c}|^{2}\) end for  If this method is applied for a circular array, the vector \(\copyright\) needs to be scanned over both the \(\theta\) and \(\phi\) planes with \(\delta\) as follows: fori = 0:\(\hat{\
eq}\theta\) forj = 0:\(\hat{\
eq}\phi\) \(P_{PDDA}(\mathrm{ii},\mathrm{jj})=\left|\mathbf{a}(\theta,\phi)\right.^{H}\left. \mathbf{c}\right|^{2}\) end end  end for  Step 6: Find the maximum global point in the spatial spectrum (i.e., \(w\)). Step 7: Subtract the maximum value from the other values by applying Equation (23). Step 8: Plot the pseudo-spectrum of the PDDA by using Equation (24) and set \(\varepsilon=0.01\). Step 9: Find the locations of the peaks to detect the arrival angles.