# Patent

## Title
Systems and methods for anti-causal noise predictive filtering in a data channel

## 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 data detector circuit. The data detector circuit includes an anti-causal noise predictive filter circuit and a data detection circuit. In some cases, the anti-causal noise predictive filter circuit is operable to apply noise predictive filtering to a detector input to yield a filtered output, and the data detection circuit is operable to apply a data detection algorithm to the filtered output derived from the anti-causal noise predictive filter circuit.

## Background
BACKGROUND OF THE INVENTION
The present invention is related to systems and methods for data processing, and more particularly to systems and methods for noise predictive filtering in data processing.
Data processing circuits often include a data detector circuit and a data decoder circuit. In some cases many passes through both the data detector circuit and the data decoder circuit in an attempt to recover originally written data. One of the main causes limiting the ability to recover originally written data is media noise corrupting information received from a channel. To limit the effects of media noise, the data processing circuit may include a noise predictive filter circuit that relies on historical information to predict potential noise corruption. Such an approach is not ideal.
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 invention is related to systems and methods for data processing, and more particularly to systems and methods for noise predictive filtering in data processing.
Various embodiments of the present invention provide data processing circuits that include a data detector circuit. The data detector circuit includes an anti-causal noise predictive filter circuit and a data detection circuit. In some cases, the anti-causal noise predictive filter circuit is operable to apply noise predictive filtering to a detector input to yield a filtered output, and the data detection circuit is operable to apply a data detection algorithm to the filtered output derived from the anti-causal noise predictive filter circuit. In various instances of the aforementioned embodiments, the data processing circuit is implemented as part of a storage device or a receiving device. In some cases, the data processing circuit is implemented as part of an integrated circuit. The data detection algorithm may be, but is not limited to, a maximum a posteriori data detection algorithm, or a Viterbi algorithm data detector circuit
In some instances of the aforementioned embodiments, the anti-causal noise predictive filter circuit includes a delay buffer circuit and a noise predictive filter bank. In some such cases, the noise predictive filter bank includes sixteen anti-causal noise predictive filters each tuned to a different noise pattern. The different noise patterns may include at least one future noise sample and/or at least one prior noise sample. In various cases, the data detector circuit is operable to provide a detected output, and the data processing circuit further includes a data decoder circuit operable to apply a data decoding algorithm to decoder input derived from the detected output. The data decoding algorithm may be, but is not limited to, a Reed Solomon data decoding algorithm, and a low density parity check decoding algorithm. In some cases, the data processing circuit further includes an analog to digital converter circuit operable to convert an analog input into a series of digital samples, and an equalizer circuit operable to receive the series of digital samples and to equalize the series of digital samples to yield the detector input.
Some embodiments of the present invention provide methods that include: receiving a data input; anti-causal noise predictive filtering the data input to yield a filtered output; and applying a data detection algorithm to the filtered output to yield a detected output. In some cases, the methods further includes applying a data decoding algorithm to the detected output to yield a decoded output. The data decoding algorithm may be, but is not limited to, a Reed Solomon data decoding algorithm, or a low density parity check decoding algorithm. The data detection algorithm may be, but is not limited to, a maximum a posteriori data detection algorithm, or a Viterbi algorithm data detector circuit. In some cases, the anti-causal noise predictive filtering includes noise predictive filtering using at least one future noise sample, and/or at least one prior noise sample.
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 shows a storage device including a read channel having anti-causal noise predictive filtering circuitry in accordance with one or more embodiments of the present invention;
FIG. 2 shows a data transmission device including a receiver having anti-causal noise predictive filtering circuitry in accordance with some embodiments of the present invention;
FIG. 3a depicts a data processing circuit having anti-causal noise predictive filtering circuitry in accordance with some embodiments of the present invention;
FIG. 3b depicts an anti-causal noise predictive filter bank that may be used in relation to the data processing circuit of FIG. 3b; and
FIG. 4 is a flow diagram showing a method in accordance with one or more embodiments of the present invention for data processing including anti-causal noise predictive filtering.



