## 4 Description of the Visible Light Communications System
### Discussion of the VLC Emitter Structure  
The proposed VLC emitter is developed based on a set of standard LED vehicle rear lights. The message to send is generated by a microcontroller board based on an ARM Cortex-M7 processor running at 600 MHz. The microcontroller commands the LED vehicle rear lights through an LED driver board isolated by an optocoupler. The VLC emitter center wavelength is 620 nm. In line with the IEEE 802.15.7 standard, the VLC emitter prototype uses OOK modulation along with Manchester coding and enables data rates between 11 and 100 kb/s. As debated in the analyses presented in Sections 2 and 3, the use of the light dimming mechanism based on the insertion of compensation symbols significantly downgrades the data rate. In such conditions, in order to efficiently implement the light dimming function, the proposed VLC emitter was modified for VPPM-based pulse-width control dimming method when the payload is transmitted. The high-performance microcontroller allows it to generate pulses in the microsecond range, which in turn facilitates a highly precise light intensity variation. Nevertheless, while a better resolution is possible with the algorithm proposed in IEEE 802.15.7, it should be mentioned that it is still not possible to have data transmission under a minimum percentage, allowed, for example, by the base low-resolution visibility patterns. Increasing the base resolution for a more precise dimming control significantly affects the memory requirements. For example, a 1% dimming resolution necessitates 100 intervals of high/low pulses for each logical bit, whereas a 0.1% resolution necessitates 10 times more intervals for the same logical bit. At the same time, in order to keep the data rate values, the processing power must be increased as well. From our point of view, the VPPM method of dimming proposed by the standard IEEE 802.15.7 (Figure 6) can generate some issues in light dimming conditions, especially when a \"1\" bit is followed by a \"0\" bit. In such conditions, the two pulses join together, regardless of the duty cycle value, resulting in a single larger pulse. In limited noise conditions, combined with relatively high duty cycle values, the message extraction remains as simple as the measurement of the pulse width. However, in extreme light dimming conditions (e.g., 1%) corroborated with some potential low SNR values, it becomes difficult for the data processing unit to make the difference between a \"1\"-followed-by-a-\"0\" situation and a single \"1\" situation (Figure 6a). Thus, when such adverse conditions are fulfilled, the low SNR can alter the pulse width and give an erroneous result. The main advantage of the standard method is the possibility to control the duty cycle from 0% to 100% (of course, with no data transmission possibilities at the extremes). In light of the above, for enhanced resilience to noise and improved BER performances in light dimming conditions, the standard VPPM modulation has been adapted with an improved code, illustrated in Figure 7, and defined in Table 3. As seen in Figure 7a, the proposed VPPM method does not generate situations in which a dimmed message leads to the joining of two narrow-width pulses. Two pulses can only join in the case of a 50% pulse width (which replicates the Manchester code), as seen in Figure 7b, but due to the wider pulse width, this situation enables an adequate pulse-width measurement and a clear differentiation between the data bits. The main issue with this approach is the impossibility to increase the duty cycle over the 50% value. In order to overcome this impediment, the proposed code will switch the high and low levels between them for any duty cycle greater than 50%, as seen in Figure 7c. In this way, the advantages presented will be retained, with the only observation that the coding and decoding will be done with the same software subroutine, but considering the high as low and vice versa.