# Patent

## Title
Systems and methods for adaptive CBD estimation in a storage device

## Abstract

Various embodiments of the present invention provide systems and methods for adaptive channel bit density estimation. For example, various embodiments of the present invention provide methods for adaptively estimating channel bit density. Such methods include providing a storage medium (178) that includes information corresponding to a process data set, and accessing the process data set from the storage medium (505). A first channel bit density estimate (535) is computed based at least in part on a first portion of the process data set (520-530), and a second channel bit density estimate (535) is calculated based at least in part on the first portion of the process data set, a second portion of the process data set (520-530) and the first channel bit density estimate (535).

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
The present application claims priority to (is a non-provisional of) U.S. Pat. App. No. 61/013,657 entitled “Adaptive CBD Estimation for Closed-Loop Fly Height Control”, and filed Dec. 14, 2007 by Mathew et al. The entirety of the aforementioned application is incorporated herein by reference for all purposes.


BACKGROUND OF THE INVENTION
The present inventions are related to systems and methods for accessing a storage medium, and more particularly to systems and methods for determining the location of a read/write head assembly in relation to a storage medium.
Writing information to a magnetic storage medium includes generating a magnetic field in close proximity to the storage medium to be written. This may be done using a read/write head assembly as are commonly known in the art, and is highly dependent on properly positioning the read/write head assembly in relation to a magnetic storage medium. In particular, the distance between the read/write head assembly and the storage medium is commonly referred to as fly-height. Proper control of the fly-height helps to assure that the read back signal exhibits the best possible signal-to-noise ratio, and thereby improves performance. In a typical implementation, fly-height is determined based on harmonic measurements during a non-operational period. Such an approach uses a vacant or dedicated area on the magnetic storage medium to write a periodic pattern from which the harmonics may be measured. While the approach provides a reasonable static estimate of fly-height, it does not provide an indication of any change in fly-height occurring during standard operational periods. As such, the approaches do not provide an ability to adjust for changes occurring during the operation of the disk. Other approaches use CBD estimation to determine fly-height. This approach relies on estimating the CBD from various ADC samples by means of a de-convolution approach. This is based on truncating the correlation-length of the channel impulse response, and approximating the channel impulse response by the dipulse (bit) response. The de-convolution requires matrix inversion, and it becomes very difficult to implement the matrix inversion as the matrix size increases, which it does as the truncation length of the channel correlation is relaxed. It is also difficult to use this approach to obtain the CBD variation in continuous fashion, as it works on a block by block basis. Yet other approaches use an available AGC signal for inferring the fly-height. Such an approach is able to continuously monitor fly-height during normal operational periods, however, the accuracy of the approach is significantly diminished due to PVT-induced variations in the signal/circuits. More importantly, none of the aforementioned approaches facilitate fly-height monitoring and control during normal operation write operations.
Hence, for at least the aforementioned reasons, there exists a need in the art for advanced systems and methods for determining fly-height.
BRIEF SUMMARY OF THE INVENTION
The present inventions are related to systems and methods for accessing a storage medium, and more particularly to systems and methods for determining the location of a read/write head assembly in relation to a storage medium.
Various embodiments of the present invention provide methods for adaptively estimating channel bit density. Such methods include providing a storage medium that includes information corresponding to a process data set, and accessing the process data set from the storage medium. A first channel bit density estimate is computed based at least in part on a first portion of the process data set, and a second channel bit density estimate is calculated based at least in part on the first portion of the process data set, a second portion of the process data set and the first channel bit density estimate.
In some instances of the aforementioned embodiments, accessing the process data set from the storage medium includes performing an analog to digital conversion on information derived from the storage medium to provide a first set of digital samples, and performing a data detection on the first set of digital samples to create a second set of digital samples. In such instances, the process data set includes the first set of digital samples and the second set of digital samples. In such instances, computing the second channel bit density estimate may include performing a channel model calculation using a channel model calculation circuit, and based at least in part on the second set of digital samples and the first channel bit density estimate. In addition, such instances may further include subtracting an output derived from the channel model calculation circuit from the first set of digital samples to yield an error signal. This error signal may be used in relation to other inputs to calculate the second channel bit density estimate.
Various instances of the aforementioned embodiments include computing a gain factor based at least in part on a preceding gain factor. The first output derived from the channel model calculation circuit is a second output derived from the channel model calculation circuit multiplied by the gain factor. In some instances of the aforementioned embodiments, the first channel bit density estimate and the second channel bit density estimate are used to characterize a read/write head assembly disposed in relation to the storage medium. In other instances of the aforementioned embodiments, the first channel bit density estimate and the second channel bit density estimate are used to optimize a read channel accepting data from the storage medium.
Other embodiments of the present invention provide continuous output CBD estimation circuits that include a read channel circuit, a channel model calculation circuit, a summation circuit, and an adaptive CBD calculation circuit. The read channel circuit includes an analog to digital converter and a data detector. The analog to digital converter receives an analog signal corresponding to a process data set maintained on a storage medium, and provides a series of digital samples corresponding to the analog signal. The data detector receives the series of digital samples and provides a series of detected samples based on the series of data samples. The channel model calculation circuit receives the series of detected samples and a first channel bit density estimate. Based on these inputs, the channel model calculation circuit provides a channel model output. The summation circuit is operable to subtract an output derived from the channel model calculation circuit from the series of digital samples to yield an error signal. The adaptive CBD calculation circuit calculates a second channel bit density estimate based at least in part on an output derived from the channel model output, the error signal, the series of digital samples, and the series of detected samples.
In some instances of the aforementioned embodiments, the process data set is user data, and the analog to digital converter receives the analog signal during a user read of the storage medium. As used herein, the phrase “user read of the storage medium” is used in its broadest sense to mean a period when the storage medium is being accessed for purposes other than just CBD value estimation. Thus, for example, it may be a period when a user is accessing data from the storage medium for use in relation to a particular application. In such cases, the CBD estimation process is performed in parallel to such user reads.
Yet other embodiments of the present invention provide storage devices that include a storage medium, a read/write head assembly, and an adaptive CBD estimation circuit. The storage medium includes information corresponding to a process data set, and the read/write head assembly disposed in relation to the storage medium. The adaptive CBD estimation circuit receives the process data set via the read/write head assembly, computes a first channel bit density estimate based at least in part on a first portion of the process data set, and computes a second channel bit density estimate based at least in part on the first portion of the process data set, a second portion of the process data set and the first channel bit density estimate. In some instances of the aforementioned embodiments, the process data set is user data. As used herein, the phrase “user data” is used in its broadest sense to mean any data stored to a storage medium by a user and intended for use beyond just CBD estimation. Thus, user data may be, for example, data written to a storage medium by a user application and intended for later retrieval by the same application.
In some instances of the aforementioned embodiments, the storage device further includes a read channel circuit having an analog to digital converter and a data detector. The analog to digital converter receives an analog signal corresponding to the process data set and provides a series of digital samples corresponding to the analog signal. The data detector receives the series of digital samples and provides a series of detected samples based on the series of data samples. In some cases, the process data set includes the series of digital samples and the series of detected samples. In various cases, the adaptive CBD estimation circuit includes a channel model calculation circuit that receives the series of detected samples and the first channel bit density estimate, and provides a channel model output based at least in part thereon. In some instances of the aforementioned embodiments, the adaptive CBD estimation circuit includes a summation circuit that is operable to subtract an output derived from the channel model calculation circuit from the series of digital samples to yield an error signal. In such instances, the second channel bit density estimate may be calculated based at least in part on the error signal, the series of detected samples, the series of digital samples, and the first channel bit density estimate.
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. 1A depicts a storage system including an adaptive CBD based fly-height compensation circuit in accordance with various embodiments of the present invention;
FIG. 1B depicts a read/write head assembly disposed in relation to a storage medium as a way to graphically display fly-height;
FIG. 2 is a block diagram of an adaptive CBD estimation and fly-height adjustment system 200 in accordance with various embodiments of the present invention;
FIG. 3 is a detailed block diagram of an adaptive CBD estimation circuit in accordance with one or more embodiments of the present invention;
FIG. 4 shows an implementation of an adaptive CBD and gain calculation circuit in accordance with various embodiments of the present invention;
FIG. 5 is a detailed block diagram of an adaptive CBD estimation circuit in accordance with other embodiments of the present invention;
FIG. 6 is a flow diagram showing a method in accordance with various embodiments of the present invention for providing a continuous CBD estimate; and
FIG. 7 is a flow diagram showing a method in accordance with one or more embodiments of the present invention for providing a continuous fly-height adjustment.