DETAILED DESCRIPTION OF THE INVENTION
The present invention is related to systems and methods for data processing, and more particularly to systems and methods for noise predictive filtering in data processing.
It has been determined that when information is run length limited (i.e., the number of successive non-transitory bit periods is limited) causal noise predictive filtering is not ideal as burst errors caused by long runs (i.e., four or more consecutive bit periods) are dominant in a read channel or receiver channel. By encoding originally written data to avoid such long runs, the dominance of such burst errors can be reduced and performance improved. In some cases, runs of a maximum of three consecutive non-transitory bit periods are allowed. In such a situation, it has been observed that bits at the beginning of such a transition limited run exhibited a higher probability of error. To address this asymmetry in the occurrence of errors, anti-causal noise predictive filtering as more fully discussed below. In some embodiments of the present invention, use of such anti-causal noise predictive filtering balances the error locations across non-transitory runs resulting in an improved bit error rate.
Various embodiments of the present invention provide for data processing that includes application of a data detection algorithm to a received data set followed by application of a data decoding algorithm to the result of the data detection algorithm in an attempt to recover originally written data. In some cases, two or more global iterations including application of the data detection algorithm and the data decoding algorithm may be applied to a given data set. Application of the data detection algorithm includes performing anti-causal noise predictive filtering on the received data set to yield a filtered output, with the filtered output then being provided to a trellis based detector circuit that applies the data detection algorithm.
As used herein, the term “anti-causal” is used in its broadest sense to mean any condition where at least post occurrence information is used to determine a current occurrence. In contrast, the term “causal” implies a condition where only pre-occurrence and/or current occurrence information is used to determine a current occurrence. Thus, as an example, an anti-causal circuit may rely on the following five data inputs i−2, i−1, i0, i+1, i+2, where i−2 occurs two bit periods prior to the current occurrence, i−1 occurs one bit periods prior to the current occurrence, i0 is the current occurrence, i−1 occurs one bit periods after the current occurrence, and i+2 occurs two bit periods after the current occurrence. In contrast, a causal circuit may rely on the following five data inputs i−4, i−3, i−2, i−1, i0, where i−4 occurs four bit periods prior to the current occurrence, where i−3 occurs three bit periods prior to the current occurrence, where i−2 occurs two bit periods prior to the current occurrence, i−1 occurs one bit periods prior to the current occurrence, and i0 is the current occurrence. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of data sets upon which an anti-causal noise predictive filter circuit may operate in accordance with different embodiments of the present invention. In some embodiments of the present invention, an anti-causal noise predictive filter is used that relies on one or more future noise samples to estimate a current noise level (e.g., n+1, where n+1 is a noise sample occurring one bit period after the current noise sample n0). In some cases, such an anti-causal noise predictive filter relies on one or more future noise samples and none or more past noise samples (e.g., n+1 where n+1 is a noise sample occurring one bit period after the current noise sample n0, and n−1 where n−1 is a noise sample occurring one bit period prior to the current noise sample n0).
Turning to FIG. 1, a storage system 100 including a read channel circuit 110 having anti-causal noise predictive filtering circuitry is shown in accordance with some embodiments of the present invention. Storage system 100 may be, for example, a hard disk drive. Storage system 100 also includes a preamplifier 170, an interface controller 120, a hard disk controller 166, a motor controller 168, a spindle motor 172, a disk platter 178, and a read/write head assembly 176. Interface controller 120 controls addressing and timing of data to/from disk platter 178. The data on disk platter 178 consists of groups of magnetic signals that may be detected by read/write head assembly 176 when the assembly is properly positioned over disk platter 178. In one embodiment, disk platter 178 includes magnetic signals recorded in accordance with either a longitudinal or a perpendicular recording scheme.
In a typical read operation, read/write head assembly 176 is accurately positioned by motor controller 168 over a desired data track on disk platter 178. Motor controller 168 both positions read/write head assembly 176 in relation to disk platter 178 and drives spindle motor 172 by moving read/write head assembly to the proper data track on disk platter 178 under the direction of hard disk controller 166. Spindle motor 172 spins disk platter 178 at a determined spin rate (RPMs). Once read/write head assembly 178 is positioned adjacent the proper data track, magnetic signals representing data on disk platter 178 are sensed by read/write head assembly 176 as disk platter 178 is rotated by spindle motor 172. The sensed magnetic signals are provided as a continuous, minute analog signal representative of the magnetic data on disk platter 178. This minute analog signal is transferred from read/write head assembly 176 to read channel circuit 110 via preamplifier 170. Preamplifier 170 is operable to amplify the minute analog signals accessed from disk platter 178. In turn, read channel circuit 110 decodes and digitizes the received analog signal to recreate the information originally written to disk platter 178. This data is provided as read data 103 to a receiving circuit. A write operation is substantially the opposite of the preceding read operation with write data 101 being provided to read channel circuit 110. This data is then encoded and written to disk platter 178.
During a read operation, data received from preamplifier circuit 170 is converted from an analog signal to a series of corresponding digital samples, and the digital samples are equalized to yield an equalized output. The equalized output is then provided to a data detection circuit. The data detection circuit includes an anti-causal noise predictive filtering circuit that yields a filtered output, and the filtered output is provided to a trellis based detector circuit that applies a data detection algorithm to the filtered output to yield a detected output. The detected output is then provided to a data decoder circuit that applies a data decode algorithm to the detected output to yield a decoded output. Application of the data detection algorithm by the data detector circuit and the data decoder algorithm by the data decoder circuit is done in a global iteration. In some cases, two or more global iterations may be applied to a given data set in an attempt to recover originally written data that is ultimately provided as read data 103. In some cases, the data processing may be done using a circuit similar to data processing circuit 300, and/or using a process similar to that discussed below in relation to FIG. 4.
It should be noted that storage system 100 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 100 may be implemented in either software or firmware, while other functions or blocks are implemented in hardware.
Turning to FIG. 2, a data transmission device 200 including a receiver 220 having anti-causal noise predictive filtering circuitry is shown in accordance with some embodiments of the present invention. Data transmission system 200 includes a transmitter 210 that is operable to transmit encoded information via a transfer medium 230 as is known in the art. The encoded data is received from transfer medium 230 by receiver 220. Receiver 220 incorporates a data processing circuit that includes an anti-causal noise prediction circuit. While processing received data, an analog signal is converted to a series of corresponding digital samples, and the digital samples are equalized to yield an equalized output. The equalized output is then provided to a data detection circuit. The data detection circuit includes an anti-causal noise predictive filtering circuit that yields a filtered output, and the filtered output is provided to a trellis based detector circuit that applies a data detection algorithm to the filtered output to yield a detected output. The detected output is then provided to a data decoder circuit that applies a data decode algorithm to the detected output to yield a decoded output. Application of the data detection algorithm by the data detector circuit and the data decoder algorithm by the data decoder circuit is done in a global iteration. In some cases, two or more global iterations may be applied to a given data set in an attempt to recover originally written data that is ultimately provided as read data 103. In some cases, the data processing may be done using a circuit similar to data processing circuit 300, and/or using a process similar to that discussed below in relation to FIG. 4.
Turning to FIG. 3a, a data processing circuit 300 is shown that includes anti-causal noise predictive filtering circuitry in accordance with some embodiments of the present invention; in accordance with some embodiments of the present invention. In addition to the anti-causal noise prediction filtering circuitry, the data detector circuit of data processing circuit 300 is constructed to operate on a time shifted data set allowing time for post occurrence noise samples to be made available to the anti-causal noise predictive filtering circuitry.
Data processing circuit 300 includes an analog front end circuit 310 that receives an analog signal 308. Analog front end circuit 310 processes analog signal 308 and provides a processed analog signal 312 to an analog to digital converter circuit 315. Analog front end circuit 310 may include, but is not limited to, an analog filter and an amplifier circuit as are known in the art. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of circuitry that may be included as part of analog front end circuit 310. In some cases, analog signal 308 is derived from a read/write head assembly (not shown) that is disposed in relation to a storage medium (not shown). In other cases, analog signal 308 is derived from a receiver circuit (not shown) that is operable to receive a signal from a transmission medium (not shown). The transmission medium may be wired or wireless. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of source from which analog input 308 may be derived.
Analog to digital converter circuit 315 converts processed analog signal 312 into a corresponding series of digital samples 317. Analog to digital converter circuit 315 may be any circuit known in the art that is capable of producing digital samples corresponding to an analog input signal. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of analog to digital converter circuits that may be used in relation to different embodiments of the present invention. Digital samples 317 are provided to an equalizer circuit 320. Equalizer circuit 320 applies an equalization algorithm to digital samples 317 to yield an equalized output 322. In some embodiments of the present invention, equalizer circuit 320 is a digital finite impulse response filter circuit as are known in the art.
Equalized output 322 is provided to both a data detector circuit 325 and to a sample buffer circuit 375. Sample buffer circuit 375 stores equalized output 322 as buffered data 377 for use in subsequent iterations through data detector circuit 325. Data detector circuit 325 includes an anti-causal noise predictive filter circuit 380 and a soft input/soft output data detection circuit 390. Anti-causal noise predictive filter circuit 380 includes a delay buffer circuit 370 that accumulates a number of noise samples (n) that are provided as a noise sample output 372 to an anti-causal noise predictive filter bank 388. Anti-causal noise predictive filter bank 388 includes a number of anti-causal noise predictive finite impulse response (FIR) filters 380, 382, 384, 386 that each operate on one or more future noise samples. Anti-causal noise predictive filter bank 388 provides a current noise level as a filtered output 389 with the current noise level being based at least in part on one future noise sample.
Filtered output 389 from anti-causal noise predictive filter circuit 380 is described by the following equation:




  
    
      n
      k
    
    =
    
      
        
          y
          k
        
        -
        
          y
          
            k
            ,
            ideal
          
        
      
      =
      
        
          y
          k
        
        -
        
          
            ∑
            
              i
              =
              0
            
            I
          
          ⁢
          
            
              g
              i
            
            ⁢
            
              x
              
                k
                -
                i
              
            
          
        
      
    
  
  ,




