Abstract:
Various embodiments of the present invention provide systems and methods for data processing. As an example, a data processing circuit is disclosed that includes: a noise predictive filter circuit, a scaling factor adaptation circuit, and a scaling factor application circuit. The noise predictive filter circuit is operable to perform a noise predictive filtering process on a data input based on a filter tap to yield a noise filtered output. The scaling factor adaptation circuit is operable to calculate a scaling factor based at least in part on a derivative of the noise filtered output. The scaling factor application circuit is operable to apply the scaling factor to scale the noise filtered output.

Description:
BACKGROUND OF THE INVENTION 
     The present inventions are related to systems and methods for detecting and/or decoding information, and more particularly to systems and methods for performing variance dependent branch metric calculation. 
     Various data transfer systems have been developed including storage systems, cellular telephone systems, and radio transmission systems. In each of the systems data is transferred from a sender to a receiver via some medium. For example, in a storage system, data is sent from a sender (i.e., a write function) to a receiver (i.e., a read function) via a storage medium. The effectiveness of any transfer is impacted by any data losses caused by various factors. In some cases, an encoding/decoding process is used to enhance the ability to detect a data error and to correct such data errors. As an example, a simple data detection and decode may be performed, however, such a simple process often lacks the capability to converge on a corrected data stream. 
     To heighten the possibility of convergence, various existing processes utilize two or more detection and decode iterations. Turning to  FIG. 1 , an exemplary prior art two stage data detection and decode circuit  100  is depicted. Two stage data detection and decode circuit  100  receives a data input  105  that is applied to a detector  110 . A hard and soft output from detector  110  is provided to a Low Density Parity Check decoder (“an LDPC decoder”)  115 . Input  105  is fed forward via a buffer  130  to another detector  120 . Detector  120  uses a soft output of LDPC decoder  115  and input  105  to perform an additional data detection process. A hard and soft output from detector  120  is provided to an LDPC decoder  125  that performs a second decoding process and provides an output  135 . Where the initial detection and decode provided by detector  110  and LDPC decoder  115  does not converge, the subsequent detection and decode provided by detector  120  and LDPC decoder  125  provide an additional opportunity to converge. The aforementioned approach is used for targets with different energy. This can lead to, for example, large fixed point loss that corresponds to lost information due to rounding when a low energy target is involved. Such losses undermine any possibility of conversion. 
     Hence, for at least the aforementioned reasons, there exists a need in the art for advanced systems and methods for data processing. 
     BRIEF SUMMARY OF THE INVENTION 
     The present inventions are related to systems and methods for detecting and/or decoding information, and more particularly to systems and methods for performing variance dependent branch metric calculation. 
     Various embodiments of the present invention provide data processing circuits that include: a noise predictive filter circuit, a scaling factor adaptation circuit, and a scaling factor application circuit. The noise predictive filter circuit is operable to perform a noise predictive filtering process on a data input based on a filter tap to yield a noise filtered output. The scaling factor adaptation circuit is operable to calculate a scaling factor based at least in part on a derivative of the noise filtered output. The scaling factor application circuit is operable to apply the scaling factor to scale the noise filtered output. 
     In some instances of the aforementioned embodiments, the scaling factor adaptation circuit includes a multiplier circuit operable to multiply the noise filtered output by the scaling factor to yield a scaled noise filtered output. In particular instances of the aforementioned embodiments, the scaling factor adaptation circuit is operable to calculate a variance in the derivative of the noise filtered output to yield a calculated variance, and to calculate the scaling factor based upon a ratio of the calculated variance and a desired variance. In some cases, the scaling factor adaptation circuit calculates the scaling factor in accordance with the following equation: 
     
       
         
           
             
               Scaling 
               ⁢ 
               
                   
               
               ⁢ 
               Factor 
             
             = 
             
               
                 
                   
                     Desired 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     Variance 
                   
                   
                     Calculated 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     Variance 
                   
                 
               
               . 
             
           
         
       
     
     In other instances of the aforementioned embodiments, the scaling factor adaptation circuit includes a multiplier circuit operable to multiply an unscaled filter tap by the scaling factor to yield the filter tap. In some such instances, the scaling factor adaptation circuit is operable to calculate a variance in the derivative of the noise filtered output to yield a calculated variance, and to receive a desired variance. 
     In various instances of the aforementioned embodiments, the circuit further includes an edge mean calculation circuit and a summation circuit. The edge mean calculation circuit is operable to calculate an edge mean value based on the derivative of the noise filtered output. The summation circuit operable to sum a derivative of the edge mean value with the noise filtered output to yield the derivative of the noise filtered output. In some cases, the edge mean calculation circuit includes a multiplier circuit operable to multiply the edge mean value by the scaling factor to yield the derivative of the edge mean value. 
     Some embodiments of the present invention provide methods for variance dependent data normalization. The methods include: performing a noise predictive filtering on a data input based on a filter tap to yield a noise filtered output; calculating a variance of a derivative of the noise filtered output to yield a calculated variance; calculating a scaling factor using the calculated variance and a desired variance; and applying the scaling factor to scale the noise filtered output. In some cases, applying the scaling factor includes multiplying an unscaled filter tap by the scaling factor to yield the filter tap. In other cases, applying the scaling factor includes multiplying the noise filtered output by the scaling factor to yield a scaled noise filtered output. 
     Yet other embodiments of the present invention provide data storage devices that include: a storage medium, an analog front end circuit, and a data processing circuit. The storage medium maintains a representation of an input data set, and the analog front end circuit is operable to sense the representation of the input data set and to provide the input data set as a data input. The data processing circuit includes: a noise predictive filter circuit, a scaling factor adaptation circuit, and a scaling factor application circuit. The noise predictive filter circuit is operable to perform a noise predictive filtering process on a data input based on a filter tap to yield a noise filtered output. The scaling factor adaptation circuit is operable to calculate a scaling factor based at least in part on a derivative of the noise filtered output. The scaling factor application circuit is operable to apply the scaling factor to scale the noise filtered output. 
     This summary provides only a general outline of some embodiments of the invention. Many other objects, features, advantages and other embodiments of the 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 are used throughout several figures to refer to similar components. In some instances, a sub-label consisting of a lower case letter is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components. 
         FIG. 1  depicts a prior art two stage data detection and decoding system; 
         FIG. 2  depicts a prior art data detection circuit; 
         FIG. 3  depicts a variance normalized detection circuit in accordance with some embodiments of the present invention; 
         FIG. 4  depicts another variance normalized detection circuit in accordance with other embodiments of the present invention; 
         FIG. 5  is a flow diagram showing a method in accordance with one or more embodiments of the present invention for governing the variance at the input of a data detector circuit; 
         FIG. 6  is a flow diagram showing a method in accordance with various embodiments of the present invention for governing the variance at the input of a data detector circuit; 
         FIG. 7  shows a storage system including a variance normalized detection circuit in accordance with various embodiments of the present invention; and 
         FIG. 8  depicts a communication system including a variance normalized detection circuit in accordance with different embodiments of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The present inventions are related to systems and methods for detecting and/or decoding information, and more particularly to systems and methods for performing variance dependent branch metric calculation. 
       FIG. 2  shows a prior art data detector circuit  800  that may be used in place of the data detector circuits of the detection and decoding system of  FIG. 1 . Data detector circuit  800  includes a noise predictive filter circuit  810  that receives a data input  805  and performs a noise predictive filtering based upon filter taps  892  to yield a noise whitened output  815 . An edge mean value  887  is subtracted from noise whitened output  815  to yield a noise output  835 . Noise output  835  is provided to a data detection circuit  870  where it is used to determine a data output  875 . 
     Data detector circuit  800  includes an edge mean calculation circuit  885  and a filter tap adaptation circuit  890 . Filter tap adaptation circuit  890  adjusts filter taps  892  provided back to noise predictive filter circuit  810  based upon noise output  835 . Edge mean value calculation circuit  885  calculates a condition (i.e., cond) based edge mean value  887  that is provided to a summation circuit  830 . 
     Data detector circuit  800  utilizes a calculated branch metric to determine a most likely value for a given bit position based upon previous conditions (i.e., cond). Where a Gaussian distribution is assumed, the following equation holds: 
                 -     ln   ⁡     (       ∏     i   =   0       n   -   1       ⁢           ⁢       ⅇ       -       (       z   ⁡     (   cond   )       -     edgeMean   ⁡     (   cond   )         )     2         2   ⁢           ⁢       σ   ⁡     (   cond   )       2               2   ⁢           ⁢   π   ⁢           ⁢       σ   ⁡     (   cond   )       2             )         =       ∑     i   =   0       n   -   1       ⁢     (           (       z   ⁡     (   cond   )       -     edgeMean   ⁡     (   cond   )         )     2       2   ⁢           ⁢       σ   ⁡     (   cond   )       2         +       1   2     ⁢     ln   ⁡     (     2   ⁢           ⁢   π     )         +     ln   ⁡     (     σ   ⁡     (   cond   )       )         )         ,         
