Keywords

1 Introduction

Optical code division multiple access (OCDMA) is considered as one of the most promising technologies for the next generation broad-band access network, OCDMA schemes are classified as either incoherent or coherent OCDMA based on their operation principle. The incoherent techniques, which work on an optical-power- intensity basis, process OCs in a unipolar (0, 1) manner, and coherent techniques, working on a field-amplitude basis, process OCs in a bipolar (+1, −1) manner all optically [13]. Incoherent OCDMA which Optical Orthogonal Code (OOC) is widely used in has been studied since 1990s [4, 5], and there are many constrainers and bounds on size of these codes in the literature [2]. Recently, coherent OCDMA using ultra-short optical pulse has been receiving increasing attention due to the advances in reliable and compact en/decoder devices and detection schemes [1, 68], however the OC set appropriate for coherent OCDMA has not yet been created. Gold codes as an effective alternative are widely used for coherent OCDMA at present [3, 9, 10], but Gold which is designed for the optimization of periodic correlation property cannot realize the optimization of aperiodic correlation property for coherent OCDMA [10], so an appropriate method to select OCs for coherent OCDMA is very necessary.

2 Definition

Codes for coherent OCDMA based on temporal phase en/decoding is bipolar, code (1, 0) is respectively relevant to (+1, −1). Sequential pulses within a bit interval are copies of a unitary optical pulse, and therefore they are coherent. However, pulses from different bit interval are incoherent since they come from different origin, so aperiodic correlation is appropriate for measuring the codes’ property of coherent OCDMA. If code is denoted by (+1, −1), aperiodic correlation is defined as follows.

Aperiodic auto-correlation:

$$ R_{xx} \left( m \right) = \sum\limits_{i = 1}^{N{-}\left| m \right|} {x_{i} x_{i + \left| m \right|} } \quad m{ = 0,} \pm1 ,\pm2, \cdots, \pm\left( {N {-} 1} \right) $$
(2.1)

Aperiodic cross-correlation:

$$ \begin{aligned} R_{xy} \left( m \right) &= \sum\limits_{i = 1}^{N{-}m} {x_{i} y_{i + m} } \quad m = 0, 1, 2, \ldots, N{-}1 \\ R_{xy} \left( m \right) &= \sum\limits_{i = 1}^{N{-}\left| m \right|} {y_{i} x_{i + \left| m \right|} } \quad m = 0, -1, -2, \ldots, -\left( {N{-}1} \right)\\ \end{aligned} $$
(2.2)

Bipolar periodic correlation is given and followed as a contrast. Periodic auto-correlation:

$$ R_{xx} \left( m \right) = \sum\limits_{i = 1}^{N} {x_{i} x_{i + \left| m \right|} } \quad m = 0, \pm1, \pm2, \cdots, \pm\left( {N-1} \right) $$
(2.3)

Periodic cross-correlation:

$$ \begin{aligned} R_{xy} \left( m \right) &= \sum\limits_{i = 1}^{N} {x_{i} y_{i + m} } \quad m = 0,1, 2, \ldots, N-1 \\ R_{xy} \left( m \right) &= \sum\limits_{i = 1}^{N} {y_{i} x_{i + \left| m \right|} } \quad m = -1, -2, \ldots, -\left( {N-1} \right) \\ x_{i} ,y_{i} &= 1 \; or \; -1\quad {x_{i} = x_{i + N} } \quad {y_{i} = y_{i + N} } \\ \end{aligned} $$
(2.4)

Aperiodic and periodic correlations are clearly distinguished from their definitions.

The ratio of aperiodic auto-correlation peak and the maximum of wing (P/W) and the ratio of aperiodic auto-correlation peak and the maximum of aperiodic cross-correlation (P/C) are the measurement of aperiodic auto- and cross-correlation properties respectively [3, 11].

