Abstract:
The present invention pertains to a distance-enhancing coding method that can be applied to digital recording and digital communications. It improves the time-varying maximum transition run method used in a conventional distance-enhancing coding to avoid main error events ±(1,−1) from happening. Under the premise of maintaining a code gain of 1.8 dB, the code rate can be increased from ¾ to ⅘. The invention also provides a method of using an enumeration algorithm and an exhaustive method to search for block codes for distance-enhancing coding, which can find required codes by following specific steps.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of Invention 
     The present invention relates to a distance-enhancing coding method and, in particular, to a coding method that can be applied in data access on digital recording media and data transmission in digital communications. 
     2. Related Art 
     In digital communication systems, digital signals are transmitted from a transmitter to a receiver through a channel. The general interpretation of the channel includes different media. In a communication system, the channel is the medium for transmitting data, such as light, radio waves, etc, to transmit signal to different locations. In a data storage system, the channel is a storage medium, such as a hard disk drive, an optical disk, to store data and to transmit signals to different time points. 
     The signals at the transmitter are usually encoded by a channel encoder and a modulation code encoder and then modulated by a modulator. Through the transmission of a channel, it is demodulated by a demodulator, decoded by a modulation code decoder and a channel decoder to reach the receiver. 
     The essential technique in the invention is the design of modulation coding. The way the modulation codes work is to set a few system constraints according to some system requirements. A set of conversion rules is then designed according to the constraints so that the data after converting by these rules can satisfy the constraints of the system. These constraints are often descriptions of the number of consecutive code symbol 1s and the number of consecutive code symbol 0s. 
     The non-return to zero inversion (NRZI) method is a modulation method that modulates the code symbol 1 in a sequence into a varying potential in signals (the potential variation means changes from the potential 0 to the potential 1 or vice versa), and modulates the code symbol 0 in a sequence into a non-varying potential in signals (the non-varying potential means a potential 1 followed by another potential 1 and a potential 0 followed by another potential 0). 
     The run length limited (RLL) method is a coding method, which limits the number of consecutive 0s being not smaller than d and not greater than k (i.e., the limits are (d,k)). This method can ensure the normal operation of a phase locked loop (PLL). The smaller the k value is, the better the PLL operates. 
     The maximum transition run (MTR) method is a coding method that limits the number of consecutive potential variations being not greater than k. Under NRZI modulation, this then limits the number of consecutive code symbol 1s being not greater than k. 
     The MTR distance gain property is the same as the PLL, but in practice can gain a higher code rate. 
     The time-varying maximum transition run (TMTR) is a further modification of the MTR, which sets different constraints for the number of consecutive variations depending upon whether it starts at an odd or even position. For example, ( k     1,odd   ,  k     1,even   )TMTR constraints mean that the number of consecutive 1s starting at an odd position is not greater than  k     1,odd    and the number of consecutive 1s starting at an odd position is not greater than  k     1,even   . This method can increase the minimum distance of the encoded system to an upper matched filter bound (MFB), therefore, it has the distance enhancing property. 
     The partial response maximum likelihood (PRML) method is a widely used coding technology in magnetic recording systems to obtain the largest recording density. This includes such methods as PR4, EPR4, EEPR4, etc. 
     Magnetic recording systems usually adopt the EEPR4 channel to increase the recording density. The relation between the output y and the input x is y(n)=x(n)+2x(n−1)−2x(n−3)−x(n−4), where x(n−1) means the input x earlier than x(n) by one cycle. The dominated error event is ±(1,−1,1). 
     Optical recording systems usually adopt the PR2 and EPR2 channels to increase the recording density. Taking the PR2 as an example, the relation between the output y and the input x is y(n)=x(n)+2x(n−1)+x(n−2) and the dominated error event is ±(1,−1). 
     With reference to FIG. 1A, there are 16 cases for the dominated error event ±(1,−1) to occur in a 5-bit sequence. (The upper sequence is received as the lower sequence or vice versa, both of the error forms are ±(1,−1).) The sequence in the drawing is modulated in the NRZI method. 
     With reference to FIG. 1B, to prevent error events from happening, sequences with more than 3 consecutive 1s are excluded. In the 16 cases, aside from the first and the last cases the rest 14 cases have either the upper sequence or the lower sequence left at most, thus such error events will not occur. But the first and the last cases may still occur. 
     If ( k     1,odd   =2,  k     1,even   =1)TMTR constraints are set, all of the 16 cases will have either the upper sequence or the lower sequence left at most, all dominated error events will not occur. 
     FIG. 2A shows a finite-state transition diagram (FSTD) of the NRZI( k     1,odd   =2,  k     1,even   =1)TMTR constraints. The vertex at the bottom of the diagram represent odd positions and the number of 1s starting at the odd positions can be 1 or 2, satisfying the constraint of  k     1,odd   =2. The vertex at the top of the diagram represent even positions and the number of 1s starting at the even positions can be 1 only, satisfying the constraint of  k     1,even   =1. 
     With reference to FIG. 2B, which shows a simplified FSTD with the NRZI ( k     1,odd   =2,  k     1,even   =1)TMTR constraints, the states are labeled from left to right as S 1 , S 2 , and S 3 . The state S 1  travels through path  1  or path  0  to the state S 2 . The state travels through path  0  to the state S 2  and through path  1  to the state S 3 . The state S 3  travels through path  0  to the state S 2 . 
     With reference to FIG. 2C, which shows a transition matrix with the NRZI( k     1,odd   =2,  k     1,even   =1)TMTR constraints. The entry in the ith column and jth row of the transition matrix is the number of paths for traveling from state S i  to state S j . For example, T 1,1 =0 means that the number of paths for traveling from state S 1  to state S 1  is 0; T 1,2 =2 means that the number of paths for traveling from state S 1  to state S 2  is 2. The code rate refers to the ratio of the input bits over output bits. If an m-bit input sequence is received and converted to an n-bit codeword, where m and n are positive integers and n&gt;m, then the code rate is m/n. The channel capacity is defined as the upper limit of the code rate, which can be obtained by taking the logarithm of the largest eigenvalue of the transition matrix in the base of 2. The transition matrix T provided in the drawing has a channel capacity C of about 0.7925. Since C&gt;¾, it is possible to design a ( k     1,odd   =2,  k     1,even   =1)TMTR constrained code with a code rate of ¾; but C&lt;⅘, it is thus impossible to design a ( k     1,odd   =2,  k     1,even   =1)TMTR constrained code with a code rate of ⅘. 
     With reference to FIG. 2D for 8 sets of codewords with the NRZI( k     1,odd   =2,  k     1,even   =1)TMTR constraints and a code rate of ¾, this coding method has a coding gain of about 1.8 dB. 
     SUMMARY OF THE INVENTION 
     It is a primary object of the invention to improve existing TMTR coding methods and to provide a coding method that can keep a coding gain of 1.8 dB while raising the code rate from ¾ to ⅘. 
     It is another object of the invention to provide a method for searching block codes of distance-enhancing coding that can find required block codes by following specific steps. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The present invention will become more fully understood from the detailed description given hereinbelow illustration only, and thus are not limitative of the present invention, and wherein: 
     FIG. 1A shows 16 cases for dominated error events to occur to a 5-bit sequence; 
     FIG. 1B excludes cases where sequences in FIG. 1A have more than 3 consecutive 1s; 
     FIG. 2A is a finite-state transition diagram (FSTD) of the ( k     1,odd   =2,  k     1,even   =1)TMTR constraints; 
     FIG. 2B is a state diagram of the ( k     1,odd   =2,  k     1,even   =1)TMTR constraints; 
     FIG. 2C is a transition matrix with the ( k     1,odd   =2,  k     1,even   =1)TMTR constraints; 
     FIG. 2D list 8 sets of codewords with the ( k     1,odd   =2,  k     1,even   =1)TMTR constraints; 
     FIG. 3A is a FSTD of the ( k     1,odd   =2,  k     1,even   =1)+ {101101}     even   TMTR constraints; 
     FIG. 3B is a state diagram of the ( k     1,odd   =2,  k     1,even   =1)+ {101101}     even   TMTR constraints; 
     FIG. 3C is a transition matrix with the ( k     1,odd   =2,  k     1,even   =1)+ {101101}     even   TMTR constraints; 
     FIG. 3D list 8 sets of codewords with the ( k     1,odd   =2,  k     1,even   =1)+ {101101}     even   TMTR constraints; 
     FIG. 4A is a state diagram of the NRZI(k 1 =2)MTR constraints; 
     FIG. 4B is another state diagram of the NRZI(k 1 =2)MTR constraints; 
     FIG. 4C is a state diagram of the NRZI(k 1 =2)−(ee+eo) constraints; 
     FIG. 4D is a state diagram of the NRZI(k 1 =2)−(oo+oe) constraints; 
     FIG. 4E is a state diagram of the NRZI(k 1 =2)−(oe) constraints; 
     FIG. 4F is a state diagram of the NRZI(k 1 =2)−(eo) constraints; 
     FIG. 5A shows 283 codewords that are free from the error events ±(1,−1); and 
     FIG. 5B shows 257 codewords that are free from the error events ±(1,−1) and the parameters ρ=5, λ=4. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Since the channel capacity of the conventional ( k     1,odd   =2,  k     1,even   =1)TMTR constraints C ≈0.7925&lt;⅘ and it is thus impossible to design a ( k     1,odd   =2,  k     1,even   =1)TMTR constrained code with a code rate of ⅘. The present invention proposes several coding methods that keep the coding gain of 1.8 dB while making the channel capacity C&gt;⅘. 
     The first disclosed method is one that improves the conventional ( k     1,odd   =2,  k     1,even   =1)TMTR constraints, keeping all code patterns with the conventional ( k     1,odd   =2,  k     1,even   =1)TMTR constraints while adding extra sequences with ‘101101’ starting at an even position. The code pattern with ‘101101’ starting at an even position may violate the ( k     1,odd   =2,  k     1 even   =1)TMTR constraints but can exclude dominated error events ±(1,−1). 
     With reference to FIG. 3A, the vertex at the bottom of the diagram represent odd positions and the number of 1s starting at odd positions can be 1 or 2, satisfying the  k     1,odd   =2 constraint. The vertex at the top of the diagram represent even positions and the number of 1s starting at even positions can in principle be 1 only, satisfying the  k     1,even   =1 constraint. The exceptions of ‘101101’ starting at even positions are also allowed. 
     Please refer to FIG. 3B, the state diagram of the simplified NRZI ( k     1,odd   =2,  k     1,even   =1)+ {101101}     even   TMTR constraints. This state diagram is converted from FIG.  3 A. The states are labeled from left to right as S 1 , S 2 , S 3  . . . S 7 . The state S 1  travels through path  1  or  0  to the state S 2 . The state S 2  travels through path  0  to the state S 1  and through path  1  to the state S 3 . The state S 3  travels through path  0  to the state S 2  or the state S 4 . The state S 4  travels through path  1  to the state S 5 . The state S 5  travels through path  1  to the state S 6 . The state S 6  travels through path  0  to the state S 7 . The state S 7  travels through path  1  to the state S 2 . 
     With reference to FIG. 3C, which shows a transition matrix of state diagram shown in FIG. 3B, the transition matrix entry in the ith column and jth row gives the number of paths for traveling from state S i  to state S j . For example, T 1,1 =0 means that the number of paths for traveling from state S 1  to state S 1  is 0; T 1,2 =2 means that the number of paths for traveling from state S 1  to state S 2  is 2. One can obtain from the transition matrix the channel capacity C≈0.8170&gt;⅘; it is therefore possible to design a coding method with a code rate of ⅘. 
     The coding method satisfying the ( k     1,odd   =2,  k     1,even   =1,  k     0   )+ {101101}     even    constraints can be found using the following steps: 
       k     0    is the maximum number of consecutive 0s between two 1s in a sequence.  k     0    is an important parameter for timing recovery. In coding designs,  k     0    is selected to be as small as possible. Let λ and ρ represent the maximum number of 0&#39;s before the first 1 and after the last 1, respectively. Therefore,  k     0     ≦λ+ρ . 
     The enumeration algorithm can be employed to count the number of code patterns with a length of n and satisfying the ( k     1,odd   =2,  k     1,even   =1,  k     0   , λ=∞, ρ) constraints. 
     We first give the following definitions: 
     (D.0) Lexicographical order: Two binary sequences of length n are said to be X=(xn, . . . , x2, x1)Y=(yn, . . . , y2, y1)(xp&gt;yp) and (xi=yi)∀p&lt;i≦n. The sequence Y is said to be ordered before the sequence X. 
     (D.1) An is the lexicographically ordered set of ( k     1,odd   =2,  k     1,even   =1,  k     0   , λ=∞, ρ) constrained sequences of length n. 
     (D.2) R(X) is the number of sequences YεAn such that XY; that is, R(X) is equal to the number of sequences in An that are ordered before X. 
     (D.3) R(0)=0 where 0 is the all zero sequence. 
     (D.4) res(X) is the sequence obtained by modifying the first nonzero bit of X to be zero. 
     (D.5) U i  is the minimum sequence among sequences in An and has the first code symbol 1 at position i. 
     (D.6) M 1  is the maximum sequence among sequences in An and has the first code symbol 1 at position i. 
     (D.7) Since w i =R(U 1 )−R(res(U 1 )), we have          R        (     X   _     )       =       ∑     i   =   0       n   -   1                         x   i            w   i     .                                
     (D.8) t i =R(M i ). 
     By definitions (D.5) and (D.6), it is easy to see that R(U i )=R(M i-1 )+1. 
     The w i &#39;s and t i &#39;s can be obtained by the following recursive relation with the initial conditions w 0 =1, t 0 =1.             {             w   i     =       t     i   -   1       +   1   -     R        (     res        (       U   _     i     )       )                         t   i     =     R        (       M   _     i     )                                                     
     For illustrative purposes, consider ( k     1,odd   =2,  k     1,even   =1,  k   0 =11, λ=5, ρ=6) constrained sequences with a length 10, one has 
     
       
         
               
               
               
               
               
               
               
               
               
               
               
             
           
               
                   
               
             
             
               
                 i 
                 10 
                 9 
                 8 
                 7 
                 6 
                 5 
                 4 
                 3 
                 2 
                 1 
               
               
                 w i  → 
                 158 
                 79 
                 53 
                 27 
                 18 
                 9 
                 6 
                 3 
                 2 
                 1 
               
               
                 t i  → 
                 237 
                 158 
                 79 
                 53 
                 26 
                 17 
                 8 
                 5 
                 2 
                 1 
               
               
                 R(res( U   i )) → 
                 1 
                 1 
                 1 
                 0 
                 0 
                 0 
                 0 
                 0 
                 0 
                 0 
               
               
                   
               
             
          
         
       
     
     where                                 M   _     1     =     (   0000000001   )       ,                 M   _     2     =     (   0000000010   )       ,                 M   _     3     =     (   0000000110   )       ,                 M   _     4     =     (   0000001010   )       ,                     M   _     5     =     (   0000011010   )       ,                 M   _     6     =     (   0000101010   )       ,                 M   _     7     =     (   0001101010   )       ,                 M   _     8     =     (   0010101010   )       ,                     M   _     9     =     (   0110101010   )       ,                 M   _     10     =     (   1010101010   )       ,                                                                     
     The above example uses a binary sequence to demonstrate, yet one can still apply the above method and its results to other non-binary cases by simply changing the code symbol 1 in the sequence into a nonzero symbol and generalizing a “binary sequence” into a “sequence”. 
     The number of code patterns with a length of 10 satisfying the ( k     1,odd   =2,  k     1,even   =1,  k     0   =11, λ=5, ρ=6) constraints is equal to  t     10     −t     4     =237−8=229 . The number of code patterns with a length of 10 and having ‘101101’ start at even positions is equal to (t 4 +1)×2+(t 2 +1)×(t 2 +1)=27. Taking the union of these two sets, one obtains codewords with a length of 10 and satisfying the ( k     1,odd   =2,  k     1,even   =1,  k     0   =11)+ {101101}     even    constraints. There are (229+27)=256 such codewords with a code rate of {fraction (8/10)} and they can avoid the occurrence of dominated error events ±{1 −1}. 
     These 256 codewords are tabulated in FIG.  3 D. If the parameters  k     0   , λ=6 and ρ are selected to be greater than the corresponding values given in the previous example, then the number of codewords will be greater than 256. One can then choose any 256 codewords from these codewords to form a codebook. The selecting criteria may be the  k     0    parameter, the quasi-catastrophic error events, etc. 
     The above description gives an example of constructing a block code. To design a code which satisfies the target ( k     1,odd   =2,  k     1,even   =1,  k     0   )+ {101101}     even    constraints, one can take the following steps: 
     (step 1) Specify a block length of n and a code rate m/n for the code. 
     (step 2) Set ρ to be the largest integer which is neither greater than  k     0    nor less than  k     0   /2. Enumerate the binary sequences with a length of i and satisfying the ( k     1,odd   =2,  k     1,even   =1,  k     0   , λ=∞, ρ) constraints. The number of such binary sequences is denoted by t 1 . Set  N     i     =w     i     t     i-2    for i=1, 2, . . . , n. 
     (step 3) Let λ=k 0 −ρ. There will be N n −t n-λ-1  code patterns satisfying the ( k     1,odd   =2,  k     1,even   =1,  k     0   ) constraints. 
     (step 4) Enumerate the sequences having a ‘101101’ sequence starting at an even position. The number is equal to            B   n     =       ∑     j   =   1       ⌊     n   6     ⌋            (       X     n   ,   j       -     Y     n   ,   j         )         ,     
          where                 X     n   ,   j       =       ∑           (       i   1     ,     i   2     ,     i   3     ,     i   j       )     ≥   0     ,         2          ∑     l   =   1     j          i   l         ≤     n   -     6      j                  [       (       N     n   -     6      j     -     2          ∑     l   =   1     j          i   l             +   1     )            ∏     l   =   1     J          (       t     2        i   l         +   1     )         ]         ,     
            Y     n   ,   j       =       ∑           (       i   1     ,     i   2     ,     i   3     ,     i   j       )     ≥   0     ,         2          ∑     l   =   1     j          i   l         ≤     n   -     6      j     -   λ   -   1                  [       (       N     n   -   λ   -   1   -     6      j     -     2          ∑     l   =   1     j          i   l             +   1     )            ∏     l   =   1     J          (       t     2        i   l         +   1     )         ]     .                                
     (step 5) The total number of binary sequences of length n and satisfying the ( k     1,odd   =2,  k     1,even   =1,  k     0   )+ {101101}     even    constraints is equal to  C     n   = B     n   + N     n     −t     n-λ-1   . 
     (step 6) If  C     n    is less than 2 m , then increase n, k 0 , ρ or decrease m, and return to step 1. If  C     n    is not less than 2 m , then choose 2 m  codewords from the  C     n    codewords to form a code with a code rate of m/n. 
     With reference to FIG. 4A, k 1 =2 means that the maximum number of consecutive 1s is 2. That is, sequences with more than 2 consecutive 1s will be removed. The states are labeled from left to right as S 1 , S 2 , and S 3 . The state S 1  travels through path  1  to the state S 2 . The state S 1  also travels through path  0  back to the state S 1 . The state S 2  travels through path  1  to the state S 3  and through path  0  to the state S 1 . The state S 3  travels through path  0  to the state S 1 . 
     FIG. 4B is a state diagram showing four situations distinguished by whether the number of 0s appearing before or after ‘11’ is odd or even under the NRZI (k 1 =2 ) MTR constraints. 
     The index of states in FIG. 4B is expressed by          (           S   1           S   2           S   3           S   4               S   5           S   6           S   7           S   8           )     .                          
     The transition from the state S 4  to the state S 5  represents a transition with the numbers of 0&#39;s before and after ‘11’ are odd and even, respectively. Such sequences form a set with an oe constraint. The transition from the state S 4  to the state S 2  represents a transition with the numbers of 0&#39;s before and after ‘11’ are both odd. Such sequences form a set with an oo constraint. The transition from the state S 8  to the state S 2  represents a transition with the numbers of 0&#39;s before and after ‘11’ are even and odd, respectively. Such sequences form a set with an eo constraint. The transition from the state S 8  to the state S 5  represents a transition with the numbers of 0&#39;s before and after ‘11’ are both even. Such sequences form a set with an ee constraint. These four sets may have a joint set; for example, ‘1011001001101’ simultaneously belongs to the four sets. 
     The codewords of this method are obtained through the following steps: 
     (step 1) Let  A  be the set of sequences with the number of consecutive code symbol 1s less than or equal to  k     1    and the number of consecutive code symbol 0s less than or equal to  k     0   , where  k     1    is the minimum integer that will make sequences in  A  have dominated error events. 
     (step 2) Suppose the number of the longest consecutive 1s in the sequences in the set  A  is  k     1   . Let the sequences with an odd number of 0s before the consecutively  k     1    1s and an odd number of 0s after the consecutively  k     1    1s form an oo-constrained set, the sequences with an odd number of 0s before the consecutively  k     1    1s and an even number of 0s after the consecutively  k     1    1s form an oe-constrained set, the sequences with an even number of 0s before the consecutively  k     1    1s and an odd number of 0s after the consecutively  k     1    1s form an eo-constrained set, and the sequences with an even number of 0s before the consecutively  k     1    1s and an even number of 0s after the consecutively  k     1    1s form an ee-constrained set. 
     (step 3) Select the joint of two or more sets from the oo-constrained, oe-constrained, eo-constrained, and ee-constrained sets to be a set  B . Subtract the set  B  from the set  A  to form a set  C . The set  C  finally contains the codewords. 
     When the dominated error events are ±(1,−1),  k     1     =2 . 
     With reference to FIG. 4C, code patterns with the number of consecutive 1s being the maximum 2 are listed. The code patterns having ‘11’ and with even numbers of 0s before and after ‘11’ or with an even number of 0s before ‘11’ and an odd number of 0s after ‘11’ are removed. The channel capacity C is computed to be roughly 0.8232. There may exist a coding method that can exclude dominated error events ±(1,−1) and have a code rate of ⅘. 
     With reference to the state diagram in FIG. 4D, the channel capacity C is about 0.7745. It is thus impossible to find a coding method that can exclude dominated error events ±(1,−1) and have a code rate of ⅘. 
     With reference to the state diagram in FIG. 4E, the channel capacity C is computed to be roughly 0.8409. There may exist a coding method that can exclude dominated error events ±(1,−1) and have a code rate of ⅘. The code rate may even reach ⅚. 
     With reference to the state diagram in FIG. 4F, the channel capacity C is the same as in FIG. 4E, roughly 0.8409. There may exist a coding method that can exclude dominated error events ±(1,−1and have a code rate of ⅘. The code rate may even reach ⅚. 
     In addition to the above-mentioned enumeration algorithm, the invention also provides an exhaustive method, which can be used to find the block code that prevents s types of dominated error events in the error event set Σ={e 1 , e 2 , . . . , e s } from happening. The method includes the following steps: 
     (step 1) Let  A     n    be the set of sequences of length n and with the number of consecutive code symbol 1s less than  k     1    and the number of consecutive code symbol 0s less than or equal to  k     0   , where  k     1    is the maximum integer that will make the sequences in  A     n    free from dominated error events. 
     (step 2) Let  B     n    be the set of binary sequences of length n and with the number of the longest consecutive 1s in the sequences being  k     1   , the number of consecutive 0s being less than or equal to  k     0   , and satisfying the θ, τ, λ, and ρ constrains, where  θ  is the maximum number of 1s before the first 0, θ is the maximum number of 1s after the last 0, τ is the maximum number of 0s before the first 1, and λ is the maximum number of 0s after the last 1. Taking into account of the fact that one needs to exclude dominated error events even at the border of codeword connections, we choose  θ = └k     1     /2┘ , i.e., the maximum integer not greater than  k     1   /2, τ=k 1 −θ. 
     (step 3) Select a subset  C     n    of  B     n    using the exhaustive method so that no dominated error events in  B     n    can occur within any  C     n   . The number of codewords contained in  C     n    is preferably as big as possible. The following sub-procedure gives an example to achieve this goal: 
     (3.0) Initially, let  C     n    and  E     n    be empty sets. 
     (3.1) Let  x     n    be a code pattern in  B     n    but not in the union of  C     n    and  E     n   . 
     (3.2) Compute the error patterns of  x     n    and each code pattern  y     n    in  C     n   . If no error pattern is a dominated error event Σ, then  x     n    is included into  C     n   ; otherwise, let  E     n    include  x     n   . 
     (3.3) If the union of  C     n    and  E     n    is equal to  B     n   , then stop this sub-procedure; otherwise, return to (3.1). 
     (step 4) Let  D     n    be the union of  A     n    and  C     n   . If the number of code patterns in  D     n    is not less than 2 m , then a code with a rate of m/n can be constructed by selecting 2 m  code patterns from  D     n   . 
     When  λ+ρ≦k     0   , the code found by using the above method can avoid the occurrence of s types of dominated error events and the number of consecutive 0s is less than or equal to  k     0   . 
     When Σ={(1,−1), (−1,1)}, set  k     1   =2,  θ =1, τ=1. Applying the above method to sequences of length n=10, there are 283 codewords found in  D     n    and the parameter k 0 =18. 
     FIG. 5A shows 283 codewords of length n=10 that can avoid the occurrence of the error events Σ={(1,−1), (−1,1)}. One can select 256 codewords out of the 283 codewords to form a codebook. The 256 codewords can be chosen so that k 0 =9. 
     FIG. 5B shows 257 codewords that can avoid the occurrence of the error events ±(1,−1) and the parameters ρ=5, λ=4. One can select 256 codewords fro them to form a coding method with a code rate of {fraction (8/10)} and the parameter k 0 =9. 
     As long as one can specifically define the error events to avoid, the above-mentioned methods can be applied to find a coding method for sequences with different lengths or parameters or even of different constraints. The methods are not limited to binary cases either. 
     EFFECTS OF THE INVENTION 
     The present invention provides two distance-enhancing coding methods. Taking a block length of 10 as an example, the code rate can be increased from ¾ to ⅘, increasing by a ratio of 6.7% ((⅘−¾)÷¾×100). This code rate ⅘ is larger than the conventional ( k     1,odd   =2,  k     1,even   =1) TMTR constrained channel capacity 0.7925. 
     The invention provides two codebooks that can perform {fraction (8/10)} coding. The block length of coding data is 8, which is particularly convenient for operations done in currently popular operating systems that process in unit of bytes (8 bits). 
     The invention provides two methods for searching block codes for distance-enhancing coding. The two methods can reach the code rate ⅘ when the block length is 10. The first method can have k 0 =11 and the second method can have k 0 =9. 
     The invention provides two methods for searching block codes for distance-enhancing coding. No matter how the parameters n, λ, ρ, k 0  vary, even when specific constraints vary, one can always use the disclosed methods to find proper block codes. 
     Although the invention has been described with reference to specific embodiments, this description is not meant to be construed in a limiting sense. Various modifications of the disclosed embodiments, as well as alternative embodiments, will be apparent to persons skilled in the art. It is, therefore, contemplated that the appended claims will cover all modifications that fall within the true scope of the invention.