# Enumerative Encoding of TMTR Codes for Optical Recording Channel

- Hui-Feng Tsai
^{1}Email author

**2010**:695237

https://doi.org/10.1155/2010/695237

© Hui-Feng Tsai. 2010

**Received: **26 July 2010

**Accepted: **19 September 2010

**Published: **26 September 2010

## Abstract

We propose a new time-varying 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

## 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 (Eight-to-Fourteen Modulation) or EFMPlus [1] modulation codes.

Recent research on the
modulation code has focused on the time-varying 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 time-varying Viterbi detector is applied to the TMTR-coded partial response channel. In a previous work [10], we proposed a new time-varying 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 look-up table, and the *k*-constraint was not considered during construction. In this paper, instead of a look-up 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 look-up 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 high-rate 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, TMTR-coded, and EFMPlus-coded 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 well-defined spectral nulls presented in partial response channels. The time-varying 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 one-bit 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 (8-bit) 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.

*e o e o e o e o e o e*). For example, a sequence of 3 codewords will be

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 time-varying 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)
- (D.2)
- (D.3)
- (D.4)
- (D.5)
- (D.6)
- (D.7)
- (D.8)

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

## 6. Simulation Results

## 7. Conclusion

In this paper, we present an enumeration method for constructing codes, and the look-up 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):491-497. 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):3992-3994. 10.1109/20.539241View ArticleGoogle Scholar - Moision BE, Siegel PH, Soljanin E: Distance-enhancing codes for digital recording.
*IEEE Transactions on Magnetics*1998, 34(1):69-74. 10.1109/20.663448View ArticleGoogle Scholar - Bliss WG: An 8/9 rate time-varying trellis code for high density magnetic recording.
*IEEE Transactions on Magnetics*1997, 33(5):2746-2748. 10.1109/20.617717View ArticleGoogle Scholar - Fitzpatrick KK, Modlin CS: Time-varying MTR codes for high density magnetic recording.
*Proceedings of the IEEE Global Telecommunications Conference (GLOBECOM '97), November 1997, Phoenix, Ariz, USA*1250-1253.View ArticleGoogle Scholar - Nikolić B, Leung MM-T, Fu LK-C: Rate 8/9 sliding block distance-enhancing code with stationary detector.
*IEEE Transactions on Magnetics*2001, 37(3):1168-1174. 10.1109/20.920493View ArticleGoogle Scholar - Cideciyan RD, Eleftheriou E: Codes satisfying maximum transition run and parity-check constraints.
*Proceedings of the IEEE International Conference on Communications, June 2004*635-639.Google Scholar - Demirkan I, Lee YX: The combined constraints for perpendicular recording channels.
*IEEE Transactions on Magnetics*2006, 42(2):220-225.View ArticleGoogle Scholar - Poo TL, Marcus BH: Time-varying maximum transition run constraints.
*IEEE Transactions on Information Theory*2006, 52(10):4464-4480.MathSciNetView ArticleMATHGoogle Scholar - Tsai H-F, Lin Y: Turbo decoding for a new DVD recording system.
*IEEE Transactions on Consumer Electronics*2005, 51(3):864-871. 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):38-56. 10.1109/49.124468View ArticleGoogle Scholar - Karabed R, Siegel PH: Matched spectral-null codes for partial-response channels.
*IEEE Transactions on Information Theory*1991, 37(3):818-855.MathSciNetView ArticleMATHGoogle Scholar - Vannucci G, Foschini GJ: The minimum distance for digital magnetic recording partial responses.
*IEEE Transactions on Information Theory*1991, 37(3):955-960.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.