The Design, Construction, and Testing of a Modular GPS Bistatic Radar Software Receiver for Small Platforms by S. Esterhuizen B.S., University of Colorado, 2004 A thesis submitted to the Faculty of the Graduate School of the University of Colorado in partial fulfillment of the requirements for the degree of Master of Science Department of Electrical and Computer Engineering 2006 This thesis entitled: The Design, Construction, and Testing of a Modular GPS Bistatic Radar Software Receiver for Small Platforms written by S. Esterhuizen has been approved for the Department of Electrical and Computer Engineering Dennis Akos Tim Brown Scott Palo Date The final copy of this thesis has been examined by the signatories, and we find that both the content and the form meet acceptable presentation standards of scholarly work in the above mentioned discipline. iii Esterhuizen, S. (M.S., Electrical Engineering) The Design, Construction, and Testing of a Modular GPS Bistatic Radar Software Receiver for Small Platforms Thesis directed by Prof. Dennis Akos Recently the use of Global Positioning System (GPS) signals as opportunistic bistatic radar signals has become increasingly popular in the radar and navigation communities for remotely sensing the Earth’s surface. A GPS bistatic radar uses two reception antennas: one tracking the direct signal from the satellite oriented skyward; the other observing the surface-reflected signal oriented toward the earth. In the past, a mixture of both application specific integrated circuit (ASIC) based and software receivers have been used, but these require a desktop or laptop computer to operate them. Previous receiver configurations are thus prohibitively large and can not be mounted on smaller platforms, e.g. Unmanned Aerial Vehicles (UAVs) and Remote Control (RC) airplanes. To allow for integration of a GPS bistatic receiver on small platforms, the instrument itself need to be redesigned with size and power limitations in mind. This new design will feature two analog front-ends with a common clock and a Universal Serial Bus (USB) bridge to move the digital samples to a x86-based single board computer. These samples are then saved to disk for post-processing. It is not the focus of this thesis to develop bistatic algorithms, but to provide a modular hardware platform that can be used for GPS bistatic research on small platforms. In addition to the hardware design, thorough testing and verification will be performed to ensure correct operation of the receiver. These tests are concluded with a field test, where GPS reflections were detected with the instrument from a high-altitude balloon mission. Dedication To the open source community, whom without this project would have been extremely difficult. v Acknowledgements This work was funded under Cooperative Agreement NNL04AA59G through the NASA Langley Research Center. In addition to NASA, I would like to acknowledge Prof. Dennis Akos and Prof. Penny Axelrad, they have taught me much about GPS. Furthermore, some of the code used to generate plots in this paper was written by Dr. Dallas Masters. Mr. Marcus Junered, whom has contributed some of the FX2 firmware code. Mr. Jack Elston provided me with a good deal of scripts and help in getting the embedded gentoo Linux system going. I’d also like to acknowledge Prof. Scott Palo, whom I originally did USB work for (on another project) and thus gave me a head start with this thesis work. Mr. Lloyd Rochester, for providing a hand with the FPGA PCB layout. The guys from EOSS [3], Mr. Chris Koehler, and the students from his gateway-to-space class for helping me integrate and fly my instrument on a balloon mission. Last, but not least, the fine GNU Radio folks, since they provided the framework for the USB data-bridge. vi Contents Chapter 1 Introduction 1.1 1.2 1 GPS Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 Signal Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 GPS Receivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 Signal Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.3 Code Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.4 Carrier Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2 GPS as a Bistatic Radar 9 2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 Reflected Signal Properties . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Detection of Reflected Signals . . . . . . . . . . . . . . . . . . . . . . . . 13 3 Motivation 15 3.0.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.0.2 Goal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4 Hardware Design 4.1 Analog Front-ends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 vii 4.2 FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3 USB Data Bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3.1 Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3.2 General Programmable Interface (GPIF) . . . . . . . . . . . . . . 21 4.3.3 Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.3.4 8051 Microcontroller . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.3.5 USB Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3.6 Host-side Software . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.4 Single Board Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.5 Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.5.1 2.5” Laptop SATA SSD . . . . . . . . . . . . . . . . . . . . . . . 25 4.5.2 USB Memory Disk . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Interface Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.6.1 26 4.6 Headers and Jumpers . . . . . . . . . . . . . . . . . . . . . . . . 5 Verification 31 5.1 Power and Mass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.2 Streaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.2.1 512 Samples Skipped . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2.2 1,4, and 8 Samples Skipped . . . . . . . . . . . . . . . . . . . . . 33 5.2.3 Sample Skip Test with Real Data . . . . . . . . . . . . . . . . . . 37 Radio Frequency Interference (RFI) . . . . . . . . . . . . . . . . . . . . 39 5.3.1 RFI Mitigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Power Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.4.1 Power Balance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.4.2 Received Power to C/No Calibration . . . . . . . . . . . . . . . . 46 Isolation Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.3 5.4 5.5 viii 5.6 High Level Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.6.1 Position Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.6.2 Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 6 Experimental Data 55 6.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.2 Integration and Checkout . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.2.1 Pre-Launch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.2.2 Post-Launch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.3.1 RFI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.3.2 Altitude Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.3.3 Path Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.3.4 Correlation Waveforms . . . . . . . . . . . . . . . . . . . . . . . . 63 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.3 6.4 7 Conclusion 7.1 65 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7.1.1 RFI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7.1.2 FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Bibliography 67 ix Tables Table 5.1 Table of Mean Power Levels . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2 Table of Position Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3 Table of Clock Stability in ppm . . . . . . . . . . . . . . . . . . . . . . . 52 7.1 Table of Instrument Dimensions, Mass, and Power . . . . . . . . . . . . 65 x Figures Figure 1.1 GPS Signal Modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 GPS L1 C/A Code Frequency Representation . . . . . . . . . . . . . . . 3 1.3 ASIC GPS Receiver Layout . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Software Receiver Layout . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5 Code Tracking: Generation of Local PRN Codes . . . . . . . . . . . . . 7 1.6 Block Diagram of Code Tracking . . . . . . . . . . . . . . . . . . . . . . 7 1.7 Block Diagram of Carrier Tracking . . . . . . . . . . . . . . . . . . . . . 8 1.8 I vs. Q Plot of 1ms Post-Correlation Data . . . . . . . . . . . . . . . . . 8 2.1 GPS Bistatic Radar Concept . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 Histogram of Reflected SNR Over Water . . . . . . . . . . . . . . . . . . 11 2.3 Histogram of Reflected SNR Over Farmland . . . . . . . . . . . . . . . . 12 2.4 Histogram of Reflected SNR Over Forest . . . . . . . . . . . . . . . . . . 12 2.5 Post-processing Observation of Reflected Signal . . . . . . . . . . . . . . 14 2.6 Post-processed Reflected Waveform . . . . . . . . . . . . . . . . . . . . . 14 4.1 Block Diagram of Bistatic Receiver Components . . . . . . . . . . . . . 17 4.2 Clock Synchronization Between Front-ends . . . . . . . . . . . . . . . . 18 4.3 SiGe Analog Front-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.4 Block Diagram of a Front-end Interface to FPGA and FX2 USB Bridge 19 xi 4.5 Data Flow Through FX2 Bridge . . . . . . . . . . . . . . . . . . . . . . 21 4.6 Front-end Interface to GPIF . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.7 Host Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.8 PCB Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.9 Schematic Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.10 Final Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.1 Sections of Possible Data Loss . . . . . . . . . . . . . . . . . . . . . . . . 32 5.2 Dataset with 1 Sample Removed . . . . . . . . . . . . . . . . . . . . . . 34 5.3 Dataset with 4 Samples Removed . . . . . . . . . . . . . . . . . . . . . . 35 5.4 Dataset with 8 Samples Removed . . . . . . . . . . . . . . . . . . . . . . 36 5.5 PRN13 Real Data Set (No Samples Intentionally Removed) . . . . . . . 37 5.6 PRN13 Real Data Set (No Samples Intentionally Removed; Corrected for Periodic Jumps) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.7 Clean vs. Noisy IF Spectrum with Antenna Connected . . . . . . . . . . 39 5.8 Receiver Hardware Integrated into Ares I Aircraft (Antennas Not Mounted) 41 5.9 From Left to Right: Direct Antenna and Reflected Antenna . . . . . . . 42 5.10 From Left to Right: Direct Signal Spectrum and Reflected Signal Spectrum with SBC On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.11 Experimental Setup and Resulting Spectrum: Antenna Placed on SBC . 43 5.12 Effect of RFI as observed in figure 5.10 on C/No . . . . . . . . . . . . . 43 5.13 Received Power Test: PRN1 C/No for ChA and ChB with 1σ Error Bars 45 5.14 Received Power vs. C/No Test with GPS Signal Simulator with 3σ Error Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.15 Illustration of Two Isolation Tests . . . . . . . . . . . . . . . . . . . . . 47 5.16 1ms Correlation Waveforms: Channel A Connected, Channel B Floating 48 xii 5.17 SNR of Ch A (Connected) and Ch B (Floating) vs. Coherent Integration Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.18 SNR of Ch A (Connected) minus SNR of Ch B (Floating) vs. Coherent Integration Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.19 SNR of Ch A (Floating) and Ch B (Connected) vs. Coherent Integration Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.20 SNR of Ch B (Connected) minus SNR of Ch A (Floating) vs. Coherent Integration Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.21 Position Errors for Both Channels . . . . . . . . . . . . . . . . . . . . . 53 5.22 Clock Drift in ppm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.1 Balloon Payload Configuration (Image credit EOSS) . . . . . . . . . . . 56 6.2 Balloon Payload Checkout . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.3 Balloon Launch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.4 Balloon Flight Path (Image credit EOSS) . . . . . . . . . . . . . . . . . 59 6.5 Balloon Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.6 PSD for Direct Channel During Flight . . . . . . . . . . . . . . . . . . . 60 6.7 PSD for Reflected Channel During Flight . . . . . . . . . . . . . . . . . 61 6.8 Balloon Altitude Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.9 Predicted Path Delay for PRN10 During 15.5km Data Collection Period 63 6.10 Reflected Waveforms for PRN10 During 15.5km Data Collection Period 64 Chapter 1 Introduction 1.1 GPS Overview The Global Positioning System (GPS) is a satellite-based navigation system [17, 22]. It uses the concept of measuring time-of-arrival (TOA) of different transmitters (the satellites) to compute a receiver position. For this method to work, the location of all the transmitters need to be known, the receiver clock and transmitter clock need to also be synchronized. From the TOA, the propagation time can be computed - this time is then multiplied with the speed of light to get a range estimate to the transmitters. At this point, assuming the locations of the transmitters are known, the receiver can compute its position. The system consists of a constellation of nominally 24 satellites (29 satellites in 2006) with an orbit radius of 26,560km, giving the satellites a period of approximately 12 hours. All satellites have highly synchronized onboard Rubidium or Cesium atomic clocks as a frequency reference. The satellites broadcast Code Division Multiple Access (CDMA) ranging codes and navigation data on two frequencies, L1 (1575.42MHz) and L2 (1227.6MHz). All satellites broadcast on the same frequencies, but use different ranging codes with low cross-correlation properties. Each satellite broadcasts navigation data that allows the receiver to compute the satellite position and transmission time. The ranging code is used to determine the propagation time of the signal. If the receiver clock was synchronized with the transmitter clock, only three ranging measurements are 2 needed for a 3D position solution, but since the receiver clock usually drifts with respect to the transmitter clock, four ranging measurements are needed to solve for longitude, latitude, height and receiver clock offset. For a more thorough introduction to GPS, please see [22, 17]. 1.1.1 Signal Structure The GPS satellites generate a carrier frequency at L1 and L2, these carrier fre- quencies are then modulated with the ranging codes and navigation data using bi-phase shift keying (BPSK). Each satellite generate two different ranging codes, the civilian Coarse Acquisition code (C/A code) and the military P(Y) code. These are modulated onto the carrier frequencies at 1.023MHz and 10.23MHz respectively. A 50Hz navigation message is also modulated on the carriers, this navigation message contains information about the satellite position and time of signal transmission. The aforementioned modulation method is illustrated in figure 1.1. Notice that the L1 signal carries both civilian and military codes, while the L2 signal is only modulated with the military code. The rest of this discussion will focus on the civilian L1 C/A code. Since the L1 carrier is essentially modulated with a 1.023MHz PRN code, the frequency domain representation of the L1 signal looks like a sinc 2 centered at the GPS L1 frequency as illustrated in figure 1.2. More than 90% of the signal energy is in the first lobe, which is 2.046MHz wide. At first glance, it might seem wasteful that GPS occupies at least 2MHz of spectrum in order to transmit 50Hz navigation data, but the 1.023MHz PRN code allows for very desirable signal characteristics: • Satellites can transmit on the same frequency • Precise ranging • Processing gain due to despreading of PRN code • Rejection of reflected signals 3 Figure 1.1: GPS Signal Modulation Figure 1.2: GPS L1 C/A Code Frequency Representation 4 • Anti-jamming properties After modulation, the L1 signal is transmitted at approximately 25 Watts with right hand circular polarization (RHCP). The received power level is approximately -130dBm on the Earth’s surface with a 3dBi antenna. The signal is this weak due to mostly free space loss. In fact, with a 2MHz bandwidth at room temperature, the thermal noise floor P is: P = kB ∗ T ∗ ∆f = (1.3807 ∗ 10−23 ) ∗ (294) ∗ (2 ∗ 106 ) = −111dBm (1.1) Where, kB is the Boltzmann constant, T is the antenna temperature in Kelvin, and ∆f is the spectral bandwidth in Hz. This means the received GPS signal is approximately 19dB below the thermal noise floor. The signal can only be recovered by removing the PRN code (despreading the signal). When despreading the signal, a processing gain is achieved. This processing gain is defined as the ratio of the original signal bandwidth to the despreaded signal bandwidth. After the PRN code is removed, only the 50Hz navigation data remains, giving the signal a bandwidth of approximately 100Hz (first lobe of the sync squared). This means the processing gain G is: G = 10 ∗ log10 BWpre BWpost ! = 10 ∗ log10 2 ∗ 106 Hz 100Hz ! = 43dB (1.2) With a processing gain of 43dB, a typical received GPS signal has a signal to noise ratio (SNR) of 20-30dB. 1.2 1.2.1 GPS Receivers Overview Modern digital receivers typically consists of three parts, a radio frequency (RF) front-end, a digital baseband processor, and a microcontroller. The RF front-end converts the signal from the carrier frequency to an intermediate frequency (IF) that is much lower so that it can be sampled by an analog-to-digital converter (ADC). At this 5 point the digital baseband processor takes care of removing the residual carrier and the PRN code (despreading the signal). This process is, however, tightly coupled with the microcontroller. The microcontroller examines the output of the baseband processor to determine whether the incoming signal is being tracked correctly. If the signal is not being tracked correctly, the microcontroller adjusts the tracking parameters of the baseband processor. This is further described in section 1.2.2. 1.2.1.1 ASIC Receiver The vast majority of GPS receivers on the market today implement some type of application-specific integrated circuit (ASIC) design like the one illustrated in figure 1.3. This design relies on the ASIC performing most of the high-speed signal processing. Figure 1.3: ASIC GPS Receiver Layout 1.2.1.2 Software Receiver A software receiver (also called data recorder in this text) tries to move a generic processor as close to the antenna as possible. Figure 1.4 illustrates this concept - most of the components of the ASIC receiver have been replaced and IF samples are now stored to disk. With this method, baseband signal processing can be done in post-processing with software like Matlab [9]. There are disadvantages to this method: IF samples take up large amounts of disk space and baseband tracking in software is usually much 6 slower than using an ASIC. The key justification for a software receiver is the fact that almost no spectral information is lost, and unfamiliar signals (like reflected signals) can be more thoroughly investigated when IF samples are available. Figure 1.4: Software Receiver Layout 1.2.2 Signal Tracking Baseband signal processing involves two main steps for GPS: Carrier tracking and code tracking. Tracking of the GPS carrier frequency is required because the carrier is usually doppler shifted due to satellite motion, user motion, and user clock drift. In order to despread the CDMA signal, a local PRN code need to be generated and correlated with the incoming code, this correlation processes is also referred to as code tracking. 1.2.3 Code Tracking To despread (or track) a CDMA signal, three local copies of the PRN code is generated 0.5 chips apart. These three codes are named early, prompt, and late. The codes are correlated (multiplied and accumulated) with the incoming I and Q data (after carrier doppler has been removed) as illustrated in figure 1.5. The result of this correlation processes is referred to as 1ms correlation data for the rest of this text. The bottom plot in figure 1.5 illustrates what is commonly known as the correlation 7 waveform: As the local in incoming PRN codes differ, the correlation value decreases. This is the basic concept of signal tracking - keep the power in the early and late correlators balanced, and one ensures that the local prompt and incoming codes are aligned. The code tracking discriminator normally has some type of Early minus Late (E-L) discriminator and a tracking loop tries to keep that number constant. This is illustrated in figure 1.6. Figure 1.5: Code Tracking: Generation of Local PRN Codes Figure 1.6: Block Diagram of Code Tracking 8 1.2.4 Carrier Tracking The GPS carrier is tracked by examining 1ms post-correlation I and Q values to detect carrier phase. By using a frequency lock loop (FLL) or phase lock loop (PLL) as the discriminator, delta-phase or delta-frequency can be detected and corrected, see figure 1.7 . Figure 1.8 illustrates a I versus Q plot for 1ms correlation data, two ’clouds’ are visible due to the 50Hz BPSK navigation message. Any shift in I or Q will be detected as a frequency/phase error and the frequency of the digitally controlled oscillator (DCO) adjusted to compensate. Figure 1.7: Block Diagram of Carrier Tracking IQ Diagram 6000 4000 Q 2000 0 −2000 −4000 −6000 −6000 −4000 −2000 0 I 2000 4000 6000 Figure 1.8: I vs. Q Plot of 1ms Post-Correlation Data Chapter 2 GPS as a Bistatic Radar 2.1 Background Recently the use of GPS signals as opportunistic bistatic radar signals has become increasingly popular in the radar and navigation communities for remotely sensing the Earth’s surface [19, 14, 20, 21]. A GPS bistatic radar uses two reception antennas: one tracking the direct signal from the satellite oriented skyward; the other observing the surface-reflected signal oriented toward the earth (see figure 2.1). In previous experiments [19, 16, 23] GPS signals were scattered from numerous terrain types, including cropland, wetlands, forested hills, mountains, and man-made structures. These terrain types scattered the GPS signals in different ways depending on the degree of surface wetness, roughness, and attenuation by foliage. These scattered signals were highly attenuated and susceptible to heavy fading - in fact, these signals can sometimes be stronger than the direct signal but are, on average, significantly weaker. 10 Figure 2.1: GPS Bistatic Radar Concept 11 2.2 Reflected Signal Properties When right-handed polarized GPS signals reflect off a surface, the polarity is inverted and it becomes left-hand circular polarized (LHCP). In fact, any odd number of reflections will always be LHCP, while even reflections will be RHCP. These reflections are not always completely specular, figures 2.2, 2.3, and 2.4 show 1 how reflected signal strength vary significantly depending on the terrain type [16]. Histogram of 100ms reflected SNR for IOWA PRN29 (water) mean=15.858157 80 70 Number of samples 60 50 40 30 20 10 0 0 5 10 SNR (dB) 15 20 Figure 2.2: Histogram of Reflected SNR Over Water 1 Data presented in this chapter was collected during previous flight tests with a NordNav [10] GPS receiver 12 Histogram of 100ms reflected SNR for IOWA PRN29 (farm) mean=8.428838 500 450 Number of samples 400 350 300 250 200 150 100 50 0 0 5 10 SNR (dB) 15 20 Figure 2.3: Histogram of Reflected SNR Over Farmland Histogram of 100ms reflected SNR for G5 PRN14 (forest) mean=2.996962 800 700 Number of samples 600 500 400 300 200 100 0 0 5 10 SNR (dB) 15 Figure 2.4: Histogram of Reflected SNR Over Forest 20 13 2.3 Detection of Reflected Signals Due to the weak nature of the reflected signal (as seen in section 2.2), continuous tracking is very difficult if not impossible. Signal processing is approached with this in mind. Noting that the reflected signal will have a similar doppler shift as the direct signal, and the reflected signal will always arrive later than the direct signal, carrier doppler and code phase position from the direct signal can be used to assist processing and observation of the reflected signal. Assisted with the direct signal’s doppler and code phase information, correlators can now be placed at the proper code-delay bins to ensure observation of the reflected waveform. In this fashion, the reflected waveform can be observed in an open-loop fashion. This method is illustrated in figure 2.5. An example reflected correlation waveform can be seen in figure 2.6. Note at zero delay (w.r.t direct) some of the direct signal is leaking into the reflected measurement. It is believed that this is due to crosstalk between the direct and reflected channels on an early prototype NordNav receiver (This issue is investigated in section 5.5). 14 Figure 2.5: Post-processing Observation of Reflected Signal 100ms correlation waveform 5 1.8 x 10 1.6 Accumulation value 1.4 1.2 1 0.8 0.6 0.4 0.2 −1 0 1 2 Chips 3 Figure 2.6: Post-processed Reflected Waveform 4 5 Chapter 3 Motivation 3.0.1 Background Commercial GPS receivers can be obtained in very small form factors. Unfor- tunately commercial receivers can not be used for GPS bistatic radar remote sensing because they normally have only one antenna input and implement insufficient signal processing to track/observe the weak reflected signal. In the past [16, 23, 19], it was found that the most convenient way to perform remote sensing with GPS was to utilize a GPS data recorder (see section 1.2.1.2). The most important benefit of using a data recorder is that nearly all information about the signal is retained. The received signal is sampled at the IF and samples saved to a storage device. In this fashion, the reflected signal can be post-processed. Since these receivers are usually custom built, the analog front-end is constructed out of discrete analog components (filters, mixers, etc.) and thus too large to integrate on smaller platforms. Given the nature of the measurements, the preferred platform for GPS remote sensing is aircraft. Experimental flights are, however, usually prohibitively expensive. Recently the use of Unmanned Aerial Vehicles (UAVs) have become increasingly popular. Due to the inexpensive nature of UAV flights this is an ideal platform for GPS remote sensing. The custom nature of previous remote sensing receivers cause these devices to be quite large and require a laptop or desktop computer to operate. The aforementioned setup is too large and is problematic to integrate on smaller platforms. 16 3.0.2 Goal To design a GPS bistatic software receiver that has the ability to record IF samples of two channels to disk. The receiver must be small, light-weight, and low power such that it can be integrated on small platforms. The design will be tested for correct operation by collecting data with a live antenna, GPS signal simulator, and a final field test on a balloon. Chapter 4 Hardware Design The receiver designed for this thesis consists of three parts, the analog front-end which converts an RF signal to an IF and provides digital samples. These samples are then buffered by a USB data bridge for retrieval by a host computer and stored to disk (see figure 4.1). All the components shown in figure 4.1 are commercially available except for the interface board, which had to be custom designed to provide a backplane for connecting all the components together. Figure 4.1: Block Diagram of Bistatic Receiver Components 4.1 Analog Front-ends The analog front-ends used were SiGe Semiconductor SE4410L v.1.1 evaluation boards. The front-end converts the GPS signal at 1575.42MHz to an IF of 4.1304MHz 18 and then samples it at 16.3676MHz using 2-bits. Both front-ends have temperature controlled crystal oscillators (TCXOs) built in, but one of the TCXOs is disabled such that it can use the clock of the other front-end an external reference. This way it is ensured that both front-ends sample the GPS signal on the same sampling clock. This clock setup can be seen in figure 4.2. Figure 4.2: Clock Synchronization Between Front-ends A more detailed illustration of the front-end’s interface to the FPGA and USB chip can be seen in figure 4.4. The control bus illustrated is shared between the two front-ends. Jumpers are provided for oscillator (OSC EN) control and Automatic Gain Control (AGC). Depending on how these jumpers are set, the onboard oscillator and AGC functions can be turned on or off. The data bits pass through both the FPGA and the FX2 USB chip. This way the receiver has the ability to operate either with or without the FPGA installed. 19 Figure 4.3: SiGe Analog Front-end Figure 4.4: Block Diagram of a Front-end Interface to FPGA and FX2 USB Bridge 20 4.2 FPGA The front-end IF samples optionally passes through an Altera Cyclone EP1C12Q240 FPGA for further processing. The FPGA is currently not in use and IF samples are bypassed (as seen in figure 4.1). Since a bi-directional bus exists between the FX2 USB chip and the FPGA, the FPGA can conceivably be used in the future to implement real-time signal processing algorithms. The receiver is fully functional when the FPGA board is not present. 4.3 USB Data Bridge The USB data bridge [6, 2] is used to move high-speed IF samples from the front- end (or FPGA) to the host computer. This data bridge has been benchmarked and can reliably move data at up to 39MB/s on a modern (1GHz+) computer. The Cypress Semiconductor CY7C68013 FX2 USB chip takes 8 or 16-bit data at the rising edge of a clock (CLK OUT) and stores this data in a FIFO to be packetized by the on-chip USB handler. Since the smallest packet size is 8 bits, and each GPS front-end provides data at 2 bits (default configuration), this means that only 4 of each 8 bits sent contain data when in 2-bit mode. Thus, data is sent to the host computer at 16MB/s, where the host computer more efficiently packs these bits and saves it to a file at 8MB/s. 4.3.1 Firmware A portion of the firmware that runs on the FX2 chip has been written by GNU Radio [6] developers. This firmware was heavily modified to accommodate for the data transfer method between the front-ends and the FX2 chip. The firmware is compiled on a host-computer with the sdcc [11] compiler and uploaded to the firmware via USB using the fx2 programmer [4] tool. Since the GNU Radio code interfaced to different hardware, crucial parts of the 21 code had to be rewritten. For a better understanding of the FX2 operation, see figure 4.5. The FX2 chip consists of four parts, the General Programmable Interface (GPIF), buffers, an 8051 microcontroller, and a USB engine. Figure 4.5: Data Flow Through FX2 Bridge 4.3.2 General Programmable Interface (GPIF) The GPIF is a general purpose state machine and can be programmed to interface to many different external peripherals. In the case of the digital stream from the analog front-end chips, the interface is simple: On the rising edge of the front-end CLK OUT signal, 4 data bits become available (2-bits per front-end). The GPIF was thus wired such that the front-end CLK OUT connects to IF CLK and the four data bits connect to the lower 8-bits as illustrated in figure 4.6. The PCB layout supports 4-bit mode, but only 2-bit mode has been tested. Note how CLK OUT from both front-ends connect via a header, this way the sampling clock can easily be switched between the two front-ends. Once the GPIF is started by the host code, it continually puts data into the buffers until either the host code is stopped or the buffer fills up. When the buffer is full, the GPIF aborts and enters the idle state. This is detected by the host code and an error message is printed. The GPIF usually only aborts if the host computer can not empty the buffers quickly enough. The GPIF is configured in AUTO IN mode, this means that the 8051 does not 22 participate in the data transfer in any way. Data is automatically put in the buffers and then committed to the USB engine for packetization. Figure 4.6: Front-end Interface to GPIF 4.3.3 Buffers The firmware sets up the GPIF to connect to end point 6 (EP6). EP6 in the FX2 is configured as quad-buffered with each buffer being 512 bytes. The benefit of having this quad-buffered setup as follows: While the GPIF is filling one of the buffers, the other three are available to the USB Engine of packetization. This way buffers can be filled and emptied in parallel, allowing for a smooth transfer of data between the GPIF and the host computer. 4.3.4 8051 Microcontroller The 8051 microcontroller is responsible for initializing the FX2 chip and moni- toring GPIF status, it does not participate in the high-speed data transfer. During a high-speed data transfer, the host-code periodically polls the GPIF status register to ensure that the GPIF is not idle (which would indicate a buffer overrun). These USB requests are handled by the 8051. 23 4.3.5 USB Engine The task of the USB engine is simple: As soon as a 512-byte buffer is filled, prepare the contents of the buffer for a USB transfer and then wait for the host software to request data. USB has a strict master/slave protocol and the slave (the FX2 chip) can not send data to the host unless the host requests data first. 4.3.6 Host-side Software The C++ host-side software is written to compile on a Linux system. It uses basic function calls to libusb [8], a library that allows access to USB devices. The software also implements its own bulk transfer functions (because the libusb bulk transfer functions are too slow). Bulk transfer mode was selected because the general USB community indicates this to give the highest USB throughput [13]. The data flow on the host computer can be seen in figure 4.7. The host code generates USB Request Blocks (URBs), which is the way user-space transfers USB data to and from kernel-space. The life cycle of a URB is as follows: the user program allocates memory for an empty URB and fills in information like number of bytes requested and the USB device data is requested from. Many of these URBs are then queued up in user-space and copied to the kernel memory space as soon as the kernel driver is ready to accept a URB. Once in kernel-space, the URB is sent to the USB controller and then on to the FX2 chip. The FX2 fills in payload data of the USB packet and sends back payload data to the linux kernel driver. The kernel driver signals that this URB is completed and copies the payload data to the user-space buffer. As soon as this URB is finished, the driver is ready to accept another URB. It is thus vital to queue up as many URBs as are feasible to maximize throughput. Due to the user-side URB queue, the kernel driver never has to wait for a new URB to be filled out by user-space, it is already queued up. 24 Figure 4.7: Host Software 25 4.4 Single Board Computer The single board computer (SBC) runs the host-side USB code. The host com- puter features a low-power VIA Luke CoreFusion Processor in the Nano-ITX form factor (12cm x 12cm). This is an x86 compatible processor that runs at 1.0GHz and supports most modern peripherals, including Serial-ATA (SATA) and USB 2.0. The SBC has 4 USB connectors and boots a small version of Gentoo [5] Linux from a 128MB USB disk. The SBC runs off a normal ATX power supply. The PicoPSU were used as a direct current (DC) to DC converter for the 12V battery. 4.5 Storage With a sampling frequency of approximately 16MHz and with 4-bits of data (in 2-bit mode) for two channels, the data rate is about 8MB/s. Due to possible vibrations of small platforms (like UAVs), a mechanical drive might not suffice for storage of IF samples. Two other solutions were investigated, a 2.5” solid state disk (SSD) laptop drive, and USB memory sticks. 4.5.1 2.5” Laptop SATA SSD It is advantageous to use a 2.5” SSD because it has the same form factor and data interface (SATA) as other mechanical laptop hard drives. Thus, cheaper mechanical hard drives can be used when the platform does not have much vibration. The SSD used was a memtech SA2580, 8GB solid state disk. The disk benchmarked at about 32MB/s sustained read/write. 4.5.2 USB Memory Disk This is a more cost effective solution because USB memory disks are popular mainstream devices. These pose a difficulty to use as a storage device because the USB 26 bus must be shared between the receiver and the USB disk. Two 4GB USB disks were combined using software RAID0 to form a 8GB partition. GPS samples were streamed to this 8GB partition at 11.2MB/s. 4.6 Interface Board All the aforementioned modules must be connected together. This is where the interface board comes in. It is a custom designed 4-layer printed circuit board (PCB). The two analog front-ends plug into the back-side of the board, the digital components (FX2 USB and FPGA) plug into the front-side of the board. The two inner planes are power and ground planes and thus provide some shielding between the analog and digital circuitry. The interface board design can be seen in figures 4.8 and 4.9. The final product can be seen in figure 4.10. 4.6.1 Headers and Jumpers Some of the more important interface board features are pointed out below, for any more information, refer to the schematic (figure 4.9). 4.6.1.1 Power The interface board is powered from the +5VOut pin on the USB board, which is in turn powered via the USB cable from the host computer. The SiGe front-ends draw power from this line. If the FPGA is connected, JP11 can be jumpered in order to power the FPGA from the +3.3V provided by the FX2 chip. If the FPGA uses excessive current, it can be powered externally by opening JP11 and applying 5V to JP10, which will be regulated to +3.3V for the FPGA. 27 4.6.1.2 JP1 When the FPGA is not in use, the SiGe data bus can be directly connected to the FX2 bus by jumpering the pins on JP1. 4.6.1.3 JP2-JP5 JP2 and JP4 control the oscillator on front-end A and B respectively. When in the 1-2 position, the onboard oscillator is enabled. When in position 2-3, it is disabled. JP3 and JP5 control the AGC on front-end A and B respectively. When in the 1-2 position, the AGC is enabled. When in position 2-3, it is disabled. 4.6.1.4 JP6 This jumper selects which clock source to connect to IF CLK. When in position 12, front-end A’s CLK OUT will be used, when in position 3-4, front-end B’s CLK OUT will be used. 4.6.1.5 JP7 RS232 header for FPGA. See schematic for more details. 4.6.1.6 JP8,JP9 These jumpers break out 22 unused I/O pins on the FPGA. 4.6.1.7 JP10 +5V input if powering FPGA externally. 4.6.1.8 JP11 Connect FX2 3.3V to regulated 3.3V. Jumper this if powering the FPGA from the FX2 board’s 3.3V out pin. 28 Figure 4.8: PCB Layout 29 Figure 4.9: Schematic Layout 30 Figure 4.10: Final Product Chapter 5 Verification This chapter is dedicated to verification of the instrument. The Nordnav [10] GPS post-processing software was used for the majority of the data processing. First, lowlevel verification tests are done, including power consumption and continuous streaming capability. After this, IF spectra (for interference) are tested, as well as high-level performance, including the position solution and clock stability. The tests below represent a combination of real GPS sampled data and data collected with a GPS signal simulator. The latter was used because simulated satellite doppler and power levels can be accurately controlled. 5.1 Power and Mass When streaming GPS samples to a USB disk at 8MB/s, the entire system uses about 18W, with the SBC making up the largest portion of this, nearly 17.7W. The GPS recorder (without the FPGA) usually runs at about 300mW with two active antennas connected. Both laptop solid state and mechanical hard drives run at 2.5W for continuous writes, while USB disks consume about 750mW. The 60Wh Lithium Ion battery used with the receiver can run this system for 3+ hours, much longer than the data recording capabilities. The entire system (as shown in figure 4.10) weighs 1.7kg. 32 5.2 Streaming This section addresses the reliability of data flow from the antenna to disk. This is an important test because GPS signals can not be tracked properly if samples are dropped. Locations where data loss can possibly occur have been lettered A through D as illustrated in figure 5.1. Since the RF input path to the front-end can not be controlled (other than ensuring adequate signal levels), it is assumed that no data loss occurs at path A. The path from the SBC to disk (marked D) can not be controlled either and is assumed to be perfect. This leaves path B and C to be investigated for possible data loss. Figure 5.1: Sections of Possible Data Loss Before continuing, it is worth nothing that section B can sustain a rate of 96MB/s, while the highest sustained data rate at section C measured was 39MB/s. During this test, CPU usage was at 10% for a 3.0GHz CPU. The 1.0GHz SBC benchmarked at 35MB/s. It appears that the bottleneck in the streaming operation is the implementation of the host-side USB controller. One must recall that USB is a serial protocol, and thus has overhead for addressing the correct device and checksums. Thus, even though USB 2.0 is rated at 60MB/s, the payload bandwidth is less than that [12]. 33 5.2.1 512 Samples Skipped The FX2 USB chip packetizes data in 512 byte blocks, meaning that if a USB packet is lost, 512 samples will be skipped. To test whether 512-byte USB packets are being dropped, samples were collected with a GPS signal simulator. Using Matlab, a 512-byte block of samples in the middle of the data set was removed. This modified data set was then run through post-processing software. A 512 sample drop is easy to detect: Lock of all GPS signals is immediately lost halfway into the data set. Since such behavior (loss of all GPS satellites) is not observed during normal operations, one can conclude that data path C is reliable. 5.2.2 1,4, and 8 Samples Skipped To determine whether samples dropped in small quantities are detectable, samples were intentionally removed from a recorded data set. The same sampled data set was used, and at the same location 1, 4, and 8 samples were removed respectively. These three modified data sets were then processed with post-processing software and certain signal properties extracted. To understand what the removal of a single IF sample means, consider this: The IF carrier is at approximately 4MHz, and this signal is sampled at 16MHz. This means there is about 4 samples per carrier period, thus the removal of one sample will change the received phase by approximately 90 o . Results of sample removal can be seen in figures 5.2, 5.3, and 5.4. The most obvious way to detect dropped samples would be to keep a running sum of the number of carrier cycles, if the derivative of the carrier cycles (doppler) is smooth, this means that no samples are lost. The first plot in all figures illustrate exactly this: note the discontinuity at 1.2 seconds in these plots. This is the exact spot where samples were removed. As is evident in all plots, the carrier to noise ratio (C/No) drops by a detectable amount when samples are removed. When 34 examining figure 5.4 it might appear at first that samples are being dropped at 3.5 seconds also (the discontinuity of the differenced carrier phase). It has been confirmed by Nordnav that their post-processing software has a fault in it, this fault will be fixed for future releases of the software. Lastly, the lock time in all plots indicate when cycle slips occur. The receiver is robust enough to recover from a 1 sample (90 o ) phase change, but note how the lock time is reset in figures 5.3 and 5.4 due to the 360 o and 720o phase changes. From these plots, one can conclude that within this 9 second data Differenced carrier phase with 1 sample skipped −60 −70 −80 0 1 2 3 4 5 6 7 8 9 6 7 8 9 6 7 8 9 Time (s) Carrier to Noise ratio 43.5 43 42.5 0 1 2 3 4 5 Time (s) Lock time (no cycle slips) 10 Lock time (s) CNo (dB−Hz) Differenced carrier phase (Hz) set, no samples (other than the intentional ones) are being dropped. 5 0 0 1 2 3 4 5 Time (s) Figure 5.2: Dataset with 1 Sample Removed Differenced carrier phase with 4 samples skipped 0 −50 −100 0 1 2 3 4 5 6 7 8 9 6 7 8 9 6 7 8 9 CNo (dB−Hz) Time (s) Carrier to Noise ratio 44 42 40 0 1 2 3 4 5 Time (s) Lock time (no cycle slips) 10 Lock time (s) Differenced carrier phase (Hz) 35 5 0 0 1 2 3 4 5 Time (s) Figure 5.3: Dataset with 4 Samples Removed Differenced carrier phase with 8 samples skipped 0 −50 −100 0 1 2 3 4 5 6 7 8 9 6 7 8 9 6 7 8 9 Time (s) Carrier to Noise ratio CNo (dB−Hz) 45 40 35 0 1 2 3 4 5 Time (s) Lock time (no cycle slips) 5 Lock time (s) Differenced carrier phase (Hz) 36 0 0 1 2 3 4 5 Time (s) Figure 5.4: Dataset with 8 Samples Removed 37 5.2.3 Sample Skip Test with Real Data The GPS sample recorder was connected to a L1 antenna and data collected for 23 minutes. Results can be seen in figure 5.5. It might appear that the carrier phase is discontinuous, but note how the C/No is not correlated with these ’discontinuities’ as it was when samples were intentionally removed. These same periodic spikes occur when using a commercial sampling receiver and the same post-processing software. As previously stated, these spikes are due to a fault in the post-processing software, and is not an indication of faulty hardware. These spikes are easily detectable because of their periodicity. In figure 5.6 these periodic skips were removed and a smooth differenced PRN13 real data: Differenced carrier phase 4000 2000 0 0 500 1000 1500 1000 1500 1000 1500 Time (s) Carrier to Noise ratio CNo (dB−Hz) Differenced carrier phase (Hz) carrier phase is observed. 55 50 45 0 500 Time (s) Lock time (no cycle slips) Lock time (s) 4000 2000 0 0 500 Time (s) Figure 5.5: PRN13 Real Data Set (No Samples Intentionally Removed) 38 PRN13 real data: Differenced carrier phase (periodic discontinuities removed) 1200 1100 Differenced carrier phase (Hz) 1000 900 800 700 600 500 400 300 0 500 1000 1500 Time (s) Figure 5.6: PRN13 Real Data Set (No Samples Intentionally Removed; Corrected for Periodic Jumps) 39 5.3 Radio Frequency Interference (RFI) The ideal vs non-ideal IF spectrum can be seen in figure 5.7. The plot on the left shows a clean spectrum and was collected with the receive antenna on a rooftop and a high-quality cable run into a lab. C/A code spectral lines are visible above the noise floor: This is due to the fact that the transmitted power of each visible satellite adds up and thus pushes the total received power at the antenna above the thermal noise floor. The antenna was moved into the lab (right next to the receiver) in the rightmost plot. Any RF emissions the receiver and computers within the lab generate are greatly amplified via the GPS front-end and pollutes the spectrum. Power Spectral Density Estimate via Welch −45 −50 −50 −55 −55 Power/frequency (dB/Hz) Power/frequency (dB/Hz) Power Spectral Density Estimate via Welch −45 −60 −65 −60 −65 −70 −70 −75 −75 −80 0 1 2 3 4 5 Frequency (MHz) 6 7 8 −80 0 1 2 3 4 5 Frequency (MHz) 6 7 Figure 5.7: Clean vs. Noisy IF Spectrum with Antenna Connected 5.3.1 RFI Mitigation As is apparent from the previous section, when the antenna is close by to any electromagnetic noise source, it can easily pollute the IF spectrum. To investigate this further, the electronics were integrated into a remote controlled aircraft (figure 5.8) built at the University of Colorado [15] and then moved outside (see figure 5.9), away from any potential noise sources. The spectra of direct and reflected channels can be seen in figure 5.10. It appears that some RFI is present and about 5dB above the noise floor 8 40 right around 3.7MHz, close to the IF of the receiver. As previously mentioned, this is most likely due to the onboard computer. The aforementioned claim was verified by placing the direct antenna on top of the onboard computer. The setup and resulting spectrum can be seen in figure 5.11. Note the 3.7MHz RFI is now greatly amplified: the RFI seen in figure 5.10 is indeed from the SBC. The effect of this RFI on C/No can be seen in figure 5.12: PRN14 and PRN30 C/No decreased by approximately 2dB, while PRN25’s C/No increased by 1dB. Since the satellites were obviously not stationary during the period of data collections, it is not entirely obvious what causes the 2dB drop and 1dB increase in C/No. However, one can conclude that RFI from the computer does not disable GPS, but could possibly have a detrimental effect on performance. 41 Figure 5.8: Receiver Hardware Integrated into Ares I Aircraft (Antennas Not Mounted) 42 Figure 5.9: From Left to Right: Direct Antenna and Reflected Antenna Power Spectral Density Estimate via Welch −35 −40 −40 −45 −45 Power/frequency (dB/Hz) Power/frequency (dB/Hz) Power Spectral Density Estimate via Welch −35 −50 −55 −60 −50 −55 −60 −65 −65 −70 −70 −75 0 1 2 3 4 Frequency (MHz) 5 6 7 8 −75 0 1 2 3 4 Frequency (MHz) 5 6 7 Figure 5.10: From Left to Right: Direct Signal Spectrum and Reflected Signal Spectrum with SBC On 8 43 Power Spectral Density Estimate via Welch −35 −40 Power/frequency (dB/Hz) −45 −50 −55 −60 −65 −70 −75 0 1 2 3 4 Frequency (MHz) 5 6 7 Figure 5.11: Experimental Setup and Resulting Spectrum: Antenna Placed on SBC CNo for 3 different satellites with/without RFI present PRN14 RFI PRN14 no RFI PRN25 RFI PRN25 no RFI PRN30 RFI PRN30 no RFI 42.5 42 41.5 CNo (dB−Hz) 41 40.5 40 39.5 39 38.5 38 0 5 10 Time (s) 15 20 Figure 5.12: Effect of RFI as observed in figure 5.10 on C/No 8 44 5.3.1.1 RFI Test Conclusion In conclusion to these RFI tests: All detectable noise were generated by the computer. Care must be taken when placing antennas close to the SBC, ideally the computer should be well shielded. The combination of the aircraft’s carbon fibre body and moving the antenna away from the SBC did provide a significant amount of isolation from RFI generated by the SBC. Section 6.3.1 presents data from an experimental flight where strong RFI was present, this RFI did not, however, appear to significantly impact the receiver performance. 5.4 Power Calibration 5.4.1 Power Balance In order to ensure reliable power measurements, it is crucial that received power in both analog channels are balanced. When this is ensured, relative power measurements between the two channels can be reliably performed. Figure 5.13 indicates a simple experiment performed: The GPS simulator was set to a known and constant power level and the resulting signal split with a RF splitter and fed into the GPS recorder. Post-processing software was then used to extract the resulting C/No on both channels. In order to remove any biases due to the RF splitter, the splitter cables were swapped and the experiment repeated. As is evident from the figure, both channels are balanced very well, see table 5.1 for values. Experiment Splitter Swap Splitter ChA C/N o dB-Hz 43.47 43.45 ChB C/N o dB-Hz 43.79 43.62 ChA-ChB dB-Hz -0.32 -0.17 3σ ChA dB-Hz 0.37 0.34 Table 5.1: Table of Mean Power Levels 3σ ChB dB-Hz 0.37 0.33 45 Carrier to Noise ratio (1 second averages plotted with 1 sigma error bars ) CHA CHB CHA Swap CHB Swap 44 43.9 43.8 CNo (db−Hz) 43.7 43.6 43.5 43.4 43.3 43.2 0 1 2 3 4 Time (s) 5 6 7 Figure 5.13: Received Power Test: PRN1 C/No for ChA and ChB with 1σ Error Bars 46 5.4.2 Received Power to C/No Calibration The plot in figure 5.14 indicates how C/No varies as received signal power is varied with the GPS signal simulator. The C/No linearly decreases (as expected) as received signal power is decreased. The C/No estimates became unreliable at lower power levels. Computed CNo with 3−sigma error bars as simulator output power is varied 55 50 CNo (dB−Hz) 45 40 35 30 25 Channel A Channel B −135 −130 −125 −120 Simulator output power (dBm) −115 −110 Figure 5.14: Received Power vs. C/No Test with GPS Signal Simulator with 3σ Error Bars 5.5 Isolation Test When detecting weak reflected signals that have a delay close to the direct signal, care must be taken that leakage of the direct signal into the reflected channel is not 47 mistaken for the reflected signal. To ensure this does not happen, an estimate of isolation between the two channels must be obtained. Exactly this was done with two tests illustrated in figure 5.15: First, channel A had a RHCP antenna connected, while channel B was left floating. Secondly, the reverse was executed: channel B was connected to a RHCP antenna, while channel A left floating. In each case, the unconnected channel should have no signal power, but reality prevails and any metallic objects, including the floating SMA connector and PCB traces will act like antennas. This means that some amount of GPS signal energy will be coupled into the unconnected channel, or, if the channel is used to detect weak GPS signals, leakage of direct power will be seen in the reflected channel. Figure 5.15: Illustration of Two Isolation Tests When observing 1ms correlation waveforms (processed as per section 2.3) from the constructed receiver (see figure 5.16) in one of the aforementioned configurations, leakage is not observed, but when these waveforms are coherently integrated for longer periods of time, leakage is observed. Figures 5.17, 5.18, 5.19, and 5.20 indicate isolation results for the receiver tested in the aforementioned two configurations. Figure 5.17 indicates how SNR increases versus coherent integration time. It is apparent that after about 100ms coherent integration, the reflected channel starts showing some power. The difference of channel A and channel B can be seen in figure 5.18. This gives an indication of isolation: both satellites seem to settle around 36dB-37dB. This is also true for the reverse case (channel A floating, channel B connected) as seen in figures 5.19 and 5.20. 48 Ch A and Ch B waveforms 4000 3500 Accumulation value 3000 2500 2000 1500 1000 500 0 −500 −2 −1.5 −1 −0.5 0 Chips 0.5 1 1.5 2 Figure 5.16: 1ms Correlation Waveforms: Channel A Connected, Channel B Floating Ch A and Ch B SNR vs. coherent integration time PRN9 − Ch A PRN9 − Ch B PRN15 − Ch A PRN15 − Ch B 55 50 45 SNR (dB) 40 35 30 25 20 15 10 5 0 10 Coherent integration time (ms) Figure 5.17: SNR of Ch A (Connected) and Ch B (Floating) vs. Coherent Integration Time 49 Ch A − Ch B SNR vs. coherent integration time 40 38 36 Delta SNR (dB) 34 32 30 28 26 24 22 20 0 10 PRN9 PRN14 1 10 2 3 10 10 Coherent integration time (ms) 4 10 Figure 5.18: SNR of Ch A (Connected) minus SNR of Ch B (Floating) vs. Coherent Integration Time 50 Ch A and Ch B SNR vs. coherent integration time PRN9 − Ch B PRN9 − Ch A PRN15 − Ch B PRN15 − Ch A 60 50 SNR (dB) 40 30 20 10 0 10 Coherent integration time (ms) Figure 5.19: SNR of Ch A (Floating) and Ch B (Connected) vs. Coherent Integration Time 51 Ch B − Ch A SNR vs. coherent integration time 40 38 36 Delta SNR (dB) 34 32 30 28 26 24 22 PRN9 PRN14 20 0 10 1 10 2 3 10 10 Coherent integration time (ms) 4 10 Figure 5.20: SNR of Ch B (Connected) minus SNR of Ch A (Floating) vs. Coherent Integration Time 52 5.6 5.6.1 High Level Verification Position Solution At the highest level, receiver performance can be verified by examining the posi- tion solution. Results can be seen in figure 5.21. Both channels perform similarly with acceptable errors as seen in table 5.2. Direction Easting Northing Height ChA 3-sigma (m) 3.97 3.53 7.07 ChB 3-sigma (m) 3.94 3.52 6.99 Table 5.2: Table of Position Errors 5.6.2 Clock A by-product of the position solution is clock drift. Since all GPS satellites have a very stable frequency reference, user clock drift can be measured very accurately. The plot in figure 5.22 shows the clock error with respect to the GPS L1 carrier over 30 minutes. The mean of -4.42ppm translates to a doppler offset of -6961kHz with respect to the L1 carrier and corresponds to measurements done on the clock with a frequency counter and rubidium clock as reference. There exists thus a static error in the user clock of -4.42 parts per million (ppm) and 3-sigma clock drift of 0.1 ppm (summarized in table 5.3). Note that both channel A and channel B have nearly identical clock errors. This is expected since a common clock was used for both channels. Measurement Mean 3-sigma ChA ppm 4.42 0.10 ChB ppm 4.42 0.10 Table 5.3: Table of Clock Stability in ppm 53 Position error in meters (50Hz, 30 minutes), 3−sigma is 3.73m 6 Ch A Ch B 3−sigma 4 Delta Northing (m) 2 0 −2 −4 −6 −6 −4 −2 0 Delta Easting (m) 2 4 6 Height error in meters, 3−sigma is 7.0m 6 Ch A Ch B 4 Delta height (m) 2 0 −2 −4 −6 0 5 10 15 20 25 Time (s) 30 35 40 Figure 5.21: Position Errors for Both Channels 45 54 −6 User clock drift x 10 Ch A Ch B −4.3 ppm −4.35 −4.4 −4.45 −4.5 0 200 400 600 800 1000 1200 Time (s) Figure 5.22: Clock Drift in ppm 1400 1600 1800 2000 Chapter 6 Experimental Data The final test of this receiver is to integrate it on a small platform and test it in the field. Exactly this was done with a small balloon flight provided by Edge of Space Sciences (EOSS) [3]. 6.1 Background Student payloads were connected to a cord that was attached to the balloon as shown in figure 6.1. The balloon would ascend to an altitude of approximately 28km MSL where it would burst and free-fall until there is enough atmosphere so that the parachute can be reliably deployed. This balloon was tracked via a beacon that transmits GPS position down to the tracking station. The bistatic instrument was mounted approximately 3m above the beacon on the cord. 56 Payload Plan EOSS-103 22/23 April 06 – 0730 Rev A 3000 gm latex Item Weight, lb Student Payloads (est’d) 15 ft 500# cord EOSS Payloads 4.4 Parachute and cutter Cutter A (0.1#) 19.5 2.1 Neck load 26.0 Gross 32.6 Balloon 6.6 10 ft parachute (2.0#) APRS Cutter-DF/ EOSS103 KØANI-11 445.975 MHz 1.7# 15 ft 500# cord 11 CU Gateway BalloonSats Spaced @ 36” on 400# black dacron w/ half-hitch on bight separators. Est’d total wt: 19.5 lb. 15 ft 250# cord APRS KCØYA-11 / EOSS-103 EOSS / BALND2 Slotted at 0:15 & 0:45; TLM @ 1 min intervals Power up exactly at mm:20 UTC to slot TLM. 144.340 MHz 0.35W 2.7 # Payload_Plan_103-104a.doc Figure 6.1: Balloon Payload Configuration (Image credit EOSS) 57 6.2 6.2.1 Integration and Checkout Pre-Launch The instrument was broken up into two pieces (1) Analog box: Antennas, Front-ends, and USB bridge (2) Digital box: Computer, Storage, and Power The two boxes can be seen in the photo of the final integration in figure 6.2. It was necessary to separate the instrument in these two boxes to minimize interference from the computer and also due to individual payload weight restrictions. A USB cable was run between these two boxes so that data could be transfered from the analog box to the digital box. This two-box setup can be seen in figure 6.3, a photo of the instrument a few seconds after launch. Figure 6.2: Balloon Payload Checkout 58 Figure 6.3: Balloon Launch 59 6.2.2 Post-Launch The balloon flight took approximately 3 hours from launch to landing. The flight path can be seen in figure 6.4. The balloon traveled a total of 97 km from the launch site. The balloon was tracked via real-time position updates from the GPS beacon installed on the balloon. Recovery was successful (figure 6.5) and no equipment was damaged. Figure 6.4: Balloon Flight Path (Image credit EOSS) Figure 6.5: Balloon Recovery 60 6.3 Results 6.3.1 RFI Before any baseband signal processing were done, the spectrum of IF samples collected during the balloon flight were analyzed for any RFI, see figures 6.6 and 6.7. On the direct channel The C/A spectral lines are visible, but some interference is present around 5.3MHz. Also, the reflected channel seems to have more significant RFI, the 5.3MHz RFI seems even stronger. Since this RFI is stronger on the reflected channel, it leaves the author to believe RFI is being generated by the GPS beacon, mounted 3m below the reflected antenna. Even though RFI was present, signal tracking did not appear to be significantly affected (as discussed in the next section). PSD estimate of direct channel −35 −40 −45 Power/frequency (dB/Hz) −50 −55 −60 −65 −70 −75 0 1 2 3 4 Frequency (MHz) 5 6 Figure 6.6: PSD for Direct Channel During Flight 7 8 61 PSD estimate of reflected channel −35 −40 −45 Power/frequency (dB/Hz) −50 −55 −60 −65 −70 −75 0 1 2 3 4 Frequency (MHz) 5 6 Figure 6.7: PSD for Reflected Channel During Flight 7 8 62 6.3.2 Altitude Profile Telemetry obtained from the beacon on the balloon was used to generate an altitude profile (as seen in figure 6.8). Due to limited solid state storage (2x4GB USB disks), only 16 minutes of GPS samples could be recorded. The data collection was broken up in four 4-minute sections as indicted in red on the altitude profile. Balloon altitude profile 25 Burst Altitude MSL (km) 20 15 Data Analyzed 10 Parachute Deployed 5 07:30 No data collection Data collection occured 08:00 08:30 09:00 Time in hh:mm 09:30 10:00 Figure 6.8: Balloon Altitude Profile Reflected data presented in this section were collected from around 15.5 km MSL as circled in figure 6.8. 6.3.3 Path Delay As described in section 2.3, the reflected signal arrives later than the direct signal. Correlators are then placed at this expected delay. The path delay can be computed by 63 assuming the elevation angle, θ, of the receiver antenna w.r.t. the satellite in question is the same as the elevation angle of the specular reflection w.r.t the satellite. With this assumption, the delay estimate in meters is [18]: τ = 2h sin (θ) (6.1) Where h is the receiver altitude above the reflection surface in meters and θ is the elevation angle of the satellite. For the data segment analyzed, the predicted path delay can be seen in figure 6.9. A approximation was made in order to compute h: It was assumed the reflection surface was smooth and at a constant height. PRN 10 predicted path delay in chips 70 69 Pathdelay (chips) 68 67 66 65 64 0 20 40 60 80 100 Time (s) 120 140 160 180 200 Figure 6.9: Predicted Path Delay for PRN10 During 15.5km Data Collection Period 6.3.4 Correlation Waveforms Reflected signal results for the first 19 seconds of this data set can be seen in figure 6.10. These are 1 second noncoherent averaged waveforms. Note the path delay 64 is around 65.5 chips, close to the predicted 65 chips for this interval. The estimate error is most likely due to the flat surface assumption made in the path delay prediction. 19 waveforms − 1s noncoherent average 5 4.5 4 3.5 SNR (dB) 3 2.5 2 1.5 1 0.5 0 50 55 60 65 70 75 Delay (chips) Figure 6.10: Reflected Waveforms for PRN10 During 15.5km Data Collection Period 6.4 Summary The instrument was integrated onto a small platform (balloon) and samples saved to solid state USB disks. These samples were post-processed and reflected signals were detected at an altitude of 15.5 km MSL. Strong RFI was present, but it did not appear to noticeably affect the operation of the receiver. Chapter 7 Conclusion A GPS bistatic sampling receiver was designed and constructed. Correct operation of the instrument was verified as per the goal stated in section 3.0.2. Experimental data obtained from a small platform (balloon) was processed and reflected waveforms observed. This receiver features two analog front-ends and a high-speed data bridge to reliably move these samples to a Linux-based computer for storage to disk. The entire setup weighs approximately 1.7kg (depending on configuration) and uses 18W, a significant improvement over previous receivers used for bistatic research [16, 23]. Both direct and reflected analog channels of the receiver was tested for correct operation, tests include sample skip studies, RFI studies (not integrated and integrated into a small platform), power calibration, isolation tests, position solution, and clock drift. A summary of the instrument can be seen in the table below: Component Analog Digital Battery Direct Antenna Reflected Antenna Total Dimension WxHxL 12.5cm x 5.5cm x 11.0cm 17.8cm x 7.8cm x 12.8cm 15.6cm x 2.1cm x 8.0cm 9cm x 2.5cm x 9cm 9cm x 2.5cm x 9cm Mass Power 285g 785g 457g 120g 120g 1767g 250mW 17700mW 0mW 25mW 25mW 18W Table 7.1: Table of Instrument Dimensions, Mass, and Power 66 Where analog is the box with the front-ends and USB data-bridge, while digital is the box with the computer and solid state storage. In all tests the receiver performed as expected, some RFI was observed when it was integrated into the small platform (section 5.3.1). It was determined noise from the host computer was leaking in at the antenna. The effects of this RFI were investigated and it did not significantly affect the receiver operation. 7.1 7.1.1 Future Work RFI For small platforms, the receive antennas are usually mounted close to the host computer. It was determined that the host computer is electromagnetically very noisy and if not properly shielded will leak into the receive antennas. Future work include determining better shielding methods. 7.1.2 FPGA With the FPGA in place, real-time baseband processing can be implemented in the FPGA and the host computer used as the final step to provide a small real-time bistatic GPS receiver. Bibliography [1] Altera cyclone. http://www.jopdesign.com/cyclone/index.jsp. [2] Brain technology. http://www.braintechnology.de. [3] Edge of space sciences. http://www.eoss.org. [4] Fx2 programmer. http://volodya-project.sourceforge.net/fx2programmer. php. [5] Gentoo linux. http://www.gentoo.org. [6] Gnu radio. http://www.gnu.org/software/gnuradio/. [7] Hard drive vibration specifications. http://www.westerndigital.com/en/ products/Products.asp?DriveID=102. [8] libusb. http://libusb.sourceforge.net/. [9] Matlab. http://www.mathworks.com. [10] Nordnav receiver. http://www.nordnav.com. [11] Sdcc c-compiler. http://sdcc.sourceforge.net/. [12] Usb whitepaper. _USB\_WP.pdf. http://www.quicklogic.com/images/Implementation\_of\ [13] Usb wikipedia. http://en.wikipedia.org/wiki/USB. [14] M. Armatys, D. Masters, A. Komjathy, P. Axelrad, and J. L. Garrison. Exploiting gps as a new oceanographic remote sensing tool. In Insitute of Navigation GPS 2000. ION, 2000. [15] C. Dixon and J. Elston. Recuv ares-1. http://recuv.colorado.edu. [16] S. Esterhuizen, D. Akos, D. Masters, and E. Vinande. Experimental characterization of land-reflected gps signals. In Insitute of Navigation GNSS 2005. ION, 2005. [17] Elliott D. Kaplan. Understanding GPS: Principles and applications. Artech House Publishers, Boston, 1996. 68 [18] S. Katzberg and J. L. Garrison. Utilizing gps to determine ionospheric delay over the ocean. In NASA Technical Memorandum 4750. NASA, 1996. [19] D. Masters, D. Akos, S. Esterhuizen, and E. Vinande. Integration of gnss bistatic radar ranging into an aircraft terrain awareness and warning system. In Insitute of Navigation GNSS 2005. ION, 2005. [20] D. Masters, P. Axelrad, V. Zavorotny, S. J. Katzberg, and F. Lalezari. A passive gps bistatic radar altimeter for aircraft navigation. In Insitute of Navigation GPS 2001. ION, 2001. [21] Dallas Masters. Surface Remote Sensing Applications of GNSS Bistatic Radar: Soil Moisture and Aircraft Altimetry. PhD thesis, University of Colorado at Boulder, 2004. [22] Per Enge Pratap Misra. Global Position System: Signals, Measurements, and Performance. Ganga-Jamuna Press, Lincoln, 2001. [23] E. Vinande, D. Akos, D. Masters, P. Axelrad, and S. Esterhuizen. Gps bistatic radar measurements of aircraft altitude and ground objects with a software receiver. In Insitute of Navigation’s 61st Annual Meeting. ION, 2005.
© Copyright 2024