Patent Publication Number: US-9413567-B1

Title: Systems and methods for finite impulse response adaptation for gain and phase control

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 13/525,862, filed on Jun. 18, 2012, which claims priority to and benefit from U.S. Provisional Patent Application No. 61/507,524, filed on Jul. 13, 2011, entitled “FIR Adaptation for Gain and Timing Phase Control,” the entirety of which is incorporated herein by reference. 
     Additionally, this application is related to U.S. patent application Ser. No. 10/788,998, filed Feb. 27, 2004, now U.S. Pat. No. 7,505,537, the entirety of which is incorporated herein by reference. 
    
    
     FIELD 
     The technology described in this patent document relates generally to data processing, and more particularly to finite impulse response adaptation for data processing. 
     BACKGROUND 
     Finite impulse response (FIR) filters are widely used in various signal processing devices/circuits, such as read circuits for disk drives, Ethernet transceivers, communication devices, speech processing devices, adaptive noise cancellation devices, to filter an input signal to obtain an output signal with desired characteristics. 
       FIG. 1  illustrates a conventional FIR filter. The FIR filter  100  includes N−1 delay components,  102   1 ,  102   2 , . . . ,  102   N-1 , N multipliers,  104   1 ,  104   2 , . . . ,  104   N , and N−1 adders,  106   1 ,  106   2 , . . . ,  106   N-1 , where N is an integer. The N multipliers are associated with N coefficients (e.g., stage weights), C 0 , C 1 , . . . , C N-1 , respectively. In operation, the FIR filter  100  receives an input signal x[k]  101 , and generates an output signal y[k]  108 , as follows: 
     
       
         
           
             
               
                 
                   
                     y 
                     ⁡ 
                     
                       [ 
                       k 
                       ] 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         i 
                         = 
                         0 
                       
                       
                         N 
                         - 
                         1 
                       
                     
                     ⁢ 
                     
                       
                         C 
                         i 
                       
                       ⨯ 
                       
                         x 
                         ⁡ 
                         
                           [ 
                           
                             k 
                             - 
                             i 
                           
                           ] 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
     SUMMARY 
     In accordance with the teachings described herein, systems and methods are provided for signal processing. In one embodiment, a method is provided for signal processing using a finite impulse response filter circuit. An input signal is received at a finite impulse response filter circuit including a plurality of stages, where each stage of the plurality of stages is associated with a sample value of the input signal and a stage weight. An output signal is generated using the finite impulse response filter circuit, the output signal being equal to a weighted sum of the sample values of the input signal. An error signal is generated to indicate a difference between the output signal and a target. A constraint is applied to one or more of the stage weights. The plurality of stage weights are changed within the constraint to reduce a magnitude of the error signal. 
     In another embodiment, a system for signal processing includes a finite impulse response filter circuit and an adaptation component. The finite impulse response filter circuit includes a plurality of stages for filtering an input signal to generate an output signal, where each stage of the plurality of stages is associated with a sample value of the input signal and a stage weight, the output signal being equal to a weighted sum of the sample values of the input signal. The adaptation component configured to receive the error signal indicating a difference between the output signal and the target, apply a constraint to one or more of the stage weights, and change the stage weights within the constraint to reduce a magnitude of the error signal. 
     In yet another embodiment, an integrated circuit for signal processing includes a finite impulse response filter circuit and an adaptation circuit. The finite impulse response filter includes a plurality of stages for filtering an input signal to generate an output signal, where each stage of the plurality of stages is associated with a sample value of the input signal and a stage weight, the output signal being equal to a weighted sum of the sample values of the input signal. The adaptation circuit is configured to receive an error signal indicating a difference between the output signal and a target, apply a constraint to one or more of the plurality of stage weights, and change the stage weights within the constraint to reduce a magnitude of the error signal. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a conventional FIR filter. 
         FIG. 2  illustrates an example signal processing system with an adaptation engine. 
         FIG. 3  illustrates another example signal processing system with an adaptation engine. 
         FIG. 4  illustrates another example signal processing system with an adaptation engine. 
         FIG. 5  illustrates an example flow diagram depicting a method for signal processing using a finite impulse response filter circuit. 
         FIG. 6  illustrates another example flow diagram depicting a method for signal processing using a finite impulse response filter circuit. 
     
    
    
     DETAILED DESCRIPTION 
     In signal processing systems, a FIR filter is often included in an adaptive equalizer. Usually, a feedback loop provides an error signal to the adaptive equalizer to indicate a difference between the equalizer output and a desired output. The parameters of the equalizer (e.g., stage weights of the FIR filter) may be adjusted to minimize the difference between the equalizer output and a desired output so as to achieve an optimal frequency response. However, a signal processing system often includes a gain control loop and/or a phase control loop which can interfere with the feedback loop of the equalizer, and thus prevent the equalizer from converging to an optimal frequency response. For example, an equalizer may have a global optimal frequency response. When the parameters of the equalizer are changed to increase the gain of the output in order to reach the global optimal frequency response, the gain control loop may actually operate to decrease the gain of the output. Such conflicts may lead to loss of resolution and failure of components. In addition, if the parameters of the equalizer have been changed too far to compete with the gain control loop/the phase control loop, the equalizer may drift into a local optimal frequency response which is less desirable than the global optimal frequency response. Proper constraints are to be imposed on the equalizer (e.g., the FIR filter) so that the equalizer will not drift into undesirable states as a result of competing with the gain control loop and/or the phase control loop. One possible approach is to make certain stage weights of the FIR filter that affect the gain/phase of the equalizer output most significantly unadaptable while other stage weights can be adapted. However, such a constraint encounters problems when the stages with unadaptable stage weights become less dominant than some stages with adaptable stage weights over time. 
       FIG. 2  illustrates an example signal processing system with an adaptation engine. The signal processing system  200  includes an adaptation engine  202 , an equalizer  204 , a detector  206 , and an error generator  208 . The adaptation engine  202  adjusts the parameters of the equalizer  204  using an output  218  in order to reduce the magnitude of an error signal  216  which indicates a difference between an output signal  212  of the equalizer  204  and a desired output (e.g., a reconstructed signal  214 ). 
     In operation, the equalizer  204  that includes a FIR filter processes an input signal  210  and generates the output signal  212  to the detector  206  and the error generator  208 . The detector  206  detects the output signal  212  and outputs the reconstructed signal  214  to the error generator  208  which provides the error signal  216  to the adaptation engine  202  for adjusting the equalizer  204 . 
     In one embodiment, the adaptation engine  202  adjusts the parameters of the equalizer  204  using a fixed-stage-weight approach. The adaptation engine  202  initially sets the stage weights of one or more stages in the FIR filter as unadaptable, and sets stage weights of other stages in the FIR filter as adaptable. For example, the adaptation engine  202  selects the stages that affect the gain/phase of the FIR filter most significantly and fixes the stage weights of the selected stages. If one or more predetermined conditions are satisfied, the adaptation engine  202  keeps the same stage weights fixed. If the one or more predetermined conditions are not satisfied during operation, the adaptation engine  202  selects a different set of stages and fixes the stage weights of the different set of stages instead, while adapting the rest of the stage weights in the FIR filter. For example, the one or more predetermined conditions are satisfied when changes of the adaptable stage weights are within a predetermined range. In another example, the one or more predetermined conditions are satisfied when the phase change of the FIR filter calculated based on the stage weights of the FIR filter is within a predetermined range. 
     In another embodiment, the adaptation engine  202  adjusts the parameters of the equalizer  204  using a fixed-frequency-response approach. The adaptation engine  202  applies a constraint to the stage weights of the FIR filter in order to fix the frequency response of the FIR filter at a particular frequency. The adaptation engine  202  then changes the stage weights of the FIR filter within the constraint. For example, the constraint may be applied using a constraint matrix. In another example, the particular frequency may be a preamble frequency or a normalized frequency of 0.25. The normalized frequency is determined by dividing a frequency to be normalized by a sample frequency of the signal processing system  200 . The preamble frequency is related to a preamble field of a sector format overhead in a hard drive sector format design. The preamble field may include a known, periodic data pattern such as {1, 1, 0, 0}. A read circuit may rely on the known, periodic preamble pattern to establish a proper phase and gain for further data processing. The FIR frequency response of the known preamble pattern {1, 1, 0, 0} can be easily calculated. For example, the frequency response can be represented with two coefficients, such as C_cos and C_sin, where C_cos=(C 0 -C 2 +C 4 -C 6 + . . . ) and C_sin=(C 1 -C 3 +C 5 -C 7 + . . . ) Fixing the frequency response of the FIR filter at the preamble frequency may help stabilize the signal processing system  200 . 
     The signal processing system  200  or one or more components of the signal processing system  200  (e.g., the adaptation engine  202 ) may be implemented or fabricated in any hardware device, such as a data processor, central processing unit, an integrated circuit or other chip, an application-specific integrated circuit, a field programmable gate array, hard-wired circuit components, or other devices for data processing. 
       FIG. 3  illustrates another example signal processing system  300  with an adaptation engine  302 . The adaptation engine  302  receives an error signal  320  that indicates a difference between an output signal  322  of an equalizer  304  and a reconstructed signal  324  generated by a detector  306 . The adaptation engine  302  then uses the error signal  320  to adapt the equalizer  304  in order to reduce the magnitude of the error signal  320 . 
     In operation, the variable gain amplifier  310  receives an input signal  326 , and outputs an amplified signal  328  to the low pass filter  312  which generates a filtered signal  330 . The analog-to-digital converter (ADC) samples the filtered signal  330  and outputs a digital signal  332  to the equalizer  304  that includes a FIR filter. The detector  306  detects the output signal  322  of the equalizer  304  and generates the reconstructed signal  324  to the error generator  308  which compares the output signal  322  and the reconstructed signal  324 . The error signal  320  is used by the adaptation engine  302  to optimize the equalizer  304 . In addition, the adaptation engine  302  may adjust the gain of the variable gain amplifier  310  through the gain controller  316  so that the variable gain amplifier  310  does not compete with the equalizer  304 . Furthermore, the adaptation engine  302  may change the phase of the ADC  314  through the phase controller  318  so that the ADC  314  does not compete with the equalizer  304 . 
     Specifically, for adapting the equalizer  304 , the adaptation engine  302  may implement a least mean squares (LMS) algorithm which can be derived as follows. For example, a vector of the stage weights of a FIR filter that is included in the equalizer  304  can be represented as:
 
 C ( k )=[ c   0    c   1    . . . c   N-1 ] T   (2)
 
