Code division multiple access (CDMA) is a channel access method utilized by various radio communication technologies. It should not be confused with the mobile phone standards called cdmaOne and CDMA2000 (which are often referred to as simply "CDMA"), that use CDMA as their underlying channel access methods.
One of the basic concepts in data communication is the idea of allowing several transmitters to send information simultaneously over a single communication channel. This allows several users to share a bandwidth of frequencies. This concept is called multiplexing. CDMA employs spread-spectrum technology and a special coding scheme (where each transmitter is assigned a code) to allow multiple users to be multiplexed over the same physical channel. By contrast, time division multiple access (TDMA) divides access by time, while frequency-division multiple access (FDMA) divides it by frequency. CDMA is a form of "spread-spectrum" signaling, since the modulated coded signal has a much higher data bandwidth than the data being communicated.
An analogy to the problem of multiple access is a room (channel) in which people wish to communicate with each other. To avoid confusion, people could take turns speaking (time division), speak at different pitches (frequency division), or speak in different directions (spatial division). In CDMA, they would speak different languages. People speaking the same language can understand each other, but not other people. Similarly, in radio CDMA, each group of users is given a shared code. Many codes occupy the same channel, but only users associated with a particular code can understand each other.
Each user in a CDMA system uses a different code to modulate their signal. Choosing the codes used to modulate the signal is very important in the performance of CDMA systems. The best performance will occur when there is good separation between the signal of a desired user and the signals of other users. The separation of the signals is made by correlating the received signal with the locally generated code of the desired user. If the signal matches the desired user's code then the correlation function will be high and the system can extract that signal. If the desired user's code has nothing in common with the signal the correlation should be as close to zero as possible (thus eliminating the signal); this is referred to as cross correlation. If the code is correlated with the signal at any time offset other than zero, the correlation should be as close to zero as possible. This is referred to as auto-correlation and is used to reject multi-path interference.
In general, CDMA belongs to two basic categories: synchronous (orthogonal codes) and asynchronous (pseudorandom codes).
Synchronous CDMA exploits mathematical properties of orthogonality between vectors representing the data strings. For example, binary string "1011" is represented by the vector (1, 0, 1, 1). Vectors can be multiplied by taking their dot product, by summing the products of their respective components. If the dot product is zero, the two vectors are said to be orthogonal to each other. (Note: If u=(a,b) and v=(c,d), the dot product u.v = a*c + b*d) Some properties of the dot product help to understand how W-CDMA works. If vectors a and b are orthogonal, then
Each user in synchronous CDMA uses an orthogonal codes to modulate their signal. An example of four mutually orthogonal digital signals is shown in the figure. Orthogonal codes have a cross-correlation equal to zero; in other words, they do not interfere with each other. In the case of IS-95 64 bit Walsh codes are used to encode the signal to separate different users. Since each of the 64 Walsh codes are orthogonal to one another, the signals are channelized into 64 orthogonal signals. The following example demonstrates how each users signal can be encoded and decoded.
Each user is associated with a different code, say v. If the data to be transmitted is a digital zero, then the actual bits transmitted will be –v, and if the data to be transmitted is a digital one, then the actual bits transmitted will be v. For example, if v=(1,–1), and the data that the user wishes to transmit is (1, 0, 1, 1) this would correspond to (v, –v, v, v) which is then constructed in binary as ((1,–1),(–1,1),(1,–1),(1,–1)). For the purposes of this article, we call this constructed vector the transmitted vector.
Each sender has a different, unique vector v chosen from that set, but the construction method of the transmitted vector is identical.
Now, due to physical properties of interference, if two signals at a point are in phase, they add to give twice the amplitude of each signal, but if they are out of phase, they "subtract" and give a signal that is the difference of the amplitudes. Digitally, this behaviour can be modelled by the addition of the transmission vectors, component by component.
If sender0 has code (1,–1) and data (1,0,1,1), and sender1 has code (1,1) and data (0,0,1,1), and both senders transmit simultaneously, then this table describes the coding steps:
|Step||Encode sender0||Encode sender1|
|0||vector0=(1,–1), data0=(1,0,1,1)=(1,–1,1,1)||vector1=(1,1), data1=(0,0,1,1)=(–1,–1,1,1)|
Because signal0 and signal1 are transmitted at the same time into the air, they add to produce the raw signal:
(1,–1,–1,1,1,–1,1,–1) + (–1,–1,–1,–1,1,1,1,1) = (0,–2,–2,0,2,0,2,0)
This raw signal is called an interference pattern. The receiver then extracts an intelligible signal for any known sender by combining the sender's code with the interference pattern, the receiver combines it with the codes of the senders. The following table explains how this works and shows that the signals do not interfer with one another:
|Step||Decode sender0||Decode sender1|
|0||vector0=(1,–1), pattern=(0,–2,–2,0,2,0,2,0)||vector1=(1,1), pattern=(0,–2,–2,0,2,0,2,0)|
Further, after decoding, all values greater than 0 are interpreted as 1 while all values less than zero are interpreted as 0. For example, after decoding, data0 is (2,–2,2,2), but the receiver interprets this as (1,0,1,1).
We can also consider what would happen if a receiver tries to decode a signal when the user has not sent any information. Assume signal0=(1,-1,-1,1,1,-1,1,-1) is transmitted alone. The following table shows the decode at the receiver:
|Step||Decode sender0||Decode sender1|
|0||vector0=(1,–1), pattern=(1,-1,-1,1,1,-1,1,-1)||vector1=(1,1), pattern=(1,-1,-1,1,1,-1,1,-1)|
When the receiver attempts to decode the signal using sender1’s code, the data is all zeros, therefore the cross correlation is equal to zero and it is clear that sender1 did not transmit any data.
The previous example of orthogonal Walsh sequences describes how 2 users can be multiplexed together in a synchronous system, a technique that is commonly referred to as Code Division Multiplexing (CDM). The set of 4 Walsh sequences shown in the figure will afford up to 4 users, and in general, an NxN Walsh matrix can be used to multiplex N users. Multiplexing requires all of the users to be coordinated so that each transmits their assigned sequence v (or the complement, -v) starting at exactly the same time. Thus, this technique finds use in base-to-mobile links, where all of the transmissions originate from the same transmitter and can be perfectly coordinated.
On the other hand, the mobile-to-base links cannot be precisely coordinated, particularly due to the mobility of the handsets, and require a somewhat different approach. Since it is not mathematically possible to create signature sequences that are orthogonal for arbitrarily random starting points, unique "pseudo-random" or "pseudo-noise" (PN) sequences are used in Asynchronous CDMA systems. A PN code is a binary sequence that appears random but can be reproduced in a deterministic manner by intended receivers. These PN codes are used to encode and decode a users signal in Asynchronous CDMA in the same manner as the orthogonal codes in synchrous CDMA (shown in the example above). These PN sequences are statistically uncorrelated, and the sum of a large number of PN sequences results in Multiple Access Interference (MAI) that is approximated by a Gaussian noise process (following the "central limit theorem" in statistics). If all of the users are received with the same power level, then the variance (e.g., the noise power) of the MAI increases in direct proportion to the number of users. In other words, unlike synchronous CDMA, the signals of other users will appear as noise to the signal of interest and interfere slightly with the desired signal in proportion to number of users.
All forms of CDMA use spread spectrum process gain to allow receivers to partially discriminate against unwanted signals. Signals encoded with the specified PN sequence (code) are received, while signals with different codes (or the same code but a different timing offset) appear as wideband noise reduced by the process gain.
Since each user generates MAI, controlling the signal strength is an important issue with CDMA transmitters. A CDM (Synchronous CDMA), TDMA or FDMA receiver can in theory completely reject arbitrarily strong signals using different codes, time slots or frequency channels due to the orthogonality of these systems. This is not true for Asynchronous CDMA; rejection of unwanted signals is only partial. If any or all of the unwanted signals are much stronger than the desired signal, they will overwhelm it. This leads to a general requirement in any Asynchronous CDMA system to approximately match the various signal power levels as seen at the receiver. In CDMA cellular, the base station uses a fast closed-loop power control scheme to tightly control each mobile's transmit power. See Near-far problem for further information on this problem.
Most importantly, Asynchronous CDMA offers a key advantage in the flexible allocation of resources. There are a fixed number of orthogonal codes, timeslots or frequency bands that can be allocated for CDM, TDMA and FDMA systems, which remain underutilized due to the bursty nature of telephony and packetized data transmissions. There is no strict limit to the number of users that can be supported in an Asynchronous CDMA system, only a practical limit governed by the desired bit error probability, since the SIR (Signal to Interference Ratio) varies inversely with the number of users. In a bursty traffic environment like mobile telephony, the advantage afforded by Asynchronous CDMA is that the performance (bit error rate) is allowed to fluctuate randomly, with an average value determined by the number of users times the percentage of utilization. Suppose there are 2N users that only talk half of the time, then 2N users can be accommodated with the same average bit error probability as N users that talk all of the time. The key difference here is that the bit error probability for N users talking all of the time is constant, whereas it is a random quantity (with the same mean) for 2N users talking half of the time.
In other words, Asynchronous CDMA is ideally suited to a mobile network where large numbers of transmitters each generate a relatively small amount of traffic at irregular intervals. CDM (Synchronous CDMA), TDMA and FDMA systems cannot recover the underutilized resources inherent to bursty traffic due to the fixed number of orthogonal codes, time slots or frequency channels that can be assigned to individual transmitters. For instance, if there are N time slots in a TDMA system and 2N users that talk half of the time, then half of the time there will be more than N users needing to use more than N timeslots. Furthermore, it would require significant overhead to continually allocate and deallocate the orthogonal code, time-slot or frequency channel resources. By comparison, Asynchronous CDMA transmitters simply send when they have something to say, and go off the air when they don't, keeping the same PN signature sequence as long as they are connected to the system.
CDMA can also effectively reject narrowband interference. Since narrowband interference affects only a small portion of the spread spectrum signal, it can easily be removed through notch filtering without much loss of information. Convolution encoding and interleaving can be used to assist in recovering this lost data. CDMA signals are also resistant to multipath fading. Since the spread spectrum signal occupies a large bandwidth only a small portion of this will undergo fading due to multipath at any given time. Like the narrowband interference this will result in only a small loss of data and can be overcome.
Another reason CDMA is resistant to multipath interference is because the delayed versions of the transmitted pseudorandom codes will have poor correlation with the original pseudorandom code, and will thus appear as another user, which is ignored at the receiver. In other words, as long as the multipath channel induces at least one chip of delay, the multipath signals will arrive at the receiver such that they are shifted in time by at least one chip from the intended signal. The correlation properties of the pseudorandom codes are such that this slight delay causes the multipath to appear uncorrelated with the intended signal, and it is thus ignored.
Some CDMA devices use a rake receiver, which exploits multipath delay components to improve the performance of the system. A rake receiver combines the information from several correlators, each one tuned to a different path delay, producing a stronger version of the signal than a simple receiver with a single correlator tuned to the path delay of the strongest signal.
Frequency reuse is the ability to reuse the same radio channel frequency at other cell sites within a cellular system. In the FDMA and TDMA systems frequency planning is an important consideration. The frequencies used in different cells need to be planned carefully in order to ensure that the signals from different cells do not interfere with each other. In a CDMA system the same frequency can be used in every cell because channelization is done using the pseudorandom codes. Reusing the same frequency in every cell eliminates the need for frequency planning in a CDMA system; however, planning of the different pseudorandom sequences must be done to ensure that the received signal from one cell does not correlate with the signal from a nearby cell.
Since adjacent cells use the same frequencies, CDMA systems have the ability to perform soft handoffs. Soft handoffs allow the mobile telephone to communicate simultaneously with two or more cells. The best signal quality is selected until the handoff is complete. This is different than hard handoffs utilized in other cellular systems. In a hard handoff situation, as the mobile telephone approaches a handoff, signal strength may vary abruptly. In contrast, CDMA systems use the soft handoff, which is undetectable and provides a more reliable and higher quality signal.