Patent Publication Number: US-8996597-B2

Title: Nyquist constrained digital finite impulse response filter

Description:
BACKGROUND 
     Filters are commonly used in electronic systems such as signal processing and data processing circuits to remove noise from a data signal. A digital finite impulse response (DFIR) filter applies a mathematical operation to a digital data stream to achieve any of a wide range of desired frequency responses. As illustrated in  FIG. 1 , a DFIR filter  100  passes an input  102  through a series of delay elements  104 ,  106  and  110 , multiplying the delayed signals by filter coefficients or tap weights  112 ,  114 ,  116  and  120 , and summing the results to yield a filtered output  122 . The outputs  130 ,  140  and  150  of each delay element  104 ,  106  and  110  and the input  102  form a tapped delay line and are referred to as taps. The number of delay elements  104 ,  106  and  110 , and thus the number of taps  102 ,  130 ,  140  and  150  (also referred to as the order or length of the DFIR filter  100 ) may be increased to more finely tune the frequency response, but at the cost of increasing complexity. The DFIR filter  100  implements a filtering equation such as Y[n]=F 0 X[n]+F 1 X[n−1]+F 2 X[n−2]+F 3 X[n−3] for the three-delay filter illustrated in  FIG. 1 , or more generally Y[n]=F 0 X[n]+F 1 X[n−1]+F 2 X[n−2]+ . . . +F 3 X[n−L], where X[n] is the current input  102 , the value subtracted from n represents the index or delay applied to each term, F i  are the tap weights  112 ,  114 ,  116  and  120 , Y[n] is the output  122  and L is the filter order. The input  102  is multiplied by tap weight  112  in a multiplier  124 , yielding a first output term  126 . The second tap  130  is multiplied by tap weight  114  in multiplier  132 , yielding a second output term  134 , which is combined with first output term  126  in an adder  136  to yield a first sum  148 . The third tap  140  is multiplied by tap weight  116  in multiplier  142 , yielding a third output term  144 , which is combined with first sum  148  in adder  146  to yield a second sum  158 . The fourth tap  150  is multiplied by tap weight  120  in multiplier  152 , yielding a fourth output term  154 , which is combined with second sum  158  in adder  156  to yield output  122 . By changing the tap weights  112 ,  114 ,  116  and  120 , the filtering applied to the input  102  by the DFIR filter  100  is adjusted to select the desired pass frequencies and stop frequencies. 
     In a data processing circuit, an analog to digital converter (ADC) is often used upstream of a DFIR filter to convert an analog signal to a digital signal that may be filtered in the DFIR filter and otherwise processed in other circuits. The sampling phase of the ADC may be selected or varied to meet any of a number of objectives in the data processing circuit, for example to minimize bit errors. However, DFIR filters may be sensitive to the selection of the ADC sampling phase, yielding various frequency responses to different ADC sampling phases. Adjusting the ADC sampling phase based on the frequency response of the DFIR filter may further complicate the meeting of other objectives of the data processing circuit related to the ADC sampling phase, as well as being time consuming. 
     Thus, for at least the aforementioned reason, there exists a need in the art for reducing DFIR filter sensitivity to ADC sampling phase. 
     BRIEF SUMMARY 
     Various embodiments of the present invention provide apparatuses and methods for filtering a digital signal with a Nyquist constrained digital finite impulse response filter. For example, an apparatus for filtering digital data is disclosed that includes a digital finite impulse response filter having a plurality of taps. The apparatus also includes a tap weight controller connected to the digital finite impulse response filter, operable to adjust a tap weight for each of a subset of the taps such that a magnitude of a Nyquist response of the digital finite impulse response filter remains within a constraint range. In some cases, the Nyquist response is calculated as the sum of the tap weights for the even taps minus the tap weights for the odd taps. 
     In some cases, the tap weight controller is operable to calculate a tap weight offset to adjust the tap weight for each of the subset of the plurality of taps, whether the subset includes all taps for the digital finite impulse response filter or excludes some taps, such as the tap with the largest tap weight. In various cases, when the magnitude of the Nyquist response is less than a lower boundary of the range, the tap weight offset is calculated as the sign of the Nyquist response multiplied by a difference between the lower boundary of the range and the Nyquist response, divided by a number of taps in the subset of the plurality of taps, and when the magnitude of the Nyquist response is greater than an upper boundary of the range, the tap weight offset is calculated as the sign of the Nyquist response multiplied by a difference between the upper boundary of the range and the Nyquist response, divided by the number of taps in the subset of the plurality of taps. In some cases, the tap weight offset is added to the tap weight of even taps and subtracted from the tap weight of odd taps. 
     In some instances of the aforementioned embodiments, the apparatus includes an analog to digital converter with a variable sampling phase connected to an input of the digital finite impulse response filter. The frequency response sensitivity of the digital finite impulse response filter to the variable sampling phase of the analog to digital converter is reduced by adjusting the tap weights. 
     Other embodiments of the present invention provide methods for filtering a signal. The methods include providing a digital finite impulse response filter having a plurality of tap weight inputs and a tap weight controller connected to the digital finite impulse response filter. The methods also include using the tap weight controller to calculate the Nyquist response of the digital finite impulse response filter based on at least some of the plurality of tap weight inputs, determining whether the magnitude of the Nyquist response of the digital finite impulse response filter is outside of a Nyquist constraint range, and if so, calculating a tap weight offset and applying the tap weight offset to the at least some of the tap weight inputs. 
     This summary provides only a general outline of some embodiments according to the present invention. Many other objects, features, advantages and other embodiments of the present invention will become more fully apparent from the following detailed description, the appended claims and the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A further understanding of the various embodiments of the present invention may be realized by reference to the figures which are described in remaining portions of the specification. In the figures, like reference numerals may be used throughout several drawings to refer to similar components. 
         FIG. 1  depicts a prior art DFIR filter; 
         FIG. 2  depicts a Nyquist constrained DFIR filter and ADC in accordance with some embodiments of the present invention; 
         FIG. 3  depicts a read channel circuit for a storage system or wireless communication system that includes a Nyquist constrained DFIR filter in accordance with some embodiments of the present invention; 
         FIG. 4A  is a plot of bit error rate versus ADC sampling phase in a read channel circuit with a DFIR filter in accordance with some embodiments of the present invention with Nyquist constraint disabled; 
         FIG. 4B  is a plot of DFIR filter frequency response as a function of frequency normalized to the ADC sampling frequency in a read channel circuit with a DFIR filter in accordance with some embodiments of the present invention with Nyquist constraint disabled; 
         FIG. 5A  is a plot of bit error rate versus ADC sampling phase in a read channel circuit with a DFIR filter in accordance with some embodiments of the present invention with Nyquist constraint enabled; 
         FIG. 5B  is a plot of DFIR filter frequency response as a function of frequency normalized to the ADC sampling frequency in a read channel circuit with a DFIR filter in accordance with some embodiments of the present invention with Nyquist constraint enabled; 
         FIG. 6  is a flow diagram illustrating a method for setting tap weights for a DFIR filter in accordance with some embodiments of the present invention; 
         FIG. 7  depicts a storage system including a read channel circuit with a Nyquist constrained DFIR filter in accordance with some embodiments of the present invention; and 
         FIG. 8  depicts a wireless communication system including a receiver with a Nyquist constrained DFIR filter in accordance with some embodiments of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Various embodiments of the present invention are related to apparatuses and methods for filtering a digital signal, and more particularly to a Nyquist constrained DFIR filter. Various embodiments of the present invention constrain the magnitude of the Nyquist response of a DFIR filter to remain within a Nyquist constraint range. When the magnitude of the Nyquist response remains within the range, the sensitivity of the DFIR filter to an upstream ADC sampling phase is greatly reduced. The Nyquist response and the magnitude of the Nyquist response of the DFIR filter at time k are represented by S and by |S|, respectively, and are defined herein by Equations 1 and 2: 
     
       
         
           
             
               
                 
                   S 
                   = 
                   
                     
                       ∑ 
                       i 
                       
                           
                       
                     
                     ⁢ 
                     
                       ( 
                       
                         
                           f 
                           
                             
                               2 
                               ⁢ 
                               i 
                             
                             , 
                             k 
                           
                         
                         - 
                         
                           f 
                           
                             
                               
                                 2 
                                 ⁢ 
                                 i 
                               
                               + 
                               1 
                             
                             , 
                             k 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   Equation 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   1 
                 
               
             
             
               
                 
                   
                      
                     S 
                      
                   
                   = 
                   
                      
                     
                       
                         ∑ 
                         i 
                         
                             
                         
                       
                       ⁢ 
                       
                         ( 
                         
                           
                             f 
                             
                               
                                 2 
                                 ⁢ 
                                 i 
                               
                               , 
                               k 
                             
                           
                           - 
                           
                             f 
                             
                               
                                 
                                   2 
                                   ⁢ 
                                   i 
                                 
                                 + 
                                 1 
                               
                               , 
                               k 
                             
                           
                         
                         ) 
                       
                     
                      
                   
                 
               
               
                 
                   Equation 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   2 
                 
               
             
           
         
       
     
     where S is the sum of the even tap weights minus the odd tap weights and |S| is the absolute value of S, where f 2i,k  represents the even tap weights (e.g.,  112 ,  116 ) and f 2i+1,k  represents the odd tap weights (e.g.,  114 ,  120 ). The tap weights may originally be determined in any suitable manner to set the filtering characteristics of the DFIR filter, whether now known or developed in the future. For example, a DFIR adaptation process may be used in a data processing circuit during which known inputs are provided while adjusting the tap weights to achieve the desired filtered output corresponding to the known inputs, either using calculations, searching algorithms or any other technique to find the tap weights that yield the desired filtering characteristics. In some embodiments, the tap weights may be calculated by determining the desired frequency response that stops unwanted frequencies and passes the wanted frequencies, then calculating the inverse Fourier transform of the desired frequency response, and using the results as the tap weights. 
     The magnitude of the Nyquist response for the resulting tap weights is then checked to ensure that it falls within the desired range, and if not, they are adjusted as will be disclosed in more detail below. By ensuring that the magnitude of the Nyquist response remains within the range, the sensitivity of the DFIR filter to the sampling phase of an upstream ADC is considerably reduced. This renders the data processing circuit more stable and robust and precludes time consuming adjustments to the ADC sampling phase to maintain the desired DFIR filter frequency response. 
     Turning to  FIG. 2 , a data processing circuit  200  is illustrated including a Nyquist constrained DFIR filter  206 . An analog input  202  is provided to an ADC  204 , which converts the analog signal at the analog input  202  to a digital signal  214 . In some embodiments, the sampling phase of the ADC  204  may be selected to meet various requirements in the data processing circuit  200 , for example by adjusting or delaying the clock signal to the ADC  204 . The digital signal  214  is provided to the DFIR filter  206 , which filters the digital signal  214 , substantially passing some frequencies and partially or fully blocking other frequencies according to tap weights  216  which are applied to the DFIR filter  206  to set the desired frequency response. The output  210  is thus a filtered version of analog input  202 , with frequency components of the analog input  202  that fall within the passband substantially unchanged or even slightly amplified in the output  210 , and with frequency components of the analog input  202  that fall within the stopband attenuated or substantially blocked. The initial tap weights to apply to the DFIR filter  206  to establish the desired frequency response may be calculated or otherwise determined in any suitable manner. In some embodiments, tap weights are floating point numbers, in others, tap weights are integers. A Nyquist constraint controller  212 , also referred to generally as a tap weight controller, processes the initial tap weights to determine whether the associated Nyquist response magnitude |S| given by Equation 2 falls within a particular range, and if not, applies a Nyquist constraint to them so that they do fall within the range, before applying the resulting tap weights  216  to the DFIR filter  206 . 
     The Nyquist constraint applied to the tap weights  216  is given by Equation 3: 
     
       
         
           
             
               
                 
                   Nyq_low 
                   ≤ 
                   
                      
                     
                       
                         ∑ 
                         i 
                         
                             
                         
                       
                       ⁢ 
                       
                         ( 
                         
                           
                             f 
                             
                               
                                 2 
                                 ⁢ 
                                 i 
                               
                               , 
                               k 
                             
                           
                           - 
                           
                             f 
                             
                               
                                 
                                   2 
                                   ⁢ 
                                   i 
                                 
                                 + 
                                 1 
                               
                               , 
                               k 
                             
                           
                         
                         ) 
                       
                     
                      
                   
                   ≤ 
                   Nyq_high 
                 
               
               
                 
                   Equation 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   3 
                 
               
             
           
         
       
         
         
           
             where Nyq_low and Nyq_high are the lower and upper boundaries of the range, respectively, and 0&lt;Nyq_low≦Nyq_high. When |S| remains within the range established by Nyq_low and Nyq_high, the sensitivity of the DFIR filter  206  to the sampling phase of the ADC  204  is greatly diminished. The boundaries Nyq_low and Nyq_high may be set experimentally by trial and error in order to reduce the sensitivity of the DFIR filter  206  to the ADC sampling phase. Generally, if the signal has higher Nyquist energy, the lower boundary is set higher; otherwise, the lower boundary is set lower. 
           
         
       
    
     Each time new tap weights are calculated for the DFIR filter  206 , for example during or after DFIR adaptation iterations in a data processing circuit, the Nyquist constraint controller  212  again processes the initial tap weights to determine whether the associated Nyquist response magnitude |S| given by Equation 2 falls within a particular range. If not, the Nyquist constraint controller  212  applies the Nyquist constraint to them to move them into the range, before the resulting tap weights  216  are provided to the DFIR filter  206 . The Nyquist constraint is applied by calculating a tap weight offset A that adjusts the initial tap weights if the associated Nyquist response magnitude |S| would otherwise fall outside the range as indicated by Equation 3. The tap weight offset Δ is calculated in some embodiments according to Equation 4: 
     
       
         
           
             
               
                 
                   Δ 
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               
                                 sgn 
                                 ⁡ 
                                 
                                   ( 
                                   S 
                                   ) 
                                 
                               
                               · 
                               
                                 
                                   ( 
                                   
                                     Nyq_low 
                                     - 
                                     S 
                                   
                                   ) 
                                 
                                 / 
                                 L 
                               
                             
                             , 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 if 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                    
                                   S 
                                    
                                 
                               
                               &lt; 
                               Nyq_low 
                             
                           
                         
                       
                       
                         
                           
                             
                               
                                 sgn 
                                 ⁡ 
                                 
                                   ( 
                                   S 
                                   ) 
                                 
                               
                               · 
                               
                                 
                                   ( 
                                   
                                     Nyq_high 
                                     - 
                                     S 
                                   
                                   ) 
                                 
                                 / 
                                 L 
                               
                             
                             , 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 if 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                    
                                   S 
                                    
                                 
                               
                               &gt; 
                               Nyq_high 
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   Equation 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   4 
                 
               
             
           
         
       
         
         
           
             where S is the Nyquist response calculated according to Equation 1, sgn(S) is the sign of the Nyquist response, either −1 or 1, and where L is the number of taps being constrained. L may be set to the total number of taps in the DFIR filter, for example, 4 in the DFIR filter  100  of  FIG. 1 , or may be less than the total number of taps. For example, in some embodiments the tap with the largest tap weight may be left unconstrained, and L is the total number of taps minus one. In other embodiments, L may be an even smaller portion of the total number of taps. L may be even or odd. In the case in which the associated Nyquist response magnitude |S| is lower than the Nyq_low limit, the tap weight offset Δ is calculated as the sign of the Nyquist response S, either −1 or 1, multiplied by the difference of the Nyq_low limit minus the Nyquist response S, divided by the number of taps to be constrained L. When the associated Nyquist response magnitude is higher than the Nyq_high limit, the tap weight offset A is calculated as the sign of the Nyquist response S, either −1 or 1, multiplied by the difference of the Nyq_high limit minus the Nyquist response S, divided by the number of taps to be constrained L. 
           
         
       
    
     The tap weight offset Δ is applied in some embodiments according to Equations 5 and 6:
 
 f   2i,k   =f   2i,k +Δ
 
Equation 5
 
 f   2i+i,k   =f   2i+1,k −Δ
 
Equation 6
 
     The tap weight offset Δ is added to each even tap and is subtracted from each odd tap. If L is even, the number of even taps and odd taps is the same, so the even and odd taps will receive a balanced offset due to the tap weight offset Δ. If L is odd, there will either be more even taps or odd taps, and the tap weight offset Δ will therefore be applied to more of either the even taps or odd taps. If the DFIR filter  206  is adapted to use integer tap weights, the Nyquist constrained tap weights may be rounded, truncated or otherwise converted to integers from floating point numbers if the application of the tap weight offset Δ results in floating point numbers. 
     As an example illustration using arbitrary numbers, given a FIR filter with four taps as in  FIG. 1 , and using floating point tap weights F 0 , F 1 , F 2  and F 3  of 0.1, 0.4, 0.5, 0.3, the Nyquist response S is (0.1−0.4)+(0.5−0.3) or −0.1. If Nyq_low is 0.2 and Nyq_high is 0.6, the Nyquist response magnitude |S| given by Equation 2 is 0.1, so the initial tap weights fall outside the Nyquist constraint of Equation 3. Because the Nyquist response magnitude |S| is less than Nyq_low, the tap weight offset Δ is calculated using Equation 4 as —1(0.2−0.1)/4=−0.025, where sgn(S) is −1 and L is 4 to apply the tap weight offset Δ to all four taps. To apply the tap weight offset, the first constrained tap weight F 0 , being an even tap, is the initial value of 0.1 plus the tap weight offset Δ of −0.025 or 0.075. The second constrained tap weight F 1 , being an odd tap, is the initial value of 0.4 minus the tap weight offset Δ of −0.025 or 0.425. The third constrained tap weight F 2 , being an even tap, is 0.5+(−0.025) or 0.475. The fourth constrained tap weight F 3 , being an odd tap, is 0.3−(−0.025) or 0.325. Given the constrained tap weights 0.075, 0.425, 0.475, 0.325, the Nyquist response magnitude |S| given by Equation 2 is −0.2, now meeting the Nyquist constraint of Equation 3. 
     Turning to  FIG. 3 , a read channel circuit  300  for a storage system or wireless communication system is illustrated as an example application of a Nyquist constrained DFIR filter in accordance with some embodiments of the present invention. However, it is important to note that the Nyquist constrained DFIR filter disclosed herein is not limited to any particular application such as the read channel circuit  300  of  FIG. 3 . 
     The read channel circuit  300  may be used, for example, to process data from a storage system or wireless communication system. Read channel circuit  300  includes an analog to digital converter (ADC)  302  that converts the analog input signal  304  into a series of digital samples that are provided to DFIR filter  306 . DFIR filter  306  acts as an equalizer on the digital samples from the ADC  302 , compensating for inter-symbol interference (ISI) resulting from data being transmitted at high speed through band-limited channels and filtering the received input to provide a corresponding filtered output  310  to a detector circuit  312 , such as a Viterbi decoder. Detector circuit  312  performs a data detection process on the received input resulting in a detected output  314 . In performing the detection process, detector circuit  312  attempts to correct any errors in the received data input. 
     Detected output  314  is provided to a partial response (PR) target circuit  316  that is operable to convolve the detected output  314  with a partial response target  320  to create a partial response output  322  as the derivative of the detected output  314 . An error generator  324  generates an error signal  326  based at least in part on the partial response output  322 . The error signal  326  is used by a tap adaptation circuit  330  to adjust the tap weights provided to the DFIR filter  306 . Other inputs may also be used by the tap adaptation circuit  330  to adjust tap weights, such as a tap adaptation signal  332  from the ADC  302  to provide information to the tap adaptation circuit  330  during tap adaptation processes. In some embodiments, tap values are initially calculated, for example during an adaptation iteration based on the tap adaptation signal  332 , and are then adjusted during run time in the tap adaptation circuit  330  based on quantities such as the error signal  326 . 
     A Nyquist constraint controller  340  reads the tap weights  342  applied to the DFIR filter  306  by the tap adaptation circuit  330 , determining whether Nyquist response magnitude |S| established by tap weights  342  falls outside the range as indicated by Equation 3. A Nyq_low signal  344  and Nyq_high signal  436  may be provided to the Nyquist constraint controller  340  as external parameters to establish and variably control the range of Equation 3. In other embodiments, the values for Nyq_low and Nyq_high may be fixed in the design of the Nyquist constraint controller  340 . If Nyquist constraint controller  340  determines that Nyquist response magnitude |S| falls outside the range in Equation 3, a tap weight offset Δ  350  is provided by the Nyquist constraint controller  340  to the tap adaptation circuit  330  to constrain the tap weights  342 . With the tap weights  342  constrained by the Nyquist constraint controller  340  to remain within the range established in Equation 3, the DFIR filter  306  is less sensitive to the sampling phase of the ADC  302 . 
     Turning to  FIGS. 4A ,  4 B,  5 A and  5 B, comparisons of the frequency response of a DFIR filter (e.g.,  206  and  306 ) with Nyquist constraints disabled and enabled are illustrated.  FIG. 4A  is a plot of bit error rate  400  versus ADC sampling phase  402  in a read channel circuit with a DFIR filter (e.g.,  206  and  306 ) in accordance with some embodiments of the present invention with Nyquist constraint (e.g.,  212 ,  340 ) disabled. The ADC sampling phase  402  corresponds to the X axis, ranging from a −0.4 cycle phase shift to a 0.5 cycle phase shift. As shown in  FIG. 4A , the bit error rate  400  of a read channel circuit varies according to ADC sampling phase  402 , with a sampling phase of −0.3  404  producing a minimum  406  in the bit error rate  400  in this example and a sampling phase of 0.4  410  producing a peak  412  in the bit error rate  400 . Other sampling phases (e.g., −0.2  414 ) produce a bit error rate  416  close to that of −0.3  404 , and others (e.g., sampling phase 0  420 ) produce higher bit error rates such as peak  422 . 
     The resulting frequency responses in a DFIR filter (e.g.,  206  and  306 ) for these ADC sampling phases  402  are illustrated in  FIG. 4B , again with the Nyquist constraints on the tap weights for the DFIR filter (e.g.,  206  and  306 ) disabled. The frequency response of the DFIR filter (e.g.,  206  and  306 ) is plotted as normalized frequency  424  on the X axis versus magnitude  426  on the Y axis, with the frequency normalized to the Nyquist sampling frequency of the ADC. Some of the sampling phases  404  and  414  produce substantially flat frequency responses  430  and  432 , respectively, while other sampling phases  422  and  412  produce suppressed Nyquist frequency responses  434  and  436 , respectively, near the normalized Nyquist frequency  440 . The DFIR filter may be sensitive to the sampling phase of an upstream ADC for a variety of reasons, such as the signal spectrum in the upstream analog signal being sampled by the ADC. If the analog signal contains excessive bandwidth, that is, energy at frequencies beyond half of the sampling frequency, that out-of-band energy is not totally eliminated at the ADC due to the non-ideal additive bias of the ADC. The residual out-of-band energy sampled by the ADC causes the DFIR filter to be sensitive to the sampling phase of the ADC when the tap weights are unconstrained. 
     Notably, while at first glance it appears there may be some correlation between a low bit error rate  400  and flat frequency response  424 , the selection of an ADC sampling phase  402  that yields a relatively low bit error rate  400  does not necessarily result in a flat frequency response  424 . For example, selecting ADC sampling phase 0  420  yields a bit error rate  422  that is relatively close to the best available bit error rate  406  at sampling phase −0.3  404 , and substantially better than the bit error rate  412  at sampling phase 0.4  410 , and yet the suppressed frequency response  434  produced by ADC sampling phase 0  420  is much worse than that  436  produced by ADC sampling phase 0.4  410 . Thus, although it may appear that there is some correlation between ADC sampling phases that yield the best bit error rate and those that provide the best Nyquist response in the DFIR filter (e.g.,  206  and  306 ), there is no guarantee that an ADC sampling phase will not be selected based on various selection criteria that will result in a suppressed Nyquist response in the DFIR filter (e.g.,  206  and  306 ) given the sensitivity of the 
     DFIR filter (e.g.,  206  and  306 ) to the ADC sampling phase when the Nyquist constraint on the tap weights is disabled or otherwise not used. 
     Turning to  FIG. 5A , a plot illustrates bit error rate  500  versus ADC sampling phase  502  in a read channel circuit with a DFIR filter (e.g.,  206  and  306 ) in accordance with some embodiments of the present invention with Nyquist constraint (e.g.,  212 ,  340 ) enabled. A bit error rate plot  504  again illustrates the bit error rate  500  as a function of ADC sampling phase  502  with the Nyquist constraint disabled, and a bit error rate plot  506  illustrates the difference in the bit error rate  500  with the Nyquist constraint enabled for the DFIR filter (e.g.,  206  and  306 ) in accordance with some embodiments of the present invention. As the sensitivity of the DFIR filter (e.g.,  206  and  306 ) to the ADC sampling phase is reduced by enabling the Nyquist constraint on the tap weights for the DFIR filter, the bit error rate of the read channel is also improved. 
     Turning to  FIG. 5B , the frequency responses  520  in a DFIR filter (e.g.,  206  and  306 ) for the ADC sampling phases  502  are illustrated for a DFIR filter (e.g.,  206  and  306 ) with the Nyquist constraints on the tap weights enabled. Again, the frequency responses  520  of the DFIR filter (e.g.,  206  and  306 ) for various ADC sampling phases  502  are plotted as normalized frequency  522  on the X axis versus magnitude  524  on the Y axis, with the frequency normalized to the Nyquist sampling frequency of the ADC. Notably, the frequency responses  520  are much more uniform with Nyquist constraints on tap weights, particularly at the normalized Nyquist frequency  526 , than the frequency responses (e.g.,  434 ,  436 ) illustrated in  FIG. 4B  when Nyquist constraints are not applied to tap weights. The Nyquist constrained DFIR filter greatly reduces sensitivity of the DFIR filter to the sampling phase of an upstream ADC. 
     Turning to  FIG. 6 , a flow diagram  600  shows a method for setting tap weights for a DFIR filter in accordance with some embodiments of the present invention. Following flow diagram  600 , initial tap weights are calculated for a DFIR filter. (Block  602 ) The initial tap weights may be calculated in any suitable manner as disclosed above, for example by calculating the inverse Fourier transform of the desired frequency response, and using the results as the initial tap weights, or by adjusting the initial tap weights during a DFIR adaptation process during which known inputs are provided while adjusting the tap weights to achieve the desired filtered output corresponding to the known inputs, or by any other technique or combination of techniques. The Nyquist response of the DFIR filter is calculated based on the initial tap weights, for example using Equation 1. (Block  604 ) A determination is made as to whether the magnitude of the Nyquist response falls outside of a Nyquist constraint range, for example according to Equation 3. (Block  606 ) If the magnitude of the Nyquist response is within the Nyquist constraint range, the initial tap weights are applied to the DFIR filter. (Block  610 ) If the magnitude of the Nyquist response is outside the Nyquist constraint range, a tap weight offset is calculated as disclosed above, for example according to Equation 4. (Block  612 ) The tap weight offset is added to tap weights for even taps and subtracted from tap weights for odd taps to yield Nyquist constrained tap weights. (Block  614 ) The Nyquist constrained tap weights are applied to the DFIR filter to set the frequency response of the DFIR filter while reducing sensitivity to an upstream ADC sampling phase. The method for setting tap weights for a DFIR filter illustrated in flow diagram  600  may be applied within a method for digitally filtering a data signal, including converting an analog signal to a digital signal, determining the tap weights as illustrated in flow diagram  600  of  FIG. 6 , and filtering the data signal in the DFIR filter with the resulting tap weights. 
     Turning to  FIG. 7 , a storage system  700  is illustrated as an example application of an Nyquist constrained DFIR filter in accordance with some embodiments of the present invention. However, it is important to note that the Nyquist constrained DFIR filter disclosed herein is not limited to any particular application such as the storage system  700  of  FIG. 7 . The storage system  700  includes a read channel circuit  702  with a Nyquist constrained DFIR filter in accordance with some embodiments of the present invention. Storage system  700  may be, for example, a hard disk drive. Storage system  700  also includes a preamplifier  704 , an interface controller  706 , a hard disk controller  710 , a motor controller  712 , a spindle motor  714 , a disk platter  716 , and a read/write head assembly  720 . Interface controller  706  controls addressing and timing of data to/from disk platter  716 . The data on disk platter  716  consists of groups of magnetic signals that may be detected by read/write head assembly  720  when the assembly is properly positioned over disk platter  716 . In one embodiment, disk platter  716  includes magnetic signals recorded in accordance with either a longitudinal or a perpendicular recording scheme. 
     In a typical read operation, read/write head assembly  720  is accurately positioned by motor controller  712  over a desired data track on disk platter  716 . Motor controller  712  both positions read/write head assembly  720  in relation to disk platter  716  and drives spindle motor  714  by moving read/write head assembly  720  to the proper data track on disk platter  716  under the direction of hard disk controller  710 . Spindle motor  714  spins disk platter  716  at a determined spin rate (RPMs). Once read/write head assembly  720  is positioned adjacent the proper data track, magnetic signals representing data on disk platter  716  are sensed by read/write head assembly  720  as disk platter  716  is rotated by spindle motor  714 . The sensed magnetic signals are provided as a continuous, minute analog signal representative of the magnetic data on disk platter  716 . This minute analog signal is transferred from read/write head assembly  720  to read channel circuit  702  via preamplifier  704 . Preamplifier  704  is operable to amplify the minute analog signals accessed from disk platter  716 . In turn, read channel circuit  702  decodes and digitizes the received analog signal to recreate the information originally written to disk platter  716 . This data is provided as read data  722  to a receiving circuit. As part of decoding the received information, read channel circuit  702  processes the received signal using a Nyquist constrained DFIR filter. Such a Nyquist constrained DFIR filter may be implemented consistent with that disclosed above in relation to  FIGS. 2-5 . In some cases, the filtering may be performed consistent with the flow diagram disclosed above in relation to  FIG. 6 . A write operation is substantially the opposite of the preceding read operation with write data  724  being provided to read channel circuit  702 . This data is then encoded and written to disk platter  716 . 
     It should be noted that storage system  700  may be integrated into a larger storage system such as, for example, a RAID (redundant array of inexpensive disks or redundant array of independent disks) based storage system. It should also be noted that various functions or blocks of storage system  700  may be implemented in either software or firmware, while other functions or blocks are implemented in hardware. 
     Turning to  FIG. 8 , a wireless communication system  800  including a receiver  804  with a Nyquist constrained DFIR filter is shown in accordance with some embodiments of the present invention. Communication system  800  includes a transmitter  802  that is operable to transmit encoded information via a transfer medium  806  as is known in the art. The encoded data is received from transfer medium  806  by receiver  804 . Receiver  804  incorporates a Nyquist constrained DFIR filter. Such a Nyquist constrained DFIR filter may be implemented consistent with that described above in relation to  FIGS. 2-5 . In some cases, the analog to digital conversion may be done consistent with the flow diagram discussed above in relation to  FIG. 6 . 
     It should be noted that the various blocks discussed in the above application may be implemented in integrated circuits along with other functionality. Such integrated circuits may include all of the functions of a given block, system or circuit, or only a subset of the block, system or circuit. Further, elements of the blocks, systems or circuits may be implemented across multiple integrated circuits. Such integrated circuits may be any type of integrated circuit known in the art including, but are not limited to, a monolithic integrated circuit, a flip chip integrated circuit, a multichip module integrated circuit, and/or a mixed signal integrated circuit. 
     It should also be noted that various functions of the blocks, systems or circuits discussed herein may be implemented in either software or firmware. In some such cases, the entire system, block or circuit may be implemented using its software or firmware equivalent. In other cases, the one part of a given system, block or circuit may be implemented in software or firmware, while other parts are implemented in hardware. 
     In conclusion, the present invention provides novel apparatuses and methods for a Nyquist constrained DFIR filter. While detailed descriptions of one or more embodiments of the invention have been given above, various alternatives, modifications, and equivalents will be apparent to those skilled in the art without varying from the spirit of the invention. Therefore, the above description should not be taken as limiting the scope of the invention, which is defined by the appended claims.