where cond indicates a particular bit pattern, σ(cond) 2  is a variance of the received samples when cond is written, edgeMean(cond) is a value of the noiseless output of a noise predictive filter corresponding to the bit pattern cond, and z(cond) is an equalized sample of the received bit pattern cond.
 
     For fixed point data detector circuit implementations, the 
               1   2     ⁢     ln   ⁡     (     2   ⁢           ⁢   π     )             
term may be dropped, and the entire equation multiplied by 2σ(cond) 2  and divided by a fixed term (fixed) yielding the following equation:
 
               sqnoise   =           (       z   ⁡     (   cond   )       -     edgeMean   ⁡     (   cond   )         )     2     fixed     -     β   ⁢           ⁢     ln   ⁡     (     s   ⁡     (   cond   )       )             ,     
     ⁢   where                 β   =       2   ⁢           ⁢       σ   ⁡     (   cond   )       2       fixed       ,       and   ⁢           ⁢     s   ⁡     (   cond   )         =         σ   ⁡     (     cond   0     )         σ   ⁡     (   cond   )         .             
Said another way, the output of noise predictive filter  810  output is scaled by an s(cond) term so that the variance of all bit patterns (cond) is normalized to the variance of a fixed bit pattern (cond 0 ). In some cases, the fixed bit pattern is selected as a zero bit pattern or a Nyquist bit pattern.
 
     The aforementioned approach results in large fixed point losses when low energy targets (e.g., [6 12]) convolved with noise predictive finite impulse response filter taps yield edge mean values in a numeric range. When the edge mean values are divided by the fixed value suitable for higher energy targets (e.g., [8 14]), smaller numeric values for the aforementioned sqnoise term are achieved. Such smaller numeric values yield smaller variance. However, the division by the fixed term results in the loss of significant information. 
     Some embodiments of the present invention operate to mitigate the loss of information available in a data detection process by normalizing the input to a data detector circuit. Such normalization results in similar variance in the input of the detector circuit across different bit patterns and all channel conditions (i.e., signal to noise ratios). Such embodiments may be applied to read channel circuits used in storage device applications, wireless transmission circuit and other applications. The solutions rely on a data detection approach where an input is normalized so that any received samples exhibit a similar variance across bit patterns and channel conditions (e.g., signal to noise ratios). As just one advantage of such an approach, the data detection approach is substantially independent of the energy level of a received input. 
     Turning to  FIG. 3 , a variance normalized detection circuit  200  is shown in accordance with some embodiments of the present invention. Variance normalized detection circuit  200  includes a noise predictive finite impulse response filter circuit  210  that receives a data input  205  and performs a noise predictive filtering based upon filter taps  260 ,  261 ,  262 ,  263  to yield a noise whitened output (z(cond))  215 . As more fully discussed below, filter taps  260 ,  261 ,  262 ,  263  are scaled such that noise whitened output  215  has the effect of being scaled. Noise whitened output  215  is provided to a summation circuit  230 . Summation circuit  230  subtracts a scaled edge mean value (edgemean(cond))  299  from noise whitened output  215  to yield a noise output  235  in accordance with the following equation:
 
