# Leitungscode

Der Leitungscode bzw. Leitungskode legt bei der digitalen Telekommunikation fest, wie die zur Informationsübertragung genutzten Symbole auf der physischen Ebene übertragen werden. Dabei werden bestimmte Pegelfolgen, etwa Lichtintensitäten auf Glasfasern oder Spannungen oder Ströme auf elektrischen Leitungen, binären Bitsequenzen im Datenstrom zugeordnet.

## Allgemeines

Die Aufgabe der Leitungscodierung (bzw. Leitungskodierung) ist, das zu übertragende Signal spektral zu formen, um es so möglichst optimal an die Eigenschaften eines Übertragungsmediums anzupassen. So kann beispielsweise der Gleichspannungsanteil unterdrückt werden. Daneben wird eine Taktrückgewinnung möglich. Bei manchen Leitungscodes wird die erforderliche Leitungsbandbreite verringert. Übertragungsstrecken können so besser ausgenutzt werden, denn die Übertragungsreichweite hängt ursächlich mit der Betriebsdämpfung zusammen. Für ein metallisches Kabel gilt näherungsweise, dass die Dämpfungskonstante proportional der Wurzel aus der Frequenz ist: höhere Frequenzen werden stärker gedämpft als tiefe Frequenzen. Deswegen sollte der Code bei einer möglichst geringen Frequenz das Maximum der Leistungsdichte und der spektrale Verlauf eine geringe Bandbreite haben.
Nicht zu verwechseln ist die Leitungscodierung mit der Kanalkodierung oder der Quellenkodierung: Die Kanalcodierung hat die Aufgabe, durch zusätzlich eingebrachte Redundanz Übertrags- bzw. Speicherfehler im Rahmen der Datenübertragung bzw. Datenspeicherung erkennen und korrigieren zu können, während die Quellencodierung überflüssige (redundante) Information einer Datenquelle reduziert und auch als Datenkompression bezeichnet wird.
Manche Leitungscodes sind gleichanteilsfrei, d. h., deren zeitlicher Mittelwert ist 0. Dies ist dann wichtig, wenn in einer bestimmten Anwendung die elektrische Übertragung von Gleichspannung über den Kanal nicht möglich ist. Die Notwendigkeit für Gleichanteilsfreiheit kann beispielsweise durch Impulstransformatoren zur galvanischen Trennung im Übertragungsweg vorgegeben sein, welche keine Gleichspannung passieren lassen.

## Binäre Leitungscodes

Im auch schaltungstechnisch einfachsten Fall wird den logischen Zuständen 0 und 1 ein Logikpegel auf der physischen Leitung zugeordnet. Dies wird auch als Non Return to Zero (NRZ) bezeichnet, d. h., es gibt keinen Zustand auf der Leitung, welcher keine Information trägt.
Beispielsweise entspricht bei der seriellen EIA-232-Schnittstelle (RS-232) aus den 1960er Jahren etwa eine negative Spannung einer logischen Eins, eine positive Spannung einer logischen Null, dies wird auch als antipodale Codierung bezeichnet. Werden jetzt lauter Einsen übertragen, tut sich auf der Leitung nichts. Dadurch können bei asynchronem Takt nur wenige Bits in einem Block übertragen werden, die mit einer Startsequenz gekennzeichnet werden, oder es ist eine zusätzliche Taktleitung zur Synchronisation nötig. EIA-232 schreibt ein 0-Bit (Startbit) am Beginn jeder Sequenz von 5 bis 8 bit Nutzdaten (plus einem eventuellen Paritätsbit) und ein bis zwei 1-Bits (Stoppbits) an deren Ende vor. Die Stoppbits können beliebig verlängert werden, eine konstante 1 bedeutet daher „keine Datenübertragung“. Diese Kodierung ist nicht gleichspannungsfrei (je nach Dateninhalt können 1-Bits oder 0-Bits deutlich überwiegen), wodurch lange Kabel unmöglich sind. EIA-232 gleicht diesen Nachteil teilweise aus durch die Verwendung recht hoher Spannungen (üblicherweise ±12 V), was aber eigene Probleme mit sich bringt und sich daher in neueren Normen nicht durchgesetzt hat.
Serielle Übertragung (EIA-232) :
| | | | Start | | | | | | | | Stop | Stop | |
| Datenbits: | | | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | | | |
| Leitungsbits: | . . . . | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | . . . . |
| Spannungspegel: | - - - - | + | - | - | + | - | + | + | + | - | - | - | - - - - |

## Manchesterkodierung

Bei der Manchesterkodierung entspricht eine Null-Eins-Folge einer logischen Null (steigende Flanke), eine Eins-Null-Folge (fallende Flanke) einer logischen Eins:
Hierdurch wird erreicht, dass
    1. stets Pegelwechsel zur Taktrückgewinnung vorhanden sind,
    2. der Gleichanteil im Mittel immer gleich Null ist.
