1 / 46

DIGITAL SPREAD SPECTRUM SYSTEMS

DIGITAL SPREAD SPECTRUM SYSTEMS. ENG-737. Wright State University James P. Stephens. AUTOCORRELATION OF PN SEQUENCES. A very important property of PN sequences is the periodic auto correlation function Recall that autocorrelation is defined as:

jaden
Download Presentation

DIGITAL SPREAD SPECTRUM SYSTEMS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DIGITAL SPREAD SPECTRUM SYSTEMS ENG-737 Wright State University James P. Stephens

  2. AUTOCORRELATION 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?”

  3. PN SEQUENCE AUTOCORRELATION FUNCTION Normalized Rbb() NTc 1.0 1/N  Tc

  4. Sc(f) N + 1 sinc2(f Tc) N2 1/NTc f 2/Tc -1/Tc 1/Tc -2/Tc POWER SPECTRAL DENSITY FOR M-SEQUENCE Chip Duration Tc and Period NTc

  5. + DISCRETE AUTOCORRELATION Example n = 3 N = 2n – 1 = 7 Initial Fill = 0 0 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 m=0 1 1 1 1 1 1 1 = 7 1 -1 -1 1 -1 1 1 m=1 -1 1 -1-1 -1 1 1 = -1 and so on . . . . . . . Sequence  1 0 0 1 0 1 1 Convert to {-1, 1}  1 -1 -1 1 -1 1 1

  6. DISCRETE AUTOCORRELATION Example Discrete Time Plots In the limit as m   Approaches that of White Noise

  7. BINARY 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: Exclusive OR Multiplication

  8. MATLAB IMPLEMENTATION • The following files are found on my web site at http://www.cs.wright.edu/~jstephen/ • pnf.m • oct2bin.m • masseyf.m • Example: • pn1=pnf(6,103,1,1500,1,1); • pn2=pnf(6,103,1,63,1,1); • pn1=(pn1*2)-1; • pn2=(pn2*2)-1; • auto=xcorr(pn2,pn1); • plot(auto)

  9. MATLAB IMPLEMENTATION (Cont.) • auto=auto(100:400); • plot(auto)

  10. M-SEQUENCE SECURITY ISSUES • How secure are m-sequences? Even if they do not repeat for years? • Massey’s Algorithm can determine the generating polynomial, at most, in ‘2 times n’ error free chips • Example: • Generate m-sequence where N=7, i.e. n=3 • Fill up matrix using only 2*n = 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

  11. CODE SEQUENCE DETERMINATION • Berlekamp-Massey linear feedback shift register prediction algorithm • Gold’s Frequency Agile Predictor • B-M requires (at most) 2n error-free chips to determine generating polynomial • Gold’s based on relative times of arrival of single frequency • Demonstrated on Workstation with MATLAB

  12. MASSEY ALGORITHM EXAMPLE a(k) Code sequence of period N=7 (n=3): 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

  13. MASSEY 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

  14. Frequency Taps Feedback Taps MODEL FREQUENCY HOPPER Code-of-the-day Modulo-2 Adder Binary Register FH Output Mapper

  15. GOLDS TIME-OF-ARRIVAL ALGORITHM Code-of-the-day Code Generator Binary Output Register Output Hopping Sequence 00 > a 01 > b 10 > c 11 > d Frequency Mapper Times-of-arrival: 4,5,8,9,10,13,14,23,24,25,26,27,31

  16. PERFORMANCE • 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

  17. For 64-stage register and 128 hop frequencies a sequence of 64 X 128 = 8192 hops need to be collected • At 100K hops/sec this will take 8192/100K = 0.08192 seconds DATA COLLECTION TIME

  18. 31 correct detections of key frequency • 31-stage register • 128 hop frequencies • SNR - 12 dB • Prob correct sync = .9 PROBABILITY OF CORRECT SYNCHRONIZATION

  19. ALGORITHM TIME Based on 32-stage shift register

  20. ALGORITHM TIME VERSUS NUMBER OF HOP FREQUENCIES

  21. PARTIAL 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:

  22. PARTIAL CORRELATION (Cont.) • We can treat the am’s as random variables { 1} So, • The variance is:

  23. PARTIAL CORRELATION M-sequence Autocorrelation M-sequence Partial Correlation 63 chips 50 chips

  24. PARTIAL CORRELATION (Cont.) 50 chips 40 chips 30 chips 20 chips

  25. MATLAB IMPLEMENTATION OF PARTIAL CORRELATION • To perform a full autocorrelation of an m-sequence of length 63: pn1=pnf(6,103,1,1500,1,1); pn2=pnf(6,103,1,63,1,1); pn1=(pn1*2) -1; pn2=(pn2*2) -1; auto=xcorr(pn2,pn1); auto=auto(100:400); plot(auto) • To perform a partial autocorrelation for this sequence, change line 2: pn2=pnf(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.

  26. PERIODIC VS. APERIODIC CORRELATION 1 4 2 3 PN Code Reference Periodic 1 PN Code Reference Aperiodic

  27. APERIODIC AUTOCORRELATION OF AN M-SEQUENCE • Determine the Aperiodic autocorrelation of m-sequence [45]o n = 5, N = 31 pn1=pnf(5,45,1,31,1,1); pn2=pnf(5,45,1,31,1,1); pn1=(pn1*2)-1; pn2=(pn2*2)-1; x=xcorr(pn2,pn1); plot(x)

  28. APERIODIC AUTOCORRELATION Peak Value Approximately 15 side lobe values Index of discrimination G(x) = 45o

  29. PARTIAL APERIODIC AUTOCORRELATION G(x) = 45o 15 Chips

  30. CROSSCORRELATION • Whereas autocorrelation compares a code with itself, ‘crosscorrelation’ compares one code to another • Example: Determine the periodic and aperiodic crosscorrelation of [45]o and [75]o • Note the number of sidelobe values • Periodic sidelobes are 3-valued • Aperiodic is very random looking • Refer to the handout from Robert Gold’s publication on Linear Code Sequences

  31. CROSSCORRELATION([45]o and [75]o) Periodic Aperiodic

  32. COMPOSITE 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

  33. GOLD 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 Gold’s report: Length 25 – 1 = 31 Fixed Polynomial [45]o 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

  34. REGARDING 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

  35. GOLD 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)

  36. + + + 1 2 3 4 5 1 2 3 4 5 GOLD CODE CONSTRUCTION x5 + x3 + 1 = [51]o Gold Code x5 + x4 + x3 + x2 + 1 = [75]o

  37. GOLD CODE CONSTRUCTION [51]o xor [75]o = ( 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 = [3165]o non-maximal

  38. MAXIMUM 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 Dixon’s text, the number of possible m-sequences given n is tabulated in the next chart

  39. MAXIMUM 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

  40. CHOSING 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 n=6. Not true! [103]o and [147]o are a preferred pair • Arbitrary selection of code pairs can result in very poor correlation performance • Table A7.1, page 501, shows that for n=5, 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:

  41. Table A7.1 Performance of Preferred Pairs Compared with Worst Case Pairs

  42. PREFERRED PAIRS OF GOLD CODES

  43. CHOSING 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(n+2)/2 + k • The number calculated is the polynomial root (k) associated with the second code that completes a ‘preferred pair’

  44. CHOSING A SET OF ‘PREFERRED PAIRS’ Example: • Let n=8, then choose 435(1) • k=1 • n is even therefore, 2(8+2)/2 + 1 = 33 None listed • Try n=8, then choose 747(11) • k=11 • N is even therefore, 2(8+2)/2 + 11 = 43  [703]o

  45. JPL 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

  46. 2m - 1 2n - 1 2p - 1 JPL CODE CONSTRUCTION a a xor b xor c b c

More Related