$$ P/W = \left( {\frac{{R_{xx} \left( 0 \right)}}{{{\text{Max}}\left( {\left| {R_{xx} \left( m \right)} \right|} \right)}}} \right)^{ 2} \quad m = \pm1, \pm2, \cdots, \pm\left( {N-1} \right) $$
(2.5)
$$ P/C = \left( {\frac{{R_{xx} (0)}}{{{\text{Max}}(\left| {R_{xy} (m)} \right|)}}} \right)^{ 2} \, m = 0, \pm1, \pm2, \cdots, \pm(N-1) $$
(2.6)

Analyzing the features of aperiodic auto- and cross-correlation, some basic rules are listed as follows:

  1. Proposition 1:

    Code (x1, x2, …, xN) and (xN, xN−1, …, x1) have the same aperiodic auto-correlation property.

  2. Proposition 2:

    Code (x1, x2, …, xN) and (−x1, −x2, …, −xN) have the same aperiodic auto-correlation property.

From Proposition 1 and Proposition 2, asymmetric code has the same aperiodic auto-correlation property as three other codes.

  1. Proposition 3:

    Code (x1, x2, …, xN) and (xN, x1, …, xN−1) have the different aperiodic auto-correlation property. That is the obvious difference between aperiodic and periodic correlation property.

3 Differential Algorithm

Codes based on the optimization of aperiodic correlation have not been created and it is impossible to judge aperiodic correlation property of all codes, so it is very urgent to discover an appropriate method for realizing the optimal aperiodic correlation property of OCs. Differential algorithm is proposed to extend code set having good aperiodic auto-correlation property, its fundament is to obtain new codes from original codes using differential algorithm, and then decide whether to save these new codes through judging P/W one by one, so the number of new code set can be gradually grown under the control of iterative times (as Fig. 2.1).

Fig. 2.1
figure 1

Flow chart of differential algorithm

The differential formula is defined as follows:

$$ \begin{gathered} b_{k} = a_{k} \oplus b_{k-1} \,b_{k} = a_{k} \oplus b_{k-1} \hfill \\ b_{0} = 1{\text{ or 0}}\,k = 1,2, \cdots \cdots ,N \hfill \\ \end{gathered} $$
(2.7)

Where ⊕ denotes modulo 2 addition, and a k , b k represent for the kth element of original code and new code respectively, so four new codes are generated from one code through the proposed differential algorithm.

Differential algorithm can promise good aperiodic auto-correlation property of new codes through setting appropriate threshold. As an example, 18 Gold codes with 127-chip which are randomly selected from a set of Gold codes are used as original codes, and the targeted threshold of aperiodic auto-correlation property is 50. Figure 2.2 shows that the obtained code number grows with the iterative times. After 10 times, we get 67162 codes whose aperiodic auto-correlation property are all beyond 50. Obviously, capacity is 3713 times bigger than original codes and can be farther grown by adding iterative times. To some extend the number of obtained codes is divergent for this threshold which is receivable for coherent OCDMA system, the result shows that differential algorithm is appropriate to extend code set. Figure 2.3 shows the comparison of P/W between a set of Gold codes which is used for selecting original codes and obtained codes by differential algorithm. Bold line and thin line give the P/W frequency of new codes and the set of Gold codes whose capacity is 127×129 because of proposition 3. Figure 2.4 also shows that P/W of that set of Gold codes and new codes is concentrated in 40 and 80 respectively, so global P/W of OC set is distinctly improved by differential algorithm.

Fig. 2.2
figure 2

Capacity increased with iterative times

Fig. 2.3
figure 3

Comparison between a set of gold and the result of differential algorithm

Fig. 2.4
figure 4

Diagram of cross searching algorithm

Each user is assigned a unique signature OC which can distinguish itself from other users in the OCDMA system [12], every user has a unique couple of encoder and decoder designed by the assigned code, encoders are used for encoding the optical pulse from every user, and then decoders which are matched for different encoders are used for decoding the encoding signal, so original pulse signal from different users are recovered respectively. In the circumstance of ignoring noise, interrupts among users’ decoding signal are dominant for recovering signal pulse, and P/C of different user codes are the measurement of interrupts in coherent OCDMA system, so it is critical for coherent OCDMA to search codes having big P/C of each other.

