ArticlePDF Available

Software rake receiver enhanced GPS system

Authors:

Abstract

Acceleration of semiconductor technologies has enabled incorporation of GPS receivers in small inexpensive hand held battery operated devices. As the size of chipsets for different communication protocols diminishes in size, building multi-protocol communication systems including GPS receivers has become not only attractive but also possible. A limitation of current approaches requires the Baseband (BB) processor to be implemented with hardware. Furthermore, if advanced techniques such as Rake receivers are desired to improve reception over multiple paths, significant additional hardware may be required. This presents both size and cost issues. In this paper we extend our work previously presented [1] by describing results for reflective environments by using a Rake receiver. The baseband processing, including the Rake receiver, is implemented entirely in software, using the Sandbridge Technologies TM Sandblaster TM Digital Signal Processor (DSP) platform. An advantage of a software approach is that differing algorithms may utilized in various environments. Using our software implementation we show that the link margin may be improved by 3dB using the Rake receiver.
SOFTWARE RAKE RECEIVER ENHANCED GPS SYSTEM
Daniel Iancu*, John Glossner†,*, Hua Ye*, Mayan Moudgill,* and Vladimir Kotlyar*,
*Sandbridge Technologies, Inc.
1 North Lexington Ave.
White Plains, NY 10601 USA
{diancu, jglossner , huaye, mayan,
vkotlyar}@SandbridgeTech.com
Delft University of Technology
Computer Engineering
Electrical Engineering, Mathematics and
Computer Science
Delft, The Netherlands
ABSTRACT
Acceleration of semiconductor technologies has
enabled incorporation of GPS receivers in small
inexpensive hand held battery operated devices. As the
size of chipsets for different communication protocols
diminishes in size, building multi-protocol communication
systems including GPS receivers has become not only
attractive but also possible. A limitation of current
approaches requires the Baseband (BB) processor to be
implemented with hardware. Furthermore, if advanced
techniques such as Rake receivers are desired to improve
reception over multiple paths, significant additional
hardware may be required. This presents both size and
cost issues. In this paper we extend our work previously
presented [1] by describing results for reflective
environments by using a Rake receiver. The baseband
processing, including the Rake receiver, is implemented
entirely in software, using the Sandbridge TechnologiesTM
SandblasterTM Digital Signal Processor (DSP) platform.
An advantage of a software approach is that differing
algorithms may utilized in various environments. Using
our software implementation we show that the link
margin may be improved by 3dB using the Rake receiver.
INTRODUCTION
A GPS constellation consists of 24 active satellites
placed on 6 orbits with 4 symmetrically placed satellites
per orbit [2][3]. The satellites are controlled and
monitored by a network of fixed terrestrial stations. The
terrestrial stations upload navigation and control data
information on a timely basis. The stations also monitor
the satellites’ status and health. All satellites carry a very
accurate atomic clock that is synchronized to the satellite
system clock[4]. All satellites synchronously broadcast
navigation and ranging data using a Direct Sequence
Spread Spectrum (DSSS) protocol using different carrier
frequencies called L1 (1575.42 MHz) and L2 (1227.6
MHz). The L1 band is dedicated for commercial use while
the L2 band is reserved for military applications. On the
L1 band each satellite transmits on the same frequency
using a different 1023 long Pseudo Random Number
(PRN) sequence spreading code. There are 32 PRN codes
and each satellite has allocated a PRN sequence. The
number of the PRN sequence is in fact the satellite ID.
Since the GPS system supports only one way
transmission, from the satellites to the user, there are an
unlimited number of possible users receiving the signal
from all visible satellites. At one geographical location
there are maximum 12 visible satellites at a time.
All satellites simultaneously transmit the navigation
data. The navigation data from one satellite includes the
satellite ephemeris and the satellite constellation almanac
data at the moment when the transmission starts.
The ephemeris data is used by the GPS receiver to
determine the satellite position with very high accuracy,
while the ranging code is used to measure the time
elapsed between the time of transmission and the time of
reception called Time of Arrival (TOA). Since the
receiver time is not synchronized to the satellite system
time there is an unknown error in the propagation time
measurement. Therefore, in order to measure the location,
latitude, longitude and height, the receiver needs to
measure the ranging signal from four satellites. By
solving a system of four equations with four unknowns,
the receiver will be able to find its own location
referenced to the center of the earth and the TOA
measurement error [5]. .
The GPS receiver faces two major design challenges.
First, the GPS power level at the surface of the earth is
very low. For the L1 band the power level is not expected
to exceed -157 dBW. Second, the satellites period of
rotation is approximately 43080 seconds or 11 hr and 58
min, resulting in Doppler shifts of several KHz. In a
spread spectrum system the lower the signal strength the
longer is the required correlation time for signal detection.
On the other hand, the correlation time cannot be longer
than the coherence time, therefore the GPS receiver must
compensate for the Doppler shift while correlating the
received signal with the PRN code.
Usually, in the receiver, there is one dedicated
hardware block for each tracked satellite called a channel.
Each channel includes correlation, Doppler frequency
correction and synchronization units.
The presence of multi-path propagation will further
impair the integrity of the received signal and
consequently the TOA measurement. The ranging
measurement errors result in significant positioning errors.
Therefore, in a multi-path propagation situation a Rake
Receiver structure [6] may help to combine the power
from multiple paths and bring the overall signal to
detectable levels. Unfortunately, for each Rake Receiver
finger one more channel needs to be allocated because the
demodulator is timed to a different chip position. This
may require significant additional hardware.
To keep the Dilution of Precision (DOP) low [7][8]
(e.g. to minimize the positioning errors), more than four
satellites must be tracked at a time resulting in even more
channels required. The number of channels in a GPS
receiver will directly impact the silicon area requirements
and consequently impact the cost of the receiver.
In current GPS designs, most of the physical layer is
implemented using dedicated hardware blocks with the
size of the used silicon area proportional to the number of
channels, giving little flexibility and scalability.
In contrast, a software implementation provides
flexibility and scalability and may be dynamically
configured as dictated by the mode of operation and the
propagation conditions within a changing environment.
In the following we present the theoretical foundation
and the software implementation of a GPS receiver that is
real-time reconfigurable to meet different modes of
operation and precision of positioning criteria with no
extra hardware added and also coexisting with other
wireless communication protocols.
THEORY OF OPERATION
Signal Model
At the receiver side, the GPS signal is a superposition
of DSSS signals coming from all visible satellites each
with shifted carrier frequency due to the Doppler Effect
and, specific PRN signature. For the Coarse Acquisition
(C/A) code [1] the received signal without multi-path
reflections can be modeled as
where the noise and in-band interference terms have been
deliberately ignored for readability.
The information conveyed by a specific satellite can
be extracted by performing the following mathematical
operations on Equation (1):
Multiplication by
Multiplication by
Addition of the two previous expressions
=
×
×
×
×
=
)2sin(
1
)()2cos(
1
)()(
'
'
tf
f
mtg
f
N
ktgjtstf
f
mtg
f
N
ktgtst
p
p
π
π
χ
ftj
ii
i
N
in i
p
k
p
nki
etf
f
ntg
f
mtg
f
N
ktg
f
N
ktg
s
π
ϕπ
ξ
2
1
0
'
,,
)2cos(
11
=
+∞
−∞=
+∞
−∞=
+
×
×
= ∑∑∑
(2)
where, 1=j
, f is the carrier frequency at the
transmitter and is the same for all satellites, and
Without losing generality, f can be viewed as the Local
Oscillator (LO) frequency, equal to the receiver IF
frequency. In Equation (2) the product of pulse functions
will be different from zero only if k=k and m=n. This
means that for a specified k=k’ and m=n , on a time scale,
it will be a single chip selected, as illustrated in Figure 1.
time
)( f
N
ktg p
)
1
(f
ntg
Figure 1 GPS chip selection showing the
highlighted part as the only non zero part over
time in equation (2).
)2cos(])%[(
1
][)(
'
1
0
iipii
N
in i
ki
p
ii
tfNnnP
f
ntg
f
N
ktgkdAts s
ϕπ
++×
×
= ∑∑∑
=
+∞
−∞=
+∞
−∞= (1)
)2cos(
1
'tf
f
mtg
f
N
ktg p
π
)2sin(
1
'tf
f
mtg
f
N
ktgj p
π
])%[(][ '
,, piiiinki NnnPkdA +=
ξ
,
ii
pp f
ntg
f
N
ktg
f
mtg
f
N
ktg 11
'
After summation, Equation (2) becomes
)3()2cos(
),max(1
])%[(][)(
2
1
0
'
ftj
ii
i
N
i
piiii
etf
ff
ntg
NnnPkdAt s
π
ϕπ
χ
=
+
+=
The integral of )(t
χ
over the entire time axis represents
the Fourier transform of )2cos( iitf
ϕ
π
+ times a constant:
)4()2cos(
])%[(][
...)2cos(])%[(][
)2cos(])%[(][
)2cos(])%[(][
)(
)(
2
11
'
11
),max()1(
2
11
'
1111
),max()1(
2
00
'
000
),max()1(
2
1
0
'
),max()1(
),max()1(
11
1
1
0
ftj
NN
pNNN
TTn
Tn
ftj
p
TTn
Tn
ftj
po
TTn
Tn
ftj
ii
N
i
piiii
TTn
Tn
TTn
Tn
etf
NnnPkdAdt
etfNnnPkdAdt
etfNnnPkdAdt
etfNnnPkdAdt
dtt
dtt
ss
s
Nsss
s
N
s
i
i
π
π
π
π
ϕπ
ϕπ
ϕπ
ϕπ
χ
χ
+
+
+
=
+
+
+∞
+×
×++
++++
+++=
=++=
==
=
=×
=++
+
+
ftj
i
TTn
Tn
ftj
ii
TTn
nT
ii
etfdt
etfdtnnkD
i
i
π
π
π
ϕπ
2
),max()1(
2
),max()1(
'
)2sin(
)2cos(),(
+=
ftj
i
T
iii etfdtnnkD
π
πϕ
2
0
')2cos(cos),(
T
For the positive frequencies of a single satellite, after
integration, Equation (4) becomes
×+
+
+
iii
ftj
i
TTn
Tn
iii
nnkD
etfdtnnkD
i
π
ϕ
πϕ
'
2
),max()1(
'
sin),(
)2cos(cos),(
)5()(
2
sin),(
)(
2
cos),(
)2sin(sin),(
,(
,(
'
'
2'
2'
0
ii
iii
i
iii
ftj
i
T
T
iii
ftj
i
T
T
iii
i
Eff
nnkD
j
ff
nnkD
etfdtnnkD
etfdtnnkD
nkD
i
i
+
+
+
+
=
=+
++
δ
ϕ
δ
ϕ
πϕ
πϕ
π
π
)2sin(sin) 2' ftj
i
T
ii etfdtn ++
πϕ π
)2cos(cos)
where and
),(])%[(][ '' iipiiii nnkDNnnPkdA +=+
ftj
i
T
T
iii
ftj
i
T
iiii
etfdtnnkD
etfdtnnkDE
i
i
π
π
πϕ
πϕ
2'
2'
)2sin(sin),(
)2cos(cos),(
+
+=
In the previous formula, Ei represents the error introduced
by windowing.
Summing for all visible satellites Equation (5) yields
)6()(
2
sin),( 1
0
'
=
+
+
+
s
N
i
ii
iii Eff
nnkD
j
δ
ϕ
)(
2
cos),(
)( 1
0
'
1
0
=
=
+∞
+
+
=
ss N
i
i
iii
N
i
ff
nnkD
dtt
δ
ϕ
χ
In Equation (6), if 0
=
i
ff and 0=
i
ϕ
, the imaginary
term and the sum of errors will vanish. The only term
remaining is the first sum representing the data
transmitted by the satellites.
The result is that in order to correctly demodulate the
signal coming from different satellites, one needs to
correct for both phase and frequency for each satellite.
IMPLEMENTATION
IF
Integrate &
Dump
Integrate &
Dump
Carrier Loop
Decriminator Carrier
Loop Filter
Sin2πfIFtCos2πfIFt
Numeric
Controlled
Oscillator
On Time PRN Sequ ence
fIFClock
I
Q
Currently, the most common implementations for GPS
receivers use dedicated hardware blocks. A simplified
system block diagram for a generic GPS receiver is shown
in Figure 2. The RF signal after conditioning and down
conversion is digitized and processed by a base band
processor. The navigation and ranging data are uploaded
to a DSP/RISC processor and further processed to obtain
the position.
RF A/D Base
Band
IF DSP/RISC
Control
Reference
Frequency
Figure 2 GPS system block diagram for H/W
implementation.
The baseband block in Figure 2 includes all the necessary
hardware for carrier frequency synchronization, frequency
phase and code tracking, and data demodulation for each
satellite. This means that for each satellite there is one
channel allocated (although sometimes one channel can be
multiplexed between two satellites) to track and
compensate for the frequency and phase shift and track
the PRN code.
The receiver frequency tracking and code tracking
block diagrams are depicted in Figure 3 and Figure 4. A
detailed description of the carrier frequency and code
tracking can be found in [9].
In Figure 3, a digital IF signal is multiplied by a sine-
cosine table and correlated with the PN sequence to obtain
the digital I and Q signals. The output of the loop
discriminator is filtered and fed to a numeric control
oscillator which provides the advance or delay of the sin-
cosine output table. In H/W implementations there are
multiple replicas of this circuit, one per tracked satellite.
The PRN code is typically tracked using an early-late
circuit. The output of the code loop filter, controls the
timing (advance or delay) of the PRN code generator. In
H/W implementations there are typically multiple replicas
of this circuit, one per tracked satellite.
Figure 3 H/W implementation; block diagram
for receiver carrier tracking
IF
Integrate
& Dump
Integrate
& Dump
Carrier
Loop
Decrimina
tor
Carri er
Loop
Filter
Sin2πfIFt
Cos2πfIFt
Numeric
Controlled
Oscillator
On Time PRN
Sequence
fIF Clock
Integrate
& Dump
Integrate
& Dump
Late
PRN Sequen ce
Integ rate
& Dump
Integ rate
& Dump
Early
PRN Sequence
PRN
Sequence
Generator
Early PRN Sequence
Late PRN Sequence
On Time PRN Sequence
I
Q
I
Q
I
Q
Figure 4 H/W implementation block diagram for
receiver code tracking
In our software implementation the frequency and
code tracking are implemented using a different
methodology. The frequency shift information is
determined using time domain analysis. It is
performed as follows. The data resulting from
sampling the IF frequency over a certain predefined
time interval is stored in a buffer. The data in the
buffer is then multiplied with a sine-cosine table.
Instead of controlling the phase of the sine-cosine
table in order to compensate for the carrier frequency
shift, the buffered data is time domain shifted by
pointer manipulation. The pointer is advanced or
delayed depending on the direction of the Doppler
shift. The sine-cosine table will be the same for all
carrier frequencies.
The phase information is determined by
employing a digital PLL executed also in software.
Depending on the PLL output, an additional shift on
the already shifted data may be required. The effect
of the shifting data in the time domain is to create
spurious frequencies in the frequency domain which
results in detection errors. On a pure sine waveform
the effect of the shifting is shown in Figure 5. It can
be shown that the detection error converges to zero
as 2
1
N, where N is the number of over-samples per IF
cycle. The shift on the PRN sequence is achieved also
through pointer manipulation since all 32 PRN
sequences are stored in memory.
time
IF Waveform
time
time
Delayed Waveform
Advanced Waveform
Figure 5 Waveform distortion by advancing or
retarding the IF data
The main S/W blocks for baseband processing are
illustrated in Figure 6. The buffered IF data after filtering,
shifting, and interpolation is multiplied with the sin-cosine
table and integrated over one IF cycle period. After
correlation with the PRN sequence the I and Q data take
two different paths, one is to the upper layer to process the
navigation data and the second is for further base band
processing for sky search, synchronization, and tracking.
Sky S earc h
Tracking
Synch
x
x
T
0
T
0
1023 ()
2
()
2
1023
Q data
I data
PN
Tabl e
IF data ++
+
Shifting
Interpolation
Filtering
Upper L ayer
Processing
Upper L ayer
Proc essi ng
x
x
Cos2πfIFt
Sin2πfIFt
Figure 6 Receive S/W implementation base band
block diagram
Shifting, Filtering and Interpolation
The blocks in Figure 7 provide the means to shift the IF
data one sample at a time every n samples conforming to a
specific Doppler bin. They also perform an extra sample
shift according to the digital PLL output to keep the PLL
locked. Sample interpolation as required by the Delay
Locked Loop (DLL) output to improve the TOA accuracy
is also performed. In addition an FIR shaping filtering is
implemented to improve the receiver performance.
Demodulation is performed on the already shifted data
using a sine-cosine lookup table with NOVS samples per
cycle. The integration over NOVS samples provides one
I/Q sample decimated NOVS times. The correlation with
the PRN sequence provides one data sample. The I/Q data
is subsequently processed based on the intended function
(e.g. Satellite search, I2+Q2, PLL, IxQ, DLL, I2+Q2, or De-
spreading Q).
Interpolation & Filtering Block
Interpolation
& shifting Shaping Filter
Fro m Synch & Tracki ng
To B ase -band
Processing
Figure 7 Interpolation, shifting and filtering
block.
Sky search
The process of detecting the visible satellites is called sky
search. If there is no previous knowledge of the satellite
constellation at a given time and location, the search for
the visible satellites becomes a compute intensive process
because of the spread of the Doppler shifted carriers over
several kHz. In this case the search is exhaustive over the
entire Doppler frequency range as well as PRN range. The
Doppler frequency range is divided into Doppler bins,
usually 50Hz wide; the search is performed for each
Doppler bin and each PRN sequence. If the satellite
constellation is known, the search is restricted to just a
few Doppler bins and PRN sequences resulting in much
less computational load.
To perform the search, the I and Q outputs from the
demodulator, are correlated with a 1023 length PRN
sequence at one sample per chip. These are squared and
accumulated over several milliseconds and compared
against a predetermined threshold. If it is above the
threshold, the de-spreading process begins with the
maximum correlation sample position. The data is
collected for the length of a subframe and is searched for
the preamble [1]. If the preamble is found then the search
is successful and the visible satellite list is updated.
Figure 8 Satellite search, cross correlation
output for PRN 1, 6 satellites in view, -30 dB
SNIR.
Figure 8 illustrates the search for a constellation of six
satellites all at equal power and -30 dB signal to noise and
interference ratio (SNIR). The satellite is successfully
identified at 980 chips.
Synchronization and Tracking.
The two major blocks for synchronization and tracking
are the digital PLL and DLL, also entirely implemented in
S/W in our system.
Digital PLL
The digital PLL block diagram is shown in Figure 9 . The
PLL input consists of I and Q outputs where each output
is limited to the three values -1, 0, or +1. A +1 output
means advance one sample, 0 means do not shift and a -1
output means delay one sample.
Loop Filte r To the sh ifting, interp olation and
synchronization block
Atan[I/Q]
I
Q
Figure 9 Digital PLL block diagram.
Figure 10 shows the accumulated errors in the shifting
process. The data cannot be properly decoded without the
digital PLL running. As the digital PLL is turned ON, the
decoded data sequence {+1, -1, +1, -1,} can be easily seen
in Figure 11.
Figure 10 Decoded data, Doppler shift 25 Hz, PLL
turned OFF, SNIR -31 dB.
Figure 11 Decoded data sequence {+1, -1, +1, -1,
…}; Doppler shift 25 Hz, PLL turned ON,
SNIR -31 dB.
Digital DLL
The role of the digital DLL is to detect the subframe
boundary at sub-chip resolutions to improve the
positioning accuracy. The block diagram of the digital
DLL is shown in Figure 12. The two identical branches in
the block diagram execute the same function, with an
020 40 60 80 100 120 140 160
-1.5
-1
-0.5
0
0.5
1
1.5
2
msec
020 40 60 80 100 120 140 160
-
-
-
0
1
2
3
4
mse
100 200 300 400 500 600 700 800 900 1000
0
0.2
0.4
0.6
0.8
1
chips
early and late replica of the PRN sequence, advanced and
delayed by a half chip respectively. The I and Q data from
the demodulator is correlated with the early and late
versions of the PRN sequence, it is then squared and
subtracted as described by )()( 2222 llee QIQI ++
+
+
where : Ie , Il , Qe , Ql are the early and late I and Q .
x
x1023 ()
2
()
2
1023
+
+
+
_Smoothing
Filter
Data F rom the
Demodulator
x
x1023 ()
2
()
2
1023
PN
early
PN
late
I
Q
Figure 12 Digital DLL block diagram.
Figure 13 Output of the digital DLL.
The filtered output is shown in Figure 13. The minimum
and maxima correspond to the early and late correlations.
The subframe boundary is marked by the x axis intercept
positioned between two chips. The more accurate frame
boundary provides a more accurate TOA for the incoming
sub-frames, and ultimately a more accurate user position
estimate.
Multi Path Mitigation
In case of multi-path propagation, a common technique in
DSSS is to use a Rake receiver. The rake receiver can
improve substantially the signal detection level but at the
expense computational complexity. For the GPS receiver,
each path requires one more channel allocated to that
specific satellite. In hardware the number of channels are
limited to the performance/cost structure of the receiver
giving little flexibility, if any at all, to the end user in
multi-path propagation conditions. In our software
approach, adding the Rake receiver is only limited by the
available computational capacity of the platform. As an
example, if the processor is idle except for GPS
processing, the entire platform may be allocated to the
GPS receiver with computationally complex algorithms.
Data from
the A/D
Demod
Sat #n
Path 1
Demod
Sat #n
Path n
Demod
Sat #n
Path 2
PLL
Despread
Combiner Data
I
Q
Q
Q
I
IIc
Qc
Id
Qd
Figure 14 Rake Receiver structure.
The Rake receiver block diagram employed is given in
Figure 14, [12][13]. For each path there is one more
channel, or Rake Receiver finger added, and the output of
each channel is combined and de-spread. The output from
the de-spread block is further processed by the PLL for
synchronization purposes and also by the upper layer.
Figure 15 illustrates the search result for multi-path
propagation with the first two paths at the same power
level and two more paths both at a 3dB lower power level.
100 200 300 400 50 0 600 700 800 900 100 0
0
0.2
0.4
0.6
0.8
1
chips
Figure 15 Satellite search result for PN#1, with 6
satellites in view, with total SNIR=-36dB. The 2nd
path of equal power is ten chips away from the
main peak.
For a data sequence {1,-1,1,-1…}, without a Rake
receiver, the detected data is illustrated in Figure 16. It
can be seen that an error at the end of the sequence
occurs. If a Rake receiver with two fingers is used, then
the data is detected correctly as depicted in Figure 17.
The performance of the GPS Rake receiver using
three fingers for one tracked satellite and one finger for
1 2 3 4 5 6 7 8 9 10 1
-
-1.5
-
-0.5
0
0.5
1
1/2 chip
the rest of the tracked satellites is shown in Figure 18. The
link margin improvement as a result of combining three
paths as function of the 3rd path power referenced to the
main path is shown for the case where the first two paths
are kept at fixed power levels.
020 40 60 80 100 120 140 160
-4
-3
-2
-1
0
1
2
3
4
Figure 16 Despreaded data using a single path
020 40 60 80 100 120 140 160
-3
-2
-1
0
1
2
3
Figure 17 Recovered data using a Rake receiver
with two path combination.
-6 -5.5 -5 -4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1
1.5
2
2.5
3
3.5
4
4.5
Gain
(dB)
2nd path power fixed at -6dB
below the main path
2nd path power fixed at -3dB
below the main path
3rd path power level referenced to th e main path power level (dB)
Figure 18 Link margin improvement with a Rake
receiver combining 3 paths
SYSTEM DESIGN
The system platform used for implementation is shown in
Figure 19. The RF signal is down converted first to an
intermediate frequency IF and then to a Low IF. The
reference frequency for the fractional PLL is provided by
a high precision low drift crystal oscillator. The fractional
PLL provides the input frequency to the RF, mixer and
the A/D. The Sandblaster processor reads and controls the
A/D, performs the Automatic Gain Control (AGC)
function in software, provides the AGC control signal and
also controls the PLL.
RF LP FilterMixer A/D
PLL
DSP
SB3000
IF Low
IF
Sampling Clock
AGC Control
Frequency
Reference
Figure 19 H/W block diagram
SANDBRIDGE IMPLEMENTATION
The baseband processing described in Figure 6 must be
performed for each tracked satellite. In our S/W
implementation it is possible to perform this in parallel
because of the multithreaded processor. In a multithreaded
environment, all the integrals in (6) are executed in
parallel. The number of channels is dynamically allocated
by the processor based upon the available resources
and/or real time criteria.
Some heavily computational functions such as the sky
search do not require real-time processing. In this case, to
keep synchronization, the time is tracked using a high
resolution timer, driven by a high accuracy crystal
oscillator, such that the next buffer of data is precisely
aligned in time.
All baseband processing for the GPS receiver has
been implemented on the Sandbridge Sandblaster SB3000
multithreaded platform [10][11]. The performance for
different positioning precision is shown in Figure 20. The
receiver performance has been characterized for various
update periods. For high accuracy with fast response (i.e.
5 meters and 100msec update response), about 1200MHz
of processing is required. This is about half of the
available capacity of a SB3000 chip. For more typical
conditions (i.e. 75 meters and 500msec update response),
only 400MHz of processing is required. This equates to
about 15% utilization of the SB3000 platform.
Figure 20 GPS receiver performance under
traditional environmental characteristics
Figure 21 shows the GPS performance requirements for
the same parameters as Figure 20 with the additional
processing being the result of adding Rake processing to
one of the satellites. This provides better reception in
multipath environments at the expense of additional
computational complexity.
GPS Performance with a Rake receiver
in SB3000
0
500
1000
1500
2000
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Update Period [seconds]
MHz
5 m x, y, z position accuracy 25 m x, y, z position accuracy
75 m x, y, z, positon accuracy
Figure 21 GPS receiver performance using Rake
techniques in reflective environments
SUMMARY
We have presented a GPS receiver design implemented
entirely in software that is capable of scalable and
selectable performance characteristics over a number of
environments. In high SNIR environments, traditional
implementations of GPS receivers provide tradeoffs
between computational capacity and location accuracy. In
highly reflective and harsh SNIR environments, Rake
receiver techniques may be employed that provide better
characteristics at higher computational complexity. All
GPS software is implemented on the Sandbridge
Sandblaster platform as part of a multi-protocol
communications handset component.
REFERENCES
[1]
[2]
[3]
[4]
[5]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
D. Iancu, J. Glossner, V. Kotlyar, H. Ye, M. Moudgill,
and E. Hokenek, “Software Defined Global Positioning
Satellite Receiver”, Proceedings of the 2003 Software
Defined Radio Technical Conference (SDR’03), HW-2-
001, 6 pages, Orlando, Florida, 2003.
Global Positioning System Standard Positioning Service
Signal Specification, GPS NAVSTAR 2nd Edition, June 2,
1995
Elliot D. Kaplan, Understanding GPS Principles and
Applications, Artech House Inc. 1996.
Langley, R., Time, Clocks, and GPS, GPS Magazine,
Advanstar, Advanstar Communications, Nov. / Dec.1991,
pp.38-42.
Bancroft, S., An Algebraic Solution of the GPS equations,
IEEE Trans. Aerospace and Electronic Systems, Vol.
AES-21 No 7, January 1985, pp. 56-59.
[6] J. Glossner, D. Iancu, J. Lu, E. Hokenek, and M.
Moudgill, “A Software Defined Communications
Baseband Design”, IEEE Communications Magazine, Vol.
41, No. 1, pp. 120-128, Jan., 2003.
DOD, NAVSTAR GPS User Equipment Introduction
(Public Release Version), GPS Joint Program Office, Feb.
1991.
Taylor & Francis Group, Mapping Dilution of Precision
(MPOD) and map-matched GPS, Int. J. Geographical
Science, 2002, vol. 16, No. 1, pp55-67.
S. Haykin, Communication Systems, John Wiley Sons.
Inc. 1983.
J. Glossner, E. Hokenek, and M. Moudgill, Multithreaded
Processor for Software Defined Radio, SDR Forum
Conference, November, 2002, San Diego, CA.
J. Glossner, S. Dorward, S. Jinturkar, M. Moudgill, E.
Hokenek, M. Schulte, and S. Vassiliadis, Sandbridge
Software Tools, Proceedings of the 3rd International
Worksop on Systems, Architectures, Modeling, and
Simulation (SAMOS’03), July 21-23, 2003, pp. 142-147,
Samos, Greece.
Theodore S. Rappaport, “Wireless Communications”,
Prentice Hall Inc., 2002
E. Prince and P. Green, A Communication Technique for
Multipath Channels, Proceeding of IRE, 1958.
E. O. Bringham, The Fast Fourier Transform And Its
Applications, Prentice-Hall Inc. 1988.
J. Glossner, E. Hokenek, and M. Moudgill, “Wireless SDR
Solutions: The Challenge and Promise of Next Generation
Handsets”, Accepted for publication at the 2002
Communications Design Conference, September 2002,
San Jose, CA.
GPS Performance in SB3000
0
200
400
600
800
1000
1200
1400
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Update Period [seconds]
MHz
5 m x, y, z position accuracy 25 m x, y, z position accuracy
75 m x, y, z, positon accuracy
Conference Paper
Full-text available
Software defined radios (SDRs) offer a programmable and dynamically reconfigurable method of reusing hardware to implement the physical layer processing of multiple communications systems. An SDR can dynamically change protocols and update communications systems over the air as a service provider allows. In this paper we present techniques for implementing communications systems in software. We describe briefly the SB3011 platform and programming environment. We then present a number of useful techniques that can be used to implement working systems. We further describe in which systems these techniques are implemented.
Conference Paper
Within a recent project at Siemens Communication, we developed a new programming concept called virtual radio engine (VRE), with the goal to provide an efficient development environment for software defined radio (SDR) applications. VRE separates the development process into two steps: first, the application is described in a hardware-independent way using the VRE programming language, and then the implementation is done (to a great part) automatically by the VRE code generator system. As the hardware underlying SDR requires parallel architectures of different kinds to achieve the required high performance within a low power consumption budget, hardware-specific requirements are excluded from the VRE program. Instead, a separate hardware description file supplements the program. Therefore, the application can be described without any prior knowledge of the target hardware, and the same program can be implemented on different parallel hardware platforms. This paper concentrates on the VRE programming language and the graphic representation of VRE programs using Simulink. Special emphasis is given to the representation of different types of control flow.
Article
Full-text available
Software-defined radios offer a programmable and dynamically reconfigurable method of reusing hardware to implement the physical layer processing of multiple communications systems. An SDR can dynamically change protocols and update communications systems over the air as a service provider allows. In this article we discuss a baseband solution for an SDR system and describe a 2 Mb/s WCDMA design with GSM/GPRS and 802.11b capability that executes all physical layer processing completely in software. We describe the WCDMA communications protocols with a focus on latency reduction and unique implementation techniques. We also describe the underlying technology that enables software execution. Our solution is programmed in C and executed on a multithreaded processor in real time.
Conference Paper
In this paper, some aspects of implementing convergence devices in software are described. First, the motivation for Software Defined Radio (SDR) solutions. including market drivers, is discussed. Next, a technical introduction to high-complexity wireless applications is presented. The Sandbridge solution to multimode baseband processing is described, including an SDR processor architecture and results. We then present a solution that provides a 768kbps WCDMA compliant transmit in less than 400MHz on the Sandblaster TM multithreaded processor.
Article
The global positioning system (GPS) equations are usually solved with an application of Newton's method or a variant thereof: Xn+1 = xn + H-1(t - f(xn)). (1) Here x is a vector comprising the user position coordinates together with clock offset, t is a vector of tour pseudorange measurements, and H is a measurement matrix of partial derivatives H = fx· In fact the first fix of a Kalman filter provides a solution of this type. If more than four pseudoranges are available for extended batch processing, H-1 may be replaced by a generalized inverse (HTWH)-1HTW, where W is a positive definite weighting matrix (usually taken to be the inverse of the measurement covariance matrix). This paper introduces a new method of solution that is algebraic and noniterative in nature, computationally efficient and numerically stable, admits extended batch processing, improves accuracy in bad geometric dilution of precision (GDOP) situations, and allows a "cold start" in deep space applications.
1] [2] [3] [4] [5] [7] [8] [9] [10] [11] [12] [13] [14] [15]Software Defined Global Positioning Satellite Receiver
  • D Iancu
  • J Glossner
  • V Kotlyar
  • H Ye
  • M Moudgill
  • E Hokenek
[1] [2] [3] [4] [5] [7] [8] [9] [10] [11] [12] [13] [14] [15] D. Iancu, J. Glossner, V. Kotlyar, H. Ye, M. Moudgill, and E. Hokenek, “Software Defined Global Positioning Satellite Receiver”, Proceedings of the 2003 Software Defined Radio Technical Conference (SDR’03), HW-2- 001, 6 pages, Orlando, Florida, 2003
A Software Baseband Design
  • Moudgill
Moudgill, “A Software Baseband Design”, IEEE Communications Magazine, Vol
A Communication Technique for Multipath Channels, Proceeding of IRE The Fast Fourier Transform And Its Applications
  • E Prince
  • P Green
E. Prince and P. Green, A Communication Technique for Multipath Channels, Proceeding of IRE, 1958. E. O. Bringham, The Fast Fourier Transform And Its Applications, Prentice-Hall Inc. 1988.
Wireless Communications
  • Theodore S Rappaport
Theodore S. Rappaport, "Wireless Communications", Prentice Hall Inc., 2002
Global Positioning System Standard Positioning Service Signal Specification, GPS NAVSTAR 2 nd Edition
  • D Iancu
  • J Glossner
  • V Kotlyar
  • H Ye
  • M Moudgill
  • E Hokenek
D. Iancu, J. Glossner, V. Kotlyar, H. Ye, M. Moudgill, and E. Hokenek, "Software Defined Global Positioning Satellite Receiver", Proceedings of the 2003 Software Defined Radio Technical Conference (SDR'03), HW-2-001, 6 pages, Orlando, Florida, 2003. Global Positioning System Standard Positioning Service Signal Specification, GPS NAVSTAR 2 nd Edition, June 2, 1995