CROSS REFERENCE TO RELATED APPLICATIONS

[0001]
This application claims the benefit of priority to U.S. patent application Serial No. 60/100,837, filed Sep. 18, 1998, the contents of which is incorporated herein.
FIELD OF THE INVENTION

[0002]
The present invention relates to methods of information processing in satellite navigation systems with differential positioning of a mobile user.
BACKGROUND OF THE INVENTION

[0003]
Satellite navigation systems, such as GPS (USA) and GLONASS (Russia), are intended for high accuracy selfpositioning of different users possessing special navigation receivers. A navigation receiver receives and processes radio signals broadcasted by satellites located within lineofsight distance. The satellite signals comprise carrier signals which are modulated by pseudorandom binary codes, which are then used to measure the delay relative to local reference clock or oscillator. These measurements enable one to determine the socalled pseudoranges between the receiver and the satellites. The pseudoranges are different from true ranges (distances) between the receiver and the satellites due to variations in the time scales of the satellites and receiver and various noise sources. To produce these time scales, each satellite has its own onboard atomic clock, and the receiver has its own onboard clock, which usually comprises a quartz crystal. If the number of satellites is large enough (more than four), then the measured pseudoranges can be processed to determine the user location (e.g., X, Y, and Z coordinates) and to reconcile the variations in the time scales. Finding the user location by this process is often referred to as solving a navigational problem or task.

[0004]
The necessity to guarantee the solution of navigational tasks with accuracy better than 10 meters, and the desire to raise the stability and reliability of measurements, have led to the development of the mode of “differential navigation ranging”, also called “differential navigation” (DN). In the DN mode, the task of finding the user position is performed relative to a Base station (Base), the coordinates of which are known with the high accuracy and precision. The Base station has a navigation receiver which receives the signals of the satellites and processes them to generate measurements. The results of these measurements enable one to calculate corrections, which are then transmitted to the user that also uses a navigation receiver. By using these corrections, the user obtains the ability to compensate for the major part of the strongly correlated errors in the measured pseudoranges, and to substantially improve the accuracy of his or her positioning.

[0005]
Usually, the Base station is immobile during measurements. The user may be either immobile or mobile. Later on, we will call such a user “the Rover.” The location coordinates of a moving Rover are continuously changing, and should be referenced to a time scale.

[0006]
Depending on the navigational tasks to be solved, different modes of operation may be used in the DN mode. They differ in the way in which the measurement results are transmitted from the Base to the Rover. In the Postprocessing (PP) mode, these results are transmitted as digital recordings and go to the user after all the measurements have been finished. In the PP mode, the user reconstructs his or her location for definite moments in the past.

[0007]
Another mode is the RealTime Processing (RTP) mode, and it provides for the positioning of the Rover receiver just during the measurements. The RTP mode uses a communication link (usually it is a radio communication link), through which all the necessary information is transmitted from the Base to the Rover receiver in digital form.

[0008]
Further improvement of accuracy of differential navigation may be reached by supplementing the measurements of the pseudoranges with the measurements of the phases of the satellite carrier signals. If one measures the carrier phase of the signal received from a satellite in the Base receiver and compares it with the carrier phase of the same satellite measured in the Rover receiver, one can obtain measurement accuracy to within several percent of the carrier's wavelength, i.e., to within several centimeters.

[0009]
The practical implementation of those advantages, which might be guaranteed by the measurement of the carrier phases, runs into the problem of there being ambiguities in the phase measurements.

[0010]
The ambiguities are caused by two factors. First, the difference of distances AD from any satellite to the Base and Rover is usually much greater than the carrier's wavelength A. Therefore, the difference in the phase delays of a carrier signal Δφ=ΔD/λ received by the Base and Rover receivers may substantially exceed one cycle. Second, it is not possible to measure the integer number of cycles in Δφ from the incoming satellite signals; one can only measure the fractional part of Δφ. Therefore, it is necessary to determine the integer part of Δφ, which is called the “ambiguity”. More precisely, we need to determine the set of all such integer parts for all the satellites being tracked, one integer part for each satellite. One has to determine this set along with other unknown values, which include the Rover's coordinates and the variations in the time scales.

[0011]
In a general way, the task of generating highlyaccurate navigation measurements is formulated as follows: it is necessary to determine the state vector of a system, with the vector containing η_{Σ }unknown components. Those include three Rover coordinates (usually along Cartesian axes X, Y, Z) in a given coordinate system (sometimes time derivatives of coordinates are added too); the variations of the time scales which is caused by the phase drift of the local main reference oscillator; and n integer unknown values associated with the ambiguities of the phase measurements of the carrier frequencies. The value of n is determined by the number of different carrier signals being processed, and accordingly coincides with the number of satellite channels actively functioning in the receiver. At least one satellite channel is used for each satellite whose broadcast signals are being received and processed by the receiver. Some satellites broadcast more than one codemodulated carrier signal, such as a GPS satellite which broadcasts a carrier in the L_{1 }frequency band and a carrier in the L_{2 }frequency band. If the receiver processes the carrier signals in both of the L_{1 }and L_{2 }bands, the number of satellite channels (n) increases correspondingly.

[0012]
Two sets of navigation parameters are measured by the Base and Rover receivers, respectively, and are used to determine the unknown state vector. Each set of parameters includes the pseudorange of each satellite to the receiver, and the full (complete) phase of each satellite carrier signal. Each pseudorange is obtained by measuring the time delay of a code modulation signal of the corresponding satellite. The code modulation signal is tracked by a delaylock loop (DLL) circuit in each satellite tracking channel. The full phase of a satellite's carrier signal is tracked by a phaselockloop (PLL) in the corresponding satellite tracking channel. An observation vector is generated as the collection of the measured navigation parameters for specific (definite) moments of time.

[0013]
The relationship between the state vector and the observation vector is defined by a wellknown system of navigation equations. Given an observation vector, the system of equations may be solved to find the state vector if the number of equations equals or exceeds the number of unknowns in the state vector. In the latter case, conventional statistical methods are used to solve the system: the least squares method, the method of dynamic Kalman filtering, and various modifications of these methods.

[0014]
Practical implementations of these methods in digital form may vary widely. In implementing or developing such a method on a processor, one usually must find a compromise between the accuracy of the results and speed of obtaining results for a given amount of processor capability, while not exceeding a certain amount of loading on the processor.

[0015]
The most used general scheme comprises the following steps. The measured values of the pseudoranges and full phases at specific (definite) moments of time, along with an indication of the satellites to which these measurements belong to and the time moments of the measurements, are transmitted from the Base to the Rover (such as through the communication link or as recordings). Corresponding values are measured in the Rover receiver. The processing includes the determination of the single differences of the pseudoranges and full phases between the Base and Rover measurements for each satellite. The strongly correlated errors are compensated (i.e., substantially cancelled) in the single differences. Then, the residuals of the single differences are calculated by subtraction of calculated values from the measured results. The processing of residuals allows one to linearize the initial system of navigation equations (sometimes several subsequent iterations are necessary for that), which makes possible the use of the well developed body of mathematics for solving systems of linear equations. The components of the state vector, with the n ambiguities included, are found as a result of the solution. But the calculated values of the ambiguities are not necessarily integer numbers, and are often floating point numbers. Because of this, they are called “float ambiguities”, or “floating ambiguities”, at this stage of the solution. To find true values of the integer ambiguities one uses the procedure of rounding off the float ambiguity vector to the nearest set of integers. This process is called ‘the ambiguity resolution’. Only after the ambiguity resolution has been done is it possible to determine the true values of residuals and then, by solving the system of equation again, to find the coordinate values for the baseline connecting the Base and Rover, and consequently to determine the exact coordinates of Rover and the correction to its clock drift.

[0016]
The described general scheme of computations is presented in more detail in the literature on satellite navigation. This presentation is the most complete in English in the book by Bradford W. Parkinson and James J. Spilker Jr., Global Positioning Theory and Applications, Volume 163 of Progress In Astronautics and Aeronautics, published by the American Institute of Aeronautics and Astronautics, Inc, Washington D.C., 1996. In Russian, the most complete presentation is in the book Network Satellite Radionavigating Systems, editor V. S. Shebshaevich, 2nd edition, Publ. House Radio and Communication, Moscow, 1993.

[0017]
The particular problems connected to the processing of the navigation information are considered in many articles, manuals and patents. Here we will dwell only on some of these problems which directly concern the subjects of the present inventions.

[0018]
The first problem concerns the task of aligning (or synchronizing) the Base and Rover measurements to the same moment of time. This is a necessary condition for good compensation in the single differences of strongly correlated errors which change with time. The task of aligning can be solved by two ways: the first way, which is called the mode of “matched observation processing”, delays the use of the Rover measurements until the corresponding Base measurements are received. This mode is poorly suited for Rovers in speedy motion, for which the positioning at definite, precisely fixed moments of time is required. The second way, which is called the mode of “low latency position processing”, extrapolates the Base measurements forward in time up to the moment of reception of the corresponding Rover measurements. This mode is better suited to the task of generating accurate Rover coordinate at time moments which are arbitrarily chosen by a user or an application program at the Rover location.

[0019]
In existing systems, different extrapolation methods are used, starting from the elementary linear prediction, which sometimes is sufficient for small prediction times (about several seconds). For longer prediction times (such as between 30 s and 60 s) it is recommended to take into account the statistic characteristics of the processes to be predicted, which mainly depend on the presence of selective access (in the system GPS), and on fluctuations of reference generators on board the satellites and the Base receiver. For such cases, one uses the extrapolation with the help of the Kalman filter. One of the possible variants of such an extrapolation unit is described in the article by J. Neumann, et al., entitled “Test Results from a New 2 cm Real Time Kinematics GPS Positioning System,” The Proceedings of the 9th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GPS96), 1996, pp. 873882. The essential difficulty in applying conventional extrapolation methods is that these methods are not designed for the occurrence of large abnormal errors in measurements which are used to base the predictions. The abnormal errors usually occur when the communication link between the Base and Rover operates in an environment having a large number of buildings and other objects which generate a large number of reflected signals. The signal received by moving Rover frequently fades, and the transmitted information is deformed by noise. To guarantee good predictions, it is necessary to analyze the incoming information and to exclude intervals of time containing abnormal errors. One set of methods for such an analysis is proposed as a first invention of this patent application.

[0020]
Another problem arising during the solution of a navigation problem using the phase measurements is caused by the possible appearance of cycle slips in the PLL circuits which are tracking the satellite carrier signals. After a cycle slip occurs, the PLL circuit transits to a new point of steady balance, after which it goes on with tracking the satellite carrier signal. As a result of a cycle slip, an abnormal error equal to several integer number of semicycles (halfcycles) is introduced into the full phase measurements. Such an error may make computed position coordinates completely worthless. Sometimes it is possible to detect the appearance of a cycle slip by directly observing the rate of change of the full phase. During a cycle slip, this rate usually jumps in value, and this provides an opportunity to detect the slip. In some cases, it is possible to detect a cycle slip from implicit symptoms and signs. For example, a cycle slip is often accompanied with a deep fading of the signal amplitude, and the occurrence of the slip can be detected by detecting the fading of the signal. However, such a method of cycle slip detection does not have sufficient reliability. The characteristics of the slip process, as well as the reasons causing it, are very variable. There exist ‘slow’ slips where the rate of the phase change differs only slightly from the usual rate of phase change due to the Rover's movement, and correspondingly, the cycle slip often cannot be detected by this symptom. The amplitude fading does not always coincide with the cycle slip appearance either. When measurements from a large number of satellite channels are used, it is possible to identify the channels for which the measurement results strongly differ from predictions made on the basis of data from other channels, and thereby to detect the slip. However, a substantial increase in the volume of calculations might be necessary to determine which set of channels have generated bad measurements. In addition, the sufficient amount of redundancy is often lacking. If the slip is nevertheless detected, it is necessary to make a decision on how to react to the slip. Thus, for example, if the number of active satellite channels is large enough, it is possible to exclude the channel for which the cycle slip is detected from further consideration. One may also act differently: having waited until the completion of the slip, one can resolve the ambiguity of phase measurements anew, with the affected channel included. For that it would be necessary to spend some time during which the generation of highlyaccurate coordinates would stop, which is sometimes extremely undesirable.

[0021]
The correction for the cycle slip immediately after its completion would be the best solution; but to do so, one has to measure the sign and value of the cycle slip. One of the methods to correct the phase slip was proposed by Isomura in U.S. Pat. No. 5,502,641. The following steps were proposed in that method:

[0022]
1. Recording the time moment at which a satellite carrier signal first disappears, and determining the rate of change in the carrier's full phase during the time period just before the disappearance; this rate of change is called the “initial rate of change”;

[0023]
2. Recording the time moment at which the satellite carrier signal reappears and determining the rate of change in the carrier's full phase just after the reappearance; this rate of change is called the “final rate of change”;

[0024]
3. Calculating a predicted value of the full phase at the time moment of its reappearance based on the initial and final values of the rate of change, and on the measured value of the full phase before the signal disappearance;

[0025]
4. Comparing the predicted value with the value of the full phase measured accumulated by the tracking channel at the time of the signal's reappearance. If these values differ by more than a semicycle (halfcycle), one may assume that a cycle slip took place and take the corresponding correction.

[0026]
We must note the fact that this method would give satisfactory results only in cases when the Rover does not change its velocity during the disappearance of the satellite carrier signal. We also point out that when a satellite signal is blocked from the receiver's antenna, the satellite signal can be reflected off of a nearby object or the ground and reach the antenna by a different path as a reflected signal. If this occurs, cycle slips may occur because of the difference in path lengths, and the Isomura method may not detect the slips because the method may not see the disappearance of the direct satellite signal. A second invention of the present application is directed to apparatuses and methods of cycleslip detection which are based on a set of specific symptoms of the cycle slip, and therefore have higher reliability for Rover's making fast maneuvers.

[0027]
A third problem relating to the solution of a navigation problem using the phase measurements concerns the ambiguity resolution stage. As it was already noted, the first part of this stage comprises the step of obtaining sufficiently accurate estimates of the float ambiguities. Typical computational methods for this task provide for the gradual accumulation of information that depends on the number and locations of the satellites, and correspondingly, the accuracy of estimation of the float ambiguities increases with time due to the smoothing of fluctuations in the measurements, and due to the geometry change in the satellite constellation.

[0028]
A substantial number of works have been published that considered computational procedures for obtaining the float ambiguity estimations with sufficient accuracy in the shortest possible time. The computational speed of the processor used imposes the natural limitations here. That is why one tries to lower the loading on the processor, sometimes even to the detriment of accuracy.

[0029]
Several of the publications use computations based upon Kalman filtering. The previouslymentioned article by J. B. Neumann, et al., (ION GPS96) describes a Kalman filter method which simultaneously estimates the coordinates of the baseline and the floating ambiguities. The estimations are generated with delay after the corresponding measurements of the Base station have been received by the Rover. In the article entitled “Instant RTK cm with Low Cost GPS+GLONASS™ C/A Recievers” by D. Kozlov and M. Tkachenko, in The Proceedings of the 10th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GPS97), 1997, pp. 15591569, a method of generating the Kalman filter that provides the separate smoothing of float ambiguity estimates was considered. Various different methods for improving or simplifying the numerical computations have been proposed in several issued patents. In U.S. Pat. No. 4,812,991 to R. R. Hatch, it was proposed to smooth the code measurements by increments of the phase measurements separately for each satellite. After that smoothing, the baseline vector is estimated by the least squares method which uses the smoothed values of the pseudoranges. The method allows one to diminish the processor load substantially as it completely omits the step of ambiguity resolution. But this is achieved at the expense of a substantial decrease in the positioning accuracy. A similar idea of smoothing was used in the U.S. Pat. No. 5,451,964 to B. A. Babu, et al. Here the code measurements smoothing allows one to decrease the search zone for the integer ambiguity vector and, as a result, to reduce the time to find the correct resolution. A third invention of the present application is directed to methods which smooth the floating ambiguity estimates by a recurrent least squares method which is applied simultaneously and jointly to all of the satellite channels. It enables one to accelerate the obtaining of reliable integer ambiguities at an acceptable processor load.
SUMMARY OF THE INVENTION

[0030]
The present application discloses three general invention areas (methods and apparatuses therefor), each of which pertains to the navigation parameters (pseudorange and full phase) with the object of determining the baseline coordinates in the system of differential satellite navigation with greater and more reliable accuracy. The three inventions are preferably used together, but may be used separately, if desired. As a basis for practicing the inventions, the navigation parameters are measured by a receiver situated at a Base station (also called the reference station), and by a Rover receiver, which is usually mobile. The coordinates of the Base receiver are known exactly. The coordinates of the Rover receiver are estimated relative to Base receiver. The coordinates of the Base receiver are typically transmitted to the Rover through the communication links. However, postprocessing of the measurements by the inventions may be performed at a subsequent time, either at the Rover location or the Base location, or another location. The processing processor and the user of navigation information are both typically situated at the Rover receiver. However, this is not necessarily the case if one wishes to use the inventions in a postprocessing mode. The first invention relates to the extrapolation of measurements from the Base station, the second invention relates to the detection and correction of cycle slips in the PLL circuits of one or both of the Base and Rover receivers, and the third invention relates to the computation of the floating ambiguity estimates. These inventions enable one to improve the accuracy, reliability and efficacy of the determination of relative position using differential navigation measurements.

[0031]
Each of the inventions relates to one of a number of general stages that are used to generate accurate baseline coordinates to the Rover by differential navigation. The three general stages implemented by the three inventions of this application are intermediate stages in the overall process of computing the coordinates of the baseline. The subsequent processing stages comprise the integer ambiguity resolution stage, the stage of computing the baseline coordinates, and the stage of correcting the time scale. These subsequent stages are implemented according to wellknown methods described in the literature. A detailed description of these wellknown methods in this application is not needed for one of ordinary skill in the art to make and use the present inventions.

[0032]
The first invention related to extrapolation takes into account abnormal and anomalous errors in the measurements of the navigation parameters made by the Base receiver and computes the predicted values for the Rover receiver only on the basis of reliable measurements from the Base receiver.

[0033]
The second invention related to cycle slip detection and correction is based upon the system of the measurement of cycle mismatch in a multiloop tracking system which tracks the Rover movement with the signals from several of the visible satellites. The channel where the cycle slip took place is detected from the mismatch value, and the corresponding correction is introduced. The method provides for switching off channels with the abnormal or anomalous errors, which prevents their influence upon the measurement results.

[0034]
The third invention related to estimations of the floating ambiguities comprises recurrent procedures which are based upon the joint processing by a leastsquares method of the set of code and phase measurements in all satellite channels. The third invention provides the gradual smoothing of errors of those components of the state vector which remain constant, and achieves the necessary accuracy in a relatively short time and at a tolerable processor load.

[0035]
Some embodiments of these inventions also employ the joint tracking loops for jointly tracking the phases of the satellite carrier signals which are described in our copending patent application Ser. No. 09/330,221, filed Jun. 10, 1999, entitled “The Joint Tracking of the Carrier Phases of the Signals Received from Different Satellites”, assigned to the assignee of the present application and incorporated herein by reference, and claiming priority to the earlier provisional patent application Ser. No. 60/091,004, filed Jun. 10, 1998, incorporated herein by reference. As a brief summary, the joint tracking loops generate correction signals to many or all of the PPL circuits which account for events which affect the tracking the PLL circuits in a common manner. These are called “common events.” Such common events include the drift in the receiver's clock and the movement of the receiver's position. When the satellite signal tracked by a PLL circuit is temporarily blocked, the correction signal for that PLL circuit enables the PLL circuit to adjust its phase to account for the phase changes caused by common events that occur during the blockage. As a result, the number of cycle slips that could occur during a blockage of the satellite signal is reduced. While the use of the joint tracking loops provides many benefits, is it not necessary for one to make, use, and practice the inventions disclosed in this application.
BRIEF DESCRIPTION OF THE DRAWINGS

[0036]
[0036]FIG. 1 shows a schematic diagram of the registers and the main units of the extrapolation methods and apparatuses according to the first invention of the present application;

[0037]
[0037]FIG. 2 shows the general block schematic diagram of the cycleslip detection and correction methods and apparatuses according to the second invention of the present application;

[0038]
[0038]FIG. 3 shows a graph of the nonlinear characteristic of a first output from the cycleslip correction unit according to the second invention of the present application;

[0039]
[0039]FIG. 4 shows a graph of the nonlinear characteristic of a second output of the cycleslip correction unit according to the second invention of the present application;

[0040]
[0040]FIG. 5 shows a flow diagram of an exemplary method of generating the blocking signal according to the second invention;

[0041]
[0041]FIG. 6 is a time graph showing the residual of the single phase difference in the channel No. 8 measured with the simulation model: curve (a) shows the residual without the cycle slip correction (Δφ_{i}), and curve (b) shows the residual with the cycle slip correction (Δφ_{i} ^{c}) according to the second invention;

[0042]
[0042]FIG. 7 is a time graph showing the residual of the single phase difference in the channel No. 8 on an enlarged scale (the fragment ‘A’ of the plot in FIG. 6): curve (a) shows the residual without the slip correction (Δφ_{i}), and curve (b) shows the residual with the slip correction (Δφ_{i} ^{c}) according to the second invention;

[0043]
[0043]FIG. 8 is a time graph showing the residual of the single phase difference in the channel No. 7 determined with the aid of a simulation model: curve (a) ) shows the residual without the slip correction (Δφ_{i}), and curve (b)) shows the residual with the slip correction (Δφ_{i} ^{c}) according to the second invention; and

[0044]
[0044]FIG. 9 is a time graph showing the form of the cycle slip correction in the channel No. 7 according to the second invention.

[0045]
[0045]FIGS. 10A and 10B are small signal models of the individual loop of the cycleslip correction and detection methods and apparatus according to the present invention.

[0046]
[0046]FIG. 11 is a small signal model of the common loops of the cycleslip correction and detection methods and apparatus according to the present invention.

[0047]
[0047]FIG. 12 is a schematic diagram of an exemplary processor for implementing the floating ambiguity resolution according to the present invention.
DETAILED DESCRIPTION OF THE INVENTION

[0048]
Tutorial on the Structure of the Satellite Signals and Coherent Navigation Receivers.

[0049]
Before describing the inventions of the present application, we briefly describe the structure of the satellite signals and of a typical receiver suitable for differential navigation applications.

