A homemade receiver for GPS & GLONASS satellites

Matjaz Vidmar, S53MV (ex YU3UMV, YT3MV)

1. Introduction to GPS & GLONASS

Radio amateurs have always been interested in space technology, since the latter strongly depends on reliable radio communications. Of course radio amateurs are not only interested in amateur-radio satellites: almost any artificial Earth's satellite represents a challenge, either to receive its weak signal on rather high frequencies or to demodulate, decode and use the data it is transmitting.

Besides amateur-radio satellites, the most interesting satellites for radio amateurs are weather (imaging) satellites: radio amateurs have successfully built weather-satellite image reception equipment for all known weather satellites and all known image transmission standards. Radio-amateurs also pioneered satellite TV reception using small antennas much earlier than this became a mass-produced consumer product.

Although the first navigation satellites were launched more than 30 years ago, satellite navigation and positioning has only become popular in the last few years with the introduction of reliable, accurate and easy-to-use systems like the american Global Positioning System (GPS) and the russian GLObal NAvigation Satellite System (GLONASS). Both are intended to replace a variety of ground-based radio-navigation aids and as a side product, to provide any suitably equipped user with very accurate time (100ns) and very accurate frequency (10^-12).

Although both GPS and GLONASS are primarily intended for military users, there are already more civilian users of these systems. GPS (and soon combined GPS/GLONASS) navigation receivers can be made small, light-weight, easy-to-operate and inexpensive like VHF FM "handy-talkie" transceivers. Since these receivers can measure their tri-dimensional position with an accuracy of around 50m anywhere on the Earth's surface, their user community ranges from pleasure-aircraft pilots to truck drivers and mountain climbers and, why not, radio amateurs!

Besides the challenge to build a satellite receiver radio amateurs can use GPS and GLONASS signals in other ways as well. The most immediate application of a GPS or GLONASS receiver is certainly as a highly accurate frequency source. Accurate timing and synchronization may be required for advanced communication techniques like coherent communications or to seriously investigate the propagation path and the propagation mechanism of radio waves. Finally, positioning and direction-finding may be useful for high-gain microwave antenna pointing.

In this article I am first going to describe the satellites and the radio signals they are broadcasting. Further I am going to describe the principles of operation of a GPS or GLONASS receiver. Finally I am going to describe the practical construction of homemade GPS and GLONASS receivers, together with their operating software. These receivers can be built in two different forms: as stand alone, portable receivers with a small keyboard and a LCD display, or as peripherals with their own plug-in modules for the "DSP computer" described in [1] and [2].

2. GPS & GLONASS system description

2.1. Radio-navigation principles

Radio navigation evolved together with other applications of radio waves. The operation of all radio-navigation systems is based on the assumption that the propagation mechanism of radio waves is well known and that the propagation speed of radio waves is usually very close to the speed of light in free space. Further, systems using radio waves usually have a sufficient range to be practically usable for position, velocity and attitude determination of a remotely-located user. Finally, all of the measurements on radio waves, like direction finding, time-delay measurements, phase measurements or Doppler-shift measurements, can be performed with simple and inexpensive technical means at least on the user side.

Early radio-navigation systems used the directional properties of the receiving antenna, transmitting antenna or both. In these systems the main sources of measurement errors are the inaccuracies of the antenna pattern(s). Since the measured quantity is an angle, the position error grows linearly with increasing the distance between the remote user at an unknown location and the navigation equipment at known location(s). Such systems are therefore severely limited in either the range or the accuracy and are only efficient to bring a user to a single point, like bringing an aircraft to the beginning of a landing runway using the Instrumented Landing System (ILS).

Time or frequency are certainly the physical quantities that can be measured most accurately. If the propagation speed and propagation mode of radio waves are known, one can easily compute the distance from a time-delay measurement. Further, the absolute accuracy of such distance measurements does not depend on the order of magnitude of the distances involved, except for the uncertainties in the propagation speed of the radio waves used. Therefore, all long-distance, precision radio-navigation systems are based on time-delay (or signal phase difference) measurements and/or the time derivatives of these quantities, usually observed as the Doppler frequency shift.

The easiest way to measure the distance to a known site is to install a radio repeater there, transmit a signal, receive the answer from the repeater and measure the round-trip time. Although such radio-navigation systems were practically implemented (like DME for civilian aircrafts), they have some limitations due to the fact that the user needs both to transmit and to receive radio signals. Such a system can not accomodate an unlimited number of users since only one user can use the radio repeater at a time and each measurement takes some time. Some military users may also not want to transmit any radio signals to avoid disclosing their position to the enemy while civilian users do not want the requirement of having their navigation equipment licensed.

The transmit requirement for the user can be dropped if the user can achieve and maintain synchronization with the navigation transmitters in a different way. For example, both the user and the navigation transmitters may be equipped with high-accuracy time/frequency sources like atomic clocks. The user then synchronizes his clock at a known location and the same clock is then used at an unknown location for time-delay measurements.

Since atomic clocks are expensive, bulky and power-hungry devices, a more simple alternative is desired for navigation systems serving a large number of passive, receive-only users. Such a system must have a number of synchronized transmitters as shown on Fig.01. Since the user does not know the accurate time, he can not measure the time delays and the distances d1, d2, d3... to the transmitters TX1, TX2, TX3... directly.


The user can only measure the differences in the times-of-arrival of different TX signals. Time differences correspond to distance differences. The set of points corresponding to a given distance difference from two given points is a hyperbola (in two dimensions) or a rotational hyperboloid (in three dimensions). The two transmitters are located in the focal points of the hyperbola (rotational hyperboloid).

For two-dimensional navigation (positioning) signals from at least three synchronized transmitters need to be received. For example, from the measured time difference between TX1 and TX2 the user can plot the hyperbola d1-d2=const.12 on his map. Similarly, from the measured time difference between TX2 and TX3 the user can plot the hyperbola d2-d3=const.23 on his map. The two hyperbolas intersect in a point corresponding to the unknown user location!

For three-dimensional navigation signals from at least four synchronized transmitters need to be received. The three independent time differences generate three different rotational hyperboloids. Rotational hyperboloids are curved surfaces. Two of them intersect in a curved line which in turn intersects with the third hyperboloid in a point corresponding to the unknown three-dimensional user position.

If there are more transmitters available, the user can select the best set of three (four) that provide two hyperbolas (three rotational hyperboloids) intersecting as close as possible under a right angle(s). The remaining transmitters can then be used to check for errors and/or ambiguous solutions, since with curved lines and surfaces there can be more than one intersection point.

Hyperbolic navigation systems were first implemented as ground-based navigation systems operating in the medium and long-wave radio frequency spectrum like LORAN, DECCA or OMEGA. Since the transmitters are located on the Earth's surface, the geometry of the problem does not allow a three-dimensional navigation. These systems only measure the longitude and latitude reliably. To measure the altitude, one of the transmitters should be located above or below the user's receiver or at least out of the user's horizon plane.

Ground-based radio-navigation systems use relatively low frequencies of the radio spectrum to achieve a large radio range and avoid undefined skywave (ionospheric) propagation at the same time. For example, OMEGA uses the frequency range between 10 and 14kHz to achieve world-wide coverage with just 8 (eight) transmitters!

