Title: DIGITAL SPREAD SPECTRUM SYSTEMS
1DIGITAL SPREAD SPECTRUM SYSTEMS
ENG-737
- Wright State University
- James P. Stephens
2AUTOCORRELATION OF PN SEQUENCES
- A very important property of PN sequences is the
periodic auto correlation function - Recall that autocorrelation is defined as
- Simply stated, it is a comparison of a sequence
to a time-shifted version of itself - The equation asks For an offset of m chips, how
similar is the sequence to inself?
3PN SEQUENCE AUTOCORRELATION FUNCTION
Normalized
Rbb(?)
NTc
1.0
1/N
?
Tc
4POWER SPECTRAL DENSITY FOR M-SEQUENCE
Chip Duration Tc and Period NTc
5DISCRETE AUTOCORRELATION Example
n 3 N 2n 1 7 Initial Fill 0 0 1
Sequence ? 1 0 0 1 0 1 1 Convert to
-1, 1 ? 1 -1 -1 1 -1 1 1
- The periodic autocorrelation
- . . . 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
m0 - 1 1 1 1 1 1
1 7 - 1 -1 -1 1 -1 1 1 m1
- -1 1 -1-1 -1
1 1 -1 - and so on . . . . . . .
6DISCRETE AUTOCORRELATION Example
m Sum of Products Rbbm
-6 -1 -1/7
-5 -1 -1/7
-4 -1 -1/7
-3 -1 -1/7
-2 -1 -1/7
-1 -1 -1/7
0 7 1
1 -1 -1/7
2 -1 -1/7
3 -1 -1/7
4 -1 -1/7
5 -1 -1/7
6 -1 -1/7
Discrete Time Plots
In the limit as m ? ? Approaches that of White
Noise
7BINARY SYMBOL CONVERSION
- Consider an m-sequence ck
- Where, ck ? 0, 1 for all k
- Now define the m-sequence bk ? -1, 1
- By letting bk 2ck -1, this translates 0 ? -1
and 1 ? 1 - This is a useful MatLab conversion necessary for
many MatLab computations -
- Note In GF(2) arithmetic, multiplication of 1
and -1 is the same as addition of 0 and 1. - Example
-
a b
-1 -1 1
-1 1 -1
1 -1 -1
1 1 1
a b
0 0 0
0 1 1
1 0 1
1 1 0
Exclusive OR
Multiplication
8MATLAB IMPLEMENTATION
- The following files are found on my web site at
http//www.cs.wright.edu/jstephen/ - pnf.m
- oct2bin.m
- masseyf.m
- Example
- pn1pnf(6,103,1,1500,1,1)
- pn2pnf(6,103,1,63,1,1)
- pn1(pn12)-1
- pn2(pn22)-1
- autoxcorr(pn2,pn1)
- plot(auto)
9MATLAB IMPLEMENTATION (Cont.)
- autoauto(100400)
- plot(auto)
10M-SEQUENCE SECURITY ISSUES
- How secure are m-sequences? Even if they do not
repeat for years? - Masseys Algorithm can determine the generating
polynomial, at most, in 2 times n error free
chips - Example
- Generate m-sequence where N7, i.e. n3
- Fill up matrix using only 2n 6 chips
- Obtain system of equations that can be solved
simultaneously - Thus, a code that uses 89 stages that will not
repeat for 73,000 years (1 Mcps chip rate) can be
determined by only processing 2 89 178 chips
11CODE SEQUENCE DETERMINATION
- Berlekamp-Massey linear feedback shift register
prediction algorithm - Golds Frequency Agile Predictor
- B-M requires (at most) 2n error-free chips to
determine generating polynomial - Golds based on relative times of arrival of
single frequency - Demonstrated on Workstation with MATLAB
12MASSEY ALGORITHM EXAMPLE
a(k)
- Code sequence of period N7 (n3)
- a a(0), a(1), a(2), a(3), a(4), a(5), . . . .
- a 1 1 1 0 1 0 0 1 1 1 0 1 0 0 (14
chips) - a(k) C1 a(k-1) C2 a(k-2) C3 a(k-3)
- a(3) a(2) a(1) a(0) 0 1 1 1
- a(4) a(3) a(2) a(1) 1 0 1 1
- a(5) a(4) a(3) a(2) 0 1 0 1
- We obtain the system of equations
- (1) 0 1 C1 1 C2 1 C3
- (2) 1 0 C1 1 C2 1 C3
- (3) 0 1 C1 0 C2 1 C3
13MASSEY ALGORITHM EXAMPLE
- Add equations (1) and (2)
- 1 1 C1 0 C2 0 C3
- C1 1
- Substitute in equation (3)
- 0 1 (1) 0 C2 1 C3
- C3 1
- Substitute C1 1, C3 1, into (1) gives
- 0 1(1) 1 C2 1(1)
- C2 0
- Solution is X3 X 1
14MODEL FREQUENCY HOPPER
Code-of-the-day
Modulo-2 Adder
Binary Register
FH Output
Mapper
15GOLDS TIME-OF-ARRIVAL ALGORITHM
Code-of-the-day
Code Generator
Binary Output Register
Output Hopping Sequence
00 gt a 01 gt b 10 gt c 11 gt d
Frequency Mapper
Times-of-arrival 4,5,8,9,10,13,14,23,24,25,26,27
,31
16PERFORMANCE
- Importance of real-time implementation
- Rapidly changing battle scenario
- Typically short message bursts
- Ability to change code-of-the-day
- Data collection time
- Probability of correct synchronization
- Prediction algorithm run time
17DATA COLLECTION TIME
18PROBABILITY OF CORRECT SYNCHRONIZATION
19ALGORITHM TIME
Based on 32-stage shift register
20ALGORITHM TIME VERSUS NUMBER OF HOP FREQUENCIES
21PARTIAL CORRELATION
- The important random properties of m-sequences
are the result of usually very long sequences - However, it is not possible to perform full
length correlation in a receiver - Also, if the duration of a message bit is less
than that of the period of the PN sequence, then
to decode the message, we need to correlate over
something less that a full code period - In these cases, the correlation function we just
looked at does not apply - The Partial Correlation function is written
22PARTIAL CORRELATION (Cont.)
- We can treat the ams as random variables ? 1
- So,
- The variance is
23PARTIAL CORRELATION
M-sequence Autocorrelation
M-sequence Partial Correlation
50 chips
63 chips
24PARTIAL CORRELATION (Cont.)
50 chips
40 chips
30 chips
20 chips
25MATLAB IMPLEMENTATION OF PARTIAL CORRELATION
- To perform a full autocorrelation of an
m-sequence of length 63 - pn1pnf(6,103,1,1500,1,1)
- pn2pnf(6,103,1,63,1,1)
- pn1(pn12) -1
- pn2(pn22) -1
- autoxcorr(pn2,pn1)
- autoauto(100400)
- plot(auto)
- To perform a partial autocorrelation for this
sequence, change line 2 - pn2pnf(6,103,1,50,1,1)
Try different values here !
Note Each time you change line 2, be sure to
re-enter lines 4, 5, 6, and 7 since these values
must be re-computed.
26PERIODIC VS. APERIODIC CORRELATION
1
4
2
3
PN Code Reference
Periodic
1
PN Code Reference
Aperiodic
27APERIODIC AUTOCORRELATION OF AN M-SEQUENCE
- Determine the Aperiodic autocorrelation of
m-sequence 45o - n 5, N 31
- pn1pnf(5,45,1,31,1,1)
- pn2pnf(5,45,1,31,1,1)
- pn1(pn12)-1
- pn2(pn22)-1
- xxcorr(pn2,pn1)
- plot(x)
28APERIODIC AUTOCORRELATION
Peak Value
Approximately 15 side lobe values
Index of discrimination
G(x) 45o
29PARTIAL APERIODIC AUTOCORRELATION
G(x) 45o 15 Chips
30CROSSCORRELATION
- Whereas autocorrelation compares a code with
itself, crosscorrelation compares one code to
another - Example Determine the periodic and aperiodic
crosscorrelation of 45o and 75o - Note the number of sidelobe values
- Periodic sidelobes are 3-valued
- Aperiodic is very random looking
- Refer to the handout from Robert Golds
publication on Linear Code Sequences
31CROSSCORRELATION(45o and 75o)
Periodic
Aperiodic
32COMPOSITE CODES
- Although m-sequences are quite desirable for many
applications, there is considerable research in
finding new codes that offer improved performance
in area - Composite codes are generated by a combination of
linear maximal sequences - The following are examples of composite codes
- Gold Codes CDMA Applications
- JPL Codes Rapid synchronization
- Kasami Codes Length construction and CDMA
Applications
33GOLD CODES
- Many details regarding Gold Codes are explained
in Appendix 7 of Dixon text - To be assured of good performance in CDMA
applications, a system must have - Low crosscorrelation properties among codes
- Low partial crosscorrelation properties among
codes - From Golds report
- Length 25 1 31 Fixed Polynomial
45o - Bound N Spectrum Polynomial
- 31 1 31(1) -1(30) 45
- 11 1 7(5) 3(10) 51
- -1(5) -5(5)
- -9(5)
- 9 4 7(10) -1(15) 75
- -9(6) 67
- 53 73
34REGARDING M-SEQUENCES FOR CDMA APPLICATIONS
- There is no general bound on the
cross-correlation properties of m-sequences - There is a limited number of available code for a
large number of users within the family of
m-sequences
35GOLD CODE CONSTRUCTION
LRS 1 and LRA 2 must have same length
Code 1
LRS 1
Clock
LRS 2
Code 2
Output Gold Code ( Code 1 xor Code 2)
36GOLD CODE CONSTRUCTION
x5 x3 1 51o
Gold Code
x5 x4 x3 x2 1 75o
37GOLD CODE CONSTRUCTION
- 51o xor 75o ( x5 x3 1)(x5 x4 x3
x2 1) -
- x10 x9 x8 x7
x5 - x8
x7 x6 x5 x3 -
x5 x4 x3 x2 1 - x10 x9 x6 x5
x4 x2 1 - 3165o non-maximal
38MAXIMUM NUMBER OF GOLD CODES
- Normally, you fix one register and change the
fill of the other to generate a family of Gold
Codes - Since there are 2n 1 initial fills, you can
generate 2n 1 Gold Codes from each
configuration - The code length will be N 2n 1, where n is
the length of the individual registers which must
be of equal size - For the 5-stage registers shown in the previous
chart, N 31 - Since the generating polynomial for the Gold Code
is degree-10, an m-sequence would be 210 1
1023 - 1023 / 31 33 codes
- This comes from 31 initial fills plus the
m-sequence generated from each separate register
alone - Recall from Table 3.3 in Dixons text, the number
of possible m-sequences given n is tabulated in
the next chart
39MAXIMUM NUMBER OF GOLD CODES
- n of m-sequences. of Gold
Codes - 5 6
31 2 - 6 4
63 2 - 7 18
127 2 - 8 16
255 2 - 9 48
511 2 - . .
. - . .
. - . .
. - 15 1800
32767 2
Not only do Gold Codes provide a larger ensemble
of codes, but they provide uniformly low-cross
correlation properties while exhibiting good
autocorrelation properties
40CHOSING A SET OF PREFERRED PAIRS
- M-sequences used to generate Gold Codes must be
of the same length and chosen according to a
process of preferred pairs selection (Details
are in Appendix 7 of Dixon text) - Table A7.3 says there are no preferred pairs for
n6. Not true! 103o and 147o are a preferred
pair - Arbitrary selection of code pairs can result in
very poor correlation performance - Table A7.1, page 501, shows that for n5, a
preferred pair yields a peak value of cross
correlation of 9 for a preferred pair, but 11 for
a non-preferred pair - The selection of preferred pairs will always
give 3-valued autocorrelation which will bound
the correlation to
41Table A7.1 Performance of Preferred Pairs
Compared with Worst Case Pairs
Degree Period Worst Case Preferred Pair Difference (dB)
5 31 11 9 1.7
6 63 23 15 3.7
7 127 41 17 7.6
8 255 95 31 9.7
9 511 113 33 10.7
10 1023 383 63 15.7
11 2047 287 65 12.9
12 4095 1407 127 20.9
13 8191 703 127 14.9
42PREFERRED PAIRS OF GOLD CODES
Degree Preferred Pairs Bound
5 5,25,4,3,2 9
6 None
7 7,37,3,2,1 7,3,2,17,5,4,3,2,1 15
8 8,7,6,5,2,18,7,6,1 31
9 9,49,6,4,3 9,6,4,39,8,4,1 33
10 10,9,8,7,6,5,4,310,9,7,6,4,1 10,8,7,6,5,4,310,9,7,6,4,1 10,8,5,110,7,6,4,2,1 63
11 11,211,8,5,2 11,8,5,211,10,3,2 65
12 12,11,9,8,7,5,2,112,10,5,4,2,1 12,11,6,4,2,112,11,8,7,5,4,3,2 127
13 13,4,3,113,10,9,7,5,4 13,10,9,7,5,413,12,8,7,6,5 129
43CHOSING A SET OF PREFERRED PAIRS
- The algorithm for choosing preferred pairs is
as follows - Select n and a polynomial
- Find k associated with the polynomial (polynomial
root) - If n is odd, then calculate 2k 1, if n is even
then calculate 2(n2)/2 k - The number calculated is the polynomial root (k)
associated with the second code that completes a
preferred pair
44CHOSING A SET OF PREFERRED PAIRS
- Example
- Let n8, then choose 435(1)
- k1
- n is even therefore, 2(82)/2 1 33
- None listed
- Try n8, then choose 747(11)
- k11
- N is even therefore, 2(82)/2 11 43 ?
703o
45JPL RANGING CODES
- JPL Codes are constructed by modulo-2 addition of
2 or more m-sequences whose lengths are
relatively prime to one another - Advantages of JPL Codes
- Very long codes can be generated which are useful
for unambiguous ranging over long distances - May be generated easily with a small number of
short registers - Synchronization can be more easily accomplished
by separate operation on each of the component
codes - Relatively prime means no common factors among
numbers
46JPL CODE CONSTRUCTION
a
a xor b xor c
b
c