[0050]
Each of the satellites radiates signals in two frequency bands: the L1 band and the L2 band. Two carrier signals are simultaneously transmitted in the L1band; both carrier signals have the same frequency, but are shifted in phase by π/2 (90°). The first L1 carrier signal is modulated by the clear acquisition C/Acode signal and the second L1 carrier signal is modulated by the precision Pcode signal. One carrier signal is transmitted in the L2 band, and uses a different frequency than the L1 carrier signals. The L2 carrier signal is modulated by the same Pcode signal used to modulate the second L1 carrier signal. These carrier frequencies are between 1 GHz and 2 GHz in value. Each C/Acode signal and Pcode signal comprises a repeating sequence of segments, or “chips”, where each chip is of a predetermined time period (Δ) and has a preselected value, which is either +1 or −1. The segment values follow a pseudorandom pattern, and thus the C/Acodes and the Pcodes are called pseudorandom code signals, or PRcode signals. Additionally, before each C/Acode signal and Pcode signal is modulated onto its respective carrier signal, each code signal is modulated by a low frequency (50 Hz) information signal (socalled information symbols).

[0051]
The approximate distance between a satellite and a receiver is equal to the speed of light c multiplied by the transmission time it takes the satellite signal to reach the receiver. This approximate distance is called the pseudorange γ, and it can be corrected for certain errors to find a corrected distance D between the satellite and the receiver. There is a pseudorage between each visible satellite and the receiver. The transmission time from satellite to receiver is measured with the aid of clocks in the receiver and the satellite, and with the aid of several time scales (i.e., timing marks) present within the received satellite signal. The clocks in the satellites and the receiver are set to substantially the same time, but it is assumed that the receiver clock has a time offset τ because the receiver clock is based upon a quartzcrystal whereas each satellite clock is based upon a more accurate atomic reference clock. The receiver has the orbital patterns of the satellites stored in a memory, and it can determine the orbital position of the satellites based on the time of its clock. The receiver reads the timing marks on the satellite's signal, and compares them against it own clock to determine the transmission time from satellite to receiver. The satellite's lowfrequency (50 Hz) information signal provides the least precise timing information, the C/Acode signal provides the next most precise timing information, and the Pcode signal provides the most precise timing information. The pseudorange is determined from the lowfrequency information signal and the C/Acode signal for civilian users and some military users, and is determined from the lowfrequency information signal and the Pcode signal for most military users. Accurate use of the Pcode signal requires knowledge of a certain code signal which is only known to military users. Precision better than that provided by the Pcode signal can be obtained by measuring the phase of the satellite carrier signal in a differential navigation mode using two receivers.

[0052]
A typical receiver for differential navigation applications has a frequency downconversion unit and several individual tracking channels of the coherent type. The downconversion unit provides downconverted versions of the satellite signals to the channels, with the downconverted signals having frequencies generally in the range of 10 MHz to 20 MHz. Each channel tracks a selected one of the satellite signals. Each tracking channel measures the delay of one PRcode signal within the satellite signal (e.g., C/Acode or Pcode signal), and also the phase of the downconverter version of the satellite's carrier signal. A typical tracking channel comprises a DelayLock Loop (DLL) circuit for tracking the delay of the PRcode, a PhaseLock Loop (PLL) circuit for tracking the phase of the satellite's carrier signal, and three correlators which generate the input signals for the DLL and PLL circuits. Each correlator multiplies the combined collection of the downconverted satellite signals with a reference carrier signal from the PLL circuit and with a reference code signal from the DLL circuit, and then accumulates (or integrates) the resulting multiplication products over set time intervals ΔT_{A }in an accumulator. At the end of each interval ΔT_{A}, the value held in the accumulator is output as the correlation signal of the correlator, and the contents of the accumulator is reset to zero in preparation for the next accumulation interval. The outputs of the correlators are, therefore, discretetime signals which are generated at a rate of 1/ΔT_{A }values per second.

[0053]
The DLL circuit in each channel generates two or more reference code signals which are different from one another (such as by form and/or by phase shift). Each reference code is based upon the PRcode signal of the satellite being tracked, and each reference code signal has a range of high correlation with the satellite code signal being tracked. Also, for GPS satellite signals, each of the channel's reference code signals has substantially no correlation with the code signals of other satellites. This enables a receiver channel to select and isolate one of the downconverted GPS satellite signals from the collection of downconverted GPS satellite signals provided by the downconvert unit. In the GLN system, the same C/Acode is used, but each satellite has a different carrier frequency, which enables a receiver channel to distinguish the satellites from one another.

[0054]
The reference carrier signal from the PLL circuit is coherently generated by a controlled oscillator of the PLL circuit, and its frequency and phase is controlled to correspond to the frequency and phase of the downconverted carrier signal for the satellite being tracked by the channel. We denote the frequency of the reference carrier signal as ƒ_{NCO }since the reference carrier frequency is often generated by a numericallycontrolled oscillator. The reference carrier signal is in quadrature format (e.g., cos(2π·ƒ_{NCO}·t) and sin(2π·ƒ_{NCO}·l)), and each correlator effectively multiplies the input signal by one of the quadrature components. Each quadrature component of the reference carrier signal may be a sinusoid, a square wave, a triangular wave, or other periodic waveform.

[0055]
The first correlator generates the “inphase” correlation signal I(i·ΔT_{A}). It is generated by multiplying the collection of downconverted satellite signals with the inphase component (e.g., cos(2π·ƒ_{NCO}·t)) of the coherent reference carrier signal, and with a reference code signal that is a scaled replica of the satellite's PRcode signal, and then accumulating the multiplication products as indicated above. The quantity i·ΔT_{A }represents the discrete time moments at which signal I(i·ΔT_{A}) is generated. The correlation signal I(i·ΔT_{A}) is used to demodulate the information symbol present within the satellite signal and to normalize the discriminator outputs generated in the DLL and PLL circuits to make them relatively invariant to changes in the signal strength of the received satellite signal.

[0056]
The second correlator of the tracking channel generates the quadrature correlation signal Q(i·ΔT_{A}). It is generated by multiplying the collection of downconverted satellite signals with a second reference PRcode signal, and with the quadrature component (e.g., sin(2π·ƒ_{NCO}·t)) of the coherent reference carrier signal, and then accumulating the resulting multiplication products as indicated above. The second reference PRcode signal is usually the same as the reference code signal used in the first correlator. The correlation signal Q(i·ΔT_{A}) is used by the PLL circuit to synchronize the reference carrier signal to the satellite's carrier signal. Correlation signals I(i·ΔT_{A}) and Q(i·ΔT_{A}) may be used together to measure the signal strength Z of the satellite carrier: Z^{2}=I^{2}(i·ΔT_{A})+Q^{2}(i·ΔT_{A}).

[0057]
The third correlator generates the main correlation signal dI(i·ΔT_{A}), which is used by the DLL circuit to control the generation of the reference code signals and to synchronize the reference code signal to the satellite's code signal. Signal dI(i·ΔT_{A}) may be generated by multiplying the collection of downconverted satellite signals with a strobed version of the satellite's PRcode signal, and with the inphase component (e.g., cos(2π·ƒ_{NCO}·t)) of the coherent reference carrier signal, and then accumulating the resulting multiplication products. A strobed version of the satellite's PRcode signal may comprise a sequence of short strobepulses, each pulse corresponding to a boundary (also called “end”) between two chips of the input PRcode signal where there is a change in the sign of the input PRcode signal, and having a polarity which corresponds that of the later chip.

[0058]
The phaselock loop (PLL) circuit is used to adjust the frequency (ƒ_{NCO}) of the reference carrier signal so that its phase follows the phase of the downconverted version of the satellite's carrier signal. The PLL circuit has a carrierphase discriminator which generates a phaseerror signal Ep as a function of the difference between the phase of the downconverted satellite carrier signal and the phase of the reference carrier signal. The phaseerror signal Ep may be generated from the correlation signals in any of the following ways:

E _{p} =Q(i·ΔT _{A}), or (1A)

E _{p}=arctan[Q(i·ΔT _{A})/I(i·ΔT _{A})], or (1B)

E _{p} =Q(i·ΔT _{A})/I(i·ΔT _{A}), or (1C)

E _{p} =Q(i·ΔT _{A})*Sgn[I(i·ΔT _{A})], or (1D)

E _{p} =Q(i·ΔT _{A})/Sgn[I(i·ΔT _{A})], or (1E)

E _{p} =Q(i·ΔT _{A})*I(i·ΔT _{A}), (1F)

[0059]
Where arctan(*) is the arctangent function (also called the “inverse tangent” function), and where Sgn(*) is the sign function, which has an output value of +1 when its input is zero or positive, and an output value or −1 when its input is negative. Each of these forms contains correlation function Q(i·ΔT_{A}), which is proportional to sin(φ), where φ is the phase difference between the phases of the downconverted satellite signal and the reference carrier signal.

[0060]
The phaseerror signal Ep from the PLL's discriminator is provided to a loop filter of the PLL circuit which determines the pass band and the servosystem type of the PLL circuit. The output of the PLL filter provides the control signal of the PLL circuit, and is provided to the generator of the reference carrier signal, where it is used to adjust the frequency (ƒ_{NCO}) of the reference carrier signal. The PLL circuit adjusts the phase shift φ until the achievement of the condition Ep=0 (i.e., Q=0, sin((φ)=0) and thus aligns the phases of the reference carrier signal with the satellite's carrier signal. This point (Ep=0) is known as the operating point, or the “point of steady balance,” for the PLL circuit.

[0061]
The relationship of the PLL's phaseerror signal Ep(φ) and the phase shift φ is substantially linear in a limited range of phase shifts φ nearby the point of steady balance for the PLL circuit, which is Ep=0. When large shifts are present, which can occur under the effect of large noise spikes or other strong disturbances, the PLL circuit can move to another point of steady balance which is an integer number of phase halfcycles away from the previous point of steady balance (±n*π, n=1, 2, 3, . . . ). This event is known as the “cycle slip effect,” and it impedes navigational measurements using the phase of the satellite's carrier signal.

[0062]
The abovedescribed satellite signal structure and coherent receiver structure are well known to the art and do not form a part of the present inventions.

[0063]
Tutorial on the Navigation Parameters.

[0064]
Because of the time offset τ and other error effects, the pseudorange γ between a satellite and a receiver is usually not the actual distance between the satellite and the receiver. By looking at the pseudoranges of four or more satellites, there are wellknown methods of estimating the time offset τ of the receiver and of accounting for some of the error effects to generate the computed distance D between the satellites and the receiver. The receiver's position may then be computed. However, because of various sources of noise and the relatively low resolution of the pseudorandom code signal, the true distances (i.e. true ranges), and receiver's position coordinates will not be exactly known, and will ha, C errors.

[0065]
In theory, more precise values for the receiver's position and clock offset could be obtained by measuring the number of carrier cycles that occur between each satellite and the receiver. The phase of the carrier of the satellite signal as transmitted by a satellite can be expressed as:
$\begin{array}{cc}\begin{array}{c}{\varphi}^{S}\ue8a0\left(t\right)={\Phi}_{0}^{S}+{\int}_{0}^{t}\ue89e{f}_{S}\xb7\uf74ct\\ ={\Phi}_{0}^{S}+{f}_{S}\xb7t\end{array}& \left(2\right)\end{array}$

[0066]
where Φ
_{0} ^{S }is an initial phase value, ƒ
_{S }is the satellite carrier frequency, and t is the satellite's time. Because the satellite carrier frequency is generated from a very precise time base, we may assume that ƒ
_{S }is a constant and not time dependent, and we may replace the above integral with ƒ
_{S}·t, as we have shown in the second line in the above equation. The phase of this signal when it reaches the receiver's antenna over the range distance D(t) is denoted as φ
^{S } _{A}(t), and its value would be:
$\begin{array}{cc}\begin{array}{c}{\varphi}_{A}^{S}\ue8a0\left(t\right)=\text{\hspace{1em}}\ue89e{\varphi}^{S}\ue8a0\left(tD\ue8a0\left(t\right)/c{\tau}_{\mathrm{ATM}}\ue8a0\left(t\right)\right)\\ =\text{\hspace{1em}}\ue89e{\Phi}_{0}^{S}+{f}_{S}\xb7\left(tD\ue8a0\left(t\right)/c{\tau}_{\mathrm{ATM}}\ue8a0\left(t\right)\right)\\ =\text{\hspace{1em}}\ue89e{\Phi}_{0}^{S}+{f}_{S}\xb7t{f}_{S}\xb7D\ue8a0\left(t\right)/c{f}_{S}\xb7{\tau}_{\mathrm{ATM}}\ue8a0\left(t\right),\end{array}& \left(3\right)\end{array}$

[0067]
where c is the speed of light, and where τ_{ATM}(t) is a delay due to anomalous atmospheric effects which occur mostly in the upper atmosphere. The number of cycles ƒ_{S}·τ_{ATM}(t) due to the atmospheric effects cannot be predicted or determined to within an accuracy of 1 carrier cycle by a standalone receiver (i.e., cannot be determined by absolute positioning). Therefore, one cannot reach the full potential accuracy of the carrier frequency in a standalone receiver configuration. However, the carrier phase can be very useful in a differential GPS mode where the phase of the satellite is measured at a rover station and a base station. φ^{S} _{A,R}(t) and φ^{S} _{A,B}(t) respectively, and then subtracted from one another. Over the short baseline between the rover and base stations, the atmospheric delay τ_{ATM}(t) in both of these phases is equal for practical purposes, and the difference in phases is:

φ^{S} _{A,R}(t)−φ^{S} _{A,B}(t)=ƒ_{S} ·D _{R}(t)/c−ƒ _{S} ·D _{B}(t)/c. (4)

[0068]
Notice that the terms Φ_{0} ^{S }and ƒ_{S}·t have also been cancelled from the difference. Presuming that the wave fronts of the satellite carrier signal are nearly planar by the time they reach the base and rover stations (because the satellites are at least 22.5 km away), and assuming that a wave front of the satellite carrier reaches one of the antennas first (either rover or base), the above difference is the number of additional wave fronts that the satellite carrier must travel before it reaches the second antenna (either base or rover). Given the angle between the baserover baseline vector and the lineofsight vector to the satellite from either of the stations, one can determine by trigonometry the number of carrier cycles that would lie along the baseline.

[0069]
However, the task of measuring carrier phase is not as easy at it appears. In practice, we must use nonideal receivers to measure the phases φ^{S} _{A,R}(t) and φ^{S} _{A,B}(t), with each receiver having a different clock offset with respect to the GPS time, and with each receiver having phase errors occurring during the measurement process. In addition, at the present time, it is not practical to individually count the carrier cycles as they are received by the receiver's antenna since the frequency of the carrier signal is over 1 GHz. However, the PLL loop can easily track the Dopplershift frequency ƒ_{D }of the carrier signal, which is in the kHz range. With a few assumptions, the phases φ^{S} _{A,R}(t) and φ^{S} _{A,B}(t) can be related to their respective Dopplershift frequencies. As is known in the art, the satellite transmits at a fixed frequency of ƒ_{S}, but the relative motion between the satellite and receiver causes the frequency seen by the receiver to be slightly shifted from the value of ƒ_{S }by the Doppler frequency ƒ_{D}. We may write the frequency seen by the receiver's antenna as ƒ_{S}+ƒ_{D}, where ƒ_{D }has a positive value when the distance between the satellite and receiver's antenna is shrinking, and a negative value when the distance is increasing. Each receiver can then assume that the received phase is proportional to the predictable amount of ƒ_{S}·t, minus the amount ƒ_{D}·t due to the Dopplershift. The Doppler amount ƒ_{D}·t is subtracted from ƒ_{S}·t because the Doppler frequency increases as the distance between the satellite and receiver's antenna decreases. The predictable amount ƒ_{S}·t will be the same for each receiver, but the Doppler frequencies will usually be different.

[0070]
As previously mentioned, the reference oscillator (e.g., NCO) of the PLL circuit tracks the frequency of a selected one of the downconverted satellite signals. As a result, it inherently tracks the Dopplershift frequency of the satellite's carrier signal. Before being provided to the PLL circuit, the carrier signal is downconverted from the GHz range by a local oscillator having a frequency ƒ_{L}. The frequency seen by the PLL circuit is (ƒ_{S}+ƒ_{D})−ƒ_{l}, which can be rearranged as: (ƒ_{S}−ƒ_{L})+ƒ_{D}. The quantity (ƒ_{S}−ƒ_{L}) is known as the pedestal frequency ƒ_{p}, which is typically around 10 MHz to 20 MHz. The PLL's reference oscillator tracks the downconverted frequency of ƒ_{p}+ƒ_{D}. We would like to integrate the frequency of the reference oscillator to obtain a phase observable which is proportional to −ƒ_{D}·t. Starting at a time moment T_{p }when the PLL circuit initially locks onto the downconverted satellite signal, with the time moment T_{p }being measured by the receiver's clock, we will generate a phase observable φ_{i}(T_{i}) at discrete time moments T_{i }of the receiver's clock T as follows:

φ_{i}(T _{i})=ƒ_{p,nom}·(T _{i} −T _{p})−φ_{iNCO}(T _{i}) (5)

[0071]
where ƒ_{p,nom }is the nominal value of the pedestal frequency, and where φ_{iNCO}(T_{i}) is the phase (integrated frequency) of the PLL's reference oscillator (e.g., NCO). The time moments T_{l }are spaced apart from each other by a time interval ΔT_{i}, as measured by the receiver's clock, and may be express as T_{i}=i·ΔT_{i}, where i is an integer. φ_{i}(T_{i}) is in units of cycles, and is proportional to the negative of the integrated Dopplershift frequency. This is because φ_{iNCO}(T_{i}) is proportional to the quantity (ƒ_{p}+ƒ_{D})·(T_{i}−T_{p}).

[0072]
We will now like to relate the change in phase of the satellite signal φ^{S} _{A}(t_{i}) as received by the receiver's antenna to the change in phase of φ_{iNCO}(T_{i}), but neglecting the atmospheric delay τ_{ATM}(t_{i}) since this delay will be canceled out when we take the difference between receivers. To do this, let use assume a hypothetical situation where the satellite is not in orbit, but is placed adjacent to the receiver's antenna with zero distance between them. We will first account for the time offsets between the clocks of the receiver and satellite, and then we will separate the satellite from the receiver and move it into its orbit. Finally, we will account for the phase shifts in the downconversion and PLL circuits of the receiver. Without loss of generality, we will assume that the satellite time clock t and the receiver time clock T are nearly the same, but that there is a timedependent offset τ between them. At discrete time moments T_{i }of the receiver clock, the two clocks may be related as follows: T_{l}=t_{l}+τ_{l}. with it being understood that τ_{i }varies with time. The hypothetical satellite signal at the receiver's antenna (with zero distance) is:

φ^{S}(t_{i})=Φ^{S} _{O}+ƒ_{S}·t_{i}. (6)

[0073]
Now, let us create a reference phase in the receiver which is of the form:

φ^{R}(t_{i})=Φ^{S} _{O}+ƒ_{S}·t_{i}. (7)

[0074]
where we start the reference phase at time t_{i}=0 with T_{i}=0, and where Φ_{0} ^{S }and ƒ_{S }will be taken as fixed, known constants. At t_{i}=0, the offset τ_{i }will be zero, but can be a nonzero value for T_{i}>0 due to the frequency and phase instability of the receiver's main oscillator which is used to generate the receiver's time moments T_{i}. As a practical matter, we will have to measure the Doppler phase observable φ_{i}(T_{i}) against the receiver's reference phase φ^{R}(T_{l}), and we therefore need to correct φ^{R}(T_{i}) for the effects time offset τ_{i}. If the satellite and receiver time clocks are exactly the same (τ_{i}=0), the receiver's reference phase φ^{R}(T_{i}) will measure out the same amount of phase at its time T_{i }as the satellite has provided by its time t_{l}. However, if the receiver clock is advanced in time by an amount τ_{i}>0, the reference phase has counted out ƒ_{S}·τ_{i }cycles more than actually transmitted by the satellite. To correct this, we need to subtract ƒ_{S}·τ_{i }from φ^{R}(T_{i}) to get the actual number of cycles transmitted by the satellite in the time span measured by the receiver's clock. The corrected phase reflects the satellite phase as received at the receiver's antenna, and we denote is as φ^{S} _{A}(T_{i}):

φ^{S} _{A}(t_{i})=Φ^{S} _{O}+ƒ_{S}·t_{i}−ƒ_{S}·τ_{i}. (8)

[0075]
Now, let us move the satellite to its normal orbital position, which will be a distance D_{i }away from the receiver. As we do this, the phase seen by the receiver antenna decreases by the number of carrier cycles which spans the distance between the receiver and the satellite. When we reach the final distance D_{i}, the number of carrier cycles occurring over the distance is ƒ_{S}·D_{i}/c, where c is the speed of light. The satellite phase seen by the receiver's antenna is then:

φ^{S} _{A}(t_{i})=Φ^{S} _{O}+ƒ_{S}·t_{i}−ƒ_{S}·D_{i}/c−ƒ_{S}·τ_{i}. (9)

[0076]
The signal received by the antenna is downconverted with a local oscillator, which has a phase of:

[0077]
φ_{LO}(T_{i})=Φ+LO+ƒ_{L,nom}·T_{i}=Φ_{LO}+(ƒ_{S}−ƒ_{L,nom})·T_{i}, (10)

