1.1. Optical Orthogonal Codes
Optical orthogonal codes (OOCs) were proposed by Chung, Salehi, and Wei [
1] as a multiple access technique for optical fibre networks. These codes can be used in a great variety of wide-band code division multiple access environments, enabling a large number of users to transmit information asynchronously, efficiently, and reliably. They can also have applications in mobile radio, frequency-hopping spread spectrum communications, radar, sonar signal design, etc. This has motivated the wide study of OOCs, and many constructions and bounds about OOCs with particular parameters are known.
OOCs with equal auto- and cross-correlation constraints were studied first [
2,
3,
4,
5,
6,
7,
8]. Yang and Fuja showed in [
9] that a significant increase in the maximal number of codewords (for the given parameters) is possible by letting the auto-correlation constraint exceed the cross-correlation constraint and that, for a given performance requirement, the OOC may be one with unequal constraints.
OOCs have multiple relations to other combinatorial structures, such as partial designs, difference families, and other types of codes [
2,
6,
7,
10,
11]. The OOCs that are studied in the present paper can also be considered as constant-weight unequal error protection codes with two levels of protection [
9,
12].
1.2. Basic Definitions and Notations
For the basic concepts and notations concerning optical orthogonal codes, we followed [
13,
14]. We denote by
the ring of integers modulo
v. A
-optical orthogonal code (OOC) is a set
of binary vectors of length
v called
codewords, all of Hamming weight
k (with
k nonzero coordinates), such that two arbitrary cyclic shifts
,
of a codeword
intersect in at most
coordinates and two arbitrary cyclic shifts
,
of any distinct codewords
intersect in at most
coordinates. For our purposes, however, it is much more convenient to consider the set of indexes of the nonzero coordinates of a codeword and the following definition of an OOC.
Definition 1 ([
13])
. A -OOC can be defined as a collection of k-subsets (codeword-sets) of such that any two distinct translates of a codeword-set share at most elements, while any two translates of two distinct codeword-sets share at most elements: Condition (1) is called the auto-correlation property and (2) the cross-correlation property. The integers v and k are called the length and the weight of the code. The size of is the number s of its codeword-sets. A -OOC is also denoted by -OOC.
Let us consider communication via an optical network with a code division multiple access system, where s users transmit information simultaneously. Each of the s codewords of the OOC is assigned to one user of the network. The correlation constraints make it possible for a user to start a successful transmission at any time. At the transmitting end, each information bit is encoded into a frame of v optical chips, and each user transmits data only to k chips (according to the nonzero coordinates of the assigned codeword).
Consider a codeword-set . Denote by the multiset of the values of the differences . The auto-correlation property means that at most differences are the same. Denote by the underlying set of .
Definition 2 ([
13])
. The type of C is the number of elements of , i.e., the number of different values of its differences. The type of a codeword is the type of the codeword-set corresponding to it. If , the cross-correlation property means that for two distinct codeword-sets and of the -OOC. When we construct OOCs with cross-correlation , we choose the codewords in such a way that their difference sets do not intersect. That is why, if we are only interested in the OOC existence problem for some parameters, we can use the following definition.
Definition 3. Two codeword-sets and (and their corresponding codewords) are equivalent if .
An example of a
-OOC is presented in
Figure 1.
Definition 4 ([
9])
. An OOC is optimal if its size reaches a parameter-dependent upper bound. Definition 5 ([
15])
. Two optical orthogonal codes and are multiplier equivalent if they can be obtained from one another by an automorphism of and the replacement of codeword-sets by some of their translates. OOCs with
were first investigated in [
9]. There are already several papers on
- and
-OOCs [
13,
14,
15,
16,
17,
18].
A
-OOC can have codewords of type
. Each difference should appear in at most one codeword, and there are
differences from
. That is why a natural upper bound on the maximum size
of a
-OOC (first obtained in [
9]) can be derived by supposing that all the codewords of the OOC are of the smallest possible type
, namely:
Further results, however, show that this bound is attained by a very small number of codes. There are almost no optimal codes with respect to it. That is why better bounds have been derived for
[
13] and
[
14]. The next two cases
and
are of practical importance as well, but have not yet been explicitly considered.
1.3. The Present Paper
In the present work, we studied the properties of -OOCs with or 7. Our investigation was computer-aided. We used our own software written for this particular problem in C++. For the smallest lengths, we found all codes up to multiplier equivalence. For bigger lengths, we determined the number of codewords in a maximal code, and finally, for all lengths up to 720 for and 340 for , we calculated an upper bound on the size of a maximal code.
Section 2 describes the methods that were used; the results are described in
Section 3, and the conclusion and open problems are the subjects of
Section 4.