## 4 Dual-Polarization Multipath Mitigation Algorithm
Estimate new path:  
Obtain the residual CCF by subtracting the generated ACFs of the estimated paths from the original CCF:  
\[residual_{\text{RHCP}}(t)=r_{\text{RHCP}}(t)-\sum_{i=0}^{PathNum-1}A_{i}e^{ \text{i}\theta_{i}}R_{\text{ss}}(t-t_{i})\]  
\[residual_{\text{LHCP}}(t)=r_{\text{LHCP}}(t)-\sum_{i=1}^{PathNum-1}B_{i}e^{ \text{i}\theta_{i}^{\text{i}}}R_{\text{ss}}(t-t_{i})\]  
If \(PathNum<1\), \(ResidualPower=\max_{t}(\left|residual_{\text{RHCP}}(t)\right|^{2})\), otherwise \(ResidualPower=\max_{t}(\left|residual_{\text{RHCP}}(t)\right|^{2}+\left|residual _{\text{LHCP}}(t)\right|^{2})\). The \(t\) that maximizes either equation above is denoted as \(t_{\max}\). If \(ResidualPower<2\times NoisePower\), the algorithm stops; otherwise a new path is found and its initial path parameters of the RHCP channel is updated as:  
\[t_{PathNum}=t_{\max}\]  
\[A_{PathNum}=\left|residual_{\text{RHCP}}(t_{\max})\right|\]  
\[\theta_{PathNum}=\text{atan2}(residual_{\text{RHCP}}(t_{\max}))\]  
If \(PathNum>0\), we update the initial new path parameters in the LHCP channel as:  
\[B_{PathNum}=\left|residual_{\text{LHCP}}(t_{\max})\right|\]  
\[\theta_{PathNum}^{\prime}=\text{atan2}(residual_{\text{LHCP}}(t_{\max}))\]  
Increase the estimated path number: \(PathNum=\ PathNum+1\). 3. Update the parameters of the estimated paths: (the superscript \(n=1,2,3,\ldots\) is the iteration count and subscript \(j=0,1,\ldots,\ PathNum-1\) is the path index. \([A_{i}^{(0)},\theta_{i}^{(0)},B_{i}^{(0)},\theta_{i}^{\prime(0)},t_{i}^{(0)}]\) are the latest estimated parameters of each path before the iteration in this step). Obtain the residual CCF by subtracting the generated ACFs of the estimated paths from the original CCF:  
\[residual_{j,\text{RHCP}}^{(n)}(t)=r_{\text{RHCP}}(t)-\sum_{i=0,i\
eq j}^{PathNum -1}A_{i}^{(n-1)}e^{\text{i}\theta_{i}^{(n-1)}}R_{\text{ss}}(t-t_{i}^{(n-1)})\]  
\[residual_{j,\text{LHCP}}^{(n)}(t)=r_{\text{LHCP}}(t)-\sum_{i=1,i\
eq j}^{PathNum -1}B_{i}^{(n-1)}e^{\text{i}\theta_{i}^{(n-1)}}R_{\text{ss}}(t-t_{i}^{(n-1)})\]  
If \(j<1\), it means to update the parameters of the LOS signal:  
\[t_{0}^{(n)}=\max_{t}(\left|residual_{0,\text{RHCP}}^{(n)}(t)\right|)\]  
\[residual_{\text{LHCP}}(t)=r_{\text{LHCP}}(t)-\sum_{i=1}^{PathNum-1}B_{i}e^{ \text{i}\theta_{i}^{\text{i}}}R_{\text{ss}}(t-t_{i})\]0  
\[residual_{\text{LHCP}}(t)=r_{\text{LHCP}}(t)-\sum_{i=1}^{PathNum-1}B_{i}e^{ \text{i}\theta_{i}^{\text{i}}}R_{\text{ss}}(t-t_{i})\]1  
Otherwise update the path parameters of MP signals:  
\[residual_{\text{LHCP}}(t)=r_{\text{LHCP}}(t)-\sum_{i=1}^{PathNum-1}B_{i}e^{ \text{i}\theta_{i}^{\text{i}}}R_{\text{ss}}(t-t_{i})\]2\[residual_{\text{LHCP}}(t)=r_{\text{LHCP}}(t)-\sum_{i=1}^{PathNum-1}B_{i}e^{ \text{i}\theta_{i}^{\text{i}}}R_{\text{ss}}(t-t_{i})\]3 \[residual_{\text{LHCP}}(t)=r_{\text{LHCP}}(t)-\sum_{i=1}^{PathNum-1}B_{i}e^{ \text{i}\theta_{i}^{\text{i}}}R_{\text{ss}}(t-t_{i})\]4 \[residual_{\text{LHCP}}(t)=r_{\text{LHCP}}(t)-\sum_{i=1}^{PathNum-1}B_{i}e^{ \text{i}\theta_{i}^{\text{i}}}R_{\text{ss}}(t-t_{i})\]5 \[residual_{\text{LHCP}}(t)=r_{\text{LHCP}}(t)-\sum_{i=1}^{PathNum-1}B_{i}e^{ \text{i}\theta_{i}^{\text{i}}}R_{\text{ss}}(t-t_{i})\]6
4. Converse: If \(\frac{\left(A_{0}^{(n)}-A_{0}^{(n-K)}\right)}{A_{0}^{(n-K)}}<0.1\%\) (\(K=3\)), or n is larger than the iteration limit, Step (3) converges and then return to Step (2); otherwise \(n~{}=~{}n+1\), and go back to Step (3). The main difference between the proposed DP-SIMLE and the iterative MEDLINE algorithms is the combining of CCFs of both the RHCP and LHCP channels to estimate MP parameters. When it estimates the LOS signal, only the CCF of the RHCP channel is used. The implementation of DP-SIMLE algorithm requires the calculation of path parameters in LHCP channel which results in double the computational load of that of the iterative MEDLINE algorithm.