[0078]
where ƒ
_{L,nom }is the nominal frequency of ƒ
_{L}, and where the nominal frequency ƒ
_{L,nom }is related to the nominal pedestal frequency ƒ
_{p,nom }as follows: ƒ
_{p,nom}=ƒ
_{S}−ƒ
_{L,nom}. The downconverted signal is provided to the input of the PLL, and we will denote its phase as φ
^{S} _{B}(T
_{l}). The downconversion process effectively causes the phase (P B(T
_{i}) to be equal to the difference of φ
^{S} _{A}(t
_{l}) and φ
_{LO}(T
_{i}) as follows:
$\begin{array}{cc}\begin{array}{c}{\varphi}_{B}^{S}\ue8a0\left({T}_{i}\right)=\text{\hspace{1em}}\ue89e{\varphi}_{A}^{S}\ue8a0\left({t}_{i}\right){\varphi}_{\mathrm{LO}}\ue8a0\left({T}_{i}\right)\\ =\text{\hspace{1em}}\ue89e\left({\Phi}_{0}^{S}+{f}_{S}\xb7{T}_{i}{f}_{S}\xb7{D}_{i}/c{f}_{s}\xb7{\tau}_{i}\right)\\ \text{\hspace{1em}}\ue89e\left({\Phi}_{\mathrm{LO}}+\left({f}_{S}{f}_{L,\mathrm{nom}}\right)\xb7{T}_{i}\right)\\ =\text{\hspace{1em}}\ue89e{\Phi}_{0}^{S}{f}_{S}\xb7{D}_{i}/c{f}_{S}\xb7{\tau}_{i}{\Phi}_{\mathrm{LO}}+{f}_{p,\mathrm{nom}}\xb7{T}_{i}\end{array}& \left(11\right)\end{array}$

[0079]
Because the PLL circuit does not know which carrier cycle it first locks onto, the PLL phase φ
_{iNCO}(T
_{i}) tracks φ
^{S } _{B}(T
_{i}) to within an unknown integer number N
_{nco }of carrier cycles, which may have a positive or negative value. There is also a small tracking error ζ
_{φi }due to the operation of the PLL circuit. Taking these two factors into account, we may write:
$\begin{array}{cc}\begin{array}{c}{\varphi}_{\mathrm{iNCO}}\ue8a0\left({T}_{i}\right)=\text{\hspace{1em}}\ue89e{\varphi}_{B}^{S}\ue8a0\left({T}_{i}\right)+{N}_{\mathrm{nco}}+{\zeta}_{\varphi \ue89e\text{\hspace{1em}}\ue89ei}\\ =\text{\hspace{1em}}\ue89e\left[{\Phi}_{0}^{S}{f}_{s}\xb7{D}_{i}/c{f}_{S}\xb7{\tau}_{i}{\Phi}_{\mathrm{LO}}+{f}_{p,\mathrm{nom}}\xb7{T}_{i}\right]+\\ \text{\hspace{1em}}\ue89e{N}_{\mathrm{nco}}+{\zeta}_{\varphi \ue89e\text{\hspace{1em}}\ue89ei}\end{array}& \left(12\right)\end{array}$

[0080]
We have thus related the change in phase of the satellite signal φ^{S} _{A}(t_{i}) as received by the antenna to the change in phase of φ_{iNCO}(T_{i}) The above equation shows that the offset in clocks has an effect of −ƒ_{S}·τ_{i}, and the distance has an effect of −ƒ_{S}·D_{i}/c. Our phase observable Φ_{i}(T_{i})=ƒ_{p,nom}·(T_{i−T} _{p})−Φ_{iNCO}(T_{i})can now be written out as:

Φ_{i}(T_{i})=ƒ_{S}·D_{i}/c+ƒ_{S}·τ_{i}−ƒ_{p,nom}·T_{p}−Φ^{S} _{O}+Φ_{LO}−N_{nco}−ζ_{φi} (13)

[0081]
Using the relation ƒ_{p,nom}=ƒ_{S}−ƒ_{L,nom}, we may further rewrite this as:

φ_{i}(T+i)=ƒ_{S}·D_{i}/c+ƒ_{S}·(τ_{i}−T_{p})+(φ^{′} _{O}−Φ^{S} _{O})−N_{nco}−ζ_{φi} (14)

[0082]
where φ′=Φ_{LO}+ƒ_{L,nom}·T_{p}. As it turns out, if we chose the time increments ΔT_{l }for T_{i }(T_{i}=i·ΔT_{l})to be equal to ΔT_{i}=2 ms, the term −ƒ_{S}·T_{p }is an integer number which can be consolidated with the integer ambiguity −N_{nco }into a single ambiguity +N.

[0083]
φ_{i}(T_{i})=ƒ_{S}·D_{i}/c+ƒ_{S}·τ_{i}+(φ^{′} _{)}−Φ^{S} _{)})+N−ζ_{φi} (15)

[0084]
Thus, our Doppler phase observable φ_{i}(T_{i}) has been related to the distance D_{l }between the satellite and receiver, the time offset τ_{i }of the receiver, an integer ambiguity N, and some initial phase offsets (φ′_{0}−Φ_{0} ^{S}) which can be readily determined.

[0085]
We will now write equation (15) for the base and rover stations, adding superscripts “B” and “R” for the base and rover stations, and subscript “m” to indicate the mth satellite signal and the mth tracking channel.

[0086]
For the differential navigation mode, the difference of these phases is formed:

φ^{B} _{i,m}(T_{i})−φ^{R} _{i,m}(T_{i})=ƒ_{S}·D^{B} _{i,m}/c−ƒ_{S}·D^{R} _{i,m}/c+ƒ_{S}·(τ_{i} ^{B}−τ_{i} ^{R})+(N_{m} ^{B}−N_{m} ^{R})+(φ^{′} _{O} ^{B}−φ^{′} _{O} ^{R})−(ζ_{φ} ^{B} _{i,m}−ƒ_{φ} ^{R} _{i,m}) (17)

[0087]
Using N^{m}=(N_{m} ^{B}−N_{m} ^{R}) to represent the difference between the ambiguities, and using the wellknown relationship ƒ_{S}/c=1/λ_{m}, where λ_{m }is the wavelength of the satellite carrier signal, we have:

φ^{B} _{i,m}(T_{i})=(1/λ_{m})·(D^{B} _{i,m}−D^{R} _{i,m)+ƒ} _{S}·(τ_{i} ^{B}−τ_{i} ^{R})+N^{m}+(φ^{′} _{O} ^{B}−φ^{′} _{O} ^{R})−(λ_{φ} ^{B} _{i,m}31 λ_{φ} ^{R} _{i,m}) (18)

[0088]
The values for φ′_{0 } ^{B }and φ′_{0} ^{R }can be readily determined. The values of ζ_{φi,m} ^{B }and ζ_{φl,m} ^{R }cannot be determined, but they have zero mean values.

[0089]
Our Inventions Relating to Differential Navigation.

[0090]
Real time processing (RTP) in the differential navigation mode determines the baseline vector using the results of the pseudorange and full phase measurements from satellites of the GPS and/or GLN systems. In a real time processing application, the computation of the baseline vector is made in the rover equipment that receives pseudorange and full phase measurements obtained in the base equipment through the communication link.

[0091]
The RTP methods and apparatuses include four main units: the extrapolating unit for the base measurements, the cycle slip detection and correction unit, the ambiguity resolution unit, and the unit of computation of the baseline vector. In addition to these main units, there are several auxiliary units that generate vectors and matrices for the operation of the main units.

[0092]
The present application discloses three inventions for the first three of the four main units, respectively, which enables one to improve the quality of the operation of the first three units. The accuracy and reliability of the baseline determination, especially under conditions where the rover is moving, is improve as a result. While our three inventions are preferably used together, they may be used separately.

[0093]
In the previous tutorial discussion, we used the symbol “t_{l}” to indicate the time as measured by the GPS system clock, and the symbol “T_{i}” to indicate the time as measured by either of the base and rover receivers (“T_{i}” is not to be confused with a time interval “T_{l}” provided below). While the time T_{i}(rover) as measured by rover clock will deviate from the true GPS system time t_{i }of the satellites, the navigation unit in the rover typically corrects the rover's time so its difference with the true GPS time is substantially less than any of the processing time intervals used in extrapolation unit, the cycleslip detection unit, the and ambiguity resolution unit. This may also be said of the time T_{i}(base) as measured by the base station. This is the conventional practice in the GPS are, and we will adopt this convention in th discussion of our invention. Thus, while the base and rover times may have small offsets from the true GPS time, they are still referring to the same processing time moment, and in some cases we can (and will for convenience) interchange the time t_{l }with either of times T_{l}(rover) and T_{l}(base) in many of the equations where the time offsets τ_{l} ^{B }and τ_{l} ^{R }have been introduced and accounted for. This will be the case for most of the equations that follow.

[0094]
A. The extrapolating unit for Base measurements.

[0095]
In the differential navigation mode of operation, both of the Base and Rover receivers generate navigation parameters at specific moments T_{M }of time, and each receiver organizes its navigation parameters for each time moment into a data frame which contains the navigation parameters along with the value of the time moment. In realtime processing (RTP) of differential navigation, the frames of the Base station are transmitted serially to the Rover station over a communication link, and a processing unit at the Rover station takes the information in the Base frames and processes it with the data frames of the Rover to compute the baseline between the Base and Rover stations. Additional information, such as the signal quality of the communication link between the Base and Rover stations, can be added to each frame of the Base receiver. The baseline can also be computed in a postprocessing mode instead of a realtime mode. In this case, the frames from both of the Base and Rover stations are recorded and then used at a later time at any location.

[0096]
The extrapolating unit is necessary in the cases when the baserover communication link has a limited carrying capacity (i.e., limited bandwidth, or data rate) and, as a consequence, has a limited speed of transmission. As a result, the sequential series of frames containing information and navigation parameters measured in the Base receiver arrive at the Rover equipment with an interval ΔT_{k }between frames which substantially exceeds the time intervals at which the main units need to received the information from the Base receiver in order to perform realtime processing (RTP) in the differential navigation mode at the desired rate.

[0097]
The purpose of the extrapolating unit is to use the information parameters from the Base receiver which have been received in previous data frames and to generated extrapolated values for the navigation parameters from time moments which are between the time moment of the last fullyreceived Base frame and the time moment of the next fullyreceived Base frame. The extrapolated values are generated periodically at shorter time intervals T_{I }required by the desired rate of RTP processing. Because the shorter interval T_{I }is associated with processing the navigation parameters, such as in the baseline computation or the ambiguity resolution, we call it the processing time interval T_{I}. The value of interval T_{I }is often different for each processing task.

[0098]
General principles of extrapolation are well known to the art. Yet in the case under consideration one has to take into account some specific problems. First of all, it is necessary to take into account that the baserover communication link often operates in an environment where there are strong additive and modulating interference signals. As a result, the conditions arise for the reception to be blocked or corrupted for limited intervals of time. Such intervals are usually detected in the receiver channel of the connection link by measuring signaltonoise ratio and determining when it is below an admissible threshold. Other ways of detecting errors in the transmitted information parameters, such as those based upon the use of special codes and checksum codes, may also be used.

[0099]
As a second problem, the measurements of navigation parameters in some channels of the base receiver may also turn out to be missing or inaccurate during some time intervals. This may happen, for example, if a local object near the Base station directs a strong reflected signal to the antenna of the Base receiver or if the object blocks the direct satellite signal from the antenna.
Indicators of Interference Events and the Generation of Alarm Signals in Navigation Receivers

[0100]
Interference events, such as interference signals and blockages of signal reception by intervening objects, can cause inaccurate and inauthentic measurements of the navigation parameters. Indicators of interference events can help prevent the use of inaccurate and inauthentic measurements. Such an indicator may comprise, for example, an “amplitude indicator” which measures the signaltonoise ratio in a satellite channel. An interference indicator may also comprise an “Angle indicator”, which indicates the presence of large peaks in the output Ep of a PLL discriminator.

[0101]
An exemplary amplitude indicator for the mth tracking channel may use the inphase and quadrature phase correlation signals, denoted herein as I_{m}(i·ΔT_{A}) and Q_{m}(i·ΔT_{A}), respectively, to generate a first indicator signal G1 _{m }as

G1_{m}(i·ΔT _{A})=Z _{m} ^{2} =I _{m} ^{2}(i·ΔT _{A})+Q _{m} ^{2}(i·ΔT _{A}), (19)

[0102]
where Z_{m }is proportional to the signal strength of the mth satellite carrier being tracked by mth the channel, and where both G1 _{m }and Z_{m} ^{2 }are proportional to the signal's power level. Signal G1 _{m }may be generated as G1 _{m}=Z_{m }instead of G1 _{m}=Z_{m} ^{2}. These forms are suitable for both coherent and incoherent channels. If the value of indicator signal G1 _{m }falls below a preset threshold value Th_{1}, an alarm signal S1 _{m }is generated to indicate that the output phase of the PLL circuit is unreliable and may be inaccurate. Here, we will take a value of S1 _{m}=1 to indicate that signal G1 _{m }is above Th_{1 }and that the phase of the PLL circuit is probably accurate (alarm in inactive state); and a value of S1 _{m}=0 to indicate that signal G1 _{m }is below Th1 and the phase of PLL circuit is unreliable (alarm in active state). Of course, the reverse assignment of the 0 and 1 values may be chosen.

[0103]
An exemplary angle indicator may use the output Ep of the PLL discriminator of the mth tracking channel to generate signal G1 _{m}=abs(Ep_{m}), where abs(*) is the absolute value function. In this case, Ep_{m }is preferably generated as Ep_{m}=arctan[Q_{m}(i·ΔT_{A})/I_{m}(i·ΔT_{A})]. or as Ep_{m}=Q_{m}(i·ΔT_{A})/I_{m}(i·ΔT_{A}). In this case, if the value of G1 _{m }rises above a preset threshold value Th_{1}, the alarm signal S1 _{m }is generate in its active state as S1 _{m}=0 to indicate that the output phase of the PLL circuit is unreliable and may be inaccurate (otherwise it is generated in its inactive state as S1 _{m}=1).

[0104]
Another exemplary indicator, which is suitable for coherent channels, generates indicator signal G1 _{m }as:

G1_{m}(i·ΔT _{A})=I _{m} ^{2}(i·ΔT _{A})−Q _{m} ^{2}(i·ΔT _{A}), (20)

[0105]
which provides an indicator signal which is related to the signal power level of the satellite input signal, and also to the PLL's tracking phase error. This form of signal G1 _{m }can determine the loss of tracking in the situation when the satellite's signal power level is within acceptable limits but the difference between frequencies of the satellite carrier signal and the PLL reference carrier signal is greater than an acceptable value. If the value of signal G1 _{m }falls below a preset threshold value Th_{1}, alarm signal S1 _{m }is generated in its active state as S1 _{m}=0 to indicate that the output phase of the PLL circuit is unreliable and may be inaccurate (otherwise it is generated in its inactive state as S1 _{m}=1).

[0106]
Indicator signal G1 _{m }and alarm signal S1 _{m }may be generated at the end of each accumulation period of the channel's correlators. Typical accumulation period are 2 ms and 5 ms. Other forms for signal G1 _{m }are also possible, and a combination of different forms may be used depending on the conditions of the receiver operation.

[0107]
Indicator signal G1 _{m }and alarm signal S1 _{m }are based upon the most recent values of the correlation signals I_{m} ^{2}(i·ΔT_{A}) and Q_{m} ^{2}(i·ΔT_{A}) at time i·ΔT_{A}, and are not based on previous values of these signals. Therefore, we refer to these signals as being “inertia free” or “noninertial.” A second type of the indicator and alarm signals uses past values of the correlation signals as well present values. Such a second type of indicator signal G2 _{m }may be generated from a running average of the first indicator signal G1 _{m}, or from an unweighted average of signal G1 _{m }over a span of several accumulation periods, or from a weighted average of signal G1 _{m }over a span of several accumulation periods. Because of its inertia, indicator signal G2 _{m }is more smooth over time than the first type of indicator signal G1 _{m}, and is less prone to the influences of noise. However, it is slower than signal G1 _{m }at detecting shadowing events. An example of a running average for indicator signal G2 _{m }is as follows:

G2_{m}(i·ΔT _{A})=α·G1_{m}(i·ΔT _{A})+(1−α)·G2_{m}((i−1)·ΔT_{A}), (21)

[0108]
where “i·ΔT
_{A}” represent the end of the current accumulation period, “(i−1)·ΔT
_{A}” represent the end of the previous period, where G
1 _{m}(i·ΔT
_{A}) is the most recent value of G
1 _{m }at the end of the most recent accumulation period, where G
2 _{m}(i·ΔT
_{A}) is the most recent value of signal G
2 _{m}, where G
2 _{m}((i−1)·ΔT
_{A}) is the previous value of signal G
2 _{m}, and where α is a weight coefficient between 0 and 1. Previous values of signal G
1 _{m }are effectively accounted for by the term (1−α)·G
2 _{m}((i−1)·ΔT
_{A}) in the above expression. An example of an unweight average is where signal G
2 _{m }is generated as the average of the proceeding N values of signal G
1 _{m}:
$\begin{array}{cc}{\mathrm{G2}}_{m}\ue8a0\left(i\xb7\Delta \ue89e\text{\hspace{1em}}\ue89e{T}_{A}\right)=\left(1/N\right)\xb7\sum _{k=0}^{k=N1}\ue89e{\mathrm{G1}}_{m}\ue8a0\left(\left(ik\right)\xb7\Delta \ue89e\text{\hspace{1em}}\ue89e{T}_{A}\right).& \left(22\right)\end{array}$

[0109]
In this example, signal G
2 _{m }is generated after N accumulation periods and at time moments i·ΔT
_{A}. However, this rate of generating signal G
2 _{m }is usually higher than is typically needed, and one usually generates signal G
2 _{m }once every N accumulation periods: N·ΔT
_{A}. An example of a weighted average for generating signal G
2 _{m }is as follows:
$\begin{array}{cc}{\mathrm{G2}}_{m}\ue8a0\left(i\xb7\Delta \ue89e\text{\hspace{1em}}\ue89e{T}_{A}\right)=\sum _{k=0}^{k=N1}\ue89e{\beta}_{k}\xb7{\mathrm{G1}}_{m}\ue8a0\left(\left(ik\right)\xb7\Delta \ue89e\text{\hspace{1em}}\ue89e{T}_{A}\right).& \left(23\right)\end{array}$

[0110]
where β_{k }are weight coefficients which sum to a value of 1. In each of the above examples, signal G2 _{m }is slower acting than signal G1 _{m}, but has less noise. We call the secondtype signal G2 _{m }an “inertial signal.”

[0111]
A second alarm signal S2 is generated from the inertia signal G2 _{m }in the same way that the first alarm signal S1 is generated from the inertia signal G1 _{m}. If the inertiafree indicator signal G1 _{m }is generated from an amplitude indicator for the mth tracking channel, then the inertial alarm signal S2 _{m }is generate in its active state when the inertial indicator signal G2 _{m }falls below a second preset threshold value Th_{2 }to indicate that the output phase of the PLL circuit is unreliable and may be inaccurate. Here, we will take a value of S2 _{m}=1 to indicate that signal G2 _{m }is above Th_{2 }and that the phase of the PLL circuit is probably accurate (inactive state); and a value of S2 _{m}=0 to indicate that signal G2 _{m }is below Th_{2 }and the phase of PLL circuit is unreliable (active state). Of course, the reverse assignment of the 0 and 1 values may be chosen. Likewise, if the inertiafree indicator signal G1 _{m }is generated from the expression G1 _{m}(i·ΔT_{A})=I_{m} ^{2}(i·ΔT_{A})−Q_{m} ^{2}(i·ΔT_{A}), the inertial alarm signal S2 _{m }is also generate in its active state when the inertial indicator signal G2 _{m }falls below a second preset threshold value Th_{2}. If signal G1 _{m }is generated from an angle indicator for the mth tracking channel, such as G1 _{m}=abs(Ep_{m}), then the alarm signal S2 _{m }is generated in its active state as S2 _{m}=0 when the value of G2 _{m }rises above threshold value Th_{2 }to indicate that the output phase of the PLL circuit is unreliable and may be inaccurate (otherwise it is generated in its inactive state as S2 _{m}=1).

[0112]
For reliable implementations of differential navigation, one or both of the indicator signals G1 _{m }and G2 _{m }and their corresponding alarm signals S1 _{m }and S2 _{m }are preferably generated for each of the visible satellite signals at both the base and rover receivers, and the alarm signals are used to discard measured navigation parameters which may be unreliable. Herein, the alarm signal are denoted with a superscript “B” for the base receiver (S1 _{m} ^{B }and S2 _{m} ^{B}), and with the superscript “R” for the rover receiver (S1 _{m} ^{R }and S2 _{m} ^{R}). Because the rover receiver is in an environment which has more complicated electromagnetic interference than the base receiver, the alarm signals in the rover will be generated more frequently than the alarm signals in the base receiver.

[0113]
As we indicated in the Summary of Invention section, some embodiments of our inventions use receivers which employ joint tracking loops (our copending patent application Ser. No.09/330,221). These loops, which are separate from the individual PPL circuits, are for jointly tracking changes to the satellite carrier phases which are caused by comment events. In a typical embodiment, there are three common loops for tracking changes in the position coordinates of the receiver's antenna, one loop for each coordinate, and there is one common loop for tracking the drift in the receiver's time clock. The four common tracking loops use the PLL phase discriminator signals Ep_{m }as inputs, and generate output correction signals for the individual PLL circuits which correct the phases of PLLs' reference carrier signals to account for changes that are caused by the common events. If a satellite signal is blocked from the receiver's antenna, the phase discriminator signal Ep from the channel tracking that signal will become unreliable and should not be used for the common loops. In a preferred implementation, alarm signal S1 _{m }and S2 _{m }are generated for each tracking channel, and discriminator signal Ep_{m }is disconnected from the input of the common loops when the inertia free alarm signal S1 _{m }indicates that the phase of the PLL circuit is unreliable or may be inaccurate because the satellite signal has weakened or has been blocked. However, the common correction signal from the common loops to the affected PLL circuit remains connected to the PLL circuit since it can still provide the affected PLL circuit with valid corrections for the common events, with the corrections being determined by the good satellite signals. If the inertia alarm signal S2 _{m }is also generated, the discriminator signal Ep_{m }is disconnected from the PLL loop filter, and the phase of the reference carrier signals of the PLL circuit is adjusted by the correction signal from the common loops until both alarm signals change to indicate that the satellite signal has strengthened or reappeared.

[0114]
Exemplary Composition of the Information Parameters of a Base Frame

[0115]
The following values are among information parameters which are transmitted through the communication link from the base receiver to the rover receiver for each mth satellite channel at each kth frame:

[0116]
the full phase φ^{B} _{k,m }(preferably in cycles, 1 cycle=2π radians) of the mth satellite carrier signal as measured in the base receiver, such as expressed by equation (5) above;

[0117]
the pseudorange γ^{B} _{k,m }(preferably in meters) between the mth satellite and the Base receiver as measured in the base receiver;

[0118]
the time moment t_{k }(in seconds) for the measurements of φ^{B} _{k,m }and γ^{B} _{h,m}, with the time t_{h }being the GPS time as measured by the base receiver's clock.

[0119]
a weight coefficient K^{B} _{k,m }representative of the estimated quality of the measured values of φ^{B} _{k,m }and Ξ^{B} _{k,m}.

[0120]
The full phase φ^{B} _{k,m }may be constructed in the form provided by equation (5):

φ^{B} _{k,m}(T_{i})=ƒ_{p,nom}·(T_{i}−T_{p})−φ_{i,m,NCO}(T_{i}),

[0121]
or may be constructed in the form which includes the phase offsets of the base receiver:

φ^{B} _{k,m}(T_{i})=[ƒ_{p,nom}·(T_{i}−T_{p})−φ_{i.m,NCO}(T_{i})]−φ′_{0}.

[0122]
In either case, we will use the convention practice and have the base receiver correct its clock so that the base time T_{l }will be equivalent to the GPS time t_{k }for the purposes of implementing our inventions (the time offset has already been accounted for in the above equations). For all practical purposes, times T_{i }and t_{k }will refer to the same processing time increment, and can be interchanged in the above equations.

[0123]
The weight coefficient K^{B} _{k,m }is set equal to zero if any of the alarm signals S1 _{m} ^{B }and S2 _{m} ^{B }in the mth channel of the base receiver are generated in their active state (0) during the kth frame; otherwise, the value of K^{B} _{k,m }is made proportional to the signaltonoise ratio in the mth tracking channel. For example, the weight coefficient may be set as K^{B} _{k,m}=Z_{k,m} ^{2 }if both of the alarm signals S1 _{m} ^{B }and S2 _{m} ^{B }are equal to 1. As a further approach, it is often useful to take into account that signals from satellites situated at low angles of elevation with respect to the receiver antenna usually have lower accuracy because these lowelevation signals are more likely to reflect off of objects near the antenna and generate multipath signals which interfere with the reception of the signal itself. In this case, the elevation angle of the mth satellite signal may be denoted as ξ_{k,m} ^{B}, and it may be measured against a minimum elevation angle ξ^{B} _{mln }at which the signal becomes visible at the base station. The weight coefficient may be generated in the form:

K ^{B} _{k.m} =Z _{k,m} ^{2}·sin(ξ_{k,m} ^{B}−ξ^{B} _{mln}) (24)

[0124]
when ξ_{k,m} ^{B}>ξ^{B} _{mln }and the alarm signals S1 _{m} ^{B }and S2 _{m} ^{B }are not generated in an active state (e.g., S1 _{m} ^{B}≠0 and S2 _{m} ^{B}≠0). If either of the alarm signals is generated in an active state, or if ξ_{k,m} ^{B}<ξ^{B} _{mln}, the weight coefficient is generated as K^{B} _{k,m}=0.

[0125]
Other expressions for the determination of K^{B} _{k,m }are possible too.

[0126]
The procedure of the extrapolation unit operation

[0127]
The information parameters from several (Mr) successive frames (k=1,2 . . . Mr) for each satellite channel, as received by the base receiver, are written to a memory unit 110 (e.g. a register bank) of an extrapolating unit 100. The organization of the memory unit for the parameters (φ^{B} _{k.m}, γ^{B} _{k,m}, t_{k}, and K^{B} _{k,m}) for one satellite is shown in FIG. 1. If the differential navigation task is performed in real time, then these parameters are transmitted over the communication link between the base and rover stations, with the extrapolating unit being located at the rover station. In this case, the following two characteristics of the communication link, as measured during each frame, are preferably also stored in the memory unit: the signaltonoise ratio snr_{k }in the communication link and a bit flag ν_{k }indicating that the data has been corrupted in transmission over the link, and/or cannot be repaired (ν_{k}=0 or ν_{k}=1). The generation of the value of ν_{k }is preformed by an assessment unit 140 described below in greater detail. The abovedescribed stored values are used for the computation of the extrapolating function parameters by a processing unit 160, which are also described in greater detail below. When a new frame is received, the oldest frame is discarded from the memory unit to make room for the new frame. The frames are received by a receiving unit 120, which provides the data (after optional decoding) to memory 110 and assessment unit 140. The signalto noise ratio of the communication link is monitored by monitoring unit 130, which provides an output signal for each frame to memory unity 110 and assessment unit 140. Assessment unit 140 uses this signal to determine whether the frame is satisfactory.

[0128]
In a preferred implementation, the navigation parameters are encoded by an errorcorrecting method before being transmitted over the communication link by the base station. In the rover receiver, the encoded parameters are decoded by a decoding method in receiving unit 120 which can detect errors in the parameters caused by the transmission and can correct many, but not all, of the errors. If receiving unit 120 finds errors that it cannot correct, it sends a corresponding signal to assessment unit 140. There are several wellknown errorcorrecting encoding methods, and descriptions thereof are not needed for one of ordinary skill in the art to make and use the present inventions. These methods are modified to cause assessment unit 140 to set the value of ν_{k }to zero (ν_{k}=0) when the encoded parameters have errors which cannot be corrected (ν_{k }in active state), and to set the value of ν_{k }to one (ν_{h}=1) when the encoded parameters have no errors or have errors which have been corrected by the decoding method (ν_{k }in inactive state). (Of course, the reverse assignment of one and zero values may be used.) A more simple approach for transmitting the navigation parameters is to add a checksum word to each frame, or to each subframe (a subframe may comprise just the navigation parameters of one satellite or the parameters of a small number of satellites). The value of each checksum word is chosen such that sum of it and all the digital words in its frame or subframe forms a predetermined value in the least significant bits of the total. At the rover receiver, the digital words of each frame or subframe (including the checksum) are summed together and the least significant bits are tested to see if they match the predetermined number. If they do, the navigation parameters in the frame or subframe are assumed to be good, and the value of ν_{k }is set to one (ν_{k}=1). If not, the values are assumed to be bad and the value of ν_{k }is set to zero (ν_{k}=0). The checksum method can only detect errors in the transmitted data, and cannot correct them. An even simpler approach, but less reliable method, is to judge the reliability of the transmitted parameters only from the measured signaltonoise ratio (snr_{k}) of the communication link. This ratio may be measured by monitoring unit 130 during the transmission of each frame by any number of wellknown techniques. In this case, the parameter ν_{k }would not be needed.