where nk is noise samples at time k, yk is equalized output 322 (or buffered output 377 depending upon the particular global iteration), xk is digital samples 317, and {gi} is a partial response target. This can be reduced to:





  
    
      
        n
        ^
      
      k
    
    =
    
      
        ∑
        
          l
          =
          
            -
            z
          
        
        
          +
          w
        
      
      ⁢
      
        
          f
          l
        
        ⁢
        
          n
          
            k
            -
            l
          
        
      
    
  
  ,




where {circumflex over (n)}k is the predicted noise at time k, {fl} is an anti-causal noise predictive filter function at time l, w represents a number of prior noise samples, and z represents a number of future bit samples. The predicted error (ek) at time k may be expressed as:





  
    
      
        
          filtered
          ⁢
          
            
          
          ⁢
          output
          ⁢
          
            
          
          ⁢
          389
        
        =
        
          e
          k
        
      
    
  
  
    
      
        =
        
          
            n
            k
          
          -
          
            n
            k
          
        
      
    
  
  
    
      
        =
        
          
            n
            k
          
          -
          
            
              ∑
              
                l
                =
                
                  -
                  z
                
              
              
                +
                w
              
            
            ⁢
            
              
                f
                l
              
              ⁢
              
                
                  n
                  
                    k
                    -
                    l
                  
                
                .
              
            
          
        
      
    
  




