## 2 Experiment Setup
### NN Equalisation  
In channel equalisation tasks, various NN architectures can be employed [25]. However, our work uses multilayer perceptrons (MLPs), as they are among the oldest and the most common types of feedforward NNs, making them a good representation of other NNs [26]. MLP is a collection of perceptrons organised into layers, as illustrated in Figure 3. Each perceptron computes a linear combination of its inputs and incorporates an externally applied bias. The result of this combination is applied to an activation function [26]. The expression for the output of a perceptron is:  
Figure 2: THD vs. frequency for the VCSELs. \[y=f_{asm}\left(w_{bias}+\sum_{i=0}^{m-1}w_{i}x_{i}\right), \tag{2}\]  
where \(m\) denotes the number of inputs to the neuron, and \(f_{asm}(. )\) is the activation function of the neuron; \(x_{i}\) denotes the neuron inputs, \(w_{i}\) denotes the weight for each input \(x_{i}\), and \(w_{bias}\) denotes the neuron bias. A three-layer architecture suffices for the MLP for equalisation due to the universal approximation theorem [25; 26]. This theorem asserts that for non-linear input-output mapping, if the activation function of neurons in the hidden layer is monotonically continuous, bounded and non-constant, a finite number of neurons in the layer can approximate the mapping effectively. The sigmoid function, which satisfies these conditions, is commonly employed as the activation function for neurons in the hidden layer. It is defined in (3) as:  
\[f_{sgm}(x)=\frac{2a_{1}}{1+\exp(-a_{2}x)}-a_{1}=a_{1}\tanh(a_{2}x), \tag{3}\]  
where \(a_{1}\) and \(a_{2}\) are suitably chosen constants. In line with the study in [16], tan-sigmoid (\(a_{1}=a_{2}=1\)) is employed in this study as the activation function. The activation function for the neuron in the output layer is the linear function (\(f_{lin}(x)=x\)). The feedback inputs can be sent to the MLP equaliser like with a conventional DFE, as illustrated in Figure 3. This MLP-based DFE (MLPDFE) can be expressed as [26]:  
\[z_{n}=\sum_{c=1}^{N_{Int}}\left[w_{c}\tanh\left(w_{c,-1}+\sum_{a=0}^{N_{Int}-1} w_{c,a}y_{n-a}+\sum_{b=1}^{N_{Int}}w_{c,b}z_{n-b}\right)\right]+w_{-1}, \tag{4}\]  
where \(z_{n}\) denotes the output of the MLPDFE; \(\{y_{n},\ldots,y_{n+1-N_{Int}}\}\) is the unequalised input sequence, and \(\{z_{n-1},\ldots,z_{n-N_{Int}}\}\) is the set of previously detected symbols; \(w_{a}\) and \(w_{b}\) are the co-efficients of the feedforward and feedback tap weights, respectively; \(N_{ft}\) and \(N_{bt}\) denote the number of feedforward and feedback taps, respectively, for the DFE; \(N_{hn}\) is the number of hidden-layer neurons; \(w_{c,a}\) and \(w_{c,b}\) are the synaptic weights for processing the feedforward and feedback inputs, respectively, for a hidden-layer neuron (with index \(c\)); \(w_{c}\) denotes the weight used to process the neuron at the output layer; \(w_{c,-1}\) and \(w_{-1}\) denote the biases of a hidden-layer neuron and the output-layer neuron, respectively. Compared to the conventional DFE, the MLPDFE requires more computational complexity and memory due to the additional hidden-layer neurons: each has a non-linear function. Based on the analysis done in [27], the MLPDFE needs about \(N_{hn}\) times more real  
Figure 3: Illustration of the NN-based decision feedback equaliser. -valued multiplications than the conventional DFE. The performance of MLP is significantly impacted by the number of neurons in the hidden layer. Too few hidden neurons mean less computational complexity but could result in poor error performance. Conversely, an excessive number of neurons might lead to irregular error performance due to overfitting [25]. The back-propagation (BP) algorithm is popular for training the MLP equaliser. While there are multiple variants of the BP algorithm, the Levenberg-Marquardt BP (LMBP) algorithm is chosen in this study due to its superior convergence and better mean-square-error (MSE) performance [26].