Difference between revisions of "Applets:Principle of 4B3T Coding"

From LNTwww
 
(14 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
== Applet Description==
 
== Applet Description==
 
<br>
 
<br>
Das Applet verdeutlicht das Prinzip der&nbsp; $\rm 4B3T$&ndash;Codierung.&nbsp; Hierbei wird jeweils ein Block von vier  Binärsymbolen durch eine Sequenz aus drei Ternärsymbolen ersetzt.&nbsp; Daraus ergibt sich eine relative Coderedundanz von knapp&nbsp; $16\%$,&nbsp; die dazu verwendet wird, um Gleichsignalfreiheit zu erzielen.
+
The applet illustrates the principle of&nbsp; $\rm 4B3T$ coding.&nbsp; Here, in each case a block of four binary symbols is replaced by a sequence of three ternary symbols.&nbsp; This results in a relative code redundancy of just under&nbsp; $16\%$,&nbsp; which is used to achieve equal signal freedom.
  
Die Umcodierung der sechzehn möglichen Binärblöcke in die entsprechenden Ternärblöcke könnte prinzipiell nach einer festen Codetabelle erfolgenUm die spektralen Eigenschaften dieser Codes weiter zu verbessern, werden bei den 4B3T–Codes aber stets mehrere Codetabellen verwendet, die nach der "laufenden digitalen Summe"&nbsp; $($englisch:&nbsp; ''Running Digital Sum'',&nbsp; kurz&nbsp; $\rm RDS)$&nbsp; blockweise ausgewählt werden.  
+
The recoding of the sixteen possible binary blocks into the corresponding ternary blocks could in principle be done according to a fixed code tableHowever, to further improve the spectral characteristics of these codes, the 4B3T codes always use multiple code tables, which are selected block by block according to the "running digital sum"&nbsp; $(\rm RDS)$&nbsp; .  
  
Im Applet sind im unteren Bereich die entsprechenden Codetabellen angegeben, und zwar alternativ für
+
In the applet, the corresponding code tables are given in the lower area, alternatively for
* den $\rm MS43$&ndash;Code (von: &nbsp; $\rm M$onitored $\rm S$um $\rm 4$B$\rm 3$T&ndash;Code), und
+
* the $\rm MS43$ code (from: &nbsp; $\rm M$onitored $\rm S$um $\rm 4$B$\rm 3$T&ndash;code), and
* den $\rm MMS43$&ndash;Code (von: &nbsp;$\rm M$odified $\rm MS43$).
+
* the $\rm MMS43$ code (from: &nbsp;$\rm M$odified $\rm MS43$).
  
  
Eingabeparameter sind neben dem gewünschten Code (MS43 oder MMS43) der RDS&ndash;Startwert&nbsp; $\rm RDS_0$&nbsp; sowie zwölf binäre Quellensymbole&nbsp; $q_\nu \in \{0,\ 1\}$,&nbsp; entweder per Hand, per Voreinstellung&nbsp; $($Quellensymbolfolge&nbsp; $\rm A$,&nbsp; $\rm B$,&nbsp; $\rm C)$&nbsp;oder per Zufallsgenerator.&nbsp;  
+
Input parameters are, besides the desired code (MS43 or MMS43), the RDS start value&nbsp; $\rm RDS_0$&nbsp; and twelve binary source symbols&nbsp; $q_\nu \in \{0,\ 1\}$,&nbsp; either by hand, by default&nbsp; $($source symbol sequence&nbsp; $\rm A$,&nbsp; $\rm B$,&nbsp; $\rm C)$&nbsp;or by random generator. &nbsp;  
  
Vom Programm angeboten werden zwei verschiedene Modi:
+
Two different modes are offered by the program:
  
*Im Modus "Schritt" werden die drei Blöcke sukzessive abgearbeitet (jeweils Festlegung der drei Ternärsymbole, Aktualisierung des RDS&ndash;Wertes und damit Festlegung der Codetabelle für den nächsten Block.  
+
*In the "Step" mode, the three blocks are processed successively (in each case defining the three ternary symbols, updating the RDS value and thus defining the code table for the next 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&ndash;Startwerte.&nbsp; Die Grafik und der RDS&ndash;Ausgabeblock rechts beziehen sich dabei auf die getroffenen Einstellungen.       
+
*In the "Total" mode, only the coding results are displayed, but simultaneously for the two possible codes and in each case for all four possible RDS ;start values.&nbsp; The graphic and the RDS output block on the right refer to the settings made.       
  
  
Line 24: Line 24:
 
==Theoretical Background==
 
==Theoretical Background==
  
===Klassifizierung verschiedener Codierverfahren ===
+
===Classification of various coding methods ===
 
<br>
 
<br>
Wir betrachten das dargestellte digitale Übertragungsmodell.&nbsp; 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:
+
We consider the digital transmission model shown.&nbsp; As can be seen from this block diagram, depending on the target direction, a distinction is made between three different types of coding, each realized by the encoder at the transmitting end and the associated decoder at the receiving end:
  
[[File:P_ID2315__Inf_T_2_1_S1_neu.png|right|frame|Vereinfachtes Modell eines Nachrichtenübertragungssystems]]
+
[[File:EN_Inf_T_2_1_S1_v2.png|right|frame|Simplified model of a digital transmission system]]
  
*$\text{Quellencodierung:}$&nbsp; Entfernen (unnötiger) Redundanz, um Daten möglichst effizient speichern oder übertragen zu können  &nbsp; &rArr; &nbsp; Datenkomprimierung.&nbsp; Beispiel:&nbsp; Differentielle Pulscodemodulation&nbsp; $\rm (DPCM)$&nbsp; in der Bildcodierung.
+
*$\text{Source coding:}$&nbsp; Removing (unnecessary) redundancy to store or transmit data as efficiently as possible &nbsp; &rArr; &nbsp; Data compression.&nbsp; Example:&nbsp; Differential pulse code modulation&nbsp; $\rm (DPCM)$&nbsp; in image coding.
  
*$\text{Kanalcodierung:}$&nbsp; Gezieltes Hinzufügen (sinnvoller) Redundanz, die man beim Empfänger zur Fehlererkennung oder  zur Fehlererkennung  nutzen kann.&nbsp; Wichtigste Vertreter:&nbsp; Blockcodes, Faltungscodes, Turbocodes.
+
*$\text{Channel coding:}$&nbsp; Targeted addition of (meaningful) redundancy, which can be used at the receiver for error detection or error detection.&nbsp; Main representatives:&nbsp; Block codes, convolutional codes, turbo codes.
  
*$\text{Leitungscodierung:}$&nbsp; Umcodierung der Quellensymbole, um das Signal an die Spektraleigenschaften von Kanal und Empfangseinrichtungen anzupassen, etwa, um bei einem Kanal mit&nbsp; $H_{\rm K}(f = 0) = 0$&nbsp; ein gleichsignalfreies Sendesignal&nbsp; $x(t)$&nbsp; zu erreichen. &nbsp;
+
*$\text{Line coding:}$&nbsp; Recoding of source symbols to adapt the signal to the spectral characteristics of the channel and receiving equipment, for example to achieve a transmitted signal free of equal signals&nbsp; $x(t)$&nbsp; for a channel with&nbsp; $H_{\rm K}(f = 0) = 0$&nbsp;. &nbsp;
 
<br clear=all>
 
<br clear=all>
Bei den Leitungscodes unterscheidet man weiter:  
+
In the case of line codes, a further distinction is made:  
*$\text{Symbolweise Codierung:}$&nbsp; Mit jedem ankommenden Binärsymbol&nbsp; $q_ν$&nbsp; wird ein mehrstufiges (zum Beispiel: ternäres) Codesymbol&nbsp; $c_ν$&nbsp; erzeugt, das auch von den vorherigen Binärsymbolen abhängt.&nbsp; Die Symboldauern&nbsp; $T_q$&nbsp; und&nbsp; $T_c$&nbsp; sind hierbei identisch.&nbsp; Beispiel:&nbsp; Pseudoternärcodes (AMI&ndash;Code, Duobinärcode).
+
*$\text{Symbol-wise coding:}$&nbsp; With each incoming binary symbol&nbsp; $q_ν$&nbsp; a multi-level (for example: ternary) code symbol&nbsp; $c_ν$&nbsp; is generated, which also depends on the previous binary symbols. &nbsp; The symbol durations&nbsp; $T_q$&nbsp; and&nbsp; $T_c$&nbsp; are identical here.&nbsp; Example:&nbsp; Pseudo ternary codes (AMI code, duobinary code).
  
*$\text{Blockweise Codierung:}$&nbsp; Ein Block aus&nbsp; $m_q$&nbsp; Binärsymbolen&nbsp; $(M_q = 2)$&nbsp; wird durch eine Sequenz aus &nbsp;$m_c$&nbsp; höherstufigen Symbolen &nbsp;$(M_c > 2)$&nbsp; ersetzt.&nbsp; Ein Kennzeichen dieser Codeklasse ist&nbsp; $T_c> T_q$.&nbsp; Beispiele sind redundanzfreie Mehrstufencodes&nbsp; $(M_c$ ist eine Zweierpotenz$)$&nbsp; sowie die hier betrachteten $\text{4B3T-Codes}$.       
+
*$\text{Blockwise coding:}$&nbsp; A block of&nbsp; $m_q$&nbsp; binary symbols&nbsp; $(M_q = 2)$&nbsp; is replaced by a sequence of &nbsp;$m_c$&nbsp; higher-level symbols &nbsp;$(M_c > 2)$&nbsp;. &nbsp; A characteristic of this class of codes is&nbsp; $T_c> T_q$.&nbsp; Examples include redundancy-free multi-level codes&nbsp; $(M_c$ is a power of two$)$&nbsp; and the $\text{4B3T codes}$ considered here.       
  
  
=== Allgemeine Beschreibung der 4B3T&ndash;Codes ===
+
=== General description of 4B3T codes ===
  
Der bekannteste Blockcode zur Leitungscodierung ist der &nbsp;$\rm 4B3T&ndash;Code$&nbsp; mit den Codeparametern
+
The best known block code for transmission coding is the &nbsp; '''4B3T code''' &nbsp; with the code parameters
 
:$$m_q = 4,\hspace{0.2cm}M_q = 2,\hspace{0.2cm}m_c =
 
:$$m_q = 4,\hspace{0.2cm}M_q = 2,\hspace{0.2cm}m_c =
 
3,\hspace{0.2cm}M_c = 3\hspace{0.05cm},$$
 
3,\hspace{0.2cm}M_c = 3\hspace{0.05cm},$$
  
der bereits in den 1970&ndash;er Jahren entwickelt wurde und beispielsweise bei &nbsp;[[Beispiele_von_Nachrichtensystemen/Allgemeine_Beschreibung_von_ISDN| ISDN]]&nbsp; (<i>Integrated Services Digital Networks</i>&nbsp;) eingesetzt wird.  
+
which was developed in the 1970s and is used,&nbsp; for example,&nbsp; in &nbsp;[[Examples_of_Communication_Systems/Allgemeine_Beschreibung_von_ISDN|"ISDN"]]&nbsp; ("Integrated Services Digital Networks").  
  
Ein 4B3T&ndash;Code besitzt folgende Eigenschaften:
+
Such a 4B3T code has the following properties:
*Wegen &nbsp;$m_q \cdot T_q =  m_c \cdot T_c$&nbsp; ist die Symboldauer &nbsp;$T=T_c$&nbsp; des Codersignals um den Faktor &nbsp;$4/3$&nbsp; größer als die Bitdauer &nbsp;$T_{\rm B}=T_q$&nbsp; 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.
+
*Because of &nbsp;$m_q \cdot T_{\rm B} =  m_c \cdot T$,&nbsp; the symbol duration &nbsp;$T$&nbsp; of the ternary encoded  signal is larger than the bit duration &nbsp;$T_{\rm B}$&nbsp; of the binary source signal by a factor of &nbsp;$4/3$.&nbsp; This results in the favorable property that the bandwidth requirement is a quarter less than for redundancy-free binary transmission.
*Die relative Redundanz der 4B3T&ndash;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}.$$
+
*The relative redundancy can be calculated with the above equation and results in &nbsp;$r_c \approx 16\%$.&nbsp; This redundancy is used in the 4B3T code to achieve DC freedom.
*Diese Redundanz von knapp&nbsp; $16\%$&nbsp; wird dazu verwendet, um Gleichsignalfreiheit zu erzielen.&nbsp; Das 4B3T&ndash;codierte Signal kann somit ohne merkbare Beeinträchtigung auch über einen Kanal mit der Eigenschaft &nbsp;$H_{\rm K}(f= 0) = 0$&nbsp; übertragen werden.
 
  
 +
*The 4B3T encoder signal can thus also be transmitted over a channel&nbsp; (German:&nbsp; "Kanal" &nbsp; &rArr;&nbsp; subscript:&nbsp; "K")&nbsp; with the property &nbsp;$H_{\rm K}(f= 0) = 0$&nbsp; without noticeable degradation.
  
Die Umcodierung der sechzehn möglichen Binärblöcke in die entsprechenden Ternärblöcke könnte prinzipiell nach einer festen Codetabelle vorgenommen werden.&nbsp; Um die spektralen Eigenschaften dieser Codes weiter zu verbessern, werden bei den gebräuchlichen 4B3T&ndash;Codes, nämlich
 
  
*dem 4B3T&ndash;Code nach Jessop und Waters,<br>
+
The encoding of the sixteen possible binary blocks into the corresponding ternary blocks could in principle be performed according to a fixed code table. To further improve the spectral properties of these codes, the common 4B3T codes, viz.
*dem MS43&ndash;Code (von: &nbsp;$\rm M$onitored $\rm S$um $\rm 4$B$\rm 3$T&ndash;Code),<br>
 
*dem FoMoT&ndash;Code (von: &nbsp;$\rm Fo$ur $\rm Mo$de $\rm T$ernary),<br><br>
 
  
zwei oder mehrere Codetabellen verwendet, deren Auswahl von der "laufenden digitalen Summe" der Amplitudenkoeffizienten gesteuert wird.
+
#the 4B3T code according to Jessop and Waters,<br>
 +
#the MS43 code (from: &nbsp;$\rm M$onitored $\rm S$um $\rm 4$B$\rm 3$T Code),<br>
 +
#the FoMoT code (from: &nbsp;$\rm Fo$ur $\rm Mo$de $\rm T$ernary),<br><br>
  
 +
two or more code tables are used,&nbsp; the selection of which is controlled by the &nbsp;"running digital sum"&nbsp; of the amplitude coefficients.&nbsp; The principle is explained in the next section.<br>
  
=== Laufende digitale Summe ===
 
  
[[File:P_ID1334__Dig_T_2_3_S2.png|right|frame|Codetabellen für drei 4B3T-Codes|class=fit]]
+
== Running digital sum ==
 
+
<br>
Die ternären Amplitudenkoeffizienten seien&nbsp;$a_\nu \in \{ -1, \ 0, +1\}$.&nbsp;  
+
After the transmission of &nbsp;$l$&nbsp; coded blocks,&nbsp; the &nbsp;"running digital sum"&nbsp; with ternary amplitude coefficients &nbsp;$a_\nu \in \{ -1, \ 0, +1\}$:
 
+
[[File:EN_Dig_T_2_3_S2.png|right|frame|Code tables for three 4B3T codes|class=fit]]
Nach der Übertragung von &nbsp;<i>l</i>&nbsp; Blöcken gilt für die "Laufende Digitale Summe"&nbsp; $($englisch:&nbsp; ''Running Digital Sum'',&nbsp; kurz&nbsp; $\rm RDS)$:  
+
:$${\it \Sigma}_l = \sum_{\nu = 1}^{3 \hspace{0.02cm}\cdot
:$${\it \Sigma}_l = \sum_{\nu = 1}^{3 \hspace{0.05cm}\cdot
 
 
\hspace{0.05cm} l}\hspace{0.02cm} a_\nu \hspace{0.05cm}.$$
 
\hspace{0.05cm} l}\hspace{0.02cm} a_\nu \hspace{0.05cm}.$$
  
Die Auswahl der Tabelle zur Codierung des &nbsp;$(l + 1)$&ndash;ten Blocks erfolgt abhängig vom aktuellen Wert &nbsp;${\it \Sigma}_l$.
+
The selection of the table for encoding the &nbsp;$(l + 1)$&ndash;th block is done depending on the current &nbsp; ${\it \Sigma}_l$&nbsp; value.
  
In der Tabelle sind die Codierregeln für die drei oben genannten 4B3T&ndash;Codes angegeben. Zur Vereinfachung der Schreibweise steht "+" für den Amplitudenkoeffizienten "+1" und "&ndash;" für den Koeffizienten "&ndash;1".<br>
 
  
#&nbsp;Die zwei Codetabellen des Jessop&ndash;Waters&ndash;Codes sind so gewählt, dass die laufende digitale Summe &nbsp;${\it \Sigma}_l$&nbsp; stets zwischen $0$ und $5$ liegt.
+
The table shows the coding rules for the three 4B3T codes mentioned above.&nbsp; To simplify the notation,  
#&nbsp;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 &nbsp;$0 \le {\it \Sigma}_l \le 3$.
+
*&nbsp; "+" stands for the amplitude coefficient "+1" and
 +
*&nbsp; "&ndash;" for the coefficient "&ndash;1".<br>
  
  
Im Applet werden betrachtet:
+
You can see from the graph:
* der $\rm MS43$&ndash;Code (von: &nbsp; $\rm M$onitored $\rm S$um $\rm 4$B$\rm 3$T&ndash;Code),  
+
#The two code tables of the Jessop&ndash;Waters code are selected in such a way that the running digital sum &nbsp;${\it \Sigma}_l$&nbsp; always lies between&nbsp; $0$&nbsp; and&nbsp; $5$.<br><br>
* der $\rm MMS43$&ndash;Code (von: &nbsp;$\rm M$odified $\rm MS43$).
+
#For the other two codes&nbsp; (MS43,&nbsp; FoMoT),&nbsp; the restriction of the running digital sum to the range &nbsp;$0 \le {\it \Sigma}_l \le 3$&nbsp; is achieved by three resp. four alternative tables.
 +
<br Clear = all>
 +
== ACF and PSD of the 4B3T codes==
 +
<br>
 +
The procedure for calculating the auto-correlation function&nbsp; $\rm (ACF)$&nbsp; and the power-spectral density&nbsp; $\rm (PSD)$&nbsp; is only outlined here in bullet points:
 +
[[File:P_ID1335__Dig_T_2_3_S3_v1.png|right|frame|Markov diagram for the analysis of the 4B3T FoMoT code |class=fit]]
  
 
+
'''(1)''' &nbsp; The transition of the running digital sum from &nbsp;${\it \Sigma}_l$&nbsp; to &nbsp;${\it \Sigma}_{l+1}$&nbsp; is described by a homogeneous stationary first-order Markov chain with six&nbsp; $($Jessop&ndash;Waters$)$&nbsp; or four states&nbsp; $($MS43, FoMoT$)$.&nbsp; For the FoMoT code, the Markov diagram sketched on the right applies.<br>
Zur Farbgebung der nebenstehenden Grafik:
 
# Graue Hintergung:&nbsp; Der RDS&ndash;Wert bleibt gleich:&nbsp; ${\it \Sigma}_{l+1} = {\it \Sigma}_l$.
 
# Rote Hintergung:&nbsp; Der RDS&ndash;Wert wird größer:&nbsp; ${\it \Sigma}_{l+1} > {\it \Sigma}_l$.
 
# Blaue Hintergung:&nbsp; Der RDS&ndash;Wert wird kleiner:&nbsp; ${\it \Sigma}_{l+1} < {\it \Sigma}_l$.
 
# Zu&ndash; bzw. Abnahme ist umso größer, je intensiver die Farben sind.  
 
  
 +
'''(2)''' &nbsp; The values at the arrows denote the transition probabilities &nbsp;${\rm Pr}({\it \Sigma}_{l+1}|{\it \Sigma}_{l})$,&nbsp; resulting from the respective code tables.&nbsp; The colors correspond to the backgrounds of the table on the last section.&nbsp; Due to the symmetry of the FoMoT Markov diagram,&nbsp; the four probabilities are all the same:
 +
:$${\rm Pr}({\it \Sigma}_{l} = 0) = \text{...} = {\rm Pr}({\it \Sigma}_{l} = 3) = 1/4.$$
  
=== AKF und LDS der 4B3T–Codes===
+
'''(3)''' &nbsp; The auto-correlation function&nbsp; $\varphi_a(\lambda) = {\rm E}\big [a_\nu \cdot a_{\nu+\lambda}\big ]$&nbsp; of the amplitude coefficients can be determined from this diagram.&nbsp; Simpler than the analytical calculation,&nbsp; which requires a very large computational effort,&nbsp; is the simulative determination of the ACF values by computer.<br>
  
[[File:P_ID1335__Dig_T_2_3_S3_v1.png|right|frame|Markovdiagramm zur Analyse des 4B3T-Codes (FoMoT)|class=fit]]
 
Die Vorgehensweise zur Berechnung von AKF und LDS wird hier nur stichpunktartig skizziert <br>(im Applet wird hierauf nicht eingegangen):
 
  
'''(1)''' &nbsp; Der Übergang der laufenden digitalen Summe von &nbsp;${\it \Sigma}_l$&nbsp; nach &nbsp;${\it \Sigma}_{l+1}$&nbsp; wird durch eine homogene stationäre Markovkette erster Ordnung mit sechs (Jessop&ndash;Waters) bzw. vier Zuständen (MS43, FoMoT) beschrieben.  Für den FoMoT&ndash;Code gilt das rechts skizzierte Markovdiagramm.<br>
+
Fourier transforming the ACF yields the power-spectral density &nbsp;${\it \Phi}_a(f)$&nbsp; of the amplitude coefficients corresponding to the following graph from&nbsp; [TS87]<ref>Tröndle, K.; Söder, G.:&nbsp; Optimization of Digital Transmission Systems.&nbsp; Boston – London: Artech House, 1987,&nbsp; ISBN:&nbsp; 0-89006-225-0.</ref>.&nbsp; The outlined PSD was determined for the FoMoT code,&nbsp; whose Markov diagram is shown above.&nbsp; The differences between the individual 4B3T codes are not particularly pronounced.&nbsp; Thus,&nbsp; for the MS43 code &nbsp;${\rm E}\big [a_\nu^2 \big ] \approx 0.65$&nbsp; and for the other two 4B3T codes&nbsp; (Jessop/Waters, MS43) &nbsp; ${\rm E}\big [a_\nu^2 \big ] \approx 0.69$. <br>
 +
The statements of this graph can be summarized as follows:
  
 +
[[File:EN_Dig_T_2_4_S3b_v23.png|right|frame|Power-spectral density (of amplitude coefficients) of 4B3T compared to redundancy-free and AMI coding|class=fit]]
  
'''(2)''' &nbsp; Die Werte an den Pfeilen kennzeichnen die Übergangswahrscheinlichkeiten &nbsp;${\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&ndash;Markovdiagramms sind die vier Wahrscheinlichkeiten alle gleich:
+
*The graph shows the power-spectral density &nbsp;${\it \Phi}_a(f)$&nbsp; of the amplitude coefficients &nbsp;$a_\nu$&nbsp; of the 4B3T code &nbsp; &rArr; &nbsp; red curve.
:$${\rm Pr}({\it \Sigma}_{l} = 0) = \text{...} = {\rm Pr}({\it \Sigma}_{l} = 3) = 1/4.$$
+
 +
*The PSD &nbsp;${\it \Phi}_s(f)$&nbsp; including the transmission pulse is obtained by multiplying by &nbsp;$1/T \cdot |G_s(f)|^2$ &nbsp; &rArr&nbsp; ${\it \Phi}_a(f)$&nbsp; must be multiplied by a &nbsp;$\rm sinc^2$ function, if &nbsp;$g_s(t)$&nbsp; describes a rectangular pulse.<br>
  
 +
*Redundancy-free binary or ternary coding results in a constant &nbsp;${\it \Phi}_a(f)$&nbsp; in each case,&nbsp; the magnitude of which depends on the number &nbsp;$M$&nbsp; of levels&nbsp;  (different signal power).
  
'''(3)''' &nbsp; Die Autokorrelationsfunktion (AKF)&nbsp; $\varphi_a(\lambda) = {\rm E}\big [a_\nu \cdot a_{\nu+\lambda}\big ]$&nbsp; 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&ndash;Werte mittels Computer.<br>
+
*In contrast,&nbsp; the 4B3T power-spectral density has zeros at &nbsp;$f = 0$&nbsp; and multiples of &nbsp;$f = 1/T$.&nbsp; <br>
  
 +
*The zero point at &nbsp;$f = 0$&nbsp; has the advantage that the 4B3T signal can also be transmitted without major losses via a so-called&nbsp; "telephone channel",&nbsp; which is not suitable for a DC signal due to transformers.<br>
  
Durch Fouriertransformation der AKF kommt man zum Leistungsdichtespektrum (LDS) &nbsp;${\it \Phi}_a(f)$&nbsp; der Amplitudenkoeffizienten entsprechend der folgenden Grafik aus [ST85]<ref name ='ST85'>Söder, G.; Tröndle, K.: <i>Digitale Übertragungssysteme - Theorie, Optimierung & Dimensionierung der Basisbandsysteme</i>. Berlin – Heidelberg: Springer, 1985.</ref>. Das skizzierte LDS wurde für den FoMoT&ndash;Code ermittelt, dessen Markovdiagramm oben dargestellt ist. Die Unterschiede der einzelnen 4B3T&ndash;Codes sind nicht sonderlich ausgeprägt. So gilt für den MS43&ndash;Code &nbsp;${\rm E}\big [a_\nu^2 \big ] \approx 0.65$&nbsp; und für die beiden anderen 4B3T-Codes (Jessop/Waters, MS43) &nbsp;${\rm E}\big [a_\nu^2 \big ] \approx  0.69$. <br>
+
*The zero point at &nbsp;$f = 1/T$&nbsp; has the disadvantage that this makes clock recovery at the receiver more difficult.&nbsp; Outside of these zeros,&nbsp; the 4B3T codes have a flatter &nbsp;${\it \Phi}_a(f)$&nbsp; than the  &nbsp;[[Digital_Signal_Transmission/Symbolwise_Coding_with_Pseudo-Ternary_Codes#Properties_of_the_AMI_code|"AMI code"]]&nbsp; discussed in the next chapter&nbsp; (blue curve), which is advantageous.<br>
[[File:P_ID1336__Dig_T_2_3_S3b_v1.png|right|frame|Leistungsdichtespektrum (der Ampltudenkoeffizienten) von 4B3T im Vergleich zu redundanzfreier und AMI-Codierung|class=fit]]
 
Die Aussagen dieser Grafik kann man  wie folgt zusammenfassen:
 
  
*Die Grafik zeigt das LDS &nbsp;${\it \Phi}_a(f)$&nbsp; der Amplitudenkoeffizienten &nbsp;$a_\nu$&nbsp; des 4B3T-Codes &nbsp; &rArr; &nbsp; rote Kurve.
+
*The reason for the flatter PSD curve at medium frequencies as well as the steeper drop towards the zeros is that for the 4B3T codes up to five &nbsp;$+1$&nbsp; coefficients&nbsp; (resp. &nbsp;$-1$ coefficients)&nbsp; can follow each other.&nbsp; With the AMI code,&nbsp; these symbols occur only in isolation.<br>
*Das LDS &nbsp;${\it \Phi}_s(f)$&nbsp; unter Einbeziehung des Sendegrundimpulses erhält man durch Multiplikation mit &nbsp;$1/T \cdot |G(f)|^2$. Beispielsweise muss man &nbsp;${\it \Phi}_a(f)$&nbsp; mit einer &nbsp;$\rm si^2$&ndash;Funktion multiplizieren, wenn &nbsp;$g(t)$&nbsp;  einen Rechteckimpuls beschreibt.<br>
 
*Bei redundanzfreier Binär&ndash; oder Ternärcodierung ergibt sich jeweils ein konstantes &nbsp;${\it \Phi}_a(f)$, dessen Höhe von der Stufenzahl &nbsp;$M$&nbsp; abhängt (unterschiedliche Signalleistung).
 
*Dagegen weist das 4B3T&ndash;Leistungsdichtespektrum Nullstellen bei &nbsp;$f = 0$&nbsp; und Vielfachen von &nbsp;$f = 1/T$&nbsp; auf.<br>
 
*Die Nullstelle bei &nbsp;$f = 0$&nbsp; hat den Vorteil, dass das 4B3T&ndash;Signal ohne große Einbußen auch über einen so genannten ''Telefonkanal''&nbsp; übertragen werden kann, der aufgrund von Übertragern für ein Gleichsignal nicht geeignet ist.<br>
 
*Die Nullstelle bei &nbsp;$f = 1/T$&nbsp; hat den Nachteil, dass dadurch die Taktrückgewinnung am Empfänger erschwert wird. Außerhalb dieser Nullstellen weisen die 4B3T&ndash;Codes ein flacheres &nbsp;${\it \Phi}_a(f)$&nbsp; auf  als beispielsweise der  &nbsp;[[Digitalsignalübertragung/Symbolweise_Codierung_mit_Pseudoternärcodes#Eigenschaften_des_AMI-Codes|AMI&ndash;Code]]&nbsp; (blaue Kurve), was von Vorteil ist.<br>
 
*Der Grund für den flacheren LDS&ndash;Verlauf bei mittleren Frequenzen sowie den steileren Abfall zu den Nullstellen hin ist, dass bei den 4B3T&ndash;Codes bis zu fünf &nbsp;$+1$&ndash;&nbsp; bzw. &nbsp;$-1$&ndash;Koeffizienten aufeinanderfolgen können.&nbsp; Beim AMI&ndash;Code treten diese Symbole nur isoliert auf.<br>
 
  
  
Line 133: Line 127:
  
  
{{BlueBox|TEXT=
+
{{BlaueBox|TEXT=
 
'''(1)'''&nbsp; Illustrate the 4B3T coding of the source symbol sequence&nbsp; $\rm A$ &nbsp; &rArr; &nbsp; $\langle q_\nu \rangle = \langle 0, 1, 0, 1; \ 1, 0, 1, 1; \ 0, 1, 1, 0 \rangle $&nbsp; according to the&nbsp; $\rm MS43$&nbsp; code ("Block&ndash;by&ndash;Block"). <br> &nbsp; &nbsp; &nbsp; &nbsp; Let the RDS initial value be&nbsp; ${\it \Sigma}_0= 0$. &nbsp; ''Note'':&nbsp; The source symbol sequence is already divided by semicolons into subsequences of four bits each.  }}
 
'''(1)'''&nbsp; Illustrate the 4B3T coding of the source symbol sequence&nbsp; $\rm A$ &nbsp; &rArr; &nbsp; $\langle q_\nu \rangle = \langle 0, 1, 0, 1; \ 1, 0, 1, 1; \ 0, 1, 1, 0 \rangle $&nbsp; according to the&nbsp; $\rm MS43$&nbsp; code ("Block&ndash;by&ndash;Block"). <br> &nbsp; &nbsp; &nbsp; &nbsp; Let the RDS initial value be&nbsp; ${\it \Sigma}_0= 0$. &nbsp; ''Note'':&nbsp; The source symbol sequence is already divided by semicolons into subsequences of four bits each.  }}
 
* Starting from the RDS initial value&nbsp; ${\it \Sigma}_0= 0$&nbsp; you  recognize the following coding of the first four bits (first block):&nbsp; $(0, 1, 0, 1)\ \rightarrow\ (+,\ 0 ,\ +) $ &nbsp; &rArr; &nbsp; ${\it \Sigma}_1= 2.$
 
* Starting from the RDS initial value&nbsp; ${\it \Sigma}_0= 0$&nbsp; you  recognize the following coding of the first four bits (first block):&nbsp; $(0, 1, 0, 1)\ \rightarrow\ (+,\ 0 ,\ +) $ &nbsp; &rArr; &nbsp; ${\it \Sigma}_1= 2.$
Line 140: Line 134:
  
  
{{BlueBox|TEXT=
+
{{BlaueBox|TEXT=
 
'''(2)'''&nbsp; Repeat this experiment with the other possible RDS initial values&nbsp; ${\it \Sigma}_0= 1$,&nbsp; ${\it \Sigma}_0= 2$&nbsp; and&nbsp; ${\it \Sigma}_0= 3.$&nbsp; How do the coding results differ?  }}
 
'''(2)'''&nbsp; Repeat this experiment with the other possible RDS initial values&nbsp; ${\it \Sigma}_0= 1$,&nbsp; ${\it \Sigma}_0= 2$&nbsp; and&nbsp; ${\it \Sigma}_0= 3.$&nbsp; How do the coding results differ?  }}
  
Line 148: Line 142:
  
  
{{BlueBox|TEXT=
+
{{BlaueBox|TEXT=
 
'''(3)'''&nbsp; How many different code tables does the&nbsp; $\rm MS43$ code use? }}
 
'''(3)'''&nbsp; How many different code tables does the&nbsp; $\rm MS43$ code use? }}
  
Line 155: Line 149:
  
  
{{BlueBox|TEXT=
+
{{BlaueBox|TEXT=
 
'''(4)'''&nbsp; Interpret the results of 4B3T coding for the source symbol sequence&nbsp; $\rm B$ &nbsp; &rArr; &nbsp; $\langle q_\nu \rangle = \langle 1, 1, 1, 0; \ 0, 0, 1, 0; \ 1, 1, 1 \rangle $&nbsp; and the MS43 code.}}
 
'''(4)'''&nbsp; Interpret the results of 4B3T coding for the source symbol sequence&nbsp; $\rm B$ &nbsp; &rArr; &nbsp; $\langle q_\nu \rangle = \langle 1, 1, 1, 0; \ 0, 0, 1, 0; \ 1, 1, 1 \rangle $&nbsp; and the MS43 code.}}
  
Line 163: Line 157:
  
  
{{BlueBox|TEXT=
+
{{BlaueBox|TEXT=
 
'''(5)'''&nbsp; In contrast, how many different code tables does the modified MS43 code &nbsp; &rArr; &nbsp; $\rm MMS43$ use? }}
 
'''(5)'''&nbsp; In contrast, how many different code tables does the modified MS43 code &nbsp; &rArr; &nbsp; $\rm MMS43$ use? }}
 
   
 
   
Line 172: Line 166:
 
   
 
   
  
{{BlueBox|TEXT=
+
{{BlaueBox|TEXT=
 
'''(6)'''&nbsp; Compare the&nbsp; $\rm MS43$&nbsp; and&nbsp; $\rm MMS43$&nbsp; results for the source symbol sequences&nbsp; $\rm A$&nbsp; and&nbsp; $\rm B$&nbsp; and any RDS initial values.&nbsp; Select "Overall View".}}
 
'''(6)'''&nbsp; Compare the&nbsp; $\rm MS43$&nbsp; and&nbsp; $\rm MMS43$&nbsp; results for the source symbol sequences&nbsp; $\rm A$&nbsp; and&nbsp; $\rm B$&nbsp; and any RDS initial values.&nbsp; Select "Overall View".}}
 
*For source symbol sequence&nbsp; $\rm A$&nbsp; there are two different&nbsp; $\rm MS43$&nbsp; code symbol sequences and three different &nbsp; $\rm MMS43$&nbsp; code symbol sequences.
 
*For source symbol sequence&nbsp; $\rm A$&nbsp; there are two different&nbsp; $\rm MS43$&nbsp; code symbol sequences and three different &nbsp; $\rm MMS43$&nbsp; code symbol sequences.
Line 178: Line 172:
  
  
{{BlueBox|TEXT=
+
{{BlaueBox|TEXT=
 
'''(7)'''&nbsp; Interpret the results for the sequence&nbsp; $\rm C$ &nbsp; &rArr; &nbsp; $\langle q_\nu \rangle = \langle 0, 1, 1, 0; \ 0, 1, 1, 0; \ 0, 1, 1, 0 \rangle $&nbsp; for both codes and all RDS initial values.&nbsp;Select "Overall View".}}
 
'''(7)'''&nbsp; Interpret the results for the sequence&nbsp; $\rm C$ &nbsp; &rArr; &nbsp; $\langle q_\nu \rangle = \langle 0, 1, 1, 0; \ 0, 1, 1, 0; \ 0, 1, 1, 0 \rangle $&nbsp; for both codes and all RDS initial values.&nbsp;Select "Overall View".}}
 
*The four input bits of each block are&nbsp; $(0,\ 1,\ 1,\ 0)$. &nbsp; With&nbsp; $\rm MS43$&nbsp; these are replaced by&nbsp; $(0,\ +,\ +)$,&nbsp; if&nbsp; ${\it \Sigma}_l=0$;&nbsp; resp.&nbsp; $(-,\ 0,\ 0)$,&nbsp; if&nbsp; ${\it \Sigma}_l\ne0$.
 
*The four input bits of each block are&nbsp; $(0,\ 1,\ 1,\ 0)$. &nbsp; With&nbsp; $\rm MS43$&nbsp; these are replaced by&nbsp; $(0,\ +,\ +)$,&nbsp; if&nbsp; ${\it \Sigma}_l=0$;&nbsp; resp.&nbsp; $(-,\ 0,\ 0)$,&nbsp; if&nbsp; ${\it \Sigma}_l\ne0$.
Line 188: Line 182:
  
 
==Applet Manual==
 
==Applet Manual==
<br>
 
[[Datei:Anleitung_4B3T.png|right|600px]]
 
<br><br><br><br>
 
&nbsp; &nbsp; '''(A)''' &nbsp; &nbsp; Auswahl eines von vier Quellensignalen 
 
  
&nbsp; &nbsp; '''(B)''' &nbsp; &nbsp; Parameterwahl für Quellensignal&nbsp; $1$&nbsp; (Amplitude, Frequenz, Phase)  
+
[[File:Exercise_4B3T.png|right|600px|frame|Screenshot]]
 +
<br><br>
 +
&nbsp; &nbsp; '''(A)''' &nbsp; &nbsp; Selection of source symbol sequence:&nbsp; $\rm A$,&nbsp; $\rm B$&nbsp; or&nbsp; $\rm C$.   
 +
 
 +
&nbsp; &nbsp; '''(B)''' &nbsp; &nbsp; Program Options <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $($random sequence,&nbsp; blockwise RDS calculation,&nbsp; total view,&nbsp; Reset$)$
  
&nbsp; &nbsp; '''(C)''' &nbsp; &nbsp; Ausgabe der verwendeten Programmparameter 
+
&nbsp; &nbsp; '''(C)''' &nbsp; &nbsp; "MS43"&nbsp; or&nbsp; "MMS43"
  
&nbsp; &nbsp; '''(D)''' &nbsp; &nbsp; Parameterwahl für Abtastung&nbsp; $(f_{\rm G})$&nbsp; und <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Signalrekonstruktion&nbsp; $(f_{\rm A},\ r)$
+
&nbsp; &nbsp; '''(D)''' &nbsp; &nbsp; Calculation of&nbsp; "Running Digital Sum"
  
&nbsp; &nbsp; '''(E)''' &nbsp; &nbsp; Skizze des Empfänger&ndash;Frequenzgangs&nbsp; $H_{\rm E}(f)$
+
&nbsp; &nbsp; '''(E)''' &nbsp; &nbsp; Blockwise bit change
  
&nbsp; &nbsp; '''(F)''' &nbsp; &nbsp; Numerische Ausgabe&nbsp; $(P_x, \ P_{\rm \varepsilon}, \ 10 \cdot \lg(P_x/ P_{\rm \varepsilon})$
+
&nbsp; &nbsp; '''(F)''' &nbsp; &nbsp; Graphic area for the source signal&nbsp; $q(t)$  
  
&nbsp; &nbsp; '''(G)''' &nbsp; &nbsp; Darstellungsauswahl für Zeitbereich
+
&nbsp; &nbsp; '''(G)''' &nbsp; &nbsp; Graphic area for the encoder signal&nbsp; $c(t)$ 
  
&nbsp; &nbsp; '''(H)''' &nbsp; &nbsp; Grafikbereich für Zeitbereich
+
&nbsp; &nbsp; '''(H)''' &nbsp; &nbsp; Total plot of values&nbsp; ${\it \Sigma}_0,\ {\it \Sigma}_1, \ {\it \Sigma}_2, \ {\it \Sigma}_4$&nbsp; for&nbsp; "MS43"&nbsp; and&nbsp; "MMS43"
  
&nbsp; &nbsp; '''( I )''' &nbsp; &nbsp; Darstellungsauswahl für Frequenzbereich 
+
&nbsp; &nbsp; '''(I)''' &nbsp; &nbsp; Exercise selection.
  
&nbsp; &nbsp; '''(J)''' &nbsp; &nbsp; Grafikbereich für Frequenzbereich
+
&nbsp; &nbsp; '''(I)''' &nbsp; &nbsp; Questions and solutions
  
&nbsp; &nbsp; '''(K)''' &nbsp; &nbsp; Bereich für Übungen:&nbsp; Aufgabenauswahl, Fragen, Musterlösung
 
 
<br clear=all>
 
<br clear=all>
 
==About the Authors==
 
==About the Authors==

Latest revision as of 17:14, 26 April 2023

Open Applet in new Tab   Deutsche Version Öffnen

Applet Description


The applet illustrates the principle of  $\rm 4B3T$ coding.  Here, in each case a block of four binary symbols is replaced by a sequence of three ternary symbols.  This results in a relative code redundancy of just under  $16\%$,  which is used to achieve equal signal freedom.

The recoding of the sixteen possible binary blocks into the corresponding ternary blocks could in principle be done according to a fixed code table. However, to further improve the spectral characteristics of these codes, the 4B3T codes always use multiple code tables, which are selected block by block according to the "running digital sum"  $(\rm RDS)$  .

In the applet, the corresponding code tables are given in the lower area, alternatively for

  • the $\rm MS43$ code (from:   $\rm M$onitored $\rm S$um $\rm 4$B$\rm 3$T–code), and
  • the $\rm MMS43$ code (from:  $\rm M$odified $\rm MS43$).


Input parameters are, besides the desired code (MS43 or MMS43), the RDS start value  $\rm RDS_0$  and twelve binary source symbols  $q_\nu \in \{0,\ 1\}$,  either by hand, by default  $($source symbol sequence  $\rm A$,  $\rm B$,  $\rm C)$ or by random generator.  

Two different modes are offered by the program:

  • In the "Step" mode, the three blocks are processed successively (in each case defining the three ternary symbols, updating the RDS value and thus defining the code table for the next block.
  • In the "Total" mode, only the coding results are displayed, but simultaneously for the two possible codes and in each case for all four possible RDS ;start values.  The graphic and the RDS output block on the right refer to the settings made.


Theoretical Background

Classification of various coding methods


We consider the digital transmission model shown.  As can be seen from this block diagram, depending on the target direction, a distinction is made between three different types of coding, each realized by the encoder at the transmitting end and the associated decoder at the receiving end:

Simplified model of a digital transmission system
  • $\text{Source coding:}$  Removing (unnecessary) redundancy to store or transmit data as efficiently as possible   ⇒   Data compression.  Example:  Differential pulse code modulation  $\rm (DPCM)$  in image coding.
  • $\text{Channel coding:}$  Targeted addition of (meaningful) redundancy, which can be used at the receiver for error detection or error detection.  Main representatives:  Block codes, convolutional codes, turbo codes.
  • $\text{Line coding:}$  Recoding of source symbols to adapt the signal to the spectral characteristics of the channel and receiving equipment, for example to achieve a transmitted signal free of equal signals  $x(t)$  for a channel with  $H_{\rm K}(f = 0) = 0$ .  


In the case of line codes, a further distinction is made:

  • $\text{Symbol-wise coding:}$  With each incoming binary symbol  $q_ν$  a multi-level (for example: ternary) code symbol  $c_ν$  is generated, which also depends on the previous binary symbols.   The symbol durations  $T_q$  and  $T_c$  are identical here.  Example:  Pseudo ternary codes (AMI code, duobinary code).
  • $\text{Blockwise coding:}$  A block of  $m_q$  binary symbols  $(M_q = 2)$  is replaced by a sequence of  $m_c$  higher-level symbols  $(M_c > 2)$ .   A characteristic of this class of codes is  $T_c> T_q$.  Examples include redundancy-free multi-level codes  $(M_c$ is a power of two$)$  and the $\text{4B3T codes}$ considered here.


General description of 4B3T codes

The best known block code for transmission coding is the   4B3T code   with the code parameters

$$m_q = 4,\hspace{0.2cm}M_q = 2,\hspace{0.2cm}m_c = 3,\hspace{0.2cm}M_c = 3\hspace{0.05cm},$$

which was developed in the 1970s and is used,  for example,  in  "ISDN"  ("Integrated Services Digital Networks").

Such a 4B3T code has the following properties:

  • Because of  $m_q \cdot T_{\rm B} = m_c \cdot T$,  the symbol duration  $T$  of the ternary encoded signal is larger than the bit duration  $T_{\rm B}$  of the binary source signal by a factor of  $4/3$.  This results in the favorable property that the bandwidth requirement is a quarter less than for redundancy-free binary transmission.
  • The relative redundancy can be calculated with the above equation and results in  $r_c \approx 16\%$.  This redundancy is used in the 4B3T code to achieve DC freedom.
  • The 4B3T encoder signal can thus also be transmitted over a channel  (German:  "Kanal"   ⇒  subscript:  "K")  with the property  $H_{\rm K}(f= 0) = 0$  without noticeable degradation.


The encoding of the sixteen possible binary blocks into the corresponding ternary blocks could in principle be performed according to a fixed code table. To further improve the spectral properties of these codes, the common 4B3T codes, viz.

  1. the 4B3T code according to Jessop and Waters,
  2. the MS43 code (from:  $\rm M$onitored $\rm S$um $\rm 4$B$\rm 3$T Code),
  3. the FoMoT code (from:  $\rm Fo$ur $\rm Mo$de $\rm T$ernary),

two or more code tables are used,  the selection of which is controlled by the  "running digital sum"  of the amplitude coefficients.  The principle is explained in the next section.


Running digital sum


After the transmission of  $l$  coded blocks,  the  "running digital sum"  with ternary amplitude coefficients  $a_\nu \in \{ -1, \ 0, +1\}$:

Code tables for three 4B3T codes
$${\it \Sigma}_l = \sum_{\nu = 1}^{3 \hspace{0.02cm}\cdot \hspace{0.05cm} l}\hspace{0.02cm} a_\nu \hspace{0.05cm}.$$

The selection of the table for encoding the  $(l + 1)$–th block is done depending on the current   ${\it \Sigma}_l$  value.


The table shows the coding rules for the three 4B3T codes mentioned above.  To simplify the notation,

  •   "+" stands for the amplitude coefficient "+1" and
  •   "–" for the coefficient "–1".


You can see from the graph:

  1. The two code tables of the Jessop–Waters code are selected in such a way that the running digital sum  ${\it \Sigma}_l$  always lies between  $0$  and  $5$.

  2. For the other two codes  (MS43,  FoMoT),  the restriction of the running digital sum to the range  $0 \le {\it \Sigma}_l \le 3$  is achieved by three resp. four alternative tables.


ACF and PSD of the 4B3T codes


The procedure for calculating the auto-correlation function  $\rm (ACF)$  and the power-spectral density  $\rm (PSD)$  is only outlined here in bullet points:

Markov diagram for the analysis of the 4B3T FoMoT code

(1)   The transition of the running digital sum from  ${\it \Sigma}_l$  to  ${\it \Sigma}_{l+1}$  is described by a homogeneous stationary first-order Markov chain with six  $($Jessop–Waters$)$  or four states  $($MS43, FoMoT$)$.  For the FoMoT code, the Markov diagram sketched on the right applies.

(2)   The values at the arrows denote the transition probabilities  ${\rm Pr}({\it \Sigma}_{l+1}|{\it \Sigma}_{l})$,  resulting from the respective code tables.  The colors correspond to the backgrounds of the table on the last section.  Due to the symmetry of the FoMoT Markov diagram,  the four probabilities are all the same:

$${\rm Pr}({\it \Sigma}_{l} = 0) = \text{...} = {\rm Pr}({\it \Sigma}_{l} = 3) = 1/4.$$

(3)   The auto-correlation function  $\varphi_a(\lambda) = {\rm E}\big [a_\nu \cdot a_{\nu+\lambda}\big ]$  of the amplitude coefficients can be determined from this diagram.  Simpler than the analytical calculation,  which requires a very large computational effort,  is the simulative determination of the ACF values by computer.


Fourier transforming the ACF yields the power-spectral density  ${\it \Phi}_a(f)$  of the amplitude coefficients corresponding to the following graph from  [TS87][1].  The outlined PSD was determined for the FoMoT code,  whose Markov diagram is shown above.  The differences between the individual 4B3T codes are not particularly pronounced.  Thus,  for the MS43 code  ${\rm E}\big [a_\nu^2 \big ] \approx 0.65$  and for the other two 4B3T codes  (Jessop/Waters, MS43)   ${\rm E}\big [a_\nu^2 \big ] \approx 0.69$.
The statements of this graph can be summarized as follows:

Power-spectral density (of amplitude coefficients) of 4B3T compared to redundancy-free and AMI coding
  • The graph shows the power-spectral density  ${\it \Phi}_a(f)$  of the amplitude coefficients  $a_\nu$  of the 4B3T code   ⇒   red curve.
  • The PSD  ${\it \Phi}_s(f)$  including the transmission pulse is obtained by multiplying by  $1/T \cdot |G_s(f)|^2$   ⇒   ${\it \Phi}_a(f)$  must be multiplied by a  $\rm sinc^2$ function, if  $g_s(t)$  describes a rectangular pulse.
  • Redundancy-free binary or ternary coding results in a constant  ${\it \Phi}_a(f)$  in each case,  the magnitude of which depends on the number  $M$  of levels  (different signal power).
  • In contrast,  the 4B3T power-spectral density has zeros at  $f = 0$  and multiples of  $f = 1/T$. 
  • The zero point at  $f = 0$  has the advantage that the 4B3T signal can also be transmitted without major losses via a so-called  "telephone channel",  which is not suitable for a DC signal due to transformers.
  • The zero point at  $f = 1/T$  has the disadvantage that this makes clock recovery at the receiver more difficult.  Outside of these zeros,  the 4B3T codes have a flatter  ${\it \Phi}_a(f)$  than the  "AMI code"  discussed in the next chapter  (blue curve), which is advantageous.
  • The reason for the flatter PSD curve at medium frequencies as well as the steeper drop towards the zeros is that for the 4B3T codes up to five  $+1$  coefficients  (resp.  $-1$ coefficients)  can follow each other.  With the AMI code,  these symbols occur only in isolation.


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

Screenshot



    (A)     Selection of source symbol sequence:  $\rm A$,  $\rm B$  or  $\rm C$.

    (B)     Program Options
            $($random sequence,  blockwise RDS calculation,  total view,  Reset$)$

    (C)     "MS43"  or  "MMS43"

    (D)     Calculation of  "Running Digital Sum"

    (E)     Blockwise bit change

    (F)     Graphic area for the source signal  $q(t)$

    (G)     Graphic area for the encoder signal  $c(t)$

    (H)     Total plot of values  ${\it \Sigma}_0,\ {\it \Sigma}_1, \ {\it \Sigma}_2, \ {\it \Sigma}_4$  for  "MS43"  and  "MMS43"

    (I)     Exercise selection.

    (I)     Questions and solutions


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. 


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. Tröndle, K.; Söder, G.:  Optimization of Digital Transmission Systems.  Boston – London: Artech House, 1987,  ISBN:  0-89006-225-0.