DETAILED DESCRIPTION OF THE INVENTION
The present inventions are related to systems and methods for accessing a storage medium, and more particularly to systems and methods for determining the location of a read/write head assembly in relation to a storage medium.
Various embodiments of the present invention provide a scheme that facilitates continuous monitoring and control of the fly-height using an adaptive approach for tracking variations in channel bit density (CBD). It has been determined that fly-height is monotonically related to CBD in a linear or nonlinear fashion. Thus, by tracking variations in CBD, variations in fly-height can be detected. Using the approach, a signal read back from a storage medium is digitized using an analog to digital converter, and from there is linearized through use of a current estimate of the CBD in a known model of the linear channel in conjunction with the data-bits available from a read channel detector output. An adaptive algorithm is applied to minimize the linearization error, and updates the current CBD estimate using the instantaneous value of the gradient of the linearization error. In some cases, the adaptive algorithm begins with a default choice for the CBD estimate, which is later updated as better information becomes available.
Among other things, such an approach provides an ability to continuously update the CBD estimate, and to continuously monitor any variation in fly-height. The variation of the CBD and fly-eight can be estimated on a sample by sample basis, and to provide corresponding control of fly-height. In some cases, the approach is less susceptible to PVT-induced variations when compared with other approaches. In addition, CBD estimation in accordance with some embodiments of the present invention may be performed during read operations. Further, in some instances of the aforementioned embodiments, the CBD obtained may be used independent of determining fly-height. For example, such CBD estimates may be used to characterize the read/write head assembly and/or the storage medium and to optimize the read channel.
Turning to FIG. 1A, a storage system 100 including an adaptive CBD based fly-height compensation circuit 114 is shown in accordance with various embodiments of the present invention. Storage system 100 may be, for example, a hard disk drive. In addition, storage system 100 includes an interface controller 120, a preamplifier 112, 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 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). A read channel circuit 110 receives information from preamplifier 112 and performs a data decode/detection process as is known in the art to recover the data originally written to disk platter 178 as read data 103. In addition, read channel circuit 110 receives write data 101 and provides it to preamplifier 112 in a form writable to disk platter 178 as is known in the art.
Adaptive CBD based fly-height compensation circuit 114 receives the detected data from read channel circuit 110 along with an analog to digital conversion of the pre-detected data from preamplifier 112. Using this information, adaptive CBD based fly-height compensation circuit 114 adaptively computes CBD values, converts the CBD values to fly-height compensation values and provides the fly-height compensation values to read/write head assembly 176 via preamplifier 112 to adjust the fly-height. FIG. 1B depicts an exemplary fly-height 195, which is the distance between read/write head assembly 176 and disk platter 178.
In operation, read/write head assembly 178 is positioned adjacent the proper data track, and 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 112. Preamplifier 112 is operable to amplify the minute analog signals accessed from disk platter 178. In addition, preamplifier 112 is operable to amplify data from read channel circuit 110 that is destined to be written to 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 module 110. This data is then encoded and written to disk platter 178. During the read and write processes (or during an offline time period), adaptive CBD based fly-height compensation circuit 114 detects variations in the CBD and provides corresponding fly-height adjustments.
Turning to FIG. 2, a block diagram of an adaptive CBD estimation and fly-height adjustment system 200 is depicted in accordance with various embodiments of the present invention. Adaptive CBD estimation and fly-height adjustment system 200 includes a read channel circuit 210. Read channel circuit 210 may be implemented in accordance with different read channel circuits known in the art. In this particular embodiment of the present invention, read channel circuit 210 includes an analog to digital converter 217 and a data detection/decoding circuit 215. It should be noted that an analog front end (not shown) may be implemented between preamplifier 250 and analog to digital converter 217. Such an analog front end performs various signal conditioning functions as are known in the art. Analog to digital converter 217 may be any circuit capable of converting an analog input signal 252 into a series of digital samples 219 corresponding to the analog input. Data detection/decoding circuit 215 may be any detector/decoder or combination thereof that is capable of receiving digital samples 219 and detecting a data pattern 213 therefrom. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a variety of read channel circuits, analog to digital converters, and/or data detection/decoding circuits that may be used in accordance with different embodiments of the present invention.
In addition, adaptive CBD estimation and fly-height adjustment system 200 includes an adaptive CBD estimation circuit 220 that receives digital samples 219 along with a corresponding detected data set 213 that is provided by data detection/decoding circuit 215. Adaptive CBD estimation circuit 220 adaptively calculates a CBD value 222 corresponding to the received data. Adaptive CBD estimation circuit 220 receives samples on a bit by bit basis and is able to continuously update CBD value 222 on each clock cycle where desired, or on some less frequent basis where such is desired. In some cases, the data used to calculate CBD value 222 is derived from user data retrieved from a storage medium (not shown). In general, adaptive CBD estimation circuit 220 models digital samples 219 using a channel model that is parameterized to use a prior CBD estimate. Based on this, an updated CBD value 222 is generated by minimizing the mean-square error between digital samples 219 and the output samples of the channel model.
CBD value 222 is provided to a conversion circuit 230 that maps CBD value 222 into a corresponding fly-height offset value 232. As variations in fly-height correspond to variations in CBD, the aforementioned mapping implements a correlating function. In some embodiments of the present invention, the function is a linear or non-linear function that correlates CBD value 222 to fly-height offset value 232. Fly-height offset value 232 is provided to a series of circuits capable of implementing thermal fly-height control as is known in the art. Such circuits may include a fly-height heater power conversion circuit 240 that converts fly-height offset value 232 into a power offset 242 as is known in the art. Power offset 242 is provided to a preamplifier circuit 250 that incorporates power offset value 242 into a heater value 252 as is known in the art. Heater value 252 is provided to a read/write head assembly 260, which is modified based on heater value 252 to adjust the distance of read/write head assembly to an associated storage medium as is known in the art. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a variety of approaches, circuits, and/or methodologies that may be used or controlling the fly-height based on the information provided by the CBD estimation circuit of system 200.
Turning to FIG. 3, a block diagram of an adaptive CBD estimation circuit 300 is shown in accordance with various embodiments of the present invention. Adaptive CBD estimation circuit 300 provides a series of CBD estimates 322, z[n], corresponding to the received data. Adaptive CBD estimation circuit 300 receives digital samples 305 from an analog to digital converter (not shown), and detected bits 310 from a data decoder/detection circuit (not shown). Digital samples 305 and detected bits 310 each correspond to an analog signal derived from a storage medium. Digital samples 305 are provided to a band pass filter 320 that attenuates the signal and noise outside the defined filter bandwidth from digital samples 305 and provides an output 325, x[n]. Band pass filter 320 may be any digital band pass filter known in the art. In some embodiments of the present invention, the corner frequencies of band pass filter 320 are chosen such that the lower corner is higher than an AC coupler circuit used to receive the input signal, and the higher corner is lower than that of a continuous time filter receiving the input signal. Such design constraints increase the robustness to variations in the roll-off regions of front end analog filters.
Detected bits 310, a[n], are provided to a channel model circuit 330 along with a CBD estimate 322, W[n−1], from a preceding period. Channel model 330 provides an estimation 335, y0[n], of the response of the channel in accordance with the following equation:




  
    
      
        y
        0
      
      ⁡
      
        [
        n
        ]
      
    
    =
    
      
        ∑
        
          m
          =
          
            -
            M
          
        
        M
      
      ⁢
      
        
          
            h
            b
          
          ⁡
          
            [
            
              m
              ,
              n
            
            ]
          
        
        ⁢
        
          a
          ⁡
          
            [
            
              n
              -
              m
            
            ]
          
        
      
    
  
  ,




where hb[m, n] denotes the bit response of the channel parameterized by the CBD estimate, W[n], and represented by the following equations:




  
    
      
        
          h
          b
        
        ⁡
        
          [
          
            m
            ,
            n
          
          ]
        
      
      =
      
        
          
            h
            s
          
          ⁡
          
            [
            
              m
              ,
              n
            
            ]
          
        
        -
        
          
            h
            s
          
          ⁡
          
            [
            
              
                m
                -
                1
              
              ,
              n
            
            ]
          
        
      
    
    ,
    
      

    
    ⁢
    and
  




  
    
      
        
          h
          s
        
        ⁡
        
          [
          
            m
            ,
            n
          
          ]
        
      
      =
      
        erf
        (
        
          2
          ⁢
          
            
              ln
              ⁢
              
                
              
              ⁢
              2
            
          
          ⁢
          
            m
            
              W
              ⁡
              
                [
                n
                ]
              
            
          
        
        )
      
    
    ,
    
      

    
    ⁢
    
      
        for
        ⁢
        
          
        
        ⁢
        m
      
      =
      0
    
    ,
    
      +
      
        /
        
          -
          1
        
      
    
    ,
    
      +
      
        /
        
          -
          2
        
      
    
    ,
    ...
    ⁢
    
      
    
    ,
    
      +
      
        /
        
          -
          
            M
            .
          
        
      
    
  



