# Line code

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Line_code
> Markdown URL: https://mediated.wiki/source/Line_code.md
> Source: https://en.wikipedia.org/wiki/Line_code
> Source revision: 1349781782
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Pattern used within a communications system to represent digital data

An example of coding a binary signal using rectangular [pulse-amplitude modulation](/source/Pulse-amplitude_modulation) with polar [non-return-to-zero](/source/Non-return-to-zero) code

An example of [bipolar encoding](/source/Bipolar_encoding), or AMI.

Encoding of 11011000100 in [Manchester encoding](/source/Manchester_encoding)

An example of [differential Manchester encoding](/source/Differential_Manchester_encoding)

An example of [biphase mark code](/source/Biphase_mark_code)

An example of [MLT-3 encoding](/source/MLT-3_encoding)

Passband modulation Analog modulation AM SM SSB Angle modulation FM PM QAM Digital modulation ASK APSK CPM FSK MFSK MSK OOK PPM PSK QAM SC-FDE TCM TC-PAM WDM Hierarchical modulation QAM WDM Spread spectrum CSS DSSS FHSS THSS See also Capacity-approaching codes Demodulation Line coding Modem AnM PoM PAM PCM PDM PWM ΔΣM OFDM FDM Multiplexing v t e

In [telecommunications](/source/Telecommunications), a **line code** is a pattern of voltage, current, or photons used to represent digital data [transmitted](/source/Transmission_(telecommunications)) down a [communication channel](/source/Communication_channel) or written to a [storage medium](/source/Storage_medium). This repertoire of signals is usually called a **constrained code** in data storage systems.[1] Some signals are more prone to error than others as the physics of the communication channel or storage medium constrains the repertoire of signals that can be used reliably.[2]

Common line encodings are [unipolar](/source/Unipolar_encoding), [polar](/source/Polar_encoding), [bipolar](/source/Bipolar_encoding), and [Manchester code](/source/Manchester_code).

## Transmission and storage

After line coding, the signal is put through a physical communication channel, either a [transmission medium](/source/Transmission_medium) or [data storage medium](/source/Data_storage_medium).[3][4] The most common physical channels are:

- the line-coded signal can directly be put on a [transmission line](/source/Transmission_line), in the form of variations of the voltage or current (often using [differential signaling](/source/Differential_signaling)).

- the line-coded signal (the *[baseband](/source/Baseband) signal*) undergoes further [pulse shaping](/source/Pulse_shaping) (to reduce its frequency bandwidth) and then is [modulated](/source/Modulated) (to shift its frequency) to create an *[RF signal](/source/RF_signal)* that can be sent through free space.

- the line-coded signal can be used to turn on and off a light source in [free-space optical communication](/source/Free-space_optical_communication), most commonly used in an infrared [remote control](/source/Remote_control).

- the line-coded signal can be printed on paper to create a [bar code](/source/Bar_code).

- the line-coded signal can be converted to magnetized spots on a [hard drive](/source/Hard_drive) or [tape drive](/source/Tape_drive).

- the line-coded signal can be converted to pits on an [optical disc](/source/Optical_disc).

Some of the more common binary line codes include:

Signal Comments 1 state 0 state NRZ–L Non-return-to-zero level. This is the standard positive logic signal format used in digital circuits. forces a high level forces a low level NRZ–M Non-return-to-zero mark forces a transition does nothing (keeps sending the previous level) NRZ–S Non-return-to-zero space does nothing (keeps sending the previous level) forces a transition RZ Return to zero goes high for half the bit period and returns to low stays low for the entire period Biphase–L Manchester. 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 bit forces a positive transition in the middle of the bit Biphase–M Variant of Differential Manchester. There is always a transition halfway between the conditioned transitions. forces a transition keeps level constant Biphase–S Differential Manchester used in Token Ring. There is always a transition halfway between the conditioned transitions. keeps level constant forces a transition Differential Manchester (Alternative) Need a Clock, always a transition in the middle of the clock period is represented by no transition. is represented by a transition at the beginning of the clock period. Bipolar The positive and negative pulses alternate. forces a positive or negative pulse for half the bit period keeps a zero level during bit period

An arbitrary bit pattern in various binary line code formats

Each line code has advantages and disadvantages. Line codes are chosen to meet one or more of the following criteria:

- Minimize transmission hardware

- Facilitate synchronization

- Ease error detection and correction

- Achieve a target [spectral density](/source/Spectral_density)

- Eliminate a [DC component](/source/DC_component)

## Disparity

