software. The ipexSR is designed to have the features shown in Fig 4: ⢠A FFT based Signal Monitor, see [6]. ⢠A Low Bandwidth GPS C/A Code Receiver, see [6] ...
REAL-TIME PROCESSING AND MULTIPATH MITIGATION OF HIGH-BANDWIDTH L1/L2 GPS SIGNALS WITH A PC-BASED SOFTWARE RECEIVER Thomas Pany, Institute of Geodesy and Navigation, University FAF Munich, Germany Frank Förster, Fraunhofer Institute for Integrated Circuits Erlangen, Germany Bernd Eissfeller, Institute of Geodesy and Navigation, University FAF Munich, Germany
BIOGRAPHY
INTRODUCTION
Thomas Pany has a PhD in Geodesy from the Graz University of Technology and a MS in Physics from the Karl-Franzens University of Graz. Currently he is research associate at the Institute of Geodesy and Navigation at the University of Federal Armed Forces Munich. His major areas of interests include GPS/Galileo software receiver design, Galileo signal structure and GPS Meteorology.
During the last years, several PC-based real-time software GPS receivers have been developed at various research institutes around the world, processing low-bandwidth (about 2 MHz) GPS L1 signals [4,6,8,9]. All of them are capable of acquiring and tracking four or more satellite signals simultaneously, thus allowing real-time positioning with a high-performance PC, a frontend and an analogue to digital conversion (ADC) card. The ipexSR is one of them and recently a high-bandwidth real-time dual frequency (L1 and L2) PC-based GNSS software receiver module has been developed for it. It is to one of the first dual-frequency high-bandwidth software receivers world-wide. The implemented receiver is realized in C++ mixed with assembler code to increase performance on standard PCs running under Windows. Real signals are digitized by a National Instruments (NI) 5112 ADC card which is connected to a high bandwidth L1/L2 frontend.
Frank Förster has received his M.S. degree in electrical engineering from the University of Erlangen-Nürnberg, Germany, in 2003. Since then, he is at the Fraunhofer Institute for integrated circuits in Erlangen as a system design engineer. Currently he is involved in several navigation and communication projects where he is developing the analog RF part. Bernd Eissfeller is Full Professor and Vice-Director of the Institute of Geodesy and Navigation at the University of the Federal Armed Forces Munich. He is responsible for teaching and research in the field of navigation and signal processing. He received the Habilitation (venia legendi) in Navigation and Physical Geodesy 1996.
ABSTRACT This paper describes the Institute of Geodesy and Navigation PC-based Experimental Software Receiver (ipexSR) which has been recently extended to a highbandwidth dual-frequency L1/L2 C/A code software receiver. The presentation focuses on frontenddevelopment, Fast Fourier Transform (FFT) based signal acquisition and tracking using multipath mitigation techniques optimized for a software receiver.
The receiver frontend has a low-IF architecture with one mixer in the analog domain. The second downconversion is done in software in order to prevent the problems of a zero IF topology. The frontend consists of discrete, high performance components and is specifically designed to provide a highly flexible adaptation and (re-) configuration of filter structures in the RF- and IFsection concerning bandwidth and cutoff-frequency. The design is characterized by a very low noise figure, a low phase noise of the local oscillator and a very stable reference oscillator. As the first downconverter delivers an I/Q-Signal the frontend uses analog polyphase filters for image rejection in the first part of the IF-section. In the second part differential low pass filters are set up. The outputs consist of two independent and simultaneous (L1 and L2) intermediate frequencies (IF) for the NI 5112 ADC converter and a 10 MHz synchronization signal.
Fig 1. Screen shot of ipexSR, real time ADC input plus spectrum analyzer and oscilloscope The ipexSR acquisition algorithm is based on FFT, which provides a very efficient implementation of the code phase search process. Coherent integration time and number of non-coherent steps can be chosen by the user to increase sensitivity. False detection of cross-correlation peaks of strong signals is avoided, by estimating signal amplitude and code and carrier phases of the strong signal and subtracting a replica of the strong signal. The tracking channel structure benefits from the flexibility of a software receiver. The received signals can be correlated (in real-time) with virtually arbitrary reference functions such that the same channel can be configured to act as an early-late, a strobe1, a 1st derivative (= Cramer-Rao) or a 3rd derivative correlator. The latter one has the best multipath mitigation potential. The theory of the correlation technique has been presented in [5,7]. One important point is the implementation of the 3rd derivative correlator. For code tracking, the received satellite signal is correlated with the third derivative in time of the bandlimited signal at baseband. To calculate the bandlimited signal at baseband a model of the frontend at baseband is developed. It includes filter bandwidth, type and order but also more complex effects like group delay and amplitude variation. The multipath mitigation performance and thermal noise behavior is then a direct consequence of the filter parameters. Two sets of filter parameters are tested in simulations and will be realized in hardware by reconfiguration of the frontend. Thermal noise errors and 1
Strobe Correlator is a trade mark of Ashtech
code multipath mitigation will be evaluated and both sets are compared against each other. The implemented tracking channel code (assembler) is optimized for a Intel P4 CPU using the SSE2/3 assembler instructions. It is capable of processing 12-15 C/A code channels with a sample rate of 20 MHz simultaneously on a 3.2 GHz P4. The tracking channel can be switched into an under sampling mode where the sample rate is lower than the dual-sided precorrelation signal bandwidth, reducing the processing demands at the cost of a decreased signal-to-noise ratio. Although this under sampling violates the Nyquist criterion, tracking still works fine, as has been shown in [5,7].
Fig 2. Screen shot of ipexSR, high-bandwidth tracking module and position display
THE ipexSR –STRUCTURE/DATA FLOW The ipexSR runs under the Windows operating system and uses as ADC a commercial card from National Instruments. A screen-shot of the real time signal input module, the spectrum analyzer and the oscilloscope are shown in Fig 1. The spectrum analyzer (upper figure) shows the L1 IF spectrum, including the main lobe of the GPS C/A signal. Fig 2 shows the tracking module and positioning output. The software has a modular design. Each module has well defined input and output data. The user can start the modules, configure them, connect them, process the data, reconfigure the processing parameters, store the processing results and follow the processing via a graphical user interface. Each module has one associated window, where all important data are displayed.
Input Signals The receiver accepts real-time signals from a National Instruments NI 5112 ADC card or a post processing signal which is read from the hard disk [3] as shown in Fig 3.
Fig 3. IF Signal Input
Currently two different front ends have been used: One low-bandwidth GPS C/A code frontend based on the Plessey GP 2010 RF chip set (not described here) and one GPS L1/L2 high-bandwidth frontend, which was specifically developed for the software receiver. The frontends provide to the ADC the intermediate frequency (IF) signal(s) and a 10 MHz reference clock signal. A resolution of 8 bit is used. The maximum continuous transfer rate of the ADC card is 33.3 MSamples/s or 2 times (L1/L2) 20 MSamples/s.
Signal Processing The core of a software receiver is the signal processing software. The ipexSR is designed to have the features shown in Fig 4: • A FFT based Signal Monitor, see [6]. •
A Low Bandwidth GPS C/A Code Receiver, see [6].
•
A High Bandwidth Cramer-Rao Under Sampling Receiver (CRUSR) L1/L2 C/A Code Module, described here, including multi-correlator capability.
•
A simple Oscilloscope and Spectrum Analyzer
Fig 4. Signal Processing Modules
Fig 5. Frontend Block Diagram
The tracking modules pass their code and phase measurements to the navigation modules, which perform all subsequent calculations. On the other hand, the navigation modules provide auxiliary tracking information like satellite visibility or receiver clock error estimates. The signal monitor passes only code phase measurements to the navigation module, mimicking a single-shot (or snapshot) acquisition mode [2].
Navigation Processing The navigation processing is done in a single point positioning [6], real-time kinematic (RTK) positioning and a specifically designed indoor positioning module [3]. All of the navigation modules can accept code and phase measurements on multiple frequencies, such that an extension the new navigation signals of the modernized GPS or Galileo can be relatively easily performed.
HIGH-BANDWIDTH GPS L1/L2 FRONTEND For the high-bandwidth GPS L1/L2 receiver frontend a low-IF architecture has been chosen. The advantage over a superheterodyne architecture is that the complexity of handling different intermediate frequencies and IF-filters is reduced to one single intermediate stage. This makes the setup by far more flexible for evaluation purposes like the reconfiguration of the IF, IF-filters and bandwidth. The block diagram of the frontend is presented in Fig 5. First the received signal from the active antenna is separated into the L1 (see upper branch) and L2 band (beneath) by a diplexer structure composed of two different filters with a bandwidth of 50MHz. Optional a second radio frequency (RF) filter (10MHz bandwidth) can be added for each frequency to limit the inband noise. After the Low Noise Amplifier (LNA) the signals are I/Q demodulated each to an IF of 8 MHz. All further descriptions refer to both branches. The following polyphase filter (PPF) rejects the image (the undesired output signal from the mixing process) by combining the in-phase (I) and quadrature (Q) paths. Without rejection the image would fold into the wanted signal. As the undesired signal in this band is “only” thermal noise the GPS-signal would be degraded by 3 dB. When we use the implementation of Tab 2 an image rejection of 14dB is achieved which impairs the signal-tonoise ratio (SNR) by 0.1 dB. The architecture of an active polyphase filter consists of a conventional lowpass structure with a cyclic coupling of the inputs and outputs between the I- and Q-paths respectively. This leads to the desired asymmetric right shift of the filter curve as displayed in Fig 6. 10 5
the same time, on the one hand it provides a sufficient image rejection and on the other hand it limits the bandwidth of the GPS-signal for the digitalization later on. As the slope at the right side of the filter curve is still too flat for the ADC the following lowpass filters are necessary. The lowpass filters reduce the high frequency noise, which would otherwise fold into [0, fs/2], where fs is the sampling frequency. All filter stages comprise high speed operational amplifiers with external components which allow the reconfiguration of the filter characteristics like filter type, bandwidth and cut-off frequency. The overall filter order can also be varied by activating or deactivating the accordant filter stages. Depending on the filter settings the IF requires an adaptation which can be accomplished by changing the parameters of the local oscillator PLL. In order to optimize the trade off between intermodulation and noise the gain in the receiving path can be modified. Furthermore amplified GPS-signal has to fit the input level of the A/D-converter. Two IF-filtering configurations (configuration-1 and configuration-2) are chosen to evaluate the influences of filter configurations on the GPS-signal with regard to real-time processing and multipath mitigation. The current setup is listed in Tab. 1. It is composed of a 2nd order butterworth polyphase filter and two lowpass filters of the same type. Fig 7 illustrates the resulting IF noise spectrum. The measurements for the second implementation are currently running and are not presented here. In configuration-2, the total filter order is reduced to four and the lowpass filter type is changed to Bessel which exhibits a lower group delay variation in the passband. The aim is to reduce the resulting IF bandwidth, while maintaining a relatively undistorted GPS waveform. This will allow to track the signal with a low sample rate and no under sampling losses. On the other hand, the strobe or 3rd derivative correlator is expected to still give good multipath mitigation performance.
0 -5 -10 -15 -20 -25 poly2ndorder -30 -20
-10
0 10 Frequency [MHz]
20
30
Fig 6. Polyphase filter curve In principle the filter behaves like a bandpass but has no counterpart in the negative frequency region. We conclude that the polyphase filter fulfills two functions at
A Matlab model for the PPF and the two low pass filters has been developed. The main purpose of this model is to evaluate the received and filtered GPS signals at baseband in order to compute the 1st and 3rd derivative. Verification of the Matlab model is performed by comparing the measured IF signal spectrum (using the ipexSR spectrum analyzer) to the Matlab results. The results are shown in Fig 7 and Fig 8. The spectra agree well, only at frequencies > 13 MHz the measured spectrum is below the Matlab spectrum. This may be explained by the antenna LNA characteristics, which is not part of the Matlab model. Further investigations will however bring clarification.
Tab 1. Frontend Filter configuration-1 (current) L1 12.5 MHz 2 Butterworth. 12.7 MHz 4 Butterworth. 16 MHz 2 Butterworth. 8.087 MHz
L2 12.5 MHz 2 Butterworth. 12.7 MHz 4 Butterworth. 16 MHz 2 Butterworth. 8.287 MHz
Tab 2. Frontend Filter configuration-2 (future) Parameter PPF BW (-3dB) PPF Order PPF Type 1st LP BW (-3dB) 1st LP Order 1st LP Type 2nd LP BW (-3dB) 2nd LP Order 2nd LP Type IF
L1 5 MHz 2 Bessel 18 MHz 2 Butterworth 8.087 MHz
L2 5 MHz 2 Bessel 18 MHz 2 Butterworth 8.287 MHz
Theoretical Continuous Spectrum Measured Spectrum
0
Power Spectrum Magnitude (dB)
Parameter PPF BW (-3dB) PPF Order PPF Type 1st LP BW (-3dB) 1st LP Order 1st LP Type 2nd LP BW (-3dB) 2nd LP Order 2nd LP Type IF
IF Noise Spectrum 5
-5 -10 -15 -20 -25 -30 -35 -40
0
0.5
1
1.5 Frequency
2
2.5
3 7
x 10
Fig 8. IF noise spectrum for configuration-1, at L2 output
TRACKING CHANNEL The high bandwidth L1/L2 GPS C/A code receiver is realized as multiple channel receiver. As discussed later, the processing performance of a Pentium IV, 3 GHz is sufficient to process GPS C/A code signals from all visible satellites simultaneously, even with a high sample rate of 20 MHz. The receiver can track on L2 only the GPS C/A code and L1 and L2 channels for the same satellite work independently. In the near future the L2 civil signal (CS) capability will be included, and tracking and acquisition of L1 C/A and L2CS of the same satellite will be performed in the same channel using a combined tracking loop.
IF Noise Spectrum 5
Power Spectrum Magnitude (dB)
The current tracking channel structure implements the following features: FFT based acquisition, bitsynchronization, tracking, lock-detection, reacquisition, navigation data decoding, cycle-slip detection and code and phase pseudorange measurement. The tracking channel state diagram is shown in Fig 9.
Theoretical Continuous Spectrum Measured Spectrum
0 -5 GPS C/A Main Lobe -10 -15 -20 -25 -30 -35 -40
0
0.5
1
1.5 Frequency
2
2.5
3 7
x 10
Fig 7. IF noise spectrum for configuration-1, at L1 output
Fig 9. Tracking Channel State Diagram
Tracking of a specific PRN code is initiated by the navigation module, or manually by the user. Since initial Doppler frequency is not available in the current implementation, the first acquisition searches a wide
Doppler range of typically +/- 6 kHz. Acquisition sensitivity is user controlled by selecting the number of non-coherent integrations. If the acquisition does not detect the desired signal, it is repeated for two more times. If there is still no signal detected, the channel stops operation. After successful acquisition, bit synchronization is performed followed by tracking. In case of a loss-of-lock event, the channel first tries to reacquire the signal in a narrow Doppler range of +/- 500 Hz and if not successful switches back to a wide range acquisition. Tracking comprises reference code generation, correlation and code, phase or frequency discriminator calculation. Coherent integration time is 20 ms. A second order DLL is used and the user can control loop bandwidth and if carrier aiding shall be used or not. A FLL is used for carrier tracking if the C/N0 is low (typically below 40 dBHz) GPS C/A code signal is usually acquired in less than 1 s [6]. Coherent integration time as well as time differences between different sets Tset or pairs Tpair can be chosen by the user. Note that in Fig 10 Tset equals TF, which is however not the general case. Using this algorithm a maximum coherent integration time of 19 ms can be achieved for the GPS C/A code, even if no a priori knowledge of the navigation data message is available. 20 sets, each shifted by 1 ms must be used. A more efficient but less sensitive way is to use 10 ms frame size and two sets shifted by 10 ms, or eventually 15 ms and 4 sets. The resulting acquisition sensitivity is shown in Fig 11. This figure does not include signal power losses due to the finite Doppler frequency resolution, losses due to the finite code phase resolution and other implementation losses. Those losses are in the worst case between 5-6 dB.
35 Tcoh=10 ms pd=95%
Required C/N0 [dBHz]
30
pf =10-6%
Tcoh=19 ms Tcoh=15 ms
25
20
15
10
0
10
20
30 40 50 60 70 Number of Non-Coherent Integrations
80
90
100
Fig 11. FFT Acquisition Sensitivity, for a detection probability of 95% and a single-bin false detection probability of 10-8. From Fig 11 one clearly sees, that a high sensitivity can be achieved allowing even reception of indoor signals. This has also been proven in a number of experiments using a Spirent signal simulator and real GPS C/A code signals. Two receivers, the ipexSR and a SiRF II with the XTrac 2.0-C1EVAL1.0 Software were connected to the same signal via an antenna splitter. By doing this, we can ensure that both receive exactly the same signal. C/N0 estimates on both receivers agreed with +/- 1 dB. The ipexSR was able to detect 18 dBHz signals, this value was confirmed by the SiRF C/N0 estimate. At this sensitivity level cross correlations between different C/A codes become important as crosscorrelation peaks might be mistaken for autocorrelation peaks of the desired signal. To avoid this problem, the acquisition algorithm precisely estimates Doppler frequency, code phase and amplitude of the strong signals if they are not already tracked. If they are tracked, the parameters are taken from the corresponding tracking channel. Then the signal is reconstructed and subtracted from the IF samples [6]. After that, the IF samples only contain the desired signal, other weak signals and spurious contributions from the strong signals. The method works very reliable as shown for example in Fig 11. We connected the ipexSR to the Spirent 4760 signal simulator and three GPS C/A code signal were generated by the simulator. Two equally strong signals - PRN 16 and 21 - were generated and PRN 6 whose nominal signal level (at the Spirent display) is 28.9 dB below the strong signal. GPS navigation message was simulated.
Fig 12. Part of the acquisition function of an 18 dBHz signal (PRN 6) in the presence of two strong signals (PRN 21, 48 dBHz and PRN 16, 48 dBHz). Elimination of strong signals is used. At the ipexSR a coherent integration time of 15 ms, 4 sets and 70 non-coherent integration steps were used. Elimination of strong signals was used. Fig 11 shows the acquisition function for PRN 6 and one clearly sees the correlation peak. The remaining part of the acquisition function shows thermal noise characteristics. If elimination of strong signals is not used, crosscorrelation peaks of PRN 16 and 21 dominate the acquisition function of PRN 6. This is shown in Fig 12. One clearly sees that the amplitude of the crosscorrelation peaks in Fig 13 is above the autocorrelation peak in Fig 12.
Fig 13. Part of the same acquisition function for PRN 6 of Fig 11 with no elimination of strong signals.
Bit Synchronization After successful (re-)acquisition, a relative precise Doppler frequency and code phase is obtained within the FFT acquisition module (see ‘Precise Code Phase and Doppler Estimates’ of [6]). This information is used to start the tracking mode in the bit synchronization mode. Within this mode Doppler frequency is constant and only the code numerically controlled oscillator (NCO) of the DLL is adjusted to follow the signal. Coherent integration time is 1 ms.
correction. Furthermore it performs quality checks to avoid false bit synchronization. During tracking, bitsynchronization is not performed anymore as long as no loss-of-lock event occurs. Fig 15 shows an exemplary Decision Histogram obtained when synchronizing to PRN code 6 having a rather low signal power of 28 dBHz. 250 ’20 ms’ batches have been tested resulting in a bit synchronization duration of 5 s. Decision Histogram 60 50
Number of Hits
The channel stays in the bit synchronization for 1-10 s, depending on the initial C/N0 estimate. During this time successive punctual correlator outputs are collected. When 20 complex values are collected the scheme shown in Fig 14 is applied. The 20 complex values are multiplied by two waveforms. The first is step function from -1 to +1 and the position of the step varies from 0 to 19. This waveform is used to detect the data bit boundary. When this waveform and the data bit boundary of the received C/A code message are aligned, the multiplication removes the data bit change. The second waveform is a complex sin/cos carrier and is used to apply a fine shift in Doppler frequency.
40 30 20 10
0 100
50
20 0
Fine Doppler [Hz]
-50
10 -100
0
Bit Transistion
Fig 15. Bit Synchronization Decision Histogram for 28 dBHz GPS C/A code signal
Fig 14. Bit synchronization scheme After multiplication the 20 values are summed up and the squared magnitude is determined for all data bit transition values and all fine Doppler shifts. The maximum is determined and the corresponding entry of the Decision Histogram matrix is incremented by one. This procedure is repeated until the bit synchronization phase ends. A special procedure is applied for the case when the 20 ‘1 ms samples’ are accidentally aligned with the data bit boundaries. In this case, data bit transitions are detected by comparing two successive 20 ms steps. During bit synchronization the DLL input is fed by early-late correlator outputs obtained with a coherent integration time of 20 ms where the same waveforms have been applied which yield the maximum squared magnitude of the punctual correlator. When the bit-synchronization phase ends, the decision histogram matrix is analyzed. The algorithm identifies the most likely data bit transition point and the Doppler fine
A preliminary performance estimation has shown that bit synchronization to a GPS C/A code signal with about 22 dBHz can in principle be achieved. The test signal was generated by the Spirent 4760 GPS simulator and it should be mentioned that the ipexSR uses a TCXO as reference clock. Below 22 dBHz the decision matrix looks very random even though a long bit synchronization time of 10 s was used. Above 25 dBHz this algorithm works very reliable but further investigations are necessary to draw final conclusions.
Tracking The core of each GNSS software receiver is the tracking module. It is considered to be the most critical part, because the satellite signals need to be correlated with reference signals at the IF sample rate in real time. A very high number of multiplications and additions per second is necessary to achieve this task. The tracking part consists of three signal generators, and the correlation process. The tracking channel is shown in Fig 17. A detailed mathematical description of the tracking and acquisition performance is given in [5,7]. Packets of IF samples are fetched from the ADC card (or from a file in post processing mode). Those packets are rather large (a few 100 kB) to achieve a high Direct Memory Access (DMA) throughput rate. The packets are subdivided into frames as shown in Fig 16.
generates samples, which are in the simplest case taken from the PRN code sequence of the tracked satellite signal delayed by the estimated code pseudorange. However, also more sophisticated reference signals can be used as shown in [7]. The code tracking reference generator outputs in the simplest case samples taken form an early minus late difference of the tracked satellite PRN sequence. Optimal thermal noise performance is achieved if the early minus late sequence is replaced by the first derivative of the bandlimited navigation signal at baseband. Improved code multipath performance is achieved by taking a StrobeTM reference function or the third derivative of the bandlimited signal at baseband [7]. Computational tracking performance The code and phase tracking reference functions as well as the complex sinusoidal waves are precomputed and stored in the main memory of the computer. The precomputed values act as lookup tables. Using these lookup tables, reference signals (sin/cos, punctual correlator and early-late correlator) can be computed at arbitrary sample rates very efficiently. Two methods have been implemented to calculate the lookup table.
Fig 16. IF Sample Subdivision for Tracking One frame is the basic processing unit for the correlation module. The frame length is chosen to be less than 1 ms, such that we can ensure that only on dump process occurs within on single frame.
Fig 17. Structure of the SWC tracking channel For each frame, the Doppler generator generates a complex sinusoidal wave with the estimated IF+Doppler frequency. The Doppler samples are used to convert the IF signal to baseband. The phase tracking reference generator (usually called the punctual correlator)
The first method mimics a hardware NCO. For example, a small sin/cos table is precomputed comprising typically 256 values to represent one cycle. The sample rate of the lookup table is not related to the ADC sample rate. The carrier NCO is realized as a 32 bit counter and the upper 8 bits act as pointer to this lookup table. The lower 24 bits are used to achieve a fine Doppler frequency resolution [1]. The code NCO works similarly. To realize sin/cos lookup tables for the second method, the sin/cos table is precomputed for a number of regular distributed Doppler frequencies within the Doppler range of interest (usually IF +/- 6 kHz). The sample rate of the lookup table equals the nominal ADC sample rate. Furthermore, for each Doppler frequency, the sin/cos table is generated for a number of regular distributed initial carrier phase values with [0, 2π]. This is all done in the channel initialization phase. During tracking, the channel determines for each correlation process which of the precomputed sin/cos tables shall be used for Doppler removal. The main advantage of this method is that no carrier NCO needs to be updated for each sample; instead the sin/cos value can be taken by directly from memory, since the lookup table sample rate equals the ADC sample rate. The procedure for PRN code lookup is again similar. In [7] the performance measure MCOPS (Million COrrelations Per Second) was introduced to quantify the numerical processing performance of a SWC receiver. The MCOPS value of a receiver can be easily calculated
by multiplying the sample rate in [MHz] times the maximum number of channels, which can be tracked in real-time continuously. MCOPS values for the presented methods are shown in Tab 3. The values are valid for a 3 GHz Pentium IV CPU. Slight variations have been observed which depend on the used sample rate and number of parallel channels. It should be emphasized, that the high processing performance could only be achieved by using the Intel SSE2/3 assembler instructions [7] allowing to process up to 16 integer values in parallel (vector operations). Tab 3. Computational processing performance Method Code and Carrier NCO Precomputed lookup tables
MCOPS 150-160 230-300
Investigations have shown that the bottle neck of the first method is the NCO update plus the subsequent lookup table operation. Those two steps could not be vectorized. The bottle neck of the second method is the limited transfer rate of data from the computers main memory to the CPU. Multicorrelator Due to the high correlation performance of the ipexSR, it was possible to realize a multicorrelator mode in realtime. In this mode, a user selectable number of code generators are linked to the main code generator. Each of them generates a punctual and an early-late reference function shifted by a fixed amount with respect to the main code generator. The shift value must be an integer multiple of the code rate divided by the sample rate, since the second look-up table generation method is used (see above). Thus the higher the sample frequency is, the finer the resolution of the multicorrelator. The shifted punctual code sequences are then correlated with the incoming IF samples and the give an estimate of the current signal (auto)correlation function. The shifted early-late sequences are similarly correlated and yield an estimate of the code discriminator. The multicorrelator output is displayed in real-time on the computer screen. This is shown in Fig 18. When a sample rate of 33.3 MHz is used a maximum number of 13 correlator pairs can run in real-time on 3 GHz P4. Reducing the sample rate allows to run more correlators.
Fig 18. Screenshot of CRUSR high-bandwidth C/A tracking module in multicorrelator mode, correlators are equally spaced with a distance of 0.03069 chip. The multicorrelator technique provides a very intuitive way for visualization (and monitoring) of the various tracking techniques, which can be realized in the ipexSR. For example, Fig 20 shows screenshots of the (auto)correlation function and code discriminator for 4 different code correlation techniques.
Fig 19. Left figures: Real (blue line) and imaginary (red line) part of autocorrelation function, right figures: real and imaginary part of code discriminator. Plotted for 4 different correlation techniques
Under Sampling As mentioned in the introduction, the tracking channel can be configured to further reduce the sample rate of the IF samples if the channel is in a stable tracking mode. This further reduces processing demands at the cost of an decreased signal-to-noise ratio. However, due to the high
Receiver Parameters A summary of the main receiver parameters is shown in Tab 4 and it is worthwhile to mention that all other receiver parameters (e.g. loop order) can be changed by recompilation of the software. Tab 4. ipexSR, CRUSR GPS C/A high bandwidth tracking module key parameters
Number of correlators per channel Phase tracking reference functions Code tracking reference functions DLL Discriminator DLL order/bandwidth FLL discriminator PLL discriminator FLL/PLL order/bandwidth Measurement rate Carrier aiding
Value User selectable After frame sync possible GPS C/A (in principle user selectable) 2 (code and phase tracking correlator) plus eventually multicorrelator mode Prompt PRN sequence, HRC2 correlator Early-late (arbitrary correlator spacing), StrobeTM (arbitrary correlator spacing), 1st derivative, 3rd derivative Normalized dot-product (E-L)/P 2/User selectable
We show in Fig 20 and Fig 21, the expected multipath error envelopes as well as the expected code pseudorange error due to thermal noise. For both figures we assume that the C/N0 of the line-of-sight signal is 45 dBHz and the C/N0 of the multipath signal is 39 dBHz, i.e. the amplitude of the multipath signal is half the amplitude of the direct signal. Multipath Error Envelope (-6.0 dB) and 1-σ Thermal Noise Error
6
1st Der. MP Envelope 4
3rd Der. MP Envelope
2
3rd Der. Code Noise
0
-2
1st Der.Code Noise
-4
-6
0
50
100
150
200 250 300 Geometric Delay [m]
350
400
450
Fig 20. Code multipath envelope and thermal noise error for 1st and 3rd derivative correlator for frontend configuration-1
4-quadrant atan Atan 2/User selectable
Multipath Error Envelope (-6.0 dB) and 1-σ Thermal Noise Error
10
1st Der. MP Envelope
8
< 1 kHz User selectable
6 Maximal Mulitpath Error [m]
Parameter Input sample rate Under sampling Code type
Filter type, order and bandwidth of the polyphase filter in the frontend mainly determine the waveform of the received PRN code and thus its first and third derivative. We developed a Matlab model of the frontend filter chain and used this model to calculate the first and third derivative of the received navigation signal at baseband. The calculation was performed for both frontend configurations.
Maximal Mulitpath Error [m]
processing performance, under sampling needs to be used only in rare cases, since usually a P4 can process all visible satellites in real-time.
3rd Der. MP Envelope
4
3rd Der. Code Noise
2 0 -2
Tracking Performance Verification In the following, the code tracking performance in terms of thermal noise and multipath mitigation of the tracking module will be described. These are two very important performance measures, which strongly depend on the chosen code tracking reference function. We are particularly interested in using the 1st and 3rd derivative of the bandlimited PRN code at baseband as code tracking reference function. The resulting 1st and 3rd derivative correlators depend on the frontend filter configuration [7].
Fig 21. Code multipath envelope and thermal noise error for 1st and 3rd derivative correlator for frontend configuration-2
2
From these figures one can infer, that the 1st derivative correlator has a very low code noise (nearly equal to the
HRC is a trade mark of Rockwell-Collins
1st Der.Code Noise
-4 -6 -8 -10
0
50
100
150
200 250 300 Geometric Delay [m]
350
400
450
When we compare both frontend configurations, one sees that code noise for the 1st derivative correlator is nearly identical for both frontend configurations. The multipath envelopes have a lower magnitude for frontend configuration-1. This is explained by the larger bandwidth of the polyphase filter in configuration-1. The main advantage of configuration-2 is its lower bandwidth, which increases C/N0 by about 3 dB compared to configuration-1. The losses in configuration-1 are caused by the higher under sampling factor u (if a low sample rate < 20 MHz is used) and by a sub-optimal implementation of the PPF. We tested the 1st and 3rd derivative correlator using the experimentation setup shown in Fig 22. We performed the performance verification only for configuration-1, Measurements for configuration-2 are in progress. This procedure will us finally allow to decide which the optimal frontend configuration is.
Code minus Phase [m]
The third derivative correlator has an excellent multipath mitigation potential, but its noise is about twice as large as for the 1st derivative correlator.
function of time and the corresponding power spectrum. The 1st derivative correlator in frontend configuration-1 was used. In this scenario only the line-of-sight signal was presented and the code minus phase values are dominated by thermal noise errors. The signal power of the line-ofsight signal was adjusted on the Spirent to achieve an estimated C/N0 of about 45 dBHz on the ipexSR as shown in Fig 24. 2 Code-Phase +/- 1 σ
1 0 -1 770
780
790
800
810
820
830
840
Time [s] 20
PSD [dB]
Cramer-Rao lower bound) and its multipath error envelope looks very similar to a narrow correlator.
Measured Theory
0 -20
-40 0
5
10
15
20
25
30
Frequency [Hz]
Fig 23. Code minus phase pseudorange in [m] for 1st derivative correlator in frontend config-1 and no multipath 45.18 Envelope Detector Differential Estimator
45.16
Fig 22. Experimentation setup The signal was generated using parameters shown in Tab 6 where also the relevant ipexSR parameters are listed.
C/N0 Estimate [dB]
45.14 45.12 45.1 45.08 45.06 45.04
Tab 5. Signal and receiver parameters Parameter C/A code PRN no. Sample rate C/N0 Integration time DLL bandwidth Carrier Mode PLL bandwidth Multipath Dynamics
Value 6 33.3 MHz 45 dBHz 20 ms 1 Hz for thermal noise tests 5 Hz for multipath test PLL 10 Hz Not present for thermal noise tests Aircraft in climb flight
As a first example we show in Fig 23 the code pseudorange minus phase pseudorange difference as a
45.02 45 770
780
790
800 810 Time [s]
820
830
840
Fig 24. Estimated C/N0 for Fig 23 From Fig 23 we infer an estimated 1-σ code pseudorange error of about 0.33 m. The predicted value using the formulas in [7] is shown in Tab 6. Tab 6. Code pseudorange standard deviation due to thermal noise
Predicted from theory Measured
1-σ Code Error 0.48 m 0.33 m
We note, that there is a significant difference between predicted and measured code noise. Here we need further
investigations, possible reasons could be found in an incorrect slope of the code discriminator or in a biased C/N0 estimation. Nevertheless code tracking accuracy is quasi optimal and can not be improved further. Next, we test the multipath mitigation potential of the 1st derivative correlator in frontend configuration-1. To do this we add with the Spirent GPS simulator a multipath signal whose geometric delay linearly increases with time. In fact it is a ground reflection, and the simulated user trajectory is from an aircraft in climb flight. By doing this the shape of the multipath error envelope should be qualitatively reproduced, although, the x-axis is in one case defined as the geometric delay in [chip], in the other it is defined as time in [s].
In Fig 25 one clearly sees the code multipath errors; especially Fig 26 shows the periodic multipath variations as the geometric multipath delay increases. Qualitatively there is an excellent agreement between the code multipath errors and the multipath error envelope, although quantitatively we must admit, that the measured multipath errors are higher than predicted by the envelope. Please note, that Fig 25-Fig 28 must be flipped around the x-axis when comparing with Fig 20 or Fig 21. The maximum geometric multipath delay of Fig 25 and Fig 27 could not be determined exactly but should be within 40-60 m. The same scenario is then processed by the 3rd derivative correlator using frontend configuration-1. The resulting code errors are shown in Fig 27 and Fig 28.
15
6 5 4
Code minus Phase [m]
Code minus Phase [m]
10
5
0
-5
3 2 1 0 -1 -2
-10
-3 -15 4800
4850
4900
4950
5000
5050
-4 6400
5100
6450
6500
Time [s]
6600
6650
6700
6750
Time [s]
Fig 25 shows the code minus phase pseudorange values in [m] for the 1st derivative correlator in frontend configuration-1. The multipath signal is switched on at t=4910 s, with an initial delay of 0 m. Afterwards the delay continuously increases with time. 8 6
4
Fig 27. Code minus phase pseudorange in [m] for a 3rd derivative correlator in frontend config-1. A -6 dB multipath is present for t > 6480 s.
2 1.5
Code minus Phase [m]
Fig 25. Code minus phase pseudorange in [m] for a 1st derivative correlator in frontend configuration-1. A -6 dB multipath signal is present for t > 4910 s.
Code minus Phase [m]
6550
1 0.5 0 -0.5 -1 -1.5 -2
2
-2.5 0 6470
6480
6500
6510
Fig 28. Zoom of Fig 27.
-4
-6
6490
Time [s]
-2
4910
4915
4920
Time [s]
Fig 26. Zoom of Fig 25.
4925
4930
One clearly sees, that the 3rd derivative correlator outperforms the 1st derivative correlator when multipath is present. Measurement errors are reduced from 10 m to about 2 m. On the other hand, we also found, that the 3rd
derivative correlator for frontend configuration-1 is not very robust. The linear region of the code discriminator and its pull-in region is very narrow making DLL loss-oflock event very likely. This a consequence of the large dual-sided bandwidth of the polyphase filter of 12.5 MHz in frontend configuration-1.
REFERENCES
[1]
Dierendonck, A. J. GPS Receivers. In: Global Positioning System: Theory and Applications, volume I, eds. Parkinson, B. W. and Spilker, J. J. American Institute of Aeronautics and Astronautics, Inc, 1996.
[2]
Heinrichs, G. and et al., "Galileo/GPS Receiver Architecture for High Sensitivity Acquisition ," Proc. of the International Symposium on Signals, Systems, and Electronics (ISSSE'04), Linz.
[3]
Kaniuth, R., Pósfay, A., Pany, T., and Eissfeller, B., "Positioning with a Software Receiver under weak tracking conditions with software simulated IF-Signals," Proc. ION-GNSS 2004, Long Beach.
[4]
Ledvina, B., Cerruti, A., Psiaki, M., Powell, S., and Kittner, P., "Performance Tests of a 12Channel Real-Time GPS L1 Software Receiver," Proc. ION-GPS 2003, Portland, pp. 679-688.
[5]
Pany, T. and Eissfeller, B., Code and Phase Tracking of Generic PRN Signals with Sub-Nyquist Sample Rates NAVIGATION, vol. 51, pp. 143-159, 2004.
[6]
Pany, T., Eissfeller, B., Hein, G., Moon, S. W., and Sanroma, D., "ipexSR: A PC Based Software GNSS Receiver Completely Developed in Europe," Proc. ENC-GNSS 2004, Rotterdam.
[7]
Pany, T., Irsigler, M., Eissfeller, B., and Fürlinger, K., "Performance Assessment of an Under Sampling SWC Receiver for Simulated HighBandwidth GPS/Galileo Signals and Real Signals," Proc. ION-GPS 2003, 9-12 Sept., 2003, pp. 103-116.
[8]
Schamus, J., Tsui, J., and Lin, D., "Real-Time Software GPS Receiver," Proc. ION-GPS 2002, Portland, pp. 2561-2565.
[9]
Thor, J., Normark, P., and Stahlberg, C., "A HighPerformance Real-Time GNSS Software Receiver and its Role in Evaluating Various Commercial Front End ASICs," Proc. IONGPS 2002, Portland, pp. 2554-2560.
CONCLUSIONS We presented the dual frequency GPS C/A code ipexSR software receiver. The paper focused on receiver frontend, acquisition, bit synchronization and code tracking accuracy. The used algorithms were briefly described and the main performance characteristics were listed. Acquisition is based on a highly efficient FFT algorithm and GPS C/A code signals with signal powers as low as about 18 dBHz have been acquired. Bit synchronization is based on maximizing signal power by testing all possible bit transitions and Doppler frequencies. This method works reliable for signals with C/N0 values above 25 dBHz. In signal tracking mode, the user can select different correlation techniques, by simply choosing the appropriate reference functions. The receiver can track all visible GPS C/A code signals in real-time even when a high sample rate of 20 MHz is used. This is independent of the reference function. Two new correlation techniques, the 1st and 3rd derivative correlator, have been evaluated. Thus we would like to conclude, that the ipexSR gives an acquisition and tracking performance equal to state-of-art high bandwidth hardware C/A code receivers. The frontend will be optimized in near future by using an improved PPF. Also all implemented algorithms will be further improved. The next major step will be to switch on L2 from the GPS C/A code to the L2 CS.