where hs[m, n] denotes the step response, erf is an error function, M is an integer, and 2M+1 is the length of the channel bit response. In some embodiments of the present invention, the CBD is defined as the ratio of the width of the impulse response of the channel at fifty percent of its peak amplitude to the duration of one bit on the storage medium associated with adaptive CBD estimation circuit 300. Channel model output 335 is provided to a band pass filter 340 that attenuates the signal and noise outside the defined filter bandwidth from digital samples 335 and provides an output 345, {tilde over (d)}[n]. Band pass filter 340 may be any digital band pass filter known in the art. In some embodiments of the present invention, the corner frequencies of band pass filter 340 are chosen to match any continuous time filter and/or AC coupling circuit used to receive the input signal, or similar to the corner frequencies of band pass filter 320. Output 345 is represented by the following equation:





  
    
      
        d
        ~
      
      ⁡
      
        [
        n
        ]
      
    
    =
    
      
        ∑
        k
      
      ⁢
      
        
          q
          ⁡
          
            [
            k
            ]
          
        
        ⁢
        
          
            y
            0
          
          ⁡
          
            [
            
              n
              -
              k
            
            ]
          
        
      
    
  
  ,




where q[k] denotes the impulse response of band pass filter 340, and y0[n] denotes output 335 of the channel model.
A time varying gain factor 380, A[n], is applied to output 345 using a multiplication circuit 350 to yield an output 355 in accordance with the following equation:

d[n]=A[n]*{tilde over (d)}[n]. 

Gain factor 380 provides robustness against gain variations in the analog to digital converter. In particular, gain factor 380 is adaptively adjusted to follow the amplitude in the signal at the output of the analog to digital converter. Output 355 is subtracted from output 325 using a summation circuit 360 to yield an error signal 365, e[n], in accordance with the following equation:

e[n]=x[n]−d[n]=x[n]−A[n]*{tilde over (d)}[n]. 

An adaptive CBD and gain calculation circuit 370 receives error signal 365 and detected bits 310. Using these inputs, adaptive CBD and gain calculation circuit 370 estimates CBD 322 and gain factor 380 by minimizing the mean-square value of error signal 365. This is done adaptively by using an instantaneous gradient based least mean-square algorithm that is known in the art. The gradients are defined by the following equations:




  
    
      
        
          ∂
          
            e
            ⁡
            
              [
              n
              ]
            
          
        
        
          ∂
          W
        
      
      =
      
        
          
            -
            A
          
          ⁢
          
            
              ∑
              k
            
            ⁢
            
              
                ∑
                m
              
              ⁢
              
                
                  b
                  ⁡
                  
                    [
                    
                      n
                      -
                      k
                    
                    ]
                  
                
                ⁢
                
                  
                    h
                    w
                  
                  ⁡
                  
                    [
                    m
                    ]
                  
                
                ⁢
                
                  q
                  ⁡
                  
                    [
                    
                      k
                      -
                      m
                    
                    ]
                  
                
              
            
          
        
        ≡
        
          -
          
            
              Ay
              2
            
            ⁡
            
              [
              n
              ]
            
          
        
        ≡
        
          -
          
            
              y
              3
            
            ⁡
            
              [
              n
              ]
            
          
        
      
    
    ,
    
      

    
    ⁢
    
      
        
          ∂
          
            e
            ⁡
            
              [
              n
              ]
            
          
        
        
          ∂
          A
        
      
      =
      
        -
        
          
            d
            ~
          
          ⁡
          
            [
            n
            ]
          
        
      
    
    ,
    
      

    
    ⁢
    
      
        
          h
          w
        
        ⁡
        
          [
          m
          ]
        
      
      =
      
        
          
            ∂
            
              
                h
                s
              
              ⁡
              
                [
                m
                ]
              
            
          
          
            ∂
            W
          
        
        =
        
          
            -
            4
          
          ⁢
          
            
              
                ln
                ⁢
                
                  
                
                ⁢
                2
              
              π
            
          
          *
          
            m
            
              W
              2
            
          
          *
          
            exp
            ⁡
            
              (
              
                
                  -
                  4
                
                ⁢
                
                  
                
                ⁢
                ln
                ⁢
                
                  
                
                ⁢
                2
                ⁢
                
                  
                    m
                    2
                  
                  
                    W
                    2
                  
                
              
              )
            
          
        
      
    
    ,
    
      

    
    ⁢
    and
  




  
    
      b
      ⁡
      
        [
        n
        ]
      
    
    =
    
      
        a
        ⁡
        
          [
          n
          ]
        
      
      -
      
        
          a
          ⁡
          
            [
            
              n
              -
              1
            
            ]
          
        
        .
      
    
  



In the aforementioned equations, b[n] denotes the transition sequence equal to a logic ‘1’ when a transition occurs and a logic ‘0’ where no transition is indicated, and hw[m] denotes the width response of the channel parameterized by the CBD, W. In some embodiments of the present invention, the computational complexity is reduced and error propagation from fixed point circuit implementation is limited by choosing band pass filters 320, 340 to be finite impulse response filters with 2L+1 taps. The transfer function of the band pass filters is defined by the following equation:





  
    
      H
      ⁡
      
        (
        z
        )
      
    
    =
    
      
        ∑
        
          -
          L
        
        L
      
      ⁢
      
        
          Θ
          ⁡
          
            [
            i
            ]
          
        
        ⁢
        
          z
          
            -
            1
          
        
      
    
  
  ,




where Θ[i] denotes the coefficients of the finite impulse response filter.

