Paper Menu >>
Journal Menu >>
![]() Journal of Global Positioning Systems (2005) Vol. 4, No. 1-2: 215-222 Evaluation of the pseudorange performance by using software GPS receiver Shun-Ichiro Kondo, N ob uaki Kubo a n d Akio Yasuda 2-1-6 Etchujim a Koto-ku Tokyo Japan e-mail: shun@denshi.e.kaiyodai.ac.jp Tel: +81-3-5245-7376,Fax:+81-3-5245-7376 Received: 15 November 2004 / Accepted: 12 July 2005 Abstract. An algorithm is developed to process IF signal data from a GPS RF front-end module, which consists of a down converter and an ADC. The down converter converts the signal from RF to IF, the ADC samples the IF signal. All the other processing including signal acquisition, tracking, data decoding and solving position are implemented in software using base-band signal processing techniques. The local C/A codes and carrier replica signal are pre-generated, stored in memory, and used respectively during signal acquisition and tracking. In order to evaluate the algorithm, this paper demonstrates standalone positioning using the measured pseudoranges of which accuracy depends on DLL parameter of the correlator of early/late spacing. This paper presents the explanation and evaluation of the algorithm. Key words: Software GPS receiver, signal acquisition, signal tracking, accuracy of pseudorange 1 Introduction In a conventional GPS receiver, a GPS signal acquisition and tracking channel is made up of both hardware and software (Misra and Enge, 2001). Typical hardware components include mixers, correlators, NCO, and code generator for a code tracking loop or sine/cosine tables for a carrier lock loop. Software equips discriminators, tracking loop filters, navigation data bit/frame sync and ephemeris demodulator, and implements various reading from and writing to uniquely addressed registers. The software GPS receiver has advantage of flexibility over such conventional receivers. In the software GPS receiver, down-converter converts the signal from RF to IF, ADC samples the IF signal, and all the other processing are implemented in software. Thus the accuracy and function are controllable according to the algorithms and parameters. The signal quality and/or multipath effect can be estimated from the correlation values of the programmable code tracking Loop (Pany, Eissfeller and Winkel, 2003). The algorithm is developed on MATLAB to investigate the effect of GPS signal processing parameters on positioning in the present paper. The algorithm itself is also evaluated. 2 Software GPS receiver The feature of the software GPS receiver is to use an analog-to-digital converter (ADC) which converts the input signal into digital data at the earliest possible stage in the receiver (Tsui, 2000). Fig.1 illustrates a general structure of software GPS receiver (Pany, Moon, Irsigler, Eissfeller, and Furlinger, 2003). The signals transmitted from the GPS satellites are received at the antenna. Through a down converter, the input signal is amplified to a proper amplitude and the frequency is converted to a desired output frequency. An ADC is used to digitize the input signal. Acquisition means to find the signal of a certain satellite. The tracking program tracks the code phase and the carrier p hase, and find s the phase tran sition of the navigation data. The code phase is used to obtain the pseudorange. The navigation data can be obtained from the phase transition of the data. Ephemeris data can be obtained from the navigation and are used to obtain the satellite position. Finally, the user position, velocity, and time can be deduced. The prototype software receiver developed in this paper is comprised of RF front-end module and signal processing program on MATLAB. ![]() 216 Journal of Global Positioning Systems GPS antenna RF Front-end ADC preprocessing: down sampling ,amplitude and bias control tracking acquisition Data decoding,pseudrange measurements applictoion processing(PVT solution) Software Hardware application processing(PVT solution) Data decoding,pseudorange measurements Software Hardware tracking acquisition Preprocessing :down sampling , amplitude and bias control hard disk GPS antennadown conveterADC Fig.1 General str ucture of software GPS receiver 3 GPS RF fro nt- end module GPS Signal Tap (manufactured by Accord Software and System Private Limited) is used as a GPS L1 RF front- end. Table.1 summarizes the characteristics of the GPS Signal Tap. The L1 GPS signal is down converted to the intermediate frequency of 15.42MHz in two stages of a down converter. The IF is sampled by the ADC at a frequency of user’s choice, which can be selected from 2MHz to 20MHz in the GUI application. The ADC output is stored once in the on-board SDRAM of the Signal Buffer and transferred to host PC via USB for post processing. Since the capacity for the Signal Buffer is limited to 64MB, the data duration depends on the sampling frequency. Fig. 2 shows the picture of the GPS Signal tap. Table.1 Characteristics of the GPS Signal Tap Fig.2 Picture of th e GPS Signal Tap 4 Acquisition Acquisition is comprised of a two-dimensional search process that determines a coarse Doppler offset of the carrier and the beginning point of the C/A code. Conventional GPS receivers generally use a serial search method for acquisition (Kaplan, 1996). The present method searches correlation peak by multiplying the code with delay within 1023chips with frequency shifted carrier signal within 10 ± kHz Doppler band in coarse increments of delay and shift. It requires a large processing time to search the correct Doppler and code shift. To expedite the process, parallel search methods have been suggested. Here, algorithms based on fast Fourier transform (FFT) and inverted FFT (IFFT) techniques are used to search a maximum correlation power of signals between the locally generated code/carrier signal and the input IF signal. A circular convolution method is utilized for efficient implementation. In this section, two different acquisition methods, conventional approach and FFT approach, will be described . The conventional app roach performs signal acq uisition in time domain. A non-coherent correlator in time domain, shown in Fig. 3, is used since the phase of received signal is random (Johanson, Mollaei, Thor and Uusitalo, 1998). The correlation is approximated by the discrete sum. [][][ ] [][][ ] 2 (1) 1 1 2 0 2 (1) 1 0 [] cos sin , jNL K jnjNL jNL K jnjNL RmxnCAnm n xn CAnmn +− − == + − == ⎛⎞ ⎡ ⎤ ⎜⎟ =⋅+⋅Ω ⎢ ⎥ ⎜⎟ ⎢ ⎥ ⎜⎟ ⎣ ⎦ ⎝⎠ ⎛⎞ ⎡⎤ ⎜⎟ +⋅+⋅Ω ⎢⎥ ⎜⎟ ⎢⎥ ⎜⎟ ⎣⎦ ⎝⎠ ∑∑ ∑∑ (1) where Ω is the radian frequency of the IF signal. The digital IF, ][nx is multiplied first by the replicated C/A code, ][ mnCA + . Here nrepresents the th n sample and mrepresents the number of phase shifted samples of the replicated C/A code. L is the sample length of one C/A code period. n and m are the numbers of 0 to 1 − L. K is the non-coherent integration time. After the code Frequency GPS L1 at 1.57542GHz GPS code C/A IF 15.42MHz Sampling rate From 2MHz to 20MHz in an increment of 1kHz Signal gain (Second IF stage) 120dB Band Width (Second IF stage) 8MHz ![]() Kondo et al.: Evaluation of the pseudorange performance by using software GPS receiver 217 removal, the in-phase(I) and quadrature-phase(Q) components are generated. The I and Q components are accumulated for one or more code periods, N. The accumulated sum is squared. Next, K correlations are accumulated to produce an averaged correlation point. If the correlation peak is lager than a certain threshold, it is assumed that the satellite is acquired. ∑−+ = 1)1( NLj jNLn ∑−+ = 1)1( NLj jNLn () 2 () 2 ∑ − = 1 0 K j [ ] mR2 ]cos[ nΩ ]sin[ nΩ ][ mnCA + ][nx Digital IF Fig.3 Non-coherent correlator in time domains The conventional approach can also be preformed in circular convolution. The received data are correlated with the replica code by a circularly shifting the replica code. This may be expressed as (Johan son , Mollaei, Thor , and Uusitalo, 1998) [] [] 1 0 []( ) L L n RmxnCA nm − = =⊗+ ∑ (2) The FFT approach performs circular convolution in the frequency domain. The discrete Fourier transform (DFT) and its inverse is used to calculate][mR : [][ ] [] () [] () () 1 0 * 1 [] , L n R mxnCAmn FFxnFCAn − = − =⊗+ =⋅ ∑ (3) where F and 1− F denote FFT and inverse FFT. A non- coherent correlator in frequency domain can be adapted to acquisition of GPS signals as shown in Fig.4 (Johanson, Mollaei, Thor and Uusitalo, 1998). Here the input signal is mixed to base band and the I and Q components are used as the real and imaginary inputs when calculating the DFT. The result is multiplied by the complex conjugate of DFT of the C/A code. The circular convolution is obtained by taking the magnitude of inverse DFT. The fast Fourier transform algorithm is used to implement the DFT and inverse DFT; hence this acquisition method may be called FFT approach. FFT FFT IFFT 2∑ − = 1 0 K j ][nCA ][nx ]cos[ n Ω ]sin[ n Ω ][ 2mR Digital IF Fig.4 Non-coherent correlator in frequency domain Fig. 5, 6, and 7 show the results of acquisition using FFT approach (IF: 4.5MHz, sampling frequency: 20MHz, non-coherent integration time: 10ms). Fig.5 shows the correlation matrix for SV3. After the circular correlation, the beginning of the C/A code of SV3 is found to be 18236 in Fig. 6. The correlation power at n = 18236, for 21 frequency components of SV 3 every 1 kHz, centered at 4.58MHz, is shown in Fig. 7. The highest component at 4.575MHz corresponds to real frequency of the IF signal. Fig.5 Correlation matrix for SV3 Fig.6 Beginning of C/A code o f SV 3 ![]() 218 Journal of Global Positioning Systems Fig.7 Frequency component of SV3 5 Tracking Once the signal is acquired, it must be tracked to obtain the navigation data. The tracking program uses two parameters obtained from the acquisition process: the beginning point of C/A code and Doppler offset of carrier. Two loops are needed to track one GPS satellite signal. One loop is often referred to as code loop, which tracks the C/A code. The other one is the carrier loop, which tracks the carrier frequency of the down-converted input signal. These two loops must be coupled together as shown in Fig. 8 (Ts ui , 20 0 0). The code loop uses three locally generated C/A code to track the C/A code of the input signal. The three locally generated codes are usually used: a prompt, an early and a late replica. The early and the late replica codes are shifted a few samples in early and delay directions, respectively. The prompt code is applied to the digitized input signal and strips the C/A code from the input signal. The output will be a continuous wave (cw) signal with phase transition caused only by the navigation data. The regenerated carrier signal in the carrier loop is applied to the digitized input signal to strip the carrier from the signal. The output is a signal with only a C/A code and no carrier frequency, which is introduced to the code loop. 5.1 Code trac ki ng The code loop is known as a delay lock loop (DLL) (Misra and Enge, 2001). The prompt code is to be matched to the beginning of the C/A code in the input signal. The correlation outputs from three codes can be used to determine accurately the beginning of the C/A code in the input signal. This information is used to adjust the initial phase of locally generated prompt code to match the code phase of input signal better. Fig.9 shows the correlation between input C/A code and local replica C/A one. Fig.10 shows the example of the averaged correlation of the SV25 signal for 200ms. The discriminator algorithm is used to calculate the code phase error. The discriminator outputs signal r is given as, l e y ry = (4) where l yand e yare the correlation powers associated with the late code and early code, respectively. The time distance x from the peak of the correlation powers can be written as (1 )(1) (1 ) rd xr − − =+ (5) where dis the time distance from prompt code to early or late code. If the correlator spacing is 1 chip (~20 samples at the sampling frequency of 20.0MHz), then dis given by 0.51151(10×50/977.5ns). The ratio r is corresponds to the degree to which the beginning point of the C/A code is shifted, the sampling interval is 50ns (1/20.0MHz) and the one chip duration is 977.5ns (1/1.023MHz). If the maximum misalignment occurs within a sampling interval, then x has a value within the range of ±0.026chip (=25/977.5). If x is greater than 0.026 chips, then the local codes should be shifted to the left. Or, if x is smaller than –0.026 chips, then the local codes should be shifted to the right. The logic for the code shift is based on the value of x , and can be expressed as follows: If x < -0.026chip The local codes is shifted to the right Else if x > 0.026chip The local codes is shifted to the left Else The local codes isn’t shifted End Once x is calculated using Eq. (5), the code phase deduced from x is used to determine the pseudorange. The accuracy of the code phase has a direct effect on positioning accuracy. The measurement noise can be significantly reduced by a simple averaging. In this paper, r is averaged over 10 ms for the noise reduction. ![]() Kondo et al.: Evaluation of the pseudorange performance by using software GPS receiver 219 5.2 Carrier t racking After code tracking loop determines code phase, the carrier tracking loop is used to demodulate navigation data from the IF input signal. The loop filter of the carrier loop can be designed in the form of Phase Lock Loop (PLL) or Frequency Lock Loop (FLL). PLL tracks the phase error between two carrier signals and FLL tracks frequency errors. Generally, PLL provides a higher tracking performance than FLL, but is more sensitive to noise and dynamics. On the other hand, FLL is less sensitive to dynamics but results in lower accuracy in general. In this paper, PLL based algorithm is implemented for fine carrier tracking. The loop filter ( Tsui, 2000, Tsui, Stockmaster and Akos, 1997) is given by 1 12 1 1 () () 1 CC Cz Fz z − − +− =− (6) where 12 8 [44()] ns ns ns t CKtt ς ϖ ςϖ ςϖ =⋅+ + (7) 2 22 4( ) [44() ] ns ns ns t CKtt ςϖ ςϖ ςϖ =⋅++ (8) K:loop gain (400π) ζ :damping factor(0.707) n ϖ :natural frequency(37.7143) s t:sampling interval(3 1−) By substituting the values for the parameters, the implemented discrete loop filter is given by 1 1 0.000209 0.000184 () 1 z Fz z − − − =− (9) In this paper, atan2() function is used for the discriminator function. Fig.11 shows tracking outputs. The amplitude changes temporally according to navigation data bits. After carrier tracking is completed, the navigation data are extracted from the in-phase signals. It is expressed in phase difference π , which is transformed into the naviga tion data as ±1 values. ADC osc loop filter 90 ° e/d select L/E CODE LOOP CARRIER LOOP prompt CW C/A carrier frequency output late early arctan ∑ ∑ ∑ ∑ Fig.8 Code and carrier tracking loops Fig.9 Correlation between the input and the replica C/A signals Fig.10 Correlation of SV25 averagi ng for 200 ms ![]() 220 Journal of Global Positioning Systems Fig.11 Tracking outputs of SV25 6. Sub fram e m at ching and pseudorange measurements After the tracking results are converted into navigation data, the next step is to find the subframes (Tsui, 2000) in these data. A subframe will start with the preamble of a pattern (10001011) in the first word. The second word is HOW (the hand of word); bits 1-17 are TOW (time of week) and bits 20-22 are the subframe ID. However, the polarities of the words in a fra me may change. Therefor e, one should perform correlation on only one word at a time. 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 results can be ±8. One can repeat this method to find, 300data 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 be repeat this method to find the beginning of several subframes. The pseudorange measurements are performed after obtaining the beginning of the subframes. However, in collecting the digitized data, there is no absolute time reference and the only time reference is the sampling frequency. In other word, the time of the reception can’t be obtained. As a result, the pseudorange can be measured only in a relative way (Tsui, 2000) as shown in Fig. 12. In this figure, the points represent individual input digitized data (beginning of the C/A code obtained from tracking program). The relative pseudorange is the distance (or time) between two reference points. The beginning point of subframe is used as a reference point. All the beginning points of subframe from different satellites are transmitted at the same time expect for the clock correction terms of each satellite. Since the beginnings of subframe from different satellites are received at different times, this difference time represents the time (or distance) difference from the satellite to the receiver. Therefore, it represents the relative pseudorang e. Pseudorange measurements (Tsui, 2000) are performed in the following steps. 1. The beginning points of subframe in terms of the actual digitized input data points are found. 2. The average point of all the beginning points is calculated. Time differences from average point to each beginning point are calculated respectively. 3. The transit time of the beginning points of subrame are calculated by assuming that transit time of the average point is 73ms. And pseudoranges of each satellite are measured. 4. The pseudoranges of each satellite change with time by adding the C/A code shift for one second. beginning point of subframe1 (sv 6) beginning point of subframe1 (sv 19) relative psedorange beginning points of C/A code (sv 19) beginning points of C/A code (sv 6) Fig.12 Relative pseudorange 7. The results In our test, the signal processing was repeated with changing the correlator spacing into 0.1, 0.2 and 1chip. Table 2 shows the parameters of collecting the data. In the case of 20MHz in sampling frequency, maximum collection time is limited to 24 seconds due to the GPS Signal Tap’s capacity. Thus the standalone positioning was performed using ephemeris data collected by another GPS receiver. Fig.13 shows the horizontal errors for the cases of 0.1, 0.2 and 1 chip of early/late spacing of the correlator in standalone positioning under light multipath environment. Compared with the horizontal errors of 1 chip, the horizontal errors of 0.1 and 0.2 chip ar e reduced. It is considered that the correlator could track the C/A code accurately in the case of 0.1 and 0.2 chip. Fig.14 shows two horizontal errors (0.2 and 1 chip) under heavy multipath environment. Compared with the results under light multipath environment, the horizontal errors are larger and the positions deviate more. The correlator couldn’t track enough number of satellites for the positioning in the case of 0.1 chip spacing. The reason is that the correlation powers were very weak and the shape ![]() Kondo et al.: Evaluation of the pseudorange performance by using software GPS receiver 221 around correlation peaks of the C/A code was contaminated by mulithpath effect and gentle (Misra and Enge, 2001). Thus narrow correlator (0.1 chip) couldn’t acquire the peak well. The example of the peak of the correlation averaged for 200 ms (801~1000ms) under heavy mulitipath condition is shown in Fig.15. As shown in this figure, a triangle shape of the correlation power is very gentle, and the 0.1 chip correlator can’t acquire the peak. Therefore, it can’t be converted into the navigation data shown in Fig.16. Table.2 Prameters of collecting the data IF 15.42MHz Sampling Frequency 20MHz Collection Time 24seconds Band Width 8MHz -30 -20 -10 0 10 20 30 -30-20-10 01020 30 longitude error(m) latitude error(m) 0.1chip 0.2chip 1chip Fig.13 Horizontal errors (light multipath) -200 -150 -100 -50 0 50 100 150 200 -200-150-100-50050100 150200 longitude error(m) latitude error(m) 0.2chip 1chip Fig .14 Horizontal errors (heavy mulitpath) Fig.15 Correlation of SV11 Fig.16 Tracking outputs of SV11 (0.1chip correlator) 8 Conclusion s A prototype PC based and IF sampling software GPS receiver has been developed successfully. This paper presented the performance of our software GPS from a point of accuracy. It also evaluated the relationship between the signal quality and the positioning errors in our post processing. It is found that much more information in the signal processing can be obtained by using software GPS receiver compared with the raw outputs of conventional GPS receiver. As shown in these results, our software GPS doesn’t work as well as conventional GPS receivers. One of the reasons is that the carrier aided code loop can’t be used in this algorithm. The future work is firstly to improve the accuracy up to the level of the conventional GPS receivers. The second future work is to reveal the balance between the tracking threshold and the accuracy of the pseudorange under heavy multipath condition. ![]() 222 Journal of Global Positioning Systems References Wu F.; Kubo N.; Yasuda A.; HOJO Harumasa. (2003): Development of a Prototyoing Platform for Software GPS Receiver. Journal 111th of Japan Institute of Navigation Ko S.; Won J; and Lee S. (2003): FFT and PLL Based GPS Signal Processing for Software GPS Receiver. Wuhan University Journal of Natural Science Pany T.; Eissfeller B.; Winkel J. (2003): Tracking of High Bandwidth GPS/Galilieo Signals with a Low Sample Rate Software Receiver. Proc. ENC-GNSS2003, Graz. Tsui J. B.Y. (2000): Fundamentals of Global Positioning System Receiver – A software Approach. A John Wiley & Sons, Inc. Publication Pany T.; Moon T. S. W.; Irsigler M.; Eissfeller B.; Furlinger K. (2003): Performance Assement of an Under Sampling SWC Receiver for Simulated High-bandwidth GPS/Galileo Signals and Real signals. proceeding of 16th International Technical meeting of the Satellite Division of The Institute of Navigation, Portland, Oregon, USA, pp.103-106 Kaplan E D. (1996): Understanding GPS: Princcples and application,. Boston:Arech House,1996. Misra P.; Engse P. (2001): GRPBAL POSITIONING SYSTEM, Signal Measurements, and performance.. Ganga-Jamuna Press Tsui J. B.Y.; Stockmaster.; Akos D M. (1997): Block Adjustment of synchronizing Signal (BASS) for Global Positioning System (GPS) Receiver Signal Processing, Proceeding of ION GPS 97. Johanson F.; Mollaei R.; Thor J.; Uusitalo J. (1998): GPS Satellite Signal Acquisition and Tracking, Division of Signal Processing, Luleca University of Technology, S- 971 87 Luleca, weden, Undergraduate Projects 1998 |