In one particular embodiment of the present invention, each of anti-causal noise predictive finite impulse response (FIR) filters 380, 382, 384, 386 operates on five noise samples (two prior noise samples [n−2 that is a noise sample occurring two bit periods before the current noise sample n0, and n−1 that is a noise sample occurring one bit period before the current noise sample n0], one current noise sample [n0], and two future noise samples [n+1 that is a noise sample occurring one bit period after the current noise sample n0, and n+2 that is a noise sample occurring two bit periods after the current noise sample n0]). The current noise level provided as filtered output 389 corresponds to the bit period of n0. Of note, the use of five noise samples may be changed depending upon the particular embodiment, and based upon the disclosure provided herein, one of ordinary skill in the art will recognize other numbers of noise samples that may be used in relation to different embodiments of the present invention. Further, one of ordinary skill in the art will recognize that the noise samples may be all future noise samples, a combination of the current noise sample and one or more future noise samples, and/or a combination of one or more prior noise samples, the current noise sample, and one or more future noise samples depending upon the particular implementation.
Turning to FIG. 3b, an example anti-causal noise predictive filter bank 331 is shown that may be used in place of anti-causal noise predictive filter back 388 of FIG. 3b. Anti-causal noise predictive filter bank 331 receives a noise sample output 385, digital samples 387, and provides a filtered output 373. Where anti-causal noise predictive filter bank 331 is used in place of anti-causal noise predictive filter bank 388 of FIG. 3a, noise sample output 385 is connected to noise sample output 372, digital samples 387 is connected to digital samples 317, and filtered output 373 is connected to filtered output 389. Anti-causal noise predictive filter bank 331 includes four anti-causal noise predictive filter circuits 333, 335, 337, 339. Of note, more or fewer than four anti-causal noise predictive filter circuits may be used in relation to different embodiments of the present invention.
Anti-causal noise predictive filter circuit 333 applies the following algorithm to the combination of noise sample output 385 and digital samples 387:

