Applied Methods FINDING GPS COORDINATES ON A MAP USING PDA Nicolae-Iulian ENESCU 1 PhD Candidate, University Assistant, Computer Systems and Communications Department, Faculty of Automation, Computers and Electronics University of Craiova, Craiova, Romania E-mail: nenescu@cs.ucv.ro Abstract: The purpose is defining algorithms for the elaboration of GPS coordinates using the PDA. The C++ and C# programming languages have been used for this. A software was elaborated which: runs on PDAs that have Windows Mobile 2003 OS, assumes GPS information and implements algorithms for establishing the coordinates on a map represented as a TIF image. The precision for the coordinates is less than 10 meter. The program was tested and used by a Japanese Company. Key words: PDA; GPS; coordinates; map; algorithms Requests A software application was desired that should run on PDA with GPS antenna attached. The application must locate the GPS coordinates on a map from Japan. The coordinates known by longitude and latitude must be established over a given image in TIF format which can represent a map with scale 1:200000 or 1:25000. The maps contain information in their headers that refer to the map limits. This data includes the lefttop and right-bottom coordinates of the corners, the dimensions of width and height in pixels and the lengths of the maps. It was necessary an algorithm that would also allow map synchronization when the user goes beyond the limits of the current map. Informatics solution As a result of many PDAs (on the Japanese market) having Windows Mobile OS, the informatics solution for implementing the requests was to use .NET CF C# with Microsoft Visual Studio .NET 2003. Due to .NET CF having some limitations in loading a TIF image, a dynamic library for the module that loads and saves a TIF image was built in C++ with Microsoft eMbedded Visual C++ 4. Because the program needed additional functions that are not in .NET CF there was used an application framework named “Smart Device Framework 1.2” which enriches and extends the .NET Compact Framework. There are many new class libraries and controls, along with all the existing class libraries and controls, available free on www.opwnnetcf.org. 150 Applied Methods Algorithms Map algorithms Algorithm for Map Index 200000 and 25000 maps structure is mesh type. It is called “Standard Area Mesh”. This is the standard way to divide an area by constant intervals of longitude and latitude. In the case of Japan, the latitude and longitude used since 2002 are WGS84 type, but the map data stored in the application map is Tokyo Datum type. The “Standard Area Mesh” has 3 levels. 1) The 1st Area Block (Primary Area Division or the First Mesh) The Primary Area Division is made by dividing Japan into rectangles with the width of 1-degree longitude and height of 2/3-degree latitude (1º X 40’). The 1st Area Block has a correspondent area of 6,400km2, which is the area of 1 unit from 1:200000 map. Each unit has a correspondent 1:200000 map image. The mesh code for the 1st area is 4 digits long. The value is composed from 2 parts of 2 digits each. The first 2 digits are obtained by multiplying the south edge latitude degrees with 1.5. The next 2 digits are obtained by subtracting the west edge longitude degrees with 100. 2) The 2nd Area Block (Secondary Area Division or the Second Mesh) Dividing the 1st area division vertically – horizontally by 8 makes the 2nd area. Each unit is 7’ 30” X 5’ and corresponds to 1 unit of the 1:25000 map, which has an area of 100 km2. 151 Applied Methods The mesh code for the 2nd area division is a 2-digit code. The first digit is numbered from 0 for south edge to 7 for north, along longitude line. The second digit is numbered from 0 to west edge to 7 for east edge, along latitude line. 3) The 3rd Area Block (Third Area Division or the Base Mesh) Dividing the 2nd area division vertically – horizontally by 10 makes the 3rd area. Each unit is 45” X 30” and it corresponds to an area of 1 km2. The mesh code for the 3rd area division is a 2 digits code. The first digit is numbered from 0 for south edge to 9 for north edge, along longitude line. The second digit is numbered from 0 for west edge to 9 for east edge, along latitude line. The 3rd Area Division is called the “Base Mesh”. Algorithm for map management The major concern is that there are irregular maps and the maps have a trapezoidal shape instead of a rectangular one as we might expect. The first step towards a good map joining quality is to adjust the maps’ shape. The program must cut images exactly on the edges of the map. The problem was that the images are not rectangles, and the information about the corners is not accurate. In 152 Applied Methods order to solve those problems the application must find the real map corners and must transform the maps in rectangles using affine transformation. Real corners (75, 75) – map info (77, 77) – real corner every In map theory, image 153 Applied Methods should have a 2-pixel width boundary, gray colored. Unfortunately this is not always true. There are many cases when the boundary line is missing, or is only 1-pixel width or the color is not gray. The program searches the real corner by checking the color of pixels. The two arrows show the direction of searching. Every pixel, starting from the file boundary, is checked to see if it has a color different than Black (text color), Brown (heights), White (none). There are 2 directions: one for finding the “X” coordinate and the other for finding the “Y” coordinate. The same procedure is used for all the 4 corners. There are a couple of conditions to be met in order to decide if a pixel contributes to the real corner: • the search is done separately on the line and on the column; • if a pixel has the Gray color we assume that it is on the map border; • if a pixel has a different color than Gray, Black and White, we assume that the border is missing and that the pixel is where the map starts. The next 10 (10 is a number experimentally issued) pixels’ color is checked to be sure they are image pixels. • if the distance between the default value and the found value is bigger than 15 pixels, than the default value is kept. GPS Algorithms This section provides guidance in the implementation of measurement processing algorithms. The discussions include: − Mathematical constants used in GPS position determination computations. − The GPS parity algorithm implementation to permit the user to detect demodulation errors within the decoded navigation message. − Interpretation of the satellite transmitting URA parameter. − Satellite position determination using broadcast ephemeris parameters. − Correction of the code phase time received from the satellite with respect to both satellite code phase offset and relativistic effects. 154 Applied Methods − − − Compensation for the effects of satellite group delay differential. Correction for ionospheric propagation delay. Performing time transfer to UTC. Mathematical Constants The speed of light used for generating the data described in the above paragraphs is: c = 2.99792458 x 108 meters per second which is the official WGS-84 speed of light. The user should use the same value for the speed of light in computations. Other WGS-84 constants the user is required to use for satellite ephemeris calculations are: μ = 3.986005 x 1014 meters3 / sec2 WGS-84 value of the Earth's universal gravitational parameter Ωe= 7.2921151467 x 10-5 rad / sec WGS-84 value of the Earth's rotation rate The sensitivity of the satellite's antenna phase center position to small perturbations in most ephemeris parameters is extreme. The sensitivity of position to the parameters (A)1/2, Crc and Crs is about one meter/meter. The sensitivity of position to the angular rate parameters is on the order of 108 meters/semicircle, and to the angular rate parameters is on the order of 1012 meter/semicircle/second. Because of this extreme sensitivity to angular perturbations, the value of π used in the curve fit is given here. π is a mathematical constant, the ratio of a circle's circumference to its diameter. Here π is taken as π= 3.1415926535898 Parity Algorithm The user must perform error detection of the decoded navigation data using the parity algorithm equations provided in Table 1. Figure 1 presents an example flow chart that defines one way of recovering data (dn) and checking parity. The parity bit D*30 is used for recovering raw data. The parity bits D*29 and D*30, along with the recovered raw data (dn) are modulo-2 added in accordance with the equations appearing in Table 1 for D25 . . . D30, which provide computed parity to compare with transmitted parity D25 . . . D30. Table 1. Parity Encoding Equations 155 Applied Methods where: d1, d2, . . . . d24 are the source data bits the symbol (*) is used to identify the last 2 bits of the previous word of the subframe, D25, . . . . D30 are the computed parity bits D1, D2, D3, . . . . D29, D30 are the bits transmitted by the satellite, and ⊕ is the "Modulo-2" or "Exclusive-Or" operation. User Range Accuracy (URA) The URA reported in the navigation message will correspond to the maximum value anticipated during each subframe fit interval with uniform SA levels invoked. Referring to the decimal equivalent of the transmitted four-bit binary number as N -- with N a positive integer in the range of 0 through 15 -- the accuracy value is defined to mean "no better than X meters", in accordance with the following relationships: − If the value of N is 6 or less, X = 2(1 + N/2), − If the value of N is 6 or more, but less than 15, X = 2(N-2), − N = 15 will indicate the absence of an accuracy prediction and will advise the SPS user to use that satellite at the user's own risk. For N = 1, 3, and 5, X is rounded to 2.8, 5.7, and 11.3 meters respectively; the above relationships yield integer values of X for all other values of N. Using these values of X the user may utilize a look-up table approach for interpreting the URA message. Figure 1. Example Flow Chart for User Implementation of Parity Algorithm 156 Applied Methods User Algorithm for Ephemeris Determination The user will compute the ECEF coordinates of position for the phase center of each satellite's L-Band antenna utilizing a variation of the equations shown in Table 2. Subframes 2 and 3 parameters are Keplerian in appearance; the values of these parameters, however, are obtained via a least squares curve fit of the predicted ephemeris for the phase center of the satellite's antenna (time-position quadruples; t, x, y, z). a. Coordinate System The equations given in Table 2 provide the satellite's antenna phase center position in the WGS-84 Earth-Centered Earth-Fixed reference frame defined as follows: ORIGIN = Earth's center of mass* Z-AXIS = Parallel to the direction of the CONVENTIONAL INTERNATIONAL ORIGIN (CIO) for polar motion, as defined by the BUREAU INTERNATIONAL DE L'HEURE (BIH) on the basis of the latitudes adopted for the BIH stations** X-AXIS = Intersection of the WGS-84 reference meridian plane and the plane of the mean astronomic equator, the reference meridian being parallel to the zero meridian defined by the BUREAU INTERNATIONAL DE L'HEURE (BIH) on the basis of the longitudes adopted for the BIH stations*** Y-AXIS = Completes a right-handed Earth-Centered, Earth-Fixed orthogonal coordinate system, measured in the plan of the mean astronomic equator 90 degrees east of the X-axis*** * Geometric center of WGS-84 ellipsoid ** Rotation axis of WGS-84 ellipsoid *** X, Y axis of WGS-84 ellipsoid b. Geometric Range Correction When computing the geometric range, the user will account for the effects due to earth rotation rate (reference Table 2) during the time of signal propagation so as to evaluate the path delay in an inertially stable coordinate system. Specifically, if the user works in Earth-fixed coordinates the user should add (−ΩeyΔt ,ΩexΔt,0) to the position estimate (x, y, z). Application of Correction Parameters In order to properly account for satellite clock bias and propagation delays, the user receiver must perform corrections to observed pseudo range measurements. The pseudo range is defined as: PRmeasured = c(treceived - ttransmitted) where PRmeasured = measured pseudo range treceived = time that ranging measurement was received at the user location ttransmitted = time that ranging signal was transmitted from the satellite Group Delay Application The SPS user who utilizes the L1 frequency will modify the code phase offset with the equation: where TGD is provided to the user as subframe 1 data. 157 Applied Methods Table 2. Elements of Coordinate Systems 158 Applied Methods Satellite Clock Correction The polynomial defined in the following allows the user to determine the effective satellite PRN code phase offset referenced to the phase center of the satellite antennas (Δtsv) with respect to GPS system time (t) at the time of data transmission. The coefficients transmitted in the subframe 1 describe the offset apparent to the control segment two-frequency receivers for the interval of time in which the parameters are transmitted. This estimated correction accounts for the deterministic satellite clock error characteristics of bias, drift and aging, as well as for the satellite implementation characteristics of group delay bias and mean differential group delay. Since these coefficients do not include corrections for relativistic effects, the user's equipment must determine the requisite relativistic correction. Accordingly, the offset given below includes a term to perform this function. The user will correct the time received from the satellite with the equation (in seconds) t = tsv − (Δt sv)L1 (1) where t = GPS system time (seconds), t sv = effective SV PRN code phase time at message transmission time (seconds), (Δt sv) L1 = SV PRN code phase time offset (seconds). The satellite PRN code phase offset is given by (Δt sv )L1 = af0 + af1(t - toc) + af2(t - toc)2 + Δtr - TGD (2) where af0, af1, and af2 are the polynomial coefficients given in subframe 1, toc is the clock data reference time in seconds, and Δtr is the relativistic correction term (seconds) which is given by Δtr = F e (A)1/2 sin Ek The orbit parameters (e, A, Ek) used here are described in discussions of data contained in subframes 2 and 3, while F is a constant whose value is F = -2 (μ)1/2 / c2 = - 4.442807633 (10)-10 sec / (meter)1/2 Note that equations (1) and (2), as written, are coupled. While the coefficients af0, af1, and af2 are generated by using GPS time as indicated in equation (2), sensitivity of tsv to t is negligible. This negligible sensitivity will allow the user to approximate t by tsv in equation (2). The value of t must account for beginning or end of week crossovers. That is, if the quantity t - toc is greater than 302,400 seconds, subtract 604,800 seconds from t. If the quantity t - toc is less than -302,400 seconds, add 604,800 seconds to t. Ionospheric Model The SPS user should correct the time received from the satellite for ionospheric effect by utilizing parameters contained in page 18 of subframe 4 in the model given below. It is estimated that the use of this model will provide at least a 50 percent reduction in the SPS user's RMS error due to ionospheric propagation effects. The ionospheric correction model is given by 159 Applied Methods F = 1.0 + 16.0[0.53 - E]3 and αn and βn are the satellite transmitted data words with n = 0, 1, 2, and 3. Other equations that must be solved are The terms used in computation of ionospheric delay are as follows: - Satellite Transmitted Terms αn the coefficients of a cubic equation representing the amplitude of the vertical delay (4 coefficients = 8 bits each) βn the coefficients of a cubic equation representing the period of the model (4 coefficients = 8 bits each) - Receiver Generated Terms E elevation angle between the user and satellite (semi-circles) A azimuth angle between the user and satellite, measured clockwise positive from the true North (semi-circles) φu user geodetic latitude (semi-circles) WGS-84 λu user geodetic longitude (semi-circles) WGS-84 GPS time receiver computed system time 160 Applied Methods - Computed Terms x phase (radians) F obliquity factor (dimensionless) t local time (sec) φm geomagnetic latitude of the earth projection of the ionospheric intersection point (mean ionospheric height assumed 350 km) (semicircles) λi geomagnetic latitude of the earth projection of the ionospheric intersection point (semi-circles) φi geomagnetic latitude of the earth projection of the ionospheric intersection point (semi-circles) ψ earth's central angle between user position and earth projection of ionospheric intersection point (semi-circles) Universal Coordinated Time (UTC) Depending on the relationship of the effectivity date to the user's current GPS time, the following three different UTC/GPS-time relationships exist: a. Whenever the effectivity time indicated by the WNLSF and the DN values is not in the past (relative to the user's present time), and the user's present time does not fall in the timespan which starts at DN + 3/4 and ends at DN + 5/4, the UTC/GPS-time relationship is given by tUTC = (tE - ΔtUTC) {Modulo 86400 seconds} where tUTC is in seconds and ΔtUTC = ΔtLS + A0 + A1 (tE - tot + 604800 (WN - WNt)), (seconds); tE = GPS time as estimated by the user on the basis of correcting tsv for factors described in previous paragraph as well as for ionospheric and SA (dither) effects; ΔtLS = delta time due to leap seconds; A0 and A1 = constant and first order terms of polynomial; tot = reference time for UTC data; WN = current week number (derived from subframe 1); WNt = UTC reference week number. The estimated GPS time (tE) is in seconds relative to end/start of week. The reference time for UTC data (tot) is referenced to the start of that week whose number (WNt). The WNt value consists of the eight LSBs of the full week number. The user must account for the truncated nature of this parameter as well as truncation of WN, WNt, and WLSF due to rollover of the full week number. The absolute value of the difference between the untruncated WN and WNt values will not exceed 127. b. Whenever the user's current time falls within the timespan of DN + 3/4 to DN + 5/4, proper accommodation of the leap second event with a possible week number transition is provided by the following expression for UTC: tUTC = W [Modulo (86400 + ΔtLSF − ΔtLS)] , (seconds); where W = (tE − ΔtUTC − 43200) [Modulo 86400] + 43200 , (seconds); and the definition of ΔtUTC (as given in "a" above) applies throughout the transition period. Note that when a leap second is added, unconventional time values of the form 23: 59: 60.xxx are encountered. Some user equipment may be designed to approximate UTC by decrementing the running count of time within several seconds after the event, thereby 161 Applied Methods promptly returning to a proper time indication. Whenever a leap second event is encountered, the user equipment must consistently implement carries or borrows into any year/week/day counts. c. Whenever the effectivity time of the leap second event, as indicated by the WNLSF and DN values, is in the "past" (relative to the user's current time), the relationship previously given for tUTC in "a" above is valid except that the value of ΔtLSF is substituted for ΔtLS. The CS will coordinate the update of UTC parameters at a future upload so as to maintain a proper continuity of the tUTC time scale. Implementation for the solution The application is built around the Multiple Document Interface (MDI) specification. The purpose of this application is providing the user a tool to interact with map images. The images are TIF files and represent maps of all regions in Japan. There are two (2) kinds of maps the application can work with. The classification is based on the map scale specification and these are 1:200000 and 1:25000. The information in the TIF file can have 2 types of organization: - by strips (see figure 2) - by tiles (see figure 3) Both types are supported. Figure 2. TIF Strip Organization 162 Applied Methods Because the PDA memory is limited, not the entire TIF file is loaded in the main memory. Only an image of 900x900 pixels is kept in the main memory. This image is named “Working data”. When the user drags the map outside of the “Working data” image, then this image is updated with a new sub-zone of the TIF map. When this happens, the hour glass cursor appears on the screen for a short time. For each TIF file organization (strips or tiles) there is an algorithm to extract a “Working data” sub-zone. In the above picture a “Cij” element is referred to as the color element (pixel) at the row i and column j in a certain strip. Li is referred to as the line(row) i in a strip. A strip contains one or more lines of pixels. When a “Working data” covers a strip, the entire strip is loaded from the file and then only the necessary zone is extracted from the strip. A “Working data” zone can cover one or more strips – all of them are read from the file. This leads to slow performance if the TIF file has a big width. For this reason, the TIF tile organization is preferred because it is much faster. Figure 3. TIF Tile Organization 163 Applied Methods The tile number increases from left to right and from top to bottom. Each tile has a fixed number of rows and columns. These parameters are established when the map is exported. The “Cij” elements are referred to as color elements (pixels) in a tile. A working data can cover one or more tiles. Only the covered tiles are loaded from the file and after that only the area of interest is kept in the main memory. The tile organization is faster than the strip organization because less information has to be loaded from the file at each “Working data” update. In the program, for configuring the GPS and receiving GPS sentences it was used the framework “Smart Device Framework 1.2”. The next three figures represent the main screens of the program used for: set GPS characteristics, display GPS information and find GPS coordinates on a TIF map. Figure 4. Screen from application used for GPS Settings Figure 5. Screen from application used for displaying GPS Information 164 Applied Methods Figure 6. Screen for finding GPS coordinates on map About PDA Personal digital assistants (PDAs) are handheld devices that were originally designed as personal organisers, but became much more versatile over the years. PDAs have many uses: calculating, use as a clock and calendar, playing computer games, accessing the Internet, sending and receiving e-mail, use as a radio or stereo, video recording, recording notes, use as an address book, GPS and use as a spreadsheet. Newer PDAs also have both color screens and audio capabilities, enabling them to be used as mobile phones (smartphone), web browsers or media players. Many PDAs can access the Internet, intranets or extranets via Wi-Fi, or Wireless Wide-Area Networks (WWANs). One of the most significant PDA characteristic is the presence of a touch screen. Touch screen PDAs, including Windows Pocket PC devices, usually have a detachable stylus that can be used on the touch screen. Interaction is then done by tapping the screen to activate buttons or menu choices, and dragging the stylus to, for example, highlight text. Text input is usually done in one of two ways: • Using a virtual keyboard, where a keyboard is shown on the touch screen. Input is done by tapping the letters. • Using letter or word recognition, where letters or words are written on the touch screen, and then "translated" to letters in the currently activated text field. Despite rigorous research and development projects, this data input method still requires much patience from the user since it tends to be rather inaccurate. The currently major PDA operating systems are: • Palm OS - owned by PalmSource 165 Applied Methods • Windows Mobile (Pocket PC), (based on the Windows CE kernel) - owned by Microsoft • RIM for the BlackBerry - owned by Research In Motion • Many operating systems based on the Linux kernel - free (not owned by any company). These include: • GPE - Based on GTK+/X11 • OPIE user interface/Qtopia - based on Qt/E Qtopia is developed by Trolltech, OPIE is a fork of Qtopia developed by volunteers • Symbian OS (formerly EPOC) owned by Ericsson, Motorola, Panasonic, Nokia, Samsung, Siemens and Sony Ericsson Many PDAs run using a variation of the ARM architecture (usually denoted by the Intel XScale trademark). This encompasses a class of RISC microprocessors that are widely used in mobile devices and embedded systems, and its design was influenced strongly by a popular 1970s/1980s CPU, the MOS Technology 6502. About GPS The Global Positioning System, usually called GPS, is the only fully-functional satellite navigation system. A constellation of more than two dozen GPS satellites broadcasts precise timing signals by radio, allowing any GPS receiver (abbreviated to GPSr) to accurately determine its location (longitude, latitude, and altitude) in any weather, day or night, anywhere on Earth. GPS has become a vital global utility, indispensable for modern navigation on land, sea, and air around the world, as well as an important tool for map-making and land surveying. GPS also provides an extremely precise time reference, required for telecommunications and some scientific research, including the study of earthquakes. GPS receivers can also gauge altitude and speed with a very high degree of accuracy. Calculating positions To calculate its position, a receiver first needs to know the precise time. To do this, it uses an internal crystal oscillator-based clock that is continually updated by the signals being sent in L1 from various satellites. At that point the receiver identifies the visible satellites by the distinct pattern in their C/A codes. It then looks up the ephemeris data for each satellite, which was captured from the NM and stored in memory. This data is used in a formula that calculates the precise location of the satellites at that point in time. Finally the receiver must calculate the time delay to each satellite. To do this, it produces an identical C/A sequence from a known seed number. The time delay is calculated by increasingly delaying the local signal and comparing it to the one received from the satellite; at some point the two signals will match up, and that delay is the time needed for the signal to reach the receiver. The delay is generally between 65 and 85 milliseconds. The distance to that satellite can then be calculated directly, the so-called pseudorange. The receiver now has two key pieces of information: an accurate estimate of the position of the satellite, and an accurate measurement of the distance to that satellite. This tells the receiver that it lies on the surface of an imaginary sphere whose radius is that distance. To calculate the precise position, at least four such measurements are taken simultaneously. This places the receiver at the intersection of the four imaginary spheres. Since the C/A pattern repeats every millisecond, it can only be used to place the user within 166 Applied Methods 300 kilometers (180 mi). Thus the multiple measurements are also needed to determine whether the receiver has lined up its internal C/A code properly, or is "one off". The calculation of the position of the satellite, and thus the time delay and range to it, all depend on the accuracy of the local clock. The satellites themselves are equipped with extremely accurate atomic clocks, but this is not economically feasible for a receiver. Instead, the system takes redundant measurements to re-capture the correct clock information. To understand how this works, consider a local clock that is off by 0.1 microseconds, or about 30 meters (100 ft) when converted to distance. When the position is calculated using this clock, the range measurements to each of the satellites will read 30 meters too long. In this case the four spheres will not overlap at a point, instead each sphere will intersect at a different point, resulting in several potential positions about 30 meters apart. The receiver then uses a mathematical technique to calculate the clock error that would produce this offset, in this case 0.1 microseconds, adjusts the range measurements by this amount, and then updates the internal clock to make it more accurate. This technique can be applied with any four satellites. Commercial receivers therefore attempt to "tune in" to as many satellites as possible, and repeatedly make this correction. In doing so, clock errors can be reduced almost to zero. In practice, anywhere from six to ten measurements are taken in order to round out errors, and civilian receivers generally have 10 to 12 channels in total. Calculating a position with the P(Y) signal is generally similar in concept, assuming one can decrypt it. The encryption is essentially a safety mechanism; if a signal can be successfully decrypted, it is reasonable to assume it is a real signal being sent by a GPS satellite. In comparison, civil receivers are highly vulnerable to spoofing since a set of navigationally consistent C/A signals can be generated using readily available off the shelf signal generators. Even if the victim receiver incorporates RAIM features it will still "buy in' to the spoofing signals since RAIM only checks to make sure the signals make sense from a navigational perspective. Accuracy Best case. The position calculated by a GPS receiver relies on three accurate measurements: the current time, the position of the satellite, and the time delay for the signal. Errors in the clock signal can be reduced using the method above, meaning that the overall accuracy of the system is generally based on the accuracy of the position and delay. The measurement of the delay requires the receiver to "lock onto" the same sequence of bits being sent from the satellite. This can be made relatively accurate by timing comparing the rising or trailing edges of the bits. Modern electronics can lock the two signals to about 1% of a bit time, or in this case about 1% of a microsecond. Since light travels at 299,792,458 m/s, this represents an error of about 3 meters (10 ft), the minimum error possible given the timing of the C/A signal. This can be improved by using the higher-speed P(Y) signal, assuming the same 1% accuracy in locking the retrieved P-code to the internally generated version. In this case the same calculation results in an accuracy of about 30 centimeters (1 ft). Since the P-code repeats at 10.23 MHz, it has a "repeat range" of about 30 kilometers (20 mi). This explains the terminology; when using the P-code, it was first necessary to calculate a coarse position with the C/A code in order to determine how to line up the P-code with the internally generated copy. 167 Applied Methods Atmospheric effects. One of the biggest problems for GPS accuracy is that changing atmospheric conditions change the speed of the GPS signals unpredictably as they pass through the ionosphere. The effect is minimized when the satellite is directly overhead and becomes greater toward the horizon, since the satellite signals must travel through the greater "thickness" of the ionosphere as the angle increases. Once the receiver's rough location is known, an internal mathematical model can be used to estimate and correct for the error. Because ionospheric delay affects the speed of radio waves differently based on their frequencies, the second frequency band (L2) can be used to help eliminate this type of error. Some military and expensive survey-grade civilian receivers can compare the difference between the P(Y) signal carried in the L1 and L2 frequencies to measure atmospheric delay and apply precise corrections. This correction can be applied even without decrypting the P(Y) signal, as long as the encryption key is the same on both channels. In order to make this easier, the U.S. Government has added a new civilian signal on L2, called L2C, starting with the Block IIR-M satellites. The first Block IIR-M was launched in 2005. It allows a direct comparison of the L1 and L2 signals for ionospheric correction. The effects of the ionosphere are generally slow-moving and can easily be tracked. The effects for any particular geographical area can be easily calculated by comparing the GPS-measured position to a known surveyed location. This correction, say, "10 meters to the east" is also valid for other receivers in the same general location. Several systems send this information over radio or other links to the receivers, allowing them to make better corrections than a comparison of L1 and L2 alone could. The amount of humidity in the air also has a delaying effect on the signal, resulting in errors similar to those generated in the ionosphere but located much closer to the ground in the troposphere. The areas affected by these problems tend to be smaller in area and faster moving than the billows in the ionosphere, making accurate correction for these effects more difficult. Multipath effects. GPS signals can also be affected by multipath issues, where the radio signals reflect off surrounding terrain; buildings, canyon walls, hard ground, etc. This delay in reaching the receiver causes inaccuracy. A variety of receiver techniques, most notably narrow correlator spacing, have been developed to mitigate multipath errors. For long delay multipath, the receiver itself can recognize the wayward signal and discard it. To address shorter delay multipath from the signal reflecting off the ground, specialized antennas may be used. This form of multipath is harder to filter out since it is only slightly delayed as compared to the direct signal, causing effects almost indistinguishable from routine fluctuations in atmospheric delay. Multipath effects are much less severe in dynamic applications such as cars and planes. When the GPS antenna is moving, the false solutions using reflected signals quickly fail to converge and only the direct signals result in stable solutions. Ephemeris and clock errors. The navigation message from a satellite is sent out only every 12.5 minutes. In reality, the data contained in these messages tends to be "out of date" by an even larger amount. Consider the case when a GPS satellite is boosted back into a proper orbit; for some time following the maneuver, the receiver’s calculation of the satellite's position will be incorrect until it receives another ephemeris update. Additionally, the amount of accuracy sent in the ephemeris is limited by the bandwidth; using the data from the satellites alone limits its accuracy. 168 Applied Methods Further, while it is true that the onboard clocks are extremely accurate, they do suffer from clock drift. This problem tends to be very small, but may add up to 2 meters (6 ft) of inaccuracy. These sorts of errors are even more "stable" than ionospheric problems and tend to change on the order of days or weeks, as opposed to minutes. This makes correcting for these errors fairly simple by sending out a more accurate almanac on a separate channel. Conclusions GPS allows receivers to accurately calculate their distance from the GPS satellites. The receivers do this by measuring the time delay between when the satellite sent the signal and the local time when the signal was received. This delay, multiplied by the speed of light, gives the distance to that satellite. The receiver also calculates the position of the satellite based on information periodically sent in the same signal. By comparing the two, position and range, the receiver can discover its own location. Several "real world" effects intrude and degrade the accuracy of the system. These are outlined in the table below (Table 3), with descriptions following. When all of these effects are added up, GPS is typically accurate to about 15 meters (50 ft). Table 3. Sources of GPS error Source Effect Ionospheric effects ± 5 meter Ephemeris errors ± 2.5 meter Satellite clock errors ± 2 meter Multipath distortion ± 1 meter Tropospheric effects ± 0.5 meter Numerical errors ± 1 meter or less Differential GPS (DGPS) helps correct these errors. The basic idea is to gauge GPS inaccuracy at a stationary receiver station with a known location. Since the DGPS hardware at the station already knows its own position, it can easily calculate its receiver's inaccuracy. The station then broadcasts a radio signal to all DGPS-equipped receivers in the area, providing signal correction information for that area. In general, access to this correction information makes DGPS receivers much more accurate than ordinary receivers. The most essential function of a GPS receiver is to pick up the transmissions of at least four satellites and combine the information in those transmissions with information in an electronic almanac, all in order to figure out the receiver's position on Earth. Once the receiver makes this calculation, it can tell you the latitude, longitude and altitude (or some similar measurement) of its current position. 169 Applied Methods References 1. Federal Aviation Administration, FAA WAAS fact-sheet, EGNOS, the European equivalent, went on-line in 2005. 2. Hydrographic Journal. Developments in Global Navigation Satellite Systems. April 2002. 3. United States Department of Defense. Announcement of Initial Operational Capability. December 8, 1993. 4. National Archives and Records Administration. U.S. Global positioning system policy. March 29, 1996. 5. Federal Highway Administration. Nationwide DGPS Program Fact Sheet. 6. Office of Science and Technology Policy. Presidential statement to stop degrading GPS. May 1, 2000. 7. HowStuffWorks. How GPS Receivers Work. 8. 9. 10. 11. 12. 13. Dana, Peter H. GPS Orbital Planes. August 8, 1996. USNO. NAVSTAR Global Positioning System. NMEA NMEA 2000 Rizos, Chris. University of New South Wales. GPS Satellite Signals. 1999. Physics Today. Relativity and GPS. May 2002. Deines, Uncompensated relativity effects for a ground-based GPSA receiver, Position Location and Navigation Symposium, 1992. Record. '500 Years After Columbus — Navigation Challenges of Tomorrow'. IEEE PLANS '92. United States Naval Research Laboratory. National Medal of Technology for GPS. November 21, 2005 Phrack. Issue 0x3c (60), article 13. December 28, 2002. GPS World. The hunt for an unintentional GPS jammer. January 1, 2003. Ruley, John. AVweb. GPS jamming. February 12, 2003. Space Environment Center. SEC Navigation Systems GPS Page. August 26, 1996. American Forces Press Service. CENTCOM charts progress. March 25, 2003. Peter H. Dana: Global Positioning System Overview — Large amount of technical information and discussion. Simplified explanation of GPS at howstuffworks.com GPS SPS Signal Specification, 2nd Edition — The official (civilian) signal specification. Satellite Navigation: GPS & Galileo (PDF) — 16-page paper about the history and working of GPS, touching on the upcoming Galileo History of GPS, including information about each satellite's configuration and launch. The GPS Joint Program Office (GPS JPO) — Responsible for designing and acquiring the system on behalf of the US Government. University of New Brunswick, In Simple Terms, How Does GPS Work? 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 1 Nicolae - Iulian Enescu is Teaching Assistant at the Computer Systems and Communications Department at the Faculty of Automation, Computers and Electronics, University of Craiova, Romania. In July 2000 he graduated the Faculty of Automation, Computers and Electronics at the University of Craiova. From 2001 he is PhD student at the Academy of Economic Studies, Faculty of Cybernetics, Statistics and Economic Informatics. He is author and coauthor of more than 20 journal articles and scientific presentations at conferences, and coauthor of 3 books. His work focuses on the data communication, assembler, programming techniques, high level programming languages, databases and software testing. He collaborate with many IT&C Companies for developing some software projects. 170

Download PDF

advertising