Es verdoppelt sich die erforderliche Symbolrate am Übertragungskanal.
Beim differentiellen Manchestercode steht ein Polaritätswechsel am Taktanfang für eine logische Null (zwei Flankenwechsel pro Bit), bei einer logischen Eins erfolgt kein Polaritätswechsel am Taktanfang (ein Flankenwechsel pro Bit).

### Taktrückgewinnung

Durch die permanenten Pegelwechsel wird eine Taktrückgewinnung möglich. Eine gesonderte Leitung für den Takt erübrigt sich daher. Im Falle der Manchestercodierung wird eine Startsequenz mit einer Folge von vielen Eins-Null-Datensequenzen (ca. 10–30) - 1010101010... auf der Leitung – was effektiv einer 11111-Folge am Eingang des Kodierers entspricht – eine Phasenregelschleife (PLL) im Empfänger synchronisiert. Eine Eins-Null-Sequenz (1001 auf der Leitung) startet die eigentliche Datenübertragung. Danach folgt ein Datenpaket mit mehreren tausend Bits.
Taktrückgewinnung durch PLL bei Manchesterkodierung: :
| PLL wird synchronisiert | PLL wird synchronisiert | PLL wird synchronisiert | PLL wird synchronisiert | PLL wird synchronisiert | PLL wird synchronisiert | PLL wird synchronisiert | PLL wird synchronisiert | PLL wird synchronisiert | PLL wird synchronisiert | PLL bleibt synchronisiert | PLL bleibt synchronisiert | PLL bleibt synchronisiert | PLL bleibt synchronisiert | PLL bleibt synchronisiert | PLL bleibt synchronisiert | PLL bleibt synchronisiert | PLL bleibt synchronisiert | PLL bleibt synchronisiert | PLL bleibt synchronisiert | PLL bleibt synchronisiert |
| Sync In | Sync In | Sync In | Sync In | Sync In | Sync In | Sync In | Sync In | Sync In | Sync In | Start | Start | Datenübertragung | Datenübertragung | Datenübertragung | Datenübertragung | Datenübertragung | Datenübertragung | Datenübertragung | Datenübertragung | Datenübertragung |
| Datenbits: | | | | | | | | | | | | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | ... |
| Sync/Daten: | 1 | 1 | 1 | 1 | 1 | ... | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | ... |
| Leitungsbits: | 1 0 | 1 0 | 1 0 | 1 0 | 1 0 | ... | 1 0 | 1 0 | 1 0 | 1 0 | 0 1 | 0 1 | 1 0 | 1 0 | 0 1 | 0 1 | 0 1 | 0 1 | 0 1 | ... |
| Pegel: | + - | + - | + - | + - | + - | ... | + - | + - | + - | + - | - + | - + | + - | + - | - + | - + | - + | - + | - + | ... |

### Kodierungen mit mehrere Bits langen Blöcken

Der Leitungscode hat bei der Manchestercodierung doppelt so viele Bits wie der Datenstrom, er ist hinsichtlich der erforderlichen Datenrate ungünstig, die Bandbreite hängt nur von der Flanke eines Bits ab, je steiler diese Flanke ist, desto mehr Bandbreite wird benötigt. Binäre Übertragungen sind somit für Kanäle mit begrenzter Bandbreite (z. B. Luft) nicht geeignet; ein Kanalcodierer muss nachgeschaltet werden. Andere Kodierungen, etwa 4 Datenbits auf 5 Codebits (4B5B), sind hier besser, daneben wird bei mehreren Bits eine Fehlererkennung möglich:
    3. Verringerung der erforderlichen Leitungsdatenrate
    4. Fehlererkennung
Statt zwei (+/-, binär) können bei elektrischer Übertragung auch drei (+/=/-, ternär) oder noch mehr Spannungspegel eingesetzt werden.
Block-Code (4 Bits auf 3 Ternär-Pegel, 4B3T): :
| Datenbits in Blöcken zu 4 Bit: | 0 1 1 0 | 0 0 1 0 |
| Ternärcode in Blöcken zu 3 Symbolen: | = = + | - = + |
| Spannungspegel: | 0 0 + | - 0 + |

## Blockcodes