Most long-distance communication channels cannot reliably transport a [DC component](/source/DC_component). The DC component is also called the *disparity*, the *bias*, or the [DC coefficient](/source/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](/source/Running_total) of the disparity of all previously transmitted bits.[5] The simplest possible line code, [unipolar](/source/Unipolar_encoding), 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](/source/DC-balanced), zero-DC, or DC-free. There are three ways of eliminating the DC component:

- Use a [constant-weight code](/source/Constant-weight_code). Each transmitted [code word](/source/Code_word_(communication)) in a constant-weight code is designed such that every code word that contains some positive or negative levels also contains enough of the opposite levels, such that the average level over each code word is zero. Examples of constant-weight codes include [Manchester code](/source/Manchester_code) and [Interleaved 2 of 5](/source/Interleaved_2_of_5).

- Use a [paired disparity code](/source/Paired_disparity_code). Each code word in a paired disparity code that averages to a negative level is paired with another code word that averages to a positive level. The transmitter keeps track of the running DC buildup, and picks the code word that pushes the DC level back towards zero. The receiver is designed so that either code word of the pair decodes to the same data bits. Examples of paired disparity codes include [alternate mark inversion](/source/Alternate_mark_inversion), [8b/10b](/source/8b%2F10b) and [4B3T](/source/4B3T).

