CDMA - PhoenixDave/firstsite GitHub Wiki

CDMA

Code division multiple access (CDMA) belongs to the family of channel partitioning protocols. In a CDMA protocol, each bit being sent is encoded by multiplying the bit by a signal (the code) that changes at a much faster rate (known as the chipping rate) than the original sequence of data bits. In a binary direct-sequence system, each chip is typically a rectangular pulse of +1 or –1 amplitude, which is multiplied by a data sequence (similarly +1 or –1 representing the message bits) and by a carrier waveform to make the transmitted signal. The chips are therefore just the bit sequence out of the code generator; they are called chips to avoid confusing them with message bits.

How to recover bits for receiver on CDMA? Suppose multiple nodes are sending bits to a receiver R over CDMA wireless network. How can we recover the bits at the receiver's end?

The answer lies in that CDMA works under the assumption that the interfering transmitted bit signals are additive. R recover each transmitted bit (i.e., -1 or +1) by computing the normalized inner product of the aggregate signal and individual sender code. If a node did not transmit, then the result will be zero. For example, CDMA code being used by one sender is (1, 1, 1, -1, 1, -1, -1, -1) and by 2nd sender (1, -1, 1, 1, 1, -1, 1, 1). R get's aggregate signal as (-1, +1, -1, +2, -1, +1, -2, +1).

Thus Sender 1's bit = 1/8 * (1, 1, 1, -1, 1, -1, -1, -1) . (-1, +1, -1, +2, -1, +1, -2, +1) = 0 Sender 2's bit = 1/8 * (1, -1, 1, 1, 1, -1, 1, 1) . (-1, +1, -1, +2, -1, +1, -2, +1), etc.