# Patent

## Title
Method and apparatus to limit DC-level in coded data

## Abstract

In a perpendicular magnetic recording system, the data that is being written by the write channel is fed back into the read channel. The read channel processes the data and decides if the written sequence is likely to have very poor DC characteristics. If that is the case, the write channel changes a scrambler seed and rewrites the data using the new scrambler seed. The data may also be inspected for patterns that might cause large baseline wander before being written to disk, i.e., in the write channel. A data sequence may be repeatedly scrambled and encoded until an acceptable level of estimated DC-wander has been achieved. The data sequence may then be written to disk.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority to U.S. Provisional Application Ser. No. 60/478,869, filed on Jun. 16, 2003, and to U.S. Provisional Application Ser. No. 60/485,216, filed on Jul. 7, 2003, both of which are incorporated herein by reference.


BACKGROUND
Perpendicular magnetic recording (PMR) techniques may enable higher recording densities on magnetic storage media than conventional longitudinal magnetic recording techniques. PMR systems include heads that record bits perpendicular to the plane of the disk. PMR disks include a high permeability (“soft”) magnetic underlayer between a perpendicularly magnetized thin film data storage layer and the substrate. An image of the magnetic head pole created by the head is produced in the magnetically soft underlayer. Consequently, the storage layer is effectively in the gap of the recording head, where the magnetic recording field is larger than the fringing field produced by a longitudinal magnetic recording (LMR) head. The larger recording field makes it possible to record using smaller grain sizes and smaller bit sizes than in LMR systems.
In PMR, the channel response has a DC component. For a channel that is AC-coupled to the preamplifier and read channel, or that contains some other means for high-pass filtering the channel response, there may be DC-distortion. The DC-distortion may manifest itself as a data dependent baseline wander, which can severely affect the performance of a system that equalizes the channel response to a response target that is not DC-free.
SUMMARY
In an embodiment, a perpendicular magnetic recording (PMR) system may scramble an input data sequence with a first scramble seed and encode the scrambled data sequence with a modulation encoder (e.g., a run length limited (RLL) encoder). The system may then determine whether the scrambled and encoded data sequence includes one or more patterns associated with large baseline wander, using, e.g., the running digital sum (RDS) over the sequence or a low pass filter as a metric. If such a pattern is detected, the system may control the scrambler to re-scramble the data sequence with another scrambler seed, encode the re-scrambled sequence, and determine whether this scrambled and encoded sequence includes on or more patterns associated with large baseline wander. This process may be repeated until a scrambled and encoded sequence without such patterns is generated, or until all available scrambler seeds are exhausted, in which case, the scrambler seed with the least amount of baseline wander may be used. The best scrambled and decoded sequence may then be written to the magnetic recording medium.
In an alternative embodiment, a PMR system may scramble an input data sequence with a first scramble seed and encode the scrambled data sequence with a modulation encoder (e.g., a run length limited (RLL) encoder). A write signal may be generated and the encoded data sequence written to the magnetic recording medium. The write signal may also be fed back to a read channel in the system. The write signal may be passed through a filter to mimic the magnetic recording channel. The read channel may then determine if DC-wander in the write signal is too large to be accurately decoded. If so, the data sequence may be scrambled with another scramble seed, encoded, and used to over-write the first encoded data sequence in the magnetic recording medium. This process may be repeated until an encoded data sequence that can be accurately decoded by the read channel is generated.
For both of the alternative embodiments described above, the data sequence may not be scrambled in the first run through the system.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a read/write head and media in a perpendicular magnetic recording (PMR) system.
FIG. 2 is a block diagram of a write channel and a read channel in the PMR system.
FIG. 3 is a flowchart describing a DC-wander correction technique according to an embodiment.
FIG. 4 is a flowchart describing a DC-wander correction technique according to another embodiment.
FIG. 5 is a block diagram of an encoding portion of a write channel in a PMR system.
FIG. 6A is a block diagram of a system modeling DC-offset due to high pass filters.
FIG. 6B is a block diagram of an equivalent system modeling DC-offset due to high pass filters using a low pass filter.
FIG. 7 is a block diagram of a discrete time model of a magnetic recording system.
FIG. 8 is a block diagram of a discrete time model of DC-offset in a magnetic recording system.
FIG. 9 is block diagram of a simplified model of DC-offset in a magnetic recording system.
FIG. 10 is block diagram of a simplified model of DC-offset in a magnetic recording system using an adaptive DC-correction circuit.
FIG. 11 is a block diagram of another simplified model of DC-offset in a magnetic recording system using an adaptive DC-correction circuit.