- Use a [scrambler](/source/Scrambler). For example, the scrambler specified in [RFC](/source/RFC_(identifier)) [2615](https://www.rfc-editor.org/rfc/rfc2615) for [64b/66b encoding](/source/64b%2F66b_encoding).

## Polarity

Bipolar line codes have two polarities, are generally implemented as RZ, and have a radix of three since there are three distinct output levels (negative, positive and zero). One of the principal advantages of this type of code is that it can 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.[6][7][8][9] There are three ways of providing unambiguous reception of 0 and 1 bits over such channels:

- Pair each code word with the polarity-inverse of that code word. The receiver is designed so that either code word of the pair decodes to the same data bits. Examples include [alternate mark inversion](/source/Alternate_mark_inversion), [Differential Manchester encoding](/source/Differential_Manchester_encoding), [coded mark inversion](/source/Coded_mark_inversion) and [Miller encoding](/source/Miller_encoding).

- [differential coding](/source/Differential_coding) each symbol relative to the previous symbol. Examples include [MLT-3 encoding](/source/MLT-3_encoding) and [NRZI](/source/NRZI).

- Invert the whole stream when inverted [syncwords](/source/Syncword) are detected, perhaps using [polarity switching](/source/Differential_signalling#Polarity_switching)

## Run-length limited codes

For reliable [clock recovery](/source/Clock_recovery) at the receiver, a [run-length limitation](/source/Run-length_limited) 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 [telecommunications](/source/Telecommunications) and storage systems that move a medium past a fixed [recording head](/source/Recording_head).[10]

Specifically, RLL bounds the length of stretches (runs) 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](/source/Modulation) the [data](/source/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 (preventing [bit slip](/source/Bit_slip)), 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 (0,1) FM code, followed by RLL (1,3) MFM code which were widely used in [hard disk drives](/source/Hard_disk_drive) until the mid-1980s and are still used in digital optical discs such as [CD](/source/CD), [DVD](/source/DVD), [MD](/source/Minidisc), [Hi-MD](/source/Hi-MD) and [Blu-ray](/source/Blu-ray) using [EFM](/source/Eight-to-Fourteen_Modulation) and [EFMPLus](https://en.wikipedia.org/w/index.php?title=EFMPLus&action=edit&redlink=1) codes.[11] Higher density RLL (2,7) and RLL (1,7) codes became the [de facto standards](/source/De_facto_standard) for hard disks by the early 1990s.[*[citation needed](https://en.wikipedia.org/wiki/Wikipedia:Citation_needed)*]

## Synchronization

Main article: [Clock recovery](/source/Clock_recovery)

Line coding should make it possible for the receiver to synchronize itself to the [phase](/source/Phase_(waves)) 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 bandwidth usage is greater than that of NRZ codes at the same data rate.

## Other considerations

A line code will typically reflect technical requirements of the transmission medium, such as [optical fiber](/source/Optical_fiber) or [shielded twisted pair](/source/Shielded_twisted_pair). These requirements are unique for each medium, because each one has different behavior related to interference, distortion, capacitance and attenuation.[12]

## Common line codes

- [2B1Q](/source/2B1Q)

- [4B3T](/source/4B3T)

- [4B5B](/source/4B5B)

- [6b/8b encoding](/source/6b%2F8b_encoding)

- [8b/10b encoding](/source/8b%2F10b_encoding)

- [64b/66b encoding](/source/64b%2F66b_encoding)

- [128b/130b encoding](/source/128b%2F130b_encoding)

- [Alternate mark inversion](/source/Alternate_mark_inversion) (AMI)

- [Coded mark inversion](/source/Coded_mark_inversion) (CMI)

- [EFMPlus](/source/EFMPlus), used in [DVDs](/source/DVD)

- [Eight-to-fourteen modulation](/source/Eight-to-fourteen_modulation) (EFM), used in [compact discs](/source/Compact_disc)

- [Hamming code](/source/Hamming_code)

- [Hybrid ternary code](/source/Hybrid_ternary_code)

- [Manchester code](/source/Manchester_code) and [differential Manchester](/source/Differential_Manchester)

- [Mark and space](/source/Mark_and_space)

- [MLT-3 encoding](/source/MLT-3_encoding)

- [Modified AMI codes](/source/Modified_AMI_code): B8ZS, B6ZS, B3ZS, HDB3

- [Modified frequency modulation](/source/Modified_frequency_modulation), Miller encoding and delay encoding

- [Non-return-to-zero](/source/Non-return-to-zero) (NRZ)

- [Non-return-to-zero, inverted](/source/Non-return-to-zero%2C_inverted) (NRZI)

- [Pulse-position modulation](/source/Pulse-position_modulation) (PPM)

- [Return-to-zero](/source/Return-to-zero) (RZ)

- [TC-PAM](/source/TC-PAM)

### Optical line codes

- [Alternate-Phase Return-to-Zero](/source/Alternate-Phase_Return-to-Zero) (APRZ)

- [Carrier-Suppressed Return-to-Zero](/source/Carrier-Suppressed_Return-to-Zero) (CSRZ)

- [Three of Six, Fiber Optical](/source/IEEE_1355#Slice:_TS-FO-02) (TS-FO)

## See also

- [Physical layer](/source/Physical_layer)

- [Self-synchronizing code](/source/Self-synchronizing_code) and bit synchronization

## References

1. **[^](#cite_ref-1)** [K. Schouhamer Immink](/source/Kees_Schouhamer_Immink) (2022). ["Innovation in Constrained Codes"](https://www.researchgate.net/publication/362866105). *IEEE Communications Magazine*. Retrieved 2022-10-05.

1. **[^](#cite_ref-optics_2-0)** [K. Schouhamer Immink](/source/Kees_Schouhamer_Immink) (2001). ["A Survey of Codes for Optical Disk Recording"](https://www.researchgate.net/publication/3234561). *IEEE Journal on Selected Areas in Communications*. **19**: 751–764. Retrieved 2018-02-05.

1. **[^](#cite_ref-paulsen_3-0)** Karl Paulsen. ["Coding for Magnetic Storage Mediums"](http://www.tvtechnology.com/media-servers/0150/coding-for-magnetic-storage-mediums/186738) [Archived](https://web.archive.org/web/20140521215946/http://www.tvtechnology.com/media-servers/0150/coding-for-magnetic-storage-mediums/186738) 2014-05-21 at the [Wayback Machine](/source/Wayback_Machine).2007.

1. **[^](#cite_ref-4)** Abdullatif Glass; Nidhal Abdulaziz; and Eesa Bastaki (2007), ["Slope line coding for telecommunication networks"](http://ro.uow.edu.au/cgi/viewcontent.cgi?article=1285&context=dubaipapers), *IEEE International Conference on Signal Processing and Communication*, Dubai: IEEE: 1537, Line codes ... facilitates the transmission of data over telecommunication and computer networks and its storage in multimedia systems.

1. **[^](#cite_ref-5)** Jens Kröger (2014). ["Data Transmission at High Rates via Kapton Flexprints for the Mu3e Experiment"](https://www.psi.ch/mu3e/ThesesEN/BachelorKroeger.pdf) (PDF). p. 16. [Archived](https://ghostarchive.org/archive/20221009/https://www.psi.ch/mu3e/ThesesEN/BachelorKroeger.pdf) (PDF) from the original on 2022-10-09.

1. **[^](#cite_ref-6)** [US 4387366](https://www.google.com.ar/patents/US4387366), Peter E. K. Chow., "Code converter for polarity-insensitive transmission systems", published 1983

1. **[^](#cite_ref-7)** David A. Glanzer, "4.7 Polarity", [*Fieldbus Application Guide ... Wiring and Installation*](http://www.fieldbus.org/images/stories/enduserresources/technicalreferences/documents/wiringinstallationguide.pdf) (PDF), [Fieldbus Foundation](/source/Fieldbus_Foundation), p. 10, [archived](https://ghostarchive.org/archive/20221009/http://www.fieldbus.org/images/stories/enduserresources/technicalreferences/documents/wiringinstallationguide.pdf) (PDF) from the original on 2022-10-09

1. **[^](#cite_ref-8)** George C. Clark Jr.; J. Bibb Cain (2013). [*Error-Correction Coding for Digital Communications*](https://books.google.com/books?id=wgzyBwAAQBAJ). Springer Science & Business Media. p. 255. [ISBN](/source/ISBN_(identifier)) [9781489921741](https://en.wikipedia.org/wiki/Special:BookSources/9781489921741). When PSK data modulation is used, the potential exists for an ambiguity in the polarity of the received channel symbols. This problem can be solved in one of two ways. First ... a so-called *transparent* code. ...

1. **[^](#cite_ref-9)** Prakash C. Gupta (2013). [*Data Communications and Computer Networks*](https://books.google.com/books?id=Zr1nAgAAQBAJ). PHI Learning Pvt. Ltd. p. 13. [ISBN](/source/ISBN_(identifier)) [9788120348646](https://en.wikipedia.org/wiki/Special:BookSources/9788120348646). Another benefit of differential encoding is its insensitivity to polarity of the signal. ... If the leads of a twisted pair are accidentally reversed...

1. **[^](#cite_ref-10)** [Kees Schouhamer Immink](/source/Kees_Schouhamer_Immink) (December 1990). ["Runlength-Limited Sequences"](https://www.researchgate.net/publication/2984369). *Proceedings of the IEEE*. **78** (11): 1745–1759. [doi](/source/Doi_(identifier)):[10.1109/5.63306](https://doi.org/10.1109%2F5.63306). A detailed description is furnished of the limiting properties of runlength limited sequences.

1. **[^](#cite_ref-11)** [Kees Schouhamer Immink](/source/Kees_Schouhamer_Immink) (1995). ["EFMPlus: The Coding Format of the MultiMedia Compact Disc"](https://www.researchgate.net/publication/3179483). *IEEE Transactions on Consumer Electronics*. CE-41: 491–497. A high-density alternative to EFM is described.

1. **[^](#cite_ref-12)** Dong, Jielin (2007). [*Network Dictionary*](https://books.google.com/books?id=On_Hh23IXDUC&pg=PA284). Javvin Technologies Inc. p. 284. [ISBN](/source/ISBN_(identifier)) [9781602670006](https://en.wikipedia.org/wiki/Special:BookSources/9781602670006).

- This article incorporates [public domain material](/source/Copyright_status_of_works_by_the_federal_government_of_the_United_States) from [*Federal Standard 1037C*](https://web.archive.org/web/20220122224547/https://www.its.bldrdoc.gov/fs-1037/fs-1037c.htm). [General Services Administration](/source/General_Services_Administration). Archived from [the original](https://www.its.bldrdoc.gov/fs-1037/fs-1037c.htm) on 2022-01-22. (in support of [MIL-STD-188](/source/MIL-STD-188)).

## External links

- [Line Coding Lecture No. 9](https://web.archive.org/web/20130418052107/http://www.electronics.dit.ie/staff/amoloney/lecture-9.pdf)

- [Line Coding in Digital Communication](http://www.fiberoptics4sale.com/wordpress/line-coding-in-digital-communication/)

- [CodSim 2.0: Open source simulator for Digital Data Communications Model at the University of Malaga written in HTML](https://www.ac.uma.es/~guille/codsim2.0/)

v t e Line coding (digital baseband transmission) Main articles Unipolar encoding Bipolar encoding On–off keying Mark and space Basic line codes Return to zero (RZ) Non-return-to-zero, level (NRZ/NRZ-L) Non-return-to-zero, inverted (NRZ-I) Non-return-to-zero, space (NRZ-S) Manchester Differential Manchester/biphase (Bi-φ) Extended line codes Conditioned diphase 4B3T 4B5B 2B1Q Alternate mark inversion Modified AMI code Coded mark inversion MLT-3 encoding Hybrid ternary code 6b/8b encoding 8b/10b encoding 64b/66b encoding Eight-to-fourteen modulation Delay/Miller encoding TC-PAM Optical line codes Carrier-Suppressed Return-to-Zero Alternate-Phase Return-to-Zero See also: Baseband Baud Bit rate Digital signal Digital transmission Ethernet physical layer Pulse modulation methods Pulse-amplitude modulation (PAM) Pulse-code modulation (PCM) Serial communication Category:Line codes

---
Adapted from the Wikipedia article [Line code](https://en.wikipedia.org/wiki/Line_code) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Line_code?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
