## 3 Performance Evaluation of Combinations of Modulation and Spreading Code Techniques  
### Combinations of Modulation and Spreading Code Techniques  
Table 9 shows the eight symbols that can be expressed in three-bit blocks according to the OOK, PPM, DPPM, MPPM, DPIM, and DH-PIM. The OOK, PPM, and MPPM have a fixed number of slots regardless of symbol values, and the DPPM, DPIM, and DH-PIM vary in the number of slots according to symbol values. The OOK, PPM, and MPPM can know the transmitted symbol by detecting the start and end of the pulse. As all three know the end if they detect the start, they should add a leading '1' to indicate the start of the transmission before the first symbol. As the DPPM ends with '1', the symbol can be known by the number of '0's transmitted before '1' is reached. The DPIM and DH-PIM can identify symbols with a number of '0's after a '1', and cannot know the symbols because the number of '0's in the last symbol is unknown. In this case, we should mark the end of the transmission by appending a trailing '1' to the end of the last symbol. We used zero GS for the modulation techniques because optical spreading codes are very sparse codes, and two or more successive '0's precede a very sparse '1'. The possible modulation schemes according to the size of the bit input block are shown in Table 10. As slot size increases, the number of slots required for modulation increase linearly in the OOK, but those in the PPM, DPPM, DPIM, and DH-PIM increase exponentially, and that of the MPPM increases exponentially but relatively mildly. \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**Groups** & \multicolumn{3}{c}{\(i\)} & \multicolumn{3}{c}{**MPC Sequence**} & \multicolumn{3}{c}{**MPC Sequence Code**} \\ \hline \(x\) & \(a_{0}\) & \(a_{1}\) & \(a_{2}\) & \(a_{3}\) & & & \\ \hline
0 & 0 & 0 & 0 & 0 & \(S_{0}^{\prime}\) & \(C_{0}^{\prime}=10000\) & \(10000\) & \(10000\) & \(00000\) \\
1 & 0 & 1 & 2 & 3 & \(S_{1}^{\prime}\) & \(C_{1}^{\prime}=10000\) & \(01000\) & \(000100\) & \(00000\) \\
2 & 0 & 2 & 4 & 1 & \(S_{2}^{\prime}\) & \(C_{2}^{\prime}=10000\) & \(00100\) & \(00001\) & \(01000\) & \(00000\) \\
3 & 0 & 3 & 1 & 4 & \(S_{3}^{\prime}\) & \(C_{3}^{\prime}=10000\) & \(00010\) & \(01000\) & \(00001\) & \(00000\) \\
4 & 0 & 4 & 3 & 2 & \(S_{4}^{\prime}\) & \(C_{4}^{\prime}=10000\) & \(00001\) & \(00010\) & \(10000\) & \(00000\) \\ \hline \hline \end{tabular}
\end{table} 
Table 7: Modified prime code (MPC) sequences \(S_{i}^{\prime}\) constructed for \(p=5\) and \(w=4\). \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Characteristics** & **OOC (\(N,w,1\))** & **PC** & **MPC** \\ \hline Length & \(N\) & \(p^{2}\) & \(p^{2}\) \\ Weight & \(w\) & \(p\) & \(w\) \\ Peak auto-correlation & 1 & \(p\) & \(w\) \\ Peak cross-correlation & 1 & 1 & 1 \\ Cardinality & \(\lfloor\frac{N-1}{w(w-1)}\rfloor\) & \(p\) & \(p\) \\ Bit error probability (\(P_{sc}\)) & \(\frac{1}{2}\sum\limits_{i=0}^{w}\,(-1)^{i}(\frac{w}{2N})^{M-1}\) & \(\frac{1}{2}\sum\limits_{i=0}^{p}\,(-1)^{i}(\frac{p}{i})\,\left(1-\frac{i}{2p} \right)^{M-1}\) & \(\frac{1}{2}\sum\limits_{i=0}^{w}\,(-1)^{i}(\frac{w}{i})\,\left(1-\frac{iw^{2}} {2p^{2}}\right)^{M-1}\) \\ \hline \hline \end{tabular}
\end{table} 
Table 8: Performance comparison of optical spreading codes. If the bit input block is partitioned into several block sizes according to Table 10, the number of slots according to each modulation scheme is as shown in Table 11. In the block partitioning column, the OOK, PPM, DPPM, and MPPM use a leading '1' to indicate the start of transmission, and the DPIM and DH-PIM use a trailing '1' to indicate its end. Splitting the bit input block into several smaller partitions requires fewer slots to be transferred than using a single large partition. However, as the number of '1's for transmitting pulses is determined according to the number of partitions, the number of pulses to be transmitted increases when a plurality of small partitions is used and decreases when a large partition is used.