## 4 Proposed Iterative Timing Recovery  
The \(i\)-th message, (i.e., \(LLR_{i}\)) in LDPC decoding [2] is presented as  
\[LLR_{i}=\log\Lambda(x_{i}|\mathbf{r})+E(x_{i}|x_{j,j\
eq i}), \tag{23}\]  
\[\Lambda(x_{i}|\mathbf{r})=\log\frac{p(x_{i}=1|\mathbf{r})}{p(x_{i}=-1| \mathbf{r})}\mathbf{=}\frac{2y_{i}}{c_{ch}^{2}}, \tag{24}\]  
where \(\mathbf{r}\) is the received signal vector with element \(y_{i}\), \(c_{ch}^{2}\) is the variance of channel noise, \(x_{i}\) is the decision of the \(i\)-th element of \(\mathbf{r}\), \(p(x_{i}=1|\mathbf{r})\) or \(p(x_{i}=-1|\mathbf{r})\) is the posterior probability of the decision of the received signal \(\mathbf{r}\), and \(E(x_{i}|x_{j,j\
eq i})\) is is the extrinsic information brought by other variable nodes with relation to parity check constraint. \(E(x_{i}|x_{j,j\
eq i})\) is updated for each LDPC decoding iteration from the parity check nodes. Correct \(LLRs\) are crucial in ensuring proper LDPC decoding. Based on the analyses and conclusions presented in Section 3, an efficient timing recovery can be developed as follows. First, an object function \(\Psi(\tau,v)\) related to the timing phase and frequency offsets, \(\tau\) and \(v\) (measured in \(ppm\)), is defined as  
\[\Psi(\tau,v)=\sum_{i=0}^{K}{[\Lambda(x_{i}|\mathbf{r},\tau,v)+E(x_{i}|x_{j,j \
eq i},\tau,v)]^{2}}, \tag{25}\]  
where \(\Lambda_{i}\) is \(\Lambda(x_{i}|\mathbf{r},\tau,v)\), and \(K\) is the LDPC codeword length. Thus, the optimal \(((\tau,v))\) can be iteratively searched and updated by solving the optimization function given by  
\[(\tau_{opt},v_{opt})=\operatorname*{arg\,max}_{\tau\in[-T/2,T/2],\
u\in Freq, Region}\Psi(\tau,v). \tag{26}\]  
To illustrate the objective function \(\Psi(\tau,v)\), a curve of it with respect to \((\tau,v)\) after 3 LDPC iterations is calculated and shown in Figure 2, where the LDPC code (1944, 972) in Draft IEEE 802.11n [19] is selected at \(E_{b}/N_{0}\) of 0.5 dB. Based on the above numeric simulations, the object function \(\Psi(\tau,v)\) in Equation (25) is symmetrical and approximately convex to its variable, i.e., \((\tau,v)\). It indicates that the function \(\Psi(\tau,v)\) has a maximum value located at the position without any timing offset. Other cases are the same under different LDPC codes and \(E_{b}/N_{0}\), where one global optimum value and some local ones are featured in the plots. Therefore, this being the case, the optimal estimation of \((\tau,v)\) can be obtained by maximising the function \(\Psi(\tau,v)\). Thus, gradient descent algorithm (steepest descent) can be applied in solving Equation (26) similar to [13]. Afterwards, a two-dimensional gradient descent algorithm is carried out to iteratively search and update \((\tau,v)\) for Equation (26). An approximate gradient descent algorithm is used to implement the iterative timing recovery, because the object function \(\Psi(\tau,v)\) is discontinuous without direct analytic expressions. The iterative timing recovery process is discussed below. Firstly, \(E(x_{i}|x_{j,j\
eq i},\tau,v)\) in Equation (25) is considered constant to \((\tau,v)\). \(E(x_{i}|x_{j,j\
eq i},\tau,v)\) and \((\tau,v)\) are set to zero for the 1 st iteration (i.e., no message from the check nodes to the variable nodes) and hide in the change of \(\Lambda(x_{i}|\mathbf{r},\tau,v)\) in other iterations of the subsequent derivations. Thus, \(E(x_{i}|x_{j,j\
eq i},\tau,v)\) can be omitted in approximate derivations of \(\Psi(\tau,v)\) to \((\tau,v)\). The omission is calculated as  
\[\frac{\partial\Psi(\tau,v)}{\partial\tau}=2\sum_{i=0}^{K}{[\Lambda_{i}+E(x_{ i}|x_{j,j\
eq i},\tau,v)]\frac{\partial\Lambda_{i}}{\partial\tau}}, \tag{27}\]\[\frac{\partial\Psi(\tau,v)}{\partial v}=2\sum_{i=0}^{K}\left[\Lambda_{i}+E(x_{i}|x _{j,j\
eq i},\tau,v)\right]\frac{\partial\Lambda_{i}}{\partial v}. \tag{28}\]  
The received signal \(\Lambda_{i}\), or mainly the variable \(y_{i}\), is affected by the timing offset parameters \((\tau,v)\) based on Equations (23) and (24).