270 likes | 458 Views
DIGITAL SPREAD SPECTRUM SYSTEMS. ENG-737. Wright State University James P. Stephens. x(t). BPSK modulator. s(t) = A x(t) g(t) cos w t. A cos w t. g(t). DIRECT SEQUENCE IMPLEMENTATION. (A). x(t). BPSK modulator. BPSK modulator. Data. s(t) = A x(t) g(t) cos w t.
E N D
DIGITAL SPREAD SPECTRUM SYSTEMS ENG-737 Wright State University James P. Stephens
x(t) BPSK modulator s(t) = A x(t) g(t) cos wt A cos wt g(t) DIRECT SEQUENCE IMPLEMENTATION (A) x(t) BPSK modulator BPSK modulator Data s(t) = A x(t) g(t) cos wt sx(t) = A x(t) cos wt A cos wt g(t) Carrier (B) (C) r(t) = A’A x(t - td) g(t - td) cos [ w(t – td) + f ] BPSK demod Filter ~ s(t) = A’A x(t - td) Output of correlator ~ g(t - td) Correlator
SPREADING / DESPREADING Data “A” 1 0 1 1 0 1 0 0 A xor B transmitted “C” 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 Received “C” same as above C xor D original data signal Locally generated PN bit stream “B” Code Inversion Locally generated PN bit stream “D” same as “B” above Embedded Ref.
SPREADING CODES IMPORTANT CODE PROPERTIES • Must be easily generated at the transmitter and receiver (i.e. deterministic) • Behave as much as possible like a random sequence • Be difficult to exploit • Support multiple access • Provide ease of synchronization
+ Mod-2 Adder PN sequence 4 – Stage shift register SIMPLE SHIFT REGISTER GENERATOR (SSRG) • Data at first stage is shifted once toward the right each time clock pulse occurs • Clock input are normally not shown
+ • 0 0 0 0 1 1 • 1 0 0 0 8 • 1 1 0 0 12 • 1 1 1 0 14 • 1 1 1 1 15 • 0 1 1 1 7 • 1 0 1 1 11 • 0 1 0 1 5 • 1 0 1 0 10 • 1 1 0 1 13 • 0 1 1 0 6 • 0 0 1 1 3 • 1 0 0 1 9 • 0 1 0 0 4 • 0 0 1 0 2 • 0 0 0 1 1 Mod-2 Adder PN sequence 4 – Stage shift register SIMPLE SHIFT REGISTER GENERATOR (SSRG) N = 2n - 1 Where, N = length of sequence n = number of stages Repeats
1 8 2 12 4 14 9 15 3 7 6 11 13 10 5 M-SEQUENCES If sequence goes through all possible states except ‘all zeros’, it is maximal If not maximal, the output sequence will be dependent on the initial fill State Diagram
+ a1 a2 a3 a4 an . . . . . . . . Ck-1 Ck-2 Ck-3 Ck-4 Ck-n GENERAL FORM OF A LINEAR SSRG Let: Be the output sequence The general form for a linear SSRG is: The fundamental recursion relationship describing the sequence element ck and the contents of the register is:
GENERAL FORM OF A LINEAR SSRG (Cont) Where, • The sum is modulo-2 addition • ai is either 0 or 1 • i = 1, 2, 3, . . . . n-1 and an = 1 • The values are called ‘initial conditions’ or ‘initial fill’
+ 1 2 3 4 5 5-STAGE SIMPLE SHIFT REGISTER GENERATOR • n = 5; number of register stages • N = length of sequence generated (maximal only if correct taps are chose) • Generator described by a polynomial over a field of two symbols, called Galois Field of 2 (GF2) • Generator g(x) is written: x0 x1 x2 x3 x4 x5 Clock
5-STAGE SIMPLE SHIFT REGISTER GENERATOR (Cont) • ai are the tap coefficients, for the example shown: • a0 = a1 = a3 = a4 = a5 = 1 • a2 = 0 • Therefore, the generator polynomial is written: g(x) = x5 + x4 + x3 + x + 1 • This is called the generator’s ‘characteristic polynomial’
Polynomial Octal Binary OCTAL REPRESENTATION CONVERSION • Example: Convert 103o to generator polynomial • Solution: 1 0 3 0 0 1 0 0 0 0 1 1 X8 X7 X6 X5 X4 X3 X2 X1 X0 = X6 + X + 1 + 3 1 2 4 5 6
MAXIMAL LENGTH SEQUENCES • When the sequence goes through all 2n – 1 possible states, it is called an ‘m-sequence’ • The periodic cycles of a linear SSRG sequence depend on: • Register length, n • Feedback taps • Initial conditions • Only if feedback taps are chosen properly will the sequence be an m-sequence • A non-maximal sequence is one in which the register does not go through all possible states, i.e. the sequence will be initial fill dependent
8 + 1 12 A 3 6 15 2 14 7 5 9 B C 13 11 10 4 EXAMPLE OF A NON-MAXIMAL SEQUENCE 24 – 1 = 15 Null SeqSeq ASeq B 0 0 0 0 - 0 0 0 0 0 - R 1 0 0 0 - 8 1 1 0 0 -12 0 1 1 0 - 6 0 0 1 1 - 3 0 0 0 1 -1 1 0 0 0 - R 1 1 1 1 - 15 0 1 1 1 - 7 1 0 1 1 - 11 1 1 0 1 - 13 1 1 1 0 - 14 1 1 1 1 - R State Diagrams
Degree Octal Representation of Generator Polynomial [13] [23] [45], [75], [67] [103], [147], [155] [211], [217], [235], [367], [277], [325], [203], [313], [345] [435], [551], [747], [453], [545], [537], [703], [543] [1021], [1131], [1461], [1423], [1055], [1167], [1541], [1333], [1605], [1751], [1743], [1617], [1553], [1157] [2011], [2415], [3771], [2157], [3515], [2773], [2033] [2443], [2461], [3023], [3543], [2745], [2431], [3177] [4005], [4445], [4215], [4055], [6015], [7413], [4143] [4563], [4053], [5023], [5623], [4577], [6233], [6673] • 3 • 4 • 5 • 6 • 7 • 8 • 9 • 10 • 11 Source: Introduction to Spread Spectrum Communications, Peterson, Ziemer, Borth PRIMITIVE POLYNOMIALS
NUMBER OF M-SEQUENCESfrom register length 3 through 16 Register Length n Number of sequences • > 2 • 4 > 4 • 5 > 6 • 6 > 4 • 7 > 18 • 8 > 16 • 9 > 48 • 10 > 60 • 11 > 176 • 12 > 96 • 13 > 630 • 14 > 756 • 15 > 1800 • 16 > 2048 Where (2n – 1) is a Euler number i.e. the number of positive integers including 1 that are relatively prime to and less than 2n – 1
1 2 5 3 4 Output + + + + + 1 2 5 3 4 Output COMPARISON OF SSRG WITH MSRG (a) Simple Shift Register Generator (SSRG) Configuration of x5 + x2 + 1 (b) Equivalent Modular Shift Register Generator (MSRG) Configuration of x5 + x3 + 1
Example: x5 + x2 + 1 x5 ( ) = 1 + x3 + x5 x5 + x3 + 1 1 1 1 + + 1 x2 x5 RECIPROCAL CODES Time reversed replicas
Register Length - n Sequence Length Sequence Period CODE SEQUENCE PERIODS FOR M-SEQUENCES Code Sequence Periods for Various m-sequence Lengths at 1 Mcps • 127 1.27 x 10-4 sec • 255 2.55 x 10-4 sec • 511 5.11 x 10-4 sec • 1,023 1.023 x 10-3 sec • 2,047 2.047 x 10-3 sec • 4,095 4.095 x 10-3 sec • 8,191 9.191 x 10-3 sec • 131,071 1.31 x 10-1 sec • 524,287 5.24 x 10-1 sec • 8,388,607 8.388 sec • 27 134,217,727 13.421 sec • 2,147,483,647 35.8 min • 879,609,302,207 101.7 days • 2,305,843,009,213,693,951 7.3 x 104 years • 89 618,970,019,642,690,137,449,562,111 1.95 x 109 years Source: Spread Spectrum Systems – R.C. Dixon
GENERATING PN SEQUENCES IN MATLAB • Requires: • pnf.m • oct2bin.m • x = pnf(8,435,1,500,1,1); • # of stages • Octal polynomial • Initial Fill in Octal • Length of sequence • Sampling Frequency • Bit rate
PROPERTIES OF M-SEQUENCES • M-sequences must have an even number of taps • Reciprocal codes can be generated by reversing the order of the taps • Exhibit the shift and add property: • If an m-sequence is added to a phase shifted version of itself, then the resulting sequence is another shift of the original sequence • Example: 1 1 1 0 1 0 0 Original sequence 1 0 1 0 0 1 1 Shifted by 2 0 1 0 0 1 1 1 Same sequence shifted by 4 • Balance Property: • In one period of an m-sequence, there is one more 1 than 0 (result of not having an all zeros state)
RUN PROPERTIES OF M-SEQUENCES (Cont.) 5. In one period there a 2(n-1) runs of consecutive 1’s or 0’s. • ½ are of length 1 • ¼ are of length 2 • 1/2lare of length l (Ex: 1/8 of length 3, 1/16 of length 4, . . .) Or equivalently: • 1 run of 1’s of length n • 1 run of 0’s of length n-1 • 1 run of 1’s and 1 run of 0’s of length n-2 • 2 runs of 1’s and 2 runs of 0’s of length n-3 • 4 runs of 1’s and 4 runs of 0’s of length n-4 • 2n-3 runs of 1’s and 2n-3 runs of 0’s of length. 1
Number of Bits 1/24 = 1/16 (1 run of 1’s of length 5) 5 (1 run of 0’s of length 4) 4 1/23 = 1/8 (1 run of 1’s of length 3) 3 (1 run of 0’s of length 3) 3 1/22 = 1/4 (2 runs of 1’s of length 2) 4 (2 runs of 0’s of length 2) 4 1/21 = 1/2 (4 runs of 1’s of length 1) 4 (4 runs of 0’s of length 1) 4 BALANCE PROPERTYExample M-sequence where n=5, therefore l=4 N = 25 – 1 = 31 Total runs = 2n-1 = 25-1 = 24 = 16 Total number of bits = 5 + 4 + 3 + 3 + 4 + 4+ 4+ 4 = 31
BALANCE PROPERTYExample Generating polynomial [67]o (n = 5 and N = 31) The m-sequence is given as: 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1 10 0 0 01 1 10 01 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
PROPERTIES OF M-SEQUENCES (Cont.) • Number of maximal sequences possible • Number of sequences = 1/n [(2n – 1)] • Where n = the number of SSRG stages (k) is Euler’s number • (k) equals the number of positive integers less than k and relatively prime to k • If k is not prime, use: Where pfi ‘s are the prime factors of k
NUMBER OF M-SEQUENCES Example • Let n = 5, N = 25 -1 = 31 • 31 is a prime number, therefore # of sequences = 1/n[(2n – 1)] = 1/5[30] = 6 Note: 30 is the number of positive integers less than k • This number does not include reciprocal codes since they are time-reversed replicas of the same sequence • Let n = 4, N = 24 -1 = 15 • 15 is not a prime number, therefore prime factors are 3 and 5 # of sequences = = (1/4)(24 – 1)(1 – 1/3)(1 – 1/5) = (1/4)(15)(2/3)(4/5) = 2 • The table 3.3 on page 72 of the Dixon text is incorrect for n=4 and is verified from “Error-Correcting Codes” by Peterson and Weldon