# Enumerative Encoding of TMTR Codes for Optical Recording Channel

- 544 Downloads

## Abstract

We propose a new time-varying maximum transition run (TMTR) code for DVD recording systems, which has a rate Open image in new window 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 Open image in new window -constrained code, where Open image in new window and Open image in new window represent the maximal and minimal number of zeros between two consecutive ones. The main function of a Open image in new window modulation code is to improve the recording density and increase the storage capacity. The timing information could also be controlled using a Open image in new window modulation code. For example, magnetic tape and disk systems often adopt Open image in new window or Open image in new window codes, while optical systems such as CD and DVD usually employ Open image in new window EFM (Eight-to-Fourteen Modulation) or Open image in new window EFMPlus [1] modulation codes.

Recent research on the Open image in new window modulation code has focused on the time-varying maximum transition run (TMTR) code [2, 3, 4, 5, 6, 7, 8, 9], which can be treated as a Open image in new window 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 Open image in new window constraint for DVD recording systems, which has rate Open image in new window higher than the EFMPlus code and a lower power spectral density (PSD) at low frequencies. The Open image in new window 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 Open image in new window codes. Based on this construction, a rate Open image in new window code with Open image in new window 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 Open image in new window 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 Open image in new window 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 Open image in new window , where Open image in new window is a nonnegative integer. The PR systems with Open image in new window and Open image in new window 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, 3, 4, 5, 6, 7, 8, 9], which can be treated as a Open image in new window 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 Open image in new window for Open image in new window partial response channels. They found that the shortest error event achieving Open image in new window has the type of Open image in new window for most of Open image in new window partial response channels. As a matter of fact they found that those error events of the form Open image in new window always have a distance less than the matched filter bound Open image in new window which is defined as the distance corresponding to the one-bit error event.

If the error event Open image in new window can be forbidden to occur in coded sequences for Open image in new window partial response channels, the minimum distance of the channels can be increased to Open image in new window resulting in a coding gain of Open image in new window dB. With NRZI modulation there are four pairs of binary coded sequences, which could generate the error event Open image in new window shown as follows:

The TMTR modulation code with constraint Open image in new window can be used to forbid the occurrence of sequences *111* and *011*, and as a result error event Open image in new window would not occur in the detection of Open image in new window channels, and a coding gain of 3 dB can be obtained. The channel capacity of the Open image in new window TMTR code is equal to Open image in new window , 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 Open image in new windowTMTR Codes

A TMTR code is specified as Open image in new window constraint, where *k* is the maximum number of consecutive zeros, Open image in new window and Open image in new window constraints represent the maximum numbers of consecutive ones starting from an even position and an odd position, respectively. This construction is based upon Open image in new window constraint. Both Open image in new window and Open image in new window represent the maximum number of ones after the last zero and the maximum number of zeros after the last one, respectively. In similar, parameters Open image in new window and Open image in new window represent the maximum number of ones before the first zero and the maximum number of zeros before the first one. Any two sequences satisfying Open image in new window constraint can be freely concatenated without violating the Open image in new window constraint. In order to reduce the consecutive zero length in the sequences after concatenation, the following substitution rule is applied: assume that a sequence Open image in new window is followed by a sequence Open image in new window , then

if Open image in new window has more than Open image in new window zeros before the first one, and the last bit of Open image in new window is a zero, then flip the first 2 bits of Open image in new window into two ones, for example, Open image in new window ;

otherwise, use Open image in new window as the encoder output.

In the case of Open image in new window , a long sequence of consecutive zeros is spread into two parts by "11" in the beginning of the 2nd sequence. Because Open image in new window , 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

Practical code rates of Open image in new window 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 Open image in new window 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 Open image in new window 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)
Open image in new window is the lexicographically ordered set of Open image in new window sequences of length Open image in new window .

- (D.2)
*R*( Open image in new window ) is the number of sequences Open image in new window such that Open image in new window . - (D.3)
*R*( Open image in new window ) Open image in new window 0, where Open image in new window is the all zero sequence. - (D.4)
res( Open image in new window ) is the sequence obtained by modifying the first nonzero bit of Open image in new window to zero.

- (D.5)
Open image in new window is the minimum sequence among sequences in Open image in new window and having the first symbol one at position Open image in new window .

- (D.6)
Open image in new window is the maximum sequence among sequences in Open image in new window and having the first symbol one at position Open image in new window .

- (D.7)
Open image in new window ?

*R*( Open image in new window ) Open image in new window*R*(res( Open image in new window )), then we have - (D.8)
We have Open image in new window =

*R*( Open image in new window ).

Codebook of rate Open image in new window 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 Open image in new window 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

*C*is a constant, and the

*DC*content is then given as

where Open image in new window

## 6. Simulation Results

## 7. Conclusion

In this paper, we present an enumeration method for constructing Open image in new window codes, and the look-up table described in a previous work is not required for the encoder/decoder. Based on the construction, a rate Open image in new window Open image in new window 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 Open image in new window TMTR code outperforms the EFMPlus code in error performance when applied to partial response optical recording channels.

### References

- 1.Immink KAS: EFMPlus: the coding format of the multimedia compact disc.
*IEEE Transactions on Consumer Electronics*1995, 41(3):491-497. 10.1109/30.468040CrossRefGoogle Scholar - 2.Moon J, Brickner B: Maximum transition run codes for data storage systems.
*IEEE Transactions on Magnetics*1996, 32(5):3992-3994. 10.1109/20.539241CrossRefGoogle Scholar - 3.Moision BE, Siegel PH, Soljanin E: Distance-enhancing codes for digital recording.
*IEEE Transactions on Magnetics*1998, 34(1):69-74. 10.1109/20.663448CrossRefGoogle Scholar - 4.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.617717CrossRefGoogle Scholar - 5.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.CrossRefGoogle Scholar - 6.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.920493CrossRefGoogle Scholar - 7.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 - 8.Demirkan I, Lee YX: The combined constraints for perpendicular recording channels.
*IEEE Transactions on Magnetics*2006, 42(2):220-225.CrossRefGoogle Scholar - 9.Poo TL, Marcus BH: Time-varying maximum transition run constraints.
*IEEE Transactions on Information Theory*2006, 52(10):4464-4480.MathSciNetCrossRefMATHGoogle Scholar - 10.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.1510496CrossRefGoogle Scholar - 11.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.124468CrossRefGoogle Scholar - 12.Karabed R, Siegel PH: Matched spectral-null codes for partial-response channels.
*IEEE Transactions on Information Theory*1991, 37(3):818-855.MathSciNetCrossRefMATHGoogle Scholar - 13.Vannucci G, Foschini GJ: The minimum distance for digital magnetic recording partial responses.
*IEEE Transactions on Information Theory*1991, 37(3):955-960.CrossRefGoogle Scholar

## Copyright information

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.