## 3 Simulation Setup  
The proposed system was simulated in MATLAB(r) Simulink(r). A block diagram of the simulation model is shown in Figure 8. The \"data source\" block generates the \(m^{th}\) independent uniformly distributed pseudorandom symbols, \(x^{m}(t)\), which are then modulated by the \"m-CAP modulator\", resulting in the \(m^{th}\) independent modulated bands, corresponding to the \(y_{a}(t)\) signal. A low-pass filter is added at the modulator output, which corresponds to \(h(t)\), the combined impulse response of the DAC, LED driver, LED, and VLC channel. The VLC channel response is considered to be unitary. AWGN is added to the received signal, which is demodulated by the \(m^{th}\) independent analog receiver. A BER analysis was performed at the output of each receiver, by comparing the demodulated data with the original data, for each band. The simulation ran until it reached one of two conditions: (1) 100 errors were found; (2) 10\({}^{7}\) symbols were simulated. In order to  
Figure 7: m-CAP frequency spectrum for \(\beta=1\) and \(\beta=0.5\): as \(\beta\) decreases, the band spacing increases. guarantee good resolution for lower Eb/No, at least 2000 symbols were simulated for every point. Table 1 summarizes the general simulation parameters used in the simulation setup. Two filter types were considered for the analog receiver: Bessel and Butterworth, both of the third order. Regarding the emitter, three pulse shaping filters, \(p(t)\), were studied: raised cosine filter, matched Bessel filter, and matched Butterworth filter. Table 2 shows the parameters chosen for the raised cosine filter. The implementation of \(F_{I}^{m}\) and \(F_{Q}^{m}\) followed a Finite Impulse Response (FIR) filter architecture. In order to design the raised cosine filter, a symbol span of 10 was selected in order to effectively mitigate the energy in the side lobes, due to the filter time span truncation. The samples per symbol, \(SPS\), parameter is defined as:  
\[SPS=\left\lceil\frac{F_{s}}{R}\right\rceil \tag{22}\]  
From Equation (22), the \(SPS\) parameter assumes a value of 40. The total number of coefficients of the designed raised cosine filter is 401; hence, \(F_{I}^{m}\) and \(F_{Q}^{m}\) will also have the same number of coefficients. In order to allow a fair comparison between the raised cosine filters and the matched filters, the same number of coefficients for all the simulation \begin{table}
\begin{tabular}{c c} \hline \hline
**Parameter** & **Value** \\ \hline Simulation time step & 50 ps \\ Modulator sampling frequency (\(F_{s}\)) & 2 MHz \\ LPFbandwidth (6 th order) (\(h(t)\)) & 1 MHz \\ Number of bands (m) & 10 \\ Band bandwidth (B) & 100 kHz \\ QAM modulation order & 4 \\ Symbol rate (\(R\)) & 50 kS/s \\ Maximum simulated symbols & 10\({}^{7}\) \\ Minimum simulated symbols & 2000 \\ Number of error threshold & 200 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: System simulation parameters. \begin{table}
\begin{tabular}{c c} \hline \hline
**RCFilter Parameter** & **Value** \\ \hline roll-off factor (\(\beta\)) & [0, 0.25, 0.5, 0.75, 1] \\ samples per symbol & 40 \\ symbol span & 10 \\ total number of coefficients & 401 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Raised cosine filter simulation parameters. Figure 8: Simulation model block diagram. scenarios was considered, regardless of the \(p(t)\) used. The Figure 9 illustrates the matched filter generation steps. The generation of the matched filters considered the original analog filters' impulse response. The impulse response of the analog filter, \(g(t)\), was sampled at \(F_{s}\), and the obtained samples (Figure 9a) would directly be the coefficients of an FIR filter, which were time reversed. Moreover, in order to guarantee synchronism between the matched filter impulse response and the carrier, a negative delay was introduced: by doing this, the filter coefficients were shifted to the left side. The remaining coefficients, at the end, were set to zero (Figure 9b).