[0129]
The purpose of the extrapolation unit is to extrapolate the full phase φ^{B} _{k,m }and pseudorange Ξ^{B} _{k,m }of each satellite signal received by the base receiver to a time selected by the rover station. The inventors have found that the most suitable extrapolation approach from the point of view of striking a balance between the extrapolation accuracy and complexity, is the choice of the extrapolating function in the form of a polynomial of degree n_{p}. In particular, for the degree n_{p}=2, such an extrapolating function is defined by three parameters, A, B, and C, and has the form: At^{2}+Bt+C. The storage capacity Mr for the stored frames needs to be sufficient to hold at least n_{p }frames (Mr>n_{p}). Because some of the transmitted frames may have bad data or may be corrupted during transmission, the number Mr of frames stored by the memory unit should be much larger than n_{p}. In practice, the number Mr of frames depends upon the time interval (duration) ΔT_{k }between frames and on the specific characteristics of the fluctuations of the phase (delay) in the satellite signal received by the base station. [There is a limited time period Tmax where a polynomial approximation is sufficiently accurate; periods longer than Tmax will lead to inadmissible errors. Therefore, we set Mr·ΔT_{k}<Tmax. Thus if ΔT_{k }decreases, we should increase Mr, and vice versa. Increase of phase fluctuations decreases the value of Tmax; in this case, if ΔT_{k}=constant, then Mr decreases. Thus, for ΔT_{k}=1 second, it is reasonable to take Mr≦5.

[0130]
A binary quality estimation (satisfactory/unsatisfactory) is made by assessment unit 140 for each frame and is stored in the memory unit. The frame quality is considered to be unsatisfactory if at least one of the following conditions is fulfilled:

[0131]
the signaltonoise ratio (snr_{k}) in the communication link during the reception of the kth frame by the rover is lower than the allowed threshold (in particular, if the signal is missing);

[0132]
an error is detected in a received digital word representing an information parameter which cannot be corrected by the decoding methods used in the communication link (ν_{k}=0 is written to the memory unit);

[0133]
a checksum error is detected in the frame (or subframe); or

[0134]
the weight coefficient of the frame is equal to zero (K^{B} _{k,m}=0 is stored in the memory unit).

[0135]
Assessment unit 140 receives these signals from units 120 and 130.

[0136]
While all of these conditions are tested in preferred embodiments, less preferred embodiments may test fewer of the conditions. Then a true group comprising n_{s }satisfactory frames is selected from memory unit 110, by a discriminator unit 150, for each satellite parameter to be extrapolated. The true group must include the number of frames which is not less than the number of parameters in the extrapolating function (n_{s}>n_{p}). It is also important that the frames in the true group are in immediate sequential order. The extrapolating function parameters are determined from just the true group of frames. When extrapolating the full phase of a satellite signal, it is important that all the measured values φ^{B} _{k,m }in the true group be referenced to the same steady balance point of the PLL circuit (i.e. that there were no cycle slips occurring between the frames in the true group). Usually, the beginning of a cycle slip will be detected by the indicator of the affected tracking channel in the base receiver, and marked as unsatisfactory by setting K^{B} _{k,m}=0. The subsequent frame may already be satisfactory. Yet it is impossible to use it for computation together with the preceding frames because the phase readings between these frames might be different by an integer number of halfcycles, and such a difference would lead to the erroneous computation of the extrapolating function parameters (e.g., A, B, and C). If Mr>3, then several groups of frames for each satellite parameter (φ^{B} _{k,m }and γ^{B} _{k,m}) may reside in the memory unit, each of which satisfies the conditions for usable data. In this case, it is necessary to choose one of these groups as the true one, it being better to choose the latest one (i.e., the group having data from the most recent frames). This will improve the extrapolation accuracy. The case is also possible when there is no group of frames in the memory unit which may be considered as the true one for any one of the parameters of the satellite signal. In this case, a signal “NO BASE MEASUREMENTS” (S_{m} ^{B}=0) is generated if any one of the parameters of the mth satellite signal has no group of usable frames, and the extrapolating function parameters (e.g., A, B, and C) for the parameters of the mth satellite signal are not recalculated until the disappearance of this signal (i.e., until S_{m} ^{B}=1), or if this condition continues for a long time, the measurements will be stopped and will be resumed only at the restoration of standard mode.

[0137]
The extrapolating function parameters are computed from the selected group (as determined by discriminator unit
150) by the leastsquares method, which is performed by processing unit
160. As is known in the art, the leastsquares method uses a measurement vector to represent several measured values, at separate time moments, of navigation parameter which is being fitted by the polynomial model, a state vector A to represent the extrapolating function parameters to be found from the measured values of the navigation parameter, an observation matrix H
_{e }which relates the function parameters to the measured values according to the model, and optionally a covariance matrix R
_{e }which represents the reliability of the measured data values. In our case, for extrapolating one navigation parameter from one satellite (generally represented as the mth satellite), the measurement vector includes the measured navigation parameters (either the phases φ
^{B} _{k,m }or the pseudoranges γ
^{B} _{k,m}) of the true group (n
_{s }components), and the state vector A
_{e }of the extrapolating function parameters includes (n
_{p}+1) components. In the specific case when n
_{p}=2, we have
${A}_{e}=\left[\begin{array}{c}A\\ B\\ C\end{array}\right]$

[0138]
The observation matrix H
_{e }in this case comprises the time of the measurement of the navigation parameters of the true group stored in the memory unit, and for the case n
_{p}=2 is given as:
${H}_{e}=\left[\begin{array}{ccc}{t}_{1}^{2}& {t}_{1}& 1\\ {t}_{2}^{2}& {t}_{2}& 1\\ \vdots & \vdots & \vdots \\ {t}_{k}^{2}& {t}_{k}& 1\\ \vdots & \vdots & \vdots \\ {t}_{n\ue89e\text{\hspace{1em}}\ue89es}^{2}& {t}_{n\ue89e\text{\hspace{1em}}\ue89es}& 1\end{array}\right].$

[0139]
The covariance measurement matrix R
_{e }is determined by the weight coefficients K
^{B} _{k,m }and is given in the form:
${R}_{e}=\left[\begin{array}{cccccc}{\left({K}_{1,m}^{B}\right)}^{1}& 0& \cdots & 0& \cdots & 0\\ 0& {\left({K}_{2,m}^{B}\right)}^{1}& \cdots & 0& \cdots & 0\\ \vdots & \vdots & \u22f0& 0& \cdots & \vdots \\ 0& 0& \cdots & {\left({K}_{k,m}^{B}\right)}^{1}& \cdots & 0\\ \vdots & \vdots & \cdots & \vdots & \u22f0& \vdots \\ 0& 0& \cdots & 0& \cdots & {\left({K}_{n\ue89e\text{\hspace{1em}}\ue89es,m}^{B}\right)}^{1}\end{array}\right]$

[0140]
According to the leastsquares method, the extrapolation function parameters (in the A_{e }vector) for fitting the phase of the mth satellite are defined as follows:

A ^{φ} _{e}=(H _{e} ^{T} ·R _{e} ^{−1} ·H _{e})^{−1} ·H _{e} ^{T} ·R _{e} ^{−1}·φ^{B},

[0141]
where φ^{B }is the vector of the n_{S }full phase measurements of the mth satellite in the true group: φ^{B}=(φ^{B} _{1,m}, φ^{B} _{2,m}, . . . φ^{B} _{k,m}, . . . φ^{B} _{n,ms})^{T}. In a similar way, for pseudorange measurements we have:

A ^{γ} _{e}=(H _{e} ^{T} ·R _{e} ^{−1} ·H _{e})^{−1} ·H _{e} ^{T} ·R _{e} ^{−1}·γ^{B},

[0142]
where γ^{B }is the vector of the n_{S }pseudorange measurements of the mth satellite in the true group: γ^{B}=(γ^{B} _{1,m}, γ^{B} _{2,m}, . . . γ^{B} _{k,m}, . . . γ^{B} _{ns,m})^{T}. (Here, and further on, the superscript “T” means the matrix transposition, and the superscript “−1” means the matrix inversion.) As we indicated above, the use of the covariance matrix R_{e }is preferred but optional. If matrix R_{e }is not used, then the identity matrix E is used in its place in the above equations (The identity matrix has ones for its diagonal elements, and zeros for its offdiagonal elements.) The above steps are performed by processing unit 160.

[0143]
After the determination of the extrapolating function parameters, the extrapolation is performed by a generator unit 170 at the processing time intervals T_{I }required by the desired rate of RTP processing. Unit 170 receives the extrapolating function parameters from processing unit 160. During the time interval ΔT_{K }between the last received frame and the next frame, the extrapolation may, for example, be done at time moments t_{i}=i·T_{I }for i=1, 2 . . . I, where I=ΔT_{K}/T_{I}. In the particular case, having calculated three parameters, we may generate the extrapolation for the phase measurements as:

φ^{B}(t _{l})=A _{φ} t _{l} ^{2} +B _{φ} t _{l} +C _{φ}, where [A_{φ}, B_{φ}, C_{100 }]^{T}=A^{φ} _{e}.

[0144]
and we may generate the extrapolation of the pseudorange measurements as:

γ^{B}(t _{l})=A _{γ} t _{l} ^{2} +B _{γ} t _{l} +C _{γ}, where [A_{γ}, B_{γ}, C_{γ}]^{T}=A^{γ} _{e}.

[0145]
When a new frame is received and stored in the register, all of the above steps are repeated by the units 120170.

[0146]
As indicated above, the extrapolation is made independently for each satellite channel, so the above steps are performed for the full phase and pseudorange of each satellite received by the Base receiver.

[0147]
Through their work, the inventors have found that the following values are most suitable for use in navigation receivers of GPS and GLN systems:

[0148]
A frame duration of ΔT_{k}=1 second; a number Mr of frames stored by the memory unit of Mr=5; the degree of the extrapolating polynomial of n_{p}=2, correspondingly n_{s}=3, 4 or 5 are possible. The processing time interval T_{I }may be different for the solution of different tasks. Thus for the unit of detection and correction of cycle slips, which will be discussed next, a short processing time interval of T_{I}=510 ms is used, coinciding with the clock time interval in tracking systems of the receiver. A longer processing time interval of T_{J}=0.05 s1.0 s may be needed for the ambiguity resolution unit and the unit of the baseline vector computation.

[0149]
B. The cycle slip detection and correction unit

[0150]
Characteristics and symptoms of a cycle slip.

[0151]
As described in the above tutorial section on the structure of coherent navigation receivers, a cycle slip is the process of a PLL circuit transitioning (or changing) from one point of steady balance to another point of steady balance (also called herein as a “steady balance point”). The cycle slip is characterized by two main parameters: the value (e.g., the number of cycles or sometimes halfcycles) and the duration of the cycle slip.

[0152]
The value of a cycle slip is random, but is always equal to a multiple of the phase interval (α) between two neighboring steady balance points of the PLL circuit. This interval depends upon the type of PLL circuit used. The typical value of α for receivers of navigation systems is α=0.5 cycles if the phase is measured in cycles, or α=π if the phase is measured in radians. In this case, the slip value may be equal to ±m/2 cycles (where m=1, 2 . . . ).

[0153]
The duration of a cycle slip is also random. The minimum duration is determined by the time lag (i.e., sluggishness) of the PLL circuit, and the maximum duration depends upon the reason which caused the cycle slip, and it may reach several seconds.

[0154]
A loss in PLL tracking, which is different from a cycle slip, can be viewed as a very long cycle slip if the PLL circuit does not need to undergo the reacquisition process after the PLL tracking loss has ended. In those cases where the reacquisition process is used to reestablish PLL tracking, the initial loss in PLL tracking cannot be viewed as a cycle slip.

[0155]
Sometimes it is possible to detect a cycle slip in an individual channel by observing the rate of change in the phase of the PLL's controlled oscillator (e.g., NCO), and noting time intervals when this rate grows substantially. Yet such a detection is very unreliable, especially in the case of the rover receiver, as its velocity may change in a rather wide range.

[0156]
The occurrence of a cycle slip is often connected with the shading (blockage) of the signal by a local object. At the disappearance of the signal, the feedback loop of the PLL circuit is usually opened, but the noise potential remaining on the PLL dynamic filter integrator continues to change the reference oscillator phase; and at the reappearance of the signal, the PLL may lock onto a new steady balance point. In this case, the duration of the cycle slip practically coincides with the duration of the blockage, and the cycle slip value is random and depends on the energetic potential and the characteristics of the PLL circuit. A cycle slip caused by a blockage is usually detected with sufficient reliability for all its duration by the amplitude and angle indicators of the affected channel, as we have described above. However, the situation is more complicated when the receiver functions in the presence of reflected signals. The reflected signal may be received also during the blockage of the direct signal. In this case, if the reflected signal is strong enough, the indicators usually produce only short pulses in the beginning and at the end of the cycle slip. During the major part of the blockage of the direct signal, the reflected signal acts as a substitute for the direct signal, and the receiver indicators cannot detect the cycle slip. At some values of the amplitude and phase of the reflected signal, the short pulses from the indictors at the beginning and at the end of the cycle slip may remain unnoticed against a noisy background, although the probability of that occurring is not very high given the average energetic potential of the signal.

[0157]
Also possible are occurrences of shorttime cycle slips due to strong impulse noise or interference, violent shocks to the antenna or the quartz crystal in the main signal oscillator, or even an occasional large spike in the receiver's intrinsic noise.

[0158]
All of the cycle slip detection methods for a single channel, taken separately, are one way or another connected with (i.e., rely upon) the observation of the cycle slip process itself. After the slip has ended and the PLL circuit has locked onto a new steady balance point, it is impossible to detect the cycle slip in the affected tracking channel. In the majority of cases, it is also impossible to determine the cycle slip value in the affected channel, and consequently it is impossible to correct it.

[0159]
As a rule, many satellite tracking channels operate simultaneously in a navigation receiver, and some redundancy exists. Using the redundancy, one can detect a tracking channel whose measurements differ strongly from those of another, and can consider that this difference is most probably the consequence of a cycle slip. By this way, it is possible to detect the cycle slip also after its completion. The existence of redundancy allows, in principle, one to estimate the slip value and to apply a correction after its completion. Yet, this method taken in itself is not sufficiently reliable either, especially if cycle slips occur in several channels simultaneously, or if the rover moves randomly and quickly enough, or if the energetic potential in some channels is not very high.

[0160]
The second invention of the present application relates to methods and apparatuses to detect and simultaneously correct cycle slips based upon the use of the many characteristics and specific symptoms of cycle slips. The methods and apparatuses enable one to notice the occurrence of a cycle slip with high probability, and to exclude from the navigation processing tasks, during the entire duration of the cycle slip, the measurements of the navigation parameters from the channels where the slips were detected. After the completion of the cycle slip, it is possible to estimate the value and sign of the cycle slip, and to apply the corresponding correction.

[0161]
Input values for the cycle slip detection and correction unit

[0162]
The cycle slip detection and correction units (apparatuses) and methods of this invention use, as input data, a set of residuals Δφ_{i,m }of single phase differences and corresponding weight coefficients K_{i,m} ^{R }and K_{i,m} ^{B }at the chosen clock time moments t_{l }(t_{i}=i·ΔT_{I}) for each channel. In the discussion below, each satellite and satellite signal will be generically indicated as the mth satellite and mth satellite signal, respectively, and a subscript “m” or a superscript “m” may be added to the symbols for various parameters to indicate that there is an instance of the parameter for each satellite being tracked by the receivers.

[0163]
The residual of single phase differences Δφ_{l,m }(also called the “phase residual Δφ_{l,m}”) related to the mth satellite signal is defined as follows:

Δφ_{l,m}=φ_{l,m} ^{B}−φ_{l,m} ^{R}−1/λ_{m} ·[D _{l,m} ^{B} −D _{l,m} ^{R}],

[0164]
where λ_{m }is the wavelength of the mth satellite signal, where D_{l,m} ^{B }and D_{l,m} ^{R }are the computed distances from the mth satellite to the base and the rover receivers at the ith clock time moment, respectively, where φ_{i,m} ^{R }is the full phase (in cycles) of the mth satellite signal measured in the rover receiver at the mth clock time moment, and where φ_{l,m} ^{B }is the full phase (in cycles) of the ith satellite signal measured in the rover receiver at the ith clock time moment. Each residual signal Δφ_{i,m }represents the deviation of the single difference of the phases (φ_{l,m} ^{B}−φ_{l,m} ^{R}) from the value predicted from the computed distances (1/λ_{m}·[D_{i,m} ^{B}−D_{l,m} ^{R}]).

[0165]
For realtime processing applications, the full phase φ_{i,m} ^{B }is preferably computed by the extrapolating unit of our first invention at the ith clock time moment from the information parameters received through the communication link between the base and rover stations. If a highlyreliable, highbandwidth communication link is being used over a short distance (e.g., less than 0.5 km), it is possible that the full phase φ_{i,m} ^{B }may be received directly. The full phases φ^{B} _{i,m }φ^{R} _{i,m }may be constructed in the form provided by equation (5):

φ^{B} _{i,m}(T _{i})=ƒ_{p,nom}·(T _{i} −T _{p} ^{B})−φ^{B} _{i,m,NCO}(T· _{i}),

φ^{R} _{i,m}(T _{i})=ƒ_{p,nom}·(T _{i} −T _{p} ^{R})−φ^{R} _{i,m,NCO}(T _{i}),

[0166]
or may be constructed in the form which includes the phase offsets of the base receiver:

φ^{B} _{i,m}(T _{i})=[ƒ_{p,nom}·([T_{i} −T _{p} ^{B})−φ^{B} _{i,m,NCO}(T _{i})]−φ′_{0} ^{B},

φ^{R} _{l,m}(T_{i})=[ƒ_{p,nom}·(T _{i} −T _{p} ^{R})−φ^{R} _{i,m,NCO}(T _{i})]−φ′_{0} ^{R}.

[0167]
In either case, we will use the convention practice and have the base receiver correct its clock so that the base time T_{i }will be equivalent to the GPS time t_{l }for the purposes of implementing our inventions (the time offset has already been accounted for in the above equations). For all practical purposes, times T_{i }and t_{l }will refer to the same processing time increment, and can be interchanged in the above equations.

[0168]
For each satellite signal, indicated herein generally as the mth satellite signal, we define a weight factor K_{l,m }for the phase residual and generate it from the weight coefficients obtained in the rover receiver (K_{l,m} ^{R}) and the base receiver (K_{l,m} ^{B}). The coefficient K_{l,m} ^{R }is generated in the rover receiver at processing time intervals T_{I }by the approach as previously described above where K_{l,m} ^{R }depends on the energetic potential and the angle of elevation of the mth satellite signal as it is seen from the rover position.

[0169]
The weight coefficient K_{l,m} ^{B }from the base receiver is extrapolated from the value of K_{k,m} ^{B }transmitted through the communication link. As it turns out, high accuracy is not needed in this extrapolation, and one can use the zeroorder extrapolation of: K_{l,m} ^{B}=K_{k,m} ^{B}. The value K_{i,m }takes into account both weight coefficients, and it may be generated as:

K _{l,m} ^{−1}=(K _{l,m} ^{B})^{−1}+(K_{l,m} ^{R})^{−1}.

[0170]
If either of the weight coefficients K_{i,m} ^{B }or K_{i,m} ^{R }is zero, the weight factor K_{i,m }is set to zero.

[0171]
The single phase difference residuals of all of the operating channels may be grouped together as a vector which we call the phase residual vector Δφ_{i}. This vector includes n components, which we may identify as follows: Δφ_{i}[m], where m=1, 2 . . . , n.

[0172]
The structure of the common inertial tracking loop

[0173]
The general block schematic diagram of an exemplary apparatus and method of cycleslip detection and correction for the rover receiver is shown at 200 in FIGS. 2A and 2B. Here the structure of the apparatus and method of control for one channel of the rover receiver is shown in detail, which is indicated generally as the mth channel for the mth satellite signal. The structure for the other channels is similar. The part of the apparatus and method that is shown in FIG. 2B is common for all of the channels.

[0174]
The detection and correction apparatus and method for each channel receive the phase residual Δφ_{i,m }for each channel on a line 201, and generate an estimate Δ{circumflex over (φ)}_{i,m }of the phase residual for each channel at each ith time moment on a line 202 (top of FIG. 2A). Each estimate Δ{circumflex over (φ)}_{i,m }is generated as an output of a common inertial tracking system 240 (FIGS. 2B and 2A). As described in greater detail below, the common tracking system 240 detects a change in the baseline vector between the base and rover stations caused by the motion of the rover or a drift in the rover's reference oscillator, and then changes the values of the estimates Δ{circumflex over (φ)}_{i,m }to reflect the detected change. A correction unit 220 (FIG. 2A) uses the phase residuals Δ{circumflex over (φ)}_{i,m }on line 201 and the phase estimates Δ{circumflex over (φ)}_{i,m }on line 202 to generate an input (ψ_{i,m}) for the common tracking system on a line 222, and to generate a cycle slip correction φ_{i,m} ^{C }on a line 221 which is representative of the value of a cycle slip when it occurs. The cycle slip correction φ_{l,m} ^{C }is subtracted from the phase residual Δφ_{l,m }by an adder 205 to generate a corrected phase residual Δφ_{i,m} ^{C}. This signal is passed through a switch SW0 and provided on a line 204 as an output, which can be used in the ambiguity resolution and the baseline computation. Switch SW0, which is discussed in greater detail below, blocks the corrected phase residual Δφ_{l,m} ^{C }from being used when a cycle slip is occurring.

[0175]
A summation node 224 of correction unit 220 generates a phase mismatch δφ_{i,m }for each satellite signal as the difference between the phase residual Δφ_{l,m }and its estimates Δ{circumflex over (φ)}_{i,m}:

δφ_{i,m}=Δφ_{i,m}−Δ{circumflex over (φ)}_{i,m}.

[0176]
The mismatch δφ_{i,m }is provided to a transformation unit 226 of correction unit 220, where it is transformed by a nonlinear operator which includes the round(*) operation. The round(*) operation computes the nearest integer to its argument (*), and provides this integer as its output. A cycle slip correction φ_{i,m} ^{C }is generated from this operator output as:

φ_{l,m} ^{C}=α·round(δφ_{i,m}/α),

[0177]
where α is the distance (interval) in cycles between two neighboring points of steady balance of PLL circuit. The value α is a constant (fixed) parameter and is determined by the characteristics of the PLL discriminator. If a PLL discriminator with the transformation characteristic of the form arctan(Q/I) is used, then a 0.5.

[0178]
The nonlinear transfer function of φ_{l,m, }versus δφ_{l,m }is shown in the plot of FIG. 3. As one can see from this plot, the transfer function has a stepwise characteristic. When the input mismatch δφ_{l,m }(shown as Xaxis) reaches each of the specific points of±α/2, ±3α/2. and so on, the value of the correction φ_{l,m} ^{C }jumps by a step of±α, as shown in the plot. Between these specific points, the value of the correction φ_{l,m} ^{C }does not change.

[0179]
From φ_{l,m} ^{C }and δφ_{l,m}, a corrected mismatch ψ_{l,m }is generated by a summation node 228 of correction unit 220 as:

ψ_{l,m}=δφ_{l,m}−φ_{l,m} ^{C}.

[0180]
The dependence of ψ_{l,m }on δφ_{l,m }is shown in the plot of FIG. 4. The plot of FIG. 4 shows the transfer function, also called the characteristic response, of the correction unit presented in FIG. 2A.

[0181]
The corrected mismatches for all n channels may be grouped together as a vector ψ_{i}, which has n components. The corrected mismatches ψ_{i }of all the channels are provided to common tracking system 240 (FIG. 2B), which uses them to detect a change in the baseline between the base and rover stations. The common tracking system generates a state vector A^{φ} _{c }that has three components (A^{φ} _{x}, A^{φ} _{y}, A^{φ} _{z}) which estimate the baseline vector bias along three directional coordinates (which are usually Cartesian coordinates), and a fourth component (A^{φ} _{q}) that estimates the phase bias of the rover's reference generator (i.e., estimates the clock drift). The vector A^{φ} _{c }is related to the mismatches ψ_{i }through the observation matrix H, also called the Jacobian matrix H. This matrix is already generated in the rover's navigation unit and is used to determine the position coordinates of the rover. Matrix H is also called the “geometric function matrix”, the “Jacobian geometric matrix”, and for the most commonlyused Cartesian coordinatesystem definitions it is called the “matrix of directional cosines.” For the purposes of describing the cycleslip detection and correction unit, we will denote the observation matrix as H_{i} ^{φ}, where the superscript “φ” symbolically denotes that the matrix is being used in the cycle slip and correction process, and where the subscript “i” represents the time moment t_{i }for which the matrix has been generated. Vector A^{φ} _{c }is related to the mismatches ψ_{i }as: H_{i} ^{φ}·A^{φ} _{c}=ψ_{i}. Matrix H_{i} ^{φ }enables one to directly find ψ_{i }if A^{φ} _{c }is known. However, we have the opposite situation where we want to find A^{φ} _{c }from ψ_{i}. We perform the reverse task by multiplying ψ_{i }with a pseudoinverse matrix G_{i} ^{φ }of matrix H_{i} ^{φ}, where matrix G_{i} ^{φ }is determined from the leastsquares method using matrix H_{i} ^{φ }and a covariance matrix R_{i} ^{φ }which represent the degree of error in the mismatches ψ_{i}. The use of matrix R_{i} ^{φ }is optional, but is preferable. Pseudoinverse matrix G_{i} ^{φ }is also called a generalized inverse matrix for matrix H_{i} ^{φ}. To be a pseudoinverse matrix of H_{i} ^{φ}, matrix G_{i} ^{φ }need only satisfy the relationships G_{i} ^{φ}·H_{i}·G_{i} ^{φ}=G_{i} ^{φ }and H_{i} ^{φ}·G_{i} ^{φ}·H_{i} ^{φ}=H_{i} ^{φ}. We will now describe the specifics of the least squares process.

[0182]
There are a number of spatial coordinate systems which may be used to specify the positions of the base receiver, the rover receiver, and the satellites. The selection affects the specifics of how the observation matrix H_{i} ^{φ }is generated. For the purposes of explaining the common tracking system, we will use the Earthcentered Earthfixed (ECEF) system, but we will describe how H_{i} ^{φ }may be generated for other coordinate systems at the end of this section. The observation matrix H_{i} ^{φ }includes four columns (m_{1}=1,2,3,4) in accordance with the number of the state vector components, and n rows (m_{2}=1, 2 . . . , n) in accordance with the number of satellite channels (m=1, 2 . . . , n). Here, we will use the indices m_{2 }and m interchangeably for indexing the rows of H_{i} ^{φ}. The elements of the first three columns of the mth row at the ith time moment are determined by the direction cosines (α_{i,m}, β_{l,m}, h_{i,m}) of the vector which points from the rover to the corresponding mth satellite, and are computed by the formulas:

α_{i,m}=−(x _{l} ^{m} −x _{i} ^{R})/D _{i,m} ^{R},

β_{i,m}=−(y _{l} ^{m} −y _{l} ^{R})/D _{l,m} ^{R},

h _{i,m}=−(z _{i} ^{m} −z _{i} ^{R})/D _{i,m} ^{R},

[0183]
where x_{i} ^{m}, y_{i} ^{m}, and z_{i} ^{m }are the satellite coordinates in the geocentric coordinate system at the moment of transmission of the mth satellite signal; where x_{l} ^{R}, y_{i} ^{R}, z_{l} ^{R }are the computed coordinates of the rover at the moment of transmission of the mth satellite signal; and where D_{i,m} ^{R }is the calculated distance from the rover to the satellite at the same moment.

[0184]
The fourth column of the H_{i} ^{φ }matrix is the unit column.

[0185]
The covariance observation matrix R_{i} ^{φ }is a square matrix with the dimensions n×n. It contains as its main diagonal elements the weight factors K^{−1} _{l,m }for the phase residuals: R_{i} ^{φ} _{m,m}=K^{−1} _{l,m }for m=1, 2 . . . , n. All of the offdiagonal elements are zero.

[0186]
The state vector A^{φ} _{c }is generated as

A ^{φ} _{c} =G _{i} ^{φ}·ψ_{i},

[0187]
Where G_{i} ^{φ }is generated as G_{i} ^{φ}=[(H_{i} ^{φ})^{T}·(R_{i} ^{φ})^{−1}·(H_{i} ^{φ})]^{−1}·(H_{i} ^{φ})^{T}·(R_{i} ^{φ})^{−1}.

[0188]
In common tracking system 240, processing block 242 generates matrix G_{i} ^{φ }from matrices H_{i} ^{φ }and R_{i} ^{φ}, and generates vector A^{φ} _{c }from matrix G_{i} ^{φ }and the mismatch vector φ_{i}, from the steps described above. We may view each of the four components of the state vector A^{φ} _{c }as a signal at the start of a respective common tracking loop of the common tracking system. From this point, the four component signals will be initially processed separately, and then combined together to form the estimates Δ{circumflex over (φ)}_{i,m}. The estimates Δ{circumflex over (φ)}_{i,m}, as previously described above, are provided to the correction units 220, which in turn generate their respective corrected mismatches ψ_{i,m}, which in turn are provided as inputs to common tracking system 240. The four signals thereby come back to generate themselves, and four closed feedback loops are thereby formed.

[0189]
We will now describe the processing of these four component signals through the four feedback loops. Starting at the beginning point, the four obtained components of the state vector A^{φ} _{c }then pass through four corresponding dynamic filters 2441 through 2444 which have the transfer functions K_{dx}(p), K_{dy}(p), K_{dz}(p), and K_{dq}(p). Four dynamic estimates V_{dx}, V_{dy}, V_{dz}, and V_{dq}, are obtained as a result. Together they form the dynamic estimation vector V_{d,i}. The transfer functions of the dynamic filters 244 define the pass band (e.g., the sluggishness, or time lag, of the four feedback loops) and the dynamic characteristics of four the common inertial tracking loops. The filters are preferably chosen to guarantee a sufficiently low tracking error of the rover movement and possible drifts of the rover's reference generator. This requirement means that the amount of the mismatch δφ_{l,m}which is caused by these perturbations, together with the noise fluctuations in the system, is preferably much less than α/2. If it is so, these perturbations do not effect the value of the correction φ_{l,m} ^{C}, as one can see from the plot of FIG. 3, and also do not upset the linearity of the common loop, as one can see from the plot of FIG. 4 (In FIGS. 3 and 4, the points of steady balance correspond to the points δφ_{l,m}=0, ±α, ±2α, ±3α, . . . etc.). Indeed, the total aggregate of the dynamic errors and noise errors in the vicinity around each point of steady balance (corresponding to δφ_{l,m}=0, ±α, ±2α, ±3α, . . . etc. in FIG. 4) is much less than the span of each sloping line section of the curve given in FIG. 4. Tutorial information on selecting the filter parameters is provided in Appendix A of this application.

[0190]
Our research shows that in the case where the dynamics of the rover's movement approximate those of an ordinary car, the transfer functions K_{dx}(p), K_{dy}(p), K_{dz}(p), and K_{dq}(p) should be the same, and should include two integrators and have the form:

K _{d*}(p)=K1+K2/p+K3/p ^{2},

[0191]
where the asterisk star “*” symbol is a place holder for “x”, “y” “z” or “q”, where K1, K2, and K3 are constants (which can be dynamically changed during operation if so desired), and where p is the Laplacian operator (p=jω=j2πf). The above form, in combination with integrator I_{1}, provides a third order of astaticism (type 3 servo system) for the common tracking loops. (The order of astaticism of the overall loop transfer function K(p) is equal to the polynomial degree of “p” appearing in the numerator K(p), with K(p) in rational form—meaning no fractions 1/p appearing the numerator or denominator of K(p).) The factors K1, K2, K3 are preferably chosen so that the equivalent noise band of the common loop is in the range of 1525 Hz at a computation clock time interval of T_{I}=510 milliseconds. (In this case, the time discretization only slightly affects the loop's frequency response characteristics, and the noise band can be defined with the corresponding linearized analog equivalent of the circuit taken separately, without taking into account the effects of other circuits).

[0192]
As the next step, the vector of dynamic estimates V_{d,i }is projected onto the directions of distances to satellites by multiplying it with the observation matrix H_{i} ^{φ }to generate the ndimensional projection vector V_{p,i}:

V
_{p,i}
=H
^{φ}
_{i}
·V
_{d,i }

[0193]
Each component of the obtained vector V_{p,i }corresponds to a respective channel and we identify each component of the vector as V_{p,l,m }for m=1, 2, . . . , n satellites. Processing block 246 generates matrix H_{i} ^{φ }or receives matrix from the navigation unit which computes the baseline vector. Processing block 246 generates vector V_{p,i }from matrix H_{i} ^{φ }and the dynamic estimate vector V_{d,i}.

[0194]
Each component V
_{p,l,m }of the vector is provided to the input of its own accumulator I
_{1 }(FIG. 2A) through an adder
248. Both accumulator and adder
248 are part of common tracking system
240. Adder
248 is used to inject a signal from local feedback loop, which is described in greater detail below. Accumulator I
_{1 }functions as a time integrator, and scales its input by the processing time interval T
_{I}. The output of accumulator I
_{1 }generates the estimate Δ{circumflex over (φ)}
_{i,m}, which closes the feedback loop of the common tracking loop:
$\Delta \ue89e\text{\hspace{1em}}\ue89e{\varphi}_{i,m}={T}_{I}\xb7\sum _{i}\ue89e{V}_{p,i,m}.$

[0195]
If a cycle slip begins in one or more of the channels, but with a sufficiently high number of channels functioning normally without cycle slips, then the cycleslips in this small number of channels do not appreciable affect the vectors A^{φ} _{c }and V_{d,i }of the common tracking system. As a consequence, the phase residual Δφ_{i,m }of an affected channel changes with time but the estimate Δφ_{i,m }for the affected channel practically varies only slightly, and consequently the magnitude of the mismatch δφ_{i,m }increases with time t_{i }because the phase residual Δφ_{i,m }is changing with time. When the value of the mismatch δφ_{i,m }reaches the threshold α/2, the correction φ_{l,m} ^{C}=α is generated, as might be seen from the plot in FIG. 3. As the mismatch increases further, the magnitude of the correction φ_{l,m} ^{C }grows by additional leaps (2α, 3α, . . . , and so on). This correction is used to correct the single phase difference residual Δφ_{i,m}. The corrected residual is denoted as Δφ_{l,m} ^{C}, and is generated as:

Δφ_{l,m} ^{C}=Δφ_{l,m}−φ^{C} _{l,m},

[0196]
and the task of generating Δφ_{l,m} ^{C }is preformed by adder 205 (FIG. 2A).

[0197]
After the cycle slip has been completed, the value of the correction φ^{C} _{l,m }will coincide with the cycle slip value, and the corrected residual Δφ_{l,m} ^{C }turns out to be independent from the particular point of steady balance which the PLL circuit settled on.

[0198]
Individual circuits

[0199]
The common tracking loops, with properly chosen parameters, tracks quite well the perturbations common for all the channels, specifically, those connected with the rover movement and the drift in the rover's reference generator. Yet individual systematic variations of the phase residual Δφ_{l,m }may also take place in one or more channels, and which are different in each of the channels, and which cannot be compensated by the common tracking system. As a result of such individual variations, a drift in the mismatch δφ_{l,m }in each channel occurs, which begins to increase systematically, and ultimately reaches the threshold of α/2. Then a false correction will be generated, and the system operation will be disrupted. The cause of the individual systematic variations of the phase residual Δφ_{l,m}, and thus the cause of the false correction, is due to an error in the computed position coordinates of the rover. Indeed, as it was noted earlier, the residuals Δφ_{i,m }are defined relative to their computed values, and to compute these values one needs the computed distances D_{i,m} ^{R }and D_{l,m} ^{B}. But the distances may be computed only if the receiver coordinates are known. The base coordinates may be supposed to be known with highaccuracy, but tie rover coordinates are not as accurate; especially in the beginning of measurements before the ambiguity resolution is completed when the rover coordinates are measured only with estimates of the pseudoranges. Consequently, the rover coordinate error may reach 10 meters to 15 meters. As a result of that, an error in the initial value of the computed distances D_{l,m} ^{R }arises, which varies slowly due to the satellite movement. This means that the residuals Δφ_{l,m }vary correspondingly too, and the rates of their respective variations can reach ±0.05 cycles per second. The variations will be different in different channels, which leads to the arising, of the drift. After the ambiguity resolution step is completed, the rover coordinates become substantially more accurate. Correspondingly, the rates of variation in the residuals and drifts decrease by approximately two or three orders of magnitude.

[0200]
To prevent a substantial increase in the mismatch and the occurrence of a false correction, an individual loop 260 for each satellite channel is included into the cycleslip detection and correction unit (see FIG. 2A). Each individual loop 260 measures the amount of systematic drift in the mismatch δφ_{l,m }and corrected mismatch ψ_{i,m }of its channel, and generates a correction signal for the channels estimate Δ{circumflex over (φ)}_{i,m }which compensates for the systematic drift.

[0201]
The corrected mismatch ψ
_{i,m }of each channel is provided to an input of the individual loop
260 for each channel. The output of each individual loop is denoted as V
_{In,l,m}, and is added with the corresponding component V
_{p,l,m }of the vector V
_{p,i }by an adder
248 of the common tracking system
240. In this way, the correction is made to the estimate Δ{circumflex over (φ)}
_{i,m}. Thus, with the addition of the individual loop, the estimation Δ{circumflex over (φ)}
_{i,m }is generated as:
$\Delta \ue89e\text{\hspace{1em}}\ue89e{\varphi}_{i,m}={T}_{I}\xb7\sum _{i}\ue89e\left({V}_{p,i,m}+{V}_{\mathrm{In},\text{\hspace{1em}}\ue89ei\ue89e\text{\hspace{1em}},\text{\hspace{1em}}\ue89em}\right).$

[0202]
Each individual loop 260 samples the value of its corrected mismatch ψ_{i,m }at each ith clock time moment, or periodically samples the value of its corrected mismatch ψ_{i,m }at selected time moments by the use of a switch SW2, and generates a value at its output V_{In,l,m }which would be representative of a systematic drift. For this, the sampled value is scaled by a gain value K_{Σ }by a processing block 264, and optionally integrated by an accumulator I_{2}. Specific ways of generating the output V_{In,i,m }are discussed below in greater detail. V_{In,i,m }is accumulated with signal V_{p,i,m }by accumulator I_{1}, and thus affects the value of the estimate Δ{circumflex over (φ)}_{i,m}, which in turn affects the value of the corrected mismatch ψ_{i,m}, thus forming a negative feedback control loop which corrects small drifts in the corrected mismatch ψ_{i,m}. The addition of the individual loops makes the cycleslip detection and correction unit become a multiloop system.

[0203]
Each individual loop tracks the drift in its corresponding mismatch δφ_{l,m }through the corrected mismatch ψ_{i,m}, and keeps the mismatch value δφ_{l,m }at a rather low level, preventing a false correction. However, here another danger arises, that of failing to detect a cycle slip. Specifically, an increase in the magnitude of the mismatch δφ_{l,m }due to a cycle slip could also be tracked by an individual loop, and the individual loop could change the value of the estimate Δ{circumflex over (φ)}_{i,m }to reduce the magnitude of the mismatch δφ_{l,m }and the corrected mismatch ψ_{i,m}. If this occurs to a sufficient degree, a cycle slip would not be detected by the common tracking system and the correction unit.

[0204]
The following three ways may be used to eliminate this danger.

[0205]
The first way is based upon the fact that the rate of drift in a phase residual Δφ_{l,m }caused by the movement of satellites is rather low. Therefore, to prevent the dangerous increase of the mismatch δφ_{l,m}, the individual loop should react slowly to the mismatch, and should generate a slowacting correction output V_{In,l,m}. This may be done by sampling the value of the corrected mismatch ψ_{i,m }only at selected time moments t_{l }spaced at long time intervals ΔT_{ln }relative to the processing time internal T_{I}(ΔT_{In}>T_{I}), scaling the sampled value by a factor K_{Σ }such as K_{Σ}=1/T_{I}, and then outputting the scaled sample as V_{In,l,m }for only those time moments t_{i }in which the sampling occurred. At other time moments t_{l}, the value of the output V_{In,l,m }is zero. The sampling is performed by switch SW2 shown in FIG. 2A, as controlled through a logical AND gate 261 which receives a periodic gating signal having interval ΔT_{In }and denoted in FIG. 2A by the symbol “ΔT_{In}”. When switched on during a selected time moment t_{i}, switch SW2 couples the value of ψ_{i,m }to gain block K_{Σ}. Integrator I_{2 }and the corresponding adder are not used in this implementation. If there is a slow drift in the mismatch, then the sampled values of ψ_{i,m }will have the same sign, and the periodic values of V_{In,i,m }which are added to accumulator I_{1 }will have the same sign and will constructively add over a long period of time to change the estimate Δ{circumflex over (φ)}_{i,m }to follow the drift in the phase residual Δφ_{i,m}. If one chooses a sampling interval ΔT_{In}<45 seconds, it will be sufficient to prevent the occurrence of a false correction, even before the ambiguity resolution is completed. After the ambiguity resolution is completed and more precise rover coordinates are thereby obtained, it is possible to increase the interval ΔT_{In }up to several minutes. At such intervals, most cycleslips will occur when switch SW2 is not sampling the corrected mismatch ψ_{i,m}. However, there is a finite possibility that switch SW2 will be switched on during a cycle slip, and such would distort the value of the correction φ_{l,m} ^{c}. This possibility is significantly reduced by detecting when a cycle slip is occurring and preventing switch SW2 from closing (i.e., switching on) during a cycle slip. Below, we describe a unit which detects the occurrence of a cycle slip and generates a blocking signal S_{BL}, which is coupled to the AND gate 261 which operates switch SW2. While blocking signal S_{BL }is active (e.g., S_{BL}=0), switch SW2 is prevented from being switching on by the periodic gating signal because of the logic low signal at the lower input of AND gate 261.

[0206]
The second way of preventing the individual loop from inadvertently correcting a cycle slip is a modification of the first way. In the modification, switch SW2 is maintained continually switched on (in the closed state) except when blocking signal S_{BL }is active, and the gain factor K_{Σ }is substantially decreased in value, such as by a factor of 5/T_{I}. This provides for continual monitoring of the corrected mismatch signal, and for a narrow banded feedback loop.

[0207]
The third way of preventing the individual loop from inadvertently correcting a cycle slip is based upon the fact that the rate of drift due to a systematic cause is almost constant over a rather large interval of time (up to 1015 minutes). Therefore, the rate of the drift may be measured and stored in memory right at the beginning of the measurement, and then used for the compensation of the drift. To store the rate of the drift in an individual circuit, a memory unit comprising an accumulator I_{2 }and having a transfer function of (1+K4/p) (FIG. 2A) is used in one exemplary embodiment. The switch SW2 is switched on once in the beginning of measurement for a time period T_{w }sufficient for storing the rate of change of ψ_{i,m }in accumulator I_{2}. A signal applied to the upper input of AND 261 may be used for this purpose. During the switching on of switch SW2, an individual loop with the second order of astaticism (type 2 servo system) is formed. The amplification factor K_{Σ }is selected to provide an equivalent noise bandwidth of 13 Hz for the individual loop. In this case, it will be sufficient to use an period of T_{w}=0.5 seconds to 3 seconds for storing. The rate of drift stored at the first turning on compensates for the growth of the mismatch for the time up until the ambiguity resolution. If the typical time up until the resolution of ambiguity exceeds 1015 minutes, it may be required to increase the order of astaticism (increase the servo number) of the individual loop. To do that, one more integrator is added to the memory unit, which will now have the transfer function of a kind (1+K4′/p+K5′/p^{2}) and will store not only the rate, but also the acceleration of drift.

[0208]
After the ambiguity resolution, the rover coordinates are defined more accurately, and it is necessary to switch on switch SW2 again for a brief time to store a new, and considerably smaller, rate of drift. In the subsequent period, switch SW2 is infrequently turned on for brief periods of time, such as approximately once every 1015 minutes, to set the memory with corrected rate of drift. In the second way, the occurrence of a cycle slip during the turning on of switch SW2 will distort the correction value for the cycle slip. However, since the switching on of switch SW2 is made rarely, and since the occurrence of a cycle slip is a relatively rare event, the probability of their coincidence is very small. In addition, one may delay the sampling of switch SW2 with the coupling of the blocking signal S_{BL }to the lower input of AND gate 261 until all cycle slips have ended.

[0209]
The main drawback of the second way is due to its strong sensitivity to the reflected signals having a Doppler frequency shift. Such reflections can arise from the rover movement. The multipath error in the measured phases due to the movement will vary, and the rate of its variation will bring an error into the rate of drift stored in the individual circuit. This may result in an erroneous correction. Therefore it is best to use the second way when the switching on of switch SW2 may be made when the rover is motionless (for example, prior to the beginning of the rover's movement), or when the Doppler shift of the reflected signal is negligibly small, or when there are only very weak signal reflections in the rover's environment. The first way, in contrast, has little sensitivity to reflected signals, but can ensure the correct amount of correction only when there are cycle slips of relatively short time duration (up to a maximum time duration of 45 seconds). This is because the sampling interval ΔT_{In }is set to a value in the range of 4 to 5 seconds. The second way has a longer sampling period T_{w }and can correct systematic drifts in the presence of long duration cycle slips.

[0210]
Signal of blocking/interlocking

[0211]
Whenever the operation of a channel is disturbed, such as by a cycle slip, it is advisable to disconnect the corrected mismatch signal ψ_{l,m }of the disturbed channel from the common tracking system, and to stop the sampling of switch SW2 of independent loop 260 until the disturbed channel resumes normal operation. The timely disconnection of the corrected mismatch signal of a disturbed channel prevents the occurrence of interchannel interferences, and increases the reliability of the common tracking system and the entire system. The timely stopping of switch SW2 prevents the individual loop from generating a correction based on false data. For this purpose, a blocking signal generator 270 receives the corrected mismatch signal ψ_{i,m }of the channel, the status signal S_{m} ^{B }from the extrapolation unit on the status of the measurements from the base station for the satellite signal being tracked by the channel, and the alarm signals S1 _{m} ^{R }and S2 _{m} ^{R }from the rover receiver, and generates a blocking signal S_{BL,m }whenever it detects a disruption to the channel. For the purposes of discussion, and without loss of generality, we will use a value of S_{BL,m}=1 to indicate a normal operation of the channel, and value of S_{BL,m}=0 to indicate a disruption of the channel. However, it should be understood that the reverse assignment of 0 and 1 values, or the assignment of other values, may be equivalently used. When S_{BL,m}=0, switch SW1 is switching off, and switch SW2 is prevented from being switched on by AND gate 261 for sampling by the individual loop. When S_{BL,m}=1 switch SW1 is switched on, and switch SW2 is allowed to be switched on by either of the periodic signals ΔT_{In }or T_{w}.

[0212]
At the occurrence of the signal of blocking (S_{BL,m}=0) in any channel, the switch SW1 in FIG. 2A of the affected is disconnected, and the corrected mismatch signal ψ_{l,m }of the affected channel does not go to the common tracking system. Whenever a channel is disconnected, matrix G_{i} ^{φ }at processing block 242 should be recomputed from a reduced observation matrix H_{i} ^{φ }which has the corresponding row for the affected channel removed, and from a reduced covariance matrix R_{i} ^{φ }which has the corresponding row and column for the affected channel removed. To perform this task, the blocking signal S_{BL,m }is provided to the G_{i} ^{φ }matrix processing block 242 of common tracking system 240. Whenever a channel is reconnected, matrix G_{i} ^{φ }is recomputed at block 242 with augmented matrices H_{i} ^{φ }and R_{i} ^{φ }which have the previously removed rows and column included. There is no matrix recalculation for the H_{i} ^{φ }matrix processing block 246 of the common tracing system when a channel is disconnected, or when it is reconnected.

[0213]
The disconnected channel ceases to influence the generation of the estimates Δ{circumflex over (φ)}_{i,m }by common tracking system 240, but the estimate Δ{circumflex over (φ)}_{i,m }for the disconnected channel continues to be generated by common tracking system 240 from the data provided by the other channels. The mismatch δφ_{l,m }and correction φ_{l,m} ^{C }of the disconnected channel continue to be generated too. Therefore, a cycle slip in the disconnected channel can he corrected.

[0214]
To prevent this correction from being distorted because of the influence of individual loop 260, the sampling of this individual loop is disabled by switch SW2 (FIG. 2A) when the blocking signal is active (i.e., at S_{BL,m}=0).

[0215]
The blocking signal S_{BL,m }is generated in blocking signal generator 270 shown in FIG. 2A. The method of operation of this unit is explained by a flow diagram 400 shown in FIG. 5. Flow diagram 400 comprises a start block 402, and end block 420, and several processing blocks 404416. The process repeats through the blocks 402420 at each processing time increment T_{1}(e.g., t_{l}, t_{l+1}, t_{l+2}, t_{l+3}, . . . ), or at a small multiple of the processing time increment T_{1}(e.g., t_{l}, t_{l+2}, t_{l+4}, t_{l+6}, . . . ). At block 404, the alarm signals S1 _{m} ^{R }and S2 _{m} ^{R }from the rover, and alarm signal S_{m} ^{B }from the base station are tested to see if any one of them is active (e.g., is zero). An active alarm signal indicates that the channel has most likely been disturbed, and that cycle slips are likely to occur. If one of the alarm signals is active, then the processing moves to block 406, where the blocking signal S_{BL,m }is set in an active state, e.g., S_{BL,m}=0. This disables switches SW1 and SW2, and causes the common tracking system to recompute matrix G_{i} ^{φ }so as to exclude the channel's contribution and prevent its corrected mismatch ψ_{l,m }from influencing the generation of the estimates Δ{circumflex over (φ)}_{j,i}. From block 406, the processing proceeds to block 408, where a timer is set so that a delay duration T_{d }may be subsequently measured in another processing path of flow diagram 400. Instead of setting a timer, one can equivalently record a representation of the current time in a memory location, which can be later compared against the current time to find the delay. From block 408, the processing proceeds to end block 420, and waits for the next processing time increment. As long as one of the alarm signals S1 _{m} ^{R}, S2 _{m} ^{R }and S_{m} ^{B }is active, the process will follow the processing path through blocks 402, 404, 406, 408, and 420.

[0216]
Another condition which indicates that the channel has likely been disturbed is when the magnitude of the corrected mismatch ψ_{l,m }is near its maximum value of α/2. Adhere α is the distance between the steady balance points in the PLL circuit. If the magnitude of the corrected mismatch (ψ_{l,m}) is within 85% to 100% of α/2, it would be advisable to activate the blocking signal S_{BL,m}=0 if it has not already been activated by the alarm signals S1 _{m} ^{R}. S2 _{m} ^{R }and S_{m} ^{B}, or to maintain it in an activated state if the alarm signals have subsequently become deactivated. This test is done at processing block 410, which tests magnitude of the corrected mismatch (ψ_{l,m}) against a threshold value Π_{δ}. The threshold value Π_{δ }is typically in the range of 85% to 95% of α/2, and preferably around 90% of α/2. For a value of α=0.5 cycles (corresponding to 3.14159 radians), a threshold of 90% of α/2 corresponds to Π_{δ}=0.225 cycles (corresponding to approximately 1.4 radians). Processing block 410 is reached from block 404 if the test preformed at block 404 indicates that all of the alarm signals S1 _{m} ^{R}. S2 _{m} ^{R }and S_{m} ^{B }are not active. At block 410, if the magnitude of the corrected mismatch (ψ_{l,m}) exceeds the threshold Π_{δ}, the process proceeds through blocks 406, 408, and 420, where the same steps are performed in the case where one or more of the alarm signals are active.

[0217]
When all the alarm signals are deactivated, and when the magnitude of the corrected mismatch (ψ_{l,m}) falls below the threshold Π_{δ}, the disturbance may have ended and we want to consider deactivating the blocking signal S_{BL,m}, e.g. by setting S_{BL,m}=1. However, the mere disappearance of all of the alarm signals is usually not a sufficient condition to deactivate the blocking signal S_{BL,m}, and the deactivation of the blocking signal S_{BL,m }should be made with some amount of delay. The reason for this is that, as it was already stated earlier, the alarm signals can become deactivated during the middle of a cycle slip while, at the same time, there is an abnormal increase in the phase residual Δφ_{i,m }and of the corrected mismatch ψ_{i,m}. The latter condition indicates that the channel should still not be connected to the common tracking system. Therefore, after an activation of the alarm signals, and after all of the alarm signals have been subsequently deactivated, switches SW2 and SW1 should remain switched off for a time delay T_{d }after the deactivation of the last active alarm signal. The delay T_{d }is set by processing block 408, as previously described. During the duration of the delay T_{d}, the corrected mismatch ψ_{i,m }will be large due to the effects of the cycle. When the cycle slip is finished, the corrected mismatch ψ_{i,m }will return to a value near zero. Thus we have to wait a time delay of T_{d }to return mismatch ψ_{l,m }near zero.

[0218]
This abovedescribed methodology for deactivating the blocking signal S_{BL,m }may be achieved by the topology of the processing blocks 410, 412, 414, and 416 shown in FIG. 5. Once all of the alarm signals have been deactivated, the process will go to processing block 408 to test the magnitude of the corrected mismatch (ψ_{l,m}) As long as this is above the threshold Π_{δ}, the process will keep going through blocks 406 and 408, and the start of the time delay T_{d }will keep being reset. This prolongs the active state of the blocking signal (S_{BL,m}=0) past a time interval of T_{d}. As soon as the corrected mismatch is returned to normal, which is at a level below the threshold Π_{δ}, the process proceeds to block 412 instead of block 406, and the resetting of the timer for delay T_{d }is stopped. At block 412, the process tests whether the time delay has finished. If not, the process proceeds to block 414, where the blocking signal continues to be activated during the time delay T_{d}. The process will continue going through the path of blocks 402, 404, 410, 412, 414, and 420 until the time delay T_{d }has finished, at which point the process will go from block 412 to block 416 when it next encounters block 412. At block 416, the blocking signal is disabled (S_{BL,m}=1). At this point, the process will continue going through the path of blocks 402, 404, 410, 412, 416, and 420 until an alarm signal is activated, or until the magnitude of the corrected mismatch exceeds its threshold.

[0219]
At processing block 412, the determination of whether the time delay T_{d }has been reached may be done by looking at the contents of the timer, if a timer was used in step 408. If the value of the time has exceeded T_{d}, the delay has been reached. If, instead of a timer, a representation of the staring time of the delay was stored to memory in step 408, the determination of whether the time delay has been reached may be done by subtracting the representation of the starting time from the representation of the current time, and then testing that value against the value of T_{d}.

[0220]
Compromises are made in the selection of values of the threshold Π_{δ }and the time delay T_{d}. At too small of a threshold Π_{δ}, the probability of a false disconnection of the channel due to transient noise spikes will increase. We have found that a value of around 90% of α/2 is a good compromise (approximately 1.4 radians for α=0.5 cycles).

[0221]
A too large of a delay T_{d }will result in an excessive time for the disconnection of the channel after the cycleslip has terminated. On the other hand, a too small of a delay T_{d }will result in the channel being connected to the common loops before the cycle slip in the channel has finished. A satisfactory compromise is a choice of T_{d}=1 to 2 seconds.

[0222]
Exclusion of measurements of the channel from the further processing (signal “Observation missing”).

[0223]
The navigation measurements from any channel in which cycle slip occurs should not be used for the resolution of ambiguity or the calculation of the baseline vector until the cycle slip ends and is corrected. The previouslydescribed disconnection of a channel from common tracking system 240 does not necessarily mean that the measurements should be excluded from the ambiguity resolution or the baseline calculation. Some channels of the rover receiver, particularly those tracking satellites positioned at small elevation angles, may be tracking signals having relatively low energy potential, and their fastresponse indicators frequently generate S1 ^{R }alarm signals which cause these channels to be disconnected from common tracking system 240. However, the low energy potential may still be appreciably above a usable threshold value, and the channels which have been disconnected from common tracking system 240 operate with stability in the individual mode (i.e., disconnected mode). The measurements from these channels (with their weight factors taken into account) may turn out to be rather useful for the computation of the baseline vector.

[0224]
In order to determine when the navigation measurements of a channel should be excluded from the ambiguity resolution or the baseline computation because of a cycle slip, we may generate an alarm signal called the “observations missing” signal S_{A,m}. This alarm signal is generated in each channel by a respective observation messing detector 280, and the subscript “m” identifies the channel to which the particular alarm signal belongs. For the purposes of discussion, and without loss of generality, we can assign a value of S_{A,m}=0 to indicate an active alarm state, and a value of S_{A,m}=1 to indicate a deactivated state.

[0225]
The observation missing signal S_{A,m }in the mth rover channel is generated in an active state (S_{A,m}=0) whenever one or more of the following events occur:

[0226]
(1) the slow acting alarm signal S2m

[0227]
of the channel is activated

[0228]
(2) the base measurements are missing (S_{m} ^{B}=0), or

[0229]
(3) whenever the correction φ_{l,m} ^{C }value is incremented or decremented.

[0230]
The fast acting alarm signal S1 _{m} ^{R }is not used. When a cycle slip occurs, one or both of the first two events is likely to occur before the third event (that of a change in the correction φ_{i,m} ^{C}) occurs. Additionally, when a cycle slip is nearing completion, both of the first two events are likely to disappear before the changes to the correction φ_{l,m} ^{C }are finished. Determining the end of the changes to the correction φ_{i,m} ^{C }is the most important factor for determining when it is safe to deactivate the missing observation signal (S_{A,m}=0). Because the correction φ_{l,m} ^{C }changes in discrete steps, and does not change at each processing time increment T_{I}, one has to observe the value of the correction φ_{l,m} ^{C }over a relatively long duration (i.e., over several time increments T_{I}) before one can come to the conclusion that the cycleslip has finished. To do this, we may use the same time delay approach (T_{d}) in detector 280 that was used in the generation of the blocking signal (FIG. 5) in generator 270 (FIG. 2A). During each processing time increment T_{I}(e.g., t_{i}, t_{i+1}, t_{l+2}, t_{l+3}, . . . ), or at a small multiple of the time increment T_{I}(e.g., t_{i}, t_{l+2}, t_{i+4}, t_{i+6}, . . . ), the above five conditions are examined to see if any are active. If one or more are active, then the missing observation signal is activated (e.g., S_{A,m}=0), and a timer for measuring a delay T_{1 }is started. At each subsequent processing time increment, the timer is restarted if any of the above five conditions exists. When all of the five conditions are no longer present, and when the timer reaches the value of T_{1}, the missing observation signal is deactivated (e.g., S_{Am}=1). A flow control structure similar to that shown in FIG. 5 may be used to implement the time delay T_{1}. We have found that a value of T_{1}≅1 second is generally sufficient.

[0231]
Features of the cycle slip detection and correction apparatus and method in the postprocessing (PP) mode.

[0232]
In the PP mode, there is no communication link operating, and the ambiguity resolution and the baseline calculation are performed after the termination of measurements at the rover and base stations. The information and navigation parameters of the base and rover receivers are recorded at periodic intervals at their respective locations, and the recorded parameters are assembled together at one location and processed to resolve the ambiguity and calculate the baseline vector. The time interval between recorded parameters is usually between 0.05 seconds and 1 second, and usually considerably exceeds the clock rate at which the PLL circuits are operated at, which is usually between 0.001 and 0.020 seconds. At such large periods between recorded parameters, the extrapolation of measurements for a moving rover with the required accuracy is practically impossible. In addition, the common tracking system of the cycleslip detection and correction unit cannot track the rover movement with the required accuracy, and in a number of cases cannot track the phase drift of the rover's reference generator. For these reasons, the use of the our apparatuses and methods for the detection and correction of cycle slips in the PP mode is preferably limited to the case where the base and rover receivers are motionless and where highlystable reference generators are used in the receivers. The required stability can be readily achieved in the receivers by using the joint tracking loops disclosed in our copending patent application Ser. No. 09/330,221. filed Jun. 10, 1999, entitled “The Joint Tracking of the Carrier Phases of the Signals Received from Different Satellites”, which was previously described above, and which is incorporated herein by reference.

[0233]
Thus, in the above case, our apparatuses and methods of detection and correction of cycle slips can be used in the PP mode with the following changes:

[0234]
1. Residuals Δφ_{i,m }of the single differences of the phases are calculated directly, without extrapolation, from the records of information parameters received from the base and rover receivers, and are generated periodically at a time interval which coincides with the duration of the frame, and which lies in the range of 0.05 seconds to 1.0 second. This range corresponds to a frame clock frequency of 20 Hz to 1 Hz.

[0235]
2. Each loop of the common tracking system has an astaticism of the second order (type 2 servo system) and an equivalent noise band which is considerably smaller than the frame clock frequency, i.e., from 4.0 Hz to 0.2 Hz depending on the chosen frame clock frequency.

[0236]
Model experiments which demonstrate the operation of the system of detection and correction of cycle slips

[0237]
The operation of the apparatuses and methods of detection and correction of cycle slips according to the second invention of this application can be clearly illustrated with the help of a simulation model. The model simulated the operation of two receivers (Base and Rover), tracking simultaneously 8 satellites (n=8). In each satellite channel of the Base and Rover receivers, there is a PLL circuit which tracks the corresponding satellite carrier and a slave DLL circuit which tracks the C/Acode (GPS) of the satellite. (The DLL circuit is a slave unit in this case because it receives a Dopplershift correction signal generated by the PLL circuit). Each receiver has 4 joint tracking loops as disclosed in our previouslymentioned copending patent application Ser. No. 09/330,221, three of which track the rover displacement along three coordinates, and one tracks the phase of the reference generator. The adjustment frequency of the joint tracking loops is set in the range of 100 Hz to 200 Hz. and the joint tracking loops have an astaticism of the 3rd order (type 3 servo system) and an equivalent noise band of about 20 Hz. The channel DLLs have an astaticism of the 1st order (type 1 servo system), have an equivalent noise band of about 1 Hz, and use strobed reference code signals. The channel PLLs have an astaticism of the 2nd order (type 2 servo system). an equivalent noise band in the range of 2 Hz up to 5 Hz, and a typical discriminator with the characteristic of the form arctan(Q/I). The outputs of the channel PLLs which are provided to the joint tracking loops are blocked by respective alarm signals S1 _{m }which indicate when the quality of the satellite carrier has fallen below acceptable levels. These alarm signals have been previously described above, and take the form of fastresponse angular and amplitude indicators, which can perform a quality measurement at each adjustment clock time (e.g., once every 510 ms). Each channel also has an inertial amplitude indicator with an accumulation period of 250 ms which measures the signaltonoise ratio of the satellite carrier signal. The inertial amplitude indicator generates a corresponding alarm signal S2 _{m}, which indicates a loss or fade of the satellite carrier signal and is used to open the feedback loops of the PLL and DLL circuits when the alarm signal is active. The alarm signals S1 _{m }and S2 _{m}, together with the measured full phase and the signaltonoise ratio in the channel, are provided to cycleslip detection and correction unit 200.

[0238]
In the model, rover movements with accelerations of up to 1.5 g are simulated. The acceleration affects the rover position as well as the frequency shift of the rover's reference generator (a quartz oscillator is modeled). In addition, a systematic frequency drift of up to 5 Hz to 10 Hz in the generator's oscillator due to instability is simulated, and random fluctuations in the oscillator due to vibrations in the band of up to 2 kHz with full dispersion of up to 100 g^{2 }are also simulated. In the channels of the receiver, independent noise sources with energy potentials from 50 dB·Hz to 40 dB·Hz are also simulated. In specific test intervals of time, a reflected signal with the relative amplitude of up to 70% (0.7) of the directsignal amplitude and Doppler frequency of up to 10 Hz is simulated. The blockage of a direct satellite signal by local objects is also simulated.

[0239]
As a general rule, the blockage results in the cycle slip of the PLL circuit, which ends with the establishment of the PLL circuit at a new steady balance point, after which the tracking of the satellite carrier signal resumes. Typical results from the simulation are shown in the graphs of FIGS. 69. In one test experiment, two of the eight satellite signals were simultaneously blocked. The blocked signals were being tracked in channels No. 7 and No. 8. In channel No. 8, the blockage lasted for 6 seconds (from 3.1 seconds to 9.1 seconds), and in channel No. 7 the blockage lasted 0.3 seconds (from 3.1 seconds to 3.4 seconds). Simultaneously with the blockage, a reflected signal appears in each of channels No. 7 and 8 with a relative amplitude of 0.7 in relation to the direct signal and with a Doppler shift of 4 Hz. Such a scenario simulates the passage of the rover between two high local objects, one of which blocks both satellite signals, and the second of which produces the reflected signals. It was supposed that the initial rover position is determined with an error of 1020 m, which results in an error in the baseline computation and, as a consequence, results in the presence of systematic variations in the residuals Δφ_{i,m }of the single phase differences in all of the channels.

[0240]
As the result of the blockage in channel No. 8, a cycle slip with a duration of about 6 seconds and a value of 20.5 cycles occurred. In the plots of FIGS. 6, 7, and 8, the values of residuals of the single phase differences are given. For a more clear presentation of the results, the amount of phase variation due to the rover movement has been subtracted out form the plotted results.

[0241]
In curve (a) of the plot of FIG. 6, we have shown the single phase difference residual Δφ_{i,8 }of the 8th channel, and one can clearly see the process of the cycle slip in the 8th channel in the interval between 3 and 9 seconds. The rate of the cycle slip is about 3.4 cycles per second, whereas during the intervals of normal tracking before and after, the residual Δφ_{i,8 }changes monotonically with a rate of 0.2 radians/second. The slow change during normal tracking is caused by a systematic error arising from an error in the initial computation of the rover's position. Curve (b) in FIG. 6 shows the process of the variation in the corrected residual Δφ_{i,8} ^{C }before, during, and after the cycle slip. It can be seen that the correction has removed consequences of the cycle slip from the corrected residual Δφ_{l,8} ^{C}, and that it has a timeaverage rate of change of 0.2 radians/second due to the systematic error. To better show the correction process on the corrected residual Δφ_{i,8} ^{C}we have shown an expanded view of curve (b) in FIG. 7, where the vertical scale has been expanded. (A portion of curve (a) is also shown in FIG. 7.) Here it is seen that during the cycle slip, the value of Δφ_{i,8} ^{C }has an error which oscillates in the range of approximately ±1.5 radians, with the oscillations being caused by the correction process. It is apparent that on the interval from 3 seconds to 9 seconds, the measurements from the 8th channel should be excluded from the computation of the baseline vector. This is accomplished by the activation of the missing observation signal S_{A,8}(e.g., S_{A,8}=0). For performing the ambiguity resolution, it is possible to use the measurements from the 8th channel during the time interval before the cycle slip (03 seconds), and during the time interval after the cycle slip (920 seconds) in the computation of the baseline vector.

[0242]
In curve (a) of the plot of FIG. 8, we have shown the single phase difference residual Δφ_{i,7 }in channel No. 7, as received in the same experiment as used for obtaining the results of channel No. 8. A relatively short cycle slip of one cycle is observed here. An undershoot spike at the end of the cycle slip can be seen in the plot, and is caused by the transient response of the PLL circuit when it locked onto the new steady balance point. The corrected residual Δφ_{i,7} ^{C }for channel No. 7 is shown in curve (b) of FIG. 8. It is seen from comparison of the curves (b) in FIGS. 7 and 8 that two cycle slips occurred in two channels in the time interval between 3 and 4 seconds, and that both cycle slips were corrected simultaneously. The measurements in channel No. 7 are excluded from the process computing the baseline vector by the signal S_{A,7}=0 in the time interval from 3.1 to 4.62 seconds, which completely covers the range with large errors. The start of the activation of alarm signal S_{BL,7}=0 at 3.0 seconds was caused by a short pulse of the fastresponse alarm indicator in channel No. 7, which generates alarm signal S1 _{7} ^{R}=0. The timer for delay T_{1 }was then set to maintain signal S_{A,7 }in an active state for at least I second, as described above. After the initial activation of signal S_{A,7 }(S_{A,7}=0), four stepwise changes occurred in the correction, each of which restarted the timer for delay T_{1}. The process of generating the corrections Δφ_{l,7} ^{C }in channel No. 7 is illustrated in the plot of FIG. 9. Here it is seen, that the first step in the correction occurred at 3.3 seconds, and that further steps occurred in short intervals thereafter, smaller than the time of delay T_{1}=1 second. The last change in the correction took place at 3.62 seconds, when the transient was finished (i.e., when the cycleslip was completed). Within 1 second (T_{1}l) of the last change to the correction, channel No. 7 again was included into the computation of the baseline vector and the final value of the correction was fixed at 2π radians (corresponding to one cycle). Thus, the proposed system of detection and correction of phase cycle slips eliminates abnormal mistakes caused by a cycle slip and reduces the time required for the resolution of the ambiguity, and as a consequence, prevents loss of the accumulated navigational information due to the random occurrence of a cycle slip.

[0243]
Use of different coordinate systems.

[0244]
As is known in the global positioning art, there are a number of spatial coordinate systems for representing the position of an object in three dimensions. The most commonly used coordinate systems are the Cartesian system, Earthcentered Earthfixed (ECEF) system, geodesic system, and topocentric system. Some of these systems are variants of the Cartesian system. Once the coordinate system is selected for the receiver, the mathematical expression for computing the distance D_{i,m }between a visible satellite (m) and the antenna at the ith time moment may be determined. From this expression, first three elements of the mth row of the Jacobian matrix H_{i} ^{φ }are the set of mathematical derivatives of the distance D_{l,m }with respect to the antenna coordinates (generally indicated herein as: x, y, and z). The first three elements of the mth row of H_{i} ^{φ}=(∂D_{i,m}/∂x, ∂D_{i,m}/∂y, ∂D_{i,m}/∂z). Thus, the matrix elements of H_{i} ^{φ }are representative of the changes in the distance D_{i,m }that would be caused by changes in the antenna's position in the selected coordinate system. The fourth element in the mth row of H_{i} ^{φ }is conventionally the mathematical derivatives of the distance D_{i,m }with respect to receiver's clock offset τ_{l}, as scaled by the speed of light c (i.e., with respect to c·τ_{l}). This element is conventionally set to a value of 1 for all of the rows.

[0245]
C. Ambiguity resolution unit.

[0246]
The ambiguity resolution task comprises the following three main parts:

[0247]
1. Generation of the floating ambiguity estimations.

[0248]
2. Generation of the integer ambiguities.

[0249]
3. Formation of a signal of integer ambiguities resolution.

[0250]
The third invention of the present application pertains to the first part, that of generating the floating ambiguity estimates. The second and third parts may be accomplished by apparatuses and methods well known in the art. The apparatuses and methods of our third invention use as an input data:

[0251]
a) the pseudoranges and full phase measurements obtained in the Base and Rover receivers;

[0252]
b) the satellites coordinates (which are highly predictable can be readily determined from the GPS time and information provided in the 50 Hz lowfrequency information signal by methods well known to the art);

[0253]
c) the estimated coordinates of the Base and Rover stations (as measured at their antennas); and

[0254]
d) the weight coefficients characterizing the accuracy of the measurements.

