Abstract:
A system and method for generating a multidimensional navigation solution utilizes Global Positioning System (GPS) data to obtain highly reliable and accurate navigational solutions in high interference and dynamic environments, at a performance level which has been heretofore unattainable. Additional sensors such as inertial (gyros and accelerometers), altimeters, radars, etc. may be employed in a deeply integrated configuration. The approach taken in the present invention differs from that of previous techniques through its exploitation of nonlinear filtering methods; as a result, the navigation system architecture and processes employed yield significant improvements in navigation system performance, both in code tracking and reacquisition, and in carrier tracking and reacquisition. The improvements are particularly significant at low signal/noise ratios, where conventional approaches are especially susceptible to loss of code

Description:
BACKGROUND OF THE INVENTION  
         [0001]    Contemporary navigation systems commonly employ satellite navigation data derived from radio navigation receivers to determine the location of a navigation platform. The satellite data is often augmented by data from additional sensors in order to improve navigation system performance in situations where satellite data may be available only intermittently or may be degraded by intentional or unintentional interference. For example, data from inertial sensors (accelerometers and gyros) may be used to allow full navigation solutions (position, velocity and attitude) to be maintained in the presence of satellite data dropouts over extended periods of time. Radio navigation data is generated by receivers specifically designed to receive and process radio signals transmitted from a plurality of space-based or ground-based terminals. The navigation sensors are generally, but need not be, collocated on the same navigation platform. Depending on the application, the navigation system objective may be to determine position only, position and velocity, or a larger set of parameters which may include navigation platform attitude. If required, the satellite navigation data can be used to perform error calibration of the other sensors, thereby reducing navigation system errors when the satellite data are temporarily unavailable or corrupted by interference.  
           [0002]    Radio navigation data are processed in order to determine the line-of-sight distance of the navigation base from each transmitter in view of the receiver. This is accomplished by measuring the time of arrival of each signal, and comparing it to the known time of transmission, using a common time reference.  
           [0003]    Contemporary radio navigation receivers used for this purpose generally include an antenna for receiving the radio signals, a front-end for amplifying, down-converting and bandpass-filtering the received signals, an analog-to-digital converter, and a signal processor. It is common practice in such receivers to generate in-phase (I) and quadrature (Q) baseband signals, which are then processed to remove noise and interference.  
           [0004]    Noise and interference are often reduced significantly by means of spread spectrum techniques in which the transmitted signal is modulated by a known pseudo-random code. The receiver correlates the received signal with a locally-generated replica of the code and performs code tracking by varying the estimated time delay to maintain the correlation at or near its peak value. In this manner, a significant improvement in signal-to-noise ratio is obtained. If the input signal-to-noise ratio is sufficiently high, then it is possible to perform carrier phase tracking. Successful carrier tracking yields navigation accuracies which are greater than those achievable using code tracking only.  
           [0005]    The NAVSTAR Global Positioning System (GPS), developed by the United States Government, is an example of a contemporary radio navigation system. A constellation of up to 24 satellites, positioned in precisely-known orbits, transmit pseudo-random ranging signals used by specially-designed receivers to calculate line-of-sight distance from the user receiver to any satellite in view of the receiver. Based on this information, a navigation solution can be obtained.  
           [0006]    In modem GPS-based navigation systems, interference can have adverse effects on GPS receiver code and carrier tracking, resulting in degraded navigation system performance. Interference can be intentional or unintentional. Examples of unintentional interference include: (1) out-of-band signals from nearby transmitters with inadequate radio-frequency (rf) filtering, (2) harmonic or intermodulation products of various ground and airborne transmitters, (3) active or passive intermodulation products of signals or local oscillators on the same platform as the GPS receiver or on nearby platforms, (4) pulsed interference from radar signals in nearby frequency bands, (5) accidental interference from unlicensed transmitters. The results of interference are a reduction in signal-to-noise ratio (SNR) at the receiver input. The transmitted GPS signal may be further attenuated by trees, buildings, etc., resulting in a further reduction of SNR. Sources of intentional interference include narrowband and wideband jammers specifically designed to reduce SNR at the receiver input.  
           [0007]    Current GPS satellites transmit on two frequencies, L1=1575.42 MHZ and L2=1227.6 MHZ. The satellites transmit their signals using spread spectrum techniques and employ two different spreading functions: (1) a 1.023 MHZ coarse/acquisition (C/A) code on L1 only and (2) a 10.23 MHZ precision P(Y) code on both L1 and L2. The minimum signal power for received GPS signals is specified as follows; for L1, C/A=−160 dBW (decibels with respect to one Watt), P=−163 dBW; for L2, P=−166 dBW. A typical value of equivalent received thermal noise power is −131 dBW. Thus, recovery of the GPS signal, even with no interference, cannot be accomplished without special design techniques such as spread spectrum.  
           [0008]    As described above, the GPS signal is broadcast using standard spread spectrum techniques in which the narrow bandwidth signal is spread to a much larger bandwidth by using a pseudo-random code. By correlating the received signal with a known replica of the pseudo-random code and then bandpass filtering the result over the narrow signal bandwidth, the effects of interference are significantly reduced. The gain in SNR due to spread spectrum processing is on the order of 53 dB for P(Y)-code and 43 dB for C/A code in a 50Hz bandwidth.  
           [0009]    Outputs from other navigation sources, (for example inertial navigation system (INS) outputs, radars, altimeters, etc . . . ) are often combined with GPS navigation system outputs to provide navigation solutions which are improved over those resulting from systems which employ either one used independently. These outputs assist in maintaining an accurate navigation solution over limited time intervals during periods of GPS dropout. The INS is also used to aid the GPS receiver in the presence of large platform accelerations, enabling narrow tracking filter bandwidths.  
           [0010]    Current GPS-based navigation system architectures can be categorized generally as “loosely coupled” or “tightly coupled”. A loosely coupled system, for example, may combine the navigation solution generated by a GPS receiver (position, velocity, time) with the navigation solution provided by an INS navigation system (position, velocity, attitude) using a weighting scheme generally based on a Kalman filter. A minimum of four satellites are required to obtain the GPS navigation solution. A tightly-coupled system computes pseudorange and, deltarange (integral of Doppler velocity) measurements obtained by a GPS receiver, and for example, combines them with the INS navigation solution. A tightly-coupled system offers the advantage of obtaining a navigation solution with less than four satellites in view.  
           [0011]    Vulnerability of current GPS receivers to interference has resulted in various designs for interference suppression which generally involve the use of patch antennas and/or specialized signal processors placed in front of the receiver input. Another approach uses aiding signals from inertial and/or other sensors to allow carrier/code tracking at narrow bandwidths in highly dynamic regimes such as aircraft. These methods may be regarded as ad hoc, since they only attempt to modify current systems at easily accessible points within the system. As a result, current systems are far from optimal in terms of interference rejection and navigation accuracy. There is a need for a fully integrated design which achieves near-optimal performance.  
         SUMMARY OF THE INVENTION  
         [0012]    The present invention is directed to an apparatus and method for obtaining reliable and accurate GPS-based navigation solutions (optimal estimates of current position, time and/or other parameters such as velocity and attitude, as appropriate to the problem at hand) in high interference and dynamic environments, at a performance level which has heretofore been unobtainable.  
           [0013]    The philosophy of the approach taken in the present invention differs from that of previous techniques; as a result, the navigation system architecture and processes employed yield significant improvements in navigation system performance, both in code tracking and reacquisition, and in carrier tracking and reacquisition. The improvements are particularly significant at low signal/noise ratios, where conventional approaches are especially susceptible to loss of code lock or carrier lock.  
           [0014]    The present invention approaches the problem as a navigation problem, where the overall goal is to calculate an optimal, or “best”, estimate of the components of a specified navigation state vector, given an initial estimate of the state vector and the past history of measurements. The measurements to be used are referred to herein as “raw” measurements, consisting of a least in-phase (I) and quadrature (Q) data obtained from one or more correlators operating on received GPS signals. Additional navigation sensors may be used, depending on the application at hand, to enhance navigation system performance. These sensors include, but are not limited to, inertial sensors (gyros and accelerometers), altimeters, radars and electro-optical devices. By using the “raw” measurements from all of the sensors, potential loss of information due to preprocessing operations is prevented.  
           [0015]    In a preferred embodiment, the “best” estimate is the minimum variance estimate, which is the conditional mean of the state vector, conditioned on the past measurement history.  
           [0016]    The state vector estimate is updated based on the use of nonlinear stochastic differential equations for propagating the first two conditional moments of the state vector, given the past measurement history. Determination of the first conditional moment, otherwise referred to as the conditional mean, requires knowledge of the second conditional moment, which is represented by the estimation error covariance matrix. The conditional mean and error covariance matrix estimates are calculated recursively in real time in the navigation filter described herein.  
           [0017]    The technique of the present invention is not dependent in any manner on a priori notions of tracking filters, phase lock loops, delay lock loops, and the like, which are commonly used. Instead, the navigation system architecture and processes flow naturally from the problem description and the characterization of the measurements from GPS and other sensors. This leads to an architecture which is amenable to single processor integration, eliminating the modular (and sub-optimal) architectures of current designs.  
           [0018]    The resulting navigation filter processes are significant departures from traditional Kalman and extended Kalman filter algorithms generally used for GPS-based navigation. The differences arise principally from the fact that the measurement functions are highly nonlinear. Whereas previous designs rely on linearization techniques, the present invention takes full account of measurement nonlinearities. As a result, the error covariance matrix is driven by the measurements and the state vector gain matrix is a nonlinear function of the estimated error covariance matrix.  
           [0019]    A bank of correlators and a processing architecture based on nonlinear estimation techniques are employed to maintain code track through extremely high jamming environments. The number of correlators are optionally extendable, to allow for optimal code loop reacquisition following GPS signal dropout, eliminating the need for time- consuming reacquisition as employed by conventional direct-search techniques. The outputs of each correlator in the correlator bank are preferably weighted to provide a fully optimized navigation solution.  
           [0020]    The present invention extends the range of delay error beyond the linear range through the use of multiple correlators. The number of correlators is arbitrary. The need for moding logic, which depends on estimated carrier/noise (C/N 0 ) ratio is eliminated. Current receivers employ fixed gain filters, depending on the mode of operation. The present invention, however, allows for seamless operation at any C/N 0  ratio, and therefore, mode switching logic is not required.  
           [0021]    In a first embodiment, the present invention is directed to a system for determining a multidimensional navigation state for a navigation platform based on radio navigation data transmitted by external terminals. A radio navigation data receiver receives and amplifies the radio navigation data, which arrives embedded in noise. An extended-range bank of correlators extract the radio navigation data from the noise over an extended range of delay error. The correlators process the radio navigation data and noise to generate output functions indicative of the degree of correlation for each correlator in the extended-range bank between the radio navigation data and a known internally-generated replica signal. An estimator estimates the radio navigation data signal power and noise power from the correlator output functions. A measurement update unit updates the navigation state estimate based on the estimated radio navigation data signal and noise power estimates and the correlator outputs.  
           [0022]    In a second embodiment, the present invention is directed to a system for determining a multidimensional navigation state for a navigation platform based on radio navigation data transmitted by external terminals and based on inertial data indicative of the inertial behavior of the platform. A radio navigation data receiver receives and amplifies the radio navigation data, which arrives embedded in noise. An extended-range bank of correlators extract the radio navigation data from the noise over an extended range of delay error. The correlators process the radio navigation data and noise to generate correlator output functions indicative of the degree of correlation for each correlator in the extended-range bank between the radio navigation data and a known internally-generated replica signal. An estimator estimates the radio navigation data signal power and noise power from the correlator output functions. An inertial sensor unit generates inertial data indicative of the inertial behavior of the platform. A measurement update unit updates the navigation state based on the estimated radio navigation data signal power and noise power, the correlator outputs, and the inertial data.  
           [0023]    The radio navigation data preferably comprises Global Positioning System (GPS) data, and the radio navigation data receiver comprises a GPS receiver. The system preferably further includes a propagator for applying sensed inertial data to a dynamic model based on a recently updated navigation state to generate updated inertial data, which is in turn provided to the measurement update unit. The multidimensional navigation state may include, for example, information related to platform position, velocity, and attitude, receiver clock errors, inertial sensor errors, propagation delays, and satellite errors. In a preferred embodiment, the measurement update unit updates the navigation state by calculating the conditional moments of the navigation state based on the estimated radio navigation data signal power and noise power, the correlator outputs, and the inertial data.  
           [0024]    The conditional moments may comprise a first conditional moment comprising a conditional mean, and a second conditional moment comprising a conditional error covariance matrix. The conditional moments are preferably calculated to include measurement non-linearities.  
           [0025]    The estimator preferably comprises a signal power estimator for determining radio navigation data signal power based on a nonlinear conditional moment of the navigation state, and a noise power estimator for estimating noise power based on a nonlinear conditional moment of the navigation state, and the signal power estimate.  
           [0026]    In a third aspect, the present invention is directed to a system for determining a multidimensional navigation state for a navigation platform based on radio navigation data transmitted by external terminals. A radio navigation data receiver receives and amplifies the radio navigation data, which is embedded in noise. A bank of correlators extract the radio navigation data from the noise over a range of delay error. The correlators process the radio navigation data and the noise to generate correlator output functions indicative of degree of correlation for each correlator between the radio navigation data and a known internally- generated replica signal. An estimator estimates the radio navigation data signal power and noise power from the correlator output functions. A measurement update unit updates the navigation state based on the conditional moments of the navigation state calculated as a function of the estimated radio navigation data signal power and noise power, and the correlator output functions.  
           [0027]    In a preferred embodiment, the third aspect of the present invention further comprises an inertial sensor unit for generating inertial data indicative of the inertial behavior of the platform. In this embodiment, the conditional moments of the navigation state are preferably further calculated as a function of the inertial data. The conditional moments preferably comprise a first conditional moment comprising a conditional mean, and a second conditional moment comprising a conditional error covariance matrix. The conditional moments are preferably calculated to include measurement non-linearities. The bank of correlators preferably comprise an extended-range bank of correlators for extracting the radio navigation data from the noise over an extended range of delay error.  
           [0028]    In a fourth aspect, the present invention is directed to an estimator for estimating signal and noise power in a system for determining a multidimensional navigation state for a navigation platform based on radio navigation data embedded in noise. The radio navigation data signal is received by a radio navigation data receiver including a bank of correlators for extracting the radio navigation data from the noise over a range of delay error. The correlators process the radio navigation data and the noise to generate correlator output functions indicative of the degree of correlation for each correlator between the radio navigation data and a known internally-generated replica signal. The estimator includes a signal power estimator for determining radio navigation data signal power based on a conditional moment of the navigation state, a noise power estimator for estimating noise power based on a conditional moment of the navigation state, and the signal power estimate.  
           [0029]    In a preferred embodiment of the fourth aspect of the present invention, the estimator further includes a bias estimator for determining a bias estimate of each correlator in the bank. In this arrangement, the signal power estimate and noise power estimate are further based on the bias estimate. The bias estimator preferably comprises a smoothing function for updating the bias estimate of each correlator according to a smoothing time constant; and a minimum function for determining the bias estimate as the minimum value of the smoothed bias estimates.  
           [0030]    The conditional moment preferably comprises a first conditional moment comprising a conditional mean, calculated by means of a nonlinear filter. The resulting noise power estimate preferably comprises a vector, such that an independent noise power estimate is calculated for each correlator in the correlator bank. The bank of correlators preferably comprises an extended-range bank of correlators for extracting the radio navigation data from the noise over an extended range of delay error. An inertial sensor unit is preferably included for generating inertial data indicative of the inertial behavior of the platform. The conditional moment of the navigation state is preferably further calculated as a function of the inertial data.  
           [0031]    In a fifth aspect, the present invention is directed to a measurement update unit for updating the navigation state and error covariances of the navigation state for a navigation platform based on radio navigation data embedded in noise. The radio navigation data signal is received by a radio navigation data receiver including a bank of correlators for extracting the radio navigation data from the noise over a range of delay error. The correlators process the radio navigation data and the noise to generate correlator output functions indicative of degree of correlation for each correlator between the radio navigation data and a known internally-generated replica signal. A state update unit updates the navigation state as a function of the correlator output functions weighted by state gain functions. The state gain functions are based on conditional moments of nonlinear functions of the navigation state, and an inertial data propagation of a previous error covariance of the navigation state. An error covariance matrix update unit updates the error covariance of the navigation state based on conditional moments of nonlinear functions of the navigation state, and further based on estimates of the radio navigation data signal power and noise power.  
           [0032]    In a preferred embodiment, the conditional moments comprise statistical expectations of nonlinear functions of the line-of-sight position error for each satellite in view.  
           [0033]    According to the fifth aspect, the bank of correlators preferably comprises an extended-range bank of correlators for extracting the radio navigation data from the noise over an extended range of delay error. The radio navigation data signal power estimate and noise power estimate are preferably calculated by an estimator comprising a signal power estimator for determining radio navigation data signal power based on a conditional moment of the navigation state; and a noise power estimator for estimating noise power based on a conditional moment of the navigation state, and the signal power estimate.  
           [0034]    In a sixth aspect, the present invention is directed to a measurement update unit for updating the navigation state and error covariances of the navigation state for a navigation platform based on radio navigation data carried on a radio navigation data carrier signal embedded in noise. The radio navigation data signal is received by a radio navigation data receiver including a bank of correlators for extracting the radio navigation data from the noise over a range of delay error. The correlators process the radio navigation data and the noise to generate correlator output functions indicative of degree of correlation for each correlator between the radio navigation data and a known replica signal. The bank of correlators include a prompt correlator for processing radio navigation data signals near the radio navigation data code offset. The measurement update unit comprises a state update unit and an error covariance matrix update unit. The state update unit updates the navigation state as a function of the prompt correlator output function weighted by state gain functions. The state gain functions are based on conditional moments of a non-linear function of line-of-sight error of the radio navigation data, and an error covariance matrix. The error covariance matrix update unit updates the error covariances of the navigation state based on the state gain functions.  
           [0035]    In a preferred embodiment of the sixth aspect of the present invention, the state gain functions are further based on estimates of the radio navigation data carrier signal power and noise power, a data bit estimate, an inertial data propagation of a previous navigation state, and an error covariance matrix. Noise power is preferably calculated based on the average noise power and at least two non-prompt correlator output functions. The state update unit and error covariance matrix update unit preferably operate linearly for a relatively large radio navigation data carrier signal power to noise power ratio and operate non-linearly for a relatively small radio navigation data carrier signal power to noise power ratio.  
           [0036]    In a seventh aspect, the present invention is directed to a measurement update unit for updating the navigation state and error covariances of the navigation state for a navigation platform based on radio navigation data embedded in noise. The radio navigation data signal is received by a radio navigation data receiver including a bank of correlators for extracting the radio navigation data from the noise over a range of delay error. The correlators process the radio navigation data and the noise to generate correlator output functions indicative of degree of correlation for each correlator between the radio navigation data and a known replica signal. The measurement update unit comprises a state update unit, an error covariance matrix update unit, and an integrity management unit. The state update unit updates the navigation state as a function of the correlator output functions weighted by state gain functions. The state gain functions are based on conditional moments of a non-linear function of line-of-sight error of the radio navigation data, an internal data propagation of a previous navigation state, and an error covariance matrix. The error covariance matrix update unit updates the error covariances of the navigation state based on conditional moments of a non-linear function of line-of-sight error. The integrity management unit maintains the integrity of the navigation state and the error covariance.  
           [0037]    In a preferred embodiment of the seventh aspect, the state gain functions and error covariances of the navigation state are further based on estimates of the radio navigation data signal power and noise power. The conditional moments preferably comprise non-linear functions of a line-of-sight error variance, in turn a function of the error covariance of the navigation state, and the integrity management unit preferably monitors and limits the signal and noise power values. The integrity management unit preferably further limits growth rate of the error covariances. Inertial data is preferably sensed by inertial data sensors and the growth rate of the error covariances are limited to an upper bound based on estimated accuracy of the inertial sensors. The integrity management unit may further monitor and maintain the positive-definiteness of the error covariance matrix, and may further limit estimated change of the navigation state.  
           [0038]    The invention is amenable to a variety of commercial applications that rely on GPS navigation, including airliners, nautical vessels, personnel, and automobiles. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0039]    The foregoing and other objects, features and advantages of the invention will be apparent from the more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.  
         [0040]    [0040]FIG. 1A is a schematic block diagram of a navigation system employing GPS code and carrier tracking to provide a navigation solution, in accordance with the present invention.  
         [0041]    [0041]FIG. 1B is a schematic block diagram of the navigation system of FIG. 1A further employing INS data during propagation and alternative sensor data during measurement updating, in accordance with the present invention.  
         [0042]    [0042]FIG. 2 is a plot of an idealized correlator function R c (e τ ) as a function of delay error e τ , in units of chips, in accordance with the present invention.  
         [0043]    [0043]FIG. 3 is a plot of multiple correlator functions in the extended range correlator bank, as a function of delay error e τ , in accordance with the present invention, using V 2  chip spacing.  
         [0044]    [0044]FIG. 4 is a plot of exemplary correlator measurement data z(j,k) as generated by the bank of k correlators, at each sample periodj, in accordance with the present invention.  
         [0045]    [0045]FIG. 5 is an example of a four segment piecewise constant approximation for R c   2 , in accordance with the present invention.  
         [0046]    [0046]FIG. 6 is a block diagram of the code processing measurement update function, in accordance with the present invention.  
         [0047]    [0047]FIG. 7 is a block diagram of the carrier processing measurement update function, in accordance with the present invention.  
         [0048]    [0048]FIG. 8 is a block diagram of the code processing noise power and signal power estimation function, in accordance with the present invention.  
         [0049]    [0049]FIG. 9 is a flow diagram of code processing in accordance with the present invention. 
     
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0050]    I—Overview  
         [0051]    GPS code tracking employs knowledge of transit time and the speed of light to determine relative position along the satellite-to-receiver line-of-sight to enable specified worldwide navigation accuracies of approximately 100 meters (95% probability) for civilian C/A code and approximately 20 meters for dual-frequency P(Y) code. These accuracies are often exceeded in practice. Navigation errors may be reduced to approximately 1 meter if nearby GPS transmitters, such as pseudolites, are employed to eliminate propagation errors.  
         [0052]    Carrier tracking is maintained in modem systems using Doppler (velocity) measurements which reflect a change in the received signal carrier frequency. If the interference environment is benign, then carrier tracking may be used to achieve accuracies even greater than those achievable by code tracking, on the order of 1 centimeter. However, the carrier tracking threshold is approximately 15 dB below the code tracking threshold, making carrier tracking less reliable than code tracking.  
         [0053]    [0053]FIG. 1A is a schematic block diagram of a navigation system employing In-phase and Quadrature correlator measurements to generate a multidimensional navigation solution, in accordance with the present invention. FIG. 1 B is a block diagram of the system of FIG. 1A, further incorporating inertial sensor array measurements during data propagation and alternative sensor data during measurement updating, in accordance with the present invention. FIG. 9 is a flow diagram of the processing steps for determining the navigation solution, and will be referred to throughout the description of FIGS. 1A and 1B.  
         [0054]    Referring to FIG. 1A, an RF signal r(t) is received by antenna  20 , and may include multiple-satellite GPS signals corrupted by noise and interference (see step  200  of FIG. 9). The GPS signals may comprise signals centered at L 1  (1575.42 MHz) and L 2  (1227.6 MHz) carrier frequencies or other frequencies such as L m , which is being considered for future applications. The model for the received signal of interest r(t) from a single satellite at time t may be represented as:  
           r ( t )={square root}{square root over (2 S ( t−τ ))} C ( t− τ) D ( t −τ)cos(ω c   t +φ( t ))+ J ( t )  (1)  
         [0055]    where S(t) represents received signal power; r represents time delay due to line-of-sight range and atmospheric propagation effects; C(t) represents a pseudo-random code, for example C/A or P(Y) codes; D(t) represents GPS “data bit” signals typically transmitted at a 50 Hz rate (rates up to 2 kilobits/sec are possible); ω c  represents a carrier frequency; φ(t) represents phase angle, which includes the effect of Doppler shift; and J(t) represents thermal background noise and interference.  
         [0056]    The received signal r(t) is processed by front end electronics  22 , which operate to remove energy outside the frequency band of interest. The front end  22  further demodulates the signal to a lower intermediate frequency at a rate which is more amenable to processing. The front end may include, for example, a bandpass filter.  
         [0057]    The filtered signal is next processed to generate in-phase I(t) and quadrature Q(t) components of the received signal r(t). In a standard system, these components are 90° out-of-phase.  
         [0058]    The components I(t), Q(t) are next digitized and converted to discrete form at sampler  24 . As an example, the “integrate and dump” technique may be employed for this purpose.  
         [0059]    The resulting digitized and sampled in-phase and quadrature component signals are generated at a rate of, for example, 10 MHz  
         [0060]    The sampled signals are then processed to remove an estimated Doppler shift, using feedback signals from the carrier processing numerically-controlled oscillator (NCO)  28 . The resulting signals I s , Q s  contain phase error and are generated at a rate of, for example, 10 MHz.  
         [0061]    The discrete-time sampled in-phase and quadrature signals I s , Q s  are processed by a bank of correlators  30 , which operate to extract information pertaining to the GPS signal transmission embedded in noise and interference (see step  202  of FIG. 9). The bank  30  may include a large number of correlators, for example 100. The correlations are carried out over a predetermined interval, for example 20 msec, synchronized with the 50 Hz data bit interval.  
         [0062]    The outputs of the k th  correlator at the i th  time point are represented by:  
           I   50 ( i,k )=δ t {square root}{square root over (2 S ( i ))} D ( i ) R   c ( e   τ ( i )+ k Δ)cos  e   θ ( i )+ {tilde over (e)}   I ( i,k )  (2a)  
           Q   50 ( i,k )=δ t {square root}{square root over (2 S ( i ))} D ( i ) R   c ( e   τ ( i )+ k Δ)sin  e   θ ( i )+ ñ   Q ( i,k )  (2b)  
         [0063]    where I 50 (i,k) and Q 50 (i,k) respectively represent the discrete-time 50 Hz in-phase and quadrature correlator output signals; δt=0.02 seconds, corresponding to 50 Hz; e τ  represents the delay error in units of “chips”; Δ represents the spacing between correlators in the correlator bank in units of chips, as described below with reference to FIG. 3; k represents the correlator number, ranging from −m, . . . , +m; e θ represents the carrier phase error; and R c represents the correlation function:  
                   R   c          (   x   )       =       1   p            ∑     i   =   1     P                       C        (   iT   )              C   replica          (     iT   -   x     )               ,           (   3   )                               
 
         [0064]    where p represents the number of samples; C(i7) represents the received pseudo-random code after filtering; C replica (iT−x) represents the replica pseudo-random code delayed by x, generated within the receiver, and 1/T is the chipping rate (10.23 MHz for P(Y) code, 1.023 MHz for C/A code). For P(Y)-code, p=204,600. The additive noises ñ i (j,k) and ñ q (j,k) represent the effects of thermal noise and interference. A data rate of 50 Hz is used here only for illustration; the invention is not limited to a 50 Hz data bit rate.  
         [0065]    [0065]FIG. 2 is a plot of the idealized correlator function R c (e τ ) as a function of delay error e τ in units of “chips”. Chip length is approximately 30 meters for P(Y)-code and 300 meters for C/A-code. If the pseudo-random code of the input signal I(i), Q(i) correlates perfectly with the replica signal generated by the receiver, then e τ =0 and the output R c =1. If the delay error is greater than +1 chip or less than −1 chip, then the output R c  is 0. Between values of zero and ±1 chip delay, the correlator function R c  ideally behaves linearly as shown in FIG. 2.  
         [0066]    Extended Range Correlation  
         [0067]    Conventional receivers typically employ three correlators per channel (early, prompt, late) with a spacing of one-half chip. An error signal is generated by differencing the outputs of the early and late correlators, generating a variable α(e los ), which is a function of the navigation position error along the line of sight between the receiver and the current satellite e los . If |e los |&lt;½ chip, then α is ideally a linear function, providing a useable signal for closing a code tracking loop and for updating the navigation solution. If |e los |&gt;½ chip, then α is a nonlinear function causing the performance of conventional receivers to degrade, since linearity is assumed in such systems. If |e los |&gt;{fraction (3/2)} chip, then α=0.  
         [0068]    In order to obtain useful measurements for large navigation errors, the present invention extends the number of correlators beyond three, thereby providing an “extended range correlator bank”. The number of correlators employed in the extended range correlator bank is theoretically limitless; the outputs from each correlator are processed in an optimal manner and contribute to the navigation solution according to a weighting function dependent on current signal and noise power estimates, and a strong nonlinear dependence on the estimated rms line-of-sight position error calculated for each particular correlator. Calculation of the optimum weighting functions is central to the objective of obtaining minimum-variance estimates of the state vector and employs nonlinear estimation theory. Note that a bank of three correlators is equally applicable to the principles of the present invention.  
         [0069]    In practice, the correlator bank range is selected to cover the maximum expected position navigation error during code tracking. For example, assume a maximum expected position error of 600 meters with C/A-code tracking and further assume a spacing of ½ chip between adjacent correlators. Since one C/A chip is equivalent to approximately 300 meters, a total of 9 correlators are needed to handle position errors of ±600 meters.  
         [0070]    The maximum expected position error depends on several factors, including the maximum time interval that code lock is expected to be lost due to excessively high interference levels, and the precision of the inertial sensors that provide the navigation solution when code lock is lost. With proper design, the navigation position error magnitude will not exceed the range of the correlator bank and the navigation system will not lose track, in the sense that the estimated rms position navigation errors will track the actual errors with reasonable accuracy. Under these conditions, reaquisition of code tracking will be achieved relatively quickly when the interference level drops to a value that allows for resumption of code tracking.  
         [0071]    Correlator Output Functions  
         [0072]    In a non-coherent GPS code tracking system, as shown in FIG. 1A, the carrier phase error e 74  is of no interest. For this reason, the correlator output functions I 50 (i,k), Q 50 (i,k) are applied to a square law detection operation  33  to eliminate both the carrier phase error e 74  and the data bit D(i), thus obviating the need for carrier lock.  
         [0073]    The square law detector  33  operates to provide a sum of the squares of the correlator output functions I 50 (i, k), Q 50 (i, k) according to the relationship:  
                 z        (     j   ,   k     )       =       ∑     i   =       d        (     j   -   1     )       +   1       dj                     [         I   50   2          (     i   ,   k     )       +       Q   50   2          (     i   ,   k     )         ]         ,           (   4   )                               
 
         [0074]    where z(j,k) represents the code measurement from the kth correlator at the jth sample time. The output z(j,k) is the sum of d terms, for example if d=5, then z(j,k) is a 10 Hz signal. The parameter d is used to set the code measurement data input rate to the processor  44 . Other values are possible, depending on the application and processing rate. For the sake of clarity, in the description to follow, the time index “i” shall correspond to the output rate of the in-phase and quadrature correlator output functions I 50 (i,k), Q 50 (i,k), for example 50 Hz, and the time index “j” shall correspond to the code processing rate, for example 10 Hz.  
         [0075]    With reference to step  204  of FIG. 9, the measurements z(j,k) may be written in the form:  
           z ( j,k )=2 dδt   2   S ( j ) R   c   2 ( e   τ ( j )+ k Δ)+ n ( j,k )  (5)  
         [0076]    where:  
           n ( j,k )= v ( j,k )+2 δt {square root}{square root over (2 S ( i ))} R   c ( e   τ(   j )+ k Δ) w ( j,k )  (6)  
         [0077]    is additive noise, and  
               v        (     j   ,   k     )       =       ∑     i   =       d        (     j   -   1     )       +   1       dj                     [           n   ~     i          (     i   ,   k     )       +         n   ~     q          (     i   ,   k     )         ]               (   7   )                   w        (     j   ,   k     )       =       ∑     i   =       d        (     j   -   1     )       +   1       dj            D        (   i   )            [             n   ~     i          (     i   ,   k     )          cos                     e   θ          (   i   )         +           n   ~     q          (     i   ,   k     )          sin                     e   θ          (   i   )           ]                              (   8   )                               
 
         [0078]    If it is assumed that ñ l (i,k) and ñ q (i,k) are independent zero-mean Gaussian white noise processes with variance N(j) for i=d(j−1)+1, . . . , dj, then v(j,k) has mean 2N(j)d and variance 4N 2 (j)d and w(j,k) has zero mean and variance 2N(j)d. These statistical properties are used in a preferred embodiment of the present invention to estimate noise power, as described below.  
         [0079]    [0079]FIGS. 2 and 3 are plots of a single central correlator function and of a plurality of idealized correlator functions R c  in a correlator bank  30 , respectively, as a function of delay error e τ  in units of chips. The correlator bank of FIG. 3 is designed to include a plurality of overlapping correlator functions, each spaced from adjacent correlators by Δ chips, the range of k correlators extending between −m, . . . , +m.  
         [0080]    At each sample period j, the code measurements z(j,k) are calculated, and presented to the processor  44 . Exemplary data for z(j,k) are plotted in FIG. 4. As shown in FIG. 4, data points are plotted as a function of correlator number k. These data are generated at each sample period j for all k correlators. The data from successive code measurements are stored and used to calculate a noise bias level  50 , as described below. The correlator measurement function given by Equation (5) is the key quantity used for code tracking, and is the input to the measurement updating function filter  40 . The first term arises due to the signal, while the second term arises due to noise. The amount of signal present at the kth correlator depends on the delay error e τ (j) and the delay associated with the kth correlator kΔ. The signal component of the measurement is maximized if the delay error is equal to the delay assumed for the kth correlator. In this way, an implicit measurement of the delay error is obtained. Meaningful information is extracted from the set of measurements over all correlators based on estimates of signal power noise power and line-of-sight error variance. This is accomplished in the measurement updating filter  40 .  
         [0081]    II—Measurement Update  
         [0082]    Minimum-variance Estimation  
         [0083]    The present invention is based on calculation of the true minimum variance estimate of the multidimensional navigation state vector x(t), given: (1) an estimate of the state vector at the initial time t 0 , (2) an estimate of the error covariance matrix of the state vector estimation error at time t 0 , and (3) the measurement history from an initial time t 0  to the current time t. The state vector x(t) is presumed to satisfy the continuous stochastic differential equation:  
           {dot over (x)} ( t )= f ( x,t )+ {dot over (q)} ( t )  (9)  
         [0084]    where f(x,t) is a known vector function and {dot over (q)}(t) is a vector zero mean white Gaussian noise with known power spectral density matrix Q(t). Nonlinear measurements of the state x(t) are available, of the form:  
           z ( t )= h ( x,t )+{dot over ( r )}( t )  (10)  
         [0085]    where h(x,t) is a known function of x(t) and t, and {dot over (r)}(t) is vector zero mean white Gaussian noise with known power spectral density matrix R(t). The measurements may be continuously or intermittently available.  
         [0086]    Let p(x,t) represent the probability density of x(t) conditioned on the past measurement history and the initial conditions, and let x est (t) to be any estimate of x(t). Let e(t)=x est (t)−x(t) represent the estimation error at time t. Then the generalized variance  
                 E   w          (   t   )       =         f                 e       x                         (   t   )     T          W        (   t   )            e        (   t   )            p        (     x   ,   t     )          dx             (   11   )                               
 
         [0087]    is minimized, for any positive-definite weighting matrix W(t), by the estimate:  
                 x   est          (   t   )       =         x   ^          (   t   )       =       f   x                     xp        (     x   ,   t     )          dx               (   12   )                               
 
         [0088]    where {circumflex over (x)}(t) is both the conditional mean and the minimum variance estimate of x(t).  
         [0089]    The objective is to calculate {circumflex over (x)}(t) in real time or, in alternative scenarios, during post processing. It is preferable to calculate the conditional covariance matrix:  
                   P   ^          (   t   )       =       ∫   x            e        (   t   )              e        (   t   )       T          p        (     x   ,   t     )               x           ,     
            where                   e        (   t   )         =         x   ^          (   t   )       -     x        (   t   )           ,           (   13   )                               
 
         [0090]    where e(t)={circumflex over (x)}(t)−x(t),  
         [0091]    in real time, in order to appropriately specify the assumed underlying gaussian conditional probability density function.  
         [0092]    The preferred embodiment of the present invention calculates approximations to Equations (12) and (13) in a digital processor, in either a real time or post-processing scenario, thereby achieving, as nearly as possible, the desired minimum variance estimator. The resulting estimator represents a significant departure from current tightly coupled systems and allows navigation system performance heretofore unobtainable at high interference levels.  
         [0093]    It should be pointed out that the system architecture of the invention flows directly from the approximation of Equations (12) and (13) and is not based on any prior notions regarding the existence of tracking loops or distinct processing modules.  
         [0094]    Processing Overview  
         [0095]    Returning to FIG. 1A, processor  44  receives the code measurements z(j,k) at a rate of 10 Hz, for example, and inertial sensor measurements from inertial sensor array  36  at a periodic rate, for example 100 Hz and, in response, generates, at measurement update function  40 , an updated state vector {circumflex over (x)}(i), representing, for example, a navigation solution (see step  210  of FIG. 9). As an example, the state vector {circumflex over (x)}(i) may include information with regard to receiver position and velocity, receiver clock errors, atmosphere propagation delays, satellite errors, and the like. In a preferred embodiment, along with the state vector {circumflex over (x)}(i), the measurement update function  40  of the processor  44  generates and maintains a covariance matrix of estimation errors {circumflex over (P)}(i), which is required to estimate the quality of the navigation solution. The details of operation of the measurement update function are described in detail below.  
         [0096]    The code measurements z(j,k) are further provided to an estimator  34  which serves to estimate the relative strength of the signal power S(j,k), noise bias {circumflex over (b)}(j,k), and noise power N(j,k) therefrom (see step  212  of FIG. 9). The operation of the estimator is described in detail below. The estimates are provided to the measurement update function  40 , to improve system accuracy.  
         [0097]    Propagation  
         [0098]    Propagation of the state estimate and error covariance matrix between measurements depends on the sensor suite. FIG. 1A corresponds to the case where only GPS data is available. Delay function  46  represents memory for temporary storage of the state vector {circumflex over (x)}(i) and error covariance matrix {circumflex over (P)}(i), and provides a delayed state vector {circumflex over (x)}(i−1), as well as a delayed error covariance matrix {circumflex over (P)}(i−1) to the propagation function  38 . The propagation function  38  applies the dynamical model to the updated, delayed state vector {circumflex over (x)}(i−1), and error covariance matrix {circumflex over (P)}(i−1) to generate a “propagated” state vector x′(i), and propagated error covariance matrix P_(i) (see step  208  of FIG. 9). The propagated error covariance matrix P′(i) is required for calculating weighting functions used in the measurement update process. The propagated state vector x′(i) is computed as a function of the updated state vector {circumflex over (x)}(i−1) using the dynamical model f according to the following relationship:  
           {circumflex over (x)} ( i )= {circumflex over (x)} ( i −1)+ f ( x ( i− 1), i −1) δt   (14a)  
         [0099]    [0099]FIG. 1B shows the case where inertial sensors are employed. Inertial sensor data, provided by the inertial sensor array  36 , includes recent inertial measurements; for example, the vector change in velocity of the platform ΔV(i), as well as the vector change in attitude angles Δθ(i). These data are generally measured in the body frame using strapdown gyroscopes and accelerometers; however, alternative configurations are applicable as well. The inertial data is applied to the delayed updated state vector {circumflex over (x)}(i−1) according to the following relationship to provide a propagated state vector x′(i):  
           x ′( i )= {circumflex over (x)} ( i− 1)+ f ({circumflex over ( x )}( i −1),Δ V ( i ), Δθ( i ), i −1)δ t=tm ( 14b)  
         [0100]    where: x′(i) represents the propagated state vector; {circumflex over (x)}(i−1) represents the delayed updated state vector; f represents the dynamical model, an application of the laws of motion and the dynamical models for inertial sensor errors, clock errors, satellite errors, and atmospheric errors comprising all of the states; ΔV(i) represents the vector change in velocity in the interval [i−1, i] as measured by the inertial sensor array  36 ; Δθ(i) represents the vector change in attitude angle as measured by the inertial sensor array  36 ; and δt represents the time interval between measurements. In this manner, a propagation of the state vector to the next measurement sample period j is achieved. Note that this relationship is an implementation of Equation (12) above.  
         [0101]    In a similar manner, a propagation of the error covariance matrix {circumflex over (P)}(i−1) is generated according to the following relationship:  
           P ′( i )={circumflex over ( P )}( i −1)+[ F ( i ){circumflex over ( P )}( i −1)+{circumflex over ( P )}( i −1) F   T ( i )+ Q ( i− 1)]δ t   (15)  
         [0102]    where P′(i) represents the propagated error covariance matrix, {circumflex over (P)}(i−1) represents the delayed updated error covariance error matrix, and F represents a matrix derived from the function f:  
               (         F        (   i   )       =         ∂   f       ∂   x            (   x   )              )       x   =       x   ^          (     i   -   1     )                 (     16      a     )                               
 
         [0103]    for the general (GPS only) case, and  
                   F        (   i   )       =         ∂   f       ∂   x            (     x   ,     Δ                 v     ,   Δθ     )                                                                         x   =       x   ^          (     i   -   1     )                     Δ                 v     =     Δ                   v        (   i   )                     Δθ   =     Δθ        (   i   )                       (     16      b     )                               
 
         [0104]    for the inertial data case, and F T  represents the transpose of that matrix. Note that the relationship of Equation (15) is an implementation of Equation (13) above.  
         [0105]    Equations (14)-(16) hold if δt is sufficiently small, which usually holds in practice. If δt is not sufficiently small, then δt can be divided into smaller subintervals and the propagation carried out sequentially over the subintervals.  
         [0106]    Pertaining to the above relationship, the estimation error covariance matrices are defined as:  
           P ( i )=ε[ e ( i ) e ( i ) T ] 
           P ′( i )=ε[ e ′( i ) e ′( i ) T   (17)  
           e ( i )= {circumflex over (x)} ( i )− x ( i )  
           e ′( i )= x ′( i )− x ( i )  (18)  
         [0107]    where e(i) represents the state estimation error vector just after measurement updating, and e′(i) represents the state estimation error vector just prior to measurement updating.  
         [0108]    Code Processing—Measurement Update of State Vector  
         [0109]    Returning to FIGS. 1A and 1B, and with further reference throughout this portion of the discussion to the block diagram of FIG. 6, the propagated state vector x′(i) and propagated error covariance matrix P′(i) are applied to the measurement updating function  40 , which serves to generate an updated state vector {circumflex over (x)}(i), and an updated error covariance matrix {circumflex over (P)}(i), based on the propagated state vector x′(i), the propagated error covariance matrix P′(i), estimated values for signal S and noise N from the estimator function  34 , and the code measurements z(j,k). Along with the updated state vector  x (i), and the updated error covariance matrix {circumflex over (P)}(i), the measurement updating function further calculates the estimated delay for the code tracking processing {circumflex over (τ)} k (j), and the estimated phase {circumflex over (φ)} k (i), for the carrier tracking processing.  
         [0110]    The code measurement update equation for the state vector  x (j) as depicted by state gain calculation portion  102 , multiplier  104 , and adder  106  of FIG. 6 is represented as:  
           {circumflex over (x)} ( j )= x ′( j )+ G   x ( j ){tilde over ( Z )}( j )  (19)  
         [0111]    where x′(j) represents the propagated state vector, G x (j) represents the state gain defined below in Equation (21), and {tilde over (Z)}(j) represents a code measurement vector compensated for estimated bias; {tilde over (Z)}(j)=Z(j)−{tilde over (b)}(j)1; where {tilde over (b)}(j) is the estimated bias and where 1 is expressed in Equation (50) below, and where  
               Z        (   j   )       =         [           z        (     j   ,     -   m       )                 z        (     j   ,       -   m     +   1       )               ⋮             z        (     j   ,     m   -   1       )                 z        (     j   ,   m     )             ]         2      m     +   1       .             (   20   )                               
 
         [0112]    Note that the relationship of Equation (19) is an implementation of Equation (12) above.  
         [0113]    The state gain function G x (j), as calculated in the state gain calculation block  102  of FIG. 6, is represented by the relationship:  
           G   x ( j )=−β( j ) u ( j )γ (1) ( j ) T   (21)  
         [0114]    where β(j)=2Ŝ(j)δt, Ŝ(j) is the estimated value of S(j) as expressed below in Equation (51), and where γ (1) (j) is represented by:  
                   γ     (   S   )            (   j   )       =         [               M     c   ,     -   m         (   S   )            (   j   )       /         N   ^       -   m            (   j   )                 ⋮                 M     c   ,     +   m         (   S   )            (   j   )       /         N   ^       +   m            (   j   )               ]                   s     =   0       ,   1   ,   2           (   22   )                               
 
         [0115]    where S=1, and where {circumflex over (N)} k (j) is the kth diagonal of the estimated diagonal measurement noise covariance matrix:  
                 N   ^          (   j   )       =     [               N   ^       -   m            (   j   )           0       ⋯       0           0             N   ^         -   m     +   1            (   j   )           ⋯       0           ⋮       ⋮       ⋰       0           0       0       0             N   ^     m          (   j   )             ]             (   23   )                               
 
         [0116]    and where M c   (1) (j) represents the vector:  
                   M   c     (   S   )            (   j   )       =         [             M     c   ,     -   m         (   S   )            (   j   )               ⋮               M     c   ,     +   m         (   S   )            (   j   )             ]                   with                 s     =   1       ,           (   24   )                               
 
         [0117]    whose elements are the second of three correlator moments M c   (s) (j); s=0, 1, 2:  
                       M     c   ,   k       (   S   )            (   j   )       =       ∑     r   =   1       n   seg                (       α   r          (   k   )       )     S          A   r            P   a          (         α   r          (   k   )       ,       P   los          (   j   )         )              (   chips   )     S                   s   =   0     ,   1   ,     2   ;                     α   r          (   k   )       =       k                 Δ     -   1   +           2      r     -   1       n   seg          chips                 k   =     -   m       ,   …              ,     +     m   .                     (   25   )                               
 
         [0118]    where k represents the correlator index {−m . . . +m}; Δ is the correlator spacing in units of chips; n seg  is the number of approximation segments in the correlation curve as shown in FIG. 5; P los (j) represents the variance of the line-of-sight error at the jth time point:  
           P   los ( j )= g   τ ( j ) T   P ′( j ) g   τ ( j )  (26)  
         [0119]    where g τ is a vector determined based on the state definition and geometry such that:  
           e   los ( j )= g   τ ( j ) T   e ′( j )  (27)  
         [0120]    is satisfied, where e′(j) is defined above in Equation (18). For example if the state vector {circumflex over (x)}(j) is represented by:  
                 x   ^          (   j   )       =       [                      r                          v                          θ                            clock                 bias             ]     =     [                      position                          velocity                            attitude                 angle                              clock                 bias             ]               (   28   )                               
 
         [0121]    then:  
           g   τ ( j )=[−u sat   T  0 1x3  0 1x3  1]  (29)  
         [0122]    where the unit vector u sat  from the navigation platform toward the satellite is:  
               u   sat     =           r   ^     sat     -     r   ′                  r   ^     sat     -     r   ′                      (   30   )                               
 
         [0123]    and where {circumflex over (r)} sat  is the satellite position, and r′ is the estimated navigation platform position, both in the navigation coordinate frame.  
         [0124]    Returning to Equation (25), p α  represents the Gaussian density function:  
                 P   α          (       α   r     ,       P   los          (   j   )         )       =       e       -     1   2              α   r   2         P   los          (   j   )                 2      π                     P   los          (   j   )                     (   31   )                               
 
         [0125]    and A r  is the area under the ith rectangle of FIG. 5. The area of a rectangle is approximately 10 equal to the area under the curve over the rectangle boundary. It has been found that ten rectangles suffice when the rms line-of-sight error exceeds approximately 0.1 chip; for smaller line-of-sight errors, a finer approximation should be used. Using the idealized approximation:  
           R   c (τ)=1−|τ|; |τ|≦1  (32)  
         [0126]    with τ in units of chips, the segment areas are:  
               A   r     =     {                              (     2     n   seg       )     3          [     r        (     r   -   1     )       ]       ;                            r   =   1     ,   2   ,   …              ,       n   seg     2                                    A     n   seg       -   j   +   1     ;                            r   =         n   seg     2     +   1       ,   …              ,     n   seg                         (   33   )                               
 
         [0127]    where n seg  is the total number of segments in the approximation.  
         [0128]    As an alternative to the expression of Equation (25), the correlator moments can be determined in the following manner. This approach works well for any amount of rms error, but computations are more complex. For the k th  correlator (k=−m, . . . , m), the zeroth, first, and second moments M c,k   (s) (j); s=0, 1, 2 can be represented by:  
                 M     c   ,   k       (   0   )            (   j   )       =           [           (       k                 Δ     -   1     )     2     +         P   los          (   j   )       ]       I   1     (   0   )            (     k   ,   j     )         +       [         (       k                 Δ     -   1     )     2     +       P   los          (   j   )         ]            I   2     (   0   )            (     k   ,   j     )         +             P   los          (   j   )         2                 π              [         -     (       k                 Δ     -   1     )              e   a          (     k   ,   j     )         -     4                     e   b          (     k   ,   j     )         +       (       k                 Δ     +   1     )            e   c          (     k   ,   j     )           ]         ,                 (   34   )                     M     c   ,   k       (   1   )            (   j   )       =         -   2                         P   los          (   j   )            [         (       k                 Δ     -   1     )            I   1     (   0   )            (     k   ,   j     )         +       (       k                 Δ     +   1     )            I   2     (   0   )            (     k   ,   j     )           ]         +     2              P   los          (   j   )         2                 π                  P   los          (   j   )                  [         e   a          (     k   ,   j     )       -       e   c          (     k   ,   j     )         ]                
        and           (   35   )                   M     c   ,   k       (   2   )            (   j   )       =     [         (       k                 Δ     -   1     )     2     +       P   los          (   j   )       +             3                     P   los   2          (   j   )         ]            I   1     (   0   )            (     k   ,   j     )         +       [         (       k                 Δ     -   1     )     2     +       P   los          (   j   )       +     3                     P   los   2          (   j   )           ]            I   2     (   0   )            (     k   ,   j     )         +               P   los          (   j   )         2                 π              P   los          (   j   )           [                    -     (       k                 Δ     -   1     )              e   a          (     k   ,   j     )         -             8          e   b          (     k   ,   j     )         +       (       k                 Δ     -   1     )            e   c          (     k   ,   j     )           ]                     (   36   )                               
 
         [0129]    where  
                 I   1     (   0   )            (     k   ,   j     )       =       1   2          [         sign                             (     b        (     k   ,   j     )       )                   erf                   (          b        (     k   ,   j     )            )       -     sign                   (     a        (     k   ,   j     )       )                     erf   (          a        (     k   ,   j     )            )         ]               (   37   )                   I   2     (   0   )            (     k   ,   j     )       =       1   2     [       sign                   (     c        (     k   ,   j     )       )                     erf        (          c        (     k   ,   j     )            )         -     sign                   (     b        (     k   ,   j     )       )                       erf   (          b        (     k   ,   j     )              ]                   (   38   )                               
 
         [0130]    and where  
           e   a ( k,j )= exp[−a   2 ( k,j )],  
           e   b ( k,j )= exp[−b   2 ( k,j )],  
           e   c ( k,j )= exp[−c   2 ( k,j )],                  a        (     k   ,   j     )       =       (       k                 Δ     -   1     )         2          P   los          (   j   )               ,                   b        (     k   ,   j     )       =       (     k                 Δ     )         2          P   los          (   j   )               ,                   c        (     k   ,   j     )       =       (       k                 Δ     +   1     )         2          P   los          (   j   )               ,                                 
         [0131]    and where erf is the standard error function:  
               erf        (   x   )       =       2     π              ∫   0   x                 -     x   2                 x                   (   39   )                               
 
         [0132]    commonly available in mathematical software libraries.  
         [0133]    Returning to the state gain function of Equation (21), u(j) is a vector representing:  
               u        (   j   )       =           P   ′          (   j   )              g   τ          (   j   )             P   los          (   j   )                 (   40   )                               
 
         [0134]    where P′(j) is the propagated error covariance matrix, g τ (j) is defined above in Equation (27), and P los (j) is defined above in Equation (26).  
         [0135]    Code Processing—Measurement Update of Error Covariance Matrix  
         [0136]    The update equation for the error covariance matrix is calculated by the covariance weight calculation block  108 , covariance calculation block  110 , and adder  112  of FIG. 6 represented by:  
           {circumflex over (P)} ( j )= P ′( j )+β( j ) u ( j ) u ( j ) T   C   P ( j )  (41)  
         [0137]    where the covariance weights are calculated in block  108  of FIG. 6 according to the relationship:  
           C   P ( j )=[[γ (2) ( j )− P   los ( j )γ (0) ( j )] T   dv ( j )−β( j )γ (1)T ( j ) M   c   (1) ( j )Δ t]   (42)  
         [0138]    where:  
           dv ( j )={tilde over ( Z )}( j )−β( j ) M   c   (0) ( j )Δ t   (43)  
         [0139]    where γ (s) (j); s=0, 1, 2 is defined above in Equation (22); and where P′(i) is the propagated error covariance matrix described above, Δt=dδt, and M c   (s) (j) is given by Equation (24), above. Note that the relationship of Equation (41) is an implementation of Equation (13) above.  
         [0140]    The parameter for estimated delay for code tracking processing {circumflex over (τ)} k (j), provided to the code NCO  42 , is generated in the measurement update function according to the relationship:  
         {circumflex over (τ)} k ( j )=∥ {circumflex over (r)}   sat   −{circumflex over (r)}∥+{circumflex over (b)}   clk   chips   (44)  
         [0141]    where {circumflex over (b)} clk  is an estimate of the clock bias, which is a component of the state vector {circumflex over (x)}(i). The estimated delay parameter {circumflex over (τ)} k (j) is provided to the code processing NCO in an attempt to line up the replica code with the received code.  
         [0142]    Code Processing—Signal and Noise Estimation  
         [0143]    Returning to FIGS. 1A and 1B, and with reference throughout the following discussion to FIG. 8, the estimator  34  is responsible for estimating noise bias {circumflex over (b)}(j,k), signal power Ŝ(j,k), and noise power {circumflex over (N)}(j,k), based on the code measurement data Z(j,k).  
         [0144]    With regard to the noise bias estimation {circumflex over (b)}(j,k), it is assumed that the noise at all correlators is statistically the same. However, some of the correlator measurements include signal power in addition to the noise. The bias estimate can be calculated according to the following steps.  
         [0145]    First, the bias estimate on each correlator is updated using a smoothing equation at block  114  of FIG. 8:  
                     b   ^     k          (   j   )       =         a            b   ^     k          (     j   -   1     )         +       (     1   -   a     )          z        (     j   ,   k     )                     k       =     -   m         ,   …              ,   m           (   45   )                               
 
         [0146]    where:  
             a   =            -   Δ                     t   /     τ   b                   (   46   )                               
 
         [0147]    where τ b  is the smoothing time constant, for example 1 sec. The bias is present on all correlators, and is of positive sign. Signal power is present only on a few of the correlators, also with a positive sign. The bias is thus estimated at block  116  as:  
                 b   ~          (   j   )       =       min   k          {         b   ^     k          (   j   )                   (   47   )                               
 
         [0148]    Signal power is estimated at function  118  as follows. The least squares estimate:  
                 S   ~          (   j   )       =             M   c     (   0   )            (   j   )       T          [         b   ^          (   j   )       -         b   ~          (   j   )          1       ]         2      Δ                 t                 δ                 t                       M   c     (   0   )            (   j   )       T            M   c     (   0   )            (   j   )                   (   48   )                               
 
         [0149]    is calculated, where  
                 b   ^          (   j   )       =         [               b   ^       -   m            (   j   )               ⋮                 b   ^       +   m            (   j   )             ]         2      m     +   1          and                 where        :               (   49   )               =       [         1           1           ⋮           1         ]         2      m     +   1               (   50   )                               
 
         [0150]    This estimate is then smoothed at function  120  to filter out noise, using a smoothing equation:  
           Ŝ ( j )= aŜ ( j −1)+( 1−a ){tilde over ( S )}( j )  (51)  
         [0151]    where the smoothing parameter α is defined above in Equation (46).  
         [0152]    The noise power vector estimate:  
                 N   ^          (   j   )       =       [               N   ^       -   m            (   j   )               ⋮                 N   ^       +   m            (   j   )             ]         2      m     +   1               (   52   )                               
 
         [0153]    is calculated at block  122  according to the relationship:  
                 N   ^          (   j   )       =       4      δ                   t   2            S   ^          (   j   )              b   ^          (   j   )              M   c     (   0   )            (   j   )         +             b   ~          (   j   )       2     d        1               (   53   )                               
 
         [0154]    This technique fully accounts for the fact that there is a certain amount of signal in some correlators and none in others, in other words, the R c  term in Equation (6) approaches zero for errors outside the correlator range.  
         [0155]    Carrier Processing—Measurement Update of State Vector and Covariance Matrix  
         [0156]    Carrier tracking is performed using the 50 Hz quadrature signals Q 50 (i,k) as given above in Equation (2b). The state vector is preferably updated by gain calculation block  124 , multiplier  126 , and adder  128  of FIG. 7, using the outputs from only the prompt correlator (k=0). Only the prompt correlator output is needed for carrier processing because, due to the small wavelength of the carrier signal, only small error readings are discemable; for example, L 1  carrier wavelength is 19 cm, well within the C/A code chip length of 300 m, and errors larger than this lead to carrier phase ambiguities. The state vector is updated using:  
           {circumflex over (x)} ( i )= x ′( i )+ G   y ( i ) Q   50 ( i, 0)  (54)  
         [0157]    The gain matrix G y (i) as calculated in block  124  is represented by:  
                 G   y          (   i   )       =           P   ′          (   i   )              H        (   i   )       T             ρ        (   i   )              H        (   i   )       T            P   ′          (   i   )            H        (   i   )         +         N   ^     carr          (   i   )                   (   55   )                               
 
         [0158]    where H(i) is the measurement vector:  
               H        (   i   )       =       -   δ                   t          2          S   ^          (   i   )                  D   ^          (   i   )            e     -           σ   θ   ′          (   1   )       2     2                  g   θ          (   i   )       T               (   56   )                               
 
         [0159]    where {circumflex over (D)}(i) is the data bit estimate (see Equation (63) below), and where:  
                 g   θ          (   i   )       =         2      π                   f   carr         f   code              g   τ          (   i   )                 (   57   )                               
 
         [0160]    and where f carr  is the carrier frequency, f code  is the pseudorandom code chipping rate, g τ (i) is given above by Equation (27); and  
               ρ        (   i   )       =       sinh        (         σ   θ          (   i   )       2     )             σ   θ   ′          (   i   )       2               (   58   )                               
 
         [0161]    where σ θ ′(i) 2  is the estimated phase error variance along the line-of-sight:  
                   σ   θ   ′          (   i   )       2     =         (       2      π                   f   carr         f   code       )     2            P   los          (   i   )                 (   59   )                               
 
         [0162]    From the above, it can be determined that as the filter&#39;s estimate of RMS phase error along the line-of-sight becomes small, for example on the order of 0.1 radians, the parameter exp(σ θ ′(i) 2 )/ 2  from Equation (56) approaches one, as does the parameter ρ(i) of Equation (58). It therefore follows, that as the limit of signal SNR increases and RMS phase error decreases, the operation of these functions approach the operation of the Kalman filter, well-suited for operation in the high-SNR regime.  
         [0163]    However, a filter characterized by the above equations would also demonstrate an advantageous decrease in measurement gain as RMS phase error increases. This results in a corresponding advantageous mitigation of the problem of phase ambiguity present in traditional receivers. The measurements characterized by Equations (2a) and (2b) above depend on cos(e θ ) and sin(e θ ), and therefore contain no information relevant to the non-linear phenomenon of “cycle slipping”. This ambiguity presents a serious problem in contemporary receivers.  
         [0164]    One way to mitigate this problem is to compare resolutions from multiple satellites, and using the geometric considerations of intersecting spheres, an estimate of the degree of cycle slipping can be determined. However this technique is complicated and time consuming, and therefore expensive.  
         [0165]    The present invention addresses this problem by incorporating a filter which approaches the behavior of a linear Kalman filter as the SNR becomes large, but operates as a non-linear filter for low values of SNR, allowing for a non-linear characterization of the non-linear cycle slipping problem. In this manner, the present invention takes into account, statistically, the cycle slipping problem.  
         [0166]    The covariance matrix estimate is updated at block  130  of FIG. 7 using the relationship:  
           {circumflex over (P)} ( i )=[ I−G   y ( i ) H ( i )] P ′( i ).  (60)  
         [0167]    where G y (i) and H(i) are shown above in Equations (55) and (56), respectively.  
         [0168]    Carrier Processing—Noise Power Estimate  
         [0169]    The carrier noise power estimate {circumflex over (N)} carr  is calculated under the assumption that the correlator bank is broad enough such that only noise appears at the two end correlators. With this assumption, the instantaneous noise variance estimate is:  
               V        (   j   )       =       1   4          [           I   50          (     i   ,   m     )       2     +         Q   50          (     i   ,     -   m       )       2     +         I   50          (     i   ,   m     )       2     +         Q   50          (     i   ,   m     )       2       ]               (   61   )                               
 
         [0170]    The noise estimate used in the filter is obtained through smoothing:  
           {circumflex over (N)}   carr ( i )=α {circumflex over (N)}   carr ( i )+(1 −a ) V ( j )  (62)  
         [0171]    Carrier Processing—Data Bit Estimate  
         [0172]    The data bit D(i) comprises a 50 Hz signal used to identify the satellite source and satellite ephemeris. Using Equation (2a), assuming that the phase error e θ (i) and the noise are sufficiently small, then in a preferred embodiment, the data bit is calculated as:  
           {circumflex over (D)} ( i )= sign ( I   50 ( i, 0))  (63)  
         [0173]    Other, more sophisticated, techniques known to those skilled in the art may also be applied for determining the data bit.  
         [0174]    Carrier Processing—Estimated Phase Determination  
         [0175]    The parameter for estimated phase for carrier tracking processing {circumflex over (φ)} k (i), provided to the carrier NCO  28 , is generated by the scale processor  41  according to the relationship:  
                   φ   ^     k          (   j   )       =             τ   ^     k          (   i   )            [       2      π                   f   carr         f   code       ]                     radians             (   64   )                               
 
         [0176]    where {circumflex over (τ)} k (i) is shown above in Equation (44). The estimated phase parameter {circumflex over (φ)} k (i) is provided to the carrier NCO  28  in an attempt to line up the estimated phase with the true phase.  
         [0177]    III—Filter Integrity Management  
         [0178]    The existence of unmodeled interference, whether intentional or unintentional, in the low-power GPS signal, can cause performance degradation during actual operation. Furthermore, the filter processes are a discrete-time approximation to the exact continuous- time non-linear filtering equations; as a consequence, time quantization effects are introduced which can lead to non-positive-definiteness of the estimated covariance matrix. In order to preserve the integrity of the navigation solutions under a wide variety of operational scenarios, including unmodeled noise bursts, and under the constraints of discrete-time processing, several modifications of the processes are preferred via a filter integrity management unit  47  (see FIGS. 1A and 1B) in the form of a subprocess that monitors and manages various behavioral aspects of the measurement update unit  40 .  
         [0179]    With regard to signal power estimation, the denominator of Equation (48) is changed to 2Δtδt. In its original form, the denominator can become too small at very large values of estimated line-of-sight variance P los (j), resulting in weights G x (j) that are too large in magnitude.  
         [0180]    To preserve the integrity of the error covariance matrix P, the parameter C P (j), defined in Equation (42) is used to determine the form of correction. If C P (j)&gt;0 then {circumflex over (P)}(j)&gt;P′(j), and the effect of measurement incorporation is to make the estimated error covariance matrix more positive-definite. From physical arguments, an upper bound may be placed on the relative increase in P which conforms with reality. In view of this, the covariance update Equation (15) is changed to  
           {circumflex over (P)} ( j )= P ′( j )+ f   R ( j ) u ( j ) u ( j ) T   C   P ( j )  (65)  
         [0181]    where  
                 f   R          (   j   )       =     {             1   ;             dP   max     ≤     dP     lim                 it                       dP     lim                 it         dP   max       ;             dP   max     &gt;     dP     lim                 it                  and               (   66   )                 dP   max     =       max   i          (                  P   ^     ii          (   j   )         P   ii   ′       -   1          )               (   67   )                               
 
         [0182]    and the parameter dP limit  is set depending on the application; for example, a typical value for dP limit  is 0.1.  
         [0183]    If C P (j)&lt;0, then the effect of the measurement incorporation is to make the estimated error covariance matrix less positive definite. In this case, it is necessary to insure that {circumflex over (P)}(j) remain positive semi-definite after measurement updating. This is accomplished by setting:  
                 f   R          (   j   )       =         R   ~           P   los          (   j   )       +     R   ~            where             (   68   )                 R   ~     =           P   los          (   j   )       2         β        (   j   )            C     P        (   j   )                     (   69   )                               
 
         [0184]    In the case where the estimated covariance matrix is modified from its nominal value, as described above, then the gain matrix G x (j) is likewise modified by changing the process of Equation (21) to:  
           G   x ( j )=− f   R ( j )β( j ) u ( j )γ (1) ( j ) T   (70)  
         [0185]    Physical considerations place an upper limit on the magnitude of the change in estimated position which conforms to reality during measurement updating. The estimated change in the three position components of the state vector estimate at measurement updating are calculated as follows. From Equation (19), the change in estimated position at a measurement is:  
           d{circumflex over (r)} ( j )=[ G   x ( j ) {tilde over (Z)} ( j )] I     r     (71)  
         [0186]    where i r  is the 3×1 position index. The updated position vector is then calculated as:  
           {circumflex over (r)} ( j )= r ′( j )+ f   r ( j ) d{circumflex over (r)} ( j )  (72)  
         [0187]    where:  
                 f   r          (   j   )       =     {             1   ;             dr   max     ≤     dr     lim                 it                       dr     lim                 it         dr   max       ;             dr   max     &gt;     dr     lim                 it                  and               (   73   )                 dr   max     =       max   i          (          dr     ir        (   i   )              )               (   74   )                               
 
         [0188]    and  
         [0189]    The parameter dr limit  is set according to the application; for example, a typical value for dr limit  may be 0.1 chips for code processing.  
         [0190]    While this invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.  
         [0191]    For example, note that the above calculations can be performed both on a vector or matrix basis. The principles of the invention apply equally well to both approaches. Additionally, the present invention may be implemented on any of a number of hardware/software configurations, for example on a digital microprocessor, specialized digital signal processors, programmable gate arrays, custom application specific integrated circuits (ASICs), or other suitable means.  
         [0192]    Note that although for purposes of discussion, 50 Hz is used as a processing rate for carrier processing, and 10 Hz is used for code processing, other rates are equally applicable to the present invention. Note further that although L 1  and L 2  broadcast frequencies are given as examples above, the present invention is equally applicable to future broadcast frequencies, for example L m . Additionally, although ½ chip spacing is used above in the example of FIG. 3, the invention further pertains to arbitrary correlator spacing.