## 2 System Nonlinearity  
A typical VLC system employing an IM/DD structure is illustrated in Figure 1. The end-to-end VLC channel includes an electrical modulator, digital-to-analog converter (DAC), bias tee, LED, optical transmission channel, analog-to-digital converter (ADC), and electrical demodulator. Numerous modules will generate nonlinearities. However, the overall nonlinearity of the VLC channel is mainly introduced by both the LED and multipath propagation of the optical link. In addition, the memory nonlinearity is more significant as the signal bandwidth is increased. The LED behaviors are usually described by the Wiener model, which is a cascade of linear and nonlinear blocks. Let \(f_{0}\) denote the 3 dB cut-off frequency, then the memory nonlinearity of the LED can be expressed as  
\[h_{1}(n)=\exp(-2\pi nf_{0}). \tag{1}\]  
The memoryless nonlinearity block can be modeled by  
\[f_{1}(x(n))=\sum_{q=0}^{Q}a_{q}x^{q}(n), \tag{2}\]where \(x(n)\) is input real-valued transmitting signal, \(a_{q}\) is the coefficient, and \(Q\) is the polynomial order. The channel impulse response (CIR) of the multipath propagation effect in VLC can be expressed by the following:  
\[h_{2}(n)=\sum_{i=1}^{N_{r}}P_{i}\delta(n-\tau_{i}), \tag{3}\]  
where \(P_{i}\) is the optical power, \(\tau_{i}\) is the propagation time of the \(i\)-th light ray, and \(N_{r}\) is the number of received rays at the photodetector (PD), respectively. In fact, the PD also exhibits nonlinear behavior as the optical intensity of the injected signal is very large, leading to the saturation of the PD. However, the optical intensity can be lowered with the help of an optical attenuator. Therefore, the PD can be regarded as a linear component, which is always modeled by the Dirac function. Note that the quantification effect in the ADC is not considered here. After optical-to-electrical conversion in the PD, the received electrical signal can be expressed as  
\[y(n)\!=\!R_{PD}f_{1}[(x(n)+I_{DC})*h_{1}(n)]*h_{2}(n)+\varepsilon(n), \tag{4}\]  
where \(R_{PD}\) denotes the responsivity of the PD, \(I_{DC}\) is the DC bias, and \(\varepsilon(n)\) is the Gaussian noise following \(\mathcal{N}\big{(}0,\sigma_{\varepsilon}^{2}\big{)}\). At the receiver, \(y(n)\) is fed into the Volterra-based NPE. Then, the corresponding outputs can be expressed as  
\[ \begin{split}\tilde{x}(n)&=h_{0}+\sum_{k_{1}=0}^{L -1}h_{1}(k_{1})y(n-k_{1})+\sum_{k_{1}=0}^{L-1}\sum_{k_{2}=0}^{L-1}h_{2}(k_{1}, k_{2})\prod_{i=1}^{2}y(n-k_{i})\\ &+\cdots+\sum_{k_{1}=0}^{L-1}\cdots\sum_{k_{p}=0}^{L-1}h_{p}(k_{ 1},\cdots,k_{p})\prod_{i=1}^{p}y(n-k_{i})+v(n)\\ &=\sum_{p=0}^{P}\sum_{k_{1}=0}^{L-1}\cdots\sum_{k_{p}=0}^{L-1}h_ {p}\big{(}k_{1},\cdots,k_{p}\big{)}\prod_{i=1}^{p}y(n-k_{i})+v(n),\end{split}  \tag{5}\]  
where \(L\) denotes the memory length, \(P\) is the nonlinear order, \(h_{p}\big{(}k_{1},\cdots,k_{p}\big{)}\) is the \(p\)-th order of the Volterra kernels, and \(v(n)\) is the modeling error. Let  
\[\mathbf{y}_{1}(n)\!=\![y(n),\cdots,y(n-L+1)]^{T}, \tag{6}\]  
represent the truncated samples with length \(L\), which contains both the current and the past channel outputs. As seen from (5), the calculation of \(\tilde{x}(n)\) is mainly related to \(\mathbf{y}_{1}(n)\) and \(h_{p}\big{(}k_{1},\cdots,k_{p}\big{)}\). As we known, the main goal of the NPE is to produce the desired \(\tilde{x}(n)\) from \(\mathbf{y}_{1}(n)\) to minimize the error with respect to \(x(n)\), which indicates that the useful information of \(\tilde{x}(n)\) is involved in \(\mathbf{y}_{1}(n)\). In other words, we can infer that \(\tilde{x}(n)\) can be predicted from \(\mathbf{y}_{1}(n)\) once all the \(h_{p}\big{(}k_{1},\cdots,k_{p}\big{)}\) are well obtained. Therefore, from the perspective of learning and classification, both the \(h_{p}\big{(}k_{1},\cdots,k_{p}\big{)}\) and \(\tilde{x}(n)\) can be learned from the training sample  
Figure 1: Block diagram of VLC system with an IM/DD structure.