where C(k) represents a vector of stage weights at time k, and c 0 , c 1 , . . . , c N-1  represent stage weights. An error term at time k can be determined as follows:
 
 e   k   =y   k   −ŷ   k   (3)
 
where e k  represents the error term at time k, y k  represents the output signal  322  at time k, and ŷ k  represents the reconstructed signal  324  at time k. An input vector of the FIR filter can be represented as follows:
 
 X ( k )=[ x   k    x   k-1    . . . x   k-N ] T   (4)
 
where X(k) represents the input vector at time k, and x k  represents an input signal of the FIR filter at time k.
 
     A cost function can be determined as follows:
 
 E{|e   k | 2   }=E{|C ( k ) T    X ( k )− ŷ   k | 2 }  (5)
 
where, E{|e k | 2 } represents the cost function, and X(k) represents an input vector of the FIR filter at time k. For example, e k  and x k  align in terms of user data.
 
     The least mean squares (LMS) algorithm that may be used to update the stage weights of the FIR filter in the equalizer  304  is as follows: 
                     C   ⁡     (     k   +   1     )       =         C   ⁡     (   k   )       -         μ   2     ·       ∇       C   ⁡     (   k   )       T       ⁢   E       ⁢     {            e   k          2     }         =       C   ⁡     (   k   )       -       μ   ·   E     ⁢     {       e   k     ⁢     X   ⁡     (   k   )         }                   (   6   )               
