CDMA – code division multiple access - form of “spread spectrum” (modulated signals have much larger BW than data being communicated) Fundamental concept in data communication: multiple transmitters send simultaneously over a single channel. TDMA, FDMA, CDMA Many people in a room: (1) take turns = TDMA (2) different pitches = FDMA (3) different language = CDMA Technical Details: TX locally generated code runs a much higher rate than data – transmit XOR of code and data Tb: data signal pulse duration Tc: code signal pulse duration Tc << Tb => BW of spread spectrum much larger than BW of original RX XORs with same code to recover data bits Each user uses a different code to modulate their signal - code selection criterion - How is data recovery done? XOR received signal with code - want codes for different user to be “orthogonal” 1 1 1 1 1 1 -1 -1 1 -1 -1 1 1 average of the pairwise XOR? -1 1 -1 N “dot product” orthogonal ∑ X i Y i= 0 i= 1 Each user get different code V : logic 0 sent as –V, logic 1 as +V For example, V = (+1, -1), data is (1,0,1,1) send (V, -V, V, V) <1, -1, -1, 1, 1, -1, 1, -1> transmitted vector Signals add up Sender 0 has code (1,-1) data (1, 0, 1, 1) Sender 1 has code (1, 1) data (0, 0, 1, 1) Signal 0 (1, -1, -1, 1, 1, -1, 1, -1) Signal 1 (-1, -1, -1, -1, 1, 1, 1, 1) Received (0, -2, -2, 0, 2, 0, 2, 0) “interference pattern” Receive 0 : (0, -2).(1, -1), (-2, 0).(1, -1), (2, 0).(1, -1), (2, 0).(1,-1) = (2, -2, 2, 2) => (1, 0, 1, 1) was sent Receiver 1: (0, -2).(1, 1), (-2, 0).(1, 1), (2, 0).(1, 1), (2, 0).(1, 1) = (-2, -2, 2, 2) => (0, 0, 1, 1) was sent What if only 1 user? signal 0 = (1,-1,-1, 1, 1, -1, 1, -1) Sender 0 (1, -1).(1, -1), (-1, 1).(1, -1), (1, -1).(1, -1), (1, -1).(1, -1) = (2, -2, 2, 2) => (1, 0, 1, 1) Sender 1 : (0, 0, 0, 0) “Walsh Matrix” - Standard technique for creating N orthogonal vectors with dimension N - need everyone of the users to be coordinated (transmissions start at the same time) - need N in advance Not reasonable for mobile base links - solution: use pseudo-random sequences (asynchronous CDMA) different code sequences per user, identical to what we have seen X = x1, x2, x3, ..., xn Y = y1, y2, y3, ..., yn Truly random => X.Y is 0 mean, variance is proportional to n => standard deviation is proportional to n1/2 User Y’s transmission looks like noise added on to user X’s transmission Decode X: signal part of X ∞ n Noise Part (from Y) ∞ n1/2 “multiple access interference” multiple user => noise increases proportionately Brings up key issues: if Y is very powerful compared to X, noise injected into X becomes significant! not true for synchronous CDMA, TDMA, FDMA CDMA cellular: key patents are in the power control system (closed loop) CDMA advantage? - in theory : same spectral efficiency as FDMA - implementation differences: FDMA needs frequency generation, filtering [Doppler effects] TDMA timing to get right slot [guarding in mobile] CDMA Power control FDMA: fixed slots (waste) CDMA: very flexible, can keep adding users (noise increases => BER increases => SQ decreases) ideal for mobile: bursty, users coming and going some other benefits: - larger BW: harder to jam, privacy, less impact of individual interference sources - less multi-path interference (delayed versions look like noise, assuming one chip of delay) - can use rake receiver: multiple correlators each tuned to different path delays - no frequency planning (adjacent cells) => handoffs are easy (communicate simultaneously with two cells, so no abrupt change in signal strength)