## 2 Materials and Methods
### Experiment Setup  
We also established an experimental platform to validate the proposed multi-user VLCP system based on the dual-domain multiplexing scheme, as shown in Figure 3. Four commercial LED lamps and one PD (THORLABS PDA100A2) were placed on the top and bottom of the cuboid frame, respectively. The output power of each LED was 5 W, and the photodetector responsivity and physical area of PD were the same as the simulation setup. The X-Y coordinates of these four LEDs were \(LED_{1}\) (25 cm, 25 cm), \(LED_{2}\) (\(-\)25 cm, 25 cm), \(LED_{3}\) (25 cm, \(-\)25 cm) and \(LED_{4}\) (\(-\)25 cm, 2-5 cm), respectively, and the vertical distance between LEDs and PD was 90 cm. We assumed that there were 8 users and each user was assigned a unique Walsh-Hadamard code, with a length of 32 as spreading code. Firstly, we randomly generated 8 sets of user data and each frame included 100 bits. These user data were encoded by the corresponding spreading code and then accumulated based on Equation (2) to generate the transmission data. Then, we used two arbitrary waveform generators (AWG RIGOL DG2102) to modulate the transmission data and load the signal to four LEDs in turn. Here, the peak-to-peak voltage, bias voltage, and sampling rate were set as 1.05 V, 3.50 V, and 100 KSa/s, respectively. Limited by the equipment, we only used one PD to receive the VLCP signals and used one oscilloscope (OSC RIGOL MSO5354) to collect the received signals at the sampling rate of 1 MSa/s. Finally, we copied the data to the computer and successively decoded it by using the spreading code of each user to realize the VLC and VLP functions. Given that the environment of an experiment is more complex than that of a simulation, we adopted a fitting method to correct the parameters in Equation (14) and calculate different transmission distances [28]. To evaluate the system performance, we moved the PD onto the receiving plane, with a size of 60 cm \(\times\) 60 cm in the middle of the bottom of the cuboid frame, where 12 \(\times\) 12 testing points were evenly distributed on the receiving plane. The experimental results will be discussed later.  
\begin{table}
\begin{tabular}{c c} \hline \hline
**Parameters** & **Values** \\ \hline Output power of each LED (\(P_{i}\)) & 15 W \\ Threshold value (\(\lambda\)) & 0 \\ Lambertian order of emission (\(m_{l}\)) & 1 \\ Photodetector responsivity (\(\gamma\)) & 0.4 A/W \\ Modulation index (\(\alpha\)) & 0.15 \\ Physical area of Rx (\(A_{r}\)) & 75.4 mm\({}^{2}\) \\ Gain of an optical filter (\(g_{J}\)) & 1 \\ Gain of an optical concentrator (\(g_{c}\)) & 2.4115 \\ Equivalent noise bandwidth (\(B\)) & 10 MHz \\ Electronic charge (\(q\)) & \(1.6\times 10^{-19}\) C \\ Background current (\(l_{bg}\)) & 5100 uA \\ Noise bandwidth factor (\(l_{2}\)) & 0.562 \\ Denotes [PERSON]’s constant (\(k\)) & 1.38064852 \(\times\) 10\({}^{-23}\) m\({}^{2}\) kg s\({}^{-2}\) K\({}^{-1}\) \\ Absolute temperature (\(T_{L}\)) & 295 K \\ Fixed capacitance of photodetector per unit area (\(\eta\)) & 112 pF/cm\({}^{2}\) \\ Open loop voltage gain (\(G\)) & 10 \\ FET channel noise factor (\(\Gamma\)) & 1.5 \\ FET transconductance (\(g_{m}\)) & 30 mS \\ Gate induced drain leakage (\(I_{3}\)) & 0.0868 \\ \hline \hline \end{tabular}
\end{table}
Table 1: Simulation parameters.