noise output= z (cond)−edgeMean(cond).
 
Again, noise whitened output  215  is indirectly scaled by a scaling factor  294  and scaled edge mean value  299  is an edge mean value  287  that is directly scaled by scaling factor  297 . Scaling factor  294  is varied based upon a level of variance in noise output  235  to force the variance in noise output  235  to approach a desired variance  277 . In some embodiments, the desired variance is eight. In other embodiments, the desired variance is another power of two. In this way, data losses due to variance in data input  205  are mitigated.
 
     An edge mean calculation circuit  285  receives noise output  235  and calculates edge mean value  287  using an approach known in the art. Edge mean value  287  is provided to a multiplier circuit  298  where it is multiplied by scaling factor  297  to yield scaled edge mean value  299 . A filter tap adaptation circuit  290  receives noise output  235  and adaptively calculates pre-scaled filter taps  292  that correspond to filter taps  260 ,  261 ,  262 ,  263 . Filter tap adaptation circuit  290  may include, but is not limited to, a least mean squared error generator circuit (not shown) that provides an error output to a loop filter circuit (not shown). It should be noted that the least mean squared error generator circuit is one type of error generator circuit that may be used in relation to different embodiments of the present invention. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize other types of error generator circuits that may be used in relation to different embodiments of the present invention. For example, a zero forcing error generator circuit or a hybrid zero forcing error generator circuit may be used in place of the aforementioned least mean squared error generator circuit. Such filter tap adaptation circuits are known in the art. In particular, filter tap adaptation circuit  290  provides filter taps  292  to a multiplier circuit  296  where each of the respective filter taps  292  are multiplied by a scaling factor  294  to yield filter taps  260 ,  261 ,  262 ,  263 . This scaling of filter taps  260 ,  261 ,  262 ,  263  by a scaling factor  294  is designed to yield noise whitened output  215  scaled by the same scaling factor (i.e., scaling factor  297 ) that was applied to yield scaled edge mean value  299 . As such, noise output  235  may be represented as:
 