The aforementioned equations may be used adaptively such that a progressively more accurate CBD estimation 322 is achieved. The following equations represent the algorithm of adaptive CBD estimation circuit 300 modified for adaptive operation.




  
    
      
        
          
            
              h
              s
            
            ⁡
            
              [
              
                m
                ,
                n
              
              ]
            
          
          =
          
            erf
            (
            
              2
              ⁢
              
                
                  ln
                  ⁢
                  
                    
                  
                  ⁢
                  2
                
              
              ⁢
              
                m
                
                  W
                  ⁡
                  
                    [
                    n
                    ]
                  
                
              
            
            )
          
        
        ,
        
          

        
        ⁢
        
          
            for
            ⁢
            
              
            
            ⁢
            m
          
          =
          0
        
        ,
        
          +
          
            /
            
              -
              1
            
          
        
        ,
        
          +
          
            /
            
              -
              2
            
          
        
        ,
        ...
        ⁢
        
          
        
        ,
        
          +
          
            /
            
              -
              M
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          a
        
        )
      
    
  
  
    
      
        
          
            
              h
              b
            
            ⁡
            
              [
              
                m
                ,
                n
              
              ]
            
          
          =
          
            
              
                h
                s
              
              ⁡
              
                [
                
                  m
                  ,
                  n
                
                ]
              
            
            -
            
              
                h
                s
              
              ⁡
              
                [
                
                  
                    m
                    -
                    1
                  
                  ,
                  n
                
                ]
              
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          b
        
        )
      
    
  
  
    
      
        
          
            
              h
              w
            
            ⁡
            
              [
              m
              ]
            
          
          =
          
            
              -
              4
            
            ⁢
            
              
                
                  ln
                  ⁢
                  
                    
                  
                  ⁢
                  2
                
                π
              
            
            *
            
              m
              
                W
                2
              
            
            *
            
              exp
              ⁡
              
                (
                
                  
                    -
                    4
                  
                  ⁢
                  
                    
                  
                  ⁢
                  ln
                  ⁢
                  
                    
                  
                  ⁢
                  2
                  ⁢
                  
                    
                      m
                      2
                    
                    
                      W
                      2
                    
                  
                
                )
              
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          c
        
        )
      
    
  
  
    
      
        
          
            x
            ⁡
            
              [
              n
              ]
            
          
          =
          
            
              ∑
              
                i
                =
                
                  -
                  L
                
              
              L
            
            ⁢
            
              
                Θ
                ⁡
                
                  [
                  i
                  ]
                
              
              ⁢
              
                z
                ⁡
                
                  [
                  
                    n
                    -
                    i
                  
                  ]
                
              
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          d
        
        )
      
    
  
  
    
      
        
          
            b
            ⁡
            
              [
              n
              ]
            
          
          =
          
            
              a
              ⁡
              
                [
                n
                ]
              
            
            -
            
              a
              ⁡
              
                [
                
                  n
                  -
                  1
                
                ]
              
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          e
        
        )
      
    
  
  
    
      
        
          
            
              y
              0
            
            ⁡
            
              [
              n
              ]
            
          
          =
          
            
              ∑
              
                m
                =
                
                  -
                  M
                
              
              M
            
            ⁢
            
              
                
                  h
                  b
                
                ⁡
                
                  [
                  
                    m
                    ,
                    n
                  
                  ]
                
              
              ⁢
              
                a
                ⁡
                
                  [
                  
                    n
                    -
                    m
                  
                  ]
                
              
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          f
        
        )
      
    
  
  
    
      
        
          
            
              d
              ~
            
            ⁡
            
              [
              n
              ]
            
          
          =
          
            
              
                ∑
                L
              
              
                i
                =
                
                  -
                  L
                
              
            
            ⁢
            
              
                Θ
                ⁡
                
                  [
                  i
                  ]
                
              
              ⁢
              
                
                  y
                  0
                
                ⁡
                
                  [
                  
                    n
                    -
                    i
                  
                  ]
                
              
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          g
        
        )
      
    
  
  
    
      
        
          
            e
            ⁡
            
              [
              n
              ]
            
          
          =
          
            
              x
              ⁡
              
                [
                n
                ]
              
            
            -
            
              
                A
                ⁡
                
                  [
                  n
                  ]
                
              
              *
              
                
                  d
                  ~
                
                ⁡
                
                  [
                  n
                  ]
                
              
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          h
        
        )
      
    
  
  
    
      
        
          
            
              y
              1
            
            ⁡
            
              [
              n
              ]
            
          
          =
          
            
              ∑
              
                m
                =
                
                  -
                  M
                
              
              M
            
            ⁢
            
              
                
                  h
                  w
                
                ⁡
                
                  [
                  
                    m
                    ,
                    n
                  
                  ]
                
              
              ⁢
              
                b
                ⁡
                
                  [
                  
                    n
                    -
                    m
                  
                  ]
                
              
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          i
        
        )
      
    
  
  
    
      
        
          
            
              y
              2
            
            ⁡
            
              [
              n
              ]
            
          
          =
          
            
              ∑
              
                m
                =
                
                  -
                  L
                
              
              L
            
            ⁢
            
              
                Θ
                ⁡
                
                  [
                  i
                  ]
                
              
              ⁢
              
                
                  y
                  1
                
                ⁡
                
                  [
                  
                    n
                    -
                    i
                  
                  ]
                
              
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          j
        
        )
      
    
  
  
    
      
        
          
            
              y
              3
            
            ⁡
            
              [
              n
              ]
            
          
          =
          
            
              A
              ⁡
              
                [
                n
                ]
              
            
            *
            
              
                y
                2
              
              ⁡
              
                [
                n
                ]
              
            
          
        
        ,
      
    
    
      
        (
        
          1
          ⁢
          k
        
        )
      
    
  
  
    
      
        
          
            W
            ⁡
            
              [
              
                n
                +
                1
              
              ]
            
          
          =
          
            
              W
              ⁡
              
                [
                n
                ]
              
            
            +
            
              
                μ
                1
              
              *
              
                e
                ⁡
                
                  [
                  n
                  ]
                
              
              *
              
                
                  y
                  3
                
                ⁡
                
                  [
                  n
                  ]
                
              
            
          
        
        ,
        
          

        
        ⁢
        and
      
    
    
      
        (
        
          1
          ⁢
          l
        
        )
      
    
  
  
    
      
        
          A
          ⁡
          
            [
            
              n
              +
              1
            
            ]
          
        
        =
        
          
            A
            ⁡
            
              [
              n
              ]
            
          
          +
          
            
              μ
              2
            
            *
            
              e
              ⁡
              
                [
                n
                ]
              
            
            *
            
              
                
                  d
                  ~
                
                ⁡
                
                  [
                  n
                  ]
                
              
              .
            
          
        
      
    
    
      
        (
        
          1
          ⁢
          m
        
        )
      
    
  




The aforementioned equations describe various operations of the circuits of adaptive CBD estimation circuit 300. In particular, x[n] describes output 325 from band pass filter 320, y0[n] describes output 335 from channel model circuit 330, {tilde over (d)}[n] describes output 345 from band pass filter 340, A[n+1] describes an adaptively updated gain factor 380 and W[n+1] describes and adaptively updated CBD estimate 322 from adaptive CBD and gain calculation circuit 370, and e[n] describes error signal 365 from summation circuit 360. y1[n] is the output of a width response model implemented as part of adaptive CBD and gain calculation circuit 370, y2[n] is a filtered version of y1[n], and y3[n] is a gain adjusted version of y2[n]. μ1 and μ2 are settable gain values that control the speed of the adaptive loop.
It should be noted that while various components of adaptive CBD estimation circuit 300 are described as “circuits” they may be implemented either as an electronic circuit or as a software/firmware circuit. Such software/firmware circuits include a processor associated with a memory device that includes instructions executable by the processor to perform the particular functions described herein. Such processors may be general purpose processors or processors specifically tailored to perform a given function depending upon the particular implementation requirements. In some cases, the processor may be designed to perform functions related to more than one particular module. In some embodiments of the present invention, adaptive CBD estimation circuit 300 is implemented entirely as firmware or software being executed by a processor. In other embodiments of the present invention, adaptive CBD estimation circuit 300 is implemented entirely as a dedicated electronic circuit. In yet other embodiments of the present invention, adaptive CBD estimation circuit 300 is implemented as a combination of firmware or software being executed on a processor, and dedicated electronic circuitry. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a variety of combinations of dedicated electronic circuitry and software/firmware that may be used in accordance with different embodiments of the present invention.
Turning to FIG. 4, an implementation of an adaptive CBD and gain calculation circuit 400 is shown in accordance with various embodiments of the present invention. Adaptive CBD and gain calculation circuit 400 includes a channel bit response model circuit 410, a channel width response circuit 420, summation circuits 425, 430, 435, delay buffer circuits 450, 460, and multiplication circuits 475, 480. Adaptive CBD and gain calculation circuit 400 receives a series of digital samples 485 from an analog to digital converter (not shown), a series of detected samples 490 from a data detector (not shown), and provides an updated CBD estimate 495 and an updated gain factor 499. In some embodiments of the present invention, the digital samples from the analog to digital converter may go through a series of circuits intended for conditioning the digital samples to improve the accuracy and robustness of the CBD estimation circuit. Examples of these special circuits include the band pass filter 320 and circuits such as temperature compensation filter and phase compensation filter that are discussed later in this invention. The function of each of the various circuits is described mathematically with an equation associated with the output of each of the circuits.
Similar to adaptive CBD estimation circuit 300, it should be noted that while various components of adaptive CBD and gain calculation circuit 400 are described as “circuits” that they may be implemented either as an electronic circuit or as a software/firmware circuit. Such software/firmware circuits include a processor associated with a memory device that includes instructions executable by the processor to perform the particular functions described herein. Such processors may be general purpose processors or processors specifically tailored to perform a given function depending upon the particular implementation requirements. In some cases, the processor may be designed to perform functions related to more than one particular module. In some embodiments of the present invention, adaptive CBD and gain calculation circuit 400 is implemented entirely as firmware or software being executed by a processor. In other embodiments of the present invention, adaptive CBD and gain calculation circuit 400 is implemented entirely as a dedicated electronic circuit. In yet other embodiments of the present invention, adaptive CBD and gain calculation circuit 400 is implemented as a combination of firmware or software being executed on a processor, and dedicated electronic circuitry. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a variety of combinations of dedicated electronic circuitry and software/firmware that may be used in accordance with different embodiments of the present invention.
Various modifications to the previously described circuits may be implemented to improve estimation accuracy and operational robustness. From equations (1a and 1c) it is noted that special functions erf(x) and exp(x) have to be computed for 2M+1 values of x at each sample instant n. Evaluation of these special functions, especially erf(x), can be complicated in a hardware implementation. Thus, some embodiments of the present invention utilize other models for the channel. In one such case, a hyperbolic tangent model is used that reduces the complexity of a hardware implementation. Such a hyperbolic tangent model is based on an isolated step-response and width responses as set forth in the following equations:

hs[m]=tan h(α*m/W1), for m=0, +/−1, +/−2, . . . , +/−M, and

hw[m]=−α*m/W12 sec h2(α*m/W1),

where α is a constant and W1 is related to the CBD in accordance with the following equation:





  CBD
  =
  
    
      
        2
        ⁢
        
          
            cosh
            
              -
              1
            
          
          ⁡
          
            (
            
              2
            
            )
          
        
      
      α
    
    ⁢
    
      
        W
        1
      
      .
    
  




In some cases, α has a value of log(3) or π.

To simplify the discussion, let

{tilde over (W)}=W1/α1.

