"How many heavens, or spheres, are there?"
-- Christopher Marlowe, Doctor Faustus
A MATLAB simulation was developed in an attempt to estimate the position fix errors resulting from the presence of the multipath producing sphere.
Location of Reflection
The location of the reflection point is determined using the geometric equations given in the Theory section. For a sample output plot from the MATLAB implementation, click here. It was assumed that the reflected signal was 80% as strong as the direct signal (i.e., L=0.8).
Correlation Function
A MATLAB function called corfun.m was written that simulates
the correlation function of a direct signal plus a reflected signal.
The following diagram outlines the corfun algorithm. Corfun.m
returns the value of the combination (direct plus reflected) correlation
curve C() given:
A sample output output plot from corfun.m is shown below:
The following diagram shows how corfun.m is incorporated into a simulation of the Early/Late prompt correlation spike location scheme.
Here L is the magnitude of the reflected signal compared to the direct
signal,
is the delay (in chips) of the reflected signal compared to the direct
signal. The output
is the difference in the early and late envelopes when early is at the
delay
.
GPS receivers determine the location of the correlation peak (and thus
the pseudorange) by driving this value to zero. The MATLAB function
fzero
was used to accomplish this. The value of
in which
is zero is denoted as
.
Thus the measured delay at prompt is:
Since the early and late envelopes are 1 chip apart.
Implementation
A method has been presented to allow the simulation of the pseudorange errors due to the the presence of a multi-path producing sphere, if the following quantities are known: