Projects:2016s2-216 GPS Receiver Location and Atmosphere Characterisation
Contents
Team members
Man Kit Law
Menghang Jiang
Supervisors
Michael Liebelt
Matthew Trinkle
Project Description
We recently built an FPGA GPS receiver which has been incorporated into a satellite and is due to be launched later in the year.
This receiver sends back raw GPS signal measurements from which it should be possible to determine the position of the satellite as well as properties of the atmosphere based on the signal delays. We have a second copy of the GPS that is almost identical to the one in the satellite and can be used for experimentation.
The main aims of this project are to use the raw GPS measurements obtained from the GPS receiver module (codephase and carrier phase) to determine the position of the GPS receiver and the delay of the GPS signals through the atmosphere. Initially we will be using the measurements from the duplicate receiver on earth. But hopefully we will be able to use the data from the actual satellite early next year.
Objectives
The project’s objectives are listed below.
• Raspberry Pi board
It is used to transmit data through I2C communication between an identical MASP replica board and on-ground PC for testing purpose. The operation between MASP replica and Raspberry Pi board can verify the actual MASP can operate correctly and give us good results before it can be used. Project member Eric Jiang is responsible for this objective.
• Modified Matlab code
Based on the signal sent from MASP replica to PC. The modified Matlab code in PC can do the satellite and receiver position calculations and hence find the position solution. It verifies the signal sent from MASP is correct and MASP can rely on its own signal to find out the position solution in space and hence send back to earth.
Key Tasks
Since SUSat has not been tested yet, the project team is not able to do any experiments using SUSat. In order to test if the MASP is worked or not, one of the supervisors Matthew Trinkle gave us a MASP replica which is identical to the MASP board that in space with exactly same functions.
There are three key tasks in this project – “Raspberry Pi board implementation”, “Matlab code modification” and “GPS receiver location determination”. The above two tasks were going to process at the same time. Finally, the task “GPS Receiver location determination” was done by the whole group.
Figure 4. Proposed Approach
Raspberry Pi board implementation
Figure 5. Simulation system structure
Before the MASP is tested, Eric Jiang will implement a Raspberry Pi that can be used to transmit data through I2C communication between the MASP replica and PC. The simulation system is shown in Figure 5. The top half of the figure describes the system structure of the SUSat. The bottom half describes the simulation system structure.
The Raspberry Pi board, which has similar function as satellite computer, is used to interface between the MASP replica (FPGA GPS) module and the on-ground PC using I2C communication. The Matlab decoding software that in the on-ground PC will then receiver the signal which was sent from MASP replica to find out the position of satellites and calculate pseudoranges between each satellite and the receiver.
Matlab code modification
The decoding software in the on-ground PC is Matlab code. This software is provided by a book named “A software-defined GPS and Galileo Receiver”. It contains a lot of scripts and functions to help readers find out how the software process the data.
The given book data block is a raw signal. When this data signal applies to the Matlab code directly, Matlab will then run the acquisition, tracking and positioning functions and hence obtain the location of that data signal automatically. However, the data signal which is sent from MASP board is different from the raw signal. The data signal is going to complete the acquisition and tracking inside the MASP and then send to the PC. Hence, the Matlab code in PC will do the navigation calculation. Since the data format of the book data is different from the data packet back from the satellites, it is impossible to copy the existing Matlab code directly and apply it to our measurements. Therefore, the author will modify the code to fit our needs.
Before the Matlab code modification starts, it is essential to understand how different is the new data format from original data format.
Original data format
Within the book “A software defined GPS and Galileo Receiver”, it contains two raw signals which were collected at different places for use with the GNSS Software Defined Receiver (SDR). These raw signals are composed of three parts which are carrier wave, navigation data and spread sequence. By setting up the acquisition and tracking parameters such as sampling frequency, intermediate frequency and signed character sample format, the raw signal will then upload to satellites from the ground stations. Since the sampling frequency is given, it can keep track of how far away from the 1ms data points the start of the C/A code is. It is very useful in calculating the pseudoranges as the start of the C/A code in unit of samples is known.
New data format
Since the acquisition and tracking are going to be completed at SDK software executed by Raspberry Pi board and MASP in our project, it is not necessary to have raw signal, acquisition and tracking functions in the Matlab code. The new data is stored inside the tracking results which obtained from the output of MASP. This data will then be used to conduct a series of analysis and calculation to obtain the position solution. The new data has at most 8 different data sets for 8 channels. However, for the data packet, the 8 data sets would be stored in only a single array. It has the first bit of each byte set to the navigation message of the first channel and the next bit to the second channel etc. and the final bit to the 8th channel. Notice that the position solution can be found only if four or more satellites are acquired and tracked.
GPS receiver location determination
This task refers to the purpose of the project. After Raspberry Pi board implementation and Matlab code modification are completed, this final task can be processed. Since the decoding software will result in lla coordinate. Comparing the result with the actual coordinate can find out the error of the software to see if the software can be trusted.
If the result is worth trust, it indicates the MASP is operated correctly. Once the MASP in space has been tested, the atmospheric characterisation can start.