Using the aforementioned simplification along with the identity sec h2(x)=1−tan h2(x), the step and width response can be re-written as:





  
    
      
        
          
            
              h
              s
            
            ⁡
            
              [
              m
              ]
            
          
          =
          
            
              tan
              ⁢
              
                
              
              ⁢
              
                h
                ⁡
                
                  (
                  
                    m
                    /
                    
                      W
                      ~
                    
                  
                  )
                
              
            
            =
            
              
                1
                -
                
                  exp
                  ⁡
                  
                    (
                    
                      
                        -
                        2
                      
                      ⁢
                      
                        m
                        /
                        
                          W
                          ~
                        
                      
                    
                    )
                  
                
              
              
                1
                +
                
                  exp
                  ⁡
                  
                    (
                    
                      
                        -
                        2
                      
                      ⁢
                      
                        m
                        /
                        
                          W
                          ~
                        
                      
                    
                    )
                  
                
              
            
          
        
        ,
        
          

        
        ⁢
        
          
            for
            ⁢
            
              
            
            ⁢
            m
          
          =
          0
        
        ,
        
          +
          
            /
            
              -
              1
            
          
        
        ,
        
          +
          
            /
            
              -
              2
            
          
        
        ,
        ...
        ⁢
        
          
        
        ,
        
          +
          
            /
            
              -
              M
            
          
        
        ,
      
    
    
      
        (
        
          2
          ⁢
          a
        
        )
      
    
  
  
    
      
        
          
            
              
                
                  
                    h
                    w
                  
                  ⁡
                  
                    [
                    m
                    ]
                  
                
                =
                
                ⁢
                
                  
                    -
                    
                      m
                      
                        
                          W
                          ~
                        
                        2
                      
                    
                  
                  ⁢
                  sec
                  ⁢
                  
                    
                  
                  ⁢
                  
                    
                      h
                      2
                    
                    ⁡
                    
                      (
                      
                        m
                        /
                        
                          W
                          ~
                        
                      
                      )
                    
                  
                
              
            
          
          
            
              
                =
                
                ⁢
                
                  
                    -
                    
                      m
                      
                        
                          W
                          ~
                        
                        2
                      
                    
                  
                  ⁢
                  
                    (
                    
                      1
                      -
                      
                        tan
                        ⁢
                        
                          
                        
                        ⁢
                        
                          
                            h
                            2
                          
                          ⁡
                          
                            (
                            
                              m
                              /
                              
                                W
                                ~
                              
                            
                            )
                          
                        
                      
                    
                    )
                  
                
              
            
          
          
            
              
                
                  =
                  
                  ⁢
                  
                    
                      -
                      
                        m
                        
                          
                            W
                            ~
                          
                          2
                        
                      
                    
                    ⁢
                    
                      (
                      
                        1
                        -
                        
                          
                            h
                            s
                            2
                          
                          ⁡
                          
                            [
                            m
                            ]
                          
                        
                      
                      )
                    
                  
                
                ,
              
            
          
        
        ⁢
        
          

        
        ⁢
        and
      
    
    
      
        (
        
          2
          ⁢
          b
        
        )
      
    
  
  
    
      
        CBD
        =
        
          2
          ⁢
          
            
          
          ⁢
          
            
              cosh
              
                -
                1
              
            
            ⁡
            
              (
              
                2
              
              )
            
          
          *
          
            
              W
              ~
            
            .
          
        
      
    
    
      
        (
        
          2
          ⁢
          c
        
        )
      
    
  




In addition, the following symmetry properties may be used for m=0, 1, 2, . . . , M:

hs[m]=−hs[−m], with hs[0]=0,  (3a)

hw[m]=−hw[−m], with hw[0]=0,  (3b)

hb[m]=hb[1−m], with hb[−M]=0, and  (3c)

{tilde over (h)}w[m]={tilde over (h)}w[1−m], with {tilde over (h)}w[−M]=0,  (3d)

where {tilde over (h)}w[m] is a modified form of the width response given by:

{tilde over (h)}w[m]=hw[m]−hw[m−1].

Thus, by using the hyperbolic tangent model, evaluation of only one special function, exp(x), to compute the step and width responses. Further, by using the hyperbolic tangent model, only the step-response needs to be calculated directly as the width-response can be computed from the step response using equation (2b). The adaptive algorithm may be set-up to estimate the scaled CBD value, {tilde over (W)}. The actual CBD value, W, can be obtained by scaling the estimated CBD value in accordance with equation (2c). As demonstrated by equations (3), the step-response and width-response are odd-symmetric. Because of this, hs[m] and hw[m] only need to be evaluated for m=1, 2, . . . , M.

Hardware complexity may be further reduced by indirectly computing the special function tan h(m/{tilde over (W)}) through use of a second order polynomial fit for evaluating tan h(m/{tilde over (W)}) for each value of m and {tilde over (W)}. This process is done by first dividing the range of {tilde over (W)} into two sections given by:

R1={{tilde over (W)}:{tilde over (W)}1≦{tilde over (W)}≦{tilde over (W)}2} and R2={{tilde over (W)}:{tilde over (W)}2<{tilde over (W)}≦{tilde over (W)}3}.

From this point, 2M second order polynomials are determined that best fit tan h(m/{tilde over (W)}) in the regions R1 and R2, for each value m=1,2, . . . , M. Let {pm,1[2], pm,1[1], pm,1[0]} and {pm,2[2], pm,2[1], pm,2[0]} be the polynomials for each m=1, 2, . . . , M. From this, the following estimation for the value of tan h(m/{tilde over (W)}) is achieved:

tan h(m/{tilde over (W)})=pm,1[2]{tilde over (W)}2+pm,1[1]{tilde over (W)}+pm,1[0], for {tilde over (W)} ε R1, and

tan h(m/{tilde over (W)})=pm,2[2]{tilde over (W)}2+pm,2[1]{tilde over (W)}+pm,2[0], for {tilde over (W)} ε R2.

Based on the disclosure provided herein, one of ordinary skill in the art will recognize a variety of approaches, such as polynomial fitting of different orders and applying this over different number of segments of the total range of CBD, for efficiently computing the special function tan h(.) that may be utilized in accordance with different embodiments of the present invention.

Hardware complexity may be further reduced by relying on the nature of a[n] and b[n]. In particular, the data bits a[n] are binary valued (i.e., a[n] ε {−1,1}) and data transitions b[n] are ternary valued (i.e., b[n] ε {−2,0,2}). Based on this, the computation of model outputs, y0[n] and y1[n], can be done using only additions. Using this and the symmetry of hb{m} and {tilde over (h)}w[m] set forth in equations (3), the model outputs y0[n] and y1[n] can be expressed as:



  
    
      
        
          y
          0
        
        ⁡
        
          [
          n
          ]
        
      
      =
      
        
          
            ∑
            
              m
              =
              
                -
                M
              
            
            M
          
          ⁢
          
            
              
                h
                b
              
              ⁡
              
                [
                
                  m
                  ,
                  n
                
                ]
              
            
            ⁢
            
              a
              ⁡
              
                [
                
                  n
                  -
                  m
                
                ]
              
            
          
        
        =
        
          2
          ⁢
          
            
              ∑
              
                m
                ∈
                An
              
            
            ⁢
            
              
                
                  h
                  b
                
                ⁡
                
                  [
                  
                    m
                    ,
                    n
                  
                  ]
                
              
              ⁢
              
                a
                ⁡
                
                  [
                  
                    n
                    -
                    m
                  
                  ]
                
              
            
          
        
      
    
    ,
    
      

    
    ⁢
    and
  




  
    
      
        y
        1
      
      ⁡
      
        [
        n
        ]
      
    
    =
    
      
        
          ∑
          
            m
            =
            
              -
              M
            
          
          M
        
        ⁢
        
          
            
              h
              w
            
            ⁡
            
              [
              
                m
                ,
                n
              
              ]
            
          
          ⁢
          
            b
            ⁡
            
              [
              
                n
                -
                m
              
              ]
            
          
        
      
      =
      
        2
        ⁢
        
          
            ∑
            
              m
              ∈
              An
            
          
          ⁢
          
            
              
                
                  h
                  ~
                
                w
              
              ⁡
              
                [
                
                  m
                  ,
                  n
                
                ]
              
            
            ⁢
            
              
                a
                ⁡
                
                  [
                  
                    n
                    -
                    m
                  
                  ]
                
              
              .
            
          
        
      
    
  



In the preceding equations, An, is a subset of the index set {1, 2, . . . , M−1, M} such that a[n−m]=a[n+m−1].

It is further noted that the coefficients of band pass filters 320, 340 are even symmetric, such that, Θ[i]=Θ[−i], for i=1, 2, . . . , L with Θ[0] being the main coefficient. As an example, by choosing L=10 and the lower and upper cutoff frequencies as 1% of the channel data rate and 25% of the channel data rate, respectively, after quantizing using, for example, eight bits, the coefficients are such that:

