Principle of 4B3T Coding

From LNTwww
Revision as of 16:46, 28 May 2021 by Javier (talk | contribs) (Text replacement - "”" to """)

Open Applet in new Tab   Deutsche Version Öffnen

Applet Description


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.


Theoretical Background

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:

Vereinfachtes Modell eines Nachrichtenübertragungssystems
  • $\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

Codetabellen für drei 4B3T-Codes

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".

  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.
  2.  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:

  1. Graue Hintergung:  Der RDS–Wert bleibt gleich:  ${\it \Sigma}_{l+1} = {\it \Sigma}_l$.
  2. Rote Hintergung:  Der RDS–Wert wird größer:  ${\it \Sigma}_{l+1} > {\it \Sigma}_l$.
  3. Blaue Hintergung:  Der RDS–Wert wird kleiner:  ${\it \Sigma}_{l+1} < {\it \Sigma}_l$.
  4. Zu– bzw. Abnahme ist umso größer, je intensiver die Farben sind.


AKF und LDS der 4B3T–Codes

Markovdiagramm zur Analyse des 4B3T-Codes (FoMoT)

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$.

Leistungsdichtespektrum (der Ampltudenkoeffizienten) von 4B3T im Vergleich zu redundanzfreier und AMI-Codierung

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.


Exercises

  • First, select the number  $(1,\ 2, \text{...} \ )$  of the task to be processed.  The number  $0$  corresponds to a "Reset":  Same setting as at program start.
  • A task description is displayed.  The parameter values are adjusted.  Solution after pressing "Show Solution".
  • Both the input signal  $x(t)$  and the filter impulse response  $h(t)$  are normalized, dimensionless and energy-limited ("time-limited pulses").
  • All times, frequencies, and power values are to be understood normalized, too.


(1)  Illustrate the 4B3T coding of the source symbol sequence  $\rm A$   ⇒   $\langle q_\nu \rangle = \langle 0, 1, 0, 1; \ 1, 0, 1, 1; \ 0, 1, 1, 0 \rangle $  according to the  $\rm MS43$  code ("Block–by–Block").
        Let the RDS initial value be  ${\it \Sigma}_0= 0$.   Note:  The source symbol sequence is already divided by semicolons into subsequences of four bits each.

  • Starting from the RDS initial value  ${\it \Sigma}_0= 0$  you recognize the following coding of the first four bits (first block):  $(0, 1, 0, 1)\ \rightarrow\ (+,\ 0 ,\ +) $   ⇒   ${\it \Sigma}_1= 2.$
  • For the next four bits (second block), now assume  ${\it \Sigma}_1= 2$  $(1, 0, 1, 1)\ \rightarrow\ (+,\ 0 ,\ 0) $   ⇒   ${\it \Sigma}_2= 3.$
  • The encoding of bits 9 to 12 (third block) results:  ${\it \Sigma}_2= 3$  to  $(0, 1, 1, 0,)\ \rightarrow\ (-,\ 0 ,\ 0) $   ⇒   ${\it \Sigma}_3= 2.$


(2)  Repeat this experiment with the other possible RDS initial values  ${\it \Sigma}_0= 1$,  ${\it \Sigma}_0= 2$  and  ${\it \Sigma}_0= 3.$  How do the coding results differ?

  • ${\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)  How many different code tables does the  $\rm MS43$ code use?

  • From the previous experiments, we can see that the MS43 code uses at least two tables, switching between them according to the current RDS value.
  • From the table given in the applet, it can be seen that three tables are actually used.  The entries for  ${\it \Sigma}_l= 1$  and  ${\it \Sigma}_l= 2$  are in fact identical.


(4)  Interpret the results of 4B3T coding for the source symbol sequence  $\rm B$   ⇒   $\langle q_\nu \rangle = \langle 1, 1, 1, 0; \ 0, 0, 1, 0; \ 1, 1, 1 \rangle $  and the MS43 code.

  • For this source symbol sequence, the RDS value is not changed.   For each starting value  $(0$,  $1$,  $2$  and  $3)$  holds  ${\it \Sigma}_0 = {\it \Sigma}_1 ={\it \Sigma}_2 ={\it \Sigma}_3 $,  for example:
  • ${\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.$
  • The reason for this is that with this source symbol sequence, each ternary–triple contains exactly one "plus" and one "minus" after encoding.


(5)  In contrast, how many different code tables does the modified MS43 code   ⇒   $\rm MMS43$ use?

  • It can be seen from the table given in the applet that in the modified MS43 code all four tables are in fact different.  
  • The entries for  ${\it \Sigma}_l= 1$  and  ${\it \Sigma}_l= 2$  are indeed largely the same.  They differ only for the binary sequences  $(0, 1, 1, 0)$  and  $(1, 0, 1, 0)$.
  • The  $\rm MMS43$ code is used with  $\rm ISDN$  ("Integrated Services Digital Network")  on the local loop  $(U_{K0}$ interface$)$. 
  • We do not know why the original MS43 code was modified during standardization.  We suspect a slightly more favorable power density spectrum.


(6)  Compare the  $\rm MS43$  and  $\rm MMS43$  results for the source symbol sequences  $\rm A$  and  $\rm B$  and any RDS initial values.  Select "Overall View".

  • For source symbol sequence  $\rm A$  there are two different  $\rm MS43$  code symbol sequences and three different   $\rm MMS43$  code symbol sequences.
  • For the source symbol sequence  $\rm B$  the  $\rm MS43$  code symbol sequences are the same for all possible RDS initial values.  For  $\rm MMS43$:  two different coding results.


(7)  Interpret the results for the sequence  $\rm C$   ⇒   $\langle q_\nu \rangle = \langle 0, 1, 1, 0; \ 0, 1, 1, 0; \ 0, 1, 1, 0 \rangle $  for both codes and all RDS initial values. Select "Overall View".

  • The four input bits of each block are  $(0,\ 1,\ 1,\ 0)$.   With  $\rm MS43$  these are replaced by  $(0,\ +,\ +)$,  if  ${\it \Sigma}_l=0$;  resp.  $(-,\ 0,\ 0)$,  if  ${\it \Sigma}_l\ne0$.
  • In the  $\rm MMS43$,  however, these are replaced by  $(-,\ +,\ +)$,  if  ${\it \Sigma}_l\le 1$;  resp.   $(-,\ -,\ +)$,  if  ${\it \Sigma}_l\ge 2$.  Only if you have enough time to spare:
  • Try to make sense of this modification from  $\rm MS43$  to  $\rm MMS43$.  Our LNTww team did not succeed.



Applet Manual


right|600px



    (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

About the Authors

This interactive calculation tool was designed and implemented at the  Institute for Communications Engineering  at the  Technical University of Munich.

  • The first version was created in 2010 by Stefan Müller  as part of his bachelor thesis with “FlashMX – Actionscript” (Supervisor: Günter Söder).
  • Last revision and English version 2020/2021 by  Carolin Mirschina  in the context of a working student activity.  Translation using DEEPL.com (free version).


The conversion of this applet to HTML 5 was financially supported by  Studienzuschüsse  ("study grants")  of the TUM Faculty EI.  We thank.

Once again:  Open Applet in new Tab

Open Applet in new Tab   Deutsche Version Öffnen

  1. Söder, G.; Tröndle, K.: Digitale Übertragungssysteme - Theorie, Optimierung & Dimensionierung der Basisbandsysteme. Berlin – Heidelberg: Springer, 1985.