Line code


In telecommunication, a line code is a pattern of voltage, current, or photons used to represent digital data transmitted down a transmission line. This repertoire of signals is usually called a constrained code in data storage systems. Some signals are more prone to error than others when conveyed over a communication channel as the physics of the communication or storage medium constrains the repertoire of signals that can be used reliably.
Common line encodings are unipolar, polar, bipolar, and Manchester code.

Transmission and storage

After line coding, the signal is put through a physical communication channel, either a transmission medium or data storage medium. The most common physical channels are:
Some of the more common binary line codes include:
SignalComments1 state0 state
NRZ–LNon-return-to-zero level. This is the standard positive logic signal format used in digital circuits.forces a high levelforces a low level
NRZ–MNon-return-to-zero markforces a transitiondoes nothing
NRZ–SNon-return-to-zero spacedoes nothing forces a transition
RZReturn to zerogoes high for half the bit period and returns to lowstays low for the entire period
Biphase–LManchester. Two consecutive bits of the same type force a transition at the beginning of a bit period.forces a negative transition in the middle of the bitforces a positive transition in the middle of the bit
Biphase–MVariant of Differential Manchester. There is always a transition halfway between the conditioned transitions.forces a transitionkeeps level constant
Biphase–SDifferential Manchester used in Token Ring. There is always a transition halfway between the conditioned transitions.keeps level constantforces a transition
Differential Manchester Need a Clock, always a transition in the middle of the clock periodis represented by no transition.is represented by a transition at the beginning of the clock period.
BipolarThe positive and negative pulses alternate.forces a positive or negative pulse for half the bit periodkeeps a zero level during bit period

Each line code has advantages and disadvantages. Line codes are chosen to meet one or more of the following criteria:
Most long-distance communication channels cannot reliably transport a DC component. The DC component is also called the disparity, the bias, or the DC coefficient. The disparity of a bit pattern is the difference in the number of one bits vs the number of zero bits. The running disparity is the running total of the disparity of all previously transmitted bits. The simplest possible line code, unipolar, gives too many errors on such systems, because it has an unbounded DC component.
Most line codes eliminate the DC component such codes are called DC-balanced, zero-DC, or DC-free. There are three ways of eliminating the DC component:
Bipolar line codes have two polarities, are generally implemented as RZ, and have a radix of three since there are three distinct output levels. One of the principle advantages of this type of code is that it can completely eliminate any DC component. This is important if the signal must pass through a transformer or a long transmission line.
Unfortunately, several long-distance communication channels have polarity ambiguity. Polarity-insensitive line codes compensate in these channels.
There are three ways of providing unambiguous reception of 0 and 1 bits over such channels:
For reliable clock recovery at the receiver, a run-length limitation may be imposed on the generated channel sequence, i.e., the maximum number of consecutive ones or zeros is bounded to a reasonable number. A clock period is recovered by observing transitions in the received sequence, so that a maximum run length guarantees sufficient transitions to assure clock recovery quality.
RLL codes are defined by four main parameters: m, n, d, k. The first two, m/n, refer to the rate of the code, while the remaining two specify the minimal d and maximal k number of zeroes between consecutive ones. This is used in both telecommunication and storage systems that move a medium past a fixed recording head.
Specifically, RLL bounds the length of stretches of repeated bits during which the signal does not change. If the runs are too long, clock recovery is difficult; if they are too short, the high frequencies might be attenuated by the communications channel. By modulating the data, RLL reduces the timing uncertainty in decoding the stored data, which would lead to the possible erroneous insertion or removal of bits when reading the data back. This mechanism ensures that the boundaries between bits can always be accurately found, while efficiently using the media to reliably store the maximal amount of data in a given space.
Early disk drives used very simple encoding schemes, such as RLL FM code, followed by RLL MFM code which were widely used in hard disk drives until the mid-1980s and are still used in digital optical discs such as CD, DVD, MD, Hi-MD and Blu-ray using EFM and EFMPLus codes. Higher density RLL and RLL codes became the de facto standards for hard disks by the early 1990s.

Synchronization

Line coding should make it possible for the receiver to synchronize itself to the phase of the received signal. If the clock recovery is not ideal, then the signal to be decoded will not be sampled at the optimal times. This will increase the probability of error in the received data.
Biphase line codes require at least one transition per bit time. This makes it easier to synchronize the transceivers and detect errors, however, the baud rate is greater than that of NRZ codes.

Other considerations

A line code will typically reflect technical requirements of the transmission medium, such as optical fiber or shielded twisted pair. These requirements are unique for each medium, because each one has different behavior related to interference, distortion, capacitance and loss of amplitude.

Common line codes