Θ[2]=Θ[4]+2Θ[8], Θ[3]=8Θ[4]+2Θ[8],

Θ[5]=−2Θ[4], Θ[6]=2Θ[8],

Θ[7]=4Θ[8], Θ[9]=Θ[10]=0.

Exploiting the aforementioned relationships, the number of multiplications required for computing one sample of the filter output can be reduced to four. For example, output 325 can be computed as:




  
    
      
        
          
            x
            ⁡
            
              [
              n
              ]
            
          
          =
          
          ⁢
          
            
              ∑
              
                i
                =
                
                  -
                  10
                
              
              10
            
            ⁢
            
              
                Θ
                ⁡
                
                  [
                  i
                  ]
                
              
              ⁢
              
                z
                ⁡
                
                  [
                  
                    n
                    -
                    i
                  
                  ]
                
              
            
          
        
      
    
    
      
        
          =
          
          ⁢
          
            
              
                Θ
                ⁡
                
                  [
                  i
                  ]
                
              
              ⁢
              
                z
                ⁡
                
                  [
                  n
                  ]
                
              
            
            +
            
              
                ∑
                
                  i
                  =
                  1
                
                10
              
              ⁢
              
                
                  Θ
                  ⁡
                  
                    [
                    i
                    ]
                  
                
                ⁢
                
                  
                    z
                    i
                  
                  ⁡
                  
                    [
                    n
                    ]
                  
                
              
            
          
        
      
    
    
      
        
          =
          
          ⁢
          
            
              
                Θ
                ⁡
                
                  [
                  0
                  ]
                
              
              ⁢
              
                z
                ⁡
                
                  [
                  n
                  ]
                
              
            
            +
            
              
                Θ
                ⁡
                
                  [
                  1
                  ]
                
              
              ⁢
              
                
                  z
                  1
                
                ⁡
                
                  [
                  n
                  ]
                
              
            
            +
            
              
                Θ
                ⁡
                
                  [
                  4
                  ]
                
              
              ⁢
              
                (
                
                  
                    
                      z
                      2
                    
                    ⁡
                    
                      [
                      n
                      ]
                    
                  
                  +
                  
                    8
                    ⁢
                    
                      
                        z
                        3
                      
                      ⁡
                      
                        [
                        n
                        ]
                      
                    
                  
                  +
                  
                    
                      z
                      4
                    
                    ⁡
                    
                      [
                      n
                      ]
                    
                  
                  -
                  
                    2
                    ⁢
                    
                      
                        z
                        5
                      
                      ⁡
                      
                        [
                        n
                        ]
                      
                    
                  
                
                )
              
            
            +
          
        
      
    
    
      
        
          
          ⁢
          
            
              Θ
              ⁡
              
                [
                8
                ]
              
            
            ⁢
            
              (
              
                
                  2
                  ⁢
                  
                    
                      z
                      2
                    
                    ⁡
                    
                      [
                      n
                      ]
                    
                  
                
                +
                
                  2
                  ⁢
                  
                    
                      z
                      3
                    
                    ⁡
                    
                      [
                      n
                      ]
                    
                  
                
                +
                
                  2
                  ⁢
                  
                    
                      z
                      6
                    
                    ⁡
                    
                      [
                      n
                      ]
                    
                  
                
                +
                
                  4
                  ⁢
                  
                    
                      z
                      7
                    
                    ⁡
                    
                      [
                      n
                      ]
                    
                  
                
                +
                
                  
                    z
                    8
                  
                  ⁡
                  
                    [
                    n
                    ]
                  
                
              
              )
            
          
        
      
    
  




  where




  
    
      
        z
        i
      
      ⁡
      
        [
        n
        ]
      
    
    =
    
      
        z
        ⁡
        
          [
          
            n
            -
            i
          
          ]
        
      
      +
      
        
          z
          ⁡
          
            [
            
              n
              +
              i
            
            ]
          
        
        .
      
    
  



In the least mean-squared algorithm, the instantaneous gradient used for updating the parameter(s) is the product of the error, e[n], and the gradient of the error with respect to the parameter(s) being updated. An approach to simplify the computational complexity of this adaptive algorithm is to replace either one or both of these components by their signs. The error term may be kept as such, while the gradient of the error is replaced with its sign. Applying this principle to equations (1l and 1m), the following is obtained:

W[n+1]=W[n]+μ1*e[n]*sgn(y2[n]), and

A[n+1]=A[n]+μ2*e[n]*sgn({tilde over (d)}[n]).

The term sgn(x) denotes the sign of x. Next, since the sign of y2[n] is not affected by division by {tilde over (W)}2, the factor can be dropped resulting in hw[m]=−m(1−hs2[m]). Further, since only the sign of y2[n] is required in the adaptation algorithm, the accuracy required in computing the width response, hw[m,n], can be relaxed. For the sake of additional reduction in computational complexity, the width response may be fixed to the average of the width response over a given CBD range.

Further, through simulation it was determined that there is a reasonable correlation between the sign at the input of band pass filters 320, 340, and the sign at the output thereof. Said another way, there may be a strong correlation between sgn({tilde over (d)}[n]) and sgn(y0[n]), and between sgn(y2[n]) and sgn(y1[n]). Therefore, the adaptation equations for gain factor 380 and CBD estimate 322 may be re-written as follow:

W[n+1]=W[n]+μ1*e[n]*sgn(y1[n]), and 

A[n+1]=A[n]+μ2*e[n]*sgn(y0[n]).

Using the preceding equations for adaptively calculating CBD and gain leads to the following simplifications. First, as {tilde over (d)}[n] is no longer required, band pass filters 320, 340 can be shifted to the output of summation circuit 360 (see equations (1d and 1g)). Next, because y2[n] and y3[n] are no longer required, the band pass filter used to create y2[n] in the width response path of FIG. 4 can be eliminated (see equations (1j and 1k)).

In certain embodiments of the present invention, computational complexity is reduced by replacing the channel bit response, hb[m], with the convolution of band pass filter 340 and bit response hb[m], and by replacing the channel width response, hw[m], with the convolution of band pass filter 340 and width response hw[m]. In this case, the channel model outputs correspond to {tilde over (d)}[n] and y2[n], respectively. In some embodiments of the present invention, the combined band pass filtered bit response is computed using a polynomial fitting approach similar to that described earlier.
It is also observed from FIG. 2 that the phase of the model output, d[n], will be a constant because the phase of bit-response, hb[m], is fixed. On the other hand, the phase of the analog to digital converter output, d[n], will depend on the equalization target and characteristics of the analog front-end. Consequently, the error signal, e[n], will contain a component arising from the phase-difference between the ADC output and the model output. This phase component will affect the performance of the adaptive algorithm. More importantly, this phase component will result in compromising the robustness of CBD estimation to variations in analog front end characteristics, despite the use of band pass filters. To counter this effect, a simple phase compensation approach may be employed. In particular, a first-order timing-recovery loop is used to track and compensate the phase-difference between the ADC output and the model output. As an example, let φ[n] be the phase difference at time instant n. A FIR interpolation filter can be used to phase-shift the ADC output to cancel the phase difference. The phase-shifted ADC output (say, q[n]]) is used for generating the error signal in accordance with the following equations:



  
    
      
        e
        ⁡
        
          [
          n
          ]
        
      
      =
      
        
          q
          ⁡
          
            [
            n
            ]
          
        
        -
        
          d
          ⁡
          
            [
            n
            ]
          
        
      
    
    ,
    
      

    
    ⁢
    and
  




  
    
      
        q
        ⁡
        
          [
          n
          ]
        
      
      =
      
        
          ∑
          
            i
            =
            
              -
              Q
            
          
          
            Q
            -
            1
          
        
        ⁢
        
          
            g
            ⁡
            
              [
              
                i
                ,
                n
              
              ]
            
          
          ⁢
          
            x
            ⁡
            
              [
              
                n
                -
                i
              
              ]
            
          
        
      
    
    ,
  



where g[i, n] denotes the interpolation filter corresponding to the phase, φ[n]. The phase φ[n], can be estimated using a first order loop as:

φ[n+1]=φ[n]+μ3*ε[n], and

ε[n]=−e[n]*sgn(d[n]−d[n−1]),

where ε[n] is the phase detector output and 0<μ3<1 denotes a step-size parameter that controls the adaptation rate of the loop.

