GPS Signal (GPS and Galileo Receiver) Part 2

C/A Code

In this section, the spreading sequences used in GPS are described. We restrict ourselves to the C/A code sequences, as we deal only with L1 signals in this topic. The spreading sequences used as C/A codes in GPS belong to a unique family of sequences. They are often referred to as Gold codes, as Robert Gold described them in 1967; see Gold (1967). They are also referred to as pseudo-random noise sequences, or simply PRN sequences, because of their characteristics.

Gold Sequence

The pseudorandom noise (PRN) codes transmitted by the GPS satellites are deterministic sequences with noise like properties. Each C/A code is generated using a tapped linear feedback shift register (LFSR); Section 14.1. It generates a maximal-length sequence of lengthtmp2D318_thumb[2]elements.

A Gold code is the sum of two maximum-length sequences. The GPS C/A code uses n = 10. The sequence p(t) repeats every ms so the chip length istmp2D319_thumb[2]which corresponds to a metric length of 300 m when propagating through vacuum or air. For further details on the generation of the Gold codes, we refer to Section 2.3.3. The ACF for this C/A code is


tmp2D322_thumb[2]The effect of BPSK modulation of the L1 carrier wave with the C/A code and the navigation data for one satellite. The resulting L1 signal is the product of G, N , and the carrier signals. The plot contains the first 25 chips of the Gold code for PRN 1.

FIGURE 2.3. The effect of BPSK modulation of the L1 carrier wave with the C/A code and the navigation data for one satellite. The resulting L1 signal is the product of G, N , and the carrier signals. The plot contains the first 25 chips of the Gold code for PRN 1.

The sequence would have 512 ones and 511 zeros, and these would appear to be distributed at random. Yet the string of chips so generated is entirely deterministic. The sequence is pseudorandom, not random. Outside the correlation interval the ACF of p(t) is -1 /N. For the C/A code the constant term is – 1/N = -1 /1023, which is shown in Figure 2.4.

The ACF can be expressed as the sum of this constant term and an infinite series of the triangle functiontmp2D324_thumb[2]defined in (1.15). This infinite series is obtained by the convolution oftmp2D325_thumb[2]with an infinite series of impulse functions that are phase-shifted bytmp2D326_thumb[2]

tmp2D330_thumb[2]

where * denotes convolution. The power (line) spectrum of this periodic PRN sequence is derived from the Fourier transform of (2.4):

tmp2D331_thumb[2]

 

for

tmp2D332_thumb[2]

 

Gold Sequence Generation—Overview

The generation of the Gold codes is sketched in Figure 2.5. The C/A code generator contains two shift registers known as G1 and G2. These shift registers each have 10 cells generating sequences of length 1023.

Stem plot of an ACF for a Gold sequence. The left stem has correlation value all other correlation values are Only the first 50 lags out of 1023 are shown.

FIGURE 2.4. Stem plot of an ACF for a Gold sequence. The left stem has correlation value tmp2D334_thumb[2]all other correlation values are tmp2D335_thumb[2]Only the first 50 lags out of 1023 are shown.

The two resulting 1023 chip-long sequences are modulo-2 added to generate a 1023 chip-long C/A code, only if the polynomial is able to generate code of maximum length.

Every 1023rd period, the shift registers are reset with all ones, making the code start over. The G1 register always has a feedback configuration with the polynomial

tmp2D340_thumb[2]

meaning that state 3 and state 10 are fed back to the input. In the same way, the tmp2D341_thumb[2]register has the polynomial

tmp2D343_thumb[2]

To make different C/A codes for the satellites, the output of the two shift registers are combined in a very special manner. The G1 register always supplies its output, but the G2 register supplies two of its states to a modulo-2 adder to generate its output. The selection of states for the modulo-2 adder is called the phase selection. Table 2.3 shows the combination of the phase selections for each C/A code. It also shows the first 10 chips of each code in octal representation.

As the generation of the C/A codes are of immense importance, we outline in detail the principle of operation of the C/A code generator in the next section.

Gold Sequence Generation—Details

A shift register is a set of one bit storage or memory cells. When a clock pulse is applied to the register, the content of each cell shifts one bit to the right. The content of the last cell is "read out" as output. The special properties of such shift registers depend on how information is "read in" to cell 1.

TABLE 2.3. C/A code phase assignment. The selection of different states for the code phase generates the different C/A codes for the GPS satellites.

Satellite

GPS PRN

Code phase

Code

First

ID number

signal number

selection

G2

delay chips

10 chips octal

1

1

tmp2D-344

5

1440

2

2

tmp2D-345

6

1620