Sogenannte Blockcodes werden gewöhnlich mit pBqX bezeichnet. Dabei werden „p“ Bits eines Binärwortes zusammengefasst und zu einem Block der Länge q in einer X-Darstellung codiert. Der Vorteil dieser Vorgehensweise liegt darin, dass die Schrittgeschwindigkeit durch diese Codierung um den Faktor „p“ reduziert wird, wodurch sich auch die Dämpfungskonstante reduziert und eine größere Übertragungsreichweite möglich wird. Allerdings wird mit steigender Stufenzahl das Signal auch störanfälliger.
* 4B5B ist ein Code, der jeweils 4 Bits auf 5 Bits abbildet, also 16 (2$^4$) Blockcodes auf 32 (2$^5$) Leitungscodes. Der Code ist nicht gleichstromfrei. Bei Fast-Ethernet 100BASE-TX wird durch Verwendung von MLT-3 mit drei Spannungspegeln und dem Einsatz eines Scramblers unter günstigen Umständen Gleichstromfreiheit erreicht. Bei MLT-3 wird gegenüber einfacheren Verfahren wie der Manchestercodierung die erforderliche Bandbreite des Übertragungskanals reduziert. Eine 4B5B-Codierung plus anschließende MLT-3-Codierung ohne weitere Maßnahmen kann keine Gleichstromfreiheit erreichen. Dies kann durch Ausprobieren der 32 möglichen 5-Bit-Codeworte überprüft werden.
* 4B3T bildet entsprechend je 4 Bits auf eine 3er Gruppe mit drei Spannungsstufen ab (Ternäres Signal), und damit 16 (2$^4$) Blockcodes auf 27 (3$^3$) Leitungscodes. Manche Blockcodes werden auf mehrere Leitungscodes abgebildet, so dass durch Wahl des „besseren“ Codes der aktuelle Gleichstromanteil jeweils reduziert werden kann. Dazu wird das Vorzeichen des Anteils bei der Übertragung summiert, die Summe beeinflusst die Wahl des Leitungscodes. Merkmale von 4B3T sind Taktrückgewinnung, geringer Gleichstromanteil und Bandbreitenreduktion. Diese Codierung wird auf 34 Mbit/s (E3) und 140 Mbit/s (E4) Koaxialübertragungsstrecken und auch für die UK0-Schnittstelle des ISDN-Basisanschlusses verwendet.
* Der Manchester-Code trägt die Bezeichnung 1B2B (1 Bit auf 2 Bits), nämlich 2 (2$^1$) Blockcodes auf 4 (2$^2$) Leitungscodes, verwendet von den vier jedoch nur zwei Leitungscodes, 01 und 10, da die beiden anderen keine Spannungswechsel enthalten. Die Kodierung ist simpel, sie ist gleichstromfrei und erlaubt die Taktrückgewinnung. Die erforderliche Leitungsbandbreite ist jedoch größer als ohne Code.
* 2B1Q bildet jeweils 2 (2$^2$) Bits auf einen Spannungspegel mit 4 (4$^1$) Stufen ab (Quaternärer Code). Der Code ermöglicht Bandbreitenreduktion, jedoch keine Taktrückgewinnung und keine Gleichstromfreiheit.

## Umsetzung auf Spannungs- oder Intensitätspegel

Die Kodierung eines Leitungscodes wie 4B5B oder 8B10B wandelt eine Binärfolge in eine weitere Binärfolge um. Die kodierte Bitfolge muss dann noch auf Intensitäten umgesetzt werden. Mit NRZ (englisch non return to zero) wird die einfache Zuordnung von logischen Werten (0 und 1) auf zwei Pegel bezeichnet. Bei NRZ-I werden ebenfalls nur zwei Pegel benutzt, die logische 1 wird jedoch einem Pegelwechsel zugeordnet, während eine logische 0 den Pegel konstant hält. FDDI verwendet bei der Übertragung über Glasfasern zum Beispiel erst 4B5B und dann NRZ-I. Bei der elektrischen Übertragung von Ethernet mit 100 Mbit/s über Twisted-Pair-Kabel (100BASE-TX) wird ebenfalls zunächst 4B5B verwendet. Daran wird zur Reduktion des Gleichspannungsanteils der drei-Pegel-Code MLT-3 angefügt (Pseudoternärsignal). Das wenig verbreitete Ethernet über Glasfaser (100BASE-FX) verwendet aber 4B5B/NRZ-I.

## Bekannte Leitungscodes (Auswahl)

* NRZ-Code
* RZ-Code (Weiterentwicklung des NRZ-Codes)
* NRZI-Code (Non Return To Zero Inverted)
* MLT-3-Code (gleichstromarme Umsetzung von Binärfolgen auf drei Spannungspegel)
* Manchester-Code (10 Mbit/s Ethernet) und differentieller Manchester-Code (Token Ring)
* Biphase-Mark-Code
* Group Coded Recording (GCR, Disketten von Apple und Commodore)
* Run Length Limited Codes (RLL) wie beispielsweise:
** 4B5B-Code (FDDI, 100 Mbit/s Ethernet)
** 8b/10b-Code (Gigabit-Ethernet, PCI-Express 1.0 und 2.0, Serial Attached SCSI 1-3, SATA, USB SuperSpeed)
* 6b8b-Code
* 64b/66b-Code (10-Gigabit-Ethernet)
* 128b/130b-Code (PCI-Express 3.0, 4.0 und 5.0)
* HDB3-Code (ISDN-Primärmultiplexanschluss U$_{K2}$)
* AMI-Code (modifizierter AMI-Code bei ISDN-Basisanschluss S$_0$)
* B8ZS
* MMS43- oder 4B3T-Code (ISDN-Basisanschluss U$_{K0}$)
* 2B1Q-Code (Teilnehmeranschlüsse, HDSL)
* Carrier Amplitude and Phase
* Miller-Code (FM, Digitale Frequenzmodulation)
* Eight-to-Fourteen-Modulation (EFM)
Multiträgerverfahren
* DTM - Discret Multitone (VDSL2, ADSL)
* OFDM
* COFDM