# A Time-Varying Filter for Doppler Compensation Applied to Underwater Acoustic OFDM
## 3 Doppler Compensation for Multicarrier Modulation
### Compensation at the Receiver
It can be proven that the minimization problem is equivalent to maximizing the projection of the received signal onto the approximated received signal defined as  
\[\hat{\mathbf{a}}=\arg\max\limits_{\alpha}\mathbf{r}^{H}\mathbf{D}_{\alpha} \tilde{\mathbf{A}}_{\alpha}\mathbf{S}\mathbf{F}\mathbf{F}^{\dagger}\mathbf{S} ^{H}(\tilde{\mathbf{A}}_{\alpha})^{\dagger}\mathbf{D}_{\alpha}^{H}\mathbf{r}. \tag{29}\]  
Note that the resolution of the estimate \(\hat{\mathbf{a}}\) using Equation (29) increases with the number of pilot tones \(N_{p}\), and also depends on the number of elements for the test vector \(\alpha\). As such, these parameters must be chosen carefully, because they also increase the computational complexity of the Doppler estimation algorithm. In addition, note that the time-scaling effect (compression/dilation) can move the start point of each OFDM symbol in the discrete-time domain. Therefore, a precise OFDM symbol synchronization is necessary before demodulation. It can be shown that, when the symbol synchronization is perfect, the projected energy in Equation (29) has the highest peak. As such, a technique to find each OFDM symbol's start time can be combined with the optimum time-scaling estimation algorithm. In summary, the procedure to find the time-scaling factor during reception of the frame is performed in three steps defined as follows. 1. Find a coarse estimate of the starting point of the \(m\)th OFDM block, \(i_{0,m}\), by counting \(m\times(N+L_{cp})\) samples after the preamble in the baseband. 2. To produce a fine estimate of each OFDM symbol's start time, shift the sampling instant of the \(m\)th symbol around \(i_{0,m}\) by an integer number of samples, \(l\). Then, calculate for the \((i_{0,m}+l)\)th delay the projection defined by Equation (29). The range of \(l\) depends on the intensity of Doppler and number of OFDM samples in discrete time-domain. 3. Choose the projection which gives the maximum peak between the energy functions as the optimum start point of the \(m\)th OFDM block. Note that the resolution of the Doppler estimation algorithm is constrained on the size of the test sequence \(\alpha\) to solve the ML algorithm, as defined by Equation (29). Next, a simulation is presented for a packet of five OFDM symbols. The packet passes through a deterministic multi-scale multipath channel with a delay spread of \(\overline{\tau}=59.3\) ms and a maximum scaling spread of \(D_{s}=2.2\times 10^{-4}\). The signal to noise ratio is 10 dB. The time-scaling factor is constant during each OFDM symbol, and changes from one block to the next (see Figure 5). In this example, each OFDM symbol has 512 sub-carriers including 128 nulls and 128 pilots have been inserted in between them. The length of the cyclic prefix is 100 samples in baseband discrete-time. The transmitted signal bandwidth is 320 Hz. The range of integer sample search for symbol synchronization is \(l=[-4,4]\). The maximum of the cost function for each OFDM symbol is obtained by a linear search on \(\alpha\). The result of the linear search is shown in Figure 6 where the estimation algorithm is able to track the time-scaling factors created by a relative speed up to 2.5 m/s. Although this example demonstrates a constant speed for each block, the simulations showed that the estimation algorithm works in a continuously time-varying speed condition if the rate of acceleration remains small. The maximum acceleration depends on the length of each OFDM symbol and the central frequency. Basically, the change in velocity \(\Delta v\) during an OFDM symbol must be small enough so that the change in time-scaling factor \(\Delta\alpha\) is much smaller than the estimated time-scaling factor, or, in other words, \(\hat{\alpha}\gg\Delta\alpha\). Figure 5: Step-like time-varying time-scaling function. The relative velocity during each OFDM block remains constant and it is changing from one block to the next. The vector of the relative velocity is \(\mathbf{v_{r}}=[-2,-1,0,1,2]\) m/s.