noise output=[ z (cond)−edgeMean(cond)]*scaling factor 297,
 
where z(cond) and edgeMean(cond) respectively represent the output of noise predictive filter circuit  210  and summation circuit  230  in the absence of any applied scaling factors to either filter taps  260 ,  261 ,  262 ,  263  or edge mean value  287 .
 
     Scaling factor adaptation circuit  295  receives noise output  235  and calculates a variance across all outputs. This calculated variance may be computed by setting scaling factor  297  to unity (‘1’) for both z(cond) and edgeMean(cond) based on the formula described herein. The calculated variance may be compared with a desired variance. Alternatively, scaling factor  297  may be recursively calculated to yield a desired variance  277  in accordance with the following equation: 
                 Scaling   ⁢           ⁢   Factor   ⁢           ⁢   297     =           Desired   ⁢           ⁢   Variance   ⁢           ⁢   277       Calculated   ⁢           ⁢   Variance         ⁢     (     Old   ⁢           ⁢   Scaling   ⁢           ⁢   Factor     )         ,         
where the old scaling factor is the previous value of scaling factor  297 . Scaling factor  294  is calculated to yield filter taps  260 ,  261 ,  262 ,  263  that will result in noise whitened output  215  effectively scaled by scaling factor  297 .
 
     Noise output  235  is provided to a data detection circuit  270  where it is further massaged to yield a squared noise output suitable for branch metric calculation. In particular, the squared noise output may be represented by the following equation: 
               sqnoise   =         (     noise   ⁢           ⁢   output   ⁢           ⁢   235     )     2     -     β   ⁢           ⁢     ln   ⁡     (       σ   ⁡     (     cond   0     )         σ   ⁡     (   cond   )         )             ,         
