ECE 6390 Radiolocation Scavenger
Hunt 3
Members:
Christos Theodoridis
Saunya Williams
Brad Schwagler
John Livingston
Peyton Riley
Introduction
You are running late for your anniversary dinner at a local
Technical Data
After quick analysis, the A Team
realizes a way to use the pseudo-ranges stored in your handset to find the
location of the restaurant. In the table below, the satellite subpoint coordinates and pseudo-ranges for the 3 GPS
satellites whose signals are received by a positioning radio are shown. Note
that all pseudo-ranges are given relative to the first satellite position.
Based on this data, the objective is to calculate the longitude, latitude, and
altitude for the receiver’s position.
|
Satellite 1 |
Satellite 2 |
Satellite 3 |
Longitude |
-62.3256° |
-85.2234° |
-92.8388° |
Latitude |
7.8520° |
45.1053° |
29.7834° |
PR/c (s) |
0.000000000 |
-0.003817986 |
-0.004077077 |
Constants
used in calculations:
Mean earth radius = 6380.00 km
GPS satellite altitude = 20,200.00 km
Speed of light, c = 299860.00 km/s
Solution
A script was written in MATLAB to
calculate the coordinates of the GPS receiver. The first step is to convert the
latitude and longitude of each GPS satellite above to Cartesian coordinates.
The following ranging equation was used to solve for the (Ux,
Uy, Uz)
coordinates for the true location of the receiver.
(Xi
- Ux)2+(Yi - Uy)2+(Zi
- Uz)2 = (PRi
– CΤ)2 where i = satellite
number and T = clock bias
The solution of this system of equations required an
assumption of the Uz coordinate. Using knowledge of the basic location and
geographical properties of the area, guesses were made for GPS
coordinates. Using these coordinates and
the given information, the equations could be back-solved to find an accurate
estimation of Uz. This method provided reasonable results but
was not precise enough to find a specific building on a city block. A very accurate estimation of Uz was needed to determine an exact
location. Recalling a rumor that a
Georgia Tech professor had assigned a project dealing with GPS coordinates in
this area in Fall 2005, the Georgia Tech Propagation
Group website was quickly consulted. The Uz
coordinate was taken from a student project and used in the MATLAB
script to determine the remaining coordinates. Finally, Google Maps was used to
plot the resulting latitude and longitude to find the location of the
restaurant.
An ambiguity associated with this method is that it only
works if the general area (within several square miles) of the destination is
known. However, the general location was
known, so the method proved successful in this instance.
According to Google Maps, the calculated GPS coordinates
pointed to the middle of
Factors that could contribute to a realistic ranging
estimate in this situation include multipath error, receiver noise, and city
atmospheric conditions.
Results
The final
value has the latitude and longitude coordinates (33.77124, -84.38827), which maps
to the corner of North Avenue and Spring Street. Subsequently, these street
names were then used to obtain the location of the restaurant. Mary Mac’s Tea Room,
famous for its tradition in southern cooking, is the place for the anniversary
celebration.
Remarks
The range equations
for the 3 satellites were solved fairly easy with the assumption of Uz using the following Matlab script.
%% Conversion of Latitudes/longitudes of
satellites into radians
Longsat1 =
-62.3256 *pi/180;
Longsat2 =
-85.2234*pi/180;
Longsat3 =
-92.8388*pi/180;
Latsat1 =
7.8520*pi/180;
Latsat2 =
45.1053*pi/180;
Latsat3 =
29.7834*pi/180;
%% Calculation of
c =
299860*1000; % speed of light in
meters/second
PR1 = 0*c;
PR2 =
-0.003817986*c;
PR3 =
-0.004077077*c;
R = (6380 +
20200)*1000; % Radius from center of
earth to satellite in meters
%% Calculation of XYZ coordinates of satellites
(1-3) from their given latitudes/longitudes
X1 = R * cos(Longsat1) * cos(Latsat1);
Y1 = R * sin(Longsat1) * cos(Latsat1);
Z1 = R * sin(Latsat1);
X2 = R * cos(Longsat2) * cos(Latsat2);
Y2 = R * sin(Longsat2) * cos(Latsat2);
Z2 = R * sin(Latsat2);
X3 = R * cos(Longsat3) * cos(Latsat3);
Y3 = R * sin(Longsat3) * cos(Latsat3);
Z3 = R * sin(Latsat3);
%% Assume the z-coordinate, taken from last
year's project:
Uz =
3.546845993e6;
%% Create symbols of XY and tau
coordinates so "solve" function knows which variables to %% solve for.
syms Ux Uy t
%---
Calculation of the XY and tau coordinates, guessing
at Z -----%
[Ux, Uy, t] = solve( (X1 - Ux)^2 + (Y1 - Uy)^2 + (Z1
- Uz)^2 - (PR1 - t*c)^2, (X2 - Ux)^2 + (Y2 - Uy)^2 + (Z2 - Uz)^2 - (PR2 -
t*c)^2, (X3 - Ux)^2 + (Y3 - Uy)^2 + (Z3 - Uz)^2 - (PR3 - t*c)^2 )
%% After converting the symbolic answers of X
and Y into numbers, the following code was %%
used to come up with the latitude and longitude of the restaurant.
x = 5.186581354753561e+005;
y = -5.278553604470997e+006;
r = sqrt( x^2 + y^2 + Uz^2 );
lat=asin(Uz/r)*180/pi % lat = 33.77123595423643 degrees
lon=asin(y/(r*cos(lat*pi/180)))*180/pi % lon =
-84.38826618478855 degrees