Abstract:
A digital signal processing-based receiver architecture performs automatic gain control (AGC) for a frequency hopping spread-spectrum communications receiver that may be subjected to one or more sources of interference or jamming. Rather than set the AGC gain at a fixed, best hoped for value, and then attempt to rely on decoding or interleaving to interpolate lost or degraded data, the present invention, through repeated but aperiodic transitions or hops across a plurality of frequency bins of interest, develops a gain profile for the plurality of frequency bins, and uses the gain profile to adjust, on a hop-by-hop basis, the gain for the channel/bin to which the receiver is listening, so as to maintain the average aggregate input signal power at an optimal ADC loading factor.

Description:
GOVERNMENT LICENSE RIGHTS 
     This invention was made with government support under contract No. AEHF-NMT N00039-04-C-0011 awarded by the U.S. Navy. The U.S. Government may have certain rights in the invention. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates in general to communication systems and subsystems thereof, and is particularly directed to a digital signal processing-based receiver architecture that is operative to perform automatic gain control (AGC) for a system utilizing a frequency hopped spread spectrum waveform that may be subjected to one or more sources of interference. 
     BACKGROUND OF THE INVENTION 
     In the course of attempting to recover data transmitted over a communication channel, a digital receiver must set the input level of the aggregate desired signal plus noise and interference, henceforth referred to as the aggregate signal, at the input to the analog-to-digital converter such that effects of quantization on the desired signal are minimized. The aggregate signal level in to the analog-to-digital converter is set using a variable gain stage somewhere in the analog front-end preceding the digital receiver. If the gain of the analog front end is set to low, quantization noise will dominate and the number of effective bits of the analog-to-digital converter will be reduced. If the gain is set to high, the analog-to-digital converter will saturate, distorting the waveform and preventing the successful recovery of the data. Variation in the communication channel&#39;s propagation properties and the presence or absence of interference necessitate the use of some sort of automatic gain control to keep the aggregate signal level into the analog-to-digital converter at an optimal value over a large dynamic range. 
     To complicate matters, communications systems subjected to one or more sources of interference, intentional or otherwise, often employ some form of frequency hopping scheme, through which the receiver transitions or ‘hops’ from (the center frequency of) one frequency bin to another, and looks for energy in the hopped-to bin, during a relative brief ‘hop’ interval. One of the problems that must be faced with this type of system is the fact that the receiver doesn&#39;t know a priori which frequency bin will possess interference. 
     For example, there may exist a relatively narrowband jammer emitting in or near a frequency bin to which the receiver hops only occasionally. If the gain level of the input to the receiver&#39;s analog-to-digital converter (ADC) is set at some mean value, then hopping to the jamming band will result in saturating the ADC, causing a data packet to be occasionally lost, thereby degrading system throughput. On the other hand, if the gain is set at a value based upon the impact of the jammer in that one band, then when the receiver is hopping to and collecting energy in other bands, the ADC is underloaded, introducing quantization noise and causing an unwanted degradation in performance. 
     Moreover, the use of frequency hopping over wide bandwidths causes additional aggregate signal level dynamics, as a function of frequency, due to the large gain variations typical of cost-effective analog frontends. 
     The prior art has customarily set the gain at a value based on the mean value of the aggregate input signal level over the entire spread bandwidth (with some overhead reserved for jamming) and then attempts to rely on interleaving and decoding to overcome the performance degradation caused by not optimally loading the ADC. 
     SUMMARY OF THE INVENTION 
     Rather than set the AGC gain at a fixed, best hoped for value, and then attempt to rely on decoding or interleaving to interpolate lost or degraded data, the present invention, through repeated but aperiodic transitions or hops across a plurality of frequency bins of interest, develops a gain profile for the plurality of frequency bins, and uses the gain profile to adjust, on a bin-by-bin basis, the gain for the channel/bin to which the receiver is listening, so as to maintain the average aggregate input signal power at an optimal (e.g., 10 bit) ADC loading factor. To this end, the overall architecture of the automatic gain control in accordance with a preferred embodiment of the present invention includes a front-end hardware section through which a signal is received, and an associated digital processor-resident software section to which the output of the hardware section is coupled, and which is used to control the gain of a variable gain front end amplifier stage of the hardware section in accordance with a multifrequency bin-based gain profile developed by the software section in the course of its analysis of the energy in the various frequency bins to which the receiver hops. Pursuant to a preferred embodiment, the automatic gain control (AGC) function is implemented in the digital signal processor section and is responsible for maintaining the aggregate signal plus noise plus interference (herein referred to as the aggregate input signal) within the dynamic range of an analog-to-digital converter (ADC) as well as for detecting demodulator input signal out of range faults and gross downlink interference. As will be described, the AGC function uses a frequency selective, first order, automatic gain control algorithm to control the analog front end&#39;s gain to keep the average aggregate input signal power at an optimal multi-bit (e.g., 10 bit) ADC loading factor. 
     The received input signal is coupled to a software controlled variable gain stage, the output of which is coupled to the input of the ADC. The digital quantity produced by the ADC corresponds to the received signal r(n) multiplied by a prescribed gain quantity G k   (lk)  supplied to the variable gain stage from the gain profile-generating software section. The power in this signal sample representation is derived in a power calculation block which derives the quantity: 
     
       
         
           
             
               
                 
                   ( 
                   
                     G 
                     k 
                     
                       ( 
                       lk 
                       ) 
                     
                   
                   ) 
                 
                 2 
               
               N 
             
             ⁢ 
             
               
                 ∑ 
                 
                   n 
                   = 
                   0 
                 
                 
                   N 
                   - 
                   1 
                 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                    
                   
                     r 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                    
                 
                 2 
               
             
           
         
       
     
     This quantity is delayed in a delay block to account for propagation delay in the execution of operations in the digital signal processor, to be described, and then converted into logarithmic format in a log base 10 conversion stage to produce a measured and gain adjusted signal energy quantity P issi   (ik−D)  (k−D), which is supplied in turn to an inverting (−) input of summation operator to a non-inverting (+) input of which is supplied an optimal loading factor LF opt . 
     As described briefly above, and as will be detailed below, the AGC algorithm is frequency selective, and adapts to different aggregate input signal conditions in a prescribed number of frequency bins (such as 32 bins as a non-limiting example), where the width of an individual frequency bin corresponds to a 30 MHz range of adjacent RF center frequencies. The frequency bin for a given hop is based on the hop&#39;s center frequency. 
     The AGC function initializes and starts the AGC frequency selective mechanism with a pre-determined initial gain profile. This pre-determined gain profile may be determined by link budget analysis or may be stored from a previous operation of the system. 
     As pointed out above, the AGC mechanism of the present invention is a frequency selective, dual bandwidth, first order, automatic gain control loop. The respective components of the AGC mechanism run a dual bandwidth AGC loop in each of up to 32 frequency bins in the present example, with each frequency bin AGC_Bin corresponding to a range of frequencies (32×30 MHz=960 MHz). Due to the random frequency hopping on the downlink, the frequency bin sampling period is random. 
     For each hop, the demodulator signal processing makes a 16 bit input signal strength indicator (ISSI) measurement from the ADC output as 
     
       
         
           
             
               
                 
                   
                     issi 
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                   = 
                   
                     round 
                     ⁡ 
                     
                       ( 
                       
                         
                           
                             1 
                             
                               4 
                               * 
                               44 
                               ⁢ 
                               
                                 , 
                               
                               ⁢ 
                               352 
                             
                           
                           ⁢ 
                           
                             ∑ 
                             
                               n 
                               = 
                               0 
                             
                             
                               44 
                               , 
                               351 
                             
                           
                         
                         ⁢ 
                         
                             
                         
                         ❘ 
                         
                           
                             
                               x 
                               k 
                             
                             ⁡ 
                             
                               ( 
                               n 
                               ) 
                             
                           
                           2 
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
     where x(n) is a ten-bit ADC sample for the kth HHR hop/HHR interval. The frequency of the hop is saved for determining the frequency bin a given ISSI value was taken in. This frequency bin value is designated as l k . 
     Once the frequency bin l k  is determined for the hop, the gain setting (in dB), g k   (lk) , for that frequency bin is looked up in a current gain profile vector GP(k) operator, and quantized to a 0.5 dB step size by a 0.5 dB quantizer operator. The gain profile vector is stored in an unquantized, floating point format to avoid setting an upper limit on the AGC&#39;s attack/release time. 
     Once the AGC function receives the ISSI vector from the hardware, the algorithm uses the ISSI vector, along with the corresponding vector of frequency bins, to calculate a gain error for the k th  hop as:
 
 E   gain   (lk) ( k )=LF opt −10 LOG 10 (issi( k )/2 15 )
 
     The optimal loading factor, LF opt , is defined as the ratio of the average power of the aggregate input signal to the power of a sine wave with an amplitude equal to the ADC&#39;s full scale. For a 10-bit ADC, as a non-limiting example, a full scale sine wave will result in an ISSI measurement of 32,640 which is approximated as 2 15  in the above equation. The gain error from a summation operator is then used to update the gain profile value for the corresponding frequency bin. 
     As noted above, the loading factor is defined as the ratio of the average power of the aggregate input signal to the power of a sine wave with it&#39;s amplitude equal to the ADC&#39;s full scale. If an ADC is underloaded, the digital demodulator&#39;s ADC quantization noise can degrade the receiver&#39;s G/T. For a 10-bit ADC of the present example, the quantization noise density, ADC_N o , at the nominal sample rate is −134.6 dBfs-Hz (at the input to the ADC; ˜7.85 effective bits at −12 dBfs). The loading factor is selected such that the G/T is degraded by a value determined in allocating the demodulator&#39;s implementation loss during the link budget process. The loading factor LF opt  is set to:
 
LF opt =┌┐\ADC_No−10 log 10 (10 ΔNo/10 −1)+(10 log 10 (NeqBW)+6 dB)
 
     where ┌┐\÷ denotes the ceiling function, ΔNo is the allowable G/T degradation, and Neq_BW is the noise equivalent bandwidth. The 6 dB in the above equation accounts for the maximum peak-to-peak receive-chain gain variation. 
     It should be noted that, under high Pr/No conditions when the number of hops-per-frame is low or the downlink is scintillating, clipping could occur if the actual loading factor were achieved for noise-only hops. This is one of the reasons that large gain error detection and long attack/release times are used. 
     A determination of the loop parameter is discussed below. When the new gain is less than a prescribed value (e.g., −16.4, as a non-limiting example) an out-of-range (OOR) fault high is set by the gain profile vector operator and the gain is clipped to the value of −16.4. 
     The primary AGC loop bandwidth, and thus the attack and release times, are set by the loop parameter K p     —   S. The loop updates for a given frequency bin at random time intervals due to the frequency hopping nature of the downlink. Thus, the attack and release times are random variables that are functions of the probability of visiting a given frequency bin on a given hop and the hopping period. 
     To handle gain errors that can cause ADC saturation or underflow for a large number of hops, a secondary gain adjustment mechanism is included in the AGC mechanism. A functional operator labeled “Large Gain Error Detection &amp; OOR Low Error Detection” performs a large gain error (LGE) handing technique effectively that adapts the AGC&#39;s loop bandwidth when large gain errors are detected. The LGE technique permits setting different thresholds for low or high gain errors—thus permitting the LGE attack and releases times to be set differently. For detecting a persistent ADC underflow caused by a demodulator input failure (i.e. receive chain fault), the input signal strength is checked continuously against a minimum signal level threshold set by the receiver&#39;s noise floor. This out of range (OOR) low fault is detected using the same period as the LGE detector, but also uses the current gain setting for the corresponding frequency bin in the detection. An indication of an out of range low indicates a problem with the receive chain that will affect the system&#39;s communications performance. 
     Due to the frequency selective nature of the AGC mechanism of the present invention, a method for determining the presence of a large narrow band interfering signal in the receive band is readily available. The AGC gross interference detection algorithm uses the maximum gain variation between any two frequency bins to detect the presence of such an interferer. When a gross interferer is detected, the AGC function reports a gross downlink interference fault with a center frequency estimate of the band in which the interferer lies. It may be noted that the accuracy of the gross interferer&#39;s center frequency is a function of the analog anti-aliasing filter&#39;s bandwidth. 
     The AGC initializes and begins normal operation at the completion of the verification time-frequency search. The AGC mechanism will set the initial frequency dependent gain profile GP(0) equal to a 1-by-32 element vector of the appropriate gain extracted from a table. The AGC release time T rls  and attack time T atk  are defined to be the time for the AGC loop in a given frequency bin to settle to within 1 dB of final value after a step in input power in that bin of ±10 dB, respectively. It is intended that the AGC not track input signal variations due to scintillation; therefore, the AGC mean attack and release times need to be at least 10 times the max scintillation decorrelation time max(τ o ) as defined by performance control specifications, thus allowing the AGC loop filter to ignore signal variations due to scintillation. To set the attack/release time the AGC loop&#39;s step response and mean time between observations must be determined. 
     An AGC loop is formed for a given frequency bin λ, of a plurality of frequency bins such as the 32 bin gain profile of the present example. Without a loss in generality, a new input at the m th  observation may be defined as P˜ in   (λ) (m)=P in   (λ) (m)−LF opt . This new input is simply a shifted version of P in   (λ) (m); thus, a ±10 dB step in P in   (λ) (m) equates to a ±10 dB step in P˜ in   (λ)  (m). The attack/release times then become the time for the gain error E gain   (λ) (m) to decay to ±1 dB after a step of ±10 dB step in P˜ in   (λ) (m). 
     The transfer function of the AGC loop is:
 
 H   AGC ( z )=( z   −1 −1)/(1 −z   −1   +K   p     —     Sz   −D )
 
     The step response is:
 
 h   AGC   step ( m )= Z   −1 [−10/(1 −z   −1   +K   p     —     Sz   −D )]
 
     where Z −1 [ ] denotes the inverse Z-transform. Calculating the inverse z-transform in the above expression analytically as a function of the loop delay D is not practical; instead the step response is numerically evaluated at several values of D. 
     Due to the frequency hopping nature of the downlink, the sample interval, or time between observations, T AGC , for a given frequency bin is random, so that the attack/release times are random. As described above, the objective is to set the mean attack/release time to be 10*max (τ o ). Thus, it is necessary to derive the expectation of T AGC . Assuming that every frequency hop word is equally likely, the probability p AGC     —     Bin  that a given hop equates to a particular frequency bin is defined as:
 
 p   AGC     —     Bin = 1/32 for the non-limiting case described here.
 
     The expectation E[T AGC ] is therefore defined as: 
     
       
         
           
             
               
                 
                   
                     E 
                     ⁡ 
                     
                       [ 
                       
                         T 
                         AGC 
                       
                       ] 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         k 
                         = 
                         0 
                       
                       INFINITY 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       k 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         T 
                         hop 
                       
                       ⁢ 
                       
                         
                           
                             p 
                             
                               AGC 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               bIN 
                             
                           
                           ⁡ 
                           
                             ( 
                             
                               1 
                               - 
                               
                                 p 
                                 
                                   AGC 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   Bin 
                                 
                               
                             
                             ) 
                           
                         
                         
                           k 
                           - 
                           1 
                         
                       
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     
                       
                         
                           T 
                           HOP 
                         
                         ⁢ 
                         
                           p 
                           
                             CAGC 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             Bin 
                           
                         
                       
                       
                         ( 
                         
                           1 
                           - 
                           
                             p 
                             
                               CAGC 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               bIN 
                             
                           
                         
                         ) 
                       
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           0 
                         
                         INFINITY 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           k 
                           ⁡ 
                           
                             ( 
                             
                               1 
                               - 
                               
                                 P 
                                 
                                   CAGC 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   Bin 
                                 
                               
                             
                             ) 
                           
                         
                         k 
                       
                     
                   
                 
               
             
           
         
       
     
     where T hop  is the hopping interval. From a published transform, the above equation converts to: 
     
       
         
           
             
               
                 ∑ 
                 
                   k 
                   = 
                   0 
                 
                 infinity 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                   k 
                   ⁡ 
                   
                     ( 
                     
                       1 
                       - 
                       
                         p 
                         
                           AGC 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           Bin 
                         
                       
                     
                     ) 
                   
                 
                 k 
               
             
             = 
             
               
                 1 
                 - 
                 
                   p 
                   
                     AGC 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     Bin 
                   
                 
               
               
                 
                   ( 
                   
                     p 
                     
                       AGC 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       Bin 
                     
                   
                   ) 
                 
                 2 
               
             
           
         
       
     
     Therefore, the expectation E[T AGC]  reduces to:
 
 E[T   AGC]   =T   hop   /P   AGC     —     Bin  
 
     The step response for the AGC in a given frequency bin may be is plotted for different values of K p     —   S and D as a function of time, normalized by T hop /max(τ o ). As expected, the step response follows an exponential decay for all possible values of D, so that the proportional gain parameter K p     —   S may be set as a function of desired attack/release time by the expression:
 
 K   p     —     S= 2.3* E[T   AGC ]/(10*max(τ o ))=2.3 *T   hop /(10* p   AGC     —     Bin *max(τ o ))
 
     The large gain error (LGE) handling function of the AGC mechanism of the present invention adapts the loop&#39;s attack/release time when gain errors that exceed the LGE_high_S and LGE_low_S thresholds. These are set to ±10 dB to handle gain errors that prevent the magnitude of the gain error from being greater than 1 dB for more than 10 times the max scintillation decorrelation time max(τ o ). To accomplish this, the gain in a frequency bin is adjusted in 3 dB steps when a large gain error is “detected”. LGE detection is based on level crossings with the detection estimation period set by LGE_cnt_mod_S to be approximately two frame periods, in expectation. Each time the gain error exceeds the gain error threshold, the gain error count (high or low) for the corresponding frequency bin is incremented. If the ISSI measurement coincided with a hop that had a known valid hop, and exceeded the LGE high threshold, the LGE high count is incremented by 1 plus LGE_valid_hop_weight_S and the LGE_low counts are reset to 0. Once the LGE high or low count for a frequency bin exceeds the LGE_error_cnt_low_max_S or LGE_error_cnt_high_max_S in a frequency bin, the bin&#39;s gain is adjusted by 3 dB and the counts for that bin are reset. Every LGE_cnt_mod_S counts, all counters are reset if neither the LGE_error_cnt_low_max_S nor the LGE_error_cnt_high_max_S count is exceeded. To disable either the LGE high or low handling algorithm, LGE_error_cnt_high_max_S or LGE_error_cnt_low_max_S, respectively, is set to a value greater than LGE_cnt_mod_S. 
     The out-of-range (OOR) low detection function is used to determine when the demodulator&#39;s input is below acceptable levels. The threshold is used in conjunction by the LGE low detection algorithm, with OOR_Low_threshold_S threshold in-lieu of the LGE_low_S threshold for detecting the OOR low fault. The OOR low threshold OOR_Low_threshold_S is set using the equation below for each AG type. The minimum noise power spectral densities assume that the gain from the LNA input to demodulator input vary by less than 3 dB. It may be noted that the ±3 dB gain deviation includes both frequency dependent and non-frequency dependent gain variations due to installation/calibration errors, temperature, etc.
 
 a ·OOR_Low_threshold —   S =LF opt −min( N   o )−10 log 10 ( N   eq     —     BW )+3 dB
 
     The 3 dB factor is included to add margin against false alarms. 
     A gross interference detection algorithm is executed by a gross interference detector, which uses the peak-to-peak gain deviation, to determine if a high power interferer is present in the receive band and makes an estimate of the interferers center frequency. The peak-to-peak gain deviation threshold CID_threshold_S is set at the maximum peak-to-peak frequency deviation, plus 3 dB. The peak-to-peak gain deviation in the gain profile is sampled several times a second, and if the deviation exceeds the threshold, a gross interferer detected fault is set and a frequency estimate is made by centroiding between the frequency bins with the minimum gain. The accuracy of the frequency estimate is dependent on the anti-aliasing filter used and is approximately equal to half of the noise equivalent bandwidth of the filter. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a functional block diagram of the overall architecture of the frequency selective automatic gain control function with dual attack and release times and interference detection; 
         FIG. 2  depicts a AGC individual frequency bin loop for a given frequency bin λ; 
         FIG. 3  shows a gain profile derived in accordance with the architecture of  FIG. 1 ; 
         FIG. 4  depicts a AGC individual frequency bin loop analysis model; and 
         FIG. 5  graphically shows AGC step response with a wide band filter. 
     
    
    
     DETAILED DESCRIPTION 
     Before describing the present invention, it should be observed that the invention resides primarily in a prescribed novel arrangement of conventional telecommunication circuits and components, and attendant communication control software in an attendant digital signal processor. As a result, the configuration of such circuits and components and the manner in they are interfaced with the communications control software have, for the most part, been depicted in the drawings by readily understandable functional block diagrams, that contain operational flow processing therein, which show only those specific aspects that are pertinent to the present invention, so as not to obscure the disclosure with details which will be readily apparent to those skilled in the art having the benefit of the description herein. Thus, the block diagram and associated communication control flow diagrams are primarily intended to show the major components of a preferred embodiment of the invention in convenient functional groupings, whereby the present invention may be more readily understood. 
     Frequency Selective Automatic Gain Control Mechanism 
     Attention is initially directed to  FIG. 1 , which is a functional-based block diagram of the overall architecture of the frequency selective automatic gain control function with dual attack and release times in accordance with a preferred embodiment of the present invention. The invention includes a front-end hardware section  100  through which a signal is received, and an associated digital processor-resident software section  200 , to which the output of the hardware section is coupled, and which is used to control the gain of a variable gain stage  110  of the hardware section in accordance with a multifrequency bin-based gain profile developed by the software section in the course of its analysis of the energy in the various frequency bins to which the receiver hops. Pursuant to a preferred embodiment, the frequency selective automatic gain control (AGC) function is implemented in the demodulators digital signal processor section  200  and is responsible for maintaining the aggregate signal plus noise plus interference (herein referred to as the aggregate input signal) within the dynamic range of an analog-to-digital converter (ADC)  160  as well as for detecting demodulator input signal out of range faults and gross downlink interference. As will be described, the AGC function uses a frequency selective, first order, automatic gain control algorithm to control the demodulator mezzanine&#39;s gain to keep the average aggregate input signal power at the optimal ADC loading factor. 
     The aggregate input signal r(t) is coupled to a software controlled variable gain stage  110 , the output of which is coupled through a splitter/divider  120  to a wideband filter stage  130  and to a narrowband filter stage  140 , in this non-limiting example. The use of the two filters in the figure is necessary for the system in which the receiver is used and is not relevant to present invention other than the filter selected for a particular system configuration acts as an anti-aliasing filter. The output of one of these stages is selected by way of a selection switch  150  and is coupled to the input of ADC  160 . The digital quantity produced by ADC  160  corresponds to the received signal r(n) multiplied by a prescribed gain quantity G k   (lk)  supplied to the variable gain stage  110  from the gain profile-generating software section  200 . The power in this signal sample representation is derived in power calculation block  210 , which derives the quantity: 
     
       
         
           
             
               
                 
                   ( 
                   
                     G 
                     k 
                     
                       ( 
                       lk 
                       ) 
                     
                   
                   ) 
                 
                 2 
               
               N 
             
             ⁢ 
             
               
                 ∑ 
                 
                   n 
                   = 
                   0 
                 
                 
                   N 
                   - 
                   1 
                 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                    
                   
                     r 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                    
                 
                 2 
               
             
           
         
       
     
     This quantity is delayed in a delay block  220  to account for propagation delay in the execution of operations in the digital signal processor, to be described, and then converted into logarithmic format in a log base 10 conversion stage  230 , to produce a measured and gain adjusted signal energy quantity P issi   (ik−D)  (k−D), which is supplied in turn to an inverting (−) input  241  of summation operator  240 , to the non-inverting (+) input  242  of which is supplied the optimal loading factor LF opt . 
     As described briefly above, and as will be detailed below, the AGC algorithm is frequency selective, and adapts to different aggregate input signal conditions in a prescribed number of frequency bins (such as 32 bins as a non-limiting example, as shown in  FIG. 2 . The frequency bin for a given hop is based on the hop&#39;s center frequency. 
     The AGC function initializes and starts the AGC frequency selective mechanism with a pre-determined initial gain profile. 
     As pointed out above, the AGC mechanism of the present invention is a frequency selective, dual bandwidth, first order, automatic gain control loop. The respective components of the AGC mechanism are shown in  FIG. 1  and run a dual bandwidth AGC loop in each of up to 32 frequency bins in the present example, with each frequency bin AGC_Bin corresponding to a range of frequencies the systems operating band. Due to the random frequency hopping on the downlink, the frequency bin sampling period is random. 
     For each hop, the digital signal processing entity calculates a 16-bit input signal strength indicator (ISSI) value as 
     
       
         
           
             
               
                 
                   
                     issi 
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                   = 
                   
                     round 
                     ⁡ 
                     
                       ( 
                       
                         
                           
                             1 
                             
                               4 
                               * 
                               44 
                               ⁢ 
                               
                                 , 
                               
                               ⁢ 
                               352 
                             
                           
                           ⁢ 
                           
                             ∑ 
                             
                               n 
                               = 
                               0 
                             
                             
                               44 
                               , 
                               351 
                             
                           
                         
                         ⁢ 
                         
                             
                         
                         ❘ 
                         
                           
                             
                               x 
                               k 
                             
                             ⁡ 
                             
                               ( 
                               n 
                               ) 
                             
                           
                           2 
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
     where x(n) is a ten-bit ADC sample for the kth hop interval. 
     Once the frequency bin l k  is determined for the hop, the gain setting (in dB), g k   (lk) , for that frequency bin is looked up in the current gain profile vector GP(k)  250 , and quantized to a 0.5 dB step size by 0.5 dB Quantizer operator  260 . It should be noted that the gain profile vector is stored in an unquantized, floating point format to avoid setting an upper limit on the AGC&#39;s attack/release time. 
     Once the AGC function receives the ISSI-vector from the hardware, the algorithm uses the ISSI vector, along with the corresponding vector of frequency bins, to calculate a gain error for the k th  hop as:
 
 E   gain   (lk) ( k )=LF opt −10 LOG 10 (issi( k )/2 15 )
 
     The loading factor is defined as the ratio of the average power of the aggregate input signal to the power of a sine wave with an amplitude equal to the ADC&#39;s full scale. The loading factor LF opt  is determined via analysis based on analysis to be the loading factor that optimizes the effects of quantization on the incoming desired signal. For a 10-bit ADC, a full scale sine wave will result in an ISSI measurement of 32,640 which is approximated as 2 15  in equation (4). The gain error from summation operator  270  is then used to update the gain profile value for the corresponding frequency bin as shown in  FIG. 1 . 
     Selecting the Optimal Loading Factor 
     As noted above, the loading factor is defined as the ratio of the average power of the aggregate input signal to the power of a sine wave with it&#39;s amplitude equal to the ADC&#39;s full scale. If an ADC is underloaded, the digital demodulator&#39;s ADC quantization noise can degrade the terminals G/T. The loading factor is selected such that the AWGN noise density at the input to the ADC is increased by no more than an amount determined during the demodulator implementation loss budget allocation process. The loading factor LF opt  is set to:
 
LF opt =┌\ADC_No−10 log 10 (10 ΔNo/10 −1)+10 log 10 (NeqBW)+6 dB┐÷  (5)
 
     where ┐\÷ denotes the ceiling function, ΔNo is the allowable noise density increase, and Neq_BW is the noise equivalent bandwidth. The 6 dB in equation (5) serves to account for the maximum peak-to-peak receive-chain gain variation. 
     It should be noted that, under high Pr/No conditions when the number of hops per frame is low or the downlink is scintillating, that clipping could occur if the actual loading factor where achieved for noise only hops. This is one of the reasons that large gain error detection and long attack/release times are used. 
     A determination of the loop parameter is discussed below. When the new gain is less than a prescribed minimum allowable value an out of range (OOR) fault high is set by the gain profile vector operator  250  and the gain is clipped to the minimum allowable value. This fault is considered a minor fault. When the new gain is greater than the max gain, MAX_GAIN_S, the gain is clipped to MAX_GAIN_S. It may be noted that MAX_GAIN_S is often selected to be the required gain to get the minimum input noise only power to LF opt . The out of range low fault is handled in conjunction with the large gain error detection discussed below. 
     The primary AGC loop bandwidth, and thus the attack and release times, are set by the loop parameter K p     —   S, which is supplied to gain error multiplier  280 . The loop updates for a given frequency bin at random time intervals due to the frequency hopping nature of the downlink. Thus, the attack and release times are random variables that are functions of the probability of visiting a given frequency bin on a given hop and the hopping period. 
     To handle gain errors that can cause ADC saturation or underflow for more than one or two frames, a secondary gain adjustment mechanism is included in the AGC mechanism. The functional operator  290  labeled “Large Gain Error Detection &amp; OOR Low Error Detection” in  FIG. 1  performs a large gain error (LGE) handing technique that effectively adapts the AGC&#39;s loop bandwidth when large gain errors are detected. The LGE technique permits setting different thresholds for low or high gain errors—thus permitting the LGE attack and releases times to be set differently. For detecting a persistent ADC underflow caused by a demodulator input failure (i.e. receive chain fault), the input signal strength is continuously checked against a minimum signal level threshold set by the receiver&#39;s noise floor. This out of range (OOR) low fault is detected using the same period as the LGE detector, but also uses the current gain setting for the corresponding frequency bin in the detection. The Hop_Valid flag indicates an ISSI value corresponding to a hop in which the terminal expected a “valid hop” and is used to weight valid hops when determining a high large gain error condition exists, which resets the LGE low error counters for a used hop. 
     Due to the frequency selective nature of the AGC mechanism of the present invention, a method for determining the presence of a large narrow band interfering signal in the receive band is readily available. The AGC gross interference detection algorithm uses the maximum gain variation between any two frequency bins to detect the presence of such an interferer. When a gross interferer is detected, the AGC function reports a gross downlink interference fault with a center frequency estimate of the band in which the interferer lies. It may be noted that the accuracy of the gross interferer&#39;s center frequency is a function of the analog anti-aliasing filter being used and is accurate to approximately half the noise equivalent bandwidth of this filter. 
     Setting the AGC&#39;s Attack &amp; Release Times 
     The AGC release time T rls  and attack time T atk  are defined to be the time for the AGC loop in a given frequency bin to settle to within ±1 dB of final value after a step in input power in that bin of ±10 dB, respectively. It is intended that the AGC not track input signal variations due to scintillation; therefore, the AGC mean attack and release times need to be 10 times the max scintillation decorrelation time max(τ o ), thus allowing the AGC loop filter to ignore signal variations due to scintillation. To set the attack/release time the AGC loop&#39;s step response and mean time between observations must be determined. 
     AGC Loop Step Response 
     The AGC loop is shown in  FIG. 2  for a given frequency bin λ of a plurality of frequency bins such as the 32 bin gain profile of the present example shown in  FIG. 3 . Without a loss in generality, a new input at the m th  observation may be defined as P˜ in   (λ) (m)=P in   (λ)  (m)−LF opt  as shown in  FIG. 4 . This new input is simply a shifted version of P in   (λ) (m); thus, a ±10 dB step in P in   (λ)  (m) equates to a ±10 dB step in P˜ in   (λ) (m). The attack/release times then become the time for the gain error E gain   (λ) (m) to decay to ±1 dB after a step of ±10 dB step in P˜ in   (λ) (m). 
     From  FIG. 4 , it can be seen that the transfer function of the AGC loop is:
 
 H   AGC ( z )=( z   −1 −1)/(1 −z   −1   +K   p     —     Sz   −D )
 
     The step response is then:
 
 h   AGC   step ( m )= Z   −1 [−10/(1− z   −1   +K   p     —     Sz   −D )]
 
     where Z −1 [ ] denotes the inverse Z-transform. Calculating the inverse z-transform in the above expression analytically as a function of the loop delay D is not practical; instead the step response is numerically evaluated at several values of D. 
     Due to the frequency hopping nature of the downlink, the sample interval, or time between observations, T AGC , for a given frequency bin is random, so that the attack/release times are random. As described above, the objective is to set the mean attack/release time to be 10*max (τ o ). Thus, it is necessary to derive the expectation of T AGC . This is derived as set forth below. Assuming that every frequency hop word is equally likely, the probability p AGC     —     Bin  that a given hop equates to a particular frequency bin is p AGC     —     Bin = 1/32 for non-limiting example here. 
     The expectation E[T AGC ] is therefore defined as: 
     
       
         
           
             
               
                 
                   
                     E 
                     ⁡ 
                     
                       [ 
                       
                         T 
                         CAGC 
                       
                       ] 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         k 
                         = 
                         0 
                       
                       INFINITY 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       k 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         T 
                         hop 
                       
                       ⁢ 
                       
                         
                           
                             p 
                             
                               CAGC 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               bIN 
                             
                           
                           ⁡ 
                           
                             ( 
                             
                               1 
                               - 
                               
                                 p 
                                 
                                   CAGC 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   Bin 
                                 
                               
                             
                             ) 
                           
                         
                         
                           k 
                           - 
                           1 
                         
                       
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     
                       
                         
                           T 
                           HOP 
                         
                         ⁢ 
                         
                           p 
                           
                             CAGC 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             Bin 
                           
                         
                       
                       
                         ( 
                         
                           1 
                           - 
                           
                             p 
                             
                               CAGC 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               bIN 
                             
                           
                         
                         ) 
                       
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           0 
                         
                         INFINITY 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           k 
                           ⁡ 
                           
                             ( 
                             
                               1 
                               - 
                               
                                 P 
                                 
                                   CAGC 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   Bin 
                                 
                               
                             
                             ) 
                           
                         
                         k 
                       
                     
                   
                 
               
             
           
         
       
     
     where T hop  is the hopping interval. From pg 7, equation 0.231.2, of the textbook by Gradshteyn &amp; Ryzhik, entitled “Tables of Integrals, Series, and Products”, Academic Press, 1980, the above equation converts to: 
     
       
         
           
             
               
                 ∑ 
                 
                   k 
                   = 
                   0 
                 
                 infinity 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                   k 
                   ⁡ 
                   
                     ( 
                     
                       1 
                       - 
                       
                         p 
                         
                           CAGC 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           Bin 
                         
                       
                     
                     ) 
                   
                 
                 k 
               
             
             = 
             
               
                 1 
                 - 
                 
                   p 
                   
                     CAGC 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     Bin 
                   
                 
               
               
                 
                   ( 
                   
                     p 
                     
                       CAGC 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       Bin 
                     
                   
                   ) 
                 
                 2 
               
             
           
         
       
     
     Therefore, the expectation E[T AGC]  reduces to:
 
 E[T   AGC]   =T   hop   /p   AGC     —     Bin  
 
     The step response for the AGC in a given frequency bin is plotted in  FIGS. 5 and 6  for different values of K P     —   S and D as a function of time, normalized by T hop /max(τ o ). As expected, the step response follows an exponential decay for all possible values of D, so that the proportional gain parameter K p     —   S may be set as a function of desired attack/release time by the expression:
 
 K   p     —     S= 2.3* E[T   AGC ]/(10*max(τ o ))=2.3 *T   hop /(10* p   AGC     —     Bin *max(τ o ))
 
     It may be noted that the loop delay is limited by the collection/processing epoch of the present example to 32 hop interval. It can be expected that the DSP processing will take less than 32 hop intervals to complete; therefore, if every hop were to be in a given frequency bin, the delay could be as much as 2*32 or 64 hop intervals. 
     Large Gain Error Handling Thresholds and Period 
     The large gain error (LGE) handling function of the AGC mechanism of  FIG. 1  adapts the loop&#39;s attack/release time when gain errors that exceed the LGE_high_S and LGE_low_S thresholds. These are set to ±10 dB to handle gain errors that prevent the magnitude of the gain error from being greater than 1 dB for more than 10 times the max scintillation decorrelation time max(τ o ). To accomplish this, the gain in a frequency bin is adjusted in ±3 dB steps when a large gain error is “detected”. LGE detection is based on level crossings with the detection estimation period set by LGE_cnt_mod_S to be approximately two frame periods, in expectation. Each time the gain error exceeds the gain error threshold, the gain error count (high or low) for the corresponding frequency bin is incremented. If the ISSI measurement coincided with a hop that had a known valid hop, and exceeded the LGE high threshold, the LGE high count is incremented by 1 plus LGE_valid_hop_weight_S and the LGE low counts are reset to 0. Once the LGE high or low count for a frequency bin exceeds the LGE_error_cnt_low_max_S or LGE_error_cnt_high_max_S in a frequency bin, the bin&#39;s gain is adjusted by ±3 dB and the counts for that bin are reset. Every LGE_cnt_mod_S counts, all counters are reset if neither the LGE_error_cnt_low_max_S nor the LGE_error_cnt_high_max_S count is exceeded. 
     To disable either the LGE high or low handling algorithm, LGE_error_cnt_high_max_S or LGE_error_cnt_low_max_S, respectively, is set to a value greater than LGE_cnt_mod_S. 
     Out-of-Range Error Low Thresholds 
     The out-of-range (OOR) low detection function  290  is used to determine when the aggregate input is below acceptable levels. The threshold is used in conjunction by the LGE low detection algorithm, with OOR_Low_threshold_S threshold in-lieu of the LGE_low_S threshold for detecting the OOR low fault. 
     The OOR low threshold OOR_Low_threshold_S is set using the equation below. Note that the ±3 dB gain deviation includes both frequency dependent and non-frequency dependent gain variations due to installation/calibration errors, temperature, etc.
 
OOR_Low_threshold —   S =LF opt −min( N   o )−10 log 10 ( N   eq     —     BW )+3 dB
 
     The parameter min(N o ) is application specific. The noise equivalent bandwidth is designated as N eq     —   BW. The 3 dB factor is included to add margin against false alarms. 
     Interference Detection Algorithm 
     A gross interference detection algorithm is executed by gross interference detector  300 , which uses the peak-to-peak gain deviation among frequency bins, to determine if a high power interferer is present in the receive band and makes an estimate of the interferers center frequency.  FIG. 1  also shows time delays  310  and  320  that ensure time alignment of variables being processed, as well as an exponential operator to convert the log 10  format of the data into that for driving the variable gain stage  110 . The peak-to-peak gain deviation threshold CID_threshold_S is set at the maximum peak-to-peak frequency deviation, plus 3 dB. The peak-to-peak gain deviation in the gain profile is sampled several times a second, and if the deviation exceeds the threshold, a gross interferer detected fault is set and a frequency estimate is made by centroiding between the frequency bins with the minimum gain. The accuracy of the frequency estimate is dependent on the anti-aliasing filter used and is approximately equal to half of the noise equivalent bandwidth of the filter. 
     While we have shown and described an embodiment in accordance with the present invention, it is to be understood that the same is not limited thereto but is susceptible to numerous changes and modifications as known to a person skilled in the art, and we therefore do not wish to be limited to the details shown and described herein, but intend to cover all such changes and modifications as are obvious to one of ordinary skill in the art.