where β equals the square of scaling factor  297  multiplied by 2 var to balance the scaling with that applied to the first part of the equation (i.e., (noise output  235 ) 2 ). Using the branch metrics calculated based on noise output  235 , data detection circuit  270  provides a data output  275 
 
     During adaptation of filter taps  260 ,  261 ,  262 ,  263 , filter tap adaption circuit  290  fixes filter tap  260  at a zero condition, and adapts filter taps  261 ,  262 ,  263  using a standard filter tap adaption approach. The adapted filter taps  260 ,  261 ,  262 ,  263  are used by noise predictive finite impulse response circuit  210  to perform noise predictive filtering. The resulting noise whitened output is combined with edge mean value  287  (i.e., scaling factor  297  is set to unity) and a variance of noise output  235  is calculated by scaling factor adaptation circuit  295 . This calculated variance is used to calculate scaling factor  297  and scaling factor  294  that will yield desired variance  277 . Using the calculated scaling factors, filter tap  260  is allowed to float (i.e., is no longer fixed to the zero condition) and scaled filter taps  260 ,  261 ,  262 ,  263  result in a scaled noise whitened output  215  that provides for uniform variance. 
     Turning to  FIG. 4 , another variance normalized detection circuit  300  is shown in accordance with other embodiments of the present invention. Variance normalized detection circuit  300  includes a noise predictive finite impulse response filter circuit  310  that receives a data input  305  and performs a noise predictive filtering based upon filter taps  360 ,  361 ,  362 ,  363  to yield a noise whitened output (z(cond))  315 . Noise whitened output  315  is provided to a multiplier circuit  320  where it is multiplied by a scaling factor  397  to yield a scaled output  325 . Scaled output  325  is provided to a summation circuit  330 . Summation circuit  330  subtracts a scaled edge mean value (edgemean(cond))  399  from scaled output  325  to yield a scaled noise output  335  in accordance with the following equation:
 
scaled noise output=[ z (cond)−edgeMean(cond)]*scaling factor
 
Scaling factor  397  is varied based upon a level of variance in scaled noise output  335  to force the variance in scaled noise output  335  to approach a desired variance  377 . In some embodiments, the desired variance is eight. In other embodiments, the desired variance is another power of two. In this way, data losses due to variance in data input  305  are mitigated.
 
     An edge mean calculation circuit  385  receives scaled noise output  335  and calculates edge mean value  387  using an approach known in the art. Edge mean value  387  is provided to a multiplier circuit  398  where it is multiplied by scaling factor  397  to yield scaled edge mean value  399 . A filter tap adaptation circuit  390  receives scaled noise output  335  and adaptively filter taps  360 ,  361 ,  362 ,  363 . Filter tap adaptation circuit  390  may include, but is not limited to, a least mean squared error generator circuit (not shown) that provides an error output to a loop filter circuit (not shown). It should be noted that the least mean squared error generator circuit is one type of error generator circuit that may be used in relation to different embodiments of the present invention. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize other types of error generator circuits that may be used in relation to different embodiments of the present invention. For example, a zero forcing error generator circuit or a hybrid zero forcing error generator circuit may be used in place of the aforementioned least mean squared error generator circuit. Such filter tap adaptation circuits are known in the art. In particular, filter tap adaptation circuit  390  provides filter taps  360 ,  361 ,  362 ,  363  to noise predictive finite impulse response filter circuit  310 . 
     Scaling factor adaptation circuit  395  receives scaled noise output  335  and calculates a variance across all outputs. This calculated variance may be computed by setting scaling factor  297  to unity (‘1’) for both z(cond) and edgeMean(cond) based on the formula described herein. Alternatively, scaling factor  397  may be recursively calculated to yield a desired variance  377  in accordance with the following equation: 
                 Scaling   ⁢           ⁢   Factor   ⁢           ⁢   397     =           Desired   ⁢           ⁢   Variance   ⁢           ⁢   377       Calculated   ⁢           ⁢   Variance         ⁢     (     Old   ⁢           ⁢   Scaling   ⁢           ⁢   Factor     )         ,         
