# The Utilization of Artificial Neural Network Equalizer in Optical Camera Communications +
## 3 ANN Equalizer  
In RS-based OCC systems, the IS sampling process limits the available bandwidth and results in ISI at higher data rates, thus impacting the performance of the communications link. The ability to detect the slow rise-time symbol may be impacted by the existence of the transition between different illumination levels. Equalization is one option that is being adopted to mitigate the ISI. Note, the ISI is predicted by the training filter coefficients based on a training sequence. Alternatively, the ISI can be viewed as a classification problem, where class decision boundaries are created to classify symbols based on training [4]. Hence, determining the optimal threshold boundaries in a practical channel can be seen as a nonlinear process, and consequently, the ANN-based equalizer with the adaptive algorithm can be employed to mitigate ISI and, therefore, increase the data rate. Unlike other communication systems, OCC training of the ANN network is carried out only once for a specific exposure time with the data being stored with a look-up table [25; 26]. An ANN is an interconnected network of processing elements (neurons). It comprises of two distinct stages: (i) The training phase, where the ANN estimates an input-output map between the received and training data to determine the weighted input from each neuron. The weighted values are updated in each training iteration until either the required performance is achieved, or the entire training set is used; and (ii) the operation phase, where the ANN is deployed without the knowledge of the dataset under test. The multilayer perceptron (MLP) is a popular ANN architecture, which has been demonstrated with high effectiveness in signal equalization [36]. It offers the ability to map any non-linear input-output sequence, provided there are sufficient neurons in the hidden layer(s), and the SNR is sufficiently high. The MLP structure consists of at least three layers; (_i_) a single input layer \(x\); (_ii_) (\(M-1\)) hidden layers; and (_iii_) a single output layer \(y\). The input layer (also called the observation vector) has the same structure as a conventional linear equalizer for sequential equalization, i.e., it is a tapped delay line \(\mathbf{o}^{(m-1)}=[0_{1}^{(m-1)},\,o_{2}^{(m-1)},\,\ldots,\,o_{N_{m-1}}^{(m-1)}]\), where \(N\) is the number of neurons, and \(m\) is the layer number. This is illustrated in Figure 3, where weights \(w_{\text{rn}}^{(m)}\) relate the \(n\)th input to the \(k\)th neuron. Each neuron can be biased with a value \(C^{(m)}\), which is in turn scaled by a threshold factor \(v_{k}^{(m)}\). Figure 2: An example of a generated packet signal with \(f_{\text{Tx}}\) of 220 Hz. The output \(o_{k}^{(m)}\) of the \(k\)th neuron is mapped via a non-linear activation function \(f(. )\) as given by [25]:  
\[o_{k}^{(m)}=f\bigg{(}\sum_{n=1}^{N_{m-1}}w_{kn}^{(m)}o_{n}^{(m-1)}+C^{(m)}v_{k} ^{(m)}\bigg{)}. \tag{5}\]  
The output of each layer is usually connected to each of the neurons in the next layer, i.e., a fully connected mode, therefore, using the observation vector \(\mathbf{o}^{(m)}\) for the \(m\)th layer and the \(N_{m}\times N_{m-1}\) connection matrix between layers \(m\) and \(m-1\), the output is given in the vector form by:  
\[\mathbf{o}^{(m)}=f\Big{(}\mathbf{W}^{(m)}o^{(m-1)}+C^{(m)}\mathbf{v}^{(m)}\Big{)}, \tag{6}\]  
where \(\mathbf{W}^{(m)}\) and \(\mathbf{v}^{(m)}\) are given by:  
\[\mathbf{W}^{(m)}=\left[ \begin{array}{c}\mathbf{w_{1}}^{(m)}\\ \mathbf{w_{2}}^{(m)}\\ \cdot\\ \cdot\\ \cdot\\ \cdot\\ \mathbf{w_{Nm}}^{(m)}\end{array}