Prinzip der 4B3T-Codierung
Applet in neuem Tab öffnen Open English Version
Inhaltsverzeichnis
Programmbeschreibung
Das Applet verdeutlicht das Prinzip der $\rm 4B3T$–Codierung. Hierbei wird jeweils ein Block von vier Binärsymbolen durch eine Sequenz aus drei Ternärsymbolen ersetzt. Daraus ergibt sich eine relative Coderedundanz von knapp $16\%$, die dazu verwendet wird, um Gleichsignalfreiheit zu erzielen.
Die Umcodierung der sechzehn möglichen Binärblöcke in die entsprechenden Ternärblöcke könnte prinzipiell nach einer festen Codetabelle erfolgen. Um die spektralen Eigenschaften dieser Codes weiter zu verbessern, werden bei den 4B3T–Codes aber stets mehrere Codetabellen verwendet, die nach der „laufenden digitalen Summe” $($englisch: Running Digital Sum, kurz $\rm RDS)$ blockweise ausgewählt werden.
Im Applet sind im unteren Bereich die entsprechenden Codetabellen angegeben, und zwar alternativ für
- den $\rm MS43$–Code (von: $\rm M$onitored $\rm S$um $\rm 4$B$\rm 3$T–Code), und
- den $\rm MMS43$–Code (von: $\rm M$odified $\rm MS43$).
Eingabeparameter sind neben dem gewünschten Code (MS43 oder MMS43) der RDS–Startwert $\rm RDS_0$ sowie zwölf binäre Quellensymbole $q_\nu \in \{0,\ 1\}$, entweder per Hand, per Voreinstellung $($Quellensymbolfolge $\rm A$, $\rm B$, $\rm C)$ oder per Zufallsgenerator.
Vom Programm angeboten werden zwei verschiedene Modi:
- Im Modus „Schritt” werden die drei Blöcke sukzessive abgearbeitet (jeweils Festlegung der drei Ternärsymbole, Aktualisierung des RDS–Wertes und damit Festlegung der Codetabelle für den nächsten Block.
- Im Modus „Gesamt” werden nur die Codierergebnisse angezeigt, aber gleichzeitig für die beiden möglichen Codes und jeweils für alle vier möglichen RDS–Startwerte. Die Grafik und der RDS–Ausgabeblock rechts beziehen sich dabei auf die getroffenen Einstellungen.
Theoretischer Hintergrund
Klassifizierung verschiedener Codierverfahren
Wir betrachten das dargestellte digitale Übertragungsmodell. Wie aus diesem Blockschaltbild zu erkennen ist, unterscheidet man je nach Zielrichtung zwischen drei verschiedenen Arten von Codierung, jeweils realisiert durch den sendeseitigen Codierer (Coder) und den zugehörigen Decodierer (Decoder) beim Empfänger:
- $\text{Quellencodierung:}$ Entfernen (unnötiger) Redundanz, um Daten möglichst effizient speichern oder übertragen zu können ⇒ Datenkomprimierung. Beispiel: Differentielle Pulscodemodulation $\rm (DPCM)$ in der Bildcodierung.
- $\text{Kanalcodierung:}$ Gezieltes Hinzufügen (sinnvoller) Redundanz, die man beim Empfänger zur Fehlererkennung oder zur Fehlererkennung nutzen kann. Wichtigste Vertreter: Blockcodes, Faltungscodes, Turbocodes.
- $\text{Leitungscodierung:}$ Umcodierung der Quellensymbole, um das Signal an die Spektraleigenschaften von Kanal und Empfangseinrichtungen anzupassen, etwa, um bei einem Kanal mit $H_{\rm K}(f = 0) = 0$ ein gleichsignalfreies Sendesignal $x(t)$ zu erreichen.
Bei den Leitungscodes unterscheidet man weiter:
- $\text{Symbolweise Codierung:}$ Mit jedem ankommenden Binärsymbol $q_ν$ wird ein mehrstufiges (zum Beispiel: ternäres) Codesymbol $c_ν$ erzeugt, das auch von den vorherigen Binärsymbolen abhängt. Die Symboldauern $T_q$ und $T_c$ sind hierbei identisch. Beispiel: Pseudoternärcodes (AMI–Code, Duobinärcode).
- $\text{Blockweise Codierung:}$ Ein Block aus $m_q$ Binärsymbolen $(M_q = 2)$ wird durch eine Sequenz aus $m_c$ höherstufigen Symbolen $(M_c > 2)$ ersetzt. Ein Kennzeichen dieser Codeklasse ist $T_c> T_q$. Beispiele sind redundanzfreie Mehrstufencodes $(M_c$ ist eine Zweierpotenz$)$ sowie die hier betrachteten $\text{4B3T-Codes}$.
Allgemeine Beschreibung der 4B3T–Codes
Der bekannteste Blockcode zur Leitungscodierung ist der $\rm 4B3T–Code$ mit den Codeparametern
- $$m_q = 4,\hspace{0.2cm}M_q = 2,\hspace{0.2cm}m_c = 3,\hspace{0.2cm}M_c = 3\hspace{0.05cm},$$
der bereits in den 1970–er Jahren entwickelt wurde und beispielsweise bei ISDN (Integrated Services Digital Networks ) eingesetzt wird.
Ein 4B3T–Code besitzt folgende Eigenschaften:
- Wegen $m_q \cdot T_q = m_c \cdot T_c$ ist die Symboldauer $T=T_c$ des Codersignals um den Faktor $4/3$ größer als die Bitdauer $T_{\rm B}=T_q$ des binären Quellensignals. Daraus ergibt sich die günstige Eigenschaft, dass der Bandbreitenbedarf um ein Viertel geringer ist als bei redundanzfreier Binärübertragung.
- Die relative Redundanz der 4B3T–Codes ergibt sich zu
- $$r_c = 1- \frac{m_q \cdot {\rm log_2}\hspace{0.05cm} (M_q)}{m_c \cdot {\rm log_2} \hspace{0.05cm}(M_c)} = 1- \frac{4 \cdot {\rm log_2}\hspace{0.05cm} (2)}{3 \cdot {\rm log_2} \hspace{0.05cm}3}= 1- \frac{4 }{3 \cdot 1.585}\hspace{0.05cm}\approx{0.158}.$$
- Diese Redundanz von knapp $16\%$ wird dazu verwendet, um Gleichsignalfreiheit zu erzielen. Das 4B3T–codierte Signal kann somit ohne merkbare Beeinträchtigung auch über einen Kanal mit der Eigenschaft $H_{\rm K}(f= 0) = 0$ übertragen werden.
Die Umcodierung der sechzehn möglichen Binärblöcke in die entsprechenden Ternärblöcke könnte prinzipiell nach einer festen Codetabelle vorgenommen werden. Um die spektralen Eigenschaften dieser Codes weiter zu verbessern, werden bei den gebräuchlichen 4B3T–Codes, nämlich
- dem 4B3T–Code nach Jessop und Waters,
- dem MS43–Code (von: $\rm M$onitored $\rm S$um $\rm 4$B$\rm 3$T–Code),
- dem FoMoT–Code (von: $\rm Fo$ur $\rm Mo$de $\rm T$ernary),
zwei oder mehrere Codetabellen verwendet, deren Auswahl von der „laufenden digitalen Summe” der Amplitudenkoeffizienten gesteuert wird.
Laufende digitale Summe
Die ternären Amplitudenkoeffizienten seien $a_\nu \in \{ -1, \ 0, +1\}$.
Nach der Übertragung von l Blöcken gilt für die „Laufende Digitale Summe” $($englisch: Running Digital Sum, kurz $\rm RDS)$:
- $${\it \Sigma}_l = \sum_{\nu = 1}^{3 \hspace{0.05cm}\cdot \hspace{0.05cm} l}\hspace{0.02cm} a_\nu \hspace{0.05cm}.$$
Die Auswahl der Tabelle zur Codierung des $(l + 1)$–ten Blocks erfolgt abhängig vom aktuellen Wert ${\it \Sigma}_l$.
In der Tabelle sind die Codierregeln für die drei oben genannten 4B3T–Codes angegeben. Zur Vereinfachung der Schreibweise steht „+” für den Amplitudenkoeffizienten „+1” und „–” für den Koeffizienten „–1”.
- Die zwei Codetabellen des Jessop–Waters–Codes sind so gewählt, dass die laufende digitale Summe ${\it \Sigma}_l$ stets zwischen $0$ und $5$ liegt.
- Bei den beiden anderen Codes (MS43, FoMoT) erreicht man durch drei bzw. vier alternative Tabellen die Beschränkung der laufenden digitalen Summe auf den Wertebereich $0 \le {\it \Sigma}_l \le 3$.
Im Applet werden betrachtet:
- der $\rm MS43$–Code (von: $\rm M$onitored $\rm S$um $\rm 4$B$\rm 3$T–Code),
- der $\rm MMS43$–Code (von: $\rm M$odified $\rm MS43$).
Zur Farbgebung der nebenstehenden Grafik:
- Graue Hintergung: Der RDS–Wert bleibt gleich: ${\it \Sigma}_{l+1} = {\it \Sigma}_l$.
- Rote Hintergung: Der RDS–Wert wird größer: ${\it \Sigma}_{l+1} > {\it \Sigma}_l$.
- Blaue Hintergung: Der RDS–Wert wird kleiner: ${\it \Sigma}_{l+1} < {\it \Sigma}_l$.
- Zu– bzw. Abnahme ist umso größer, je intensiver die Farben sind.
AKF und LDS der 4B3T–Codes
Die Vorgehensweise zur Berechnung von AKF und LDS wird hier nur stichpunktartig skizziert
(im Applet wird hierauf nicht eingegangen):
(1) Der Übergang der laufenden digitalen Summe von ${\it \Sigma}_l$ nach ${\it \Sigma}_{l+1}$ wird durch eine homogene stationäre Markovkette erster Ordnung mit sechs (Jessop–Waters) bzw. vier Zuständen (MS43, FoMoT) beschrieben. Für den FoMoT–Code gilt das rechts skizzierte Markovdiagramm.
(2) Die Werte an den Pfeilen kennzeichnen die Übergangswahrscheinlichkeiten ${\rm Pr}({\it \Sigma}_{l+1}|{\it \Sigma}_{l})$, die sich aus den jeweiligen Codetabellen ergeben. Die Farben korrespondieren zu den Hinterlegungen der Tabelle auf der letzten Seite. Aufgrund der Symmetrie des FoMoT–Markovdiagramms sind die vier Wahrscheinlichkeiten alle gleich:
- $${\rm Pr}({\it \Sigma}_{l} = 0) = \text{...} = {\rm Pr}({\it \Sigma}_{l} = 3) = 1/4.$$
(3) Die Autokorrelationsfunktion (AKF) $\varphi_a(\lambda) = {\rm E}\big [a_\nu \cdot a_{\nu+\lambda}\big ]$ der Amplitudenkoeffizienten kann aus diesem Diagramm ermittelt werden. Einfacher als die analytische Berechnung, die eines sehr großen Rechenaufwands bedarf, ist die simulative Bestimmung der AKF–Werte mittels Computer.
Durch Fouriertransformation der AKF kommt man zum Leistungsdichtespektrum (LDS) ${\it \Phi}_a(f)$ der Amplitudenkoeffizienten entsprechend der folgenden Grafik aus [ST85][1]. Das skizzierte LDS wurde für den FoMoT–Code ermittelt, dessen Markovdiagramm oben dargestellt ist. Die Unterschiede der einzelnen 4B3T–Codes sind nicht sonderlich ausgeprägt. So gilt für den MS43–Code ${\rm E}\big [a_\nu^2 \big ] \approx 0.65$ und für die beiden anderen 4B3T-Codes (Jessop/Waters, MS43) ${\rm E}\big [a_\nu^2 \big ] \approx 0.69$.
Die Aussagen dieser Grafik kann man wie folgt zusammenfassen:
- Die Grafik zeigt das LDS ${\it \Phi}_a(f)$ der Amplitudenkoeffizienten $a_\nu$ des 4B3T-Codes ⇒ rote Kurve.
- Das LDS ${\it \Phi}_s(f)$ unter Einbeziehung des Sendegrundimpulses erhält man durch Multiplikation mit $1/T \cdot |G(f)|^2$. Beispielsweise muss man ${\it \Phi}_a(f)$ mit einer $\rm si^2$–Funktion multiplizieren, wenn $g(t)$ einen Rechteckimpuls beschreibt.
- Bei redundanzfreier Binär– oder Ternärcodierung ergibt sich jeweils ein konstantes ${\it \Phi}_a(f)$, dessen Höhe von der Stufenzahl $M$ abhängt (unterschiedliche Signalleistung).
- Dagegen weist das 4B3T–Leistungsdichtespektrum Nullstellen bei $f = 0$ und Vielfachen von $f = 1/T$ auf.
- Die Nullstelle bei $f = 0$ hat den Vorteil, dass das 4B3T–Signal ohne große Einbußen auch über einen so genannten Telefonkanal übertragen werden kann, der aufgrund von Übertragern für ein Gleichsignal nicht geeignet ist.
- Die Nullstelle bei $f = 1/T$ hat den Nachteil, dass dadurch die Taktrückgewinnung am Empfänger erschwert wird. Außerhalb dieser Nullstellen weisen die 4B3T–Codes ein flacheres ${\it \Phi}_a(f)$ auf als beispielsweise der AMI–Code (blaue Kurve), was von Vorteil ist.
- Der Grund für den flacheren LDS–Verlauf bei mittleren Frequenzen sowie den steileren Abfall zu den Nullstellen hin ist, dass bei den 4B3T–Codes bis zu fünf $+1$– bzw. $-1$–Koeffizienten aufeinanderfolgen können. Beim AMI–Code treten diese Symbole nur isoliert auf.
Versuchsdurchführung
- Wählen Sie zunächst die Nummer (1, 2, ... ) der zu bearbeitenden Aufgabe.
- Eine Aufgabenbeschreibung wird angezeigt. Die Parameterwerte sind angepasst.
- Lösung nach Drücken von „Musterlösung”.
- Die Nummer 0 entspricht einem „Reset”: Einstellung wie beim Programmstart.
- Für die Quellensymboleingabe wird „0” und „–” gleichermaßen verwendet, ebenso „1” und „+”.
(1) Verdeutlichen Sie sich die 4B3T–Codierung der Quellensymbolfolge $\rm A$ ⇒ $\langle q_\nu \rangle = \langle 0, 1, 0, 1; \ 1, 0, 1, 1; \ 0, 1, 1, 0 \rangle $ gemäß dem $\rm MS43$–Code im Schrittmodus.
Der RDS-Startwert sei ${\it \Sigma}_0= 0$. Hinweis: Die Quellensymbolfolge ist durch Semikola bereits in Teilfolgen mit jeweils vier Binärsymbolen unterteilt.
- Ausgehend vom RDS-Startwert ${\it \Sigma}_0= 0$ erkennt man folgende Codierung der ersten vier Binärsymbole (erster Block): $(0, 1, 0, 1)\ \rightarrow\ (+,\ 0 ,\ +) $ ⇒ ${\it \Sigma}_1= 2.$
- Für die nächsten vier Binärsymbole (zweiter Block) ist nun von ${\it \Sigma}_1= 2$ auszugehen: $(1, 0, 1, 1)\ \rightarrow\ (+,\ 0 ,\ 0) $ ⇒ ${\it \Sigma}_2= 3.$
- Die Codierung der Binärsymbole 9 bis 12 (dritter Block) ergibt sich mit ${\it \Sigma}_2= 3$ zu $(0, 1, 1, 0,)\ \rightarrow\ (-,\ 0 ,\ 0) $ ⇒ ${\it \Sigma}_3= 2.$
(2) Wiederholen Sie diesen Versuch mit den anderen möglichen RDS-Startwerten ${\it \Sigma}_0= 1$, ${\it \Sigma}_0= 2$ und ${\it \Sigma}_0= 3.$ Wie unterscheiden sich die Codierergebnisse?
- ${\it \Sigma}_0= 1$: $(0, 1, 0, 1)\ \rightarrow\ (0,\ - ,\ 0) $ ⇒ ${\it \Sigma}_1= 0$: $(1, 0, 1, 1)\ \rightarrow\ (+,\ 0 ,\ 0) $ ⇒ ${\it \Sigma}_2= 1$: $(0, 1, 1, 0)\ \rightarrow\ (-,\ 0 ,\ 0) $ ⇒ ${\it \Sigma}_3= 0.$
- ${\it \Sigma}_0= 2$: $(0, 1, 0, 1)\ \rightarrow\ (0,\ - ,\ 0) $ ⇒ ${\it \Sigma}_1= 1$: $(1, 0, 1, 1)\ \rightarrow\ (+,\ 0 ,\ 0) $ ⇒ ${\it \Sigma}_2= 2$: $(0, 1, 1, 0)\ \rightarrow\ (-,\ 0 ,\ 0) $ ⇒ ${\it \Sigma}_3= 1.$
- ${\it \Sigma}_0= 3$: $(0, 1, 0, 1)\ \rightarrow\ (0,\ - ,\ 0) $ ⇒ ${\it \Sigma}_1= 2$: $(1, 0, 1, 1)\ \rightarrow\ (+,\ 0 ,\ 0) $ ⇒ ${\it \Sigma}_2= 3$: $(0, 1, 1, 0)\ \rightarrow\ (-,\ 0 ,\ 0) $ ⇒ ${\it \Sigma}_3= 2.$
(3) Wieviele unterschiedliche Codetabellen verwendet der $\rm MS43$–Code?
- Aus den bisherigen Versuchen erkennt man, dass der MS43–Code mindestens zwei Tabellen benutzt, zwischen denen gemäß dem aktuellen RDS–Wert umgeschaltet wird.
- Aus der im Programm angegebenen Tabelle ist ersichtlich, dass tatsächlich drei Tabellen benutzt werden. Die Einträge für ${\it \Sigma}_l= 1$ und ${\it \Sigma}_l= 2$ sind nämlich identisch.
(4) Interpretieren Sie die Ergebnisse der 4B3T–Codierung für die Quellensymbolfolge $\rm B$ ⇒ $\langle q_\nu \rangle = \langle 1, 1, 1, 0; \ 0, 0, 1, 0; \ 1, 1, 1, 1 \rangle $ und den MS43–Code.
- Bei dieser Quellensymbolfolge wird der RDS–Wert nicht verändert. Für jeden Startwert $(0$, $1$, $2$ und $3)$ gilt ${\it \Sigma}_0 = {\it \Sigma}_1 ={\it \Sigma}_2 ={\it \Sigma}_3 $, zum Beispiel:
- ${\it \Sigma}_0= 1$: $(1, 1, 1, 0)\ \rightarrow\ (0,\ - ,\ +) $ ⇒ ${\it \Sigma}_1= 1$: $(0, 0, 1, 0)\ \rightarrow\ (+,\ 0 ,\ -) $ ⇒ ${\it \Sigma}_2= 1$: $(1, 1, 1, 1)\ \rightarrow\ (-,\ 0 ,\ +) $ ⇒ ${\it \Sigma}_3= 1.$
- Der Grund hierfür ist, dass bei dieser Quellensymbolfolge jedes Ternär–Triple nach der Codierung genau ein „Plus” und ein „Minus” enthält.
(5) Wieviele unterschiedliche Codetabellen verwendet dagegen der der modifizierte MS43–Code ⇒ $\rm MMS43$?
- Aus der im Programm angegebenen Tabelle ist ersichtlich, dass sich beim modifizierte MS43–Code tatsächlich alle vier Tabellen unterscheiden.
- Die Einträge für ${\it \Sigma}_l= 1$ und ${\it \Sigma}_l= 2$ sind zwar weitgehend gleich. Sie unterscheiden sich nur für die Binärsequenzen $(0, 1, 1, 0)$ und $(1, 0, 1, 0)$.
- Der $\rm MMS43$–Code wird bei $\rm ISDN$ (Integrated Services Digital Network) auf dem Teilnehmeranschluss $(U_{K0}$–Schnittstelle$)$ verwendet.
- Uns ist nicht bekannt, warum bei der Standardisierung der ursprüngliche MS43–Code modifiziert wurde. Wir vermuten, ein etwas günstigeres Leistungsdichtespektrum.
(6) Vergleichen Sie die Ergebnisse für $\rm MS43$ und $\rm MMS43$ für die Quellensymbolfolgen $\rm A$ und $\rm B$ und beliebige RDS–Startwerte. Wählen Sie den Modus „Gesamt”.
- Für die Quellensymbolfolge $\rm A$ gibt es zwei unterschiedliche $\rm MS43$–Codesymbolfolgen und drei unterschiedliche $\rm MMS43$–Codesymbolfolgen.
- Für die Quellensymbolfolge $\rm B$ sind die $\rm MS43$–Codesymbolfolgen für alle möglichen RDS–Startwerte gleich. Bei $\rm MMS43$: zwei verschiedene Codierergebnisse.
(7) Interpretieren Sie die Ergebnisse für die Symbolfolge $\rm C$ ⇒ $\langle q_\nu \rangle = \langle 0, 1, 1, 0; \ 0, 1, 1, 0; \ 0, 1, 1, 0 \rangle $ für beide Codes und alle RDS–Startwerte. Modus: „Gesamt”.
- Die vier Eingangsbit eines jeden Blocks sind $(0,\ 1,\ 1,\ 0)$. Beim $\rm MS43$ werden diese ersetzt durch $(0,\ +,\ +)$, falls ${\it \Sigma}_l=0$; bzw. $(-,\ 0,\ 0)$, falls ${\it \Sigma}_l\ne0$.
- Beim $\rm MMS43$ werden diese dagegen ersetzt durch $(-,\ +,\ +)$, falls ${\it \Sigma}_l\le 1$; bzw. $(-,\ -,\ +)$, falls ${\it \Sigma}_l\ge 2$. Nur wenn Sie genügend Zeit zu erübrigen haben:
- Versuchen Sie den Sinn dieser Modifizierung von $\rm MS43$ auf $\rm MMS43$ zu ergründen. Uns vom $\rm LNTwww$–Team ist das nämlich nicht gelungen.
Zur Handhabung des Applets
(A) Auswahl eines von vier Quellensignalen
(B) Parameterwahl für Quellensignal $1$ (Amplitude, Frequenz, Phase)
(C) Ausgabe der verwendeten Programmparameter
(D) Parameterwahl für Abtastung $(f_{\rm G})$ und
Signalrekonstruktion $(f_{\rm A},\ r)$
(E) Skizze des Empfänger–Frequenzgangs $H_{\rm E}(f)$
(F) Numerische Ausgabe $(P_x, \ P_{\rm \varepsilon}, \ 10 \cdot \lg(P_x/ P_{\rm \varepsilon})$
(G) Darstellungsauswahl für Zeitbereich
(H) Grafikbereich für Zeitbereich
( I ) Darstellungsauswahl für Frequenzbereich
(J) Grafikbereich für Frequenzbereich
(K) Bereich für Übungen: Aufgabenauswahl, Fragen, Musterlösung
Über die Autoren
Dieses interaktive Berechnungstool wurde am Lehrstuhl für Nachrichtentechnik der Technischen Universität München konzipiert und realisiert.
- Die erste Version wurde 2010 von Stefan Müller im Rahmen seiner Diplomarbeit (LB) mit „FlashMX–Actionscript” erstellt (Betreuer: Günter Söder).
- 2020 wurde das Programm von Carolin Mirschina im Rahmen einer Werkstudententätigkeit auf „HTML5” umgesetzt und neu gestaltet (Betreuer: Tasnád Kernetzky).
Die Umsetzung dieses Applets auf HTML 5 wurde durch die Exzellenzinitiative der TU München finanziell unterstützt. Wir bedanken uns.
Nochmalige Aufrufmöglichkeit des Applets in neuem Fenster
Applet in neuem Tab öffnen Open English Version
- ↑ Söder, G.; Tröndle, K.: Digitale Übertragungssysteme - Theorie, Optimierung & Dimensionierung der Basisbandsysteme. Berlin – Heidelberg: Springer, 1985.