Okay, my explanation may not be a definitive one - The "GNSS" navigation satellite systems , all of them, use time measurement and then trigonometry to calculate the distance between the receiver, whether its moving or stationary, and the satellites, which are always moving (very fast) Both the transmitters on the satellites and the receiver on the ground need antennas, which are basically a conductive surface of an appropriate shape that has electrical currents induced in it by the radio waves which are electromagnetic. These antennas are being asked to both radiate or receive the signals and maintain their phase relationship, which is technically difficult to do right. That has always been daunting. Antennas are improving, but slowly. Meanwhile, the receivers have been getting better and cheaper very quickly.
The GPS application is a very unusual, demanding one of an antenna, as they go, for several reasons. The number one reason is of course the fact that, assuming you are standing in the midst of a desert with no obstacles to block your view of the entire sky, the GPS antenna should be able to receive signals from satellites from the whole sky, to within a few degrees of the horizon. That is literally half of the sphere - a lot. And then we also ask it to use the polarization of the signals to reject signals on the same frequncies, from the same transmitters, if those signals have bounced off of something on the way.
Thats the polarization issue, namely GPS signals, like most space to earth communications, is conducted using circular polarization. Circular polarization, in this case, right handed circular polarization is what happens when the current in the wave described by the signal is delayed 90 degrees in one axis, making it receivable by the receiver with no fading nomatter what "attitude" the receiving antenna and satellite antenna are in relation to one another. (If thats confusing, you are not alone. This is confusing for a lot of people when they first encounter it.)
Most land based communications uses linear polarization, which is what you get when you use dipole (straignt wire) antennas.. TV and FM signals were historically horizontally polarized, and mobile to base station communications used vertical whips. You can see that in their antennas. On the other hand, the first circularly polarized antennas for space communications were helical. They looked like a spring with a reflector on the back, and they received the signal by pointing the end of the spring into space..
But a helical antenna is not so good because of its directivity. Most GPS receivers now use something called a patch antenna. A patch antenna looks like a small square and its made of a high dilectric material that has a feed connected in the middle, that is slightly assymetrical, and it does a passable job of receiving these circularly polarized radio waves.
Then we come to the third requirement.. For the measurement between the many satellite transmitters and the receiver to be accurately used for measuring the distance between them, the antenna ideally should have a "phase center variation" that is small and easily charaterized mathematically. The best way to do that is the core of this engineering challenge, what makes this situation kind of interesting on many levels.
for example...
http://www.ngs.noaa.gov/ANTCAL/
There are a number of papers that explain how RTKlib works at its author's site.. but you have to poke around a bit.
This is a good overview in English.
http://www.gnss-pnt.org/pdf/GPS_RTKLIB_Seminar_2.pdf
Most, but not all of these are in Japanese.
http://gpspp.sakura.ne.jp/indexe.html
They translate passably well using Babelfish.. and they are still worth reading.. Much better than my sketchy explanation..
Why does the antenna end up being the difficult part?
The first, most basic thing is impedence matching so that the feedline does not act as an antenna..the US GPS system for consumers is at 1575 MHz, a very high frequency, and at that frequency, coaxial cable has a lot of loss. So the shorter the better. It also should be "fed" (the cable between the antenna and the receiver) in such a way that no signal is received from signals that impinge upon the feed line, just the antenna. The easiest way to do that is not to have much of a feedline, to make it very short.
Most people think of GPS accuracy as being what we normally encounter with consumer GPS, which is sometimes pretty good, sometimes not, even when you are out in the clear. High grade geodetic grade receivers, use DGPS and WAAS technologies.
Basically what these new chips let you do is the same things that the geodetic receivers do. And now, their accuracy can be as good, but to do it, they need a passably good antenna. It doesn't need to necessarily be expensive, but it has to be "accurate" in that it receives satellites from the whole sky, does not delay the signals from some areas relative to the signals from other areas too much. A marginal antenna does not allow even a good receiver to discern the correct fix from the junk. Everything jumps around too much.
It should also reject left hand polarized signals (which are reversed in polarization because they are bouncing off things.) relative to right hand signals..
You also need either two receivers, or access to correction signals.. you need access to another station's signals, and you need to know that station's precise location. Basically, the fixes jump around, and some of the calculations are wrong or ambiguous, and your software has to know what to do with the data it gets to make it accurate. With another station - a stationary, absolutely stationary receiver (except for post glaciation rebound and continental drift) of known location, you then can see the position fixes that are being derived so you then can make some assumptions. When your receiver is receiving the exact same satellite at the same time as the other, at a distance thats not too far from the known location station, the errors will be similar enough to use the difference. Your rtklib software can apply the difference between the fix and the right position from the other station to your own calculated fix.. correcting it.
People are now building low cost GPS "rovers" and base stations and getting accuracy comparable to the surveying setups, for a tiny fraction of the cost.
Here's what it looks like working..(with a good antenna)
http://rtklib.com/rtklib_tutorial.htm
A few of the newer chipsets like the ublox and skytraq chips that support this raw data output mode, can also sample at faster rates. (Skyraq can do 20 Hz.. thats a lot of data)
Bike riders are one of the groups who can actually make good use of all that data.
Some recent Sirf IV chips may also support raw data.. but as far as I know, RTKlib doesn't have built in support for them yet.