# On Parameter Estimation for Bandlimited Optical Intensity Channels
## 4 Estimator Algorithms  
### Maximum Likelihood Approach  
Based on the LLF in (12), a maximum likelihood algorithm for joint estimation of signal amplitude and symbol timing might be achieved by setting the first-order derivatives \(\partial\Lambda(r\mathbf{u})/\partial u_{m}\) to zero and solving the (nonlinear) set of equations with respect to \(u_{m}\). Needless to say, there exists no closed-form solution so that we must resort to a numerical procedure, e.g., the Newton-Raphson algorithm [19]. However, this iterative approach suffers normally from serious convergence and stability problems so that we present in the sequel a stable and much less complex method [20]. By detailed inspection of (12), it makes sense to skip the second term in parentheses, if we are interested in the estimation of the symbol timing, as this term does not depend on \(\tau\). With this simplification in mind, the corresponding LLF boils down to  
\[\Lambda(\mathbf{r};\tau)=\sum\limits_{k=0}^{L-1}\omega_{k}\,\mathrm{z}_{k}= \int\limits_{-\infty}^{\infty}\Omega(t)\,r(t+\tau)\,dt, \tag{18}\]where, for reasons of clarity, the synchronization symbols used in this context have been introduced as \(\omega_{k}\), and  
\[\Omega(t)=\sum_{k=0}^{L-1}\omega_{k}\,h(t-kT) \tag{19}\]  
represents a filter employed for the correlation procedure expressed by (18). Without loss of generality, it has been assumed for (18) and (19) that the index range K of the observation window starts with \(k_{0}=0\). The estimate for symbol timing is then obtained as  
\[\hat{\tau}=\arg\max_{\widetilde{\tau}}\Lambda(\widetilde{\tau}). \tag{20}\]  
No closed-form solution is available to tackle the optimization problem in (20), so we have to envisage a numerical approach. To this end, we first discretize the involved timing parameters as follows: \(t\to iT_{s}\) and \(\widetilde{\tau}\to\mu T_{s}\), \(i\) and \(\mu\in\mathbb{Z}\), with \(T_{s}\) as the sampling interval specified as \(T_{s}=T/N_{s}\); in order to avoid alias problems, it is necessary that the oversampling factor \(N_{s}\) selected is large enough. As a result, the function to be optimized for symbol timing recovery is introduced as  
\[\Lambda_{\mu}=\sum_{i\in\mathbb{I}}\Omega(iT_{s})\,r[(i+\mu)T_{s}]. \tag{21}\]  
The range I in (21) is chosen such that the amplitude of \(\Lambda_{\mu}\) drops below a certain limit, say \(10^{-6}\) or less, if the sampling index \(i\) is picked outside this range. Then the maximization process in (20) is elegantly re-formulated as  
\[\hat{\mu}=\underset{\mu}{\text{argmax}}\Lambda_{\mu}. \tag{22}\]  
The computational complexity of the optimization procedure relates to the granularity of the sampling grid determined by \(T_{s}\), i.e., the smaller the value of \(T_{s}\), the larger the computational load, and vice versa. A good compromise is the use of a medium kind of granularity and the extraction of values in between by an interpolation function. Simulation results have shown that a parabolic approach is sufficient (linear interpolation is too coarse to achieve reliable results, but orders larger than two require more computing resources and might cause oscillation problems). Hence, timing estimates are basically calculated via  
\[\hat{\tau}=\left(\hat{\mu}-\frac{1}{2}\frac{\Lambda_{\hat{\mu}+1}-\Lambda_{ \hat{\mu}-1}}{\Lambda_{\hat{\mu}+1}-2\Lambda_{\hat{\mu}}+\Lambda_{\hat{\mu}-1 }}\right)\,T_{s}. \tag{23}\]  
In the next stage of operation, we are going to extract the estimation of the signal amplitude. Conditioned on the knowledge that the timing estimate has been achieved previously, the derivative of the LLF in (12) gives  
\[\frac{\partial\Lambda(\mathbf{r};A,\,\hat{\tau})}{\partial A}\bigg{|}_{A= \hat{A}}=2\sum_{k=0}^{L-1}\omega_{k}\,\hat{z}_{k}-2\hat{A}\sum_{k=0}^{L-1}\sum _{n=0}^{L-1}\omega_{k}\omega_{n}\,g[(k-n)T], \tag{24}\]  
where \(\hat{z}_{k}\) denotes the output of the receiver MF according to (10), but now processed at \(t=kT+\hat{\tau}\). Setting (24) to zero, the signal amplitude is then estimated by  
\[