yk+2−(g0xk+2+g1xk+1),

where g0 and g1 represent partial response filter taps. Anti-causal noise predictive filter circuit 333 provides the result as an output 343 to a filter circuit 353. Anti-causal noise predictive filter circuit 335 applies the following algorithm to the combination of noise sample output 385 and digital samples 387:

yk+1−(g0xk+1+g1xk)

that is provided as an output 345 to a filter circuit 355; anti-causal noise predictive filter circuit 337 applies the following algorithm to the combination of noise sample output 385 and digital samples 387:

yk−(g0xk+g1xk−1)

that is provided as an output 347 to a filter circuit 357; and

anti-causal noise predictive filter circuit 339 applies the following algorithm to the combination of noise sample output 385 and digital samples 387:

yk−1−(g0xk−1+g1xk−2)

that is provided as an output 349 to a filter circuit 359.

Filter circuit 353 applies a noise filter (f−2) to yield an output 363 that is provided to a summation circuit 371; filter circuit 355 applies a noise filter (f−1) to yield an output 365 that is provided to summation circuit 371; filter circuit 357 applies a noise filter (f0) to yield an output 367 that is provided to summation circuit 371; and filter circuit 359 applies a noise filter (f−1) to yield an output 369 that is provided to summation circuit 371. f−2 is the causal noise predictive filter function corresponding to an occurrence two bit periods prior to the current occurrence; f−1 is the causal noise predictive filter function corresponding to an occurrence one bit period prior to the current occurrence; f0 is the causal noise predictive filter function corresponding to the current occurrence; and f+1 is the causal noise predictive filter function corresponding to an occurrence one bit period after to the current occurrence. Summation circuit 371 aggregates outputs 363, 365, 367, 369 to yield a filtered output 373.
The noise filters may be trained using approaches similar to that used to train causal noise predictive filters. In one particular embodiment of the present invention, training is done that includes constraining the main filter tap f0 to unit while other taps are trained. The trained filter taps can be scaled to facilitate a particular hardware implementation.
As a contrast to the anti-causal implementation, where anti-causal noise predictive filter bank 331 was implemented as a causal noise predictive filter bank, the function of block 333 would be replaced with:

yk−(g0xk+g1xk−1);

the function of block 335 would be replaced with:

yk−1−(g0xk−1+g1xk−2);

the function of block 337 would be replaced with:

yk−2−(g0xk−2+g1xk−3); and

the function of block 339 would be replaced with:

yk−3−(g0xk−3+g1xk−4).

The filter function applied by filter circuit 353 would be f0, the filter function applied by filter circuit 355 would be f1, the filter function applied by filter circuit 357 would be f2, and the filter function applied by filter circuit 353 would be f3.

