ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Google+ ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1918 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Fundamentals of Global Positioning System Receivers: A Software Approach
James Bao-Yen Tsui
Colin Paul Gloster
Appeared in:

This is a fairly small and accessible book on the techniques necessary for making your own civilian GPS receiver. MATLAB is the language used and though the principles are transferable, the presented source code would not be efficient enough to use in an embedded product. The book's code could probably be used for verifying your own implementation, though I have not checked whether the book's code really works. The emphasis in the book is on explanations which are easy to understand in preference to optimal algorithms.

Overall, the book's aims seem to have been achieved, though most of the equations contain one- or two-letter variable names (many of which are from ancient Greek) and the naming policy for the MATLAB code is not much better. For example, one variable is called rao which is described in a comment as "the pseudo-range" but the Greek letter rho is used for this in the body of the book. Perhaps rao is a synonym for rho but I have not found it in other books, and anyway, pseudorange would had been a better variable name. Another variable is named erro and I do not know what benefit the author perceived he was gaining by not typing error instead. On Page 30 a clue is given as to why inappropriate names were used... an upside-down question mark appears where a less than sign was supposed to be (as this is the absurd default treatment by LaTeX of the < character).

Section 2.14 is dominated by a discussion of how to obtain optimum precision from an unpopular less precise technique and does not give the impression that it is computationally easier. As mentioned above, I have not scrutinized the programs. Nor have I scrutinized the calculations. I did notice that it was incorrectly claimed on Page 51 that 2 divided by 0.683 is approximately 29.28 whereas 2 divided by 0.0684 equals approximately 29.23 is closer to the truth. Somehow, the order of magnitude difference between 0.683 and 0.0684 did not propagate through to the final answer. A similar intermediary mistake leaving the final answer unaffected is on Page 34. Table 3.1 contains mistakes but the associated text and numbers in the main body of the chapter are fine. On Page 34, something which could pedantically be classified as a mistake is a measurement of a solid angle (a three dimensional counterpart to an angle) in degrees instead of steradians (as a steradian is a unit of solid angle instead of angle, it is different from a radian). It is fairly clear though: it is like saying that the distance between two towns is one hour.

The bulk of this review comprises of criticisms partially because I was showing off. The book is intended to be a practical introduction to the principles underlying GPS receivers and this is accomplished. So the practical necessity of converting GPS coordinates to layman's geographic coordinates is mentioned but a map of commercial value is something which you would need to acquire or make yourself. Other things are treated adequately but briefly, for example fewer than three pages are given over to distortions caused by the ionosphere. The ionospheric part of the book is just for the typical exploitation of GPS as a positioning system instead of its alternative use as an instrument to measure slant total electron contents through the ionosphere.