As a simple introduction to CDMA systems, Section 7.5 simplified the design issues associated with spreading codes. This topic is important for operators planning to deploy WLL systems based on CDMA because they will need to assign families of spreading codes to particular cells.
Capacity(%)
100 80
60
40 20
0
Error (dB)
0 0.5 1 1.5 2 2.5 3 3.5 4
Figure 7.12 Sensitivity to power-control error in CDMA systems.
In an isolated CDMA cell, each user’s signal is spread by a particular spreading code. Spreading codes should be orthogonal so they do not generate interference. Two codes are orthogonal to each other if, when they are multiplied over the length of the spreading code and the total summed, the result is zero, regardless of whether the code was carrying user data corresponding to a 1 or a 0. That is best illustrated by a sequence of examples. To allow the sequence to fit on the page, a spreading factor of 8 has been used, that is, for every bit of user information, 8 bits of the spreading code are transmitted. In practice, a spreading factor of typically around 64 would be used. In the examples, the spreading waveforms have been shown as sequences of 1s and −1s, while the user data has been shown as 0s and 1s. This is shown diagrammatically in Figure 7.13.
Moving to this numerical representation, it is now possible to exam- ine how orthogonal codes work in more detail. First, consider how the receiver decodes the wanted signal by multiplying the received signal by a copy of the spreading sequence held in the receiver. Assume that the spreading sequence is 1,−1, 1,−1, 1,−1, 1,−1, as shown in Figure 7.13.
User data—waveform User data—numeric equivalence
Spreading waveform
Spreading numerical equivalence
Resultant waveform
Resultant numerical equivalence
−1 1 −1 1 −1 1 −1 1 −1 1 −1 1 −1 1 −1 1 −1 1
1 1 −1 1 −1 1 −1 1 −1−1 1 −1 1 −1 1 −1 1 −1
1 0
Figure 7.13 Numeric representation of CDMA waveforms.
112 Introduction to Wireless Local Loop
Transmit (data = 1) 1 −1 1 −1 1 −1 1 −1
Receiver codeword 1 −1 1 −1 1 −1 1 −1
Multiplication 1 1 1 1 1 1 1 1 =8
Transmit (data = 0) −1 1 −1 1 −1 1 −1 1
Receiver codeword 1 −1 1 −1 1 −1 1 −1
Multiplication −1 −1 −1 −1 −1 −1 −1 −1 = −8
The effect is that when the received waveform is multiplied by the spreading code and integrated over the period of one bit of user data, the output of the correlator is either 8 or−8, corresponding to a 1 or a 0 in the user datastream. (If a spreading code of length 64 had been used, the output would have been either 64 or−64.)
Now it so happens that a spreading sequence of 1, 1,−1,−1, 1, 1,
−1, −1 (i.e., a square wave with half the periodicity of our spreading sequence) is orthogonal to our spreading sequence. Using the same multiplication process, but now assuming that two subscribers are trans- mitting at the same time, the following multiplication occurs in the base station.
Transmit (data = 1) 1 −1 1 −1 1 −1 1 −1
Interferer (data = 1) 1 1 −1 −1 1 1 −1 −1
Received signal 2 0 0 −2 2 0 0 −2
Receiver codeword 1 −1 1 −1 1 −1 1 −1
Multiplication 2 0 0 2 2 0 0 2 =8
Transmit (data = 0) −1 1 −1 1 −1 1 −1 1
Interferer (data = 1) 1 1 −1 −1 1 1 −1 −1
Received signal 0 2 −2 0 0 2 −2 0
Receiver codeword 1 −1 1 −1 1 −1 1 −1
Multiplication 0 −2 −2 0 0 −2 −2 0 = −8
It can be seen that the output from the correlator is the same despite the fact that an interfering signal was on the channel. Next, consider the situation in which the interferer is sending user data corresponding to a 0.
Transmit (data = 1) 1 −1 1 −1 1 −1 1 −1
Interferer (data = 0) −1 −1 1 1 −1 −1 1 1
Received signal 0 −2 2 0 0 −2 2 0
Receiver codeword 1 −1 1 −1 1 −1 1 −1
Multiplication 0 2 2 0 0 2 2 0 =8
Transmit (data = 0) −1 1 −1 1 −1 1 −1 1
Interferer (data = 0) −1 −1 1 1 −1 −1 1 1
Received signal −2 0 0 2 −2 0 0 2
Receiver codeword 1 −1 1 −1 1 −1 1 −1
Multiplication −2 0 0 −2 −2 0 0 −2 = −8
So whatever is transmitted by the interferer and by the wanted user, the correlator produces the same result as if there were no interferer.
Clearly the signals are orthogonal. More orthogonal interferers can be added without having any effect on the wanted signal. Even if the inter- ferers are received with different power from the transmitter, the correct result still is achieved, as demonstrated next.
Transmit (data = 1) 1 −1 1 −1 1 −1 1 −1
Interferer (data = 1) 2 2 −2 −2 2 2 −2 −2
Received signal 3 1 −1 −3 3 1 −1 −3
Receiver codeword 1 −1 1 −1 1 −1 1 −1
Multiplication 3 −1 −1 3 3 −1 −1 3 =8
Transmit (data = 0) −1 1 −1 1 −1 1 −1 1
Interferer (data = 1) 2 2 −2 −2 2 2 −2 −2
Received signal 1 3 −3 −1 1 3 −3 −1
Receiver codeword 1 −1 1 −1 1 −1 1 −1
Multiplication 1 −3 −3 1 1 −3 −3 1 = −8
The only time this relationship does not hold is if the received signals are not synchronized so that the transitions in the spreading sequences occur at different times. That would occur if the subscriber units were different distances from the base station and so experiencing different propagation delays. That situation can be ameliorated through the use of timing advance commands from the base station to tell the subscriber unit to change its internal clock by the propagation delay being experienced.
114 Introduction to Wireless Local Loop
This is one of the key differences between the use of CDMA for mobile and WLL purposes. In the mobile case, synchronization on the uplink is almost impossible to achieve because of the movement of the mobile, resulting in variable propagation delays. Hence, the uplink is designed to accept asynchronous input, resulting in a lower system capacity. In WLL systems, there is no movement; hence, through the use of timing advance mechanisms when the subscriber unit is set up, a synchronous system can be produced. That allows a lesser reliance on pseudo-noise(PN) codes (which are more tolerant to asynchronization than Walsh codes), with resulting lower interference and greater capacity.
CDMA actually is better suited for WLL applications than it is for mobile applications.
These codes are actually two of the so-called Walsh code family. The complete family is given by:
Code 0 1 1 1 1 1 1 1 1
Code 1 1 1 1 1 −1 −1 −1 −1
Code 2 1 1 −1 −1 −1 −1 1 1
Code 3 −1 −1 1 1 −1 −1 1 1
Code 4 1 −1 −1 1 1 −1 −1 1
Code 5 1 −1 −1 1 −1 1 1 −1
Code 6 1 −1 1 −1 1 −1 1 −1
Code 7 −1 1 −1 1 1 −1 1 −1
All the codes are orthogonal to each other, which can be demon- strated by multiplying any code by any other code; the result will always be 0.
In a single cell in isolation, each channel can be given a separate Walsh code and the maximum system capacity can be reached. The problem comes when a number of neighboring cells use the same frequency. To prevent excessive interference, all the users in all the neighboring cells need different spreading sequences. However, there are only as many sequences as the code length, whereas there will be many more interfer- ing users than that. Of course, one solution would be not to let neigh- boring cells use the same frequency, but the result of that would be a much lower system capacity than could otherwise be the case.
For a long time, researchers thought that the problem meant that CDMA could not be used for commercial applications. The breakthrough came with the realization that if nearly orthogonal codes were used rather than fully orthogonal codes the interference between different users would not be too severe, although greater than for the orthogonal case.
A family of near-orthogonal codes is PN codes. The good thing about PN codes is that there literally are millions of them, overcoming the limita- tions of Walsh codes.
A PN code is a sequence of 1s and 0s that repeats periodically. PN code sequences have the property that if multiplied by themselves the result has the same magnitude as the length of the sequence (in the same way that the orthogonal codes resulted in+8 or−8). If multiplied by the same sequence but shifted in time by any number of bits, the result is−1 (unlike orthogonal codes, where the result was 0).
A number of different approaches have been taken to the use of Walsh and PN codes in commercial mobile CDMA systems and in WLL systems.
In the mobile systems, there is a tendency to give users separate PN codes, since they could roam into any cell and there is a need to ensure that they do not generate interference wherever they are. In WLL systems, a simpler approach can be adopted, since a subscriber unit always uses a particular cell.
The approach adopted for WLL systems in one particular cell has been to use the Walsh sequences to spread the signals but then to multiply the signal by a PN code at the same rate as the Walsh code. That does not result in any further spreading, because the data rates are the same.
Indeed, multiplying all the transmitted sequences by the same PN code does not affect their orthogonality (although multiplying each by a different PN code would). Hence, within a particular cell, the perform- ance is unchanged. In a neighboring cell, the same approach is adopted but with a different PN code. Thus, users in neighboring cells might be using the same Walsh code but different PN codes. The result is that the users do not interfere severely, as would be the case if PN codes were not used. However, because the PN codes are not orthogonal, there is limited interference between the different users.
In one of the most advanced CDMA WLL system currently available, the AirLoop system from Lucent (described in detail in Chapter 12), 16 different PN codes are allowed. The network planner must make sure
116 Introduction to Wireless Local Loop
that the PN codes are assigned to neighboring cells in much the same way that frequencies are assigned in a cluster pattern in a FDMA/TDMA system. That is, there should be at least one cell between two cells that use the same frequency and the same PN code. In practice, that is simple to achieve because sixteen codes are more than adequate. However, it does provide an extra planning stage, of which the network designer must be aware.