Returning to FIG. 3a, soft input/soft output data detection circuit 390 is a trellis based data detection circuit that applied a data detection algorithm to filtered output 389 to yield a detect output 327. The data detection algorithm may be any trellis based data detection algorithm known in the art. As some examples, the data detection algorithm may be, but is not limited to, a Viterbi data detection algorithm or a maximum a posteriori data detection algorithm are known in the art. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of data detection algorithms that may be used in relation to different embodiments of the present invention. Data detection circuit 390 may be implemented the same as a data detection circuit would be implemented had a causal noise predictive filter been used in place of anti-causal noise predictive filter circuit 380.
Detected output 327 may include both hard decisions and soft decisions. The terms “hard decisions” and “soft decisions” are used in their broadest sense. In particular, “hard decisions” are outputs indicating an expected original input value (e.g., a binary ‘1’ or ‘0’, or a non-binary digital value), and the “soft decisions” indicate a likelihood that corresponding hard decisions are correct. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of hard decisions and soft decisions that may be used in relation to different embodiments of the present invention.
Detected output 327 is provided to a central queue memory circuit 360 that operates to buffer data passed between data detector circuit 325 and a data decoder circuit 350. When data decoder circuit 350 is available, data decoder circuit 350 receives detected output 327 from central queue memory 360 as a decoder input 356. Data decoder circuit 350 applies a data decoding algorithm to decoder input 356 in an attempt to recover originally written data. The result of the data decoding algorithm is provided as a decoded output 354. Similar to detected output 327, decoded output 354 may include both hard decisions and soft decisions. For example, data decoder circuit 350 may be any data decoder circuit known in the art that is capable of applying a decoding algorithm to a received input. Data decoder circuit 350 may be, but is not limited to, a low density parity check decoder circuit or a Reed Solomon decoder circuit as are known in the art. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of data decoder circuits that may be used in relation to different embodiments of the present invention. Where the original data is recovered (i.e., the data decoding algorithm converges) or a timeout condition occurs, data decoder circuit 350 provides the result of the data decoding algorithm as a data output 352.
One or more iterations through the combination of data detector circuit 325 and data decoder circuit 350 may be made in an effort to converge on the originally written data set. As mentioned above, processing through both the data detector and the data decoder is referred to as a “global iteration”. Further, one or more iterations may be made through data decoder circuit 350 during any given global iteration. These iterations through data decoder circuit 350 are referred to as “local iterations”. For the first global iteration, data detector circuit 325 applies the data detection algorithm without guidance from a decoded output. For subsequent global iterations, data detector circuit 325 applies the data detection algorithm to buffered data 377 as guided by decoded output 354. Decoded output 354 is received from central queue memory 360 as a detector input 329.
Turning to FIG. 4, a flow diagram 400 shows a method in accordance with one or more embodiments of the present invention for data processing including anti-causal noise predictive filtering. Following flow diagram 400, an analog input is received (block 405). The analog input may be derived from, for example, a storage medium or a data transmission channel. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of sources of the analog input. The analog input is converted to a series of digital samples (x[k]) (block 410). This conversion may be done using an analog to digital converter circuit or system as are known in the art. Of note, any circuit known in the art that is capable of converting an analog signal into a series of digital values representing the received analog signal may be used. The resulting digital samples are equalized to yield an equalized output (y[k]) (block 415). In some embodiments of the present invention, the equalization is done using a digital finite impulse response circuit as are known in the art. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of equalizer circuits that may be used in place of such a digital finite impulse response circuit to perform equalization in accordance with different embodiments of the present invention. Of note, the equalized output may include both electronic noise and media noise. The equalized output is stored to a memory as a buffered output (block 420).
Anti-causal noise predictive filtering is performed to yield a noise predictive output (block 425). This anti-causal noise predictive filtering may be done similar to a corresponding causal noise predictive filtering except that at least one future noise sample is incorporated into the filtering. The resulting filtered output provided by the anti-causal noise predictive filtering is consistent with the following equations:




  
    
      n
      k
    
    =
    
      
        
          y
          k
        
        -
        
          y
          
            k
            ,
            ideal
          
        
      
      =
      
        
          y
          k
        
        -
        
          
            ∑
            
              i
              =
              0
            
            I
          
          ⁢
          
            
              g
              i
            
            ⁢
            
              x
              
                k
                -
                i
              
            
          
        
      
    
  
  ,