where the old scaling factor is the previous value of scaling factor  397 .
 
     Scaled noise output  335  is provided to a data detection circuit  370  where it is further massaged to yield a squared noise output suitable for branch metric calculation. In particular, the squared noise output may be represented by the following equation: 
               sqnoise   =         (     scaled   ⁢           ⁢   noise   ⁢           ⁢   output   ⁢           ⁢   335     )     2     -     β   ⁢           ⁢     ln   ⁡     (       σ   ⁡     (     cond   0     )         σ   ⁡     (   cond   )         )             ,         
where β equals the square of scaling factor  397  multiplied by 2σ(cond) to balance the scaling with that applied to the first part of the equation (i.e., (scaled noise output  335 ) 2 ). Using the branch metrics calculated based on noise output  335 , data detection circuit  370  provides a data output  375 .
 
     Turning to  FIG. 5 , a flow diagram  400  shows a method in accordance with one or more embodiments of the present invention for governing the variance at the input of a data detector circuit. Following flow diagram  400 , a data input is received (block  405 ). In some cases, the data input is derived from a storage medium. In other cases, the data input is derived from a transmission medium. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize other sources from which the data input may be derived. Noise predictive filtering is applied to the data input to yield a noise whitened output (block  410 ). The noise predictive filtering may be done using any noise predictive filtering approach known in the art. The noise predictive filtering is done using filter taps that are adapted and scaled to govern the amount of variance occurring in the noise whitened output. 
     A scaled edge mean value is subtracted from the noise whitened output (block  415 ) to yield a difference value in accordance with the following equation:
 
difference value= z (cond)−edgeMean(cond),
 
where z(cond) is the noise whitened output that is scaled by modification of the filter taps to govern variance, and edgeMean(cond) is the scaled edge mean value. The difference value is squared to yield a squared difference value (block  455 ) in accordance with the following equation:
 
(difference value)=( z (cond)−edgeMean(cond)) 2 .
 
     The difference value is also used to calculate a variance (i.e., calculated variance) across a number of difference values (block  420 ). This variance is compared with a desired variance to calculate a scaling factor (block  440 ). The scaling factor is calculated to force an output variance to a defined level. As an example, the scaling factor may be calculated in accordance with the following equation: 
                 Scaling   ⁢           ⁢   Factor     =           Desired   ⁢           ⁢   Variance       Calculated   ⁢           ⁢   Variance         ⁢     (     Old   ⁢           ⁢   Scaling   ⁢           ⁢   Factor     )         ,         
where the old scaling factor is a previous version of the scaling factor. A square of the scaling factor (i.e., (scaling factor) 2 ) is multiplied by 2σ(cond) 2  to yield the multiplication value β of a scaled natural log term used in the branch metric calculation to yield the following component (block  460 ):
 
               β   ⁢           ⁢     ln   ⁡     (       σ   ⁡     (     cond   0     )         σ   ⁡     (   cond   )         )         ,         
again, where σ(cond) is a variance of the received samples when cond is written. The scaled natural log term is subtracted from the aforementioned squared difference value to yield a detector metric value (block  465 ) in accordance with the following equation:
 
     
       
         
           
             
               detector 
               ⁢ 
               
                   
               
               ⁢ 
               metric 
               ⁢ 
               
                   
               
               ⁢ 
               value 
             
             = 
             
               
                 
                   ( 
                   
                     difference 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     value 
                   
                   ) 
                 
                 2 
               
               - 
               
                 β 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     ln 
                     ⁡ 
                     
                       ( 
                       
                         
                           σ 
                           ⁡ 
                           
                             ( 
                             
                               cond 
                               0 
                             
                             ) 
                           
                         
                         
                           σ 
                           ⁡ 
                           
                             ( 
                             cond 
                             ) 
                           
                         
                       
                       ) 
                     
                   
                   . 
                 
               
             
           
         
       
     
     In addition, the aforementioned difference value (block  415 ) is used to estimate updated filter taps (i.e., the filter taps for the noise predictive filters) (block  425 ). The updated filter taps are scaled using the previously calculated scaling factor (block  440 ) such that the variance in the noise whitened output is forced to the desired variance (block  445 ). Said another way, the scaled filter taps yield an output from the noise predictive filtering process that may be represented as:
 
