 Research Article
 Open Access
Enumerative Encoding of TMTR Codes for Optical Recording Channel
 HuiFeng Tsai^{1}Email author
https://doi.org/10.1155/2010/695237
© HuiFeng Tsai. 2010
 Received: 26 July 2010
 Accepted: 19 September 2010
 Published: 26 September 2010
Abstract
We propose a new timevarying maximum transition run (TMTR) code for DVD recording systems, which has a rate higher than the EFMPlus code and a lower power spectral density (PSD) at low frequencies. An enumeration method for constructing the new TMTR code is presented. Computer simulations indicate that the proposed TMTR code outperforms the EFMPlus code in error performance when applied to partial response optical recording channels.
Keywords
 Code Rate
 Modulation Code
 User Density
 Pseudorandom Binary Sequence
 High Code Rate
1. Introduction
In data storage systems, a modulation code is known as constrained code, where and represent the maximal and minimal number of zeros between two consecutive ones. The main function of a modulation code is to improve the recording density and increase the storage capacity. The timing information could also be controlled using a modulation code. For example, magnetic tape and disk systems often adopt or codes, while optical systems such as CD and DVD usually employ EFM (EighttoFourteen Modulation) or EFMPlus [1] modulation codes.
Recent research on the modulation code has focused on the timevarying maximum transition run (TMTR) code [2–9], which can be treated as a modulation code. The TMTR code matched to the partial response channel can delete some dominant error events and enhance the Euclidian distance of the partial response channel to the matched filter bound. As a result, a coding gain over the conventional scheme can be obtained when the timevarying Viterbi detector is applied to the TMTRcoded partial response channel. In a previous work [10], we proposed a new timevarying maximum transition run (TMTR) code with constraint for DVD recording systems, which has rate higher than the EFMPlus code and a lower power spectral density (PSD) at low frequencies. The TMTR code was realized with a lookup table, and the kconstraint was not considered during construction. In this paper, instead of a lookup table we present an enumeration method for constructing the codes. Based on this construction, a rate code with is found. The proposed code can achieve better timing recovery performance. We show that 387 surviving words exist with length 11 from the construction technique. This new method needs one bit of memory for encoding, but no memory is required for decoding. An enumerating algorithm is used for encoding/decoding, and a lookup table is not required.
The rest of this paper is organized as follows. In Section 2, we briefly describe the TMTR codes for partial response (PR) optical recording channels. In Section 3, an outline of the design methodology for constructing a highrate TMTR code is presented. We illustrate concatenation problem between codewords and provide a solution. Section 4 introduces an enumerative coding method for TMTR codes. In Section 5, the power spectral density (PSD) of the rate code is evaluated and compared with the EFMPlus code. An error performance comparison between uncoded, TMTRcoded, and EFMPluscoded EPRII optical recording channel is presented in Section 6. The conclusion is provided in Section 7.
2. TMTR Codes for Partial Response Optical Recording Channels
Cideciyan et al. [11] suggested an advanced signal processing technique, the partial response and maximal likelihood (PRML) channel, to further increase the recording densities and reliability over that achieved by the conventional peak detector. The signal processing technique employing the PRML channel has become a standard widely used in most of today's data storage systems. The most popular partial response system for optical recording has the form , where is a nonnegative integer. The PR systems with and are referred to as the PRII and EPRII systems, respectively. Karabed and Siegel [12] proposed a class of modulation codes that take advantage of the welldefined spectral nulls presented in partial response channels. The timevarying maximum transition run (TMTR) code [2–9], which can be treated as a modulation code, has recently been studied for partial response channels. The TMTR code matched to the partial response channel can delete some dominant error events and enhance the Euclidian distance of the partial response channel.
Vannucci and Foschini [13] described a powerful algorithm to search for the minimum Euclidean distance for partial response channels. They found that the shortest error event achieving has the type of for most of partial response channels. As a matter of fact they found that those error events of the form always have a distance less than the matched filter bound which is defined as the distance corresponding to the onebit error event.
If the error event can be forbidden to occur in coded sequences for partial response channels, the minimum distance of the channels can be increased to resulting in a coding gain of dB. With NRZI modulation there are four pairs of binary coded sequences, which could generate the error event shown as follows:
The TMTR modulation code with constraint can be used to forbid the occurrence of sequences 111 and 011, and as a result error event would not occur in the detection of channels, and a coding gain of 3 dB can be obtained. The channel capacity of the TMTR code is equal to , which indicates that a codeword with length 11 bits at least is required to encode or represent a byte (8bit) message.
3. Construction for TMTR Codes
A TMTR code is specified as constraint, where k is the maximum number of consecutive zeros, and constraints represent the maximum numbers of consecutive ones starting from an even position and an odd position, respectively. This construction is based upon constraint. Both and represent the maximum number of ones after the last zero and the maximum number of zeros after the last one, respectively. In similar, parameters and represent the maximum number of ones before the first zero and the maximum number of zeros before the first one. Any two sequences satisfying constraint can be freely concatenated without violating the constraint. In order to reduce the consecutive zero length in the sequences after concatenation, the following substitution rule is applied: assume that a sequence is followed by a sequence , then
if has more than zeros before the first one, and the last bit of is a zero, then flip the first 2 bits of into two ones, for example, ;
otherwise, use as the encoder output.
In the case of , a long sequence of consecutive zeros is spread into two parts by "11" in the beginning of the 2nd sequence. Because , a sequence beginning with "11" is not an original code.
Practical code rates of codes.
Block length  Code rate 