where nk is noise samples at time k, yk is equalized output 322 (or buffered output 377 depending upon the particular global iteration), xk is digital samples 317, and {gi} is a partial response target. This can be reduced to:





  
    
      
        n
        ^
      
      k
    
    =
    
      
        ∑
        
          l
          =
          
            -
            z
          
        
        
          +
          w
        
      
      ⁢
      
        
          f
          l
        
        ⁢
        
          n
          
            k
            -
            l
          
        
      
    
  
  ,




where {circumflex over (n)}k is the predicted noise at time k, {fl} is an anti-causal noise predictive filter function at time l, w represents a number of prior noise samples, and z represents a number of future bit samples. The predicted error (ek) at time k may be expressed as:





  
    
      
        
          filtered
          ⁢
          
            
          
          ⁢
          output
        
        =
        
          e
          k
        
      
    
  
  
    
      
        =
        
          
            n
            k
          
          -
          
            n
            k
          
        
      
    
  
  
    
      
        =
        
          
            n
            k
          
          -
          
            
              ∑
              
                l
                =
                
                  -
                  z
                
              
              
                +
                w
              
            
            ⁢
            
              
                f
                l
              
              ⁢
              
                
                  n
                  
                    k
                    -
                    l
                  
                
                .
              
            
          
        
      
    
  




In one particular embodiment of the present invention, the anti-causal noise predictive finite impulse response operates on five noise samples (two prior noise samples [n−2 that is a noise sample occurring two bit periods before the current noise sample n0, and n−1 that is a noise sample occurring one bit period before the current noise sample n0], one current noise sample [n0], and two future noise samples [n+1 that is a noise sample occurring one bit period after the current noise sample n0, and n+2 that is a noise sample occurring two bit periods after the current noise sample n0]). The current noise level provided as filtered output 389 corresponds to the bit period of n0. Of note, the use of five noise samples may be changed depending upon the particular embodiment, and based upon the disclosure provided herein, one of ordinary skill in the art will recognize other numbers of noise samples that may be used in relation to different embodiments of the present invention. Further, one of ordinary skill in the art will recognize that the noise samples may be all future noise samples, a combination of the current noise sample and one or more future noise samples, and/or a combination of one or more prior noise samples, the current noise sample, and one or more future noise samples depending upon the particular implementation.
A soft input/soft output data detection algorithm is applied to yield a detected output (block 430). The data detection algorithm may be any trellis based data detection algorithm known in the art. As some examples, the data detection algorithm may be, but is not limited to, a Viterbi data detection algorithm or a maximum a posteriori data detection algorithm are known in the art. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of data detection algorithms that may be used in relation to different embodiments of the present invention. The resulting detected output may include both hard decisions and soft decisions. The terms “hard decisions” and “soft decisions” are used in their broadest sense. In particular, “hard decisions” are outputs indicating an expected original input value (e.g., a binary ‘1’ or ‘0’, or a non-binary digital value), and the “soft decisions” indicate a likelihood that corresponding hard decisions are correct. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of hard decisions and soft decisions that may be used in relation to different embodiments of the present invention.
A data decode algorithm is applied to the detected output to yield a decoded output (block 435). The data decode algorithm may be, but is not limited to, a low density parity check decode algorithm or a Reed Solomon decode algorithm as are known in the art. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of data decode algorithms that may be used in relation to different embodiments of the present invention. It is determined whether the decoded output converged (block 440). Where the decoded output converged (block 440), it is provided as a data output (block 445).
Alternatively, where the decoded output failed to converge (block 440), a subsequent anti-causal noise predictive filtering is performed similar to that described above in relation to block 425 to yield a noise predictive output (block 450). A soft input/soft output data detection algorithm is applied to yield a detected output similar to that described above in relation to block 430, except that the algorithm is guided by the decoded output (block 455). At this juncture, a subsequent data decode is performed (block 435).
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 invention provides novel systems, devices, methods and arrangements for data processing. 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.