where μ represents a programmable gain.
 
     A simplified unconstrained LMS adaptation can be determined as:
 
 C ( k+ 1)= C ( k )− u·e   k   X ( k )  (7)
 
     For simplification, e k =1 if (y k −ŷ k )&gt;=0. otherwise e k =−1. 
     When a linear constraint is applied to the stage weights of the FIR filter as follows:
 
 BC ( k )= BC (0)=ω  (8)
 
where B is a constraint matrix and ω is a constant, the LMS can be modified as follows:
 
 ( k+ 1)= C ( k )−μ· e   k   X ( k )  (9)
 
 C ( k+ 1)={tilde over ( C )}( k+ 1)+θ( K+ 1)  (10)
 
where a N×1 vector θ(k+1) is chosen such that BC(k+1)=BC(k)=ω and θ T  (K+1)θ(k+1) is minimized.
 
     The optimal solution of θ(K+1) can be determined using a method of Lagrange multiplier by minimizing the cost function: 
                         J   =       ⁢           θ   T     ⁡     (     K   +   1     )       ⁢     θ   ⁡     (     K   +   1     )         -     2   ⁢       λ   T     ⁡     [       B   ⁢           ⁢     C   ⁡     (     K   +   1     )         -   ω     ]                       =       ⁢           θ   T     ⁡     (     K   +   1     )       ⁢     θ   ⁡     (     K   +   1     )         -     2   ⁢       λ   T     ⁡     [       B   ⁢           ⁢     C   ⁡     (   K   )         -     βμ   ⁢           ⁢     e   k     ⁢     X   ⁡     (   k   )         +     B   ⁢           ⁢     θ   ⁡     (     k   +   1     )         -   ω     ]                       =       ⁢           θ   T     ⁡     (     K   +   1     )       ⁢     θ   ⁡     (     K   +   1     )         -     2   ⁢       λ   T     ⁡     [         -   B     ⁢           ⁢   μ   ⁢           ⁢     e   k     ⁢     X   ⁡     (   k   )         +     B   ⁢           ⁢     θ   ⁡     (     k   +   1     )           ]                         (   11   )               
where λ is a N×1 vector of Lagrange multiplier.
 
     Assuming 
                   ∂   J       ∂       θ   T     ⁡     (     k   +   1     )           =         2   ⁢     θ   ⁡     (     k   +   1     )         -     2   ⁢           ⁢     B   T     ⁢   λ       =   0       ,         
then θ(k+1) opt =B T λ. Consequently, the Lagrange cost function can be expressed as:
 
 J   θ(k+1)     opt   =−λ T   BB   T λ+2λ T   Bμe   k   X ( k )  (12)
 
     Assuming 
                   ⅆ     J       θ   ⁡     (     k   +   1     )       opt           ⅆ           ⁢     λ   T         =           -   2     ⁢           ⁢   B   ⁢           ⁢     B   T     ⁢   λ     +     2   ⁢           ⁢   B   ⁢           ⁢   μ   ⁢           ⁢     e   k     ⁢     X   ⁡     (   k   )           =   0       ,         
then λ=μe k (BB T ) −1 BX(k). Thus,
 