4 


5 


6 


7 


8 


9 


10 


11 


12 


20 


22 


24 


where the 1st line expresses the positions of the code bits. The 2nd line expresses the even/odd code bit positions. The 3rd line expresses the maximum number of consecutive "1" starting at the position. There is no two consecutive "2" in the 3rd line. It means that no dominant error event will occur. To obtain the coding gain of this encoder, a timevarying Viterbi detector is required. The trellis diagrams of the Viterbi detector for even and odd times are shown in Figure 7(c). The Viterbi detector for code bit stream positions will be the same as shifting the 2nd line to right by 1 position. The result is shown in the 4th line. The even or odd Viterbi detector properties must match the bit position shown in the 4th line.
4. Enumerative Encoding TMTR Codes
An enumerating encoder maps a set of consecutive integers onto a lexicographically ordered set of sequences. In order to describe the enumerating encoder/decoder, some notations will be defined as follows.
 (D.1)
is the lexicographically ordered set of sequences of length .
 (D.2)
R( ) is the number of sequences such that .
 (D.3)
R( ) 0, where is the all zero sequence.
 (D.4)
res( ) is the sequence obtained by modifying the first nonzero bit of to zero.
 (D.5)
is the minimum sequence among sequences in and having the first symbol one at position .
 (D.6)
is the maximum sequence among sequences in and having the first symbol one at position .
 (D.7)
 (D.8)
We have = R( ).
Codebook of rate code.
Data  Codeword  Data  Codeword 