3

3

tmp2D-346

7

1710

4

4

tmp2D-347

8

1744

5

5

tmp2D-348

17

1133

6

6

tmp2D-349

18

1455

7

7

tmp2D-350

139

1131

8

8

tmp2D-351

140

1454

9

9

tmp2D-352

141

1626

10

10

tmp2D-353

251

1504

11

11

tmp2D-354

252

1642

12

12

tmp2D-355

254

1750

13

13

tmp2D-356

255

1764

14

14

tmp2D-357

256

1772

15

15

tmp2D-358

257

1775

16

16

tmp2D-359

258

1776

17

17

tmp2D-360

469

1156

18

18

tmp2D-361

470

1467

19

19

tmp2D-362

471

1633

20

20

tmp2D-363

472

1715

21

21

tmp2D-364

473

1746

22

22

tmp2D-365

474

1763

23

23

tmp2D-366

509

1063

24

24

tmp2D-367

512

1706

25

25

tmp2D-368

513

1743

26

26

tmp2D-369

514

1761

27

27

tmp2D-370

515

1770

28

28

tmp2D-371

516

1774

29

29

tmp2D-372

859

1127

30

30

tmp2D-373

860

1453

31

31

tmp2D-374

861

1625

32

32

tmp2D-375

862

1712

33

tmp2D-376

863

1745

34

tmp2D-377

950

1713

35

tmp2D-378

947

1134

36

tmp2D-379

948

1456

37

tmp2D-380

950

1713

 

 C/A code generator. The code generator contains two shift registers,and The output fromdepends on the phase selector. The different configurations of the phase selector makes the different C/A codes.

FIGURE 2.5. C/A code generator. The code generator contains two shift registers,tmp2D382_thumb[2]and tmp2D383_thumb[2]The output fromtmp2D384_thumb[2]depends on the phase selector. The different configurations of the phase selector makes the different C/A codes.

For a tapped linear feedback shift register, the input to cell 1 is determined by the state of the other cells. For example, the binary sum from cells 3 and 10 in a 10-cell register could be the input. If cells 3 and 10 have different states (one is 1 and the other 0), a 1 will be read into cell 1 on the next clock pulse. If cells 3 and 10 have the same state, 0 will be read into cell 1. If we start with 1 in every cell, 12 clock pulses later the contents will be 0010001110. The next clock pulse will take the 1 in cell 3 and the 0 in cell 10 and place their sum (1) in cell 1. Meanwhile, all other bits have shifted cell to the right, and the 0 in cell 10 becomes the next bit in the output. A shorthand way of denoting this particular design is by the modulo-2 polynomialtmp2D388_thumb[2]Such a polynomial representation is particularly

useful because iftmp2D389_thumb[2]then the coefficientstmp2D390_thumb[2]form the binary output sequence.

The C/A code is generated by two 10-bit LFSRs of maximal lengthtmp2D391_thumb[2] One is thetmp2D392_thumb[2]register already described and is referred to astmp2D393_thumb[2]The other hastmp2D394_thumb[2]Cells 2, 3, 6, 8, 9, and 10 are tapped and binary-added to get the new input to cell 1. In this case, the output comes not from cell 10 but from a second set of taps. Various pairs of these second taps are binary-added. The different pairs yield the same sequence with different delays or shifts (as given by the "shift and add" or "cycle and add" property: a chip-by-chip sum of a maximal-length register sequence and any shift of itself is the same sequence except for a shift). The delayed version of the G2 sequence is binary-added to the output of G1. That becomes the C/A code. The G1 and G2 shift registers are set to the all-ones state in synchronism with the epoch of the X1 code used in the generation of the P code (see ahead). The various alternative pairs of G2 taps (delays) are used to generate the complete set of 36 unique PRN C/A codes. These are Gold codes, Gold (1967), Dixon (1984), and any two have a very low cross correlation (are nearly orthogonal).

There are actually 37 PRN C/A codes, but two of them (34 and 37) are identical. A subset of the first 32 codes are assigned to (nominally 24) satellites and recycled when old satellites die and new satellites are launched. Codes 33 through 37 are reserved for other uses, including ground transmitters.

The P code generation follows the same principles as the C/A code, except that 4 shift registers with 12 cells are used. Two registers are combined to produce the Xi code, which is 15,345,000 chips long and repeats every 1.5 seconds; and two registers are combined to produce the X2 code, which is 15,345,037 chips long. The X 1 and X2 codes can be combined with 37 different delays on the X2 code to produce 37 different one-week segments of the P code. Each of the first 32 segments is associated with a different satellite.

Next post:

Previous post: