Browse Prior Art Database

Charge Constrained Byte Oriented (0,3) Code

IP.com Disclosure Number: IPCOM000087184D
Original Publication Date: 1976-Dec-01
Included in the Prior Art Database: 2005-Mar-03
Document File: 4 page(s) / 23K

Publishing Venue

IBM

Related People

Patel, AM: AUTHOR

Abstract

A method of constructing a fixed-length charge-constrained code from any given fixed-length runlength-limited (d,k) code. In (d,k) coded sequences, the runlength of `zeros' ranges from a minimum of d to a maximum of k `zeros' between any pair of consecutive `ones'. The charge constraint is obtained by introducing a small amount of redundancy, which can be made arbitrarily small by allowing longer block length and larger value of accumulated charge. The encoder for the charge constraint does not interfere in the design of the base runlength-limited code, thus providing desired choice of constraint values and a simple encoding algorithm.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 49% of the total text.

Page 1 of 4

Charge Constrained Byte Oriented (0,3) Code

A method of constructing a fixed-length charge-constrained code from any given fixed-length runlength-limited (d,k) code. In (d,k) coded sequences, the runlength of `zeros' ranges from a minimum of d to a maximum of k `zeros' between any pair of consecutive `ones'. The charge constraint is obtained by introducing a small amount of redundancy, which can be made arbitrarily small by allowing longer block length and larger value of accumulated charge. The encoder for the charge constraint does not interfere in the design of the base runlength-limited code, thus providing desired choice of constraint values and a simple encoding algorithm.

The base (d,k) code can be any known runlength-limited code in which the codewords W(i), (i = 1,2,...), are catenatable without violating the runlength constraints, i.e., the runlengths of `zeros' at the end and beginning of any of the codewords are such that when they are catenated, there are minimum d and maximum k number of `zeros' between any two consecutive `ones', including at the codeword boundaries. The NRZI (nonreturn-to-zero recording) waveform of this coded sequence consists of pulses of limited range of widths, namely, d+1 digit-cells to k+1 digit-cells. This waveform, however, is not DC-compensated,
i.e., as one catenates the codewords corresponding to arbitrary data sequences, the accumulated charge or the unbalance in the number of `UP' and `DOWN' level digit-cells in the waveform may increase indefinitely.

This unlimited increase in accumulated charge causes an undesirable `baseline shift' and the resultant loss of signal when the waveform is processed through AC-coupled circuits. In particular, in a magnetic recording channel with a transformer-coupled write-head or with an integrating equalizer in DC-coupled read circuits, a DC-compensated waveform with bounded variations in accumulated charge is desirable.

The unlimited increase in accumulated charge-value can be stopped by frequently inverting selected partitions of the waveform. This can be achieved by introducing an inverting or a noninverting link at partition boundaries. A partition consists of a fixed number of codewords. A noninverting link is introduced if the catenation of the next partition is causing a decrease or change in sign of the accumulated charge. An inverting link is introduced if the catenation of the next partition is causing a build-up of accumulated charge in the same direction. The noninverting link is the shortest nonzero (d,k) sequence with an even number of `ones', e.g., a d+2 digit sequence of all `zeros', except a `one' at each end. The inverting link is a nonzero (d,k) sequence with an odd number of `ones', e.g., a d+2 digit sequence of all `zeros' except a `one' in the first place. The algorithm is illustrated with an example in constructing a charge-constrained code from an 8/9 (0,3) runlength limited code described in IBM Technical Disclosure Bulletin, V...