Long-wave radio-navigation systems were designed when digital computers were not readily available yet: two-dimensional navigation with fixed transmitter sites only requires a minimum of computations to be performed by the user. The families of hyperbolas for each transmitter pair can be directly plotted on maps, including corrections for known propagation anomalies.

One of the first applications of artificial satellites was radio navigation. Obviously artificial satellites need radio navigation themselves, to evaluate the performance of the rocket carrier and determine the final satellite's orbit. On the other hand, the space environment is an ideal place for navigation transmitters, since a large radio range can be achieved at VHF and higher frequencies where the propagation of radio waves is predictable and the influence of the always-changing ionosphere is marginal. Finally, the location of navigation transmitters in space can be chosen so that three-dimensional navigation is possible everywhere on the Earth's surface.

Since initially the satellites could only be launched in low-earth orbits, the first navigation satellites were launched in low, 1000km altitude, polar orbits, like the American TRANSIT satellites or the soviet equivalent TSIKADA. Since a satellite in a low-Earth orbit is quickly moving along its orbital track, a single satellite may be used for position determination. While even a simple crystal-controlled user's clock is sufficiently accurate for a few minutes, the satellite significantly changes its position on the sky and this is roughly equivalent to several navigation transmitters at several different sites along the orbital track.

In practice the user simply measures the Doppler shift on the satellite's signal for a certain period of time and computes his unknown position from the result of this measurement and the satellite's orbital data. Although a single satellite is required for position determination, these systems usually have from six (TRANSIT) up to twelve satellites to improve the coverage, since a low-Earth orbit satellite is only visible for a limited amount of time for a user located on the Earth's surface. Since the ionosphere still has some effect on VHF and UHF radio waves, both American and Soviet satellites transmit on two frequencies around 150MHz and around 400MHz. The actual channel frequencies are kept in the precise ratio 3/8 and the transmitters are kept coherent to allow for ionospheric corrections.

The drawbacks of low-Earth orbit navigation satellites are that the user may have to wait for a satellite pass and even then the measurement takes several minutes. Finally, the user velocity, both magnitude and direction, must be known and compensated-for in the position computation. To allow an almost instantaneous position determination more satellites are required. If a user has at least four visible satellites in different parts of the sky, he can compute his three-dimensional position instantaneously, without having to wait for the satellites to move across the sky.

In order to limit the number of satellites required, these have to be launched to higher orbits. Such satellite navigation systems are the American GPS and the soviet GLONASS that should achieve world-wide coverage with 24 satellites each when completed. Both systems should provide at least four visible satellites in any part of the world including in-orbit spares and a suitable distribution of the visible satellites on the sky to allow a three-dimensional navigation.

Finally, one should notice that satellite navigation systems require a large amount of computations to be performed by the user. The satellites continuously change their positions, so no hyperbolas could be plotted on maps. Three-dimensional navigation is even more demanding, so that a digital computer is absolutely necessary. Maybe this explains why satellite positioning only became popular a few years ago: although navigation satellites were available for more than 30 years, inexpensive computers were not!

2.2. Satellite navigation equations

In order to understand satellite navigation systems one should first look in the mathematical background of satellite navigation. To perform any practical computations one should define a coordinate system first. Most satellite navigation systems use a right-hand Cartesian coordinate system like the one shown on Fig.02. The coordinate system is body-fixed to the Earth and is therefore a rotating coordinate system, unlike the inertial coordinate system used for Keplerian orbital elements for most satellites.


Usually, the origin of the coordinate system is the Earth's center of mass. The Z-axis of the coordinate system corresponds to the Earth's rotation axis and the Z-axis is pointing north. The X-axis and Y-axis are in the equatorial plane and the X-axis points in the direction of the Greenwich meridian while the Y-axis is oriented so that a right-hand orthogonal coordinate system is obtained.

However, if the user prefers a more conventional coordinate system, like longitude, latitude and altitude above sea level (altitude above the surface of an ellipsoid), he can always perform the required transformations. These transformations are always performed on the final result, since most of the internal computations of a navigation receiver are most easily performed in a Cartesian coordinate system.

Finally, one should understand that there are several different coordinate systems in use although the basic definition is the same for all of them. Satellite navigation systems improved the absolute positioning accuracy down to the 1m (one meter) level, so the differences between several local geographic coordinate systems have become noticeable. For example, GPS is using the WGS-84 coordinate system while GLONASS is using the SGS-85 coordinate system. The difference between these two systems is around 10m in the east-west direction and around 10m in the up-down direction at the author's location in central Europe.

Using vector notation one can write down the navigation equations in an orderly way. In a three-dimensional Cartesian coordinate system it is easy to understand that a single vector includes three independent quantities.

A time-difference navigation equation only includes the range vectors representing the positions of the transmitters (satellites) and of the receiver (user). Distances between the user and the satellites are computed as magnitudes (absolute values) of range vector differences. On the other side of the equation we find the measured time difference multiplied by the propagation velocity of radio waves (c).

If the user location - user range vector - is unknown, this represents three scalar unknowns that require three independent time-difference (scalar!) equations for the solution. To obtain three independent equations at least four transmitters are required. The solution of these equations is not straightforward since the absolute value of a vector is a non-linear function: it contains squaring and square-root operations. The navigation equations are therefore usually solved in a numerical iterative procedure, although an analytical solution exists [3].

A Doppler-shift-difference navigation equation includes both range vectors and velocity vectors since to compute the Doppler frequency shift one has to obtain the velocity difference first and then compute the projection of the velocity difference vector on the direction of propagation of radio waves. Vector projections are computed using the scalar (dot) product between two vectors. On the other side of the equation we find the measured Doppler-shift difference in relative units, the absolute difference being divided by the nominal carrier frequency (f0). The relative frequency difference is then converted to velocity units by multiplying it by the propagation velocity of radio waves (c).

The Doppler-difference navigation equations include the user position vector and the user velocity vector and these can be both unknown representing up to six scalar unknowns. Since one usually does not have available six independent Doppler-difference equations, these are usually used in the following ways:

(1) If the user position is already available from
    time-difference equations, the user velocity vector
    can be computed from three independent Doppler-difference
(2) If the user velocity vector is known or the user velocity
    is zero (stationary user), then the user position can be
    computed from three independent Doppler-difference
(3) Various combinations of time-difference and
    Doppler-difference equations are also possible.

Besides the visibility problem, the navigation equations put some additional constraints and desirable features for navigation satellite orbits. The final accuracy of the navigation solution, position or velocity, depends on the conditioning of the system of equations. An ill-conditioned system of equations will amplify any measurement errors in the final result. A geometrical equivalent of an ill-conditioned system of equations is when lines or surfaces (rotational hyperboloids) intersect at very low angles.

The accuracy degradation due to poor conditioning of the system of equations is usually called Geometrical Dilution Of Precision (GDOP). Of course the satellite orbits have to be chosen to provide the lowest possible GDOP to the widest user community: since the equations are non-linear, GDOP changes with the user position. The users themselves have to chose the best set of four satellites to get the lowest GDOP, since more satellites may be visible, even at high elevations, but providing a large GDOP.

