I am in the GPS class at Cornell, and as an end-of-year project we had to do something new with GPS. My group and I chose to do something very cool, so I thought I'd share with you
Normally, a GPS receiver needs 4 or more satellites to find out where it is. There are several ways it does this. We know the satellite's position in space because it's on an orbit, so the first way uses the range to each satellite and does a 4-sphere intersection. You need 4 spheres because, in addition to the X,Y,Z coordinates of the receiver, you have to solve for the receiver's clock time. This is called the "pseudorange" method.
Another way to find out where you are is by knowing the Doppler shift of each satellite's transmitted signal. All GPS satellites transmit at a frequency of 10.23 MHz, so by measuring the received frequency and comparing to the transmitted frequency, you can tell how quickly the satellite is approaching you. The Doppler shift creates a unique cone symmetric about the satellite's direction of motion in space where the receiver could be positioned. By intersecting cones from 4 satellites, you can figure out where you are.
Now, I said that "normally" you need 4 satellites. We wanted to see if we could create a solution with fewer. After a lot of math, we found that combining the two methods allowed us to find a receiver location accurate to within 200 m with only two satellites, and to within 10m with only three! For comparison, the standard 4-satellite method is accurate to about 50m depending on what satellite configuration you pick. To our knowledge, this has never been achieved before.
What's even better is that the more satellites you have, the more exact a solution you get. Comparing our solution with that of the actual commercial GPS receiver (which uses the pseudorange method) for the same 8 satellites, ours is much more exact!
Engineering is fun