Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
617,98 KB
Nội dung
Fundamentals of Global Positioning System Receivers: A Software Approach James Bao-Yen Tsui Copyright 2000 John Wiley & Sons, Inc. Print ISBN 0-471-38154-3 Electronic ISBN 0-471-20054-9 193 CHAPTER NINE GPS Software Receivers 9.1 INTRODUCTION This chapter can be considered as a summary of all the previous chapters. As mentioned in Chapter 1, this book does not follow the signal path of a GPS receiver but rather follows the design concept of the GPS. Therefore, the pre- vious chapters are presented in the following order. The user position can be found from the known positions of at least four satellites and the distances to them. In Chapters 2 to 4 the satellite constellation and the earth-centered, earth-fixed coordinate system are introduced and the equations to calculate the user position are presented. The structure of the GPS signal and the acquisi- tion and tracking of the signal are discussed in Chapters 5, 7, and 8, respec- tively. Although this approach should give a better understanding of the overall concepts associated with GPS, the discussion may not flow smoothly from a receiver design perspective. In this chapter the GPS receiver is discussed following the actual signal flow through the receiver. The input signal will be digitized first followed by acqui- sition and tracking. Once the tracking is achieved, the output will be converted into navigation data through subframe matching and parity checking. From the subframes the ephemeris data such as the week number can be found. The posi- tion of the satellite can be determined from the ephemeris data. The pseudo- ranges between the receiver and the satellites can also be determined. Once all the necessary information is obtained, satellite positions and the user position can be calculated. Finally, the user position is put in the desired coordinate system. The presentation in this chapter follows this order, which is shown in Figure 1.1. The block adjustment of synchronized signal (BASS) is used for the tracking program. The conventional approach will provide very similar results. 194 GPS SOFTWARE RECEIVERS 9.2 INFORMATION OBTAINED FROM TRACKING RESULTS As previously discussed, assume that the input GPS signal is down converted to 21.25 MHz, filtered to about 2 MHz bandwidth, and digitized at 5 MHz. The minimum requirement for the collected data is that they must contain the first three subframes. The information in these three subframes is used to find the satellite position and the user position as discussed in Chapter 5. The results from the conventional tracking program are shown in Figure 9.1, which plots the amplitude of the output signal. Each data point is obtained from 1 millisecond of digitized data. The signal from satellite 6 is relatively strong and the signal from satellite 28 is relatively weak, which can be observed from the two amplitude scales. The same signal is tracked by the BASS method and the results are shown in Figure 9.2. The vertical scale in Figure 9.2 shows the angle separation rather than the signal amplitude. Since the difference in angle is always p for a phase change, the scales stay the same for both plots. In this figure, the stronger signal shows a tighter groups than the weak one. In addition to the output signal, the conventional approach will output the initial phase of the locally generated C / A code. This initial phase of the C / A FIGURE 9.1 Tracking results from conventional phase-locked loop. 9.2 INFORMATION OBTAINED FROM TRACKING RESULTS 195 FIGURE 9.2 Tracking results from the BASS method. represents the fine time resolution in the tracking loop. In the BASS method, the C / A code is repeatedly used and the initial phase stays constant. As men- tioned in Chapter 8, fine time resolution x can be obtained from the ratio of the correlations of the early and late C / A codes. These x values are calculated every 10 ms and the results are shown in Figure 9.3. The data should be close to a straight line. One can see that the results are fairly noisy, even though every point is generated from averaging 10 ms of data. Once the x value is greater than 100 ns or less than 100 ns, the next set of input data point is shifted by 200 ns. This effect causes the discontinuities in the plots. In Figure 9.3a, both the 18th and 20th points are greater than 100 ns but point 19 is smaller than 100 ns. This indicates that the input data point shifts back and forth from 18 to 19 and back to 20, then to point 21 again. Among these four points of data the input shifts three times. The cause of this shifting back and forth is noise. In Figure 9.3b, the first data point is much less than 200 ns. The reason is that the initial point is obtained from the acquisition program and the result might not be as accurate. In Figure 9.3a the slope of the plot is positive and in Figure 9.3b the slope is negative. These represent the positive and negative Doppler frequency shift. The slopes of the plots represent the magnitude of the Doppler frequency shift. From these plots one can decide that 1 ms of data should not be used to 196 GPS SOFTWARE RECEIVERS FIGURE 9.3 Fine time obtained from BASS method. determine the input data point shift because it is very noisy. The tracking pro- gram reports these fine times every 10 ms and also reports the beginning of the C / A code as discussed in Section 8.12. These fine times are used to estimate the pseudorange. Even the fine time calculated from 10 ms of data is some- what noisy and if an individual point is used to calculate the user position, the accuracy may not be very good. A smoothing method such as the least mean square fit should be used to find the fine time from a relatively long record of data such as many tens of milliseconds of data points. These methods should improve the accuracy of the fine time, which should provide better accuracy in the calculated user position. 9.3 CONVERTING TRACKING OUTPUTS TO NAVIGATION DATA The next step is to change the output data (every 20 ms) as shown in Figures 9.1 and 9.2 into +1 and 1 (or 0) values. There are several ways to accomplish this. One common way is to find the difference between adjacent millisecond outputs. If the difference is beyond a certain threshold, there is a data transition. For the conventional tracking program, the threshold is usually obtained from the minimum anticipated amplitude of the output. Since strong and weak sig- 9.3 CONVERTING TRACKING OUTPUTS TO NAVIGATION DATA 197 nals produce different amplitudes as shown in Figure 9.1, the minimum values should be used as the threshold. For the BASS method the threshold is at ±p / 2 as discussed in Section 8.9. From these transitions, it is easy to change the tracking results into navigation data. The navigation data transition points must correspond to individual points in the collected input data, which have a time resolution of 200 ns. This time reso- lution can be used to find the relative time difference between different satellites. The following steps can be applied to accomplish this goal. This method repre- sents only one way to solve the problem and is by no means the optimum one. This method is presented because it might be easier to understand. The following steps are used to convert phase transition to navigation data: 1. Find all the navigation data transitions. The beginning of the first naviga- tion data should be within the first 20 ms of output data because the navigation data are 20 ms long. However, there might not be a phase transition within 20 ms of data. The first phase transition can be used to find the beginning of the first navigation data. The first phase transition detected in the output data is the beginning of the navigation data. If the first phase transition is within the first 20 ms of data, this point is also the beginning of the first navigation data. If the first phase transition occurs at a later time, a multiple number of 20 ms should be subtracted from it. The remainder is the beginning of the first navigation data. For simplicity let us just call it the first navigation data point instead of the beginning of the first navigation data. This information will be stored and used to find the coarse pseudorange discussed in Section 9.6. The first naviga- tion data point can be padded with data points of the same sign to make the first navigation data point always occur at 21 ms. This approach creates one naviga- tion data point at the beginning of the data from partially obtained information. For example, if the first phase transition occurs at 97 ms, by subtracting 80 ms from this value, the first navigation data point occurs at 17 ms. These 17 ms of data are padded with 4 ms of data of the same sign to make the first navigation data 20 ms long. This process makes the first navigation data point at 21 ms. This operation also changes the rest of the beginnings of the navigation data by 4 ms. Thus, the navigation data points occur at 21, 41, 61, and so on. Figure 9.4 illustrates the above example. The upper part of Figure 9.4 shows the output data from the tracking program and the bottom part shows the result padded with additional data. The adjusted first navigation data point at 21 ms is stored. If the first phase transition occurs at 40 ms, by subtracting 40, the adjusted first navigation data point occurs at 0 ms. Twenty-one ms of data with either + or can be added in front of the first navigation data point to make it occur at 21 ms. 2. Once the navigation data points are determined, the validity of these tran- sitions must be checked. These navigation data points must be separated by multiples of 20 ms. If these navigation data points do not occur at a multiple of 20 ms, the data contain errors and should be discarded. 198 GPS SOFTWARE RECEIVERS FIGURE 9.4 Adjustment of the first navigation data point. 3. After the navigation data points pass the validity check, these outputs are converted into navigation data. Every 20 outputs (or 20 ms) convert into one navigation data bit. The signs of these navigation data are arbitrarily chosen. The navigation data are designated as + 1 and 1. The parity check process can put the navigation data in the correct polarity. 9.4 SUBFRAME MATCHING AND PARITY CHECK After the outputs from the tracking are converted into navigation data, the next step is to find the subframes in these data. As discussed in Section 5.9 and Figure 5.7, a subframe will start with the preamble of pattern (10001011) in the first word (the telemetry). In the second word HOW (the hand over word), bits 20–22 are the subframe ID and last two bits (29,30) are the parity code (00). However, simply searching for these data does not guarantee that the beginning of a subframe will be found. One can search for more than one subframe at a time. If matches are found for more than one subframe, it has a better probability of being correct. It is important to notice that the polarities of the words in a subframe may change. Therefore, one should perform correlation on only one word ( 30 navi- gation data bits) at a time. In other words, each word should be separately cor- related. The code to match the preamble can be written as ( 1 1 1 1 1 1 1 1 ). Since the polarity of the word is not known, the matched result can be ±8. Once a match is found, 300 data points (1 subframe) later there should be another preamble match. If a match is not found, the first match is not a preamble. One can repeat this method to find the beginning of several subframes. More matches can improve the confidence level. The last two bits in the HOW can also be used for subframe matching. Once a subframe is found, the subframe number can be found from bits 20–22 of the HOW. The subframe numbers must be from 1 to 5 and they must be properly ordered from 1, 2, 3, 4, 5, 1, and so forth. 9.5 OBTAINING EPHEMERIS DATA FROM SUBFRAME 1 199 The parity check has been discussed in detail in Section 5.11. The procedure will not be repeated here. Two programs ( p 9 1 ) and ( p 92 ) are listed at the end of this chapter. They are used to match subframes and check parity. The subframe-finding program matches three consecutive preambles. If all three are correctly matched, this declares that the beginning of a subframe is found. The search of three consecutive preambles is arbitrarily chosen. First the preamble from 360 data points is searched. This data length is one subframe plus two words, which should have at least one preamble match (there could be more than one). If multiple matches are found only one of them will be the preamble. If a match is found, two more preambles 300 data points after the beginning of the first match are sought. If the search of the two preambles fails, the first match is not a preamble but some other data with that pattern. If both preambles are matched, all three preambles are considered as the beginnings of three consecutive subframes. The next step is to check the polarity of the last two bits in the HOW. These two bits should both be negative, thus, the sum of these two bits should be 2. However, the sum of these two bits could be either + 2 or 2. If the sum is zero, there is a mistake and the beginnings of the three subframes must be wrong. This can be considered as an additional check. If the sum is 2 the sign of the HOW word is correct and the subframe number can be found from bits 20–22 of the HOW. If the sum is +2, the polarity of the HOW must be inverted first; then find the subframe number. From the subframe number one can search for the beginning of subframes 1, 2, and 3, because they contain the information to calculate the user position. 9.5 OBTAINING EPHEMERIS DATA FROM SUBFRAME 1 Once the beginning of subframe 1 is found, the following information can be obtained. The navigationd data are in two forms: the binary and the two’s com- plement as discussed in Section 5.12 and Table 5.8. For the convenience of calculations, most of these data are converted into decimal form: 1. WN: The week number has 10 bits from 61–70 in binary form. These data are converted into decimal form. As discussed in Section 5.12, this number starts from midnight January 5 / morning January 6, 1980 and a rollover of 1,023 weeks must be taken care of. The decoded time must match the data collection time. 2. T GD : The estimated group delay differential has 8 bits from 197–204 in two’s complementary form. These data are converted into decimal form. 3. t oc : the satellite clock corrections have 16 bits from 219–234 in binary form. These data are converted into decimal form. 4. a f 2 : The satellite clock corrections have 8 bits from 241–248 in two’s complementary form. These data are converted into decimal form. 200 GPS SOFTWARE RECEIVERS 5. a f 1 : The satellite clock corrections have 16 bits from 249–264 in two’s complementary form. These data are converted into decimal form. 6. a f 0 : The satellite clock corrections have 22 bits from 271–292 in two’s complementary form. These data are converted into decimal form. 7. IODC: The issue of data, clock has 10 bits. Bits 83–84 are the most sig- nificant bits (MSB) and bits 211–218 are the least significant bits (LSB). As discussed in Section 5.13, the LSB of the IODC will be compared with the issue of data, ephemeris (IODE) of subframes 2 and 3. When- ever these three data sets are not matched, a data set cutover has occured and new data must be collected. 8. TOW: The time of the week has 17 bits from 31–47 in binary form. These data are converted into decimal form and the time resolution is 6 seconds as shown in Figures 5–7 and 5–8. In order to convert to seconds the data are multiplied by 6. Another important factor is that the TOW is the next subframe, not the present subframe as discussed in Section 5.10. In order to obtain the time of the present subframe 6 seconds must be subtracted from the results. 9.6 OBTAINING EPHEMERIS DATA FROM SUBFRAME 2 The data from subframe 2 can be obtained and converted into decimal form in a similar manner as discussed in the previous section. Referencing Figure 5.9b, the following sets of navigation data can be obtained from subframe 2: 1. IODE: The issue of data, ephemeris has 8 bits from 61–68. This bit pattern is compared with the 8 least significant bits (LSB) of the issue of data, clock (IODC) in subframe 1, and the IODE in subframe 3. If they are different, a data set cutover has occurred and these data cannot be used and new data should be collected. 2. C rs : The amplitude of the sine harmonic correction term to the orbit radius has 16 bits from 69–84 in two’s complementary form. These data are converted into decimal form. 3. Dn: The mean motion difference from computed value has 16 bits from 91–106 in two’s complementary form. These data are converted into dec- imal form. The unit is in semicircles / sec, thus, the data are multiplied by p to change to radians. 4. M o : The mean anomaly at reference time has 32 bits in two’s comple- mentary form. These data are divided into two parts, the 8-bit MSB from 107–114 and 24-bit LSB from 121–144, and are converted into decimal form. The unit is in semicircles, thus, the data are multiplied by p to change to radians. 5. C uc : The amplitude of the cosine harmonic correction term to the argu- 9.7 OBTAINING EPHEMERIS DATA FROM SUBFRAME 3 201 ment of latitude has 16 bits from 151–166 in two’s complementary form. These data are converted into decimal form. 6. e s : The eccentricity of satellite orbit has 32 bits in binary form. These data are divided into two parts, the 8-bit MSB from 167–174 and 24-bit LSB from 181–204, and converted into decimal form. 7. C us : The amplitude of the sine harmonic correction term of the argument of latitude has 16 bits from 211–226 in two’s complementary form. These data are converted into decimal form. 8. a s : The square root of the semi-major axis of the satellite orbit has 32 bits in binary form. These data are divided into two parts, the 8-bit MSB from 227–234 and 24-bit LSB from 241–264, and converted into decimal form. 9. t oe : The reference time ephemeris has 16 bits from 271–286 in binary form. These data are converted into decimal form. 9.7 OBTAINING EPHEMERIS DATA FROM SUBFRAME 3 The data from subframe 3 will be obtained in a similar way. Referencing Figure 5.9c, the following data can be obtained from subframe 3: 1. C ic : The amplitude of the cosine harmonic correction term to the angle of inclination has 16 bits from 61–76 in two’s complementary form. These data are converted into decimal form. 2. Q 0 : The longitude of the ascending node of orbit plane at weekly epoch has 32 bits in two’s complementary form. These data are divided into two parts, the 8-bit MSB from 77–84 and 24-bit LSB from 91–114, and converted into decimal form. The unit is in semicircles, thus, the data are multiplied by p to change to radians. 3. C is : The amplitude of the sine harmonic correction term to the angle of inclination has 16 bits from 121–126 in two’s complementary form. These data are converted into decimal form. 4. i 0 : The inclination angle at reference time has 32 bits in two’s comple- mentary form. These data are divided into two parts, the 8-bit MSB from 137–144 and 24-bit LSB from 151–174, and converted into decimal form. The unit is in semicircles, thus, the data are multiplied by p to change to radians. 5. C rc : The amplitude of the cosine harmonic correction term to the orbit radius has 16 bits from 181–196 in two’s complementary form. These data are convered into decimal form. 6. q: The argument of perigee has 32 bits in two’s complementary form. These data are divided into two parts, the 8-bit MSB from 197–204 and 24-bit LSB from 211–234, and converted into decimal form. The unit is in semicircles, thus, the data are multiplied by p to change to radians. 202 GPS SOFTWARE RECEIVERS 7. ˙ Q : The rate of right ascension has 24 bits from 241–264 in two’s com- plementary form. These data are converted into decimal form. The unit is in semicircles, thus, the data are multiplied by p to change to radians. 8. IODE: The issue of data, ephemeris has 8 bits from 271–278. This bit pattern is compared with the 8 least significant bits (LSB) of the issue of data, clock (IODC) in subframe 1, and the IODE in subframe 2. If they are different, a data set cutover has occurred and these data cannot be used and new data should be collected. 9. idot: The rate of inclination angle has 14 bits from 279–292 in two’s com- plementary form. These data are converted into decimal form. The unit is in semicircles, thus, the data are multiplied by p to change to radians. It should be noted that the TOWs from subframes 2 and 3 are not decoded because the TOW from subframe 1 will provide the necessary information. All the data from subframes 1, 2, and 3 are decoded and converted to decimal form and have the desired units. The following steps are to calculate the satellite positions and user position. Three computer program ( p 9 3 ), ( p 9 4 ), and ( p 95 ) are listed at the end of this chapter and they are used to obtain the navigation data from subframes 1, 2, and 3. 9.8 TYPICAL VALUES OF EPHEMERIS DATA Some of the ephemeris data are user located dependent. Others are somewhat user location independent, such as the inclination angle. Some of the ephemeris data that are user location independent are listed in Table 9.1 as a reference. These data are from three different satellites and most of the values have about the same order of magnitude. 9.9 FINDING PSEUDORANGE In collecting the digitized data there is no absolute time reference and the only time reference is the sampling frequency. As a result, the pseudorange can be measured only in a relative way as shown in Figure 9.5, because the clock bias of the receiver is an unknown quantity. In this figure the points repre- sent individual input digitized data and they are separated by 200 ns because the sampling rate is 5 MHz. The relative pseudorange is the distance (or time) between two reference points. In this figure the beginning point of subframe 1 is used as the reference point. All the beginning points of subframe 1 from different satellites are transmitted at the same time except for the clock cor- rection terms of each satellite. As a result one can consider that the subframes from different satellites are transmitted at the same time. Since the beginnings [...]... results are listed in Table 9. 2 The satellite are designated as a, b, c, and d instead of a real satellite number because the information in satellite c is artificially created to illustrate a special case The values in the second and third columns are obtained from the tracking and subframe matching programs The ind and difms are calculated from Equations (9. 1) and (9. 2) The values of bca(ind) are also... These new data are listed in Table 9. 3 9. 10 GPS SYSTEM TIME AT TIME OF TRANSMISSION 2 09 TABLE 9. 3 Coarse Relative Pseudorange (time) with New Beginnings of the C/ A Code Sat nav 1 sfb 1 inds difms bca(ind) dat diff of dat a b c d 0 7 10 17 100 100 100 99 196 196 197 195 0 7 0 7 2 893 3828 115 2661 98 02 893 98 38828 98 50115 97 87661 0 3 593 5 47222 − 15232 The only difference between Tables 9. 3 and 9. 2 is in... beginnings of subframe 1 can be obtained as dat 10 × 5000 × ind + 5000 × difms + bca(ind) (9. 5) because dat has a time resolution of 10 ms, difms has a time resolution of 1 ms, and each millisecond has 5,000 data points Using this equation the same values of dat can be obtained and listed in the above table In the actual software receiver program, beginnings of the C/ A code with values equal to or less than... navdata(m,points(m) − 1+264: − 1:points(m) − 1+241); sa3 [sa2 sa1]; sa(m) bi2de(sa3)∗2∧ ( − 19) ; clear sa1 sa2 sa3; toe(m) bi2de(navdata(m,points(m) − 1+286: − 1:points(m) − 1+271))∗2∧ 4; end % p9 5.m DECODE3.M decode navigation data in subframe 3 into ephermeris data clear angmat navd rymkmat load d:/ gps/ big data/ srvy8310; angmat ang; ptnumat transpt; rymkmat fintime; [st navd] navdat(angmat); ∗find naviga... gps/ big data/ srvy8210; angmat ang; ptnumat transpt; rymkmat fintime; [st navd] navdat(angmat); ∗find naviga data (20ms) & first angle 224 GPS SOFTWARE RECEIVERS transition [point, navdata] matsubf(navd); ∗find start pt of subfram 2 prod 0 1s nsat length(points); for n 1:nsat; iode2(m,:) navdata(m,points(m) − 1+61:points(m) − 1+68); crs(m) comp2dec(navdata(m,points(m) − 1+84: − 1:points(m) − 1+ 69) , − 5);... C/ A code to the beginning of subframe 1 The first step can be accomplished through the following equation: 9. 9 FINDING PSEUDORANGE 207 TABLE 9. 2 Coarse Relative Pseudorange (time) Sat nav 1* sfb 1** ind difms bca(ind)*** dat diff of dat a b c d 0 7 10 17 100 100 100 99 196 196 197 195 0 7 0 7 98 02 893 98 03828 98 50115 97 52661 98 02 893 98 38828 98 50115 97 87661 0 3 593 5 47222 − 15232 *Obtained from tracking... building a real-time receiver, the information obtained from the acquisition must be passed to the tracking program in a timely manner In a software approach, the acquisition performs on a set of data already collected and the tracking will process the incoming data For ordinary signal strength it takes the acquisition program slightly less than 1 second to process 1 ms of digitized data to find the signal... ] (9. 19) where Dt is obtained from Equation (9. 12) and r i is the pseudorange to satellite i A computer program (p9 6) is listed at the end of this chapter to illustrate the calculation of the satellite positions 9. 12 CALCULATION OF USER POSITION IN CARTESIAN COORDINATE SYSTEM The calculation of user position is discussed in Chapter 2 The inputs are the positions of the satellites and the pseudoranges... the first phase transition is at 10 ms and the data are padded with 11 points at the beginning The beginning of subframe 1 is at the 100th navigation data point The beginning of the C/ A code is aligned with the beginnin of subframe 1 at 197 The corresponding beginning of the C/ A code is 98 50115 In Figure 9. 6d the first navigation data point is at 17 ms and the data are padded with 4 points at the beginning... Section 9. 3; (3) the beginning of subframe 1 obtained through subframe matching as discussed in Section 9. 4 with a time FIGURE 9. 5 Relative pseudorange 204 GPS SOFTWARE RECEIVERS FIGURE 9. 6 Relations among the beginning of the C/ A code, first navigation data point, and beginning of subframe 1 resolution of 20 ms Figure 9. 6 illustrates the relations among these three quantities In Figures 9. 6a, b, and . first naviga- tion data point can be padded with data points of the same sign to make the first navigation data point always occur at 21 ms. This approach creates one naviga- tion data point at the. Fundamentals of Global Positioning System Receivers: A Software Approach James Bao-Yen Tsui Copyright 2000 John Wiley & Sons, Inc. Print ISBN 0-4 7 1-3 815 4-3 Electronic ISBN 0-4 7 1-2 005 4 -9 193 CHAPTER. navigation data are arbitrarily chosen. The navigation data are designated as + 1 and 1. The parity check process can put the navigation data in the correct polarity. 9. 4 SUBFRAME MATCHING AND