# Optical-OFDM VLC System: Peak-to-Average Power Ratio Enhancement and Performance Evaluation
## 4 PAPR Reduction Methodology and Proposed Model
### Proposed PAPR Reduction System  
This section offers insight into the algorithms employed for various O-OFDM approaches within VLC communication, as illustrated in Algorithms 1 and 2. The most effective issue that causes the system's performance drawbacks is a high PAPR. By introducing the VLM precoding method for high PAPR mitigation, we aimed to provide insights into their potential benefits in VLC systems. As the authors know, this is the first time the VLM precoding technique has been used for the FLIP, ADO, and LACO-OFDM techniques. We acknowledge that precoding techniques for PAPR reduction have been explored in the context of OFDM and ACO-OFDM systems. However, we want to emphasize our manuscript's unique contributions and innovations introduced by Algorithm 1. Algorithm 1 presents the emulation procedures for the transmitter side, which can be used for the previously mentioned approaches to mitigating the drawbacks of the high PAPR issue, while Algorithm 2 is employed to emulate receiver procedures. The effectiveness of Algorithm 1 lies in its ability to achieve significant PAPR reduction while maintaining robust performance across different VLC techniques. Our experimental results demonstrate the superior performance of the proposed technique compared to existing PAPR results for the conventional MCM approaches, particularly in terms of bit error rate (BER) performance and the absence of side information requirements. Furthermore, the novelty of Algorithm 1 lies in its adaptability and versatility, enabling seamless integration with various VLC techniques without compromising performance or complexity. By providing insights into the design rationale and performance evaluation of Algorithm 1, our paper contributes to advancing the state-of-the-art in PAPR reduction for the FLIP, DCO, ADO, ACO, LACO, and ASCO-OFDM techniques in VLC communication systems. Section 6 illustrates a comparison between the results achieved and results from related studies. ```
1. K = \(\log_{2}\) M; \(\leftarrow\) Number of bits per symbol and M is constellation order
2. Z, N; \(\leftarrow\) Number of OOFDM symbols and Number of subcarrier
3. ifOOFDM is DCO or OOFDM is FLIP or OOFDM is ADOthen
4. symbols\({}_{frame}=\) N/2; Number of modulated symbol per OOFDM frame
5. Else
6. ifOOFDM is ACOthen
7. symbols\({}_{frame}=\) N/4;
8. endif
9. Else
10. ifOOFDM is ASCOor OOFDM is two LACOthen
11. symbols\({}_{frame}=\) 3N/4;
12. endif
13. endif
14. \(TX=[\ ]\), \(PAP_{TOTAL}=[\ ]\);
15. bitssize = K * symbols\({}_{frame}*\) Z; Total transmitted bits
16. bits = GenerateRandomBits (bitssize); Generated transmitted bits
17. Symbols\({}_{frame}=\) QAM\({}_{\text{mod}}(bits)\); Modulate the generated bits depend on the constellation order. Symbols\({}_{\text{organised}}=\) Matrix\(\big{(}\) Symbols, symbols\({}_{frame},Z\big{)}\); Matrix form based on symbols number of the OOFDM approach and Z. 19 for\(i=1:Z\)do \(X_{S}=\) Symbols\({}_{organised}\)\(\big{(}\)symbols\({}_{frame},i\big{)}\); Select the transmitted symbols for each frame
20. for\(\text{m}=1:\) symbols\({}_{frame}\)
21. for\(\text{n}=1:\) symbols\({}_{frame}\)
22. \(\mathbf{pc_{cmm}}(\text{m},\text{n})=\big{(}\)sqrt\(\big{(}\)\(\(\frac{2}{\text{symbols}_{frame}+1}\)\(\text{m}-1)*(\text{n}-1)\)\(\big{)}\big{)}\);
23. endfor
24. endfor
25. \(X_{precode}=\big{[}X_{S}\ ^{T}*\mathbf{pc_{cmm}}\big{]}^{T}\); Precoded modulated symbols
26. \(X_{H}=\) Symbols\({}_{\text{arrangement}}\Big{(}X_{precode}\Big{)}\); Symbols arrangement based on OOFDM approach as described in Section 3. 27. \(x=\) IFFT\((X_{H})\), Convert to time domain
28. if\(OOFDM\) is DCO or OOFDM is ADOthen
29. \(x_{clipped}=\) [ \(x+F_{\text{DC}}\)], \(F_{\text{DC}}\) the dc level and \(x_{clipped}\) time domain zero clipped signal
30. else
31. ifOOFDM is ACO or OOFDM is FLIP or OOFDM is ASCOor OOFDM is LACOthen
32. \(x_{clipped}=\) [ \(x\)] \({}_{e}\)
33. endif
34. endif
35. \(x_{\text{cp}}=x_{clipped}+\) CP, Add cyclic prefix
36. \(x_{peak}=\) max\(\Big{(}\big{|}x_{cp}\big{|}^{2}\Big{)}\), Peak power calculation
37.