4 Cross Searching Algorithm

In essence, the process of searching codes for OCDMA is to drag a sub-set which has enough big P/C of each other from code set having big P/W. In this paper, cross searching algorithm is given to do this work. Now we have M codes which P/W satisfy the demand, the flow of choosing N codes whose P/C > V from M codes as follows:

  1. (1)

    Built a M×M zero-matrix, the value of (i, j) is prepared for the P/C of code i and code j, k = 1;

  2. (2)

    Calculate the values of P/C between code k and code k + 1, k + 2, …, M, through judging if P/C > V, respectively put 1 or 0 to the relevant position of matrix (k, k + 1), (k, k + 2), …, (k, M) (region B), region A is the same as B, calculating K(1) which denotes the number of nonzero in k-th row and saving nonzero column number (m, n, …). If K(1) > N − 1 continue next step, else k = k + 1, and return to (2);

  3. (3)

    Calculate the values of P/C between code m and code m+1, m +2, …, M, through judging if P/C > V, respectively put 1 or 0 to the relevant position of matrix (m + 1, m), (m + 2, m), …, (M, m) (region C), calculating K(2) which denotes the number of the same element whose value is 1 between (k, m + 1), (k, m + 2),…, (k, M) (region D) and (m + 1, m), (m + 2, m), …, (M, m) (region C) and saving the same element (n, l,…). If K(2) > N−2, so two codes are chosen, continue next step, else k = k + 1, and return to (2);

  4. (4)

    Calculate the values of P/C between code n and code n + 1, n + 2, …, M, through judging if P/C > V, respectively put 1 or 0 to the relevant position of matrix (n + 1, n), (n + 2, n), …, (M, n), calculating K(3) which denotes the number of the same element whose value is 1 between (k, n + 1),(k, n + 2),···(k, M) (region F) and (n + 1, n), (n + 2, n), …, (M, n) (region E) and saving the same element (l, …). If K(3) > N − 3, so three codes are chosen, continue next step, else k = k + 1, and return to (2);

  5. (5)

    Next step is the same as 3 or 4, and terminate until N codes are chosen.

Figure 2.4 shows the process of searching, ellipses show the region of codes needed to be filled with appropriate value 1 or 0 in every step.

The algorithm reduces effectively the unnecessary calculating time by judging the possibility of finding enough optical codes in next steps when every new code is added to the selected code set, and promises that P/C of the code set is beyond threshold by judging the P/C between every new code and the chosen codes.

As an example, 49 OCs P/W > 40 and P/C > 22 are obtained by cross searching algorithm from 129 Gold codes. Figure 2.5 shows the aperiodic correlation, and the value of diagonal denotes P/W of codes, and the value of (x, y) denotes the P/C between code x and code y. We can take a comparison between above result and OC set (as Fig. 2.6) which is widely used in OCDMA system [11], there are only 17 OC that satisfy the P/W > 42 and P/C > 20.5. Our result has the obvious advantage comparing to that, so the differential and cross searching algorithm we proposed are very useful.

Fig. 2.5
figure 5

Aperiodic correlation properties of 49 OC

Fig. 2.6
figure 6

OC subset used widely in OCDMA system

5 Conclusion

Coherent OCDMA system based on Super Structured Fiber Bragg Gratings (SSFBG) and Planar Lightwave Circuits (PLC) has been the most promising technologies because of the advantages of all optical processing, soft capacity on demand, protocol transparency. An important factor to realize OCDMA system is the OCs’ optimization of aperiodic correlation property. The paper obtains three fundamental rules from the definition of aperiodic correlation, and proposes a novel differential algorithm for extending the code set and improving the global aperiodic auto-correlation property, and cross searching algorithm is firstly given for the optimization of aperiodic cross-correlation property. The result shows that the OC set obtained by our methods is obviously better than the used OC set in capacity and aperiodic correlation property. This improvement means that we establish good base for next work to realize multi-user coherent OCDMA system.