Abstract:
A system including a first circuit and a second circuit. The first circuit is configured to (i) select a first portion of a signal based on a first offset, (ii) amplify the first portion of the signal according to a first function, and (iii) scale the amplified first portion based on a first factor to generate a first compensation for asymmetry in the first portion of the signal. The second circuit is configured to (i) select a second portion of the signal based on a second offset, (ii) amplify the second portion according to a second function, and (iii) scale the amplified second portion based on a second factor to generate a second compensation for asymmetry in the second portion of the signal.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 11/835,936 filed on Aug. 8, 2007. The disclosure of the above application is incorporated herein by reference in its entirety. 
    
    
     BACKGROUND 
     Hard disk drive transducing heads, including magneto-resistive (MR) heads, can provide an asymmetric output for a variety of reasons well known to ordinarily skilled artisans. Such reasons include, but are not limited to age, temperature, thermal asperity, current changes, and the like. When an output is asymmetric, the output waveform, desirably substantially sinusoidal, can have a positive portion of the waveform that is more substantial than a negative portion thereof (or vice versa). 
     Various asymmetry correction approaches have been tried over the years, including providing second order and/or third order corrections, or exponential corrections, or corrections which include a modulus function. One deficiency in these approaches is their validity extends only within a relatively limited range of unsaturated states of the head. Outside of that limited range, the results tend to diverge, and are less desirable. 
       FIGS. 1   a - 1   c  are sample saturation curves that are plots of resistance as a function of magnetic flux. There is a portion of these curves, in the vicinity of a value I bias , that is substantially linear. Heading in either direction on these curves away from the value I bias , the curves have nonlinear characteristics that can be modeled in different ways. The areas on these curves outside of the outermost circles correspond to saturated states. In  FIG. 1   a , the area around I bias  is modeled using a purely linear function such as y=αx. As can be seen in  FIG. 1   a , the linear approximation works in a portion, but not in all of the unsaturated region. 
       FIG. 1   b  shows the same curve, this time with a model based on an exponential or second/third order function such as y=αx n . Again, while the model holds through part of the unsaturated region, it does not hold throughout. Finally,  FIG. 1   c  shows the same curve again, this time with a model based on a modulus function such as y=α|x|+x, where a dark dot shows a change (break point) in the slope of the line based on the modulus function. As can be seen, once again, while this model holds through part of the unsaturated region, it does not hold throughout. 
     In view of this and other deficiencies, it would be desirable to have an asymmetry correction system which provides a valuable approximation to an appropriate asymmetry correction over a wider range. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       The invention now will be described in detail with reference to one or more embodiments and also with reference to the following drawings, in which: 
         FIGS. 1   a - 1   c  depict various aspects of graphs of asymmetry correction; 
         FIG. 2  is a high-level block diagram of a portion of a read channel according to one embodiment of the present invention; 
         FIGS. 3   a  and  3   b  are a block diagram of one portion of an asymmetry correction circuit according to one embodiment of the invention, and a graph depicting the output of that circuit respectively; 
         FIG. 4  is a block diagram of another embodiment of one portion of an asymmetry correction circuit according to the present invention; 
         FIGS. 5   a - 5   c  are graphs describing an output of the circuit of  FIG. 4 ; 
         FIG. 6  is a block diagram of another embodiment of the invention; 
         FIG. 7  is a graph of one possible output of the circuit of  FIG. 6 ; and 
         FIG. 8  is a more detailed circuit diagram of one portion of an asymmetry correction circuit according to one embodiment of the present invention as used for example, in  FIG. 4 . 
     
    
    
     DESCRIPTION 
     To achieve the foregoing and other objects, in accordance with one embodiment of the invention, a piece-wise linear approximation to an asymmetry correction curve is provided, in which the number of pieces is selectable, and the type of correction (e.g. linear, exponential, higher-order, modulus) provided for each of the pieces also is selectable. 
     Objects and advantages of the present invention will become apparent from the following detailed description. For convenience, the following description refers to MR heads, but the invention is applicable to any apparatus in which asymmetry correction is necessary. 
     Referring to  FIG. 2 , the signals from an MR head pass to variable gain amplifier (VGA)  20 , and then to an asymmetry correction block  200 . The output of that correction block  200  is filtered and provided to a processing block  210 . The processing block  210  includes a filter  212 , an analog-to-digital converter (ADC)  214 , and a further filter such as a finite impulse response (FIR) filter  216 . Skilled artisans will appreciate that the processing block  210  can have numerous variants, including but not limited to the number and types of filters contained therein. 
       FIG. 3   a  is a diagram of one embodiment of circuitry for implementing the function y=α|x|+x. As can be seen in  FIG. 3   a , the value for x is provided to an amplifier  302  which in one embodiment has a gain of 1, but which in other embodiments can have various gain values as desired. The output i 1  from that amplifier  302  is provided to a summer  310 . The value for x also goes into an amplifier  306  that provides a modulus or absolute value of x. The output of that amplifier  306  is multiplied in a block  308  by a scaling factor of a which is selectable according to the correction to be provided. The output i 2  from that a block  308  also is passed to the summer  310 , and the output of the summer  310  is the desired function y. 
       FIG. 3   b  shows the graph of y=βx+α|x|. Also shown is a dotted line y=βx, where β is the value of the gain of the amplifier in  FIG. 3   a . α|x| is shown as well. The solid line with large dots shows the actual value of y=βx+α|x|, where α|x| is always greater than or equal to 0. 
       FIG. 4  shows a block similar to  FIG. 3   a , except that a value which is an offset of d is added going into the amplifier  306  that provides the modulus of x. The dotted line around the offset block  406  and the amplifier  408  identify circuitry, the output of which is function of x and d. d may be 0, or a positive value, or a negative value, depending on the portion of the curve in  FIG. 3   a  for which compensation, or piece-wise linear approximation is being provided. d simply shifts the compensation graph to the left or right, depending on the position of interest on the saturation curve relative to the origin. 
     In  FIG. 4 , the input x goes into an amplifier  402  where it is amplified by a factor of β, where β can be 1 in one embodiment, or different from 1 in other embodiments. The output of that amplifier  402 , i 1  goes to a summer  412 , similarly to the case in  FIG. 3   a.    
     The value x also goes into a correction block  404  which includes an offset block  406 , as noted previously, and a modulus amplifier  408 . The output of that modulus amplifier  408 , y 1 , is scaled by a scaler  410  with a factor α, and the output i 2 , also passes through the summer  412  to yield the result y. 
       FIG. 5   a  and  FIG. 5   b  show respectively graphs of current as a function of the input voltage, and also show a graph of a resulting modulus function based on an offset d which, to accomplish the graph in  FIG. 5   b , is negative. As shown in  FIG. 5   c , to the left of the offset value d, the slope of the line changes. If the offset d had been positive rather than negative, the slope in the upper right quadrant would have changed, per the dotted line, rather than changing in the lower left quadrant, as shown in  FIG. 5   c . If d had been zero, the graph would have been symmetric around the Y axis. 
       FIG. 6  shows an embodiment of the invention which accomplishes multiple breaks, to provide multiple piece-wise linear approximations. Since a second order compensation, or a third order compensation, or both, or compensations of other orders, or modulus compensation may be necessary at different parts of the curve, the provision of multiple break points enables local tuning of the compensation curve in order to provide accurate compensation. In  FIG. 6 , the input x goes into an amplifier  602  where it is amplified by a gain of) β (which in one embodiment is 1) and the output is passed to a summer  612 . The input x also passes into a block  604   1  where an offset d 1  is provided in block  606   1 , the output of that block  606   1  going to a modulus amplifier  608   1 . The output i 1  of that amplifier  608   1  is scaled by a scalar  610   1  with a factor α 1  and the output, i 1 , passes to the summer  612 . Also shown, in the same manner as for the offset d 1 , there is a block line for providing an offset d 2 , and below that, the provision of an offset d 3 . Each of the amplifiers  608   1  may be modulus amplifiers, or exponential-order amplifiers, or any desired combination of these, depending on the amount or type of control that the user wants or needs over the asymmetry correction process. 
     As many breakpoints, or as few breakpoints as desired (a number N are shown in  FIG. 6 ) may be provided. The summer  612  thus sums all of the currents i 0  through i n , and the resulting output y may be represented by the following equation: 
     
       
         
           
             y 
             = 
             
               x 
               + 
               
                 
                   ∑ 
                   
                     i 
                     = 
                     1 
                   
                   n 
                 
                 ⁢ 
                 
                   
                     α 
                     i 
                   
                   ⁢ 
                   
                     
                       f 
                       i 
                     
                     ⁡ 
                     
                       ( 
                       
                         x 
                         , 
                         
                           d 
                           i 
                         
                       
                       ) 
                     
                   
                 
               
             
           
         
       
     
     For each of the individual blocks providing offsets d 1 , d 2 , d n , y=f(x,d). The following relationships pertain: 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           
                             
                               
                                 
                                   y 
                                   1 
                                 
                                 = 
                                 x 
                               
                               , 
                               
                                 x 
                                 &gt; 
                                 d 
                               
                             
                           
                         
                         
                           
                             
                               
                                 
                                   y 
                                   1 
                                 
                                 = 
                                 
                                   - 
                                   
                                     ( 
                                     
                                       x 
                                       + 
                                       
                                         2 
                                         ⁢ 
                                         d 
                                       
                                     
                                     ) 
                                   
                                 
                               
                               , 
                               
                                 x 
                                 ≤ 
                                 d 
                               
                             
                           
                         
                       
                       } 
                     
                     ⁢ 
                     d 
                   
                   &lt; 
                   0 
                 
               
             
             
               
                 
                   
                     
                       
                         
                           
                             
                               
                                 
                                   y 
                                   1 
                                 
                                 = 
                                 
                                   x 
                                   - 
                                   
                                     2 
                                     ⁢ 
                                     d 
                                   
                                 
                               
                               , 
                               
                                 x 
                                 ≥ 
                                 d 
                               
                             
                           
                         
                         
                           
                             
                               
                                 
                                   y 
                                   1 
                                 
                                 = 
                                 
                                   - 
                                   x 
                                 
                               
                               , 
                               
                                 x 
                                 &lt; 
                                 d 
                               
                             
                           
                         
                       
                       } 
                     
                     ⁢ 
                     d 
                   
                   ≥ 
                   0 
                 
               
             
           
         
       
     
     One advantage of the arrangement of  FIG. 6  is that the combination of the various blocks is linear. Thus, for example, where an overall scaling of α might be desirable, α can be split into smaller blocks. The corresponding transistors for those blocks can be smaller. As a result, in one embodiment, the same amount of real estate on a wafer can be used for the overall α as for the combination of the various smaller α. The difference is that the channel designer is provided with more variables, thus providing more control and more precise curve fitting. 
     One result of the embodiment of  FIG. 6  is shown in the graph of  FIG. 7 , which is a curve with a number of segments. 
     As can be appreciated from the foregoing, the amount of complexity of the overall circuit is a linear function of the number of breakpoints desired. For example, providing four breakpoints would result in roughly four times the complexity of an implementation with a single breakpoint. 
       FIG. 8  shows a transistor level version of one embodiment of one of the cells for a particular breakpoint of  FIG. 6 , using modulus function implementation, as shown for example in  FIG. 4 . In  FIG. 8 , the input voltage x is provided to an amplifier  802 , which provides a gain of β, as described before. x also is provided to the two inputs of a switching amplifier  804  which switches direction according to a desired zero crossing (d). One output of the switching amplifier  804  is provided to transistors  812 ,  818 , and the other output is provided to transistors  814 ,  816 . When transistors  812 ,  818  are on, transistors  814 ,  816  are off, thus directing the current in a desired direction. With transistors  812 ,  818  on and transistors  814 ,  816  off, in a first half cycle, current flows in an upward direction in  FIG. 8 , and in a subsequent half cycle, with transistors  812 ,  818  off and transistors  814 ,  816  on, current flows in a downward direction. In this manner, a modulus x function is provided. Transistors  822 ,  824 , respectively, provide a linear gain of α, where α is programmed by the current through transistor  830 , and through variable resistors  826 ,  828 . 
     The value of α will define the amount of compression or expansion of a waveform in order to provide a substantially sinusoidal waveform, compensating for asymmetry. Changing d and α changes the slopes and breakpoints, and provides a piece-wise linear approximation of a fairly precise magneto-resistive asymmetry. 
     As can be appreciated from the foregoing, according to the invention, using circuitry that is easily implementable and provides piece-wise linear functions, any desired asymmetry compensation of any order can be approximated within a desired range. 
     While the foregoing description has been provided with respect to one or more embodiments, various modifications within the scope and spirit of the invention will be apparent to those of working skill in the relevant technological field. Thus, the invention is to be limited by the scope of the following claims. 
     A non-transitory computer program product containing program code for performing a method for compensating for asymmetry in waveform of an input signal is also provided. The method includes outputting a first compensation as a first function and outputting a second compensation as a second function. The first and second compensations together provide a piecewise approximation to at least one region of a saturation curve.