DETAILED DESCRIPTION
FIG. 1 shows a read/write head 102 and magnetic storage disk 104 in a perpendicular magnetic recording (PMR) system. The head records bits perpendicular to the plane of the disk. PMR disks include a high permeability (“soft”) magnetic underlayer 106 between a perpendicularly magnetized thin film data storage layer 108 and the substrate 110. An image of the magnetic head pole created by the head 102 is produced in the magnetically soft underlayer 106. Consequently, the storage layer 108 is effectively in the gap of the recording head, where the magnetic recording field is larger than the fringing field produced by a longitudinal magnetic recording (LMR) head.
In PMR, the channel response has a DC component. For a channel that is AC-coupled to the preamplifier and read channel, or that contains some other means for high-pass filtering the channel response, there may be DC-distortion. The DC-distortion may manifest itself as a data dependent baseline wander, which can severely affect the performance of a system that equalizes the channel response to a response target that is not DC-free.
FIG. 2 shows a write channel 202 and a read channel 204 for the PMR system. In an embodiment, the data that is being written by the write channel 202 is fed back into the read channel 204. The read channel processes the data and decides if the written sequence is likely to have very poor DC characteristics. If that is the case, the write channel changes a scrambler seed and rewrites the data using the new scrambler seed.
FIG. 3 is a flowchart describing a DC-wander correction technique according to an embodiment. A scrambler module 206 may use a scrambler seed 208 to scramble the data 210 input to the write channel 202 (block 302). The data may be scrambled before it is encoded by the modulation encoder, e.g., a run length limited (RLL) encoder 212 (block 304). Alternatively, the scrambling may be performed after modulation encoding if the scrambler used does not destroy the constraints imposed by the modulation encoder (for example, if only bits that are left uncoded by the modulation encoder are scrambled and those bits do not affect how the encoded bits were encoded).
A number of different scramblers may be used. For example, in an embodiment, a pseudo-noise (PN) sequence generated using a maximum-length shift register may be added modulo-2 to each data bit to be scrambled. Regardless of the type of scrambler used, the detector must know if and how the data was scrambled to properly descramble the data. In an embodiment, the detector may know how the data is scrambled, but may not necessarily know the initial conditions or the scrambler seed that was used to scramble the data. This information (e.g., the scrambler seed or method) may be embedded in the data that is written. Alternatively, the detector may descramble the data by trial and error. For example, the detector may descramble the data following a predetermined list of scramblers/scrambler seeds until the descrambled data decodes properly by some error-control code (ECC) 213, cyclic redundancy check (CRC) code, or some other check. In an embodiment, the scrambling is done prior to ECC encoding in the write channel, and descrambling is done after ECC decoding at the detector.
The write signal generated by the write channel is written to the disk (block 305). The write signal is also fed back into the read channel 204 (block 306), possibly via a filter 214 to mimic the magnetic channel. The read channel 204 processes the signal (block 308), and a decision block 220 determines if the DC-wander is too severe to be handled in the read channel (block 310). If the DC-wander is determined to be within acceptable limits at block 310, then the next data sequence in the input data stream is scrambled (block 312) and encoded. However, if the DC-wander is determined to be too severe, the read channel requests that the sector be rewritten with another scrambler seed (block 314). The newly scrambled data sequence is then encoded (block 316) and re-written to the disk (block 318), over-writing the “bad” sequence.
In an embodiment, all of the functions in the read channel 204 that would be expected to be active in the actual reading of a waveform from the disk are active. An error signal generated internally in the read channel may be used to monitor how severe the DC-wander is at the detector input (at block 310). If the DC-wander is determined to be too large, a re-write request may be asserted by the read channel. In other embodiments, various functions of the read channel may disabled. For example, in an embodiment, the bit detector may be disabled, since the bits can be obtained directly from the write channel.
Several parameters may be used by the decision block 220 to determine whether the DC-wander is too large. The following are exemplary parameters for determining excessive DC-wander:
(a) Simple threshold: the decision block 220 considers the DC-wander to be too large if the absolute value of the error signal is larger than a given threshold at any point in the data sequence;
(b) The decision block 220 considers the DC-wander to be too large if the absolute value of the error signal is larger than a given threshold for a total of at least a given number of clock cycles;
(c) The decision block 220 considers the DC-wander to be too large if the absolute value of the error signal exceeds the given threshold for at least a given number of consecutive clock cycles. For example, in an embodiment, the threshold is 3 and the given number of consecutive cycles is three. The error sequence |e|={0, 1, 4, 5, 1, 6, 3, 4, 6, 7, 2, 3, 7} has seven numbers greater than 3. However, only the three consecutive occurrences of numbers greater than 3 (i.e., the sub-sequence {4, 6, 7}) are counted.
The parameters described above may be used separately or combined. For example, the “simple threshold” (a) and “consecutive clock cycle” (c) parameters can be combined. Then the threshold for (a) should be larger than the threshold for (c).
In an embodiment, an encoded data sequence may be inspected for patterns that might cause large baseline wander before being written to disk, i.e., in the write channel. The data sequence may be repeatedly scrambled and encoded until an acceptable level of estimated DC-wander has been achieved. The data sequence may then be written to disk.
FIG. 4 is a flowchart describing a DC-wander correction technique according to an embodiment. As shown in FIG. 5, a scrambler module 502 may use a scrambler seed 504 to scramble data sequences in an input data stream 506 (block 402). Information about the scrambler (e.g., the scrambler seed or method) may be embedded in the data so that the data can be readily decoded by the detector. The scrambled data may then be encoded by an RLL encoder 508 (block 404).
After the RLL encoder, the encoded data may be output to an output buffer 510 and a DC-wander estimation module 512 (block 406). The DC-wander estimation module may screen for patterns that might cause large baseline wander (i.e., “bad” patterns) (block 408). If no such pattern is found, the output buffer may output the encoded data to the write channel for further processing and writing to the disk (block 410). Otherwise, the data is scrambled using another scrambler seed (block 412) and then encoded by the RLL encoder 508 (block 404). The newly encoded data sequence is then screened for patterns that may cause large baseline wander (block 408). This process may continue until the encoded data sequence is determined to contain no bad patterns. The encoded data is then output to the write channel. In the case that all scrambler seeds are exhausted (block 414), the data may be scrambled using the scrambler seed that yielded the least baseline wander (block 416).
Several metrics may be used by the DC-wander estimation module 512 to measure baseline wander. In an embodiment, the maximum absolute value of the running digital sum (RDSmax) over the entire sequence may be used.
The running digital sum of a binary sequence x={x0, x1, . . . }, where xi=±1 is defined as




  
    
      
        
          RDS
          ⁡
          
            (
            n
            )
          
        
        =
        
          
            ∑
            
              i
              =
              0
            
            n
          
          ⁢
          
            
          
          ⁢
          
            x
            i
          
        
      
    
    
      
        (
        1
        )
      
    
  




