top of page

At the result end of the interpolator, the interpolated values were used to calculate both the code
chip and carrier signal lookup table indices. The code chip index was a simple conversion. The
integer result from the interpolator was used directly (after going through a series of multiplexers
to get the appropriate value for each channel and satellite number) to index a code chip lookup
13
table that was unique for each satellite. The carrier lookup was slightly more complicated. Here,
the fractional part of the interpolated value was used. Since the carrier frequency, IF, was
designed to be 2.046 MHz, and the code chipping frequency has to be 1.023 MHz, the result was
two complete carrier cycles for each code chip. The decision was made to have a dynamic range
of +/- 64 binary values for each channel (7 bits total for amplitude), meaning 128 values were
needed to represent the whole range of values. To represent a whole carrier cycle, 256 values
were needed. Thus, to get the lookup table index for the carrier table, the fractional interpolated
value is divided by 2 (2 carrier cycles per code chip), and this result is then multiplied by 255 (0
to 255 = 256 values) to get a lookup table index between 0 and 255.
iii) RF

carrier frequency

bottom of page