As can be observed from the preceding equations, implementation of the phase compensation block demands 2Q multiplications per bit. This can be prohibitive from both a power and area perspective since the FIR interpolation filter coefficients, g[i, n], change with time n. To compensate, some embodiments of the present invention utilize a Farrow structure based polynomial interpolation filter implementation. Second-order polynomials are adequate in some implementations. Using such an approach, the FIR interpolation filter output can be computed as:



  
    
      
        
          
            q
            ⁡
            
              [
              n
              ]
            
          
          =
          
          ⁢
          
            
              
                q
                0
              
              ⁡
              
                [
                n
                ]
              
            
            +
            
              
                
                  q
                  1
                
                ⁡
                
                  [
                  n
                  ]
                
              
              ⁢
              
                (
                
                  
                    2
                    ⁢
                    
                      φ
                      ⁡
                      
                        [
                        n
                        ]
                      
                    
                  
                  -
                  1
                
                )
              
            
            +
            
              
                
                  q
                  2
                
                ⁡
                
                  [
                  n
                  ]
                
              
              ⁢
              
                
                  (
                  
                    
                      2
                      ⁢
                      
                        φ
                        ⁡
                        
                          [
                          n
                          ]
                        
                      
                    
                    -
                    1
                  
                  )
                
                2
              
            
          
        
      
    
    
      
        
          =
          
          ⁢
          
            
              
                q
                0
              
              ⁡
              
                [
                n
                ]
              
            
            +
            
              
                (
                
                  
                    2
                    ⁢
                    
                      φ
                      ⁡
                      
                        [
                        n
                        ]
                      
                    
                  
                  -
                  1
                
                )
              
              ⁡
              
                [
                
                  
                    
                      q
                      1
                    
                    ⁡
                    
                      [
                      n
                      ]
                    
                  
                  +
                  
                    
                      
                        q
                        2
                      
                      ⁡
                      
                        [
                        n
                        ]
                      
                    
                    ⁢
                    
                      (
                      
                        
                          2
                          ⁢
                          
                            φ
                            ⁡
                            
                              [
                              n
                              ]
                            
                          
                        
                        -
                        1
                      
                      )
                    
                  
                
                ]
              
            
          
        
      
    
  




  
    
      
        q
        0
      
      ⁡
      
        [
        n
        ]
      
    
    =
    
      
        ∑
        
          i
          =
          0
        
        
          Q
          -
          1
        
      
      ⁢
      
        
          f
          ⁡
          
            [
            i
            ]
          
        
        ⁢
        
          (
          
            
              x
              ⁡
              
                [
                
                  n
                  -
                  i
                
                ]
              
            
            +
            
              x
              ⁡
              
                [
                
                  n
                  +
                  i
                  +
                  1
                
                ]
              
            
          
          )
        
      
    
  




  
    
      
        q
        1
      
      ⁡
      
        [
        n
        ]
      
    
    =
    
      
        
          x
          ⁡
          
            [
            
              n
              +
              1
            
            ]
          
        
        -
        
          x
          ⁡
          
            [
            n
            ]
          
        
      
      2
    
  




  
    
      
        q
        2
      
      ⁡
      
        [
        n
        ]
      
    
    =
    
      
        
          
            x
            ⁡
            
              [
              
                n
                +
                1
              
              ]
            
          
          +
          
            x
            ⁡
            
              [
              n
              ]
            
          
        
        2
      
      -
      
        
          q
          0
        
        ⁡
        
          [
          n
          ]
        
      
    
  



where f[i] are fixed coefficients independent of the phase φ[n]. One advantage of this implementation is that only two multipliers need to change with n since the f[i] coefficients required for computing q0[i] remain fixed.

The characteristics of the analog front-end in the read channel circuit tend to vary with temperature. Two main parameters that affect the CBD estimation are the boost and cut-off frequencies of the analog front-end. When these parameters vary with temperature, the resulting CBD estimate will be different, which, in the absence of proper compensation, will lead to incorrect conclusion that fly-height has changed. In certain embodiments of the current invention, a short filter of 3-taps length is inserted at the output of the band pass filter 320 to compensate against variation in analog front-end parameters with temperature. The output of this temperature compensation filter is given by

x3[n]=β0x2[n]+β1x2[n−1]+β2x2[n−2]

where x3[n] denotes the output of the temperature compensation filter, x2[n] denotes the output of the band pass filter 320, and {β0, β1, β2} denote the coefficients of the temperature compensation filter. In certain embodiments of this invention, the coefficient β0 is set to 1.0 and the coefficients {β1, β2} are tuned according to the environment. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a variety of filtering approaches to compensate for environmental variations, which may be utilized in accordance with different embodiments of the present invention.

Turning to FIG. 5, a block diagram of an adaptive CBD estimation circuit 700 is shown in accordance with various embodiments of the present invention. Adaptive CBD estimation circuit 700 is similar to the previously described adaptive CBD estimation circuit 300, except that it includes a temperature compensation filter circuit 790 and a phase adjustment circuit 795. Adaptive CBD estimation circuit 700 provides a series of CBD estimates 722 corresponding to the received data. Adaptive CBD estimation circuit 700 receives digital samples 705 from an analog to digital converter (not shown), and detected bits 710 from a data decoder/detection circuit (not shown). Digital samples 705 and detected bits 710 each correspond to an analog signal derived from a storage medium. Digital samples 705 are provided to a band pass filter 720 that attenuates the signal and noise outside the defined filter bandwidth from digital samples 705 and provides an output 725. Output 725 is provided to temperature compensation circuit 790 that provides an output 792 that is a temperature compensated version of output 725. Output 792 is provided to a phase adjustment circuit 795 that performs an interpolation resulting in a phase adjusted output 797.
Detected bits 710 are provided to a channel model circuit 730 along with a CBD estimate 722 from a preceding period. Channel model 730 provides an estimation 735 of the response of the channel. In some embodiments of the present invention, the CBD is defined as the ratio of the width of the impulse response of the channel at fifty percent of its peak amplitude to the duration of one bit on the storage medium associated with adaptive CBD estimation circuit 700. Channel model output 735 is provided to a band pass filter 740 that attenuates the signal and noise outside the defined filter bandwidth from digital samples 735 and provides an output 745. Band pass filter 740 may be any digital band pass filter known in the art. In some embodiments of the present invention, the corner frequencies of band pass filter 740 are chosen to match any continuous time filter and/or AC coupling circuit used to receive the input signal, or similar to the corner frequencies of band pass filter 720.
A time varying gain factor 780 is applied to output 745 using a multiplication circuit 350 to yield an output 755. Gain factor 780 provides robustness against gain variations in the analog to digital converter. In particular, gain factor 780 is adaptively adjusted to follow the amplitude in the signal at the output of the analog to digital converter. Output 755 is subtracted from output 797 using a summation circuit 760 to yield an error signal 765. An adaptive CBD and gain calculation circuit 770 receives error signal 765 and detected bits 710. Using these inputs, adaptive CBD and gain calculation circuit 770 estimates CBD 722 and gain factor 780 by minimizing the mean-square value of error signal 765. This is done adaptively by using an instantaneous gradient based least mean-square algorithm that is known in the art. In some embodiments of the present invention, the computational complexity is reduced and error propagation from fixed point circuit implementation is limited by choosing band pass filters 720, 740 to be finite impulse response filters with 2L+1 taps.
It should be noted that while various components of adaptive CBD estimation circuit 700 are described as “circuits” they may be implemented either as an electronic circuit or as a software/firmware circuit. Such software/firmware circuits include a processor associated with a memory device that includes instructions executable by the processor to perform the particular functions described herein. Such processors may be general purpose processors or processors specifically tailored to perform a given function depending upon the particular implementation requirements. In some cases, the processor may be designed to perform functions related to more than one particular module. In some embodiments of the present invention, adaptive CBD estimation circuit 700 is implemented entirely as firmware or software being executed by a processor. In other embodiments of the present invention, adaptive CBD estimation circuit 700 is implemented entirely as a dedicated electronic circuit. In yet other embodiments of the present invention, adaptive CBD estimation circuit 700 is implemented as a combination of firmware or software being executed on a processor, and dedicated electronic circuitry. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a variety of combinations of dedicated electronic circuitry and software/firmware that may be used in accordance with different embodiments of the present invention.
Turning to FIG. 6, a flow diagram 500 depicts a method in accordance with various embodiments of the present invention for providing a continuous CBD estimate. Following flow diagram 500, an analog signal representing some process data is received (block 505). In some cases, the analog signal may be provided via a read/write head assembly disposed in relation to a storage medium. As used herein, the phrase “process data” is used in its broadest sense to mean any data that may be used for performing a CBD estimate. Thus, process data may be data specifically designed to perform a CBD estimate, or more general data having uses beyond performing a CBD estimate. In some particular cases, the process data is user data as previously defined herein. An analog to digital conversion is performed on the analog signal to generate a digital sample (block 510). It should be noted that the digital sample may be subjected to a variety of processing including, but not limited to, band pass filtering, temperature compensation and/or phase adjustment before further processing proceeds. The digital sample is provided to a data detector where it is processed to generate a detected sample (block 515). Of note, the processes in flow diagram 500 are continuously repeated such that a series of digital samples and a series of detected samples are generated over time. A channel response is calculated based on the detected sample and the preceding CBD estimate (block 520). The channel response is multiplied by a previously calculated gain factor (block 525), and the product of the multiplication is subtracted from the digital sample to yield an error signal (block 530). An updated CBD estimate is calculated based on, among other things, the error signal and a preceding CBD estimate (block 535); and an updated gain factor is calculated based on, among other things, the error signal and a preceding gain factor (block 540).
The processes of flow diagram 500 may be repeated such that the updated CBD estimate and gain factor are adaptively calculated and continuously available for use by one or more processes. In other cases, the processes of flow diagram 500 may be repeated periodically such that the updated CBD estimate and gain factor are adaptively calculated during particular periods, and continuously available for use by one or more processes. In yet other cases, the processes of flow diagram 500 may be repeated whenever a trigger is detected such that the updated CBD estimate and gain factor are adaptively calculated for a period following reception of a trigger, and continuously available for use by one or more processes. Such a trigger may include, but is not limited to, an increased error rate or reduction in signal to noise ratio. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a variety of triggers that may be utilized in accordance with different embodiments of the present invention.
Turning to FIG. 7, a flow diagram 600 shows a method in accordance with one or more embodiments of the present invention for providing a continuous fly-height adjustment. Following flow diagram 600, an analog signal representing some process data is received (block 610). In some cases, the analog signal may be provided via a read/write head assembly disposed in relation to a storage medium, and it is passed through an analog front-end circuit in the read channel. As used herein, the phrase “process data” is used in its broadest sense to mean any data that may be used for performing a CBD estimate. Thus, process data may be data specifically designed to perform a CBD estimate, or more general data having uses beyond performing a CBD estimate. In some particular cases, the process data is user data as previously defined herein. An analog to digital conversion is performed on the analog signal to generate a digital sample (block 620). It should be noted that the digital sample may be subjected to a variety of processing including, but not limited to, band pass filtering, temperature compensation and/or phase adjustment before further processing proceeds. The digital sample is processed using a data detector to generate a detected sample (block 630). Of note, the processes in flow diagram 600 are continuously repeated such that a series of digital samples and a series of detected samples are generated over time.
Using the digital sample and the detected sample, an updated CBD estimate is calculated (block 640). This may be done in accordance with the processes discussed herein. The updated CBD estimate is then converted to a corresponding thermal fly-height control value (block 650), and power is applied to the read/write head assembly in an amount corresponding to the thermal fly-height control value (block 660). Such a power application results in a modification of the distance between the read/write head assembly and the storage medium due to thermal heating or cooling as is known in the art.
The processes of flow diagram 600 may be repeated such that fly-height is adjusted continuously during use of an associated storage medium. In other cases, the processes of flow diagram 600 may be repeated periodically such that the fly-height is adjusted only periodically.
In yet other cases, the processes of flow diagram 600 may be repeated whenever a trigger is detected such that fly-height is only adjusted following reception of a trigger. Such a trigger may include, but is not limited to, an increased error rate or reduction in signal to noise ratio. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a variety of triggers that may be utilized in accordance with different embodiments of the present invention.
In conclusion, the invention provides novel systems, devices, methods and arrangements for performing adaptive CBD estimation and/or fly-height adjustment. 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 storage device, the storage device comprising:
a storage medium, wherein the storage medium is operable to maintain information corresponding to a process data set;
a read/write head assembly disposed in relation to the storage medium; and
an adaptive channel bit density estimation circuit, wherein the adaptive channel bit density estimation circuit is operable to receive the process data set via the read/write head assembly, wherein the adaptive channel bit density estimation circuit is operable to compute a first channel bit density estimate of a bit density of the storage medium based at least in part on a first portion of the process data set, and wherein the adaptive channel bit density estimation circuit is operable to compute a second channel bit density estimate of a bit density of the storage medium based at least in part on the first portion of the process data set, a second portion of the process data set and the first channel bit density estimate.