θ( k+ 1) opt   =μe   k   B   T ( BB   T ) −1   BX ( k )  (13)
 
     A generic equation for the linear constrained LMS is given as follows: 
                           C   ⁡     (     k   +   1     )       =       ⁢       C   ⁡     (   k   )       -       μ   ·     e   k       ⁢     X   ⁡     (   k   )         +     μ   ⁢           ⁢     e   k     ⁢         B   T     ⁡     (     B   ⁢           ⁢     B   T       )         -   1       ⁢   B   ⁢           ⁢     X   ⁡     (   k   )                       =       ⁢       C   ⁡     (   k   )       +       μ   ·       e   k     ⁡     (       -   I     +       B   #     ⁢   B       )         ⁢     X   ⁡     (   k   )                         (   14   )               
where B # =B T (BB T ) −1 .
 
     Any constrained LMS can be implemented by designing a proper transform matrix
 
 M =(− I+B   #   B )  (15)
 
     As an example, the FIR filter included in the equalizer  304  has ten stages where each stage has a stage weight. In one embodiment, the adaptation engine  302  may adapt the stage weights of the FIR filter in the equalizer  304  using a fixed-stage-weight approach. The adaptation engine  302  may initially select two stages, e.g., a fourth stage and a fifth stage, and set the stage weights of these two stages as unadaptable. During operation, the adaptation engine  302  may keep the same stage weights fixed if one or more predetermined conditions are satisfied. If the predetermined conditions are not satisfied, the adaptation engine  302  selects a different set of stages, e.g., the fifth stage and a sixth stage, and sets the corresponding stage weights as unadaptable. For example, an LMS algorithm for keeping the fourth stage and the fifth stage unadaptable is as follows: 
     
       
         
           
             
               
                 
                   
                     C 
                     ⁡ 
                     
                       ( 
                       
                         k 
                         + 
                         1 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       C 
                       ⁡ 
                       
                         ( 
                         k 
                         ) 
                       
                     
                     - 
                     
                       
                         μ 
                         · 
                         
                           e 
                           k 
                         
                       
                       ⁢ 
                       
                         X 
                         ⁡ 
                         
                           ( 
                           k 
                           ) 
                         
                       
                     
                     + 
                     
                       μ 
                       · 
                       
                         
                           e 
                           k 
                         
                         ⁡ 
                         
                           ( 
                           
                             [ 
                             
                               
                                 
                                   
                                     0 
                                     
                                       3 
                                       × 
                                       1 
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     x 
                                     
                                       k 
                                       - 
                                       3 
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     x 
                                     
                                       k 
                                       - 
                                       4 
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     0 
                                     
                                       5 
                                       × 
                                       1 
                                     
                                   
                                 
                               
                             
                             ] 
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   16 
                   ) 
                 
               
             
           
         
       
     
     It corresponds to a constraint matrix 
             B   =       [         0       0       0       1       0       0       0       0       0       0           0       0       0       0       1       0       0       0       0       0         ]     .           
Further, the LMS algorithm for keeping the fifth stage and the sixth stage unadaptable is as follows:
 
     
       
         
           
             
               
                 
                   
                     C 
                     ⁡ 
                     
                       ( 
                       
                         k 
                         + 
                         1 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       C 
                       ⁡ 
                       
                         ( 
                         k 
                         ) 
                       
                     
                     - 
                     
                       
                         μ 
                         · 
                         
                           e 
                           k 
                         
                       
                       ⁢ 
                       
                         X 
                         ⁡ 
                         
                           ( 
                           k 
                           ) 
                         
                       
                     
                     + 
                     
                       μ 
                       · 
                       
                         
                           e 
                           k 
                         
                         ⁡ 
                         
                           ( 
                           
                             [ 
                             
                               
                                 
                                   
                                     0 
                                     
                                       4 
                                       × 
                                       1 
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     x 
                                     
                                       k 
                                       - 
                                       4 
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     x 
                                     
                                       k 
                                       - 
                                       5 
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     0 
                                     
                                       4 
                                       × 
                                       1 
                                     
                                   
                                 
                               
                             
                             ] 
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   17 
                   ) 
                 
               
             
           
         
       
     
     It corresponds to a constraint matrix 
     
       
         
           
             B 
             = 
             
               
                 [ 
                 
                   
                     
                       0 
                     
                     
                       0 
                     
                     
                       0 
                     
                     
                       0 
                     
                     
                       0 
                     
                     
                       1 
                     
                     
                       0 
                     
                     
                       0 
                     
                     
                       0 
                     
                     
                       0 
                     
                   
                   
                     
                       0 
                     
                     
                       0 
                     
                     
                       0 
                     
                     
                       0 
                     
                     
                       1 
                     
                     
                       0 
                     
                     
                       0 
                     
                     
                       0 
                     
                     
                       0 
                     
                     
                       0 
                     
                   
                 
                 ] 
               
               . 
             
           
         
       
     
     For example, when the adaptation engine  302  changes the adaptable stage weights during operation in order to achieve optimal frequency response, the predetermined conditions are satisfied if changes of stage weights are within a predetermined range or if the phase change of the equalizer  304  is within a predetermined range. When the number of stage weights of which the changes exceed the predetermined range is below a threshold, the adaptation engine  302  may simply discard such changes and continue to operate without selecting a different set of stages to be fixed. When the number of stage weights of which the changes exceed the predetermined range is above the threshold, the adaptation engine  302  may select a different set of stages and sets the stage weights of the newly selected stages as unadaptable. 
     The adaptation engine  302  may monitor the phase change of the equalizer  304  and switch to a different set of unadaptable stage weights when the phase change of the equalizer  304  exceeds a threshold. As an example, at a time k,
 
 P   4T ( k )=arctan( C   o ( k )/ C   e ( k ))
 
 P   4T (k)− P   4T   _ ref|&lt;Phase4 T Drift_Bound  (18)
 
where P 4T (k) represents a phase change at the 4T frequency, C o (k) represents a sine component of the FIR filter at the 2T frequency, and C e (k) represents a cosine component of the FIR filter at the 2T frequency. In addition, P 4T   _   ref  represents a reference phase at a frequency 1/(4T), and Phase4TDrift_Bound represents the bound for phase change at the 4T frequency. For example, if the adaptation engine  302  switches to a different set of unadaptable stage weights, P 4T   _   ref  may be set to P 4T (k). Further, the adaptation engine  302  may not switch to a different set of unadaptable stage weights, even though the predetermined conditions are violated, until a predetermined time period has passed since the last switching.
 
     In another embodiment, the adaptation engine  302  may adapt the FIR filter in the equalizer  304  using a fixed-frequency-response approach. For example, the adaptation engine  302  selects a constraint matrix 
             B   =     [         1       0         -   1         0       1       0         -   1         0       1       0           0       1       0         -   1         0       1       0         -   1         0       1         ]           
to prevent changes in a cosine component and a sine component of the FIR filter at the 2T frequency during the adaptation of stage weights of the FIR filter. The cosine component and the sine component of the FIR filter at the 2T frequency can be determined as follows:
 
 c   e ( k )= c   0   −c   2   +c   4   −c   6   +c   8   =c   e (0)
 
 c   o ( k )= c   1   −c   3   +c   5   −c   7   +c   9   =c   o (0)  (19)
 
Where c o (k) represents a sine component of the FIR filter at the 2T frequency, and c o (k) represents a cosine component of the FIR filter at the 2T frequency. Thus, the magnitude and phase of the FIR filter at the 2T frequency do not change during the adaptation of stage weights. Based on the constraint matrix, the following equation can be obtained:
 
                       B   #     ⁢   B     =     0.2   ⋆     [         B             -   B             B             -   B             B         ]               (   20   )               
If a function Φ(k) is defined as follows:
 
                       Φ   ⁡     (   k   )       ≡     BX   ⁡     (   k   )       ≡     [           ϕ   k               ϕ     k   -   1             ]       =     [             x   k     -     x     k   -   2       +     x     k   -   4       -     x     k   -   6       +     x     k   -   8                     x     k   -   1       -     x     k   -   3       +     x     k   -   5       -     x     k   -   7       +     x     k   -   9               ]             (   21   )               
then, the LMS algorithm for the fixed-frequency-response approach is determined as:
 
     
       
         
           
             
               
                 
                   
                     C 
                     ⁡ 
                     
                       ( 
                       
                         k 
                         + 
                         1 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                         C 
                         ⁡ 
                         
                           ( 
                           k 
                           ) 
                         
                       
                       - 
                       
                         
                           μ 
                           · 
                           
                             e 
                             k 
                           
                         
                         ⁢ 
                         
                           X 
                           ⁡ 
                           
                             ( 
                             k 
                             ) 
                           
                         
                       
                       + 
                       
                         
                           μ 
                           · 
                           
                             e 
                             k 
                           
                         
                         ⁢ 
                         
                           B 
                           # 
                         
                         ⁢ 
                         
                           BX 
                           ⁡ 
                           
                             ( 
                             k 
                             ) 
                           
                         
                       
                     
                     = 
                     
                       
                         C 
                         ⁡ 
                         
                           ( 
                           k 
                           ) 
                         
                       
                       - 
                       
                         
                           μ 
                           · 
                           
                             e 
                             k 
                           
                         
                         ⁢ 
                         
                           X 
                           ⁡ 
                           
                             ( 
                             k 
                             ) 
                           
                         
                       
                       + 
                       
                         
                           μ 
                           5 
                         
                         · 
                         
                           
                             e 
                             k 
                           
                           ⁡ 
                           
                             [ 
                             
                               
                                 
                                   
                                     Φ 
                                     ⁡ 
                                     
                                       ( 
                                       k 
                                       ) 
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     - 
                                     
                                       Φ 
                                       ⁡ 
                                       
                                         ( 
                                         k 
                                         ) 
                                       
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     Φ 
                                     ⁡ 
                                     
                                       ( 
                                       k 
                                       ) 
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     - 
                                     
                                       Φ 
                                       ⁡ 
                                       
                                         ( 
                                         k 
                                         ) 
                                       
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     Φ 
                                     ⁡ 
                                     
                                       ( 
                                       k 
                                       ) 
                                     
                                   
                                 
                               
                             
                             ] 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   22 
                   ) 
                 
               
             
           
         
       
     
     A simplified form of the LMS algorithm for the fixed-frequency-response approach is as follows: 
                     C   ⁡     (     k   +   1     )       =       C   ⁡     (   k   )       -         μ   ′     ·     e   k       ⁢   5   ⁢           ⁢     X   ⁡     (   k   )         +       μ   ′     ·       e   k     ⁡     [           Φ   ⁡     (   k   )                 -     Φ   ⁡     (   k   )                   Φ   ⁡     (   k   )                 -     Φ   ⁡     (   k   )                   Φ   ⁡     (   k   )             ]                   (   23   )               
where
 
     
       
         
           
             
               μ 
               ′ 
             
             ≈ 
             
               
                 μ 
                 5 
               
               . 
             
           
         
       
     
       FIG. 4  illustrates another example signal processing system with an adaptation engine. The signal processing system  400  implements a supplemental FIR filter  426  (e.g., a 3-tap FIR) to adjust a variable gain amplifier  410  and an ADC  414  so that the variable gain amplifier  410  and the ADC  414  do not compete with an adaptation engine  402 . 
     In operation, the variable gain amplifier  410  receives an input signal  440 , and outputs an amplified signal  442  to a low pass filter  412  which generates a filtered signal  446 . The ADC  414  samples the filtered signal  446  and outputs a digital signal  448  to the equalizer  404  that includes a primary FIR filter. The equalizer  404  outputs an equalized signal  432  which is corrected by a baseline corrector  422  and detected by a detector  428 . A reconstruction filter  420  provides a reconstructed signal  434  to an error generator  408  which compares a corrected signal  436  from the baseline corrector  422  and the reconstructed signal  434  and generates an error signal  430 . The adaptation engine  402  adjusts the equalizer  404  to reduce the magnitude of the error signal  430 . In addition, the adaptation engine  402  outputs a signal  450  to the supplemental FIR filter  426  which affects a gain controller  416  and a phase controller  418  so that the variable gain amplifier  410  and the ADC  414  do not compete with the equalizer  404 . 
     In one embodiment, the primary FIR filter in the equalizer  404  dictates the gain and the phase of the output of the system  400 , while the supplemental FIR filter affects the variable gain amplifier  410  and the ADC  414  so that the gain and/or the phase of the output  432  converge to the gain and phase dictated by the primary FIR filter. For example, the supplemental FIR filter  426  includes three stages which have adaptable stage weights (−a, 1+b, a) respectively, where “l+b” mainly affects the gain of the output  452  and “−a” and “a” mainly affect the phase of an output  452 . The output  452  is received by an error generator  424 . When the primary FIR filter in the equalizer  404  cannot operate to decrease the gain of the output  432  of the equalizer  404  because of certain imposed constraints, the adaptation engine  402  adjusts the supplemental FIR filter  426  so that the variable gain amplifier  410  can operate to decrease the gain of the output  432 . For example, the second stage weight, 1+b, of the supplemental FIR filter  426  may become larger than 1 (i.e., b&gt;0), and thus the amplitude of the output signal  452  is increased (e.g., to 1+b times of the original output signal  452 ). In response, the gain controller  416  detects a gain larger than needed and thus may affect the variable gain amplifier  410  to decrease the gain. Similarly, if the primary FIR filter cannot operate to change the phase of the output of the equalizer  404  because of certain imposed constraints, the adaptation engine  402  may adjust the stage weights of the supplemental FIR filter  426  so that the phase controller  418  can operate to change the phase. 
     For example, the amplitude and the phase of the output  432  of the equalizer  404  at the preamble frequency can be determined as follows:
 
 A   2T =√{square root over ( c   e   2   +c   o   2 )}  (24)
 
θ 2T =tan −1 ( c   o   /c   e )  (25)
 
where A 2T  represents the amplitude of the output signal  432  at the preamble frequency, θ 2T  represents the phase of the output signal  432  at the preamble frequency, c o  represents a sine component of the primary FIR filter in the equalizer  404  at the preamble frequency, and c e  represents a cosine component of the primary FIR filter at the preamble frequency.
 
     When c e  and c o  change, the amplitude and the phase of the output signal  432  change as follows: 
     
       
         
           
             
               
                 
                   
                     ∂ 
                     
                         
                     
                     ⁢ 
                     
                       A 
                       
                         2 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         T 
                       
                     
                   
                   = 
                   
                     
                       
                         
                           
                             ∂ 
                             
                               A 
                               
                                 2 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 T 
                               
                             
                           
                           
                             ∂ 
                             
                               c 
                               e 
                             
                           
                         
                         ⁢ 
                         
                           ∂ 
                           
                             c 
                             e 
                           
                         
                       
                       + 
                       
                         
                           
                             ∂ 
                             
                               A 
                               
                                 2 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 T 
                               
                             
                           
                           
                             ∂ 
                             
                               c 
                               o 
                             
                           
                         
                         ⁢ 
                         
                           ∂ 
                           
                             c 
                             o 
                           
                         
                       
                     
                     = 
                     
                       
                         1 
                         
                           
                             
                               c 
                               e 
                               2 
                             
                             + 
                             
                               c 
                               o 
                               2 
                             
                           
                         
                       
                       ⁢ 
                       
                         ( 
                         
                           
                             
                               c 
                               e 
                             
                             ⁢ 
                             
                               ∂ 
                               
                                 c 
                                 e 
                               
                             
                           
                           + 
                           
                             
                               c 
                               o 
                             
                             ⁢ 
                             
                               ∂ 
                               
                                 c 
                                 o 
                               
                             
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   26 
                   ) 
                 
               
             
           
         
       
     
     
       
         
           
             
               
                 
                   
                     ∂ 
                     
                       θ 
                       
                         2 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         T 
                       
                     
                   
                   = 
                   
                     
                       
                         
                           
                             ∂ 
                             
                               θ 
                               
                                 2 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 T 
                               
                             
                           
                           
                             ∂ 
                             
                               c 
                               e 
                             
                           
                         
                         ⁢ 
                         
                           ∂ 
                           
                             c 
                             e 
                           
                         
                       
                       + 
                       
                         
                           
                             ∂ 
                             
                               θ 
                               
                                 2 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 T 
                               
                             
                           
                           
                             ∂ 
                             
                               c 
                               o 
                             
                           
                         
                         ⁢ 
                         
                           ∂ 
                           
                             c 
                             o 
                           
                         
                       
                     
                     = 
                     
                       
                         
                           1 
                           
                             1 
                             + 
                             
                               
                                 ( 
                                 
                                   
                                     c 
                                     o 
                                   
                                   
                                     c 
                                     e 
                                   
                                 
                                 ) 
                               
                               2 
                             
                           
                         
                         ⁢ 
                         
                           
                             c 
                             o 
                           
                           
                             c 
                             e 
                             2 
                           
                         
                         ⁢ 
                         
                           ∂ 
                           
                             c 
                             e 
                           
                         
                       
                       + 
                       
                         
                           1 
                           
                             1 
                             + 
                             
                               
                                 ( 
                                 
                                   
                                     c 
                                     o 
                                   
                                   
                                     c 
                                     e 
                                   
                                 
                                 ) 
                               
                               2 
                             
                           
                         
                         ⁢ 
                         
                           
                             c 
                             e 
                           
                           
                             c 
                             e 
                             2 
                           
                         
                         ⁢ 
                         
                           ∂ 
                           
                             c 
                             o 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   27 
                   ) 
                 
               
             
           
         
       
     
     In summary,
 
∂ A   2T   ∝c   e   ∂c   e   +c   o   ∂c   o  
 
∂θ 2T   ∝−c   o   ∂c   e   +c   e   ∂c   o   (28)
 
     As an example, the supplemental FIR filter  426  is a three-stage FIR filter which has stage weights as follows:
 
 F   3t =(− a, 1+ b,a )
 
 b ( k+ 1)= b ( k )−∂ A   2T  
 
 a ( k+ 1)= a ( k )−∂θ 2T   (29)
 
∂ A   2T   =A   2T   _   LMS   −A   2T   _   constrained   _   LMS   ≈c   e   ∂c   e   +c   o   ∂c   o  
 
∂θ 2T   _   LMS −θ 2T   _   constrained   _   LMS   ≈−c   o   ∂c   e   +c   e   ∂c   o .
 
where
 
∂ c   e   =c   e   _   LMS   −c   e   _   constrained   _   LMS  
 
∂ c   o   =c   o   _   LMS   −c   o   _   constrained   _   LMS  
 
     The variable gain amplifier  410  and the ADC  414  may be affected by an error term e=ŷ−F 3tap y. Then, if the primary FIR filter in the equalizer  404  cannot operate to change the gain or the phase of the output  432  because of the imposed constraints, the supplemental FIR filter  426  would change its output  452  so that the variable gain amplifier  410  or the ADC  414  can be adjusted to change the gain or the phase of the output respectively. 
     It is noted that C LMS (k+1)−C Constrained LMS (k+1)=Δ, where Δ=−μe k B # BX(k). Thus, if the primary FIR filter in the equalizer  404  is adjusted using a fixed-stage-weight approach, then 
                     ∂       c   e     ⁡     (   k   )         =       -   μ     ⁢           ⁢     e   k     ⁢       ∑     n   =   0     4     ⁢           ⁢         (     -   1     )     n     ⁢   FIR_COEFF   ⁢     _MASK   ⁡     [     2   ⁢           ⁢   n     ]       ⁢     x     k   -     2   ⁢   n                       (   30   )                 ∂       c   o     ⁡     (   k   )         =       -   μ     ⁢           ⁢     e   k     ⁢       ∑     n   =   0     4     ⁢           ⁢         (     -   1     )     n     ⁢   FIR_COEFF   ⁢     _MASK   ⁡     [     1   +     2   ⁢           ⁢   n       ]       ⁢     x     k   -   1   -     2   ⁢           ⁢   n                                       
where FIR_COEFF_MASK is 1 for unadaptable stages and 0 for adaptable stages.
 
     If the primary FIR filter in the equalizer  404  is adapted using a fixed-frequency-response approach, then
 
∂ c   e ( k )=−μ e   k φ k  
 
∂ c   o ( k )=−μ e   k φ k-1   (31)
 
     As such, the supplemental FIR filter  426  may implement an algorithm as follows: 
                     b   ⁡     (     k   +   1     )       =       b   ⁡     (   k   )       +     μ   ⁢           ⁢       e   k     ·     [             c   e     ⁡     (   k   )               c   o     ⁡     (   k   )             ]     ·     [             r     c   ⁢           ⁢   os   ⁢           ⁢   4   ⁢           ⁢   T       ⁡     (   k   )                   r     si   ⁢           ⁢   n   ⁢           ⁢   4   ⁢           ⁢   T       ⁡     (   k   )             ]                   (   32   )                 a   ⁡     (     k   +   1     )       =       a   ⁡     (   k   )       -     μ   ⁢           ⁢       e   k     ·     [             c   e     ⁡     (   k   )               c   o     ⁡     (   k   )             ]     ·     [           -       r     si   ⁢           ⁢   n   ⁢           ⁢   4   ⁢           ⁢   T       ⁡     (   k   )                     r     co   ⁢           ⁢   s   ⁢           ⁢   4   ⁢           ⁢   T       ⁡     (   k   )             ]                                   
where r cos 4T (k) and r sin 4T (k) are parameters related to particular constraints. If the primary FIR filter is adjusted using the fixed-stage-weight approach, then
 
                       r     co   ⁢           ⁢   s   ⁢           ⁢   4   ⁢           ⁢   T       ⁡     (   k   )       =       ∑     n   =   0     4     ⁢           ⁢         (     -   1     )     n     ⁢   D_FIR   ⁢   _COEFF   ⁢     _MASK   ⁡     [     2   ⁢           ⁢   n     ]       ⁢     x     k   -     2   ⁢           ⁢   n                     (   33   )                   r     s   ⁢           ⁢   i   ⁢           ⁢   n   ⁢           ⁢   4   ⁢           ⁢   T       ⁡     (   k   )       =       ∑     n   =   0     4     ⁢           ⁢         (     -   1     )     n     ⁢   D_FIR   ⁢   _COEFF   ⁢     _MASK   ⁡     [     1   +     2   ⁢           ⁢   n       ]       ⁢     x     k   -   1   -     2   ⁢           ⁢   n                                     
On the other hand, if the primary FIR filter is adapted using the fixed-frequency-response approach, then
 
 r   cos 4T ( k )=φ k  
 
 r   sin 4T ( k )=φ k-1   (34)
 
       FIG. 5  illustrates an example flow diagram  500  depicting a method for signal processing using a finite impulse response filter circuit. At  502 , an input signal is received at a finite impulse response filter circuit. The finite impulse response filter circuit includes a plurality of stages, where each stage of the plurality of stages is associated with a sample value of the input signal and a stage weight. At  504 , an output signal is generated using the finite impulse response filter circuit, the output signal being equal to a weighted sum of the sample values of the input signal. At  506 , an error signal is generated that indicates a difference between the output signal and a target. At  508 , a determination is made with respect to whether a predetermined condition is satisfied. At  510 , when the predetermined condition is satisfied, one or more first stage weights among the stage weights are kept unchanged. Then, at  512 , the stage weights, except the first stage weights, are changed to reduce a magnitude of the error signal. On the other hand, at  514 , when the predetermined condition is not satisfied, the one or more second stage weights among the stage weights are kept unchanged, at least one second stage weight being different from the first stage weights. Then, at  516 , the stage weights, except the second stage weights, are changed to reduce a magnitude of the error signal. 
       FIG. 6  illustrates another example flow diagram depicting a method for signal processing using a finite impulse response filter circuit. At  602 , an input signal is received at a finite impulse response filter circuit. The finite impulse response filter circuit includes a plurality of stages, where each stage of the plurality of stages is associated with a sample value of the input signal and a stage weight. At  604 , an output signal is generated using the finite impulse response filter circuit, the output signal being equal to a weighted sum of the sample values of the input signal. At  606 , an error signal is generated that indicates a difference between the output signal and a target. At  608 , a constraint is applied to the stage weights to keep a frequency response of the finite impulse response circuit unchanged at a particular frequency. At  610 , the stage weights are changed within the constraint to reduce a magnitude of the error signal. 
     This written description uses examples to disclose the invention, include the best mode, and also to enable a person skilled in the art to make and use the invention. The patentable scope of the invention may include other examples that occur to those skilled in the art. 
     For example, the systems and methods described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein. In another example, the systems and methods described herein may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer&#39;s hard drive, etc.) that contain instructions (e.g., software) for use in execution by a processor to perform the methods&#39; operations and implement the systems described herein.