WCDMA Air Interface Training
Part 1
CDMA Wireless Technology
Agenda: Part 1
CDMA Wireless Technology
Evolution from 2G to 3G
The CDMA Transmitter
Voice Coding
CRC Coding
FEC Coding
Interleaving
Channelization Coding (Orthogonal/Walsh Codes)
Spread Spectrum Multiple Access Coding (PN Codes)
Serial-to-Parallel Data Conversion
Spectral Containment Filtering
I/Q Modulation
From 2G to 3G
Circuit-Switched Voice
Circuit-Switched Data
Circuit-Switched Voice
Low-Speed Circuit-Switched Data
Packet Data
High-Speed Circuit-Switched Data
Short Message Service (SMS)
2G
3G
, kbps
up to 2 Mbps ?
3G Wireless Multiple Access
2 data channels (voice, control)
2 data channels (voice, control)
Voice Conversation
2 data channels (14 kbps data, control)
1 data channels (control)
Uplink Packet Data
3 data channels (voice, video, control)
3 data channels (voice, video, control)
Videoconference
4 data channels (384 kbps data, voice, video, control)
4 data channels (384 kbps data, voice, video, control)
Videoconference with 384 kbps Data
Multiple Access Approaches
Frequency Division Multiple Access
Each User has a unique frequency (1 voice channel per user)
All users transmit at the same time AMPS, NMT, TACS
User 1
User 2
User 3
Frequency
Each Transmitter has a unique spreading code Each Data Channel has a unique orthogonal code
Many users share the same frequency and time
IS-95, cdma2000, WCDMA
Frequency
Code Division Multiple Access
Spread Spectrum Multiple Access
Multiple Transmitters
and
Multiple Data Channels
Each User has a unique time slot Each Data Channel has a unique position within the time slot
Several users share the same frequency
IS-136, GSM, PDC
Time Division Multiple Access
User 1
User 2
User 3
User N
Time
The TDMA Transmitter
Data Multiplexer
Transmit Gating
Control/ Signaling Data
Filtering + RF Modulation
RF Out
Sync. Bits
User Data Channel N
Error Protection
Timeslot Selector
Error Protection
User Data Channel 1
Error Protection
Vocoder
Error Protection
The Multiplexer allows various data channels to share the same timeslot.
The timeslot selector allows multiple transmitters to share the same carrier frequency, by assigning a unique timeslot to each transmitter.
The TDMA Transmitter
Slot 3
Slot 1
Slot 2
Slot 3
Downlink Timeslot to User 1
CDL (11)
Sync (28)
Data (130)
SACCH (12)
CDVCC (12)
Data (130)
Res. (1)
Slot 1
Data Multiplexing
Slot 2
Data Multiplexing
Downlink Timeslot to User 2
CDL (11)
Sync (28)
Data (130)
SACCH (12)
CDVCC (12)
Data (130)
Res. (1)
Example of IS-136 Downlink Transmission; Sync, SCF, CDVCC, and CDL overhead information bits are multiplexed with the user data bits
The CDMA Transmitter
Filtering + RF Modulation
RF Out
Linear
Summation
Control/ Signaling Data
Sync. Bits
User Data Channel N
Error Protection
Error Protection
User Data Channel 1
Error Protection
Vocoder
Error Protection
Spread Spectrum (PN or Gold) Code
Spread Spectrum (PN) Codes provide unique identification of each transmitter
Frequency
User 1
User 2
User 3
...
Orthogonal Code 4
Orthogonal Code N
Orthogonal Code 3
Orthogonal Code 2
Orthogonal Code 1
Orthogonal Codes provide unique identification of each data channel
Pulse Shaping Filter
RF Out
Data Channel 1
Data Channel N
Linear
Summation
Spread Spectrum Code (PN Code or Gold Code)
FEC Coding
Orthogonal Code 1
Orthogonal Code N
1:2 Demux
Pulse Shaping Filter
I/Q Modulator
CRC Coding
Inter- leaving
CRC Coding
Complex Multiplier (I + jQ)
FEC Coding
Inter- leaving
D/A
D/A
SSC_Q
SSC_I
I
Q
I
Q
I
Q
Allows for error detection in the receiver
Allows for error correction in the receiver
Improves error correction in the receiver
Gives a unique identity to each data stream
Maps digital bits to analog signals
0 +1
1 -1
Provides 2x higher data rate
(WCDMA, cdma2000 downlink)
Gives a unique identity to this transmitter
Contains transmitted frequency spectrum
Allows both signals from 1:2 Demux to share the same RF bandwidth
Pre-coded data (bits)
Symbols
Chips
+
+
Cellular CDMA Transmitter
Voice Coding
Example: Two ways to hear the sax player
Record the sax player onto a CD...
... and play back the CD
20 MB per song
Write down the notes he plays...
... and have a friend play the same notes
20 kB per song
Voice Coding
Vocoding
Human Voice:
‘ss’, ‘ff’, ‘sh’ … ~20% of time ‘ah’, ‘v’, ‘mm’ , … ~80% of time
Transmitted Parameters 8~12 kb/s typical, vs. 64 kbps for log-PCM 32 kbps for ADPCM
Vocoder
White Noise Generator
Pulse Generator
Voice Re-Synthesis at the Receiver
Noise parameters
Pitch parameters
H(s)
Filter poles correspond to resonances of the vocal tract
Speech Output
H(s)
ACELP/AMR Voice Coding
A/D
Linear Predictive Coding (LPC)
Filter
Codebook Index
Codebook
Perceptual Weighting
Error Analysis
Speech Generator
Vocoder Output Bits
MUX
Voice, Tone Activity Detectors
Mode Indication bits
Comfort Noise
Tone Emulation
DTX Indication
(+)
(-)
Prediction Error
Benefits of Activity Detection:
1)
2)
Digital Cellular Error Correction
Digital Cellular
Analog Cellular
Transmitted Signal
Received Signal + Noise
Transmitted Signal
Received Signal + Noise
Digital Cellular Error Correction
Example: Mailing a letter in the US
Extra (redundant) symbols in address help correct lost symbols
ZIP codes used to detect errors in the address
John Doe 123 East 45th Street New York City, New York 10017
JD 123 E 45 NYC NY
With minimal data... Errors are uncorrectable
With redundant data... Errors are correctable
Bandwidth utilization: 13 bytes
Bandwidth utilization: 48 bytes
CRC Coding
Cyclic-Redundancy Check (CRC) Coding
Identifies corrupted data
If there is an error, the receiver can request that data be re-sent
For voice data errors, the vocoder discards any bad data
Checksum 011010
Original Data 100101101010
CRC Generator
Original Data 100101101010
CRC Generator
Re-Generated Checksum 011011
Transmitter
Receiver
If Checksums do not match, there is an error
Received Data 100101001010
Received Checksum 011010
RF Transmission Path
CRC Coding
Cyclic-Redundancy Check (CRC) Coding: Example
22-bit in /6-bit out CRC: g(x) = [ x6 + x2 + x + 1 ]
Input Data b1b2b3b4b5 … b22
D
CRC (6 bits) c1c2c3c4c5c6
D
D
D
D
D
0
0
Input Data (22 bits) b1b2b3b4b5 … b22
Output
Output
clock
D
Shift Register (one unit delay)
All switches “up” for first 22 bits;
All switches “down” for last 6 CRC bits
FEC Coding
Error Correction
How do you correct errors at the receiver?
Send message many times?
010010110, 010010110, 010010110, 010010110, 010010110,
Forward Error Correction!
Up to 6x data expansion...
But the most powerful results
FEC Coding
FEC Coding approaches
Block Codes (Hamming Codes, BCH Codes, Reed-Solomon Codes)
Data is processed into unique Codewords
Each Codeword can be positively identified even if one or more bits are corrupted
Example: “New York City” is a codeword for “NYC”
Continuous Codes (Convolutional Codes, Turbo Codes)
Data is processed continuously through FEC generator
Resulting data stream has built-in redundancy that can be extracted to correct bit errors.
IS-95, cdma2000, and WCDMA utilize Convolutional Codes low-rate data
Powerful error correction
Simple implementation allows low-latency, real-time processing
cdma2000 and WCDMA utilize Turbo Codes for high rate data
Most powerful error correction
More processing power (MIPS) required for decoding
FEC Coding: The Convolutional Coder
Convolutional Coding
Original Data 00011011...
FEC Generator
FEC Encoded data 1010011100110110...
Original Data 00011011
Viterbi Decoder
Transmitter
Receiver
RF Transmission Path
FEC Coding: Convolutional Coder
Convolutional Coding: Example
D
D
Input Data 1010...
MUX
X2k+1
X2k
Coder Output
clock
R = 1/2 , k=2 Convolutional Coder
For every input bit, there are two output bits
The maximum time delay is 2 clock cycles
FEC Coding: Convolutional Coder
FEC Coding: Example
State [00]
State [01]
State [10]
State [11]
State [00]
State [01]
State [10]
State [11]
State Diagram
11
00
10
01
11
00
01
10
x2k x2k+1
= Coder Output
X2k = (Dk) XOR (Dk-2)
X2k+1 = (Dk) XOR (Dk-1) XOR (Dk-2)
STATE
FEC Coding: Viterbi Decoder
Viterbi Decoding Process:
1) Calculate Branch Metric for each possible state transition
BM = (|R1 - T1| + |R2 - T2|)2
R1 , R2 = Received data values
T1 , T2 = Transmitted data values
2) Calculate Cumulative Path Metric
Path Metric is sum of “N” previous Branch Metrics (N is memory depth of Viterbi Decoder).
3) Calculate surviving Path
The surviving path is the path with the lowest Path Metric.
4) Extract the error-corrected Data
The error-corrected data sequence is equal to the first bit of each state code along the surviving path
Example: Received Signal R1,R2 = [0 1]
T1,T2 = [0 0]
T1,T2 = [0 1]
T1,T2 = [1 1]
T1,T2 = [1 1]
T1,T2 = [0 0]
T1,T2 = [0 1]
T1,T2 = [1 0]
T1,T2 = [1 0]
State [00]
State [01]
State [10]
State [11]
State [00]
State [01]
State [10]
State [11]
1
0
1
1
1
4
4
0
= Branch Metric
Viterbi Decoding (No noise)
1 1
1 1
0 1
0 1
0 0
0 0
1 0
1 0
4
1
0
1
1
4
0
1
4
1
0
1
4
4
1
0
0
1
Transmitted Data:
Received Data:
[0 0]
[0 1]
[1 0]
[1 1]
[0 0]
[0 1]
[1 0]
[1 1]
0
0
0
0
Path with lowest path metric has the least likelihood of error
Output --->> 0 1 0 1 1
Viterbi Decoding (With noise)
1 1
0 1
0 0
1 0
.25
Transmitted Data:
Received Data:
[0 0]
[0 1]
[1 0]
[1 1]
[0 0]
[0 1]
[1 0]
[1 1]
.09
.34
Output --->> 0 1 0 1 1
Multipath Fading
One user’s signal reflects off of many objects
The received signal contains many time-delayed replicas
Multipath Fading
Multipath Fading
Direct Signal
Reflected Signal
Combined Signal
Block Interleaving
Time
Amplitude
To Viterbi decoder
Original Data Samples 1 2 3 4 5 6 7 8 9
Interleaving Matrix
1 2 3 4 5 6 7 8 9
Transmitter
Interleaved Data Samples 1 4 7 2 5 8 3 6 9
RF Transmission Path
Interleaved Data Samples 1 4 7 2 5 8 3 6 9
Errors Clustered
De- Interleaving Matrix
1 2 3 4 5 6 7 8 9
De-Interleaved Data Samples 1 2 3 4 5 6 7 8 9
Receiver
Errors Distributed
Turbo Coding
Turbo Codes
Outperform Convolutional codes
Requires much more processing power; data packets may be decoded off-line
Used for high-bit rate data and packet data
Interleaving (time diversity) enhances error correction
Encoder #1
Encoder #2
MUX
Data
Decoded Data
DE-MUX
Decoder #2
D
P1
P2
D
P1
P2
D
Turbo Encoder
Turbo Decoder
Interleaver
Interleaver
Interleaver
De-Interleaver
Decoder #1
Cellular CDMA
“Cellular CDMA” = SSMA + Orthogonal Coding
(IS-95, cdma2000, WCDMA)
Spread Spectrum Multiple Access (SSMA): Allows multiple CDMA transmitters to share the same Radio Frequency
Orthogonal Coding: Allows multiple data channels to co-exist within each CDMA transmission
The CDMA Cocktail Party
What do YOU hear...
If you only speak Japanese?
If you only speak English?
If you only speak Italian?
If you only speak Japanese, but the Japanese-speaking person is all the way across the room?
If you only speak Japanese, but the Spanish-speaking person is talking very loudly?
AND Function
A
B
Y
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
XOR Function
A B Y
0 0
0 1
1 0
1 1
+
Modulo 2 addition
A
B
Y
0
1
1
0
Correlation
+1V
-1V
+1V
-1V
Complete Correlation
4
/4 = 1
+1
+1
+1
+1
0 V
+1V
Correlation: Zero Cross-Correlation
+1V
-1V
-1
+1
-1
+1
+1V
-1V
+1V
0 V
No Correlation
0
/4 = 0
Code Correlation
Input Data
+1
-1
+1
+1
-1
+1
Divide by Code Length
Case I: Autocorrelation using a PN Code Receiver and Transmitter use identical code at same time offset
+1 –1 +1 +1 –1 -1 +1 -1
+1 –1 +1 +1 –1 -1 +1 -1
+1 –1 +1 +1 –1 -1 +1 -1
PN code used in Transmitter
x
x
x
+8
-8
+8
Integrate Result
Integrate
Integrate
Integrate
+1 –1 +1 +1 –1 -1 +1 -1
-1 +1 -1 -1 +1 +1 -1 +1
+1 –1 +1 +1 –1 -1 +1 -1
Transmitted Sequence
=
=
=
+1 +1 +1 +1 +1 +1 +1 +1
-1 –1 –1 –1 –1 –1 –1 -1
+1 +1 +1 +1 +1 +1 +1 +1
=
=
=
+1 –1 +1 +1 –1 -1 +1 -1
+1 –1 +1 +1 –1 -1 +1 -1
+1 –1 +1 +1 –1 -1 +1 -1
PN Code Used in Receiver
x
x
x
Transmitter
Receiver
Code Correlation
Input Data
+1
-1
+1
+1 –1 +1 +1 –1 -1 +1 -1
+1 –1 +1 +1 –1 -1 +1 -1
+1 –1 +1 +1 –1 -1 +1 -1
+1 –1 +1 +1 –1 -1 +1 -1
-1 +1 -1 -1 +1 +1 -1 +1
+1 –1 +1 +1 –1 -1 +1 -1
-1 +1 –1 +1 +1 –1 -1 +1
+1 -1 +1 –1 +1 +1 –1 -1
-1 +1 +1 +1 –1 -1 +1 +1
-1 –1 –1 +1 –1 +1 –1 -1
-1 –1 –1 +1 +1 +1 +1 -1
-1 –1 +1 +1 +1 +1 +1 -1
PN code used in Transmitter
Transmitted Sequence
PN Code Used in Receiver
-4
0
2
Integrate Result
0
Divide by Code Length
Case II: Cross-Correlation using PN Codes Receiver and Transmitter use different codes
x
x
x
Integrate
Integrate
Integrate
=
=
=
x
x
x
=
=
=
Transmitter
Receiver
Code Correlation
Input Data
+1
-1
+1
-1 +1 –1 +1 +1 –1 +1 -1
-1 +1 –1 +1 +1 –1 +1 -1
-1 +1 –1 +1 +1 –1 +1 -1
-1 +1 –1 +1 +1 –1 +1 -1
+1 –1 +1 –1 –1 +1 –1 +1
-1 +1 –1 +1 +1 –1 +1 -1
-1 +1 –1 +1 +1 –1 +1 -1
+1 +1 +1 +1 +1 +1 +1 +1
-1 -1 +1 –1 +1 +1 –1 +1
+1 +1 +1 +1 +1 +1 +1 +1
+1 –1 +1 –1 –1 +1 –1 +1
+1 –1 –1 –1 +1 –1 –1 -1
Orthogonal code in Transmitter
Transmitted Sequence
Orthogonal Code used in Receiver
8
0
-4
Integrate Result
+1
0
Divide by Code Length
Case III: Correlation using Orthogonal Codes (a) Same Orthogonal code; (b) Different Orthogonal codes; (c) Same code with non-zero time offset
x
x
x
Integrate
Integrate
Integrate
=
=
=
x
x
x
=
=
=
Transmitter
Receiver
Code Correlation: Key Points
TX, RX use same codes, at the same time offset
PN Codes: 100% correlation
Orthogonal Codes: 100% correlation
TX, RX use different codes
PN Codes: “Low” (noise-like) correlation at any time offset Average correlation level proportional to 1/(code length)
Orthogonal Codes: 0% Correlation
TX, RX use same codes, but at different time offsets
PN Codes: “Low” (noise-like) correlation for any offset > +1 chip
Orthogonal Codes: Unpredictable results
Spread Spectrum Multiple Access
PN 1
RF Modulation
Transmitter 1
PN 2
RF Modulation
Transmitter 2
PN 3
RF Modulation
Transmitter 3
PN 4
RF Modulation
Transmitter 4
RF Demod
PN 3
Receiver
In this example, the receiver correlates the composite received signal using PN code 3.
The result is the recovered transmission from Transmitter #3, plus some spread spectrum interference from transmitters #1, #2, and #4
Why is it called “Spread Spectrum”?
Direct-Sequence Spread Spectrum Transmitter
PN Code Generator
Chip Clock Fc >> Fd
RF Modulator
cos(rf*t)
Nulls @ N*Rc
Frf
Filter
PN Code Mask
“Bits”
“Chips”
Spread Spectrum Multiple Access
Both signals combined in the air interface
PN Code 1
Frequency
Amplitude
Signal 1
PN Code 2
Frequency
Amplitude
Signal 2
Spread Spectrum Processing Gain
PN Code 1
Signal 1 is reconstructed Signal 2 looks like noise
Both signals are received together
AT THE RECEIVER...
Case II: Two Transmitters at the same frequency
PN Code Properties
PN Codes: Properties
PN codes may be generated using Linear Feedback Shift Registers
PN Codes are repeating, defined-length blocks of 1’s and 0’s
Approximately equal number of 1’s and 0’s
The statistics appear randomly distributed within the block
Good Autocorrelation and Cross-Correlation properties
PN Code cross-correlation properties do not depend on time alignment
Example of a 32-bit (25) PN code: 01101000110101001010011010100111
PN Code Generation
PN Codes: Generation using a Shift Register
D
D
clock
D
D
1
2
3
N
n values are 0 or 1 (determined by the specified “generator polynomial”)
Maximal-length (m-sequence) has a repetitive cycle of ( 2N - 1 ) bits
A code of 32,768 bits can be replicated using only a 15-bit “key”
1010010010001110101...
PN Code Correlation Plots
Autocorrelation of 2000-bit PN sequence Time offset = 0
-800
-600
-400
-200
0
200
400
600
800
1000
-100
0
100
200
300
400
500
600
Single, centered correlation peak indicates that two signals are identical, with zero time offset
Cross-correlation of two different PN sequences
-800
-600
-400
-200
0
200
400
600
800
1000
-100
0
100
200
300
400
500
600
SSMA PN Code Planning
PN3
PN4
PN5
PN6
PN1
PN1
Cell Site “1” transmits using PN code 1
PN2
PN2
Cell Site “2” transmits using PN code 2
Uplink: PN Code used to distinguish each Mobile Station Downlink: PN Code used to distinguish each Base Station
SSMA PN Code Planning
Spread Spectrum Code Planning Example
PN1
PN2
PN3
PN7
PN6
PN4
PN5
PN1
PN2
PN3
PN7
PN6
PN4
PN5
PN1
PN2
PN3
PN7
PN6
PN4
PN5
PN1
PN2
PN3
PN7
PN6
PN4
PN5
PN1
PN2
PN3
PN7
PN6
PN4
PN5
PN1
PN2
PN3
PN7
PN6
PN4
PN5
N
S
W
E
SSMA: Summary
SSMA Utilization
Used to distinguish the transmission source (Base Station or Mobile Station) in cellular CDMA systems
Provides good (but not 100%) separation between multiple transmissions in the same geographic area, on the same frequency
Works regardless of time-of-arrival delays
Code Planning instead of Frequency Planning
Frequency Reuse = 1
SSMA Limitations
Imperfect signal separation
Number of simultaneous transmitters in one area is limited by the Spreading Factor
Not good for transmitting multiple data streams from one transmitter
Each Transmitter has a unique PN spreading code
Several Transmitters share the same frequency and time
Frequency
Spread Spectrum Multiple Access
Tx 1
Tx 2
Tx 3
...
Orthogonal Data Channelization
OC 4
OC 3
OC 2
OC 1
RF Modulation
RF Demod
OC 3
Data Channel 1
Data Channel 2
Data Channel 3
Data Channel 4
Receiver
In this example, the receiver correlates the composite received signal using Orthogonal Code 3.
The result is a perfect reconstruction of Data Channel #3, with no interference from the other data channels.
To realize this perfect cross-correlation property, it is essential that the orthogonal codes be received in perfect timing relation to each other.
Linear Addition
Transmitter
Orthogonal Code Correlation
Orthogonal Code correlation
Code correlated with itself --> 100% correlation
Code is correlated with another orthogonal code --> 0% correlation
Code time alignment is essential
Autocorrelation of Walsh 34, Walsh 34 Integration Sum = 64 at time offset = 0
Cross-correlation of Walsh 34, Walsh 47 Integration Sum = 0 at time offset = 0
10
20
30
40
50
60
-60
-40
-20
0
20
40
60
10
20
30
40
50
60
-60
-40
-20
0
20
40
60
Poor cross-correlation properties at time shifts other than zero!
Orthogonal Codes
When you send data using Orthogonal Codes...
User 1 Data:
1 0 1
XOR with Walsh Code
1010
User 1 Walsh-spread Data:
0101 1010 0101
You send one orthogonal (., Walsh) code for every data bit!
If you want to send a “0”, you transmit the assigned Walsh Code
If you want to send a “1”, you transmit the inverted Walsh Code
Transmitted “chips”
Data
Orthogonal Code
Orthogonal Codes
Orthogonal Code Transmitter
Data Channel 1
0 1 0
Data Channel 2
0 0 1
XOR with OC1
( 1111 )
XOR with OC2
( 1100 )
After XOR
(1111)(0000)(1111)
Composite Transmitted Data:
(-2 -2 +2 -2) (-2 +2 +2 +2) (0 0 0 -4)
Data Channel 3
1 0 1
XOR with OC3
( 1010 )
4-chip Orthogonal Code Set
1) 1 1 1 1 2) 1 1 0 0 3) 1 0 1 0 4) 1 0 0 1
After D/A Mapping
(----)(++++)(----)
After XOR
(1100)(1100)(0011)
After D/A Mapping
(--++)(--++)(++--)
After XOR
(0101)(1010)(0101)
After D/A Mapping
(+-+-)(-+-+)(+-+-)
Data Channel 4
0 0 0
XOR with OC3
( 1001 )
After XOR
(1001)(1001)(1001)
After D/A Mapping
(-++-)(-++-)(-++-)
Orthogonal Codes
Orthogonal Code Receiver
Integrate &
Normalize
Integrate &
Normalize
Integrate &
Normalize
Integrate &
Normalize
Result:
1 -1 1
Result:
1 1 -1
Result:
-1 1 -1
Result:
1 1 1
XOR: Exclusive-Or multiplication
Integrate: Sum four consecutive values after XOR
Normalize: Multiply by [ 1 / code length]
“Correlation”
Composite Received Data:
(-2 -2 +2 -2)(-2 +2 +2 +2)(0 0 0 -4)
XOR with OC1
(-1 -1 -1 -1)
XOR with OC2
(-1 -1 +1 +1)
XOR with OC3
(-1 +1 -1 +1)
XOR with OC4
(-1 +1 +1 -1)
4-chip Orthogonal Code Set Analog representation)
1) -1 -1 -1 -1 2) -1 -1 +1 +1 3) -1 +1 -1 +1 4) -1 +1 +1 -1
Map AD
0 1 0
Map AD
0 0 1
Map AD
1 0 1
Map AD
0 0 0
Example of Spreading with Three Users
+1
-1
A=00
Walsh Code for
A = 0101
Spread Waveform Representation of
User A’s signal
+1
-3
Analog Signal Formed by the Summation
of the Three Spread Signals
+1
-1
C=11
Walsh Code for
C = 0000
Spread Waveform Representation of
User C’s signal
+1
-1
B=10
Walsh Code for
B = 0011
Spread Waveform Representation of
User B’s signal
Despreading Example
Average = (5-1)/4 = +1V
“0”
“0”
+1
-3
Received Composite Signal
+1
-1
Walsh Code for User A = 0101
+3
-1
Product
Average = (5-1)/4 = +1V
Orthogonal Codes
OC1, OC2
OC3, OC4
OC5, OC6, OC7
OC1 , OC2, OC3
OC1, OC2
OC1, OC2, OC3, OC4
Uplink: Orthogonal Codes used to distinguish data channels coming from each Mobile Station
Downlink: Orthogonal Codes used to distinguish data channels Coming from each Base Station
Orthogonal Code Generation
Generation of Orthogonal (Walsh) Codes
1
11
10
1111
1100
1010
1001
11111111
11110000
11001100
11000011
10101010
10100101
10011001
10010110
Digital/Analog Mapping
logic 0 analog +1 logic 1 analog - 1
1100110011001100
TIA/EIA-95 CDMA Walsh Codes
Code 0 (Pilot)
Code 63
Code 32 (Sync)
0
10
20
30
40
50
60
OVSF Codes
OVSF Code Space: 8 users; one 8-bit code per user
Chip Rate = Mcps
480 kb/s
480 kb/s
480 kb/s
480 kb/s
480 kb/s
480 kb/s
480 kb/s
480 kb/s
1
11
10
1111
1100
1010
1001
11111111
11110000
11001100
11000011
10101010
10100101
10011001
10010110
OVSF Codes
OVSF Code Space: 5 users; one user has 4x data bandwidth
User with 4x Bit Rate
= Unusable Code Space
480 kb/s
480 kb/s
480 kb/s
480 kb/s
Mb/s
Chip Rate = Mcps
1
11
10
1111
1100
1010
1001
11111111
11110000
11001100
11000011
10101010
10100101
10011001
10010110
Generation of Orthogonal Codes
0
0 0
0 1
0
SEED
Repeat to the Right
0 0
0 1
0 0
0 1
1 1
1 0
0
0
1
Invert diagonally
Repeat Below
Orthogonal CDMA: Summary
CDMA allows multiple data streams to be sent on the same RF carrier
Perfect isolation between data streams
Timing between data streams must be exact
Maximum number of data channels = orthogonal code length
The longer the code, the slower the data rate
Code space can be rapidly re-allocated to match user data rate requirements
CDMA advantages are limited in practice
Multipath, small timing errors, and motion-related effects diminish the usable code space
Each Data Stream has a unique Orthogonal spreading code
Many users share the same frequency and time
IS-95, cdma2000, WCDMA
Frequency
Code Division Multiple Access
Data 1
Data 2
Data 3
...
Cellular CDMA (SSMA + OC)
Cellular CDMA (IS-95, cdma2000, WCDMA)
PN Codes are used:
To distinguish between Mobile Stations
To distinguish between Base Stations
Orthogonal Codes are used:
To distinguish between data channels coming from each MS
To distinguish between data channels from each BS
PN Spreading Codes and Orthogonal Codes are simultaneously utilized
Frequency
Code Division Multiple Access
Spread Spectrum Multiple Access
User 1
User 2
User 3
...
Cellular CDMA (SSMA + OC)
2 data channels (voice, control) PN3 + OC1 + OC2
2 data channels (14 kbps data, control) PN4 + OC1 + OC2
3 data channels (voice, video, control) PN2 + OC1 + OC2 + OC3
3 data channels (voice, video, control) PN5 + OC1 + OC2
4 data channels (384 kbps data, voice, video, control) PN6 + OC1 + OC2 + OC3 + OC4
4 data channels (384 kbps data, voice, video, control) PN2 + OC4 + OC5 + OC6 + OC7
2 data channels (voice, control) PN1 + OC1 + OC2
1 data channels (control) PN1 + OC3
Voice Conversation
Uplink Packet Data
Videoconference
Videoconference with Data
Pilot, Broadcast PN1 + OCP + OCB
Pilot, Broadcast PN2 + OCP + OCB
Cellular CDMA Code Layering
I/Q Modulation
I/Q (In-phase/Quadrature) Modulation: Definition
Two data streams are multiplied by a common carrier frequency, but at phase offsets of 0 degrees (cosine)and 90 degrees (sine)
Data Stream #1 “ I ”
Data Stream #2 “ Q ”
90o
SUM
cos ( 2 fRF t)
I sin ( 2 fRF t)
+ Q cos ( 2 fRF t)
+1
-1
+1
-1
I/Q Modulation
Graphical representation of an I/Q modulated signal
I
Q
( I = 1, Q = 1 )
( I = -1, Q = -1 )
( I = -1, Q = 1 )
( I = 1, Q = -1 )
1 Modulation Symbol represents 2 data bits
Modulation efficiency = 2 bits/symbol
RF Carrier amplitude
RF Carrier phase angle
I/Q Modulation
By multiplying by the sin and cosine at the receiver, the original I and Q data streams are recovered
90o
SUM
cos ( 2 fRF t)
I sin ( 2 fRF t)
+ Q cos ( 2 fRF t)
LPF
LPF
Data Stream #1 “ I ”
Data Stream #2 “ Q ”
+1
-1
+1
-1
Data Filtering
Data Filtering: Why?
RF Modulator
0
1
-60
-50
-40
-30
-20
-10
0
10
20
Frequency
Baseband filtering of data stream is required to contain RF bandwidth
Data Filtering
Ordinary Channel Filter: Impulse Response
0
20
40
60
80
100
120
140
160
180
200
-2
0
2
4
6
x 10
-5
Channel Filter
(Digital Chebyshev, 10-tap, Fc = )
0
10
20
30
40
50
60
70
80
90
100
-1
0
1
2
Ringing may interfere with subsequent bit decisions
Raised-Cosine Data Filter
Raised Cosine Filter: Equations
0
50
100
150
200
250
300
0
1
=
=
=
=
=
WCDMA uses alpha =
Raised-Cosine Data Filter
Raised Cosine Filter: Impulse Response
0
1
= (Narrow filter)
= (Wide filter)
t1
t2
t3
t4
t5
t6
t7
t8
t9
Notes:
1) Ringing = 0 at exact time instants where future data points are to be sampled
2) Low ‘alpha’ provides narrowest spectrum; best for reducing adjacent channel interference
3) High ‘alpha’ provides lowest ringing amplitude; best for reducing ISI
4) Theoretically, even filters with very low ‘alpha’ provide zero ringing at future sample points
5) Practically, low-alpha filters create greater ISI when there is timing jitter present
Data Filtering: The RRC Filter
Eye Diagram
0
50
100
150
0
1
0
50
100
150
0
1
Raised Cosine Filter
Chebyshev Filter
The IS-95 CDMA Transmitter
IS-95 Downlink
Data 0110101….
Add CRC Bits
Add FEC Bits
I/Q Mod.
Long PN Code
Walsh Code
Short PN - I Code
Short PN - Q Code
RF Out
User’s Long Code Mask
FIR Filter
FIR Filter
Inter-leave
F
V
F
kb/sec
V
F
kb/sec
V
F
Mcps
F
Mcps
Fc
MHz BW
The WCDMA Transmitter
Data 0110101….
Add CRC Bits
Add FEC Bits
I/Q Mod.
OVSF Code Generator
Error Detection
Error Correction
Orthogonal Coding
RF Out
FIR Filter
FIR Filter
Inter-leaver
Complex Spreading (DL) HPSK Spreading (UL)
SSMA Spreading, PAPR Reduction
Spectral Containment
RF Modulation
“Channelization Code”
BS code (DL) or UE code (UL)
Data Channel Code
Spread Spectrum Code (Gold Code)
“Scrambling Code”
Fading Resistance
S/P
AND Function
The figure depicts a two input AND gate and its corresponding truth table. A and B denotes the inputs to the gate, while Y denotes its output. The AND operation (or function) is simply defined by the equation: Y = . The AND gate outputs a logic “1” only when both inputs A and B are logic “1” as well; The output of the AND gate is zero if any of its inputs assumes the logic “0” state. Knowledge of the operation of the AND gate will prove useful in the discussion that follows.
XOR Operation
The figure depicts a two input XOR gate and its corresponding truth table. A and B denotes the inputs, while Y denotes its output. The XOR operation (or function) is simply defined by the equation: Y = =. The XOR gate produces a one when the two inputs are at opposite levels. When the total numbers of ones at the inputs is odd, the result of XORing them is “1”. This operation is also needed for the upcoming discussion of codes.
Correlation
Correlation is a measure of similarity between any two arbitrary signals. It is computed by multiplying the two signals and then summing (integration) the result over a defined time window. The two signals of figure (a) are identical and therefore their correlation is 1 or 100%.
Zero Cross-Correlation
The two signals above are uncorrelated and therefore knowing one of them does not provide any information about the other.
Multi-user Example
In this example, three users A, B, and C are assigned three orthogonal codes for spreading purposes:
User A signal = 00, Spreading Code = 0101
User B signal = 10, Spreading Code = 0011
User C signal = 11, Spreading Code = 0000
The analog signal shown on the bottom of the page is the composite signal when all of the spread symbols are summed together.
Despreading a Single User from the Composite Signal
At the receiver of user A, the composite analog signal is multiplied by the Walsh code corresponding to user A and the result is then averaged over the symbol time. This process is called correlation.
Note the average voltage value over one symbol time is equal to 1. Therefore, the original bit transmitted by A was “0”. You may try to decode the symbols for users B or C in the same manner.
This process occurs in the CDMA mobile unit for recovering the signals.
Generation
Orthogonal codes are easily generated by starting with a seed of 0, repeating the 0 horizontally and vertically, and then complementing the 0 diagonally.
This process is continued using the newly-generated block as the current seed until the desired codes with the proper length are generated.
Sequences created in this way are referred to as “Walsh” Codes.