noise whitened output= z (cond)*scaling factor,
 
where z(cond) represent the noise whitened output of noise predictive filter process in the absence of any applied scaling factors to the filter taps. The scaled filter taps are provides as a feedback to the noise predictive filtering process of block  410 .
 
     In addition, the aforementioned difference value (block  415 ) is used to calculate an edge mean value as is known in the art (block  430 ). This edge mean value is scaled by the previously calculated scaling factor (block  440 ) to yield a scaled edge mean value (block  450 ) in accordance with the following equation:
 
scaled edgemean value=scaling factor*edge mean value.
 
This scaled edge mean value is used in the summation process of block  415 .
 
     Turning to  FIG. 6 , a flow diagram  500  shows a method in accordance with various embodiments of the present invention for governing the variance at the input of a data detector circuit. Following flow diagram  500 , a data input is received (block  505 ). In some cases, the data input is derived from a storage medium. In other cases, the data input is derived from a transmission medium. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize other sources from which the data input may be derived. Noise predictive filtering is applied to the data input to yield a noise whitened output (block  510 ). The noise predictive filtering may be done using any noise predictive filtering approach known in the art. The noise predictive filtering is done using filter taps that are adapted using an adaptation process known in the art. 
     The noise whitened output is scaled by a scaling factor to yield a scaled noise whitened output (block  515 ). This scaling may be done in accordance with the following equation:
 
scaled noise whitened output=noise whitened output*scaling factor.
 
An edge mean value is scaled by the same scaling factor to yield a scaled edge mean value, and the scaled edge mean value is subtracted from the scaled noise whitened value to yield a difference value (block  520 ) in accordance with the following equation:
 
difference value=[noise whitened output−edge mean value]*scaling factor.
 
The difference value is squared to yield a squared difference value (block  555 ) in accordance with the following equation:
 
(difference value) 2 =([noise whitened output−edge mean value]*scaling factor) 2 .
 
The difference value is also used to calculate a variance (i.e., calculated variance) across a number of difference values (block  530 ). This variance is compared with a desired variance to calculate a scaling factor (block  540 ). The scaling factor is calculated to force an output variance to a defined level. As an example, the scaling factor may be calculated in accordance with the following equation:
 
                 Scaling   ⁢           ⁢   Factor     =           Desired   ⁢           ⁢   Variance       Calculated   ⁢           ⁢   Variance         ⁢     (     Old   ⁢           ⁢   Scaling   ⁢           ⁢   Factor     )         ,         
where the old scaling factor is a previous version of the scaling factor. A square of the scaling factor (i.e., (scaling factor) 2 ) is multiplied by 2σ(cond) to yield the multiplication value β of a scaled natural log term used in the branch metric calculation to yield the following component (block  560 ):
 
               β   ⁢           ⁢     ln   ⁡     (       σ   ⁡     (     cond   0     )         σ   ⁡     (   cond   )         )         ,         