[0255]
According to the input data, a vector of observations and a covariance matrix of measurements are formed. After that a state vector is generated, components of which are floating ambiguities, the number of which is equal to the number of satellites. On the basis of the floating ambiguity values, a search of the integer ambiguities is performed with use of a least squares method which is modified for integer estimations.

[0256]
Improvement of the floating ambiguity estimations takes place stepbystep, and the probability of correct ambiguity resolution increases stepbystep as information is accumulated. Finishing of this process is registered by appearance of the signal of integer ambiguities resolution, which indicates that ambiguity resolution was performed sufficiently safely. After that, the integer ambiguities together with other input data are used for accurate determination of the base line vector. The tasks of determining the integer ambiguities and of generating the signal of integer ambiguities resolution are known to the art and do not form part of our third invention. These tasks, therefore, are not described in greater detail.

[0257]
All computations in the floating ambiguity resolution unit are performed with clock interval T_{J }which is selected with taking into account user's requirements and capacity of the used processor. A typical value of T_{J }is within 0.11.0 sec. In the RTP mode, the frame duration in the communication line may exceed required clock interval T_{J}. In this case. extrapolation of information parameters transmitted from Base station is used, e.g., by the apparatuses and methods of our first invention described in section A. Full phase measurements may be corrected for cycle slips, e.g., by the apparatuses and methods according to the second invention of the present application described in section B.

