Although using DSSS it is not possible to decode a signal unless the correct spreading code is used in the receiver, using CDMA, it is also necessary to ensure that the minimum level of mutual interference is caused between different users accessing a base station.
To ensure the minimum levels of interference orthogonal spreading codes must be used. Being orthogonal, the different CDMA signals are able to operative with little mutual interference.
The CDMA spreading codes are used to increase the bandwidth of the signal to gain the benefits of spread spectrum communications, but reducing the mutual interference requires the codes are orthogonal. There are different types of orthogonal code that can be used for CDMA as discussed later.
CDMA codes and correlation
The concept of CDMA is based around the fact that a data sequence is multiplied by a spreading code or sequence which increases the bandwidth of the signal. Then within the receiver the same spreading code or sequence is used to extract the required data. Only when the required code is used, does the required data appear from the signal.
The process of extracting the data is called correlation. When a code exactly the same as that used in the transmitter is used, then it is said to have a correlation of one and data is extracted. When a spreading code that does not correlate is used, then the data will not be extracted and a different set of data will appear. This means that it is necessary for the same spreading code to be used within the transmitter and receiver for the data to be extracted.
Unlike when used for covert communications with direct sequence spread spectrum, CDMA codes for telecommunications applications are not required to provide call security, much as this is required. Instead the CDMA codes create a uniqueness to enable call identification.
CDMA codes should not correlate to other codes or time shifted version of itself for optimum performance. Spreading codes are noise like pseudo-random codes, channel codes are designed for maximum separation from each other and cell identification codes are arranged not to correlate to other codes of itself.
CDMA code types
There are several types of codes that can be used within a CDMA system for providing the spreading function:
- PN codes: Pseudo-random number codes (pseudo-noise or PN code) can be generated very easily. These codes will sum to zero over a period of time. Although the sequence is deterministic because of the limited length of the linear shift register used to generate the sequence, they provide a PN code that can be used within a CDMA system to provide the spreading code required. They are used within many systems as there is a very large number that can be used.
A feature of PN codes is that if the same versions of the PN code are time shifted, then they become almost orthogonal, and can be used as virtually orthogonal codes within a CDMA system.
- Truly orthogonal codes: Two codes are said to be orthogonal if when they are multiplied together the result is added over a period of time they sum to zero. For example a codes 1 -1 -1 1 and 1 -1 1 -1 when multiplied together give 1 1 -1 -1 which gives the sum zero. An example of an orthogonal code set is the Walsh codes used within the IS95 / CDMA2000 system.
UMTS / WCDMA uses is arranged so that the spreading process is achieved by directly combining the baseband information to high chip rate binary code.
A figure known as the Spreading Factor is the ratio of the chips to baseband information rate. Spreading factors vary from 4 to 512 in FDD UMTS where the chip rate is 3.84Mchips/s.
The orthogonal spreading codes used within CDMA play a vital role in ensuring that the maximum efficiency and number of users can be gained. The use of orthogonal codes against random codes provide a useful increase in effectiveness of the system, reducing mutual interference between users.