2. The storage device of claim 1, wherein the storage device further includes a read channel circuit, wherein the read channel circuit includes an analog to digital converter, and wherein the analog to digital converter is operable to receive an analog signal corresponding to the process data set and to provide a series of digital samples corresponding to the analog signal.

3. The storage device of claim 2, wherein the read channel circuit further includes a data detector, wherein the data detector is operable to receive the series of digital samples and to provide a series of detected samples based on the series of data samples.

4. The storage device of claim 3, wherein the process data set includes the series of digital samples and the series of detected samples.

5. The storage system of claim 4, wherein the adaptive channel bit density estimation circuit includes a channel model calculation circuit, wherein the channel model calculation circuit is operable to receive the series of detected samples and the first channel bit density estimate, and wherein the channel model calculation circuit is operable to provide a channel model output based at least in part on the series of detected samples and the first channel bit density estimate.

6. The storage system of claim 5, wherein the adaptive channel bit density estimation circuit includes a summation circuit, and wherein the summation circuit is operable to subtract an output derived from the channel model calculation circuit from the series of digital samples to yield an error signal.

7. The storage system of claim 6, wherein the second channel bit density estimate is calculated based at least in part on the error signal, the series of detected samples, the series of digital samples, and the first channel bit density estimate.

8. The storage system of claim 1, wherein the process data set is user data.

9. A method for adaptively estimating channel bit density, the method comprising:
providing a storage medium, wherein the storage medium includes information corresponding to a process data set;
accessing the process data set from the storage medium;
computing a first channel bit density estimate of a bit density of the storage medium based at least in part on a first portion of the process data set; and
computing a second channel bit density estimate of a bit density of the storage medium based at least in part on the first portion of the process data set, a second portion of the process data set and the first channel bit density estimate.

10. The method of claim 9, wherein accessing the process data set from the storage medium includes performing an analog to digital conversion on information derived from the storage medium to provide a first set of digital samples, and performing a data detection on the first set of digital samples to create a second set of digital samples; and wherein the process data set includes the first set of digital samples and the second set of digital samples.

11. The method of claim 10, wherein computing the second channel bit density estimate includes performing a channel model calculation using a channel model calculation circuit, and based at least in part on the second set of digital samples and the first channel bit density estimate.

12. The method of claim 11, wherein the method further comprises:
subtracting an output derived from the channel model calculation circuit from the first set of digital samples to yield an error signal.

13. The method of claim 12, wherein the second channel bit density estimate is calculated based at least in part on the error signal, the first portion of the process data set, the second portion of the process data set and the first channel bit density estimate.

14. The method of claim 12, wherein the output derived from the channel model calculation circuit is a first output derived from the channel model calculation circuit, and wherein the method further comprises:
computing a gain factor, wherein the first output derived from the channel model calculation circuit is a second output derived from the channel model calculation circuit multiplied by the gain factor.

15. The method of claim 14, wherein the gain factor is a subsequent gain factor, and wherein the subsequent gain factor is calculated based at least in part on a preceding gain factor and the error signal.

16. The method of claim 9, wherein the process data set is user data.

17. The method of claim 9, wherein the first channel bit density estimate and the second channel bit density estimate are used to characterize a read/write head assembly disposed in relation to the storage medium.

18. The method of claim 9, wherein the first channel bit density estimate and the second channel bit density estimate are used to optimize a read channel accepting data from the storage medium.

19. A continuous output channel bit density estimation circuit, the circuit comprising:
a read channel circuit, wherein the read channel circuit includes an analog to digital converter and a data detector, wherein the analog to digital converter is operable to receive an analog signal corresponding to a process data set maintained on a storage medium, and to provide a series of digital samples corresponding to the analog signal, and wherein the data detector is operable to receive the series of digital samples and provides a series of detected samples based on the series of data samples;
a channel model calculation circuit, wherein the channel model calculation circuit is operable to receive the series of detected samples and a first channel bit density estimate of a bit density of the storage medium, and wherein the channel model calculation circuit is operable to provide a channel model output based at least in part on the series of detected samples and the first channel bit density estimate;
a summation circuit, and wherein the summation circuit is operable to subtract an output derived from the channel model calculation circuit from the series of digital samples to yield an error signal; and
an adaptive channel bit density calculation circuit, wherein the adaptive channel bit density calculation circuit is operable to calculate a second channel bit density estimate of a bit density of the storage medium based at least in part on an output derived from the channel model output, the error signal, and the series of detected samples.

20. The circuit of claim 19, wherein the process data set is user data, and wherein the analog to digital converter is operable to receive the analog signal during a user read of the storage medium.

21. The circuit of claim 19, wherein the circuit further comprises:
a read/write head assembly disposed in relation to the storage medium.

22. The circuit of claim 19, wherein the process data set is user data.