[0258]
In our third invention, recurrent processing procedures for obtaining the floating ambiguity estimations, based on the method of least squares, are used. The procedures are suitable both for the RTP mode and for the PP mode under movable Rover, where the Rover coordinates may be random and independent in adjacent clock moments. For statistic measurements, when it is known that Rover is immovable, procedures enabling one to decrease processor load and increase measurements accuracy are provided.

[0259]
A common feature of the proposed procedures of our third invention is that for every clock (jth) time moment (t_{J}=j·T_{J}, where j=1, 2 . . . ) joint processing of the code and phase measurements is performed for all satellites simultaneously. The obtained floating ambiguity estimations are accumulated in time and improved stepbystep.

[0260]
In the discussion of this invention, we will be working mostly with vector forms of the information parameters, thus we have omitted the use of satellite index m for the most part.

[0261]
C.1. The first recurrent procedure for determining the float ambiguity estimations.

[0262]
We start this discussion with rewriting equation (18), which has the integer ambiguities N^{m }in vector form:

φ^{B} _{i}(T_{i})−φ^{R} _{i}(T_{i})=Λ^{−1}·(D^{B} _{i}−D^{r} _{i})+ƒ_{S}·(τ^{B} _{I}−−τ_{i} ^{R})+N+(φ^{′} _{O} ^{B}−φ^{′} _{)} ^{R})−(ζ_{φ} ^{B} _{i}−ζ_{φ} ^{R} _{i}),

[0263]
where Λ^{−1 }is a diagonal matrix of inverse wavelengths. We note that the components of (φ′_{0} ^{B}−φ′_{0} ^{R}) can be selected to be integer constants, and can therefore be incorporated into the integer ambiguities N. Thus, we may simplify the above equation:

φ_{i} ^{B}(T_{i})−φ_{i} ^{R}(T_{i})=Λ^{−1}·(D_{i} ^{B}−D_{i} ^{R})+ƒ_{S}·(τ_{i} ^{B}−τ_{i} ^{R})+N−(ζ_{φi} ^{B}−ζ_{φi} ^{R})

[0264]
Our approach comprises solving the above equations to find an estimation for vector N. However, we cannot readily find measured values for vectors τ_{i} ^{B}, τ_{i} ^{R}, ζ_{φi} ^{B}, and ζ_{φi} ^{R}, and we have some errors in the range vectors D_{i} ^{B }and D_{i} ^{R}. Our approach is to represent (model) the errors in the range vectors D_{i} ^{B }and D_{i} ^{R }and the terms ƒ_{S}·(τ_{i} ^{B}−τ_{i} ^{R})−(ζ_{φi} ^{B}−ζ_{φi} ^{R }) by the following error vector: Λ^{−1}·H_{j} ^{γ}·[Δx, Δy, Δz, c·Δτ]^{T}, where H_{j} ^{γ}is the Jacobian matrix (e.g., directional cosine matrix), and where [Δx, Δy, Δz, c·Δτ]^{T }are corrections to the baseline coordinates and clock offsets of the receivers. Thus, we will model the above equation as:

(φ_{j} ^{R}−φ_{j} ^{B})−Λ^{−1}·(D _{j} ^{R} −D _{j} ^{B})=N+Λ ^{−1} ·H _{j} ^{γ}·[Δx, Δy, Δz, c·Δτ]^{T }

[0265]
We will use the pseudoranges to find the vector H_{j} ^{γ}·[Δx, Δy, Δz, c·Δτ]^{T }as follows:

(γ_{j} ^{R}−γ_{j} ^{B})−(D _{j} ^{R} −D _{j} ^{B})=H _{j} ^{γ}·[Δx, Δy, Δz, c·Δτ]^{T }

[0266]
This will be done through use of the least squares method, and the formation of observation vectors, state vectors, and observation matrices, as described below in greater detail. Once the estimation of vector N is found, it will be accumulated and processed to find accurate estimates for the floating ambiguities.

[0267]
Generation of the vector of observations.

[0268]
In our first general recurrent (i.e., iterative) procedure, a vector of observations μ_{j }is generated at each clock time moment t_{j}=j·ΔT_{J }and comprises 2·n components, where n is the number of the satellite channels. The first n components are the residuals of the single differences of the Base and Rover pseudoranges, which we denote in vector form as Δγ_{j}:

Δγ_{j}=γ_{j} −D _{j }

[0269]
with

[0270]
γ_{j}=γ_{j} ^{R}−γ_{j} ^{B}, and D_{j}=D_{j} ^{R}−D_{j} ^{B}; and

[0271]
where γ_{j} ^{R }and γ_{j} ^{B }are vectors containing the pseudoranges of the satellites, measured in the Base and Rover receivers, respectively; and

[0272]
D_{j} ^{R }and D_{j} ^{B }are vectors of the estimated ranges of the satellites from Base and Rover stations at the moment of jth signal radiation.

[0273]
The next n components of the observation vector μ_{j }are the residuals of the single differences of the Base and Rover full phases (Δφ_{l}), which we indicate here in vector form:

Δφ_{j}φ_{j}−Λ^{−1} ·D _{j }

[0274]
where

[0275]
φ_{j}=φ_{j} ^{R}−φ_{j} ^{B};

[0276]
φ_{j} ^{R }and φ_{j} ^{B }are vectors of the full phases of the given satellite signal, measured at the Base and Rover receivers, respectively (the phases are measured in cycles); and

[0277]
Λ^{−1 }is a diagonal matrix of inverse wavelengths, where each diagonal component corresponds to a channel and is equal to 1/λ, where λ is the wavelength of the carrier signal in the given channel.

[0278]
The full phase vectors φ^{B} _{l }and φ^{R} _{l }may be constructed in the form provided by equation (5):

φ^{B} _{l}(T _{i})=ƒ_{p,nom}·(T _{i} −T _{p} ^{B})−φ^{B} _{i,NCO}(T _{i}),

φ^{R} _{l}(T _{i})=ƒ_{p,nom}·(T _{i} −T _{p} ^{R})−φ^{R} _{i,NCO}(T _{i}),

[0279]
or may be constructed in the form which includes the phase offsets of the base receiver:

φ^{B} _{l}(T _{i})=[ƒ_{p,nom}·(T _{i} −T _{p} ^{B})−φ^{B} _{i,NCO}(T _{i})]−φ′_{0} ^{B},

φ^{R} _{l}(T _{l})=[ƒ_{p,nom}·(T _{i} −T _{p} ^{R})−φ^{R} _{i,NCO}(T _{i})]−φ′_{0} ^{R}.

[0280]
In either case, we will use the convention practice and have the base receiver correct its clock so that the base time T_{i }will be equivalent to the GPS time t_{k }for the purposes of implementing our inventions (the time offset has already been accounted for in the above equations). For all practical purposes, times T_{i }and t_{k }will refer to the same processing time increment, and can be interchanged in the above equations.

[0281]
Generation of the measurements covariance matrix.

[0282]
Measurements covariance matrix R
_{J }is formed in the following way on the basis of weight coefficients obtained in Base and Rover receivers:
${R}_{j}=\left[\begin{array}{cc}{R}_{j}^{\gamma}& 0\\ 0& {R}_{j}^{\varphi}\end{array}\right],\text{}\ue89e\mathrm{where}$ ${R}_{j}^{\gamma}=\left[\begin{array}{cccc}{\left({K}_{j,1}^{\gamma}\right)}^{1}& 0& \cdots & 0\\ 0& {\left({K}_{j,2}^{\gamma}\right)}^{1}& \cdots & 0\\ \vdots & \vdots & \u22f0& \vdots \\ 0& 0& \cdots & {\left({K}_{j,n}^{\gamma}\right)}^{1}\end{array}\right],\mathrm{and}$ ${R}_{j}^{\varphi}=\left[\begin{array}{cccc}{\left({K}_{j,1}^{\varphi}\right)}^{1}& 0& \cdots & 0\\ 0& {\left({K}_{j,2}^{\varphi}\right)}^{1}& \cdots & 0\\ \vdots & \vdots & \u22f0& \vdots \\ 0& 0& \cdots & {\left({K}_{j,n}^{\varphi}\right)}^{1}\end{array}\right].$

[0283]
The weight coefficients (K_{J1} ^{γ}, K_{J2} ^{γ}, . . . , K_{Jn} ^{γ}) characterize the accuracy of the measurements of the residuals Δγ_{j }of the pseudorange single differences for the corresponding satellite channels (1st, 2nd . . . nth). Each of these coefficients is determined according to the weight coefficients measured in each channel by Base and Rover receivers for the pseudoranges, i.e., by values K_{J} ^{γB}, K_{J} ^{γR}.

[0284]
Thus, for example, for the nth channel

(K^{γ} _{jn})^{−1}=(K^{y} _{j} ^{B} _{n})^{−1}+(K^{y} _{j} ^{R} _{n})^{−1},

[0285]
where K_{Jn} ^{γB}, K_{Jn} ^{γR }are determined taking into account the measured signaltonoise ratio in the receivers and the satellite elevation angles in the nth channel (of Base and Rover, respectively) in the manner that was described earlier in section A (for determining weight coefficient K_{K}). Specifically, for each of the receivers (no superscript used),

K^{γ} _{j,m}=Z_{k} ^{2} _{m}·sin(ξ_{k,m}−ξ_{min})·σ+HDγ^{2}

[0286]
when ξ_{k,m>ξ} _{min}, and

K^{γ} _{j,m}=0 when ξ_{k,m}≦ξ_{min},

[0287]
where Z_{k,m} ^{2 }is the signal strength of the mth satellite carrier signal as received by the receiver (it has been normalized to a maximum value and made dimensionless), where ξ_{k,m }is the elevation angle of the mth satellite as seen by the receiver, where a minimum elevation angle ξ^{B} _{min }at which the signal becomes visible at the receiver, where σ_{γ} ^{2 }is the variance of the code measurements (σ_{γ}≈1 m). The factor Z_{k,m} ^{2}·sin(ξ_{k,m}−ξ_{mln}) is dimensionless.

[0288]
Weight coefficients k_{j} ^{φ} _{1}, K_{j} ^{φ} _{2}, . . ., K^{φ} _{jn }characterize the accuracy of the measurements of the residuals Δφ_{j }of the phase single differences, and are determined similarly. Here the same input data is used: the signaltonoise ratio and the angle of elevation, but another scale for the phase measurements is considered (e.g., σ_{φ} ^{2 }instead of σ_{γ} ^{2}). Specifically, for each of the receivers (no superscript used),

K^{γ} _{j,m}=Z_{k} ^{2} _{m}·sin(ξ_{k,m}−ξ_{min})·σ+HDφ^{2}

[0289]
when ξ_{k,m>ξ} _{min}, and

K^{γ} _{j,m}=0 when ξ_{k,m}≦ξ_{min},

[0290]
where Z_{k,m} ^{2},ξ_{k,m }and ξ^{B} _{mln }are as they are above, and where σ_{100 } ^{2}is the variance of the code measurements (σ_{φ}≈1 mm).

[0291]
When the magnitudes of either of weight coefficients K^{γ} _{j} ^{B} _{,m }or K^{γ} _{j} ^{R} _{,m }is less than a first selected small threshold value, the value of K_{j,m} ^{γ }is generated as a first small number which is less than the first threshold value. This is equivalent to setting (K_{j,m} ^{γ})^{−1 }to a large number equal to the inverse of the first small number. Similarly, When the magnitudes of either of weight coefficients is less than a second selected small threshold value, the value of is generated as a second small number which is less than the second threshold value. This is equivalent to setting to a large number equal to the inverse of the second small number.

