A code division multiplexing method of performing code division multiplexing of a plurality of signals by using a code matrix, the code matrix comprising a plurality of chips and a plurality of code words, wherein each vector of a first direction of the code matrix represents one of the code words and each vector of a second direction of the code matrix represents a set of the chips, the number of code words being the same as the number of the plurality of signals, the method comprising:
- generating a plurality of products by multiplying teach signal of the plurality of signals by each chip of a corresponding code word of the plurality of code words;
- and
- forming a plurality of multiplexed signals by calculating a sum of the products generated from a set of chips, for each set of chips,
- wherein there is no orthogonal property between the code words of the code matrix;
- wherein only one term in a difference or sum of two sets of chips is not zero;
- and
- wherein the code matrix is:
- A
- =
- [
- a
- i
- ,
- j
- ]
- a
- i
- ,
- j
- =
- {
- b
- ,
- i
- ≤
- j
- -
- b
- ,
- i
- >
- j
-
-
- or
-
-
- {
- b
- ,
- i
- ≥
- j
- -
- b
- ,
- i
- <
- j
- wherein, b can be an arbitrary number other than zero.