The GPS EASY Suite II: A Matlab Companion
Many practitioners in the GNSS field are familiar with Matlab, a high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numeric computation. In this new series, a prominent Danish GNSS researcher uses Matlab to illustrate and explain a variety of common GPS issues.
In 2003 I published a paper called “The GPS EASY Suite — Matlab Code for the GPS Newcomer.” The paper consisted of 10 parts, which are cited in the accompanying sidebar, “EASY Suite I Topics.” Each installment included a printed text and a file of related Matlab code or scripts (an M-file) that could be downloaded from a designated web site.
Each part contained an answer to often-asked questions in my classes. I did not, however, only offer an answer to the questions, but also a Matlab code that solves the problem. The article became a tremendous success and remained the most downloaded paper from the GPS Solutions site for more than a year.
Now, students love this sort of support. But I also received positive reactions from professionals who used the code in research papers, which saved them a lot of coding efforts.
The original Matlab code also turned out to be the most downloaded file from the Aalborg website. It resulted in numerous e-mails from interested readers asking for more files. These requests now answered by the creation of eight additional M-files. Some involve more complex problems and coding.
Since 2003, I have received a steady flow of additional questions from readers of Gilbert Strang’s and my book, Linear Algebra, Geodesy, and GPS.
Last summer I decided to create another set of common GPS problems/solutions and accompanying Matlab code — EASY Suite II. These will be presented in serial fashion, as one or more exercises in this and forthcoming issues of Inside GNSS.
Introducing the New Suite
EASY11, stereographic sky plot of satellite orbits and plot of time when satellites are above a given local horizon
The original suite was thought of as comprising the base for an elementary course in GPS while, as reflected in the subjects, the new suite is of a more optional, topical character.
In 2003 and later, many users encountered difficulty in finding the necessary files for running individual EASY-files. Therefore, I chose to copy all files needed into single directories accessible online, so that each directory becomes self-contained. The price we pay is multiple copies of basic M-files.
The complete set of Easy Suite II Matlab codes can be found in compressed (“zipped”) files at http://gps.aau.dk/~borre/easy2. Readers can find much of the theoretical background for the EASY scripts in Chapters 14 and 15 of Linear Algebra, Geodesy, and GPS (see Additional Resources for details). However, we have added some text that emphasizes certain issues that are central in the codes, but may be difficult to find in a textbook.
EASY11: GPS Sky Plots
EASY11 itself is based on an almanac downloaded most easily from the National Geodetic Survey (NGS) website <http://www.ngs.noaa.gov/CORS/Data.html>. The actual file name is brdc1550.08n.
The RINEX file has been reformatted into Matlab’s binary format for satellite ephemerides using the M-file rinexe. The user enters (φ,λ) for the position on the ground where the plot is to be used, and a value for the elevation mask to be set. Then the azimuth and elevation angles for all visible positions of the included satellites are computed and plotted as polar coordinates.
Next follows bookkeeping on how many and which satellites are visible during the day and the time periods when they can be seen.
The Matlab code is simple, the result is impressive, and useful. In early GPS days when the constellation was incomplete, such plots were especially valuable for planning purposes to be sure that enough satellites would be available for positioning.
Except in the most severe terrain and urban canyons, receivers can find plenty of GPS (and GLONASS) satellites around the clock, and this situation will become even more pronounced when Galileo satellites are launched.
EASY12: LAMDA Method
First we describe in a subsection the linear algebra involved. Next we add an M-script that elucidates how the method works on a simple case with three ambiguities.
Linear Algebra for LAMBDA
. . .
Minimizing a Quadratic Expression over Integer
. . .
A Numerical Example
. . .
In the next issue of this periodical, we will illustrate the concept of receiver autonomous integrity monitoring (RAIM), and horizontal and vertical protection levels as applied especially in aviation.
For the complete story, including figures, graphs, and images, please download the PDF of the article, above.
ManufacturersMatlab is a product of The MathWorks, Inc., Natick, Massachusetts, USA.
Copyright © 2016 Gibbons Media & Research LLC, all rights reserved.