Abstract:
Global Navigation Satellite System (GNSS) pseudorange measurements must be compensated for receiver hardware and directionally dependent antenna errors to obtain desired accuracies for high precision GNSS positioning applications. The problem of pseudorange measurement errors resulting from directionally dependent group delays is not an issue in Fixed Reception Pattern Antenna (FRPA) GNSS sensors. However, for the complex case of a GNSS receiver employing a controlled reception pattern antenna (CRPA) and dynamic beam steering, the multiplicity of combinations of antenna element outputs makes compensation of directionally dependent antenna induced errors more difficult, as the simple subtraction that might be used for FRPA compensation does not work with a CRPA. Example embodiments provide for frequency domain correction of GNSS pseudorange measurements in CRPA receivers. The correction takes place in the signal processing of the satellite signals, after they have been converted to the frequency domain, but before they are formed into beams for the respective satellites.

Description:
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
       [0001]    This invention was made with government support under Contract No. N00019-02-C-3002 awarded by the Department of the Navy. The government has certain rights to this invention. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The present invention relates to the field of Global Navigation Satellite Systems (GNSS), such as the Global Positioning System (GPS), and, more particularly, to range measurement corrections in such systems. 
         [0004]    2. Description of the Related Art 
         [0005]    Global Navigation Satellite Systems (GNSS) use a constellation of dispersed satellites with atomic clocks orbiting the Earth that transmit predictable signals at exact times. The modulation used by these signals and the data messages included enable the receivers to determine highly accurate navigational locations anywhere on the Earth. The receiver calculates its position by carefully measuring the time of arrival of the signals sent by several of the satellites. Each satellite continually transmits messages containing the time the message was sent, precise orbital information, and the general system health and approximate orbits of all the satellites. By calculating the difference between the broadcast “transmit time” and the received “time of arrival,” a time of propagation can be determined and transformed into a range using the speed of propagation “c”. 
         [0006]    GNSS is considered a dual-use technology, namely, a technology that has significant civilian and military applications. Accordingly, for an example GNSS like the Global Positioning System (GPS), the satellites broadcast on precisely defined carrier frequencies with well-defined modulation. The GPS data and timing signals intended for everyone&#39;s use have a publicly-defined format contained in Interface Specification IS-GPS-200, available at http://www.navcen.uscg.gov/gps/geninfo/IS-GPS-200D.pdf, and are unencrypted, while those timing signals intended for military use are not publicly defined and are encrypted and the military specific information content is also encrypted. The satellite employs a pseudorandom code, which is used to modulate the carrier frequency in order to transmit the precise time marks. The carrier frequencies are over 1 GHz, while the code rates are considerably lower. GPS chip rates are roughly 10 MHz for the military code and 1 MHz for the civilian code. Additionally, data messages containing satellite orbit, system health, and other necessary information are transmitted at even a lower rate of 50 bits per second. 
         [0007]    Most conventional civilian navigational systems receive a GNSS signal through a single element fixed reception pattern antenna (FRPA) coupled to the receiver. Many military systems, however, use a multiple element controlled reception pattern antenna (CRPA) system to receive a GNSS signal. CRPA systems are much more resistant to the effects of intentional jamming of the GNSS frequencies than are FRPA systems and the signals from each of the elements can be coherently added to increase the carrier-to-noise-density ratio (C/NO) over that of a conventional FRPA type antenna for each received signal. 
         [0008]    With GNSS, the receiver measures the transit time, using the precise time marks provided by the pseudorandom code, from a satellite and computes the distance to that satellite by multiplying the transit time by the speed of light. These distance computations are called “pseudoranges” since there is usually a time difference between the atomic satellite clocks used to create the precise time marks and the receiver clocks used to decode the precise time marks. This clock error is common to all measurements since the atomic satellite clocks are all synchronized, and results in a common range error. This common range error is what forms what is often called a “pseudorange” from an absolute range. Other effects that give rise to range errors include atmospheric, multipath, and receiver and antenna hardware. 
         [0009]    Geometric multilateration is used to pinpoint the receiver&#39;s location by combining these pseudoranges with the corresponding locations of the satellites, using the data from at least four different satellites. Four pseudoranges also allow determination of the clock bias associated with the common range error described above, which adds a fourth dimension of uncertainty, when trying to solve for the other three dimensions of a physical location. Nonetheless, other effects that contribute to range measurement errors remain. Identifying and attempting to account for the multiple sources of errors is an important step to improving the accuracy of locations determined through GNSS. 
         [0010]    Atmospheric (i.e., tropospheric and ionospheric) delays are usually the next most significant source of error. The Earth&#39;s atmosphere slows down the speed of the satellite transmissions. These errors can be compensated for in a number of ways. For instance, using satellites that are more directly overhead helps because their transmissions travel through less atmosphere than when using satellites closer to the horizon. In addition, having the satellites transmit on multiple frequencies helps mitigate the ionospheric induced error since it is frequency-dependent, so can be mitigated by combining the measurements from the two frequencies into a single ionospheric free measurement. Finally, relative positioning systems, such as Differential GPS, use strategically placed monitor stations at exact locations to determine at any given time what the overall transmission delay (including effects like atmospheric) is for each satellite. These monitor stations then broadcast these delays to all nearby receivers, which then can make the corrections to each of the corresponding satellites. 
         [0011]    There are still other effects, most notably receiver antenna hardware, which cannot be compensated through any of the above techniques. To the extent that such effects, such as directionally dependent group delay errors, are not common between different satellites (common errors disappear as part of the clock bias correction calculated when determining location), they can affect the accuracy of the resulting positional calculation. Multiple element receiver antennas add complexity to the mitigation of these non-common errors, because the directionally dependent group delay errors may differ between antenna elements. Each hardware path contributes a different delay to the overall measured time of reception. Accounting for these more complex differences helps systems using multiple element antennas achieve the same accuracy that single element antennas are capable of achieving. 
         [0012]    Because the satellite signals are relatively weak, it is straightforward to intentionally jam such signals, either by increasing the noise floor by transmitting broadband noise or by attempting to exceed the dynamic range of the receiver hardware with powerful narrowband signals. Additionally, since the satellite signal structure is so precisely defined and predictable, it can be spoofed by a transmission using the same frequencies and signal structure. This is unacceptable for military applications, so they rely on encrypted signals to thwart any spoofed transmissions, but are still susceptible to intentional interference on the same frequencies. Consequently, for military applications, there is a need to reduce the effect of jamming, so the CRPA system is sometimes used in place of the FRPA system. 
         [0013]    Intentional interference is usually significantly stronger than actual satellite transmissions. CRPA systems can use techniques such as nulling (combining the signals received by the CRPA&#39;s elements in such a way as to make the jamming signal cancel itself out) or beam steering (combining the signals received by the CRPA&#39;s elements in such a way as to amplify the satellite signal) to overcome intentional jamming. Note that beam steering does not physically direct the antenna hardware. Instead, it uses phased array techniques to compensate for the phase of arrival difference caused by the different path length to each element from any satellite to make the signals from each antenna element phase coherent so they add together in amplitude. Also, note that it is possible to perform nulling and beam steering at the same time. 
         [0014]    For high quality GNSS pseudorange measurements, non-common receiver hardware induced errors and directionally dependent antenna induced errors must be compensated for to obtain desired accuracies for high precision GNSS requirements in certain applications. The problem of non-common receiver hardware induced errors is a significant issue in sensors that receive the Russian Global Navigation Satellite System (GLONASS), and may be mitigated by using an internally generated calibration signal to measure and eliminate receiver induced errors from the pseudorange measurements, as disclosed by Lennen (U.S. Pat. Nos. 5,949,372 and 6,266,007). 
         [0015]    The problem of directionally dependent antenna induced errors is straightforward to solve in FRPA GNSS sensors by subtracting the directionally dependent antenna errors from the pseudorange measurements, in a similar manner to the standard method of correcting GNSS carrier phase measurements for FRPA antenna induced errors that have existed for some years. See, for example, Gerald L. Mader, GPS Antenna Calibration at the National Geodetic Survey, available at http://www.ngs.noaa.gov/ANTCAL/images/summary.html, the entire content of which is herein incorporated by reference. However, for the complex case of a GNSS receiver employing a CRPA and dynamic beam steering, the multiplicity of combinations of antenna element outputs makes compensation of directionally dependent antenna induced errors more difficult, as the simple subtraction that might be used for FRPA compensation does not work with a CRPA. Compensation of pseudorange measurements for such errors is a problem not addressed in previous GNSS CRPA beam steering sensors. 
         [0016]    Therefore, with the conversion from the FRPA based systems to CRPA systems for GNSS applications, there is a need to better compensate for the effects of antenna element errors on pseudorange measurement errors. 
         [0017]    In U.S. patent application Ser. No. 12/548,387, entitled “System and Method for Correcting Global Navigation Satellite System Pseudorange Measurements in Receivers Having Controlled Reception Pattern Antennas,” filed Aug. 26, 2009, the entire content of which is incorporated herein by reference, this problem was addressed by computing the bias that known group delays add to a pseudorange measurement and then subtracting it from the measurement. In a related application, U.S. patent application Ser. No. 12/548,381, entitled “System and Method for Correcting Global Navigation Satellite System Carrier Phase Measurements in Receivers Having Controlled Reception Pattern Antennas,” filed Aug. 26, 2009, the entire content of which is incorporated herein by reference, a similar problem, namely correcting for carrier phase inaccuracies in similar CRPA systems, was addressed. 
       SUMMARY OF THE INVENTION 
       [0018]    In accordance with the present invention, a generalized frequency-domain pseudorange correction is provided. This correction is able to compensate a multiple element (channel) GNSS CRPA sensor for channel dependent errors such as group delay and wave propagation differences. The correction applies to both the case of uniform beamforming weights for all frequencies and the more complex case of frequency-dependent weights. Unlike U.S. patent application Ser. No. 12/548,387 (mentioned above), embodiments of the present invention address the problem by removing the group delays from the GNSS signal and thus prevent them from biasing the measurement in the first place. The technique is easier to implement and more general than that method. 
         [0019]    According to an exemplary embodiment of the present invention, an apparatus for calibrating a global navigation satellite system (GNSS) receiver system for group delay errors in GNSS transmitter signals is provided. The apparatus includes a controlled reception pattern antenna (CRPA), a signal conditioner, and a processor. The CRPA includes a plurality of receiving elements. The CRPA is configured to sense a plurality of signals from a plurality of GNSS transmitters using one or more transmitter frequencies. The signal conditioner is configured to convert a plurality of sensed GNSS signals to a plurality of time domain digital signals. The processor is configured to convert the time domain digital signals into a plurality of frequency domain digital signals; access group delay calibration correction data for combinations of the plurality of receiving elements, a plurality of transmitter orientations with respect to the CRPA, and the one or more transmitter frequencies; compensate the frequency domain digital signals by the group delay calibration correction data to obtain a plurality of compensated frequency domain digital signals; combine the compensated frequency domain digital signals by GNSS transmitter and frequency to obtain a plurality of frequency domain filtered signals; convert the frequency domain filtered signals into a plurality of time domain filtered signals; and track code modulations of the time domain filtered signals and convert the time domain filtered signals into GNSS pseudorange measurements for the plurality of GNSS transmitters at the one or more transmitter frequencies. 
         [0020]    The processor may be further configured to track the code modulations of the time domain filtered signals and convert the time domain filtered signals into pseudorange measurements by using a plurality of delay-locked loops. 
         [0021]    The processor may be further configured to determine the transmitter orientation with respect to the CRPA for each of the plurality of GNSS transmitters by obtaining a directional angle from the CRPA to each of the plurality of GNSS transmitters, obtaining an attitude of the CRPA, and combining the directional angle from the CRPA and the attitude of the CRPA for each of the plurality of GNSS transmitters. 
         [0022]    The GNSS may use two or more transmitter frequencies, and the group delay calibration correction data may be further organized by the two or more transmitter frequencies. 
         [0023]    The apparatus may be configured to perform in real time. 
         [0024]    The GNSS may be the Global Positioning System (GPS). 
         [0025]    The CRPA may have seven elements. 
         [0026]    The apparatus may be mounted on a dynamic platform. 
         [0027]    The apparatus may be mounted on an aircraft, ship, or land vehicle. The apparatus may determine the pseudorange measurements accounting for the variable attitude of the dynamic platform. 
         [0028]    According to another exemplary embodiment of the present invention, a method for calibrating a global navigation satellite system (GNSS) receiver system for group delay errors in GNSS transmitter signals is provided. The method includes sensing a plurality of signals from a plurality of GNSS transmitters with a controlled reception pattern antenna (CRPA) having a plurality of receiving elements using one or more transmitter frequencies; converting the sensed GNSS signals to a plurality of time domain digital signals; converting the time domain digital signals into a plurality of frequency domain digital signals; accessing group delay calibration correction data for combinations of the plurality of receiving elements, a plurality of transmitter orientations with respect to the CRPA, and the one or more transmitter frequencies; compensating the frequency domain digital signals by the group delay calibration correction data to obtain a plurality of compensated frequency domain digital signals; combining the compensated frequency domain digital signals by GNSS transmitter and frequency to obtain a plurality of frequency domain filtered signals; converting the frequency domain filtered signals into a plurality of time domain filtered signals; and tracking code modulations of the time domain filtered signals and converting the time domain filtered signals into GNSS pseudorange measurements for the plurality of GNSS transmitters at the one or more transmitter frequencies. 
         [0029]    The method may further include determining the transmitter orientation with respect to the CRPA for each of the plurality of GNSS transmitters. Determining the transmitter orientation may include obtaining a directional angle from the CRPA to each of the plurality of GNSS transmitters, obtaining an attitude of the CRPA, and combining the directional angle from the CRPA and the attitude of the CRPA for each of the plurality of GNSS transmitters. The tracking of the code modulations of the time domain filtered signals and converting the filtered signals into pseudorange measurements may include using a plurality of delay-locked loops. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0030]    The accompanying drawings illustrate embodiments of the present invention, and together with the description, serve to explain the principles of the embodiments of the present invention. 
           [0031]      FIG. 1  depicts an example CRPA layout according to one embodiment. 
           [0032]      FIG. 2  depicts an overview of a GNSS CRPA frequency-domain pseudorange correction process according to an exemplary embodiment. 
           [0033]      FIG. 3  is an exemplary GNSS CRPA frequency-domain pseudorange correction method. 
           [0034]      FIG. 4  is a depiction of an exemplary embodiment of a GNSS receiver system for frequency domain correction of pseudorange errors for group delay when the antenna configuration is a CRPA. 
           [0035]      FIG. 5  illustrates an example frequency-domain processor from  FIG. 4 . 
       
    
    
     DETAILED DESCRIPTION 
       [0036]    Embodiments of this invention reduce pseudorange errors through frequency domain compensation of the group delay components that are inherent in the receiver hardware. The illustrative embodiments that follow are only exemplary applications of the present invention and not intended to limit the scope of the invention. 
         [0037]    In accordance with the present invention, a generalized frequency-domain pseudorange correction is provided. This correction is able to compensate a multiple element (channel) GNSS CRPA sensor for channel dependent errors such as group delay and wave propagation differences. These group delays can come from sources such as separation of the individual CRPA elements, the signal&#39;s direction of arrival, and mismatches between the CRPA&#39;s RF channels. 
         [0038]    Exemplary embodiments provide pseudorange group delay compensation, in real-time within the receiver digital signal processing, by delaying the digital samples of the GNSS signal in the frequency domain, where the limitation associated with time-based sampling resolution—for example, 8 nanosecond (ns) sampling resolution—does not apply. More specifically, in these embodiments, each Fourier coefficient is multiplied by e iKn , where K is a constant and n is the frequency bin number (e.g., 0 to 127 when there are 128 frequency bins in the frequency domain representation). This applies a phase advance to the input that increases linearly with frequency, which produces a negative group delay. When the phase-shifted coefficients are transformed back to the time domain, the resulting signal is advanced in time by K/df, where df=244 kHz is the frequency bin size in this case. K is chosen for each CRPA channel based on the channel&#39;s measured group delay. For example, if a channel has a 1 ns group delay, K would be set for that channel to 1 ns×244 kHz=488π microradians. 
         [0039]    An exemplary embodiment of the invention includes a GNSS receiver system on a dynamic platform, such as an aircraft, the aircraft and system capable of operating in any direction and orientation. The GNSS broadcasts carrier waves on one or more frequencies. For example, military GPS uses two carrier frequencies, L 1 =1.57542 GHz and L 2 =1.2276 GHz, and a third GPS frequency is being added, L 5 =1.17645 GHz. The GNSS receiver system in the present embodiment uses a receiver connected to a seven-element CRPA along with a carrier-phase correction scheme. Note that although a CRPA has multiple elements, the actual number of elements in the CRPA can vary from seven. A CRPA with fewer elements is simpler and cheaper to build and manage, while a CRPA with more elements provides better intentional jamming protection. Note also that the CRPA may not necessarily be aligned along the centerline of the aircraft. 
         [0040]      FIG. 1  shows an exemplary CRPA  10  including seven antenna elements (channels). The seven elements break down into one reference element  12  and six auxiliary elements  14 , where the reference element  12  is the element most centered with respect to the seven elements while the six auxiliary elements  14  surround the reference element  12  in a symmetrical (hexagonal) layout: one forward, one back, two on the left, and two on the right. Nearby elements are approximately 0.1 m apart. Note that a CRPA may include other numbers of elements, and the elements may differ in size or relative orientation, which may be either symmetric or asymmetric. 
       Correction Process 
       [0041]      FIG. 2  depicts an overview of a frequency-domain pseudorange correction process according to an exemplary embodiment, using a CRPA like the one shown in  FIG. 1 . Since a phase shift that increases linearly with frequency is equivalent to a negative group delay, the process can exploit this when the GNSS signal is in the frequency domain and before it is sent to the correlators, as shown in  FIG. 2 . 
         [0042]    In  FIG. 2 , analog satellite signals  20  are first received from GNSS satellites by each of the M individual CRPA elements (in this embodiment, M=7). Each satellite transmits one such signal per frequency (in this embodiment, two such frequencies are used, but this may vary). Each CRPA element (or channel) picks up the analog signal from each satellite. These signals (from each element and for each satellite) are sent to a receiver, which digitally samples the signals in the time domain using analog/digital (A/D) converter  22 . The sampled signals are then down-converted  24  to baseband signals. Next, the baseband signals undergo discrete Fourier transform (DFT)  26  to convert them to the frequency domain, that is, into some number N of frequency bins. In the current embodiment, the signals are converted into N=128 separate frequency bins. In each of these conversions  22 ,  24 ,  26 , the same function is applied to the signals from each of the antenna elements in the CRPA. The signals then undergo frequency-domain group delay compensation  28 , described further below. 
         [0043]    The remaining portions of  FIG. 2  process the signals on a beam-by-beam basis. Each of the GNSS satellites transmits a signal. Because of the different signal encoding used by each satellite, it is straightforward to separate the signals from the different satellites. Nonetheless, for each satellite, there are still as many signals (M) as there are CRPA elements (seven, in this example). In step  30 , these seven signals are combined in the frequency domain in each of the N separate frequency bins using a suitable beamforming technique to produce a composite signal for each beam in each of the N separate frequency bins. While forming the beam, weights are calculated to apply to the N different frequency bins. Next, each beam signal is converted back to the time domain by inverse DFT  32 . In step  34 , each signal is then up-converted to intermediate frequency (IF), which produces the corrected pseudorange (PR)  36  for the CRPA system. 
         [0044]    While the signal is in the frequency domain, but before the CRPA filter&#39;s weight calculation, the process applies a linear phase shift to the Fourier coefficients (step  28  in  FIG. 2 ). Specifically, if a mn  is the coefficient in the n th  frequency bin (n=0 to 127) of the m th  channel (m=1 to 7), the method replaces a mn  by 
         [0000]      a mn ′=a mn e i2πτ     m     nk/NT ,  (1)
 
         [0000]    where τ m  is the m th  channel&#39;s calibrated group delay, N is the number of DFT frequency bins (128, in this case), and T is the sampling interval (32 ns). For example, if the group delay is 1 ns, the Fourier coefficients are rotated through phase angles of 0 to 11.2°. The bins are numbered such that bin  0  is the signal&#39;s DC component. 
         [0045]    The reconstructed time-domain signal is related to the Fourier coefficients by the inverse discrete Fourier transform: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       x 
                       m 
                     
                      
                     
                       ( 
                       kT 
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         n 
                         = 
                         0 
                       
                       
                         N 
                         - 
                         1 
                       
                     
                      
                     
                       
                         a 
                         mn 
                       
                        
                       
                         
                            
                           
                              
                              
                             
                                 
                             
                              
                             2 
                              
                             π 
                              
                             
                                 
                             
                              
                             
                               nk 
                               / 
                               N 
                             
                           
                         
                         . 
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
         [0000]    Therefore, the method is equivalent to replacing x m  (kT) by 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         
                           
                             x 
                             m 
                             ′ 
                           
                            
                           
                             ( 
                             kT 
                             ) 
                           
                         
                         = 
                         
                           
                             ∑ 
                             
                               n 
                               = 
                               0 
                             
                             
                               N 
                               - 
                               1 
                             
                           
                            
                           
                             
                               a 
                               mn 
                               ′ 
                             
                              
                             
                                
                               
                                  
                                  
                                 
                                     
                                 
                                  
                                 2 
                                  
                                 π 
                                  
                                 
                                     
                                 
                                  
                                 
                                   nk 
                                   / 
                                   N 
                                 
                               
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                         
                           
                             ∑ 
                             
                               n 
                               = 
                               0 
                             
                             
                               N 
                               - 
                               1 
                             
                           
                            
                           
                             
                               a 
                               mn 
                             
                              
                             
                                
                               
                                  
                                  
                                 
                                     
                                 
                                  
                                 2 
                                  
                                 
                                     
                                 
                                  
                                 
                                   πτ 
                                   m 
                                 
                                  
                                 
                                   n 
                                   / 
                                   NT 
                                 
                               
                             
                              
                             
                                
                               
                                  
                                  
                                 
                                     
                                 
                                  
                                 2 
                                  
                                 
                                     
                                 
                                  
                                 π 
                                  
                                 
                                     
                                 
                                  
                                 
                                   nk 
                                   / 
                                   N 
                                 
                               
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                         
                           
                             ∑ 
                             
                               n 
                               = 
                               0 
                             
                             
                               N 
                               - 
                               1 
                             
                           
                            
                           
                             
                               a 
                               mn 
                             
                              
                             
                                
                               
                                  
                                  
                                 
                                     
                                 
                                  
                                 2 
                                  
                                 π 
                                  
                                 
                                     
                                 
                                  
                                 
                                   
                                     n 
                                      
                                     
                                       ( 
                                       
                                         k 
                                         + 
                                         
                                           
                                             τ 
                                             m 
                                           
                                           T 
                                         
                                       
                                       ) 
                                     
                                   
                                   / 
                                   N 
                                 
                               
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                         
                           
                             x 
                             m 
                           
                            
                           
                             ( 
                             
                               kT 
                               + 
                               
                                 τ 
                                 m 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
         [0000]    which shows that the modified signal is advanced in time by τ m . Therefore, the method eliminates group delay if we set τ m  in (1) equal to the m th  channel&#39;s group delay. 
       Sources of Group Delay 
       [0046]    Three of the significant sources of group delay that affect the tracked GNSS signals are the CRPA&#39;s size, the antenna elements, and the RF channels. Since the magnitude of these delays depends on the CRPA hardware, the following discussion applies to the CRPA embodiment described above and depicted in  FIG. 1 . 
         [0047]    1. The seven CRPA elements are arranged in a hexagon about a central element with a radius of about 0.1 m, so a satellite signal can arrive at an outer element up to 0.3 ns before or after it arrives at the central element. The CRPA filter manager (discussed below) calculates the signal path length difference between CRPA elements as part of its steering vector computation. A steering vector component has the form e i2πu·A     m     /λ , where u is the satellite line of sight (LOS) unit vector and A m  is the m th  auxiliary element&#39;s displacement from the reference element. The dot product u·A m  is the path length difference and so the group delay is u·A m /c. 
         [0048]    2. Studies have shown that a GPS antenna element has a group delay that depends on the signal&#39;s direction of arrival and frequency. Variations of about 1 ns have been reported. The CRPA filter manager discussed below can compute 14 antenna group delays per satellite (that is, one for each of the combinations of 7 antenna channels and 2 frequencies) by means of look-up tables in the same way that it can compute 14 antenna phase delays as part of carrier phase correction (see U.S. patent application Ser. No. 12/548,381, discussed above, for more information on this type of correction). 
         [0049]    3. Mismatches between the CRPA&#39;s RF channels can cause their group delays to differ by up to 2 ns. Since the channels&#39; group delays are measured during calibration and are the same for every satellite (orientation), they can be compensated for with channel-dependent attitude-independent correction values. 
       Example Method 
       [0050]      FIG. 3  shows an example method of correcting a CRPA GNSS frequency-domain pseudorange error from a particular GNSS transmitter for a particular frequency, where the CRPA is mounted in a fixed location on a dynamic platform, such as a moving aircraft or other vehicle. The method starts with step  100 , where the CRPA senses GNSS signals for the frequency from the transmitter, whose line of sight (LOS) with respect to the vehicle is already known from earlier signals and positioning calculations. Each CRPA element senses its own GNSS signals. Next, in step  110 , the signals are digitally sampled to convert them to digital format in the time domain. This allows the signals to be used in GNSS measurement calculations. In step  120 , the digital signals are converted to the frequency domain (for instance, by a discrete Fourier transform (DFT)). 
         [0051]    In step  130 , an attitude sensor, such as an inertial navigation system (INS), determines the vehicle&#39;s attitude, which, when combined with the transmitter&#39;s LOS with respect to the vehicle, allows the orientation of the transmitter with respect to the CRPA to be determined. Next, in step  140 , group delay calibration correction data—measured empirically during antenna calibration and stored in tables organized by CRPA element and orientation of the transmitter with respect to the CRPA—is accessed to determine the group delay correction for each CRPA element. In step  150 , these corrections are applied to each frequency domain signal. 
         [0052]    In step  160 , beamforming is applied to the frequency domain digital signals (separate sets of signals for each of the CRPA elements) to combine them into a single set of filtered signals (for all of the CRPA elements) in the frequency domain. Then, in step  170 , the set of frequency domain filtered signals is converted to a single filtered signal in the time domain (through, for example, an inverse DFT). Finally, in step  180 , this signal is used to form a corrected GNSS pseudorange measurement using, for example, a delay-locked loop. 
       Example System 
       [0053]      FIG. 4  shows an exemplary embodiment of a GNSS receiver system as might be installed on a moving vehicle (for instance, an aircraft) while  FIG. 5  shows an example Frequency Domain Processor  50  from  FIG. 4 . While the description is focused on steering a particular beam, that is, a particular transmission frequency from a particular GNSS satellite, it is understood that any number of frequencies and satellites can be handled concurrently with a similar approach. 
         [0054]    More specifically, for each transmitter and frequency of interest, the system uses CRPA  42  to receive a GNSS signal  40  from a particular radio navigation transmitter (satellite). The CRPA  42  includes M antenna elements (M≧2). At any moment in time, each of the M channels is usually receiving and processing a slightly different signal from the satellite because of group delay effects (like the transmitter alignment with respect to the element or effects induced by the internal processing portion of the receiver). The receiver digitally samples the M signals in the time domain and converts the sample signals into M frequency domain N-point vectors using an N-point DFT as part of signal conditioning  44 . This divides each such signal into N separate frequency bins. For instance, the m th  DFT consists of N complex Fourier coefficients F 1   m , . . . , F N   m , where m=1, . . . , M. The superscript indicates which antenna element received the signal and the subscript indicates the frequency bin. Thus, there are a total of MN coefficients. The receiver sends these M-element frequency domain vectors  46  (signals  1  to M) to the Frequency Domain Processor  50 . 
         [0055]    While this is taking place, the system maintains the transmitter&#39;s line of sight (LOS)  60  (that is, orientation with respect to the vehicle, or navigation coordinates) as part of tracking the particular satellite of interest. Then, by using attitude sensor  62  (such as an inertial navigation system), the system can determine the attitude  64  of the vehicle (and hence, the CRPA  42 ). This allows CRPA filter manager  70  to maintain the satellite&#39;s orientation with respect to CRPA  42  (that is, antenna coordinates). If the receiver is static, fixed values of attitude  64  may instead be supplied. CRPA filter manager  70  then computes the satellite&#39;s azimuth and elevation angles from the transformed LOS vector and uses those angles to look up the group delays  68  in group delay tables  66 , one table for each antenna element. The group delay tables  66  contain values measured during antenna calibration, indexed by azimuth and elevation, for each of the transmission frequencies. 
         [0056]    M RF channel-dependent group delay values and M free space path length difference group delay values are computed, and combined with the M azimuth and elevation-dependent group delay values computed above to create an M-element total group delay correction vector  72 . The CRPA filter manager  70  forwards the M-element group delay correction vector to the Frequency Domain Processor  50 . 
         [0057]    The Frequency Domain Processor  50 , as depicted in  FIG. 5 , processes the Fourier coefficients F 1   m , . . . , F N   m , where m=1, . . . , M, provided by the Signal Conditioning  44 . The superscript indicates which antenna element received the signal and subscript indicates the frequency bin. Thus, there are a total of MN coefficients. The Fourier coefficients in each of these bins are then compensated for the effects of group delay by multiplying by the complex Group Delay Coefficient  54  based on their corresponding antenna element and the M group delays  72  in a manner as described above (in “Correction process”). This produces MN corrected coefficients C n   m  corresponding to the MN coefficients F n   m . 
         [0058]    Frequency Domain Processor  50  then uses N identical filters  56  (corresponding to each of the separate frequency bins) to implement a suitable beamforming technique as is known in the art that combines, for each frequency bin n, the M separate corrected coefficients C n   1 , . . . , C n   M  into a single filtered coefficient F n  (also labeled  57 ). Referring to  FIG. 4 , the inverse DFT  58  takes the N separate filtered coefficients F 1 , . . . , F N  (in the frequency domain)  57  and converts them into a single filtered signal  74  in the time domain. Finally, the filtered signal  74  is sent to tracking loop  76 —a delay-locked loop (DLL)—that tracks the signal&#39;s code modulation and forms a corrected pseudorange measurement  78 . 
         [0059]    The foregoing description has provided by way of exemplary and non-limiting examples a full and informative description of the exemplary embodiments of this invention. However, various modifications and adaptations may become apparent to those skilled in the relevant art in view of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. Nonetheless, all such and similar modifications of the teachings of this invention will still fall within the scope of this invention. 
         [0060]    Furthermore, some of the features of the preferred embodiments of this invention could be used to advantage without the corresponding use of other features. As such, the foregoing description should be considered as merely illustrative of the principles of the invention, and not in limitation thereof.