The maximum absolute value of RDS over a sequence of length N is




  
    
      
        
          RDS
          max
        
        =
        
          
            
              
                max
              
            
            
              
                
                  0
                  ≤
                  n
                  ≤
                  
                    N
                    -
                    1
                  
                
              
            
          
          ⁢
          
            
              
              
                RDS
                ⁡
                
                  (
                  n
                  )
                
              
              
            
            .
          
        
      
    
    
      
        (
        2
        )
      
    
  




A first method to determine if a sequence has large baseline wander uses equation (2) for the entire sequence. If RDSmax is above a certain threshold, the sequence is considered to have a large baseline wander. In the case that all available sequences have a large baseline wander, the sequence with the smallest RDSmax may be selected.
A second method splits the sequence into two or more subsequences, and uses the first method for each sub-sequence. In the case that all available sequences have one or more sub-sequences with large baseline wander, the sequence with the smallest number of sub-sequences with large baseline wander may be selected. A tie among those can, for example, be broken by selecting the sequence with the smallest RDSmax.
For a third method, the number of bit periods for which the absolute value of the RDS is greater than a threshold is counted.




  
    
      
        
          
            RDS
            count
          
          =
          
            
              ∑
              
                i
                =
                0
              
              
                N
                -
                1
              
            
            ⁢
            
              
            
            ⁢
            
              I
              i
            
          
        
        ,
      
    
    
      
        (
        3
        )
      
    
  