000  0001or 1101  100  0110 
001  0010  101  1000 
010  0100  110  1001 
011  0101  111  1010 
Data to codeword mapping for the rate code.
Data  Codeword  Data  Codeword  Data  Codeword  Data  Codeword  








 
0  00000000  00000001000  42  00101010  00001100100  94  01011110  00100100100  178  10110010  01001000000 
or 11000001000  or 11001100100  95  01011111  00100100101  179  10110011  01001000001  
1  00000001  00000001001  43  00101011  00001100101  96  01100000  00100100110  180  10110100  01001000010 
or 11000001001  or 11001100101  97  01100001  00100101000  181  10110101  01001000100  
2  00000010  000000010  44  00101100  00001100110  98  01100010  00100101001  182  10110110  01001000101 
or 11000001010  or 11001100110  99  01100011  00100101010  183  10110111  01001000110  
3  00000011  00000010000  45  00101101  00001101000  100  01100100  00101000000  184  10111000  01001001000 
or 11000010000  or 11001101000  101  01100101  00101000001  185  10111001  01001001001  
4  00000100  00000010001  46  00101110  00001101001  102  01100110  00101000010  186  10111010  01001001010 
or 11000010001  or 11001101001  103  01100111  00101000100  187  10111011  01001010000  
5  00000101  00000010010  47  00101111  00001101010  104  01101000  00101000101  188  10111100  01001010001 
or 11000010010  or 11001101010  105  01101001  00101000110  189  10111101  01001010010  
6  00000110  00000010100  48  00110000  00010000001  106  01101010  00101001000  190  10111110  01001010100 
or 11000010100  or 11010000001  107  01101011  00101001001  191  10111111  01001010101  
7  00000111  00000010101  49  00110001  00010000010  108  01101100  00101001010  192  11000000  01001010110 
or 11000010101  or 11010000010  109  01101101  00101010000  193  11000001  01001011000  
8  00001000  00000010110  50  00110010  00010000100  110  01101110  00101010001  194  11000010  01001011001 
or 11000010110  or 11010000100  111  01101111  00101010010  195  11000011  01001011010  
9  00001001  00000011000  51  00110011  00010000101  112  01110000  00101010100  196  11000100  01001100000 
or 11000011000  or 11010000101  113  01110001  00101010101  197  11000101  01001100001  
10  00001010  00000011001  52  00110100  00010000110  114  01110010  00101010110  198  11000110  01001100010 
or 11000011001  or 11010000110  115  01110011  00101011000  199  11000111  01001100100  
11  00001011  00000011010  53  00110101  00010001000  116  01110100  00101011001  200  11001000  01001100101 
or 11000011010  or 11010001000  117  01110101  00101011010  201  11001001  01001100110  
12  00001100  00000100000  54  00110110  00010001001  118  01110110  00101100000  202  11001010  01001101000 
or 11000100000  or 11010001001  119  01110111  00101100001  203  11001011  01001101001  
13  00001101  00000100001  55  00110111  00010001010  120  01111000  00101100010  204  11001100  01001101010 
or 11000100001  or 11010001010  121  01111001  00101100100  205  11001101  01010000001  
14  00001110  00000100010  56  00111000  00010010000  122  01111010  00101100101  206  11001110  01010000010 
or 11000100010  or 11010010000  123  01111011  00101100110  207  11001111  01010000100  
15  00001111  00000100100  57  00111001  00010010001  124  01111100  00101101000  208  11010000  01010000101 
or 11000100100  or 11010010001  125  01111101  00101101001  209  11010001  01010000110  
16  00010000  00000100101  58  00111010  00010010010  126  01111110  00101101010  210  11010010  01010001000 
or 11000100101  or 11010010010  127  01111111  00110000001  211  11010011  01010001001  
17  00010001  00000100110  59  00111011  00010010100  128  10000000  00110000010  212  11010100  01010001010 
or 11000100110  or 11010010100  129  10000001  00110000100  213  11010101  01010010000  
18  00010010  00000101000  60  00111100  00010010101  130  10000010  00110000101  214  11010110  01010010001 
or 11000101000  or 11010010101  131  10000011  00110000110  215  11010111  01010010010  
19  00010011  00000101001  61  00111101  00010010110  132  10000100  00110001000  216  11011000  01010010100 
or 11000101001  or 11010010110  133  10000101  00110001001  217  11011001  01010010101  
20  00010100  00000101010  62  00111110  00010011000  134  10000110  00110001010  218  11011010  01010010110 
or 11000101010  or 11010011000  135  10000111  00110010000  219  11011011  01010011000  
21  00010101  00001000000  63  00111111  00010011001  136  10001000  00110010001  220  11011100  01010011001 
or 11001000000  or 11010011001  137  10001001  00110010010  221  11011101  01010011010  
22  00010110  00001000001  64  01000000  00010011010  138  10001010  00110010100  222  11011110  01010100000 
or 1100100000  or 11010011010  139  10001011  00110010101  223  11011111  01010100001  
23  00010111  00001000010  65  01000001  00010100000  140  10001100  00110010110  224  11100000  01010100010 
or 11001000010  or 11010100000  141  10001101  00110011000  225  11100001  01010100100  
24  00011000  00001000100  66  01000010  00010100001  142  10001110  00110011001  226  11100010  01010100101 
or 11001000100  or 11010100001  143  10001111  00110011010  227  11100011  01010100110  
25  00011001  00001000101  67  01000011  00010100010  144  10010000  00110100000  228  11100100  01010101000 
or 11001000101  or 11010100010  145  10010001  00110100001  229  11100101  01010101001  
26  00011010  00001000110  68  01000100  00010100100  146  10010010  00110100010  230  11100110  01010101010 
or 11001000110  or 11010100100  147  10010011  00110100100  231  11100111  10000000100  
27  00011011  00001001000  69  01000101  00010100101  148  10010100  00110100101  232  11101000  10000000101 
or 11001001000  or 11010100101  149  10010101  00110100110  233  11101001  10000000110  
28  00011100  00001001001  70  01000110  00010100110  150  10010110  00110101000  234  11101010  10000001000 
or 11001001001  or 11010100110  151  10010111  00110101001  235  11101011  10000001001  
29  00011101  00001001010  71  01000111  00010101000  152  10011000  00110101010  236  11101100  10000001010 
or 11001001010  or 11010101000  153  10011001  01000000010  237  11101101  10000010000  
30  00011110  00001010000  72  01001000  00010101001  154  10011010  01000000100  238  11101110  10000010001 
or 11001010000  or 11010101001  155  10011011  01000000101  239  11101111  10000010010  
31  00011111  00001010001  73  01001001  00010101010  156  10011100  01000000110  240  11110000  10000010100 
or 11001010001  or 11010101010  157  10011101  01000001000  241  11110001  10000010101  
32  00100000  00001010010  74  01001010  00100000001  158  10011110  01000001001  242  11110010  10000010110 
or 11001010010  75  01001011  00100000010  159  10011111  01000001010  243  11110011  10000011000  
33  00100001  00001010100  76  01001100  00100000100  160  10100000  01000010000  244  11110100  10000011001 
or 11001010100  77  01001101  00100000101  161  10100001  01000010001  245  11110101  10000011010  
34  00100010  00001010101  78  01001110  00100000110  162  10100010  01000010010  246  11110110  10000100000 
or 11001010101  79  01001111  00100001000  163  10100011  01000010100  247  11110111  10000100001  
35  00100011  00001010110  80  01010000  00100001001  164  10100100  01000010101  248  11111000  10000100010 
or 11001010110  81  01010001  00100001010  165  10100101  01000010110  249  11111001  10000100100  
36  00100100  00001011000  82  01010010  00100010000  166  10100110  01000011000  250  11111010  10000100101 
or 11001011000  83  01010011  00100010001  167  10100111  01000011001  251  11111011  10000100110  
37  00100101  00001011001  84  01010100  00100010010  168  10101000  01000011010  252  11111100  10000101000 
or 11001011001  85  01010101  00100010100  169  10101001  01000100000  253  11111101  10000101001  
38  00100110  00001011010  86  01010110  00100010101  170  10101010  01000100001  254  11111110  10000101010 
or 11001011010  87  01010111  00100010110  171  10101011  01000100010  255  11111111  10001000000  
39  00100111  00001100000  88  01011000  00100011000  172  10101100  01000100100  
or 11001100000  89  01011001  00100011001  173  10101101  01000100101  
40  00101000  00001100001  90  01011010  00100011010  174  10101110  01000100110  
or 11001100001  91  01011011  00100100000  175  10101111  01000101000  
41  00101001  00001100010  92  01011100  00100100001  176  10110000  01000101001  
or 11001100010  93  01011101  00100100010  177  10110001  01000101010 
5. Power Spectral Density
where
6. Simulation Results
7. Conclusion
In this paper, we present an enumeration method for constructing codes, and the lookup table described in a previous work is not required for the encoder/decoder. Based on the construction, a rate TMTR code is found. This code can achieve lower power spectral density at low frequencies compared to the EFMPlus code. In addition, computer simulations reveal that the rate TMTR code outperforms the EFMPlus code in error performance when applied to partial response optical recording channels.
Authors’ Affiliations
References
 Immink KAS: EFMPlus: the coding format of the multimedia compact disc. IEEE Transactions on Consumer Electronics 1995, 41(3):491497. 10.1109/30.468040View ArticleGoogle Scholar
 Moon J, Brickner B: Maximum transition run codes for data storage systems. IEEE Transactions on Magnetics 1996, 32(5):39923994. 10.1109/20.539241View ArticleGoogle Scholar
 Moision BE, Siegel PH, Soljanin E: Distanceenhancing codes for digital recording. IEEE Transactions on Magnetics 1998, 34(1):6974. 10.1109/20.663448View ArticleGoogle Scholar
 Bliss WG: An 8/9 rate timevarying trellis code for high density magnetic recording. IEEE Transactions on Magnetics 1997, 33(5):27462748. 10.1109/20.617717View ArticleGoogle Scholar
 Fitzpatrick KK, Modlin CS: Timevarying MTR codes for high density magnetic recording. Proceedings of the IEEE Global Telecommunications Conference (GLOBECOM '97), November 1997, Phoenix, Ariz, USA 12501253.View ArticleGoogle Scholar
 Nikolić B, Leung MMT, Fu LKC: Rate 8/9 sliding block distanceenhancing code with stationary detector. IEEE Transactions on Magnetics 2001, 37(3):11681174. 10.1109/20.920493View ArticleGoogle Scholar
 Cideciyan RD, Eleftheriou E: Codes satisfying maximum transition run and paritycheck constraints. Proceedings of the IEEE International Conference on Communications, June 2004 635639.Google Scholar
 Demirkan I, Lee YX: The combined constraints for perpendicular recording channels. IEEE Transactions on Magnetics 2006, 42(2):220225.View ArticleGoogle Scholar
 Poo TL, Marcus BH: Timevarying maximum transition run constraints. IEEE Transactions on Information Theory 2006, 52(10):44644480.MathSciNetView ArticleMATHGoogle Scholar
 Tsai HF, Lin Y: Turbo decoding for a new DVD recording system. IEEE Transactions on Consumer Electronics 2005, 51(3):864871. 10.1109/TCE.2005.1510496View ArticleGoogle Scholar
 Cideciyan RD, Dolivo F, Hermann R, Hirt W, Schott W: A PRML system for digital magnetic recording. IEEE Journal on Selected Areas in Communications 1992, 10(1):3856. 10.1109/49.124468View ArticleGoogle Scholar
 Karabed R, Siegel PH: Matched spectralnull codes for partialresponse channels. IEEE Transactions on Information Theory 1991, 37(3):818855.MathSciNetView ArticleMATHGoogle Scholar
 Vannucci G, Foschini GJ: The minimum distance for digital magnetic recording partial responses. IEEE Transactions on Information Theory 1991, 37(3):955960.View ArticleGoogle Scholar
Copyright
This article is published under license to BioMed Central Ltd. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.