MATLAB Implementation of Multiuser Code Division Multiple Access
MATLAB Implementation of Multiuser Code Division Multiple Access
40
AbstractSome of the difficulties in the study of new generation wireless mobile systems are lack of practical
implementation for various strategies like, multiuser code division multiple accesses, assigning radio resources using DS-
SS, use of orthogonal codes etc. In this paper we are going to discuss some of the above stated problems with their
implementation issues. CDMA is a scheme by which multiple users are assigned radio resources using DS-SS
techniques. Although all users are transmitting in the same RF band, individual users are separated from each other via
the use of orthogonal codes. Capacity is defined as the total number of simultaneous users the system can support, and
quality is defined as the perceived condition of a radio link assigned to a particular user. We have use MATLAB as a
simulation tool and result shows how multi-user CDMA performs under certain circumstances.
Index TermsMulti-user CDMA, Hadamard code, Walsh code, Orthogonal code, MATLAB
2011 JOT
http://sites.google.com/site/journaloftelecommunications/
JOURNAL OF TELECOMMUNICATIONS, VOLUME 7, ISSUE 2, MARCH 2011
41
characteristics of a random multi access below once and invert diagonally as shown in
channel. While random multi access channels the above example. For the given seed,
generally require retransmission in case of
collisions, CDMA systems allow detection of
0 0
individual users even in the presence of multi H 2 =
access interference without necessitating 0 0
retransmission. Consequently, a larger number
of users can be accommodated in a CDMA Therefore, to derive a set of four orthogonal
system by allowing multiple access Walsh sequences W0, W1, W2, and W3, we
interference (MAI) in the uplink channel. Since only need to generate a Hadamard matrix of
the number of semi-orthogonal codes is not order 4 [2], or
fixed, CDMA systems are said to be of soft
capacity. [5]
0 0 0 0
1.3 Orthogonal Codes H2 H 2 0 1 0 1
Two general categories of spreading sequences H4= =
have been used: PN (pseudo noise or H2 H 2 0 0 1 1
pseudorandom number) sequences and
0 1 1 0
orthogonal codes. PN sequences are the most
common ones used in FHSS systems and DSSS
systems not employing CDMA. In DSSS
CDMA systems, both PN and orthogonal 2. RELATED WORK
codes have been used. In this article, I'll The first cellular networks were based on
examine orthogonal sequences. When the DS- analog radio transmission technologies such as
CDMA system can be guaranteed to be Advance Mobile Phone System (AMPS). [7]
synchronous, it is preferable to use orthogonal
sequences for spreading. This results in the
complete elimination of MAI.
The main purpose of Walsh codes in CDMA is 2.2 Ongoing Research On CDMA
to provide orthogonality among all the users 1. Increase capacity by joint decoding
in a cell. Each user traffic channel is assigned a (multiuser detection & interference
different Walsh code by the base station. cancellation)
2. Applying CDMA to other applications:
Rule of Thumb: For generating the matrix is optical CDMA, adhoc networks, dense
for a given seed repeat it over right once and wireless LANs
2011 JOT
http://sites.google.com/site/journaloftelecommunications/
JOURNAL OF TELECOMMUNICATIONS, VOLUME 7, ISSUE 2, MARCH 2011
42
3. MATLAB IMPLEMENTATION
M2(t) * W2(t) = -1 -1 +1 +1 -1 -1 +1 +1 +1 +1 -1 -1
MATLAB has evolved over a period of years
M3(t) * W3(t) = +1 -1 -1 +1 -1 +1 +1 -1 -1 +1 +1 -1
with input from many users.
In university environments, it is the standard
instructional tool for introductory and The spread-spectrum signals for all three
advanced courses in mathematics, messages, M1 (t) * W1 (t), M2 (t) * W2 (t), and
engineering, and science. In industry, M3 (t) * W3 (t), are combined to form a
MATLAB is the tool of choice for high composite signal C (t); that is,
productivity research, development, and
analysis. [4].
C(t) = M1(t) * W1(t) + M2(t) * W2(t) + M3(t) * W3(t)
The resulting C (t) is
C(t) = -1 -1 -1 +3 -1 -1 +3 -1 -1 +3 -1 -1
M 1 = [+ 1 1 + 1]
C(t)W2(t) = 1 1 -1 3 1 1 3 -1 1 -3 -1 1
M 2 = [+ 1 +1 1] M2(t) = 4 4 -4
M 3 = [ 1 +1 + 1]
C(t)W3(t) = 1 -1 -1 -3 1 -1 3 1 1 3 -1 1
There respective codes are as follows:
M3(t) = -4 4 4
W 0 = [ 1 1 1 1]
m(t) = 1 if M(t) > 0
W 1 = [ 1 + 1 1 + 1] m(t) = -1 if M(t) < 0
W 2 = [ 1 1 + 1 + 1]
m(t) 1 -1 1
W 3 = [ 1 + 1 + 1 1]
m(t) 1 1 -1
The signal to be transmitted is calculated to be m(t) -1 1 1
M (t) * W (t). This is shown:
2011 JOT
http://sites.google.com/site/journaloftelecommunications/
JOURNAL OF TELECOMMUNICATIONS, VOLUME 7, ISSUE 2, MARCH 2011
43
s (t ) = 2 P S d (t ) g (t ) rcv(t ) = 2 Ps d (t )
The multiplication of the data sequence with In CDMA we do modulation twice. First with
the spreading sequence is the first modulation. a binary sequence g(t), the properties of which
Then the signal is multiplied by the carrier we will discuss below and then by a carrier.
which is the second modulation. The carrier The binary sequence modulation ahead of the
here is analog. carrier modulation accomplishes two
functions,
2011 JOT
http://sites.google.com/site/journaloftelecommunications/
JOURNAL OF TELECOMMUNICATIONS, VOLUME 7, ISSUE 2, MARCH 2011
44
-1
Performance of multiuser CDMA
10
Now add the noise, data1
data2
BER
for i=1:sn
-3
EbNo = EbNovec(i); 10
data1
for m=1:spred2 data2
data3
data4
data5
if r(m)<0.5 then 10
-2
data6
data7
rth(m)=-1;
BER
else
rth(m)=1; 10
-3
r1(m)=(rth(m)+1)/2;
1.
Figure 5: Result of BER versus Eb\No for multi- users
Now perform XOR operation with the result
which you are getting from above code and
then find out the error from the result. Then 5. CONCLUSION
plot the graph. The error finding and plotting The interested student can follow the
code is also given below. procedure given in this paper to understand
the behavior of multiuser CDMA. Also one
ber2(i)=numerrs2/spred2; can use the xilinx spartan II Board for the
disp(['EbNo = ' num2str(EbNo) ' dB, ' transmission. The switches of the board can be
num2str(numerrs2) ...' errors, used as input to the system. On the other hand
BER2 = ' num2str(ber2(i))]) the same board can be used to receive the
Here BER = Bit Error Rate signals. The LEDs of second board or seven
The plotted graph may look like this, segment display will act as a output device.
-1
Performance of multiuser CDMA This can be achieved by synchronizing these
10
data1 two boards.
-2
10
REFERENCES
[1] David Tse and Pramod Viswanath, Fundamental of
BER
-3
10 wireless communication, Cambridge university press,
2005.
-4
[2] G. Giunta, Basic note on Spread Spectrum CDMA
10
signals, reviewed for the Academic course of Digital
Signal Processing of the Third University of Rome, May
-5
10 2000.
0 2 4 6 8 10 12 14
EbNo (dB) [3] Qualcomm CDMA University, Engineering
Figure 3: Result of BER versus Eb\No for single user Introduction to CDMA.
[4] Gang Xu, Implementation Issues of Multi-user
Detection in CDMA Communication Systems, and the
department of Master of Science Electrical and
2011 JOT
http://sites.google.com/site/journaloftelecommunications/
JOURNAL OF TELECOMMUNICATIONS, VOLUME 7, ISSUE 2, MARCH 2011
45
2011 JOT
http://sites.google.com/site/journaloftelecommunications/