again, where σ(cond) is a variance of the received samples when cond is written. The scaled natural log term is subtracted from the aforementioned squared difference value to yield a detector metric value (block  565 ) in accordance with the following equation:
 
     
       
         
           
             
               detector 
               ⁢ 
               
                   
               
               ⁢ 
               metric 
               ⁢ 
               
                   
               
               ⁢ 
               value 
             
             = 
             
               
                 
                   ( 
                   
                     difference 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     value 
                   
                   ) 
                 
                 2 
               
               - 
               
                 β 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     ln 
                     ⁡ 
                     
                       ( 
                       
                         
                           σ 
                           ⁡ 
                           
                             ( 
                             
                               cond 
                               0 
                             
                             ) 
                           
                         
                         
                           σ 
                           ⁡ 
                           
                             ( 
                             cond 
                             ) 
                           
                         
                       
                       ) 
                     
                   
                   . 
                 
               
             
           
         
       
     
     In addition, the aforementioned difference value (block  520 ) is used to estimate updated filter taps (i.e., the filter taps for the noise predictive filters) (block  525 ). The updated filter taps are provided to use in relation to the noise predictive filtering process. In addition, the an edge mean value is calculated based upon the difference value (block  535 ). This edge mean value is provided to the edge mean scaling process (block  520 ). 
     Turning to  FIG. 7 , a storage system  700  including read channel  710  including a variance normalized detection circuit in accordance with different embodiments of the present invention. Storage system  700  may be, for example, a hard disk drive. Read channel  710  may include, but is not limited to, a variance normalized detection circuit that may be implemented similar to that discussed above in relation to one or both of  FIG. 3  and  FIG. 4 . In some cases, the variance normalized detection circuit may operate similar to that described in relation to one of  FIG. 5  or  FIG. 6 . 
     Storage system  700  also includes a preamplifier  770 , an interface controller  720 , a hard disk controller  766 , a motor controller  768 , a spindle motor  772 , a disk platter  778 , and a read/write head assembly  776 . Interface controller  720  controls addressing and timing of data to/from disk platter  778 . The data on disk platter  778  consists of groups of magnetic signals that may be detected by read/write head assembly  776  when the assembly is properly positioned over disk platter  778 . In one embodiment, disk platter  778  includes magnetic signals recorded in accordance with a perpendicular recording scheme. For example, the magnetic signals may be recorded as either longitudinal or perpendicular recorded signals. 
     In a typical read operation, read/write head assembly  776  is accurately positioned by motor controller  768  over a desired data track on disk platter  778 . The appropriate data track is defined by an address received via interface controller  720 . Motor controller  768  both positions read/write head assembly  776  in relation to disk platter  778  and drives spindle motor  772  by moving read/write head assembly to the proper data track on disk platter  778  under the direction of hard disk controller  766 . Spindle motor  772  spins disk platter  778  at a determined spin rate (RPMs). Once read/write head assembly  778  is positioned adjacent the proper data track, magnetic signals representing data on disk platter  778  are sensed by read/write head assembly  776  as disk platter  778  is rotated by spindle motor  772 . The sensed magnetic signals are provided as a continuous, minute analog signal representative of the magnetic data on disk platter  778 . This minute analog signal is transferred from read/write head assembly  776  to read channel  710  via preamplifier  770 . Preamplifier  770  is operable to amplify the minute analog signals accessed from disk platter  778 . In turn, read channel module  710  decodes and digitizes the received analog signal to recreate the information originally written to disk platter  778 . The decoding process may utilize local iterative loops where the output of the decoder circuit is dynamically scaled and provided as an input to the decoder circuit. This input is decoded again. The read data is provided as read data  703 . A write operation is substantially the opposite of the preceding read operation with write data  701  being provided to read channel module  710 . This data is then encoded and written to disk platter  778 . 
     Turning to  FIG. 8 , a communication system  691  including a receiver  695  having a variance normalized detection circuit in accordance with different embodiments of the present invention. Communication system  691  includes a transmitter  693  that is operable to transmit encoded information via a transfer medium  697  as is known in the art. The encoded data is received from transfer medium  697  by receiver  695 . Receiver  695  incorporates a variance normalized detection circuit. The incorporated variance normalized detection circuit is capable of maintaining a variance at the input of a detection circuit at a defined level. Such a variance governing circuit may be implemented similar to that discussed above in relation to one or both of  FIG. 3  and  FIG. 4 . The approach for governing variance may be implemented using one of the methods discussed above in relation to one or both of the flow diagrams of  FIG. 5  and  FIG. 6 . Based on the disclosure provided herein, one of ordinary skill in the art will recognize a variety of mediums over which data may be transferred. 
     In conclusion, the invention provides novel systems, devices, methods and arrangements for performing data decoding and/or detection. 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. For example, one or more embodiments of the present invention may be applied to various data storage systems and digital communication systems, such as, for example, tape recording systems, optical disk drives, wireless systems, and digital subscribe line systems. Therefore, the above description should not be taken as limiting the scope of the invention, which is defined by the appended claims.