The most obvious cause of a large GDOP with a system of time-difference equations is when two satellites are close together on the sky. A more general case is when all four satellites are almost in a single plane. For the same reason the geostationary orbit is not very suitable for navigation satellites. The geostationary orbit has yet another disadvantage for navigation satellites: the relative velocity of the satellite is very low for Earth-located users and the Doppler-difference equations themselves (not the system!) are ill-conditioned, since the unknown user position vector is multiplied by very small numbers.

2.3. GPS & GLONASS satellite systems

GPS and GLONASS are the first satellite systems that require the simultaneous operation of a number of satellites. In other satellite systems, including earlier navigation systems, the operation of every single satellite was almost autonomous and any additional satellites only improved the capacity of the system. In GPS or GLONASS the satellites need to be synchronized and can only perform as a constellation of at least four visible satellites for every possible user location without forgetting the GDOP requirement!

Both GPS and GLONASS satellites are launched into similar orbits. A comparison among GPS, GLONASS and more popular satellite orbits like the geostationary orbit or the retrograde sun-synchronous Low-Earth Orbit (LEO) is made on the scale drawing on Fig.03. Both GPS and GLONASS satellites are launched into circular orbits with the inclination ranging between 55 and 65 degrees and the orbital period in the order of 12 hours, which corresponds to an altitude of around 20000km (one and a half Earth diameters).


The GPS system was initially planned to use three different orbital planes with an inclination of 63 degrees and the ascending nodes equally spaced at 120 degrees around the equator. Each orbital plane would accomodate 8 equally spaced satellites with an orbital period of 11 hours and 58 minutes, synchronized with the Earth's rotation rate [4]. During a 10-year test period from 1978 to 1988 only 10 such "Block I" satellites were successfully launched in orbital planes "A" and "C" as shown on Fig.04.


The GPS specification was changed afterwards [5] and the new "Block II" satellites are being launched in 55-degrees inclination orbits in six different orbital planes A, B, C, D E and F, with the ascending nodes equally spaced at 60 degrees around the equator. The new GPS constellation should also include 24 satellites, having four satellites in each orbital plane, including active in-orbit spares. The orbital period of the GPS satellites should be increased to 12 hours to avoid repeat-track orbits and resonances with the Earth's gravity field.

Finally, the new "Block II" satellites also include a nasty feature called "Selective Availability" (SA): the on-board hardware may, on ground command, intentionally degrade the accuracy of the navigation signals for civilian users while military users still have access to the full system accuracy. Beginning in 1988 and up to March 1993, 9 GPS "Block II" and 10 new GPS "Block IIA" satellites have been launched using "Delta" rockets. The SA-mode is currently turned on and degrades the accuracy to between 50 and 100m.

The GLONASS system is planned to use three different orbital planes with an inclination of 64.8 degrees and the ascending nodes equally spaced at 120 degrees around the equator. Each orbital plane would accomodate 8 (or 12) equally spaced satellites with an orbital period of 11 hours, 15 minutes and 44 seconds, so that each satellite repeats its ground track after exactly 17 revolutions or 8 days [6].

Since the beginning of the GLONASS program a large number of satellites have been launched into GLONASS orbital planes 1 and 3, the orbital plane 2 has not been used yet. Some satellites never transmitted any radio signals, since the GLONASS system also includes passive "Etalon" satellites used as optical reflectors for accurate orbit determination. GLONASS satellites are launched three at a time with a single "Proton" rocket. Due to this constraint all three satellites can only be launched in the same orbital plane.

Recently observed GLONASS satellite operation is shown on Fig.05. The observed lifetime of GLONASS satellites seems to be shorter than that of American GPS counterparts. A critical piece of on-board equipment are the atomic clocks required for system synchronization. Although each satellite carries redundant rubidium and cesium clocks, these caused the failure of many GPS and GLONASS satellites. In addition to this, GLONASS satellites have had problems with the on-board computer. Unfortunately, the GPS or GLONASS orbit altitude is actually in the worst ionizing-radiation zone, the same radiation that already destroyed the AMSAT-OSCAR-10 computer memory.


2.4. GPS & GLONASS satellite on-board equipment

Since the two systems are similar, GPS and GLONASS satellites carry almost the same on-board equipment as shown on Fig.06. For the navigation function alone, the satellites could be much simpler, carrying a simple linear transponder like on civilian communications satellites. The required navigation signals could be generated and synchronized by a network of ground stations.


However, both GPS and GLONASS are primarily intended as military systems. Uplinks are undesired since they can be easily jammed and a network of ground stations can be easily destroyed. Therefore, both GPS and GLONASS satellites are designed for completely autonomous operation and generation of the required signals. Synchronization is maintained by on-board atomic clocks that are only periodically updated by the ground stations.

Both GPS and GLONASS satellites carry a cesium atomic clock as their primary time/frequency standard, with the accuracy ranging between 10^-12 and 10^-13. Much smaller and lightweight rubidium atomic clocks are used as a backup in the case the main time/frequency standard fails, although rubidium atomic clocks are an order of magnitude less accurate. Due to the stable space environment these atomic clocks usually perform better than their ground-based counterparts and any long-term drifts or offsets can be easily compensated by uploading the required correction coefficients in the on-board computer.

The output of the atomic time/frequency standard drives a frequency synthesizer so that all the carrier frequencies and modulation rates are derived coherently from the same reference frequency.

The on-board computer generates the so-called navigation data. These include information about the exact location of the satellite, also called precision ephemeris, information about the offset and drift of the on-board atomic clock and information about other satellites in the system, also called almanac. The first two are used directly by the user's computer to assemble the navigation equations. The almanac data can be used to predict visible satellites and avoid attempting to use dead, malfunctioning or inexistent satellites, thus speeding-up the acquisition of four valid satellite signals with a reasonable GDOP.

Besides the transmitters for broadcasting navigation signals, GPS and GLONASS satellites also have telecommand and telemetry radio links. In particular, the telecommand link is used by the command stations to regularly upload fresh navigation data into the on-board computer. Usually this is done once per day, although the on-board computer memory can store enough data for several weeks in advance. In addition to dedicated telemetry links, part of the telemetry data is also inserted in the navigation data stream.

2.5. GPS & GLONASS satellite transmissions

GPS and GLONASS satellites use the microwave L-band to broadcast three separate radio-navigation signals on two separate RF channels usually called L1 (around 1.6GHz) and L2 (around 1.2GHz). These frequencies were chosen as a compromise between the required satellite transmitter power and ionospheric errors. The influence of the ionosphere decreases with the square of the carrier frequency and is very small above 1GHz. However, in a precision navigation system it still induces a position error of about 50m at the L1 frequency during daylight and medium solar activity.

On the other hand, GPS and GLONASS were designed to work with omnidirectional, hemispherical-coverage receiving antennas. The capture area of an antenna with a defined radiation pattern decreases with the square of the operating frequency, so the power of the on-board transmitter has to be increased by the same amount.

Both GPS and GLONASS broadcast two different signals: a Coarse/Acquisition (C/A) signal and Precision (P) signal. The C/A-signal is only transmitted on the higher frequency (L1) while the P-signal is transmitted on two widely-separated RF channels (L1 and L2). Since the frequency dependence of ionospheric errors is known, the absolute error on each carrier frequency can be computed from the measured difference between the two P-transmissions on L1 and L2 carriers.

