The concept behind multiple access is to permit a number of users to share a common channel. The two traditional ways of multiple access are Frequency Division Multiple Access (FDMA) and Time Division Multiple Access (TDMA).
In Frequency Division Multiple Access, the frequency band is divided in slots. Each user gets one frequency slot assigned that is used at will. It could be compared to AM or FM broadcasting radio where each station has a frequency assigned. FDMA demands good filtering.
In Time Division Multiple Access, the frequency band is not partitioned but users are allowed to use it only in predefined intervals of time, one at a time. Thus, TDMA demands synchronization among the users.
CDMA, for Code Division Multiple Access, is different than those traditional ways in that it does not allocate frequency or time in user slots but gives the right to use both to all users simultaneously. To do this, it uses a technique known as Spread Spectrum. In effect, each user is assigned a code which spreads its signal bandwidth in such a way that only the same code can recover it at the receiver end. This method has the property that the unwanted signals with different codes get spread even more by the process, making them like noise to the receiver.
Spread Spectrum is a mean of transmission where the data occupies a larger bandwidth than necessary. Bandwidth spreading is accomplished before the transmission through the use of a code which is independent of the transmitted data. The same code is used to demodulate the data at the receiving end. The following figure illustrate the spreading done on the data signal x(t) by the spreading signal c(t) resulting in the message signal to be transmitted, m(t).
Originally for military use to avoid jamming (interference created on purpose to make a communication channel unusable), spread spectrum modulation is now used in personal communication systems for its superior performance in an interference dominated environment.
In spread spectrum, the data is modulated by a spreading signal which uses more bandwidth than the data signal. Since multiplication in the time domain corresponds to convolution in the frequency domain, a narrow band signal multiplied by a wide band signal ends up being wide band. One way of doing this is to use a binary waveform as a spreading function, at a higher rate than the data signal.
Here the three signals corresponds to x(t), c(t) and m(t) discussed above. The first two signals are multiplied together to give the third waveform.
Bits of the spreading signal are called chips. On the above figure, Tb represents the period of one data bit and Tc represents the period of one chip. The chip rate, 1/Tc, is often used to characterize a spread spectrum transmission system.
The Processing Gain or sometimes called the Spreading Factor is defined as the ratio of the information bit duration over the chip duration:
PG = SF = Tb / Tc
Hence, it represents the number of chips contained in one data bit. Higher Processing Gain (PG) means more spreading. High PG also means that more codes can be allocated on the same frequency channel (more on that later).
So far we haven't discussed what properties we would want the spreading signal to have. This depends on the type of system we want to implement. Let's first consider a system where we want to use spread spectrum to avoid jamming or narrow band interference.
If we want the signal to overcome narrow band interference, the spreading function needs to behave like noise. Random binary sequences are such functions. They have the following important properties:
- Balanced: they have an equal number of 1's and 0's
- Single Peak auto-correlation function
In fact, the auto-correlation function of a random binary sequence is a triangular waveform as in the following figure, where TC is the period of one chip:
Hence the spectral density of such a waveform is a sinc function squared, with first zeros at ± 1/TC
PN sequences are periodic sequences that have a noise like behavior. They are generated using shift registers, modulo-2 adders (XOR gates) and feedback loops. The following diagram illustrates this:
The maximum length of a PN sequence is determined by the length of the register and the configuration of the feedback network. An N bits register can take up to 2N different combinations of zeros and ones. Since the feedback network performs linear operations, if all the inputs (i.e. the content of the flip-flops) are zero, the output of the feedback network will also be zero. Therefore, the all zero combination will always give zero output for all subsequent clock cycles, so we do not include it in the sequence. Thus, the maximum length of any PN sequence is 2N-1 and sequences of that length are called Maximum-Length Sequences or m-sequences. They are useful because longer sequences have better properties (this page explains a little more). Feedback configurations for m-sequences are tabulated and can be found in the literature.
PN sequences are therefore periodic noise like binary functions generated by a network of feedback loops, modulo-2 adders and flip-flops. Maximum length PN functions have a period of 2N-1.
The advantage of CDMA for personal communication services is its ability to accommodate many user on the same frequency at the same time. As we mentioned earlier, a specific code is assigned to each user and only that code can demodulate the transmitted signal.
There are two ways of separating users in CDMA:
- Orthogonal Multiple Access
- Non-orthogonal Multiple Access or Asynchronous CDMA
Each user is assigned one or many orthogonal waveform derived from an orthogonal code. Since the waveforms are orthogonal, users with different codes do not interfere with each other. Orthogonal-CDMA or O-CDMA requires synchronization among the users, since the waveforms are orthogonal only if they are aligned in time.
An important set of orthogonal code is the Walsh set. Walsh functions are generated using an iterative process of constructing a Hadamard matrix. starting with H1 = . The Hadamard matrix is built by:
For example, here are the Walsh-Hadamard codes of length 2 and 4 respectively:
From the corresponding matrix, the Walsh-Hadamard codewords are given by the rows. Note that we usually map the binary data to polar form so we can use real numbers arithmetic when computing the correlations. So 0's are mapped to 1's and 1's are mapped to -1.
Walsh-Hadamard codes are important because they form the basis for orthogonal codes with different spreading factors. This property becomes useful when we want signals with different Spreading Factors to share the same frequency channel. The codes that posses this property are called Orthogonal Variable Spreading Factor (OVSF) codes. To construct such codes, it is better to use a different approach than matrix manipulation. Using a tree structure allows better visualization of the relation between different code length and orthogonality between them.
For example, let's see if the second codeword of W2 which we will denote W2.2 and the third codeword of W4, W4.3, are orthogonal. Since they are of different length, we repeat W2.2 to match the length of W4.3. Hence we get the following two codewords, in polar form:
W2.2 => (1 -1 | 1 -1) and W4.3 => (1 1 -1 -1)
Computing the orthogonality, we get: (multiplying elements by elements)
(1 x 1) + (-1 x 1) + (1 x -1) + (-1 x -1) = 1 - 1 - 1 + 1 = 0
Hence, W2.2 and W4.3 are orthogonal.
However, the auto-correlation function of Walsh-Hadamard codewords does not have good characteristics. It can have more than one peak and therefore, it is not possible for the receiver to detect the beginning of the codeword without an external synchronization scheme. The cross-correlation can also be non zero for a number of time shifts and un-synchronized users can interfere with each other. This is why Walsh-Hadamard codes can only be used in synchronous CDMA.
Walsh-Hadamard codes do not have the best spreading behavior. They do not spread data as well as PN sequences does because their power spectral density is concentrated in a small number of discrete frequencies.
The concept behind this is to give up orthogonality among users and reduce the interference by using spread spectrum techniques. PN sequences are used to spread the spectrum. The family of PN sequences, called Gold sequences are in particular popular for non-orthogonal CDMA. Gold sequences have only three cross-correlation peaks, which tend to get less important as the length of the code increases. They also have a single auto-correlation peak at zero, just like ordinary PN sequences.
Gold sequences (codes) are constructed from the modulo-2 addition of two maximum length preferred PN sequences. By shifting one of the two PN sequence, we get a different Gold sequence. This property can be use to generate codes which will permit multiple access on the channel.
The use of Gold sequences permits the transmission to be asynchronous. The receiver can synchronize using the auto-correlation property of the Gold sequence.
Other Information on CDMA
Here is a short list of sites of interests which provides information on spread spectrum and CDMA: