## 2 Analytical Description of the Proposed Algorithm
### Doppler Estimation  
The estimation of the Doppler value starts with the local minmax block (see Figure 2). The local minmax algorithm detects the locations of the minima and maxima and assigns them to the arrays \(l_{m}\) and \(L_{M}\), respectively. This is expressed as follows:  
\[l_{m} =\text{argminima }R(t),\] \[L_{M} =\text{argmaxima }R(t). \tag{6}\]  
Let us denote by \(P_{m}\) and \(P_{M}\) the sizes of \(l_{m}\) and \(L_{M}\), respectively. The quantities \(P_{m}\) and \(P_{M}\) derived from the minmax algorithm reflect the density of local minima and maxima in the signal. As the target velocity increases, the frequency modulation induced by the Doppler effect results in a higher density of waveform changes. Consequently, the algorithm detects more minima and maxima within a given time interval, leading to an increase in the size of the \(l_{m}\) and \(l_{M}\) arrays. Three cases present themselves.  
Case (1): \(P_{m}\geq 1\) and \(P_{M}\geq 1\). This case can be divided into four sub-cases: \(P_{M}>1\) and \(P_{m}=1\), \(P_{M}=1\) and \(P_{m}>1\), \(P_{M}=1\) and \(P_{m}=1\), and \(P_{M}>1\) and \(P_{m}>1\). For the first three sub-cases, the Doppler frequency is calculated as follows:  
\[\hat{f_{d}}^{1}=\frac{1}{2n|L_{M}(1)-l_{m}(1)|}, \tag{7}\]  
where \(n\) is the power exponent of the nonlinear transformation, and \(\hat{f_{d}}^{1}\) is the estimated Doppler effect from the first incoming pulse. If the indices are used, the expression becomes  
\[\hat{f_{d}}^{1}=\frac{f_{s}}{2n|\text{idx}_{M}(1)-\text{idx}_{m}(1)|}\,, \tag{8}\]  
where \(f_{s}\) is the sampling frequency, and \(\text{idx}_{m}\) and \(\text{idx}_{M}\) are the sampling indices of the elements in the arrays \(l_{m}\) and \(L_{M}\), respectively.  
An interesting sub-case is when both \(P_{m}\) and \(P_{M}\) are strictly greater than 1. In this case, we can improve the accuracy of our estimated value based on the ensemble of the estimates as follows:  
\[\hat{f_{d}}^{p}=\frac{f_{s}}{2 np}\sum_{i=1}^{p}\frac{1}{|\text{idx}_{M}(i)- \text{idx}_{m}(i)|}\,, \tag{9}\]  
where \(p=\min\{P_{m},P_{M}\}\).  
Case (2): \(P_{m}=1\) and \(P_{M}=0\), or \(P_{m}=0\) and \(P_{M}=1\). Since we only have a single minmax location, we apply the nonlinear transformation again to increase the number of minmax locations and then apply the above case using Equation (9). In this case, the estimate becomes  
\[\hat{f_{d}}^{p}=\frac{f_{s}}{2n^{2}p}\sum_{i=1}^{p}\frac{1}{|\text{idx}_{M}(i )-\text{idx}_{m}(i)|}\,, \tag{10}\]  
Case (3): \(P_{m}=0\) and \(P_{M}=0\). This indicates either that the original signal has a very low Doppler value and the algorithm should directly feed it to the MF or that the Doppler residue is so small that we can terminate the iterations and proceed to signal recovery before the range calculation. In this case, the Doppler estimate is set to 0.  
All of the above cases rely on a single pulse. To increase the accuracy of the estimate, an ensemble average can be taken over a few successive pulses as follows:  
\[\hat{f_{d}}^{p}=\frac{1}{N}\sum_{i=1}^{N}\hat{f_{d}}^{i}\, \tag{11}\]  
where \(N\) is the number of pulses used, and \(\hat{f_{d}}^{i}\) is the Doppler estimate for the \(i\)th pulse according to the formulas in the cases above.