The L1 C/A- and P-carriers are in quadrature to enable a single power amplifier to be used for both signals, as shown on Fig.06. The L1 and L2 transmitter outputs are combined in a passive network and feed an array of helix antennas. These produce a shaped beam covering the whole visible hemisphere from the GPS/GLONASS orbit with the same signal strength.

All three GPS or GLONASS transmissions are continuous, straightforward BPSK modulated carriers. Pulse modulation is not used. The timing information is transmitted in the modulation: the user's receiver measures the time of arrival of a defined bit pattern, which is a known code. If desired, the modulation code phase can be related to the carrier phase in the receiver to produce even more accurate measurements, since both the carrier frequency and the code rate are derived coherently from the same reference frequency on-board the satellite.

The GPS C/A-code is 1023 bits long and is transmitted at 1.023Mbps. The C/A-code repetition period is therefore 1 ms. The GLONASS C/A-code is 511 bits long and is transmitted at 511kbps, so it has the same repetition period as the GPS C/A-code. The P-code is transmitted at 10 times the speed of the C/A-code: 10.23Mbps for GPS and 5.11Mbps for GLONASS. The transmitter power level for the P-code on L1 is 3dB below the L1 C/A-code and the P-code on L2 is 6dB below the L1 C/A-code. The P-code repetition period is very long, making an autonomous search for synchronization unpractical. All P-code receivers first acquire lock on the C/A-transmission, which also carries information that allows a quick P-code lock.

Both C/A- and P-codes are generated by digital shift-registers with the feedback selected to obtain pseudo-random codes. The navigation data is modulo-2 added to the pseudo-random codes. Since the navigation-data rate is very low, only 50bps, it does not affect significantly the randomness properties of the codes used. The navigation data at 50bps is synchronized to the C/A-code period to resolve the timing ambiguity caused by the relatively short 1 ms C/A-code repetition period.

GPS "Block II" satellites may encrypt the published P-code into the secret Y-code. This process is called "Anti-Spoofing" (AS). Its purpose is to prevent an enemy from jamming the GPS with false GPS-like signals. Details of the GLONASS P-code are not published. In fact, the GLONASS P-code is even not mentioned in [6], although these transmissions can be easily observed on a spectrum analyzer.

The GPS and GLONASS RF channel carrier frequencies are shown on Fig.07. All GPS satellites transmit on the same L1 and L2 carrier frequencies: 1575.42MHz and 1227.6MHz, which are held in the exact ratio 77/60 and are integer multiples of the fundamental GPS clock frequency of 10.23Mhz.


