# FPGA-Based Pulse Compressor for Ultra Low Latency Visible Light Communications
## 3 Communication Protocol  
### Transmission Modulation  
In the protocol proposed in this work, the data are represented by a continuous bitstream (0, 1 values) that feeds the modulator. The modulator applies the chirp coding as described below. Data are modulated by a linear chirp (1) selected among 3 different choices. These chirps feature the same frequency content but different temporal durations. The bandwidth \(B\) = 1.7 MHz (\(F_{Min}\)= 100 kHz, \(F_{Max}\) = 1.8 MHz), common to the 3 of them, is selected to fit the features of the LED employed in the transmitter, like it will be clarified in Section 5.2, and grants a temporal resolution of \(\mathrm{W}=1/B=588\) ns. The durations of the chirps differ and are set to \(T\) = 4.48, 8.96 and 17.92 \(\mathrm{\SIUnitSymbolMicro s}\), respectively. The corresponding \(BT\) was 6.8, 13.6, 27.2. The modulator is implemented in a digital processor, where the signals are sampled at rate \(T_{TC}\) = 80 ns (\(1/T_{TC}=12.5\) MHz). The 3 chirps are thus composed by \(N_{S}=T/T_{TC}\) = 56, 112, 224 samples, respectively. Table 1 summarizes the chirps features. \begin{table}
\begin{tabular}{c c c c} \hline
**Parameter** & **Chirp 1** & **Chirp 2** & **Chirp 3** \\ \hline \(B\) & 1.7 MHz & 1.7 MHz & 1.7 MHz \\ \hline \(F_{Min}\) & 100 kHz & 100 kHz & 100 kHz \\ \hline \(F_{Max}\) & 1.8 MHz & 1.8 MHz & 1.8 MHz \\ \hline \(T\) & 4.48 \(\mathrm{\SIUnitSymbolMicro s}\) & 8.96 \(\mathrm{\SIUnitSymbolMicro s}\) & 17.92 \(\mathrm{\SIUnitSymbolMicro s}\) \\ \hline \(BT\) & 6.8 & 13.6 & 27.2 \\ \hline \(\mathrm{W}\) & 588 ns & 588 ns & 588 ns \\ \hline \(T_{TC}\) & 80 ns & 80 ns & 80 ns \\ \hline \(N_{S}\) & 56 & 112 & 224 \\ \hline \end{tabular}
\end{table} 
Table 1: Features of the chirps. In this protocol we transmitted the chirp for every '1' bit of the bitstream, whereas for '0' bit the chirp was not transmitted. We transmitted a new bit every 8 \(T_{TC}\), i.e., every 640 ns. This time fits with the system resolution of W = 1/B = 588 ns. Since a new chirp is potentially transmitted every 8 \(T_{TC}\), the transmission signal is composed by the summation of more chirps overlapped with different phases. When a sequence of all '1' is transmitted, the maximum number of chirps must be summed up for every time instant; this maximum is:  
\[N_{C}=\frac{T}{T_{B}}. \tag{6}\]  
The maximum corresponds to \(N_{C}\) = 7, 14, 28 for the 3 chirps of Table 1, respectively. The transmission signal can be formally represented by:  
\[RF_{tx}(n)=\sum_{i=|\frac{n}{g}|+N_{C}-1}^{|\frac{n}{g}|+N_{C}-1}B_{i}\cdot CH_ {P}[(n-8i)\cdot T_{TC}] \tag{7}\]  
Here \(CH_{P}(t)\) is the periodic extension of \(CH(t)\) with period \(T\); \(B_{x}\) is the bit at position 'x' in the bitstream and has value '0' or '1'; \(n\) is the sample index; and \(|x|\) represents the integer part of \(x\). Figure 2 reports an example generated in MATLAB that clarifies the modulation scheme for the chirp with \(T\) = 4.48 \(\upmu\). The horizontal axis represents index sample \(n\); the distance among the grid vertical lines is of \(T_{B}\) = 8 samples. In the upper part, the seven rows report as many chirp signals delayed of \(T_{B}\) one with respect to the previous. The chirps repeat periodically every \(T\) = 7:\(T_{B}\) = 56 samples. In the example, the arbitrary bitstream \"110111010101101\" is transmitted with LSB first, and every chirp is labelled with the associated bit (Bit 0-13 in the figure). Chirps corresponding to '0' and '1' bits are represented in gray and blue colors,  
Figure 2: Example of the modulation scheme. The \(RF_{tx}(n)\) (bottom) is obtained by summing up the chirps delayed by \(T_{B}\) and zeroed for ’0’ bits. Here the arbitrary 14-bit sequence “11011101011011” is transmitted with LSB first. respectively. The transmission signal \(RF_{tx}(n)\), shown in the bottom part of the figure, is obtained by summing the seven signals at the same temporal index. Each signal is a chirp if the bit is '1' or a null signal if the bit is '0'.