[0292]
The elements of the covariance matrix R_{j }corresponding to the channels which should be excluded from processing (by the signal “observation absence”) are replaced by very large number. The very large number is selected in advance, and has a value which exceeds by several orders of magnitude the nominal values of the covariance matrix components or (K_{J} ^{φ})^{−1 }encountered during operation. Consequently, in further computations the weights of all measurements relating to these channels become so small that they do not influence the result.

[0293]
Determination of the state vector estimation.

[0294]
The state vector A_{j }in the first recurrent procedure of our third invention comprises (4+n) components. The first three components are increments (Δx, Δy, Δz) to the coordinates (x, y, z) of the base vector unknown at the jth clock moment, the fourth component is the unknown increment of the reference oscillator phases(c·Δτ). The remaining n components are the unknown floating ambiguities, different in different channels (N^{1}, N^{2 }. . . N^{n}).

[0295]
2n equations (according to the number of components of the observation vector)) may be used to determine the state vector A_{j }at the jth clock moment (i.e., to determine 4+n unknown values). Solution of such a system of equations at n≧4 is performed by the method of least squares.

[0296]
Since the vector of observations μ_{j }contains only the corrections to the estimated values, the system of equations is linearized and may be expressed in the form of

μ_{j} =H _{j} ^{μ} ·A _{j},

[0297]
where the observation matrix H_{j} ^{μ }specifies the relationship between the components of the observations vector μ_{j }and the state vector A_{j}. In this case, matrix H_{j} ^{μ }comprises 2n rows and (4+n) columns.

[0298]
Matrix H
_{j} ^{μ }may be divided into the following 4 parts (submatrices):
${H}_{j}^{\mu}=\left[\begin{array}{cc}{H}_{j}^{\gamma}& 0\\ {\Lambda}^{1}\xb7{H}_{j}^{\gamma}& E\end{array}\right].$

[0299]
The first part, the left upper corner of this matrix (the first four columns by the first n rows), is occupied by the observation matrix H_{j} ^{γ }relating to the pseudorange measurements, each row corresponding to one channel (from the 1st to the nth). For the nth channel, the corresponding row appears like this:

[α_{jn}, β_{jn}, h_{jn}, 1],

[0300]
where α_{jn}, β_{jn}, h_{jn}—the directional cosines of the range vector to the nth satellite from Rover for the jth time moment. The generation of the elements of the pseudorange observation matrix H_{j} ^{φ }was previously described above in section B on our second invention of the present application.

[0301]
The second part of matrix H_{j} ^{μ}, the left lower corner (the first four columns by the last n rows), is occupied by the matrix product Λ^{−1}·H_{j} ^{γ }relating to the full phase measurements, each row corresponding to one channel (from the 1st to the nth).

[0302]
For the nth channel, the corresponding row appears like this:

[α_{jn}/λ_{n}, β_{jn}/λ_{n}, h_{jn}/λ_{n}, 1/λ_{n}],

[0303]
where λ_{n }is the wavelength of the carrier signal in the nth channel.

[0304]
The third part, the right upper corner (the last n columns by the first n rows) is occupied by zeroes.

[0305]
The fourth part, the right lower corner (the last n rows by the last n columns) is occupied by the elements relating to the floating ambiguities. This part represents the identity matrix E with dimensions of n×n.

[0306]
The method of least squares gives an estimation Â
_{j }of the state vector A
_{j }in the form of
${\hat{A}}_{j}={\left[{\left({H}_{j}^{\mu}\right)}^{T}\ue89c\xb7{R}_{j}^{1}\xb7{H}_{j}^{\mu}\right]}^{1}\xb7{\left({H}_{j}^{\mu}\right)}^{T}\xb7{R}_{j}^{1}\xb7{\mu}_{j}$

[0307]
(here and further upper index T means matrix transposition, upper index −1 means matrix inversion).

[0308]
Determination of the float ambiguity vector estimation.

[0309]
From the obtained estimation vector Â_{j }of the state vector, only those components are extracted which relate to the ambiguity (but not the components related to the base vector coordinates or to the frequency drift of the reference oscillator). The selected components form a preliminary estimation vector Ñ_{j }of the floating ambiguity vector (this vector has n components).

[0310]
As the next step, a main estimation vector {circumflex over (N)}_{j }of the floating ambiguity vector is generated as a weighted summation of the preliminary estimation vector Ñ_{j }and the value of the main estimation vector {circumflex over (N)}_{j−1 }generated at the previous clock moment t_{(J−1 )}=(j−1)·ΔT_{J}. The weighted summation is generated at each clock moment t_{J}=j·ΔT_{J }for j=1,2 . . . , where under j=1 it is assumed that {circumflex over (N)}_{1}=Ñ_{1}. Several exemplary procedures for performing the weighted summation are described below.

[0311]
Exemplary procedures for performing the weighted summation.

[0312]
The weighted summation of the preliminary estimation vector Ñ
_{j }and main estimation vector {circumflex over (N)}
_{j−1 }may be performed by different methods. The first exemplary method which we disclose here is the main one, and it is suitable for arbitrary observation time. In this first method, we first generate a covariance matrix
_{j }for the estimation vector Â
_{j }of the state vector as follows:

_{j}=[(
H _{j} ^{μ})
^{T} ·R _{j} ^{−1} ·H _{j} ^{μ}]
^{−1}.

[0313]
We then generate a covariance matrix {tilde over (r)}
^{N} _{j }for the preliminary estimation vector Ñ
_{j }by selecting from matrix
_{j }only that part which relates to the floating ambiguity (e.g., the submatrix comprising the last n rows and last n columns of matrix
_{j}). The weighted summation is performed with taking into account the obtained covariance matrixes and main estimation Ñ
_{j }is found as follows:

{circumflex over (N)} _{j} =W _{j} ·{circumflex over (N)} _{j−1}+(E−W _{j})·Ñ _{j},

W_{j}={tilde over (R)}^{N} _{j}·({tilde over (R)}^{N} _{j−1})^{−1}

[0314]
is the weight matrix,

R^{N} _{j}=[({tilde over (R)}^{N} _{j})^{−1}+({tilde over (R)}^{N} _{j−1})^{−1}]^{−1}

[0315]
is the covariance matrix for the main estimation vector {circumflex over (N)}_{j }of the state vector at the jth time moment, where for j=1 we set R^{N} _{1}={tilde over (R)}^{N} _{1}, and where E is the identity matrix.

[0316]
As the weighted summation is generated through successive time moments, information at the current time is accumulated with information at previous time moments, and as a result the components of the main estimation vector {circumflex over (N)}_{j }of the floating ambiguities become more accurate with time. The accumulation process of the summation reduces the effects of measurement errors. The motion of the satellites over the accumulation period enables the method to generate many preliminary estimation vectors Ñ_{j}, each having a different sets of pseudoranges and computed distances but having the same integer ambiguity.

[0317]
A second exemplary method for generating the weighted summation is simplified, and is suitable for small observation intervals T
_{S }in the range of 10 to 20 seconds, and more typically in the range of 8 to 10 seconds. In this method, weight matrix W
_{j }is not generated, which reduces processor load. The main estimation vector is generated as
${\hat{N}}_{j}=\frac{j1}{j}\xb7{\hat{N}}_{j1}+\frac{1}{j}\xb7{\stackrel{~}{N}}_{j}.$

[0318]
In the simplified weighted summation, the vector components corresponding to those channels which should be excluded from further processing according to the signal “Observation missing” are excluded from vectors {circumflex over (N)}_{j−1 }and Ñ_{j}.

[0319]
An exemplary third method combines the first and second methods. Over an integer number Ks of time moments t
_{l}, as indexed by index l, the second method is used to generate main estimation vectors {circumflex over (N)}
_{l }from preliminary estimation vectors Ñ
_{l }according to the second method as follows:
${\hat{N}}_{l}=\frac{l1}{l}\xb7{\hat{N}}_{l1}+\frac{1}{l}\xb7\ue89c{\stackrel{~}{N}}_{l},$

[0320]
where Ks is greater than one, where adjacent time moments l are separated by the interval ΔT
_{J}, and where {circumflex over (N)}
_{l}=Ñ
_{l }for l=1. At the end of the Ksth time moment (l=Ks), an intermediate estimation vector {circumflex over (N)}*
_{k}of the float ambiguity vector is generated as {circumflex over (N)}*
_{k}={circumflex over (N)}
_{Ks}, which will be used by the first method to generated a final estimation vector. The index I is reset to zero (l=0), and second method is repeated in the same manner for the next Ks consecutive time moments, which will generate the next intermediate estimation vector {circumflex over (N)}*
_{k+1 }as {circumflex over (N)}*
_{k+1}={circumflex over (N)}
_{Ks}. The second method is continually repeated in this manner to generated successive intermediate estimation vectors at periodic time intervals ΔT
_{S}=Ks·ΔT
_{J}, where ΔT
_{S }is preferably in the range of 10 to 20 seconds. For each intermediate estimation vector {circumflex over (N)}*
_{k}, a corresponding covariance matrix {haeck over (R)}
^{N} _{k}is generated by a recurrent procedure which we describe next. During the interval l=1 to l=Ks over which the intermediate estimation vector is being generated, a temporary covariance matrix
*
_{l }is determined by the following recurrent procedure:
${\Re}_{l}^{*}=\frac{l1}{l}\xb7{\Re}_{l1}^{*}+\frac{1}{l}\xb7{\stackrel{~}{R}}_{l}^{N},$

[0321]
where for l=1. The covariance matrix is generated from the covariance matrix
_{j}=(H
_{j} ^{T}·R
_{j} ^{−1}·H
_{j})
^{−1 }described above by selecting from the covariance matrix
_{j }only that part which relates to the floating ambiguity (e.g., the submatrix comprising the last n row and last n columns of matrix
_{j}). At the end of the Ksth time moment, the desired covariance matrix {haeck over (R)}
^{N} _{k }is generated as:
${\stackrel{\u22d3}{R}}_{k}^{N}=\frac{{\Re}_{\mathrm{Ks}}^{*}}{\mathrm{Ks}}.$

[0322]
The weighted summation according to the first method is performed on the intermediate estimation vectors {circumflex over (N)}*_{k}, {circumflex over (N)}*_{k+1}, etc., taking into account the weight matrixes

[0323]
etc., to generate the main estimation vectors {circumflex over (N)}_{k}, {circumflex over (N)}_{k+1}, etc., of the floating ambiguity at clock moments t_{k}=k·ΔT_{S }as follows:

{circumflex over (N)} _{k} =W _{k} ·{circumflex over (N)} _{k−1}+(E−W _{k})·{circumflex over (N)}* _{k},

[0324]
The third method enables one to combine advantages of the second simplified method (which does not require frequent inversions of nondiagonal matrixes having large dimensionality) and the first main method which does not limit the observation time. It is apparent that in the third method the floating ambiguity estimations and, hence, the accurate estimations of the base vector will be provided with the longer time interval of ΔT_{S}.

[0325]
It may be appreciated that equivalent results in the solution process are obtained by exchanging the block matrix rows of the observation matrix H_{j} ^{μ}, exchanging the subvectors Δγ_{j }and Δφ_{j }of the observation vector μ_{j}, and exchanging the submatrices R_{j} ^{ }and R_{j} ^{γ }of matrix R_{j}. Also, equivalent results in the solution process are obtained by exchanging the block columns of the observation matrix H_{j} ^{μ}, and exchanging the subvectors [Δx, Δy, Δz, c·Δτ]^{T }and Ñ_{j }of the estimated state vector Â_{j}. This second set of exchanges may be done alone or in combination with the first set of exchanges.

[0326]
Features of the first recurrent procedure at kinematic and static operating modes.

[0327]
We use the term “the kinematic mode” to describe the operating mode where the Rover is moving, and its coordinates between adjacent clock moments is considered to be random and independent. In such a movement model, it is impossible to predict the Rover position for the jth time moment, knowing its position at previous time moments. Therefore the Rover coordinates are determined at every moment again and are not improved in the long run by the use of accumulation.

[0328]
We use the term “the static mode” to describe the operating mode where the Rover is immovable, and its coordinates are constant but unknown and are subject to determination. The coordinates of the immovable Rover are improved in the long run as information is accumulated. The above described first recurrent procedure is applicable to both the static and kinematic modes, since it provides for gradual accumulation of information about only the floating ambiguity estimations, which are constant in both modes. However, if it is known that the mode is static, it is possible to improve results at the expense of performing an additional accumulation of information about the Rover coordinates. This can be done by modifying the first recurrent procedure as we describe below, the essence of which comprises the expansion of the components of vector Ñ_{j}.

[0329]
In the static mode, a vector {tilde over (B)}
_{j }is obtained from state vector Â
_{j}, from which in this case it is necessary to extract not only the components relating to the floating ambiguity, but the three increments to the coordinates of the base vector as well. Thus, only the component in vector Â
_{j }for the phase drift of the main oscillators is not used. In this case, vector {tilde over (B)}
_{j }contains n+3 components and, strictly speaking, cannot be called the “floating ambiguity estimation vector”. We will therefore call it the “augmented estimation vector.” Further operation of the recurrent procedure is according to either the first or third methods of generating the weighted summation which we described above, with the substitution of {tilde over (B)}
_{j }for Ñ
_{j}, {circumflex over (B)}
_{j }for {circumflex over (N)}
_{j}, and {circumflex over (B)}
_{j−1 }for {circumflex over (N)}
_{j−1}, and with the expansion of the covariance matrices +E,olt R
^{n} _{j }to include the components of covariance matrix
_{j }related to the coordinate increments as well as the components related to the floating ambiguities. The modified process is finished by extracting the main estimation of the floating ambiguity vector from the augmented estimation vector {circumflex over (B)}
_{j}.

[0330]
Under such change of the first recurrent procedure, the accuracy of floating ambiguity increases more rapidly in time, and the time necessary for obtaining a reliable ambiguity resolution is reduced.

[0331]
Another difference of the static and kinematic modes relates to the method of generating the observations vector μ_{j }and observations matrix H_{j}. As it was mentioned above, the generation of vector μ_{j }and matrix H_{j }uses the estimated values of the range vectors D^{B} _{j }and D^{R} _{j }as input. Since the Base station is immovable and since the Base coordinates are known, the components of vector D^{B} _{j }change only because of the movements of the satellites, which are considered to be known, and hence it is possible to determine vector D^{B} _{j }for every jth moment with sufficient accuracy.

[0332]
In the static mode, the Rover coordinates are constant, but have unknown accuracy at the beginning of the observation. Therefore, for initial range determination, the prior values of the Rover's coordinates are used, which are known, as a rule, with a large error. This error rapidly decreases when pseudorange measurements are introduced into the processing. In fact, already after several clock intervals T_{J}, the accuracy is found to be sufficient for the linearization of the system of navigation equations and for the estimation of the directional cosines (which are components of matrix H_{j}). Further improvement of the Rover coordinates for determining vectors μ_{j }and H_{j }in the static mode is not needed. In the static (stationary) mode, the same geometric Jacobian matrix H_{j} ^{γ }may used for a plurality of discrete time moments j.

[0333]
In the kinematic mode, the Rover coordinates change, therefore the estimated range vector D^{R} _{j }for the Rover should be recomputed at every processing time interval ΔT_{J}, taking into account the movements of both the satellites and the Rover. This may be done by using a standalone solution for the rover's position using only rover's measured navigation parameters Oust the rover). It may also be done updating the values of the vector D_{J} ^{R }(which holds the estimated distances between the satellites and the rover receiver) on the basis of the set of baseline estimation corrections [Δx, Δy, Δz, c·Δτ]^{T }found from matrix Â_{j−1 }at the previous time moment j−1. The geometric Jacobian matrix H_{J} ^{γ }may also be updated by either of the above methods. These updates may also be done in our second recurrent procedure, which is described below.

[0334]
C2. The second recurrent procedure for determining the float ambiguity estimations.

[0335]
In our second general recurrent procedure for determining the float ambiguities, two separate vectors of observations are formed: a pseudorange observations vector μ_{j} ^{γ }and a phase observations vector μ_{j} ^{φ}. Two corresponding state vectors are also formed, state vector A_{j} ^{γ }and state vector A_{j} ^{φ}. Observations vector μ_{j} ^{γ }for the second recurrent procedure is generated at each time moment T_{J}, and comprises n components which represent the residuals of the single differences of the Base and Rover pseudoranges (vector Δγ_{j}). These differences are determined in the same way as in our first general recurrent procedure. The covariance matrix R_{j} ^{γ }of the measurements for the second recurrent procedure is generated in the same way as the corresponding matrix in the first recurrent procedure.

[0336]
The observations vector μ_{j} ^{φ }is also generated at each clock time moment T_{J }and contains n components which represent the residuals of the single differences of the Base and Rover phases (vector Δφ_{j}). These components, as well as covariance matrix R_{j} ^{φ}, are determined in the same way as in the first recurrent procedure.

[0337]
Determination of the state vector estimation according to the pseudorange measurements.

[0338]
State vector A_{j} ^{γ }in the second recurrent procedure contains 4 components. The first three are the unknown increments (Δx, Δy, Δz) to the coordinates (x, y, z) of the baseline vector at the jth clock, and the fourth component (c·Δτ) is the unknown increment of the reference oscillator phase.

[0339]
n equations (according to the components number in vector of observations μ_{j} ^{γ}) are used for determining the state vector A_{j} ^{γ}. Solution of the system of equations under n≧4 is performed by the method of least squares.

[0340]
The linearized system of equations is expressed as

μ_{j} ^{γ} =H _{j} ^{γ} ·A _{j} ^{γ},

[0341]
where the observations matrix H_{j} ^{γ }corresponds to the first part of matrix H_{j} ^{μ}used in the first recurrent procedure.

[0342]
The method of least squares gives an estimation of the 4component state vector in the form of:

Â _{j} ^{γ}=[(H _{j} ^{γ})^{T}·(R _{j} ^{γ})^{−1} ·H _{j} ^{γ}]^{−1}·(H _{j} ^{γ})^{T}·(R _{j} ^{γ})^{−1}·μ_{j} ^{γ}.

[0343]
Determination of the estimation of the float ambiguity vector.

[0344]
The obtained estimation state vector Â_{j} ^{γ}, being based on pseudorange measurements, enables one to find a desired value of the phase observations vector in the form of the estimation state vector {circumflex over (μ)}_{j} ^{φ}. Estimation vector {circumflex over (μ)}_{j} ^{φ }of the phase observations vector is a vector containing n components and is determined as:

{circumflex over (μ)}_{j} ^{φ} =H _{j} ^{φ} ·Â _{j} ^{γ},

[0345]
where H_{j} ^{φ}=Λ^{−1}·H_{j} ^{γ}.

[0346]
It is then possible to determine a preliminary estimation vector Ñ_{j }of the floating ambiguity vector as a difference between the measured vector of the phase observations μ_{j} ^{φ }and its estimation {circumflex over (μ)}_{j} ^{φ }as follows:

Ñ _{j}=μ_{j} ^{φ}−{circumflex over (μ)}_{j} ^{φ}.

[0347]
The main estimation vector {circumflex over (N)}_{j }of the float ambiguity vector is generated by a weighted summation of the preliminary estimation vector Ñ_{j }and the main estimation vector {circumflex over (N)}_{j−1 }determined at the previous clock moment t_{(j−1)}=(j−1)·T_{J}. All computations are repeated for every jth clock moment under j=1, 2 . . . , where under j=1 it is assumed that {circumflex over (N)}_{1}=Ñ_{1}.

[0348]
As well as in the first recurrent procedure, the weighted summation may be performed by any of the three methods which were described above. However, the form of the covariance matrix {tilde over (R^{N} _{j }for the preliminary estimation vector ({tilde over (N)})}_{j}) is preferably different. In the second recurrent procedure, the matrix {tilde over (R)}_{j} ^{N }is preferably generated in the following form:

[0349]
A second, and less preferred way of generating covariance matrix {tilde over (R
^{N} _{j }follows the method used in our first recurrent procedure. Specifically, we use the larger matrices H
_{j} ^{μ}and R
_{j} ^{−1 }to form the larger covariance matrix
_{j}=[(H
_{j} ^{μ})
^{T}·R
_{j} ^{−1}·H
_{j} ^{μ}]
^{−1}, and we then generate covariance matrix {tilde over (R
^{N} _{j }by selecting from matrix
_{j }only that part which relates to the floating ambiguities. )})}

[0350]
In the second recurrent procedure (as well as in the first), in the kinematic mode, the estimated range vector D^{R} _{j }and matrices H_{j} ^{φ }and H_{j} ^{γ }should be recomputed taking into account the Rover's movement. This may be done by any of the methods described above for the first recurrent procedure (standalone position solution, or updating the components of

[0351]
H_{j} ^{φ}, and H_{j} ^{γ }on the basis of the set of baseline corrections [Δx, Δy, Δz, c·Δτ]^{T }found at the previous time moment j−1). In the static mode, improvement of the Rover coordinates for determining the floating ambiguity is not needed.

[0352]
[0352]FIG. 12 shows an exemplary schematic diagram of a general processing unit 500 which may be used to perform the first and second recurrent procedures, and their various configurations. A residual generator 510 receives the vectors γ_{j} ^{B}, γ_{j} ^{R}, D_{j} ^{B}, D_{j} ^{R}, φ_{j} ^{B}, φ_{j} ^{R}, and generates the residuals Δγ_{j }and Δφ_{j}, which are provided to a state vector processor 520. A first covariance generator 515 receives the weighting coefficients for the various measurements and generates covariance matrices R_{j} ^{φ }and R_{j} ^{γ}, which provides these matrices to state vector processor 520. Processor 520 generates the state vector from the provided information by any of the abovedescribed procedures, and generates the state vector Â_{j }as an output. This is provided to an accumulation processor 530 which extracts Ñ_{j }or {tilde over (B)}_{j }from Â_{j }and generates {circumflex over (N)}_{j }or {circumflex over (B)}_{j }by any of the above methods with the aid of the appropriate covariance matrices, which are provided by a second covariance matrix generator 535.

[0353]
While the present inventions have been particularly described with respect to the illustrated embodiments, it will be appreciated that various alterations, modifications and adaptations may be made based on the present disclosure, and are intended to be within the scope of the present invention. While the inventions have been described in connection with what is presently considered to be the most practical and preferred embodiments it is to be understood that the present inventions are not limited to the disclosed embodiments but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the scope of the appended claims.