## 3 Experiment Results and Analysis  
The experimental setup for investigating the proposed MIMO-OCC scheme is shown in Figure 7. The Tx unit is controlled using an Arduino Uno board, which is an open-source microcontroller board based on the ATmega328 [37]. The 64-bit long data stream (i.e., 8-bit per group, see Figure 6) is generated in the Arduino software domain and mapped to each LED address using the Arduino Uno board. The key experimental parameters are listed in Table 2.  
The camera used for capturing is the Raspberry Pi official camera (PiCamera V2), which is based on the Sony IMX219 sensor [38]. The RaspiCam is attached to the Raspberry touchscreen display to provide the easy interface and control over the camera capturing modes and settings. For the demonstration of the proposed study, experiments were performed for nine transmission distances and four different values of SS (see Table 2). The NRZ-OOK modulated signal was recorded in the form of a 3 s video stream (90 frames in total). \begin{table}
\begin{tabular}{c c c} \hline \hline
**Resolution (pixels)** & **Frame Rate (fps)** & \(N_{\text{visible}}\) **(bits)** \\ \hline \(1920\times 1080\) & 30 & 8 \\ \(3280\times 2464\) & 15 & 22 \\ \(1640\times 1232\) & 40 & 10 \\ \(1640\times 922\) & 40 & 8 \\ \(1280\times 720\) & 90 & 6 \\ \(640\times 480\) & 200 & 4 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: RaspiCam resolutions. Figure 6: Data bit streams for intensity modulation (IM) of LED groups. The current proof-of-concept experiments were performed under the ambient light, where we measured the light intensity using a Testo 545 lux meter. The measured light intensity of the Tx with a diffuser was 300 lux at a distance of 50 cm. We also measured reflected lights from walls to be approximately 3.5 lux (\(\pm\)0.5 lux), which is very small compared with the Tx's illuminance; therefore, the ambient light influence on the integrity of data transmission is insignificant. The experiments were first conducted without a grid and a diffuser. To validate the scheme, a binary bit sequence of 1 and 0 was transmitted via all LEDs in the array. Figure 8 shows the original captured image frames with GS and RS modes, along with respective single row grayscale intensity profiles. Figure 8a shows the captured LED array using GS mode, along with its intensity profile at a maximum \(L\) of 20 cm. It can be seen that interference from the adjacent LEDs results in the blooming effect and, therefore, causes inter-cluster-interference. It can be seen that LED array captured using RS mode (see Figure 8b) at a minimum \(L\) of 5 cm, \(N_{\text{visible}}\) is 4 at the surface of each LED. Moving farther away from the Tx, \(N_{\text{visible}}\) is reduced to 3 at \(L\) of 7 cm (see Figure 8c). This is due to the reduced LED's surface area of \(5\times 5\) mm\({}^{2}\). Moreover, the RS rows also become saturated, which leads to inter-cluster-interference. Therefore, setting threshold levels become problematic, and hence lead to increased bit error rates (see Figure 8b,c). Therefore, further analysis was performed using the proposed LED array configuration shown in Figure 1. \begin{table}
\begin{tabular}{c c} \hline \hline
**Parameter** & **Value** \\ \hline RaspiCam chip size & 5.09 mm (H) \(\times\) 4.930 mm (W) \\  & Diagonal: 4.60 mm \\ RaspiCam resolution & 1920 \(\times\) 1080 pixels \\ Raspberry display size & 7 \({}^{\prime\prime}\) (diagonally) \\ Raspberry display resolution & 800 \(\times\) 400 pixels \\ \(t_{\text{chip}}\) & 2.5 ms \\ \(f_{\text{s}}\) & 400 Hz \\ RaspiCam frame rate & 30 fps \\ \(N_{\text{row}}\) & 1080 pixels \\ \(N_{\text{groups}}\) & 8 LED groups with 8 LED/group \\ \(t_{\text{frame}}\) & 0.216 ms \\ SS & 200, 400, 600 and 800 \(\upmu\)s \\ \(R_{d}\) & 3.2 kbps \\ \(L\) & 20–100 cm \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Key parameters of the experiment setup. Figure 7: Experiment setup of the MIMO-OCC scheme.