## 1 Introduction
Further, there are four types of encoding: spread spectrum by direct sequence OCDMA (DS-SS-OCDMA), which is based on the concept of binary sequence spreading of each user; secondly, the temporal phase encoding (TPE: temporal phase-encoded OCDMA) where the data is modulated by the phase; thirdly, the spectral encoding in amplitude (SAC: spectral amplitude coding OCDMA), which consists of modulating the spectrum of each user by an amplitude value; fourthly, the spectral encoding in phase (SPE: spectral phase encoding OCDMA), where the spectrum is modulated by phase modulation [2; 4; 11; 13]. In the 1D case, two families of codes exist according to the construction method: the codes with non-zero cross-correlation and the codes with zero cross-correlation. The first family is characterized by the presence of PIIN noise such as FCC, MDW, DEU, and DCS codes published in [19; 20; 21; 22], whereas the second family is characterized by the absence of this noise such as ZCC, PTZCC, and MD, published in [5; 8; 23; 24]. Moreover, the optical code length is directly linked by the increase in the number of users; this property causes a significant degradation in terms of multiplexing capacity and the signal-to-noise ratio SNR. In order to solve the problem of code length and improve the capacity of the one-dimensional system, studies have been directed towards two-dimensional codes; therefore, several researchers have proposed two-dimensional codes by combining between two parameters among these parameters: spectral, spatial, time, and polarization. Currently, there are three combinations (spectral/time, spectral/spatial, and time/spatial). In [5], the Single Weight Zero Cross-Correlation code based on 1D-SWZCC was proposed, and furthermore, the PIIN noise is completely suppressed due to the property of zero cross-correlation. In [7], a two-dimensional half spectral/spatial zero cross-correlation code has been proposed, where the effect of PIIN is always absent; in addition, the system complexity has been reduced to half thanks to the ZCC property. In [8], [PERSON]'s triangle zero cross-correlation code is developed. In [25], the Perfect Difference code is constructed to reduce the effect of PIIN. In [26], the two-dimensional Dynamic Cyclic Shift code has been developed for the purpose of removing PIIN noise by using a method of cancellation property of the MAI. In [27], two-dimensional Diagonal Eigen value Unity code is also proposed. In [28], the two-dimensional multi-diagonal code is proposed. Despite the advantages of two-dimensional codes, the increase in the capacity of a two-dimensional system makes it possible to increase the spatial or even temporal length depending on the code construction method. This is due to the relation that links the spatial or temporal length to the number of subscribers. Thus, an increase in the number of users causes an increase in the number of spatial components or the slot duration (time difference) of each user at spectral/spatial and spectral/time, respectively. This increase leads to the degradation of performance and increases the error rate; the system becomes very complex due to a large number of encoding and decoding devices. To control these negative characteristics, several codes have been realized in order to reduce the code length and make the system applicable. In [10], the three-dimensional code (3D-SWZCC) is also developed to eliminate the effect of PIIN based on the two-dimensional spectral/time code 2D-SWZCC, and a one sequence 1D-SWZCC for the spatial code, where the system became efficient due to the ZCC property. In [11], a three-dimensional code (3D-PTZCC) is based on three sequences of the same PTZCC code, where PIIN is suppressed due to the property of ZCC. In [12], a three-dimensional multi-diagonal (3D-MD) code has been developed where the PIIN noise is totally suppressed. In [13], a three-dimensional perfect difference code (3D-PD) code is proposed in order to remove the effect of PIIN.