Every GPS satellite transmits its own set of C/A- and P-codes that have good cross-correlation properties with the codes used by other GPS satellites. Since a GPS receiving antenna is omnidirectional and receives many satellites at the same time, the receiver is using Code-Division Multiple Access (CDMA) techniques to separate signals coming from different satellites. GPS satellites are therefore identified by the Pseudo-Random-Noise code number (PRN#).

The GLONASS satellites use 25 different RF channels. Channel 0 is reserved for testing spare satellites while channels 1 to 24 are dedicated to operational GLONASS satellites. All GLONASS satellites transmit the same C/A-code and are usually identified by the CHannel Number (CHN#). The L1 and L2 carrier frequencies are in the exact ratio 9/7 and the channel spacing is 562.5kHz at L1 and 437.5kHz at L2.

Although there exist civilian P-code receivers, the majority of civilian GPS or GLONASS receivers are C/A-only receivers. Since the advantages of using the P-code are limited, especially with SA, AS or both active, only the C/A-code transmission will be discussed in detail here.

2.6. GPS C/A-transmission format

GPS satellites use code-division multiplexing on both C/A- and P-transmissions. Since C/A-codes are relatively short sequences (only 1023 bits), the codes have to be carefully selected for good cross-correlation properties. GPS C/A-codes are Gold codes (named after their inventor Robert Gold) that can be generated as a modulo-2 sum of two maximum-length shift-register sequences.

The GPS C/A-code generator is shown on Fig.08. It includes two 10-bit shift registers G1 and G2, both clocked at 1.023MHz, each with a separate feedback network made of exclusive-or gates. Both feedback networks are selected so that both generated sequences have the maximal length of 1023 bits. Both shift registers are started in the "all-ones" state and since both sequences have the same length, the shift registers maintain the synchronization throughout the operation of the circuit.


Gold codes are obtained by a modulo-2 sum (another exclusive-or operation) of the outputs of the two shift registers G1 and G2. Different codes can be obtained by changing the relative phase of the two shift registers. Instead of resynchronizing the shift registers it is easier to delay the output of one of them (G2). This variable delay is achieved with yet another modulo-2 sum (exclusive-or) of two G2 register taps. Exclusive-or feedback shift-regiter sequences have the property that a modulo-2 addition of a sequence with its delayed replica produces the same sequence, but delayed by a different number of clocks.

Choosing two G2 register taps, 45 different delays can be generated yielding 45 different Gold codes with good auto-correlation and cross-correlation properties. Out of these 45 possible codes, 32 are allocated to GPS satellites as shown on Fig.09. The cross-correlation properties of GPS C/A-codes guarantee a crosstalk smaller than -21.6dB between the desired and undesired satellite signals.


The 50bps navigation data stream is synchronized with the C/A-code generator so that bit transitions coincide with the "all-ones" state of both shift registers G1 and G2. At 50bps one data bit corresponds to 20 C/A-code periods.

The navigation data is formatted into words, subframes and frames. Words are 30 bits long including 24 data bits and 6 parity bits computed over the 24 data bits and the last two bits of the previous word. Parity bits are used to check the received data for errors and to resolve the polarity ambiguity of the BPSK demodulator. 10 words (300 bits) form a subframe which always includes a subframe sync pattern "10001011" and a time code called "Time-Of-Week" (TOW). One subframe is transmitted every 6 seconds.

Five subframes form one frame (1500 bits) that contains all of the information required to use the navigation signals. One frame is transmitted every 30 seconds. The first subframe in the frame contains the on-board clock data: offset, drift etc. The second and third subframes contain the precision ephemeris data in the form of Keplerian elements with several correction coefficients to accurately describe the satellite's orbit. Finally, the fourth and fifth subframes contain almanac data that is not required immediately and are sub-commutated in 25 consecutive frames, so that the whole almanac is transmitted in 12.5 minutes.

The allocation of the single data words is completely described in [5]. Most numerical parameters are 8-, 16-, 24- or 32-bit integers, either unsigned or signed in the two's complement format. Angular values that can range from 0 to 360 degrees are usually expressed in semi-circles to make better use of the available bits.

GPS is also using its own time scale. The units are seconds and weeks. One week has 604800 seconds and the week count is incremented between Saturday and Sunday. GPS time starts on the midnight of January 5/6, 1980. GPS time is a continuous time and therefore it differs by an integer number of leap seconds from UTC. The difference between UTC and GPS time is included in the almanac message.

2.7. GLONASS C/A-transmission format

GLONASS satellites use the more conventional frequency-division multiplexing at least for the C/A-code transmissions. All GLONASS satellites use the same C/A-code, generated by a 9-bit shift register G as shown on Fig.10. The GLONASS C/A-code is a maximum-length sequence and thus has an ideal auto-correlation function.


Frequency-division multiplexing allows a better channel separation than code-division multiplexing. The separation between two adjacent GLONASS channels should be better than -48dB. A large channel separation is useful when the signal from one satellite is much weaker because of reflected waves and/or holes in the receiving antenna radiation pattern. On the other hand, the GLONASS satellites require a wider RF spectrum and a GLONASS C/A-receiver is necessarily more complex than a GPS C/A-receiver.

The GLONASS navigation data stream is synchronized with the C/A-code generator so that level transitions coincide with the "all-ones" state of the shift register. The navigation data stream is formatted into lines of the duration of 2 seconds. Each line contains 85 information bits, transmitted at 50bps for 1.7 seconds and a "time mark" sync pattern "111110001101110101000010010110", which is a pseudo-random sequence of 30 bits transmitted at 100bps for the remaining 0.3 seconds.

The 85 information data bits always start with a leading "0", followed by 76 bits containing navigation information and 8 parity-checking bits, computed according to the (85, 77) Hamming code. After computing the parity bits, all of the 85 bits are differentially encoded to resolve the phase ambiguity in the receiver. Finally, the 85 differentially- -encoded bits are manchester encoded, so that a "10" pattern corresponds to a logical "one" and a "01" pattern corresponds to a logical "zero". The additional transition in the middle of the data bits introduced by the manchester encoding speeds-up the synchronization of the receiver.

15 navigation data lines form one frame of the duration of 30 seconds. The allocation of the single data bits in the frame is completely described in [6]. The first four lines of a frame contain the time code, on-board clock offset and drift and precision ephemeris data of the satellite orbit in the form of a state vector (position vector and velocity vector). To simplify the computations in the user's receiver, the corrections for the Sun- and Moon-gravity forces are also supplied.

The almanac data is transmitted in the remaining 11 lines of the frame. Almanac satellite ephemeris is in the form of Keplerian elements and is transmitted in two consecutive lines in a frame. The whole almanac is transmitted in five consecutive frames also called a superframe of the duration of 2.5 minutes. The various numerical parameters are transmitted as different size, either unsigned or signed integers. Signed integers are transmitted in the form of a sign bit followed by an unsigned integer representing the absolute value of the number (this is different from the two's complement notation!) Angular values are usually expressed in semi-circles.

The GLONASS time is kept synchronized to UTC. GLONASS uses more conventional time units like days, hours, minutes and seconds. The day count begins with a leap year (currently 1992) and counts up to 1461 days before returning back to zero.

3. GPS & GLONASS receiver theory of operation

3.1. GPS/GLONASS receiver operation principles

Since the signals transmitted by GPS and GLONASS satellites are similar, the receiver design for any of these systems follows the same guidelines. The principle block diagram of a GPS or GLONASS receiver is shown on Fig. 11. Only a single channel receiver is shown for simplicity. The problem of simultaneously receiving more than one signal (like the C/A-signal and both P-signals from four or more satellites) will be discussed later.


Since the user's position, velocity and attitude are unknown in a navigation problem, satellite navigation receivers generally use either one or more omnidirectional antennas. All satellite navigation signals are circularly polarized (usually RHCP) to allow the user's receiver to further attenuate any reflected waves, since circularly polarized waves change their sense of polarization on each reflection. Reflected waves are a major nuisance in precision navigation systems: they represent an unpredictable propagation anomaly which is a major source of measurement errors.

The radio signals collected by an omnidirectional receiving antenna are weak. A low-noise amplifier will prevent any further degradation of the signal-to-noise ratio, but it can not reduce the thermal noise collected by the antenna nor unwanted navigation satellite transmissions on the same frequency. GPS and GLONASS satellite signals are wideband, ranging from 1MHz (GLONASS C/A-code) to 20MHz (GPS P-code), and the satellite transmitter power is limited to around 25dBW EIRP (L1 C/A-code for both GPS and GLONASS) or even less than this (P-transmissions), making the signal usually weaker than the thermal noise collected by the antenna.

Although buried in thermal noise and interferences, these signals can still be used, since the given bandwidth and megabits-per-second rates apply to a known code and not to the information bandwidth, which is smaller than 1kHz for both timing and Doppler-shift measurements and the navigation data transmitted at 50bps. In other words, GPS and GLONASS signals are direct-sequence spread-spectrum signals, using Code-Division Multiple Access (CDMA) techniques [7].

A GPS or GLONASS receiver will first downconvert the signals to a suitable IF and amplify them before further processing. At this stage a wide IF filter, corresponding to the complete original signal bandwidth, can be used to improve the dynamic range of the receiver. The downconverter may be made tunable if widely separated channels are to be received, like the GLONASS C/A-transmissions.

The wideband IF signal is then multiplied by (mixed with) a locally-generated satellite signal replica, modulated by the same code. If the locally generated code is synchronized to the satellite transmission, the bandwidth of the desired mixing product will collapse down to almost zero, since two identical 0/180-degrees BPSK modulation processes exactly cancel each other. On the other hand, the bandwidth of all unwanted signals, like noise or interferences, will be further expanded by this operation to a double bandwidth.

Since the bandwidth of the desired signal collapses, this operation is usually called signal spectrum despreading. The desired signal can now be filtered-out with a narrow IF filter having a bandwidth ranging from 100Hz to 10kHz in a GPS or GLONASS receiver. After the narrow IF filter, the signal-to-noise ratio finally achieves usable values and typically reaches 20dB.

The filtered IF signal is then used for several purposes. First, it is used to acquire and maintain synchronization of the locally generated code. Dithering the locally-generated code back and forth by a fraction of the bit period generates an amplitude modulation on the filtered signal. The phase of this modulation contains the information required to keep the synchronization of the local code generator.

The filtered IF signal is also fed to a BPSK demodulator (usually a squaring PLL or a Costas PLL) to extract the 50bps navigation message data. The BPSK demodulator also provides a regenerated carrier that is used for Doppler-shift measurements. On the other hand, the code-timing information is obtained from the local code generator. All three signals, code timing, Doppler shift and 50bps navigation data are fed to the receiver CPU to compute the user position, velocity, accurate time etc...

For Earth-located, slowly-moving users, the Doppler shift on the satellite signals is mainly due to the satellite motion and amounts up to +/- 5kHz on the L1 frequency. In most cases some fine tuning will be required to compensate the Doppler shift in front of the narrow IF filter. Some fine-tuning capability is also required to compensate the local oscillator frequency drift. In GPS and GLONASS receivers all of the required frequencies are obtained from a single TCXO with a stability of a few parts per million. Since one part per million is 1.6kHz at the L1 frequency, the frequency uncertainty of the receiver is comparable in magnitude to the expected Doppler shift.

Like in all spread-spectrum systems, the initial code sync acquisition is a critical operation in a GPS or GLONASS receiver. Most receivers make an exhaustive search for C/A-code synchronization. Testing a possible code phase typically takes around 10 milliseconds each, so an exhaustive search may take more than 10 seconds. This figure needs to be multiplied by the number of frequencies tested, due to an unknown Doppler shift or unpredictable TCXO drift.

A "cold start" of a GPS or GLONASS receiver may therefore take up to one hour, since the receiver does not know which satellite (PRN# or CHN#) to look for nor the Doppler shift nor the code phase. A "warm start" is much faster since the receiver should know the almanac satellite ephemeris, the approximate user location and the approximate time. From this information one can get all visible satellites and compute the corresponding Doppler shifts, so that the code phase and the TCXO drift are the only unknowns left.

The period of the P-code is far too long to make an exhaustive sync search practical. All P-code receivers need to acquire the C/A-code first, decode the navigation data and synchronize their local P-code generator to the C/A-code transmission first. Since the P-code rate is only 10 times the C/A-code rate, there are very few possible P-code phases left to be tested to lock on the P-transmission.

GPS and GLONASS have been designed to supply timing codes, the user position being computed from the measured propagation time differences. Additionally, the user velocity can be computed from the already known position and the measured Doppler-shift differences on the signal carriers. Although the Doppler shift can also be measured on the code rates, this measurement is usually very noisy. On the other hand, no absolute delay difference can be measured on the carrier, since the carrier phase becomes ambiguous after 360 degrees. Finally, relating the carrier phase to the code phase may produce excellent results, but requires an accurate compensation of ionospheric effects, which have opposite signs: the ionosphere delays the modulation and at the same time advances the carrier phase!

Besides the described principle of operation of a GPS or GLONASS receiver, there are some other possibilities. For example, the C/A-code sync could be obtained much faster using an analog (SAW) or digital (FFT) correlator. To evaluate ionospheric errors, codeless reception techniques can be used to receive both P-transmissions on L1 and L2 frequencies without even knowing the codes used.

3.2. Digital Signal Processing (DSP) in GPS/GLONASS receivers

After the principles of operation and the required functions of an electronic circuit are known, one has to decide about the technology to practically implement the circuit. In most cases GPS or GLONASS receivers are mobile units installed on vehicles or even portable handheld units. The receiver weight, size and power consumption are all important. While every GPS or GLONASS receiver must have an antenna, a RF front-end and a digital computer to solve the navigation equations, the IF signal processing may include just a single channel in a simple C/A-only receiver or more than 10 channels in a full-spec L1 & L2 P-code receiver.

When the same circuit function needs to be duplicated several times, like the IF processing channels in a radio-navigation receiver, it is usually convenient to use Digital Signal Processing (DSP) techniques. An important advantage of DSP over analog circuits is that duplicated channels are completely identical and require no tuning or calibration to accurately measure the difference in the time of arrival or Doppler shift of radio-navigation signals. A single DSP circuit can also be easily multiplexed among several signals, since the internal variables of a DSP circuit like a PLL VCO frequency or phase can be stored in a computer memory and recalled and updated when needed again.

The bandwidth of the navigation satellite signals is several MHz and this is a rather large figure for DSP. Implementing the whole IF signal processing of a GPS/GLONASS receiver completely in software (like described in the introduction to DSP techniques in [8]) is difficult although it has been done [9] for the GPS C/A-code using powerful microcomputers. Most GPS/GLONASS receivers use a combination of dedicated DSP hardware and software for IF signal processing. Dedicated DSP hardware is only used where the the bandwidth is large and the functions are relatively simple, like the local satellite signal replica generation and the signal despreading, while all other functions, including all feedback loops, are implemented in software.

When designing a DSP circuit and in particular when designing dedicated DSP hardware it is essential to know, besides the signal bandwidth or sampling frequency, also the resolution or number of bits per sample required to represent the signals involved [10]. A GPS or GLONASS signal is a constant amplitude signal and limiting is therefore not harmful. However, after the wide IF filter in the receiver there is a mix of many satellite signals of different strength and lots of thermal noise as well. If such a mix of signals is limited, the resulting intermodulation distortion degrades the signal-to-noise ratio by around 2dB.

Since navigation satellite signals are pseudo-random sequences, all undesired signals and all intermodulation products only affect the desired signal in the same way as thermal noise. Therefore, in a GPS/GLONASS receiver, very few bits are required to represent the wideband IF signal. Most GPS/GLONASS receivers simply limit the wideband IF signal, thus accepting the 2dB sensitivity degradation and representing each sample with just two quantization levels or one single bit. Increasing the number of bits per sample only increases the DSP hardware complexity while bringing marginal sensitivity improvements, so that no known receiver design uses more than 3 bits per sample (8-level quantization).

On the other hand, an 1-bit/sample DSP GPS/GLONASS receiver may have a really simple IF signal processing as shown on the principle block diagram on Fig. 12. The IF signal is limited, so no AGC is required. Signal sampling and A/D conversion is performed by a single D-flip-flop. Signal despreading or multiplication with the locally generated signal replica is accomplished with an exclusive-or gate. Since the narrow IF can be selected close to zero, the narrow IF bandpass filter may be replaced by a lowpass filter or an integrator. In the case of 1-bit samples, the latter is simply a counter with the clock set to the sample rate and gated by the input signal.


However, after the narrow IF filtering the resulting signal can no longer be represented with a single bit per sample, if the sample rate of the narrowband signal is significantly reduced. In a C/A-code receiver, the integrator is read and then reset each millisecond, to match the period of either GPS or GLONASS C/A-codes, since the auto- and cross-correlation properties of these codes are only maintained over an integer number of code periods. An integration period of 1ms corresponds to a narrow IF bandwidth of +/- 500Hz around the center frequency. The latter is a very good choice for a GPS or GLONASS receiver.

Any further signal processing after the integration can be conveniently performed in software, since an interrupt rate of only 1kHz can be accepted by any microprocessor. The accumulated data in the integrator has a resolution of 12 to 14 bits, so any further software processing can be done without any loss of quantization accuracy nor processing speed of a general-purpose 16-bit microprocessor.

Dedicated hardware is also required for the generation of the local signal replica. Carriers or rates are conveniently generated in Numerically Controlled Oscillators (NCOs). A NCO includes a digital adder and an accumulator. In every clock cycle, a constant representing the desired output frequency or rate is added to the accumulator. If an analog output were desired, the accumulator content could be fed to a ROM containing a sine table and then to a D/A converter, forming a direct digital frequency synthesizer.

In a 1-bit DSP navigation-receiver the sine table and D/A converter are not required. Since the DSP hardware operates with 1-bit data, it is sufficient to take the MSB of the NCO accumulator as the frequency output. Two NCOs are required: on for the carrier frequency and another for the code rate. The code-rate NCO supplies the clock to a code generator like the ones shown on Fig. 8 or 10. The output of the code generator is exclusive-or gated with the output of the carrier NCO to produce a BPSK-modulated satellite signal replica.

Of course both NCOs have to be accurately steered to the required frequency and phase to maintain lock on the incoming signal. The feedback function can be performed by the microprocessor, since the feedback speed is very low: a 100Hz update rate is usually fast enough. Finally, the NCO frequency can be easily steered modifying the addition constant and the NCO phase can be easily steered modifying the accumulator content. In a time-multiplexed IF channel, both can be easily stored by the microprocessor and recalled when the channel hardware is switched back to the same satellite signal.

From the technology point of view, a DSP IF channel can be built on an "Eurocard" size printed circuit board using just bare 74HCxxx logic. A single IF channel may also be programmed in a programmable-logic integrated circuit. Finally, the complete IF signal processing with 6 or 8 independent channels may be integrated in a single custom integrated circuit. Commercial satellite navigation receivers use custom integrated circuits essentially to prevent unauthorized duplication. On the other hand, bare 74HCxxx logic is preferred for an amateur, homemade receiver. Hopefully programmable-logic ICs will some day become standardized and the necessary programming tools cheap enough to allow amateur applications.

3.3. Multi-channel reception of navigation signals

A satellite navigation receiver should be able to receive the signals from four or more satellites at the same time, to be able to measure time and Doppler differences. When the GPS specifications were published back in 1975 [4], the digital computer was the largest and most complex part of a satellite navigation receiver. Both GPS and GLONASS receivers were initially intended to have several analog IF processing channels, one per each signal type per satellite. Since these receivers were intended for military vehicles like fighter aircrafts, tanks or battle ships, the price and complexity of several analog IF processing channels was almost unimportant.

Early civilian GPS receivers also used analog IF processing, although initially limited to the C/A-code and one or two time-multiplexed IF channels. Time-multiplexing is difficult with analog IF channels, since the latter have to reacquire lock each time the satellites are changed. Lock acquisition may take 15 to 20 seconds, so that the measurement loop through four or more satellites takes several minutes. These receivers were only suitable for stationary or slowly-moving users.

The introduction of DSP techniques and inexpensive computers allowed much faster multiplexing. Since the variables of a DSP circuit can be stored and recalled, a DSP IF channel does not need to reacquire lock each time it is switched to another satellite signal. A DSP IF channel is typically switched among satellite signals around a hundred times per second making the whole loop among all required signals a few ten times per second. However, because of the available signal-to-noise ratio, the navigation solution in a C/A-code receiver only needs to be computed about once per second.

All current commercial GPS and GLONASS receivers use DSP IF processing. Small handheld C/A-code receivers have one, two or three time-multiplexed IF channels. Mobile C/A-code receivers have 5, 6 or even 8 independent channels so that no multiplexing is required. Time multiplexing makes the carrier lock and Doppler measurements difficult and unreliable, so it is undesired in mobile receivers.

Unfortunately, multi-channel GLONASS receivers require a wider raw signal IF and a much higher sampling rate due to the wide FDMA channel spacing. On the other hand, GPS receivers require the same raw IF bandwidth regardless of the number of channels thanks to CDMA. The higher sampling rates required for GLONASS are a little unpractical with currently available integrated circuits. Maybe this is another reason why GPS receivers are more popular and GLONASS is almost unknown. Since faster ICs will certainly be available in the future, one can expect that combined GPS/GLONASS receivers will become standard.

In this article I am going to describe a single-channel C/A-only receiver using fast time multiplexing. This receiver can be built in two versions: GPS or GLONASS. Although both versions use the same modules as much as possible, this is not a combined GPS/GLONASS receiver yet. The main limitation of a single IF channel, time-multiplexed receiver is that the maximum number of simultaneously tracked satellites is limited to four or five, so that a combined GPS/GLONASS receiver does not make much sense.

3.4. Practical GPS receiver design

The block diagram of the described GPS receiver is shown on Fig. 13. In the microwave frequency range, at L-band, the antenna needs a direct visibility of the satellites. Therefore it has to be installed outdoor, on the vehicle roof or on top of a portable receiver. Due to its excellent performance, a half-turn quadrifilar helix is used as a circularly polarized, hemispherical-coverage antenna. The LNA is installed directly under the antenna. Using two inexpensive GaAs FETs it achieves 30dB of gain making any following (reasonable) cable loss almost unimportant.


The GPS receiver includes a fixed-tuned downconverter to a suitable IF, an IF amplifier and limiter, a dedicated DSP hardware, a MC68010 based microcomputer with a small keyboard and a LCD display and a single master crystal oscillator for all frequency conversions and sampling rates. The downconversion from the GPS L1 frequency (1575.42MHz) is made in two steps for convenient image filtering. The first wide IF is in the 102MHz range and the second wide IF is in the 10MHz range. The wide IF bandwidth is set to around 2MHz. The actual value of the wide IF bandwidth is not critical, since filtering is only required to prevent spectrum aliasing in the signal sampling circuit.

6139kHz was selected as master crystal oscillator frequency of the described GPS receiver, since the best TCXOs are usually available for the frequency range between 5MHz and 10MHz. The output of the 6139kHz master oscillator is used both as the sampling frequency for the IF A/D conversion and as an input to a chain of multiplier stages to supply all of the frequencies required in the downconverter. Limiting the temperature range from 0 to 30 degrees C, as encountered during normal receiver operation, the TCXO was replaced by a much less expensive conventional crystal oscillator in all of the prototypes built.

Sampling the 10MHz wide-IF signal with 6139kHz produces a third downconversion to a 2303kHz nominal center frequency. The latter is the final carrier frequency that needs to be regenerated in the dedicated DSP hardware. The dedicated DSP hardware is designed as a microprocessor peripheral with read and write registers and is interrupting the MC68010 CPU once every millisecond to match the GPS C/A-code period.

In the portable, stand-alone GPS receiver, the operating software is stored in a compressed form in a 32kbytes EPROM. After power-on reset, the software is decompressed in 128kbytes of battery-backed CMOS RAM, which is also used to store the system almanac and other data to speed-up the acquisition of four valid satellites. For the same reason the CPU also has access to a small battery-backed real-time clock chip.

A small 8-key keyboard is used to select the various menus of the operating software and manually set some receiver parameters if so desired. The portable version of the GPS receiver is using a LCD module with integrated driving electronics and two rows of 40 alphanumeric (ASCII) characters each, to display the receiver status, the almanac data or the results of the navigation computations.

3.5. Practical GLONASS receiver design

The block diagram of the described GLONASS receiver is shown on Fig. 14. The GLONASS receiver uses the same type of antenna and LNA and the same dedicated DSP hardware and microcomputer as its GPS counterpart. The main difference between the two receivers is in the downconverter. The GLONASS receiver includes a tunable downconverter, otherwise the wide FDMA channel spacing would require unpractically high sampling rates in the dedicated DSP hardware.


The downconversion from the GLONASS L1 frequency range (1602 to 1615.5MHz) is made in two steps for convenient image filtering. To reduce group-delay variations, the first conversion is made tunable and the second is fixed. In this case the only contribution to group-delay variations across the GLONASS L1 frequency range are the tuned circuits at 1.6GHz. Group-delay variations introduce errors in the measured time differences, so they immediately affect the accuracy of a navigation receiver. This problem does not exist in a GPS receiver, since all GPS satellites transmit on the same carrier frequency and any signal filtering produces the same group delay on all satellite signals that exactly cancels-out when computing the differences.

Both wide IFs are fixed tuned at 118.7MHz and 10.7MHz respectively. To avoid any group-delay variations in the wide IFs, the frequency synthesizer steps must accurately match the channel spacing so that all signals are converted to the same IF values. Finally, the IF limiter should not introduce a variable delay as the input signal strength is changed when switching among channels. The second wide IF signal at 10.7MHz is sampled with 4500kHz producing a third downconversion to a nominal center frequency of 1687.5kHz.

There are several difficult-to-meet requirements for the frequency synthesizer supplying the signal for the first conversion. This synthesizer has to provide a clean signal in the frequency range from 1483 to 1497MHz in steps of 562.5kHz. Its phase noise should be low enough to allow carrier lock and 50bps navigation data demodulation: its spectral linewidth should be about 10 times narrower than required in a voice SSB receiver. Finally, in a time-multiplexed, single-channel receiver the synthesizer should be able to switch and settle to another frequency in less than 1ms, the GLONASS C/A-code period, to avoid increasing the switching dead time.

The frequency synthesizer is a PLL with a frequency converter in the feedback loop, to decrement the divider modulo, increase the loop gain, speed-up the settling and improve the output phase noise performance. The feedback signal is downconverted to the frequency range 25 to 38MHz, so that a very low programmable loop-divider modulo between 45 and 69 is required. The comparison frequency is set to 562.5kHz. A well-designed PLL will settle in 100 to 200 clock periods of the comparison frequency and the described PLL achieves this performance with a settling time between 200 and 300 microseconds.

The described GLONASS receiver is using a master crystal oscillator at 18.000MHz. This frequency is multiplied by 6 to obtain the 108MHz signal required for the second conversion and by 81 to obtain the 1458MHz signal required for the PLL feedback-loop conversion. The master oscillator frequency is divided by 4 to obtain the 4500kHz sampling frequency and by 32 to obtain the 562.5kHz PLL reference frequency. Like in the GPS receiver, in place of an expensive TCXO conventional crystal oscillators were used in all of the prototypes built, limiting somewhat the operating temperature range.

In the described GLONASS receiver, the microcomputer has one function more. Besides controlling the dedicated DSP hardware, keyboard and LCD display, all identical to the GPS counterparts, the microcomputer has to set the frequency synthesizer when switching among channels. The operating software is very similar to that in the GPS receiver and has the same hardware requirements: 32kbytes of EPROM, 128kbytes of battery-backed CMOS RAM and a battery-backed real-time clock.

3.6. GPS/GLONASS dedicated DSP hardware design

Although the theory of operation of an 1-bit DSP GPS or GLONASS receiver has already been discussed, the practical implementation still offers many different choices and some additional problems to be solved. For example, from the theoretical point-of-view it is unimportant whether the code lock or the carrier lock is achieved first. In practice, the code lock should be achieved first and should be completely independent from the carrier lock, both to speed-up the initial signal acquisition and to avoid loosing lock at short signal dropouts (obstructions, fading) or receiver frequency reference instabilities.

The block diagram of the practically implemented GPS/GLONASS dedicated DSP hardware is shown on Fig. 15. Although the implemented hardware is intended for a single channel, time multiplexed operation, it differs significantly from the theoretical block diagram shown on Fig. 12. The main difference is that there are four signal-despreading mixers (multipliers, ex-or gates) and four integrators (counters) for one single channel.


In practice, two separate signal-despreading mixers are required when downconverting to a narrow IF of almost zero. The mixers are driven with the same satellite signal replica, modulated with the same code, but with the carriers in quadrature. In this way no information is lost after signal despreading, downconversion and integration. The code lock can be made completely independent from the carrier lock, since the narrow IF signal amplitude can be computed out of the I and Q integration sums without knowing the carrier phase. The same I and Q integration sums are used in a different way to achieve carrier lock and extract the 50bps navigation data. Due to the low sample rate (1kHz) the latter are conveniently performed in software.

Although code lock may be maintained by dithering the locally generated signal replica, two separate narrow IFs for an "early" and a "late" local signal replica provide a 3dB improvement in the signal-to-noise ratio on time-delay measurements. The former solution, code dithering, is usually used in receivers with an analog narrow IF, since it is difficult to build two identical circuits in analog technology. The latter solution is used in receivers with a DSP narrow IF, since DSP circuits perform the same numerical operations and are therefore mathematically identical.

To achieve the 3dB signal-to-noise improvement, two separate sets of I and Q signal-processing chains for the "early" and "late" signal replicas need to be used. This brings the total number of signal-despreading mixers and integrators to four. Of course the local signal replica generation includes the generation of four different signals: I-EARLY, Q-EARLY, I-LATE and Q-LATE. All these signals can be obtained from a single carrier and code generator, since they are merely delayed versions of the same signal: either the carrier or the code or both are delayed. In DSP, delays can be easily obtained with shift registers.

On the other hand, the local satellite signal replica generation can be simplified with a look-up table. Since the integration period is 1ms and the input sample rate is 6139kHz (GPS) or 4500kHz (GLONASS), there are only 6139 or 4500 different bits to be stored in the look-up table for each despreading mixer and integrator. The look-up table is written by the microcomputer since it does not need to be updated very frequently.

The carrier frequency only needs to be updated less than once per minute while the carrier phase can be adjusted in software since both I and Q integration sums are available. The code rate does not need to be adjustable if the code phase can be corrected every 10 milliseconds. For the latter reason the code phase is made adjustable in hardware by a variable-delay circuit.

The variable-delay circuit used to adjust the code phase also brings a disadvantage. The carrier frequency can only be adjusted in steps of 1kHz, since the carrier phase should be continuous when the address counter reaches the end of the look-up table and is reset back to the beginning. The carrier frequency error can therefore reach +/- 500Hz and although it is compensated in software, it degrades the sensitivity of the receiver by up to 4dB (at +/- 500Hz error).

There are several ways to avoid this problem, like two separated code and carrier look-up tables or a double-length table with a presettable address counter. However, in practice the simplest circuit was preferred in spite of the 4dB sensitivity penalty. Both GPS and GLONASS receiver prototypes are therefore using the simple look-up table generator described above.

The local signal replica generation also explains the choice of the input sampling rates and wide IF nominal center frequencies. Ideally, to avoid spectrum aliasing the wide IF nominal center frequency should be equal to 1/4 of the sampling rate or any odd multiple of this value: 1536kHz for GPS or 1125kHz for GLONASS.

In practice 6139kHz was selected as the sampling rate for the GPS receiver to avoid interferences with the GPS C/A-code rate (1023kHz), since the described look-up table generator maintains a fixed phase relationship between the code transitions and sampling rate. Considering the various conversion frequencies obtained from the same source, an IF of 2303kHz resulted after signal sampling.

In the GLONASS receiver, any interferences between the sampling rate and code rate are unimportant since all satellites use the same C/A-code. The sampling rate of 4500kHz was chosen for convenience. Considering the operation of the frequency synthesizer, the final wide IF value could be chosen in 562.5kHz steps. The value of 1687.5kHz was selected to avoid some spurious frequencies generated in the synthesizer.

Finally, the described dedicated DSP hardware always requires the support of a microcomputer. The latter should compute and load the look-up tables first. After each interrupt request (every millisecond) the microcomputer reads all four integrated sums. From the I and Q components it computes the early and late magnitudes used to search and maintain code lock. The code phase required to maintain lock is at the same time the result of a time-delay measurement, referenced to the receiver clock. The difference of two such measurements is a parameter of a navigation equation.

On the other hand, the I average and Q average are supplied to a Costas-loop demodulator to recover the carrier and demodulate the 50bps navigation data bits. Then the subframe or line sync is detected to format the data stream and check the parity bits before the navigation data is used in the computations.

* * * * *