## Claims

1. A data processing circuit, the data processing circuit comprising:
an equalizer circuit operable to apply an equalization algorithm to a data input to yield an equalized output;
a data detector circuit including:
an anti-causal noise predictive filter circuit operable to apply noise predictive filtering to a detector input derived from the equalized output to yield a filtered output; and
a data detection circuit operable to apply a data detection algorithm to the filtered output to yield a detected output.

2. The data processing circuit of claim 1, wherein the anti-causal noise predictive filter circuit includes a delay buffer circuit and a noise predictive filter bank.

3. The data processing circuit of claim 2, wherein the noise predictive filter bank includes sixteen anti-causal noise predictive filters each tuned to a different noise pattern.

4. The data processing circuit of claim 3, wherein each of the different noise patterns include at least one future noise sample.

5. The data processing circuit of claim 3, wherein each of the different noise patterns include at least one prior noise sample.

6. The data processing circuit of claim 1, wherein the data detector circuit is operable to provide a detected output, and wherein the data processing circuit further comprises:
a data decoder circuit operable to apply a data decoding algorithm to decoder input derived from the detected output.

7. The data processing circuit of claim 1, wherein the data decoding algorithm is selected from a group consisting of: a Reed Solomon data decoding algorithm, and a low density parity check decoding algorithm.

8. The data processing circuit of claim 1, wherein the data detection algorithm is selected from a group consisting of: a maximum a posteriori data detection algorithm, and a Viterbi algorithm data detector circuit.

9. The data processing circuit of claim 1, wherein the data processing circuit further comprises:
an analog to digital converter circuit operable to convert an analog input into a series of digital samples; and
wherein the data input is derived from the series of digital samples.

10. The data processing circuit of claim 1, wherein the data processing circuit is implemented as part of a device selected from a group consisting of:
a storage device and a receiving device.

11. The data processing circuit of claim 1, wherein the data processing circuit is implemented as part of an integrated circuit.

12. A method, the method comprising:
applying an equalization algorithm to a series of digital samples to yield an equalized output;
anti-causal noise predictive filtering a data input derived from the equalized output using an anti-causal noise predictive filter circuit to yield a filtered output; and
applying a data detection algorithm to the filtered output to yield a detected output.

13. The method of claim 12, wherein the method further comprises:
applying a data decoding algorithm to the detected output to yield a decoded output, wherein the data decoding algorithm is selected from a group consisting of: a Reed Solomon data decoding algorithm, and a low density parity check decoding algorithm.

14. The method of claim 12, wherein the data detection algorithm is selected from a group consisting of: a maximum a posteriori data detection algorithm, and a Viterbi algorithm data detector circuit.

15. The method of claim 12, wherein the anti-causal noise predictive filtering includes noise predictive filtering using at least one future noise sample.

16. The method of claim 12, wherein the anti-causal noise predictive filtering includes noise predictive filtering using at least one prior noise sample.

17. The method of claim 12, wherein the method further comprises:
performing an analog to digital conversion on an analog input to yield the series of digital samples.

18. A storage device, the storage device comprising:
a storage medium;
a head assembly disposed in relation to the storage medium and operable to provide a sensed signal corresponding to information on the storage medium;
a read channel circuit including:
an analog to digital converter circuit operable to sample an analog signal derived from the sensed signal to yield a series of digital samples;
an equalizer circuit operable to equalize the digital samples to yield a detector input; and
a data detector circuit including an anti-causal noise predictive filter circuit and a data detection circuit, wherein the anti-causal noise predictive filter circuit is operable to apply noise predictive filtering to a detector input to yield a filtered output, and wherein the data detection circuit is operable to apply a data detection algorithm to the filtered output derived from the anti-causal noise predictive filter circuit.

19. The storage device of claim 18, wherein the anti-causal noise predictive filter circuit applies noise predictive filtering using at least one future noise sample, and at least one prior noise sample.