where Ii is an indicator function




  
    
      
        
          I
          i
        
        =
        
          {
          
            
              
                
                  
                    1
                    ⁢
                    
                      
                    
                    ⁢
                    if
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                      
                        RDS
                        ⁡
                        
                          (
                          i
                          )
                        
                      
                      
                    
                  
                  >
                  
                    t
                    h
                  
                
              
            
            
              
                
                  
                    0
                    ⁢
                    
                      
                    
                    ⁢
                    if
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                      
                        RDS
                        ⁡
                        
                          (
                          i
                          )
                        
                      
                      
                    
                  
                  ≤
                  
                    t
                    h
                  
                
              
            
          
        
      
    
    
      
        (
        4
        )
      
    
  




If RDScount is greater than a certain value, the sequence is determined to have a large baseline wander. If all available sequences have large baseline wander, then the sequence with the smallest RDScount is selected.
A fourth method is similar to the third method, but only the first instance when several consecutive values of the RDS is greater than a threshold is counted.




  
    
      
        
          
            RDS
            nbr
          
          =
          
            
              ∑
              
                i
                =
                0
              
              
                N
                -
                1
              
            
            ⁢
            
              
            
            ⁢
            
              I
              i
              b
            
          
        
        ,
      
    
    
      
        (
        5
        )
      
    
  




where




  
    
      
        
          I
          i
          b
        
        =
        
          {
          
            
              
                
                  
                    1
                    ⁢
                    
                      
                    
                    ⁢
                    if
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                      
                        RDS
                        ⁡
                        
                          (
                          i
                          )
                        
                      
                      
                    
                  
                  >
                  
                    
                      t
                      h
                    
                    ⁢
                    
                      
                    
                    ⁢
                    and
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                      
                        RDS
                        ⁡
                        
                          (
                          i
                          )
                        
                      
                      
                    
                  
                  ≤
                  
                    t
                    h
                  
                
              
            
            
              
                
                  0
                  ⁢
                  
                    
                  
                  ⁢
                  otherwise
                
              
            
          
        
      
    
    
      
        (
        6
        )
      
    
  




For example, if the RDS for a sequence of length 20 is given by {1, 0, −1, −2, −3, −4, −5, −4, −3, −4, −3, −2, −1, 1, 2, 1, 2, 3, 2}, and the threshold th=3. Then RDScount=4 using equation (3), and RDSnbr=2 using equation (5).
In a fifth method, the mean of the absolute value of the RDS is used.




  
    
      
        
          RDS
          mean
        
        =
        
          
            1
            N
          
          ⁢
          
            
              ∑
              
                i
                =
                0
              
              
                N
                -
                1
              
            
            ⁢
            
              
            
            ⁢
            
              
                
                
                  RDS
                  ⁡
                  
                    (
                    i
                    )
                  
                
                
              
              .
            
          
        
      
    
    
      
        (
        7
        )
      
    
  




If RDSmean is greater than a threshold, the baseline wander may be considered to be large.
In an alternative embodiment, a low pass filtered version of the sequence is used as a metric rather than the RDS of the sequence. The main source of baseline wander in many systems is AC coupling or other high pass filtering circuits. The amount of baseline wander caused by a code sequence can be estimated by passing the sequence through a model of the high pass filter 602 (which mimics AC-coupling), and subtracting the output of the filter from the input sequence, as shown in FIG. 6A. Equivalently, the amount of baseline wander caused by a code sequence can be estimated by passing the code sequence through a low pass filter 604 with a transfer function that complements the high pass filter, as shown in FIG. 6B. For example, if the high pass filter model has the transfer function H(z), then the low pass filter should have the transfer function F(z)=1−H(z).
Other, usually more complex, filters can be designed to mimic not only the impact of high pass filters, but also the impact of the write and read process and the signal shaping in the read channel. FIG. 7 shows a simple block diagram of a discrete time model of a magnetic recording channel. This model may be used as a basis for the DC-offset model shown in FIG. 8. Since the correct bit decisions are know, they may be used instead of a Viterbi detector 702. The DC-offset may be estimated by passing the encoded sequence through an ideal target response 802 and then subtracting the finite impulse response (FIR) equalizer output 704 from the target response output. This model can be simplified as shown in FIG. 9, where the filter 900 is given by H(D)=t(D)−h(D)g1(D)g2(D)f(D).
Although several examples have been given, any filter that generates an estimate of the DC-offset based on the encoded data sequence as input can be used for this purpose.
The following are exemplary parameters that may be used to determine if a sequence has a large DC-wander in systems using low pass filtered sequences as a metric:
If the largest DC-offset of the sequence is larger than a threshold;
If the largest DC-offsets of the sub-sequences are larger than a threshold;
If the DC-offset is larger than a threshold for more than another threshold number of bit-cycles;
If the DC-offset is larger than a threshold for more than another threshold number of times;
If the mean of the absolute value of the DC-offset is greater than a threshold.
In another embodiment, a low pass filtered sequence with DC correction is used as a metric. Instead of just estimating the DC-offset based on filtering the encoded sequence, this method assumes that there is a DC-correction circuit built into the system. Different types of DC-correction circuits can be used. In FIG. 10, a block diagram of the filter is shown with an adaptive DC-correction circuit 1000. In most cases, the DC-correction circuit can be modeled as a low pass filter 900. Another block diagram of the DC-offset estimation filter with DC-correction circuit 1100 is shown in FIG. 11. Here, the DC-correction circuit uses the DC-corrected channel estimation filter output 1102 as its input.
In an alternative embodiment, several seeds may be used to scramble the encoded sequence in parallel. The scrambled sequences may then be encoded and evaluated in parallel. The seed that provides the best response may then be selected.
In other alternative embodiments, the first trial may not be scrambled. For example, block 302 and 402 in FIGS. 3 and 4, respectively, may be skipped when the sequence is first input to the write channel.
A number of embodiments have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, blocks in the flowcharts may be skipped or performed out of order and still produce desirable results. Accordingly, other embodiments are within the scope of the following claims.

## Claims

1. A method comprising:
encoding a data sequence with a modulation encoder to form a first encoded data sequence;
determining if the first encoded sequence includes one or more patterns associated with large baseline wander, including determining an estimate of DC wander; and
in response to determining that the first encoded sequence includes one or more of said patterns,
scrambling the data sequence; and
encoding said scrambled data sequence with the modulation encoder to form a second encoded data sequence.

2. The method of claim 1, wherein the modulation encoder comprises a run length limited encoder.

3. A method comprising:
encoding a data sequence with a modulation encoder to form a first encoded data sequence;
determining if the first encoded sequence includes one or more patterns associated with large baseline wander; and
in response to determining that the first encoded sequence includes one or more of said patterns,
scrambling the data sequence with a scrambler;
encoding said scrambled data sequence with the modulation encoder to form a second encoded data sequence;
storing the first encoded data sequence in an output buffer; and
in response to determining that the first encoded sequence does not include one or more of said patterns, outputting the first encoded data sequence to a write channel for writing to a magnetic medium.

4. The method of claim 3, further comprising:
determining if the second encoded sequence includes one or more of the patterns associated with large baseline wander; and
in response to determining that the second encoded sequence includes one or more of said patterns,
scrambling the data sequence with another scrambler seed; and
encoding said scrambled data sequence with the modulation encoder to form a third encoded data sequence.

5. The method of claim 3, further comprising:
scrambling the data sequence with each of a plurality of scrambler seeds; and
monitoring an amount of baseline wander associated with each of the plurality of scrambler seeds used to scramble the data sequence.

6. The method of claim 5, further comprising:
selecting a scrambler seed associated with a least amount of baseline wander in response to scrambling the data sequence with each of the plurality of scrambler seeds.

7. The method of claim 3, wherein said determining if the first encoded sequence includes one or more of the patterns associated with large baseline wander comprises monitoring a maximum absolute value of a running digital sum over one or more portions of the data sequence.

8. The method of claim 7, wherein said determining comprises determining if the maximum absolute value of the running digital sum exceeds a given threshold.

9. The method of claim 8, wherein said determining comprises determining if the maximum absolute value of the running digital sum exceeds the given threshold for a given number of consecutive counts.

10. The method of claim 3, wherein said determining if the first encoded sequence includes one or more of the patterns associated with large baseline wander comprises monitoring a mean of an absolute value of a running digital sum over the data sequence; and
determining if the mean absolute value of the running digital sum exceeds a given threshold.

11. The method of claim 3, wherein said encoding the data sequence comprises encoding a data sequence to be written to a magnetic recording medium.

12. The method of claim 11, wherein the magnetic recording medium comprises a perpendicular magnetic recording medium.

13. The method of claim 3, wherein said determining comprises passing the first encoded sequence through a filter that mimics high pass filter effects in a magnetic recording channel.

14. The method of claim 13, further comprising passing the first encoded sequence through a DC-correction circuit.

15. The method of claim 3, further comprising:
scrambling the data sequence with one or more scrambler seeds selected from a plurality of scrambler seeds; and
encoding the scrambled data sequences with the modulation encoder to form a plurality of encoded data sequences in addition to the second encoded data sequence.

16. A method comprising:
encoding a data sequence with a modulation encoder to form a first encoded data sequence;
determining if the first encoded sequence includes one or more patterns associated with large baseline wander; and
in response to determining that the first encoded sequence includes one or more of said patterns,
scrambling the data sequence with a scrambler;
encoding said scrambled data sequence with the modulation encoder to form a second encoded data sequence; and
prior to encoding the data sequence to form the first encoded data sequence,
scrambling the data sequence with another scrambler seed.

17. An apparatus comprising:
a scrambler module;
a modulation encoder to encode a data sequence to form a first encoded data sequence; and
an estimation module to determine if the first encoded sequence includes one or more patterns associated with large baseline wander and produce an estimate of the DC wander, and in response to determining that the first encoded sequence includes one or more of said patterns, control the scrambler module to scramble the data sequence with a scrambler seed.

18. The apparatus of claim 17, wherein the modulation encoder comprises a run length limited encoder.

19. An apparatus comprising:
a scrambler module;
a modulation encoder to encode a data sequence to form a first encoded data sequence;
an estimation module to determine if the first encoded sequence includes one or more patterns associated with large baseline wander, and in response to determining that the first encoded sequence includes one or more of said patterns, control the scrambler module to scramble the data sequence with a scrambler seed; and
an output buffer to store the first encoded data sequence,
wherein the estimation module is operative to control the output buffer to output the first encoded data sequence to a write channel for writing to the magnetic medium in response to determining that the first encoded sequence does not include one or more of said patterns.

20. The apparatus of claim 19, wherein the modulation encoder is operative to encode the data sequence scrambled with the scrambler seed to form a second encoded data sequence, and
wherein the estimation module is operative to determine if the second encoded sequence includes one or more of the patterns associated with large baseline wander, and, in response to determining that the second encoded sequence includes one or more of said patterns, control the scrambler module to scramble data sequence with another scrambler seed.

21. The apparatus of claim 19, wherein the scrambler module is operative to scramble the data sequence with each of a plurality of scrambler seeds; and
wherein the estimation module is operative to monitor an amount of baseline wander associated with each of the plurality of scrambler seeds used to scramble the data sequence.

22. The apparatus of claim 21, wherein the estimation module is further operative to select a scrambler seed associated with a least amount of baseline wander in response to scrambling the data sequence with each of the plurality of scrambler seeds.

23. The apparatus of claim 19, wherein the estimation module is operative to monitor a maximum absolute value of a running digital sum over one or more portions of the data sequence.

24. The apparatus of claim 23, wherein the estimation module is operative to determine if the maximum absolute value of the running digital sum exceeds a given threshold.

25. The apparatus of claim 24, wherein the estimation module is operative to determine if the maximum absolute value of the running digital sum exceeds the given threshold for a given number of consecutive counts.

26. The apparatus of claim 19, wherein the estimation module is operative to monitor a mean of an absolute value of a running digital sum over the data sequence, and to determine if the mean absolute value of the running digital sum exceeds a given threshold.

27. The apparatus of claim 19, further comprising:
a write channel to write the encoded data sequence to a magnetic recording medium.

28. The apparatus of claim 27, wherein the magnetic recording medium comprises a perpendicular magnetic recording medium.

29. The apparatus of claim 19, wherein the estimation module includes a filter that mimics high pass filter effects in a magnetic recording channel.

30. The apparatus of claim 29, wherein the estimation module further includes a DC-correction circuit.

31. The apparatus of claim 19, wherein the scrambler module is operative to scramble the data sequence with one or more scrambler seeds selected from a plurality of scrambler seeds, and
wherein the modulation encoder is operative to encode the scrambled data sequences to form a plurality of encoded data sequences in addition to the second encoded data sequence.

32. An apparatus comprising:
a scrambler module;
a modulation encoder to encode a data sequence to form a first encoded data sequence; and
an estimation module to determine if the first encoded sequence includes one or more patterns associated with large baseline wander, and in response to determining that the first encoded sequence includes one or more of said patterns, control the scrambler module to scramble the data sequence with a scrambler seed, wherein the scrambler module is operative to scramble the data sequence with another scrambler seed prior to being encoded to form the first encoded data sequence.

33. An apparatus comprising:
means for encoding a data sequence with a modulation encoder to form a first encoded data sequence;
means for determining if the first encoded sequence includes one or more patterns associated with large baseline wander including means for determining an estimate of DC wander; and
means for scrambling the data sequence with a scrambler seed in response to determining that the first encoded sequence includes one or more of said patterns; and
means for encoding said scrambled data sequence with the modulation encoder to form a second encoded data sequence.

34. The apparatus of claim 33, wherein the means for encoding comprises a run length limited encoder.

35. An apparatus comprising:
means for encoding a data sequence with a modulation encoder to form a first encoded data sequence;
means for determining if the first encoded sequence includes one or more patterns associated with large baseline wander;
means for scrambling the data sequence with a scrambler seed in response to determining that the first encoded sequence includes one or more of said patterns; and
means for encoding said scrambled data sequence with the modulation encoder to form a second encoded data sequence; and
means for buffering the first encoded data sequence, said means operative to output the first encoded data sequence to a write channel for writing to the magnetic medium in response to determining that the first encoded sequence does not include one or more of said patterns.

36. The apparatus of claim 35, further comprising:
means for determining if the second encoded sequence includes one or more of the patterns associated with large baseline wander;
means for scrambling the data sequence with another scrambler seed in response to determining that the second encoded sequence includes one or more of said patterns; and
means for encoding said scrambled data sequence with the modulation encoder to form a third encoded data sequence.

37. The apparatus of claim 35, further comprising:
means for scrambling the data sequence with each of a plurality of scrambler seeds; and
means for monitoring an amount of baseline wander associated with each of one or more of the plurality of scrambler seeds used to scramble the data sequence.

38. The apparatus of claim 37, further comprising:
means for selecting a scrambler seed associated with a least amount of baseline wander in response to scrambling the data sequence with each of the plurality of scrambler seeds.

39. The apparatus of claim 35, further comprising:
determining if the first encoded sequence includes one or more of the patterns associated with large baseline wander comprises monitoring a maximum absolute value of a running digital sum over one or more portions of the data sequence.

40. The apparatus of claim 39, further comprising:
means for determining comprises determining if the maximum absolute value of the running digital sum exceeds a given threshold.

41. The apparatus of claim 40, further comprising:
means for determining if the maximum absolute value of the running digital sum exceeds the given threshold for a given number of consecutive counts.

42. The apparatus of claim 35, further comprising:
means for determining if the first encoded sequence includes one or more of the patterns associated with large baseline wander comprises monitoring a mean of an absolute value of a running digital sum over the data sequence; and
determining if the mean absolute value of the running digital sum exceeds a given threshold.

43. The apparatus of claim 35, further comprising:
means for encoding the data sequence comprises encoding a data sequence to be written to a magnetic recording medium.

44. The apparatus of claim 43, wherein the magnetic recording medium comprises a perpendicular magnetic recording medium.

45. The apparatus of claim 44, wherein said means for determining comprises means for filtering the first encoded sequence in a manner that mimics high pass filter effects in a magnetic recording channel.

46. The apparatus of claim 45, further comprising means for performing a DC-correction operation on the first encoded sequence through a DC-correction circuit.

47. The apparatus of claim 35, further comprising:
means for scrambling the data sequence with one or more scrambler seeds selected from a plurality of scrambler seeds; and
means for encoding the scrambled data sequences with the modulation encoder to form a plurality of encoded data sequences in addition to the second encoded data sequence.

48. An apparatus comprising:
means for encoding a data sequence with a modulation encoder to form a first encoded data sequence;
means for determining if the first encoded sequence includes one or more patterns associated with large baseline wander;
means for scrambling the data sequence with a scrambler seed in response to determining that the first encoded sequence includes one or more of said patterns; and
means for encoding said scrambled data sequence with the modulation encoder to form a second encoded data sequence; and
means for scrambling the data sequence with another scrambler seed prior to encoding the data sequence to form the first encoded data sequence.

49. A computer-readable medium having instructions stored thereon, which, when executed by a processor, causes the processor to perform operations comprising:
encoding a data sequence to form a first encoded data sequence;
determining if the first encoded sequence includes one or more patterns associated with large baseline wander including determining an estimate of DC wander; and
in response to determining that the first encoded sequence includes one or more of said patterns,
scrambling the data sequence with a scrambler seed; and
encoding said scrambled data sequence to form a second encoded data sequence.

50. The computer program of claim 49, wherein the modulation encoder comprises a run length limited encoder.

51. A computer-readable medium having instructions stored thereon, which, when executed by a processor, causes the processor to perform operations comprising:
encoding a data sequence to form a first encoded data sequence;
determining if the first encoded sequence includes one or more patterns associated with large baseline wander; and
in response to determining that the first encoded sequence includes one or more of said patterns,
scrambling the data sequence with a scrambler seed;
encoding said scrambled data sequence to form a second encoded data sequence storing the first encoded data sequence in an output buffer; and
in response to determining that the first encoded sequence does not include one or more of said patterns, outputting the first encoded data sequence to a write channel for writing to the magnetic medium.

52. The computer program of claim 51, further comprising:
determining if the second encoded sequence includes one or more of the patterns associated with large baseline wander; and
in response to determining that the second encoded sequence includes one or more of said patterns,
scrambling the data sequence with another scrambler; and
encoding said scrambled data sequence with the modulation encoder to form a third encoded data sequence.

53. The computer program of claim 51, further comprising:
scrambling the data sequence with each of a plurality of scrambler seeds; and
monitoring an amount of baseline wander associated with each of the plurality of scrambler seeds used to scramble the data sequence.

54. The computer program of claim 53, further comprising:
selecting a scrambler seed associated with a least amount of baseline wander in response to scrambling the data sequence with each of the plurality of scrambler seeds.

55. The computer program of claim 51, wherein said determining if the first encoded sequence includes one or more of the patterns associated with large baseline wander comprises monitoring a maximum absolute value of a running digital sum over one or more portions of the data sequence.

56. The computer program of claim 55, wherein said determining comprises determining if the maximum absolute value of the running digital sum exceeds a given threshold.

57. The computer program of claim 56, wherein said determining comprises determining if the maximum absolute value of the running digital sum exceeds the given threshold for a given number of consecutive counts.

58. The computer program of claim 51, wherein said determining if the first encoded sequence includes one or more of the patterns associated with large baseline wander comprises monitoring a mean of an absolute value of a running digital sum over the data sequence; and
determining if the mean absolute value of the running digital sum exceeds a given threshold.

59. The computer program of claim 51, wherein said encoding the data sequence comprises encoding a data sequence to be written to a magnetic recording medium.

60. The computer program of claim 59, wherein the magnetic recording medium comprises a perpendicular magnetic recording medium.

61. The computer program of claim 51, wherein said determining comprises passing the first encoded sequence through a filter that mimics high pass filter effects in a magnetic recording channel.

62. The computer program of claim 61, further comprising passing the first encoded sequence through a DC-correction circuit.

63. The computer program of claim 51, further comprising:
scrambling the data sequence with one or more scrambler seeds selected from a plurality of scrambler seeds; and
encoding the scrambled data sequences with the modulation encoder to form a plurality of encoded data sequences in addition to the second encoded data sequence.

64. A computer-readable medium having instructions stored thereon, which, when executed by a processor, causes the processor to perform operations comprising:
encoding a data sequence to form a first encoded data sequence;
determining if the first encoded sequence includes one or more patterns associated with large baseline wander;
in response to determining that the first encoded sequence includes one or more of said patterns,
scrambling the data sequence with a scrambler seed;
encoding said scrambled data sequence to form a second encoded data sequence; and
prior to encoding the data sequence to form the first encoded data sequence, scrambling the data sequence with another scrambler seed.