Difference between revisions of "Digital Signal Transmission/Symbolwise Coding with Pseudo-Ternary Codes"

From LNTwww
 
(52 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
   
 
   
 
{{Header
 
{{Header
|Untermenü=Codierte und mehrstufige Übertragung
+
|Untermenü=Coded and Multilevel Transmission
 
|Vorherige Seite=Blockweise Codierung mit 4B3T-Codes
 
|Vorherige Seite=Blockweise Codierung mit 4B3T-Codes
 
|Nächste Seite=Ursachen und Auswirkungen von Impulsinterferenzen
 
|Nächste Seite=Ursachen und Auswirkungen von Impulsinterferenzen
Line 7: Line 7:
  
  
== Allgemeine Beschreibung von Partial Response Codes (1) ==
+
== General description of the pseudo-multilevel codes ==
 
<br>
 
<br>
Bei der symbolweisen Codierung wird mit jedem ankommenden Quellensymbol <i>q<sub>&nu;</sub></i> ein Codesymbol <i>c<sub>&nu;</sub></i> erzeugt, das außer vom aktuellen Eingangssymbol <i>q<sub>&nu;</sub></i> auch von den <i>N</i><sub>C</sub> vorangegangenen Symbolen abhängt. <i>N</i><sub>C</sub> bezeichnet man als die
+
In symbolwise coding,&nbsp; each incoming source symbol &nbsp;$q_\nu$&nbsp; generates an encoder symbol &nbsp;$c_\nu$,&nbsp; which depends not only on the current input symbol &nbsp;$q_\nu$&nbsp; but also on the &nbsp;$N_{\rm C}$&nbsp; preceding symbols &nbsp;$q_{\nu-1}$, ... , $q_{\nu-N_{\rm C}} $.&nbsp; &nbsp;$N_{\rm C}$&nbsp; is referred to as the&nbsp; "order"&nbsp; of the code.<br>
Ordnung des Codes.<br><br>
 
  
Typisch für eine symbolweise Codierung ist, dass
+
Typical for symbolwise coding is that
*die Symboldauer <i>T</i> des Codersignals (und des Sendesignals) mit der Bitdauer <i>T</i><sub>B</sub> des binären Quellensignals übereinstimmt,<br>
+
*the symbol duration &nbsp;$T$&nbsp; of the encoded signal&nbsp; (and of the transmitted signal)&nbsp; matches the bit duration &nbsp;$T_{\rm B}$&nbsp; of the binary source signal,&nbsp; and
  
*Codierung und Decodierung nicht zu größeren Zeitverzögerungen führen, die bei Verwendung von Blockcodes unvermeidbar sind.<br><br>
+
*encoding and decoding do not lead to major time delays,&nbsp; which are unavoidable when block codes are used.<br><br>
  
Besondere Bedeutung besitzen die Pseudomehrstufencodes &ndash; besser bekannt unter der englischen Bezeichnung Partial Response Codes.<br>
+
The&nbsp; "pseudo-multilevel codes"&nbsp; &ndash; better known as&nbsp; "partial response codes"&nbsp; &ndash;&nbsp; are of special importance.&nbsp; In the following,&nbsp; only&nbsp; "pseudo-ternary codes" &nbsp; &rArr; &nbsp;  level number &nbsp;$M = 3$&nbsp; are considered.&nbsp;
 +
*These can be described by the block diagram corresponding to the left graph.&nbsp;
 +
*In the right graph an equivalent circuit is given,&nbsp; which is very suitable for an analysis of these codes.
  
Im Folgenden werden ausschließlich die Pseudoternärcodes mit der Stufenzahl <i>M</i> = 3 betrachtet, die durch das Blockschaltbild entsprechend der linken Grafik beschreibbar sind. In der rechten Grafik ist ein Ersatzschaltbild angegeben, das für eine Analyse dieser Codes sehr gut geeignet ist.
+
[[File:EN_Dig_T_2_4_S1_v23.png|right|frame|Block diagram&nbsp; (above)&nbsp; and equivalent circuit&nbsp; (below)&nbsp; of a pseudo-ternary encoder|class=fit]]
  
<br>[[File:P_ID1343__Dig_T_2_4_S1_v1.png|Block- und Ersatzschaltbild eines Pseudoternärcodes|class=fit]]<br><br>
 
  
Die Bildbeschreibung folgt auf der nächsten Seite.<br>
+
One can see from the two representations:
 +
*The pseudo-ternary encoder can be split into the&nbsp; "non-linear pre-encoder"&nbsp; and the&nbsp; "linear coding network",&nbsp; if  the delay by &nbsp;$N_{\rm C} \cdot T$&nbsp; and the weighting by &nbsp;$K_{\rm C}$&nbsp; are drawn twice for clarity&nbsp; &ndash; as shown in the right equivalent figure.
  
 
+
*The&nbsp; "non-linear pre-encoder"&nbsp; obtains the precoded symbols &nbsp;$b_\nu$,&nbsp; which are also binary,&nbsp; by a modulo&ndash;2 addition&nbsp; ("antivalence")&nbsp; between the symbols &nbsp;$q_\nu$&nbsp; and &nbsp;$K_{\rm C} \cdot b_{\nu-N_{\rm C}} $:&nbsp;  
== Allgemeine Beschreibung von Partial Response Codes (2) ==
+
:$$q_\nu \in \{-1, +1\},\hspace{0.1cm} K_{\rm C} \in \{-1,
<br>
 
Die Beschreibung des <i>Partial Response Coders</i> wird fortgesetzt:
 
 
 
[[File:P_ID1343__Dig_T_2_4_S1_v1.png|Block- und Ersatzschaltbild eines Pseudoternärcodes|class=fit]]<br><br>
 
 
 
Man erkennt aus den beiden Darstellungen (Blockschaltbild links, Ersatzschaltbild rechts):
 
*Der Pseudoternärcoder kann in den nichtlinearen Vorcodierer und ein lineares Codiernetzwerk aufgespalten werden, wenn man die Verzögerung um <i>N</i><sub>C</sub> &middot; <i>T</i> und die Gewichtung mit <i>K</i><sub>C</sub> zur Verdeutlichung zweimal zeichnet.<br>
 
 
 
*Der nichtlineare Vorcodierer gewinnt durch eine Modulo&ndash;2&ndash;Addition (Antivalenz) zwischen den Symbolen <i>q<sub>&nu;</sub></i> und <i>K</i><sub>C</sub> &middot; <i>b</i><sub><i>&nu;</i>&ndash;<i>N</i>c</sub> die  vorcodierten Symbole <i>b<sub>&nu;</sub></i>, die ebenfalls binär sind:
 
 
 
::<math>q_\nu \in \{-1, +1\},\hspace{0.1cm} K_{\rm C} \in \{-1,
 
 
+1\}\hspace{0.3cm}\Rightarrow \hspace{0.3cm}b_\nu \in \{-1,
 
+1\}\hspace{0.3cm}\Rightarrow \hspace{0.3cm}b_\nu \in \{-1,
+1\}\hspace{0.05cm}.</math>
+
+1\}\hspace{0.05cm}.$$
 +
*Like the source symbols &nbsp;$q_\nu$,&nbsp; the symbols &nbsp;$b_\nu$&nbsp; are statistically independent of each other.&nbsp; Thus,&nbsp; the pre-encoder does not add any redundancy.&nbsp; However,&nbsp; it allows a simpler realization of the decoder and prevents error propagation after a transmission error.<br>
  
*Die Symbole <i>b<sub>&nu;</sub></i> sind wie die Quellensymbole <i>q<sub>&nu;</sub></i> statistisch voneinander unabhängig. Durch den Vorcodierer wird also keine Redundanz hinzugefügt. Er gestattet aber eine einfache Realisierung des Decoders und verhindert eine Fehlerfortpflanzung nach einem Übertragungsfehler.<br>
+
*The actual encoding from binary &nbsp;$(M_q = 2)$&nbsp; to ternary &nbsp;$(M = M_c = 3)$&nbsp; is done by the&nbsp; "linear coding network"&nbsp; by the conventional subtraction
 +
:$$c(t) ={1}/{2} \cdot \big [b(t) - K_{\rm C} \cdot b(t- N_{\rm
 +
C}\cdot T)\big]  \in \{-1, \ 0, +1\}\hspace{0.05cm},$$
  
*Die eigentliche Umcodierung von binär auf ternär bewirkt das lineare Codiernetzwerk durch die herkömmliche Subtraktion
+
:which can be described by the following &nbsp;[[Linear_and_Time_Invariant_Systems/System_Description_in_Time_Domain#Impulse_response|"impulse response"]]&nbsp; resp. &nbsp;[[Linear_and_Time_Invariant_Systems/System_Description_in_Frequency_Domain#Frequency_response_.E2.80.93_Transfer_function|"transfer function"]]&nbsp; with respect to the input signal &nbsp;$b(t)$&nbsp; and the output signal &nbsp;$c(t)$:&nbsp;
 +
:$$h_{\rm C}(t) =  {1}/{2} \cdot \big [\delta(t) - K_{\rm C} \cdot \delta(t- N_{\rm
 +
C}\cdot T)\big] \ \ \ \circ\!\!-\!\!\!-\!\!\!-\!\!\bullet\ \ \ H_{\rm C}(f) ={1}/{2} \cdot \left [1 - K_{\rm C} \cdot {\rm e}^{- {\rm j}\hspace{0.05cm}\cdot\hspace{0.05cm} 2\pi \hspace{0.05cm}\cdot \hspace{0.05cm}N_{\rm C}\hspace{0.05cm}\cdot \hspace{0.05cm}T}\right]\hspace{0.05cm}.  $$
  
::<math>c(t) ={1}/{2} \cdot \left [b(t) - K_{\rm C} \cdot b(t- N_{\rm
+
*The relative redundancy is the same for all pseudo-ternary codes.&nbsp; Substituting&nbsp; $M_q=2$, &nbsp;$M_c=3$&nbsp; and &nbsp;$T_c =T_q$&nbsp; into the &nbsp;[[Digital_Signal_Transmission/Redundancy-Free_Coding#Symbolwise_coding_vs._blockwise_coding|"general definition equation"]],&nbsp; we obtain
C}\cdot T)\right] \hspace{0.05cm}.</math>
+
:$$r_c = 1- \frac{R_q}{R_c} = 1- \frac{T_c}{T_q} \cdot \frac{{\rm log_2}\hspace{0.05cm} (M_q)}{{\rm log_2} \hspace{0.05cm}(M_c)} = 1- \frac{T_c}{T_q \cdot {\rm log_2} \hspace{0.05cm}(M_c)}\hspace{0.5cm}\Rightarrow  \hspace{0.5cm} r_c = 1 -1/\log_2\hspace{0.05cm}(3) \approx 36.9 \%\hspace{0.05cm}.$$
  
:Dieses ternäre Signal (Stufenzahl <i>M</i> = 3) weist die normierten Werte <i>a<sub>&nu;</sub></i> &#8712; {&ndash;1, 0, +1} auf.<br>
+
{{BlaueBox|TEXT= 
 +
$\text{Conclusion:}$&nbsp; If the NRZ rectangle is assumed for the basic transmission pulse&nbsp; $g_s(t)$,&nbsp; the&nbsp; '''transmitted signal of all pseudo-ternary codes''' is:
 +
:$$s(t) = \sum_{\nu = -\infty}^{+\infty} a_\nu \cdot g_s ( t - \nu \cdot T)\hspace{0.05cm}.$$
 +
*This is both&nbsp; "ternary" &nbsp; &rArr; &nbsp; $a_\nu \in \{-1, \ 0, +1\}$&nbsp; and&nbsp; "redundant"' &nbsp; &rArr; &nbsp; statistical ties between the&nbsp; $a_\nu$.}}
  
*Weiterhin gilt für das (nun redundante) Sendesignal <i>s</i>(<i>t</i>) mit dem Sendegrundimpuls <i>g<sub>s</sub></i>(<i>t</i>), der im gesamten Kapitel 2.4 stets als NRZ&ndash;Rechteck vorausgesetzt wird:
+
== Properties of the AMI code==
 +
<br>
 +
The individual pseudo-ternary codes differ in the &nbsp;$N_{\rm C}$&nbsp; and &nbsp;$K_{\rm C}$ parameters.&nbsp; The best-known representative is the&nbsp; '''first-order bipolar code'''&nbsp; with the code parameters
 +
:*&nbsp;$N_{\rm C} = 1$,&nbsp;  
 +
:*&nbsp;$K_{\rm C} = 1$,
  
::<math>s(t) = \sum_{\nu = -\infty}^{+\infty} a_\nu \cdot g_s ( t - \nu \cdot T)\hspace{0.05cm}.</math>
 
  
*Die [http://en.lntwww.de/Digitalsignal%C3%BCbertragung/Grundlagen_der_codierten_%C3%9Cbertragung#Systemmodell_und_Beschreibungsgr.C3.B6.C3.9Fen relative Coderedundanz] ist für alle Pseudoternärcodes gleich <i>r<sub>c</sub></i> = 1 &ndash; 1/log<sub>2</sub>(3) &asymp; 36.9 %.<br>
+
which is also known as&nbsp;  '''AMI code'''&nbsp;  (from: "Alternate Mark Inversion").&nbsp; This is used e.g. with &nbsp;[[Examples_of_Communication_Systems/Allgemeine_Beschreibung_von_ISDN|"ISDN"]]&nbsp; ("Integrated Services Digital Networks")&nbsp; on the so-called&nbsp; $S_0$&nbsp; interface.
  
 +
[[File:EN_Dig_T_2_4_S2a.png|right|frame|Signals with AMI coding and HDB3 coding|class=fit]]
 +
*The graph above shows the binary source signal &nbsp;$q(t)$.
 +
 +
*The second and third diagrams show:
 +
:* the likewise binary signal &nbsp;$b(t)$&nbsp; after the pre-encoder,&nbsp; and
  
== Eigenschaften des AMI-Codes (1) ==
+
:* the encoded signal &nbsp;$c(t) = s(t)$&nbsp; of the AMI code.
<br>
 
Die einzelnen Pseudoternärcodes unterscheiden sich in den Parametern <i>N</i><sub>C</sub> und <i>K</i><sub>C</sub>. Der bekannteste Vertreter ist der Bipolarcode erster Ordnung mit den Codeparametern <i>N</i><sub>C</sub> = 1 und <i>K</i><sub>C</sub> = 1, der auch unter der Bezeichnung  AMI&ndash;Code  (von: Alternate Mark Inversion) bekannt ist. Dieser wird zum Beispiel bei [http://en.lntwww.de/Beispiele_von_Nachrichtensystemen ISDN] (Integrated Services Digital Networks) auf der sog. S<sub>0</sub>&ndash;Schnittstelle eingesetzt.  
 
  
<br>[[File:P_ID1346__Dig_T_2_4_S2a_v1.png|Signale bei AMI- und HDB3-Codierung|class=fit]]<br><br>
 
  
Die Grafik zeigt im oberen Bereich die Signale <i>q</i>(<i>t</i>), <i>b</i>(<i>t</i>) und <i>c</i>(<i>t</i>) = <i>s</i>(<i>t</i>) für den AMI&ndash;Code. Man erkennt das einfache Codier&ndash; und Decodierprinzip dieses Codes:
+
One can see the simple AMI encoding principle:
*Jeder Binärwert &bdquo;&ndash;1&rdquo; von <i>q</i>(<i>t</i>) wird durch den ternären Amplitudenkoeffizienten &bdquo;0&rdquo; codiert.<br>
+
#Each binary value&nbsp; "&ndash;1"&nbsp; of the source signal&nbsp; $q(t)$  &nbsp; &rArr; &nbsp;  symbol &nbsp;$\rm L$&nbsp; is encoded by the ternary amplitude coefficient &nbsp;$a_\nu = 0$.&nbsp; <br><br>
 +
#The binary value&nbsp; "+1"&nbsp; of the source signal&nbsp; $q(t)$ &nbsp; &rArr; &nbsp; symbol &nbsp;$\rm H$&nbsp; is alternately represented by &nbsp;$a_\nu = +1$&nbsp; and &nbsp;$a_\nu = -1$.&nbsp; <br><br>
  
*Der Binärwert &bdquo;+1&rdquo; von <i>q</i>(<i>t</i>) wird alternierend mit &bdquo;+ 1&rdquo; und &bdquo;&ndash; 1&rdquo; dargestellt.<br><br>
+
This ensures that the AMI encoded signal does not contain any &nbsp; "long sequences"<br>  
 +
* &nbsp; $ \langle c_\nu \rangle =  \langle \text{...}, +1, +1, +1, +1, +1, \text{...}\rangle$ &nbsp; resp.
 +
* &nbsp; $ \langle c_\nu \rangle =  \langle \text{...}, -1, -1, -1, -1, -1, \text{...}\rangle$,
  
Damit wird sichergestellt, dass im AMI&ndash;codierten Signal keine langen
 
&bdquo;+1&rdquo;&ndash; bzw. &bdquo;&ndash;1&rdquo;&ndash;Sequenzen enthalten sind. Dagegen ist das Auftreten langer Nullfolgen durchaus möglich, bei denen über einen längeren Zeitraum keine Taktinformation übertragen wird.<br>
 
  
Um dies zu vermeiden, wurden einige modifizierte AMI&ndash;Codes entwickelt, zum Beispiel der B6ZS&ndash; und der HDB3&ndash;Code:
+
which would lead to problems with a DC-free channel.  
*Bei letzterem (grüne Kurve in obiger Grafik) werden vier aufeinanderfolgende Nullen im AMI&ndash;codierten Signal durch eine Teilsequenz ersetzt, die die AMI&ndash;Codierregel verletzt.<br>
 
  
*Im grau hinterlegten Bereich ist dies die Folge &bdquo;+ 0 0 +&rdquo;, da das letzte Symbol vor der Ersetzung ein &bdquo;&ndash;&rdquo; war.<br>
+
On the other hand,&nbsp; the occurrence of long zero sequences is quite possible,&nbsp; where no clock information is transmitted over a longer period of time.
 +
<br clear = all>
 +
To avoid this second problem,&nbsp; some modified AMI codes have been developed, for example the&nbsp; "B6ZS code"&nbsp; and the&nbsp; "HDB3 code":
 +
*In the&nbsp; '''HDB3 code'''&nbsp; (green curve in the graphic),&nbsp; four consecutive zeros in the AMI encoded signal are replaced by a subsequence that violates the AMI encoding rule.<br>
  
*Damit ist beim HDB3&ndash;Code die Anzahl aufeinanderfolgender Nullen auf 3 begrenzt, beim B6ZS&ndash;Code auf 5. Der Decoder erkennt diese Codeverletzung und ersetzt &bdquo;+ 0 0 +&rdquo; wieder durch &bdquo;0 0 0 0&rdquo;.<br>
+
*In the gray shaded area,&nbsp; this is the sequence&nbsp; "$+\ 0\ 0\ +$",&nbsp; since the last symbol before the replacement was a&nbsp; "minus".<br>
  
 +
*This limits the number of consecutive zeros to &nbsp; $3$ &nbsp; for the HDB3 code and to &nbsp; $5$ &nbsp; for the &nbsp;[https://www.itwissen.info/en/bipolar-with-six-zero-substitution-B6ZS-121675.html#gsc.tab=0 "B6ZS code"].&nbsp;
 +
 +
*The decoder detects this code violation and replaces "$+\ 0\ 0\ +$" with "$0\ 0\ 0\ 0$" again.<br>
  
== Eigenschaften des AMI-Codes (2) ==
+
== Power-spectral density of the AMI code==
 
<br>
 
<br>
Der Frequenzgang des linearen Codiernetzwerks eines Pseudoternärcodes lautet allgemein:
+
The frequency response of the linear code network of a pseudo-ternary code is generally:
 
+
:$$H_{\rm C}(f) = {1}/{2} \cdot \big [1 - K_{\rm C} \cdot {\rm
:<math>H_{\rm C}(f) = {1}/{2} \cdot \left [1 - K_{\rm C} \cdot {\rm
 
 
e}^{-{\rm j}\hspace{0.03cm}\cdot \hspace{0.03cm}
 
e}^{-{\rm j}\hspace{0.03cm}\cdot \hspace{0.03cm}
 
2\pi\hspace{0.03cm}\cdot \hspace{0.03cm}f \hspace{0.03cm}\cdot
 
2\pi\hspace{0.03cm}\cdot \hspace{0.03cm}f \hspace{0.03cm}\cdot
 
\hspace{0.03cm} N_{\rm C}\hspace{0.03cm}\cdot \hspace{0.03cm}T}
 
\hspace{0.03cm} N_{\rm C}\hspace{0.03cm}\cdot \hspace{0.03cm}T}
\right] ={1}/{2} \cdot \left [1 - K \cdot {\rm
+
\big] ={1}/{2} \cdot \big [1 - K \cdot {\rm
 
e}^{-{\rm j}\hspace{0.03cm}\cdot \hspace{0.03cm}
 
e}^{-{\rm j}\hspace{0.03cm}\cdot \hspace{0.03cm}
 
\alpha}
 
\alpha}
\right] \hspace{0.05cm}.</math>
+
\big ]\hspace{0.05cm}.$$
  
Damit ergibt sich für das Leistungsdichtespektrum (LDS) der Amplitudenkoeffizienten (<i>K</i> und <i>&alpha;</i> sind Abkürzungen):
+
This gives the power-spectral density&nbsp; $\rm (PSD)$&nbsp; of the amplitude coefficients &nbsp;$(K$&nbsp; and &nbsp;$\alpha$&nbsp; are abbreviations according to the above equation$)$:
 +
:$$  {\it \Phi}_a(f)  =  | H_{\rm C}(f)|^2 =  \frac{\big [1 - K \cos
 +
  (\alpha) + {\rm j}\cdot K \sin  (\alpha) \big ] \big [1 - K  \cos
 +
  (\alpha) - {\rm j}\cdot K \sin  (\alpha) \big ] }{4} =  \text{...}  =  {1}/{4} \cdot \big [2 - 2 \cdot K \cdot \cos
 +
  (\alpha) \big ] $$
 +
[[File:P_ID1347__Dig_T_2_4_S2b_v2.png|right|frame|Power-spectral density of the AMI code|class=fit]]
 +
:$$  \Rightarrow \hspace{0.3cm}{\it \Phi}_a(f)  =  | H_{\rm C}(f)|^2 =  {1}/{2} \cdot \big [1 - K_{\rm C} \cdot \cos
 +
  (2\pi  f    N_{\rm C}  T)\big ]
 +
\hspace{0.4cm}\bullet\!\!-\!\!\!-\!\!\!-\!\!\circ \hspace{0.4cm}
 +
\varphi_a(\lambda \cdot T)\hspace{0.05cm}.$$
  
:<math>  {\it \Phi}_a(f)  =  | H_{\rm C}(f)|^2 \frac{\left [1 - K \cos
+
In particular,&nbsp; for the power-spectral density of the AMI code&nbsp; $(N_{\rm C} = K_{\rm C} = 1)$,&nbsp; we obtain:
   (\alpha) + {\rm j}\cdot K \sin (\alpha) \right ] \left [1 - K  \cos
+
:$${\it \Phi}_a(f)  =  {1}/{2} \cdot \big [1 - \cos
   (\alpha) - {\rm j}\cdot K \sin (\alpha) \right ] }{4}  </math>
+
   (2\pi f    T)\big ] = \sin^2
::<math> =  ...  \hspace{0.15cm}=  {1}/{4} \cdot \left [2 - 2 \cdot K \cdot \cos
+
   (\pi f    T)\hspace{0.05cm}.$$
  (\alpha)  \right ] </math>
 
  
:<math>  \Rightarrow \hspace{0.3cm}{\it \Phi}_a(f) =  | H_{\rm C}(f)|^2 =  {1}/{2} \cdot \left [1 - K_{\rm C} \cdot \cos
+
The graph shows
  (2\pi  f    N_{\rm C}  T)\right ]
+
*the PSD &nbsp;${\it \Phi}_a(f)$&nbsp; of the amplitude coefficients&nbsp; (red curve),&nbsp; and<br>
\hspace{0.4cm}\bullet\!\!-\!\!\!-\!\!\!-\!\!\circ \hspace{0.4cm}
 
\varphi_a(\lambda \cdot T)\hspace{0.05cm}.</math>
 
  
Insbesondere erhält man für das Leistungsdichtespektrum des AMI&ndash;Codes (<i>N</i><sub>C</sub> = K<sub>C</sub> = 1):
+
*the PSD &nbsp;${\it \Phi}_s(f)$&nbsp; of the total transmitted signal&nbsp; (blue),&nbsp; valid for NRZ rectangular pulses.<br>
  
:<math>{\it \Phi}_a(f)  =  {1}/{2} \cdot \left [1 - \cos
 
  (2\pi  f    T)\right ] = \sin^2
 
  (\pi  f    T)\hspace{0.05cm}.</math>
 
  
Das LDS von HDB3&ndash; und B6ZS&ndash;Code weicht von dem des AMI&ndash;Codes nur unwesentlich ab.<br>
+
One recognizes from this representation
 +
*that the AMI code has no DC component,&nbsp; since &nbsp;${\it \Phi}_a(f = 0) = {\it \Phi}_s(f = 0) = 0$,&nbsp; <br>
  
[[File:P_ID1347__Dig_T_2_4_S2b_v2.png|Leistungsdichtespektrum des AMI-Codes|right|class=fit]]<br><br>
+
*the power &nbsp;$P_{\rm S} = s_0^2/2$&nbsp; of the AMI-coded transmitted signal&nbsp; $($integral over &nbsp;${\it \Phi}_s(f)$&nbsp; from &nbsp;$- \infty$&nbsp; to &nbsp;$+\infty)$.
  
Die Grafik zeigt
 
*das Leistungsdichtespektrum <i>&Phi;<sub>a</sub></i>(<i>f</i>) der Amplitudenkoeffizienten (rote Kurve),<br>
 
*das Leistungsdichtespektrum <i>&Phi;<sub>s</sub></i>(<i>f</i>) des gesamten Sendesignals (blau), gültig für NRZ&ndash;Rechteckimpulse.<br>
 
  
<br><br><br>
+
Notes:
Man erkennt aus dieser Darstellung
+
*The PSD of the HDB3 and B6ZS codes differs only slightly from that of the AMI code.<br>
*die Gleichsignalfreiheit des AMI&ndash;Codes, da <i>&Phi;<sub>a</sub></i>(<i>f</i> = 0) = <i>&Phi;<sub>s</sub></i>(<i>f</i> = 0) = 0 ist,<br>
 
*die Leistung <i>P<sub>S</sub></i> = <i>s</i><sub>0</sub><sup>2</sup>/2 des AMI&ndash;codierten Sendesignals (Integral über <i>&Phi;<sub>s</sub></i>(<i>f</i>) von &ndash;&#8734; bis +&#8734;).<br><br>
 
  
Die Eigenschaften der Pseudoternärcodes und insbesondere des AMI-Codes können Sie sich mit dem folgenden Interaktionsmodul verdeutlichen: &nbsp; [[:File:Pseudoternaercodierung.swf|Signale, AKF und LDS der Pseudoternärcodes]]<br>
+
*You can use the&nbsp; (German language)&nbsp; SWF applet &nbsp;[[Applets:Pseudoternaercodierung|"Signals, ACF, and PSD of pseudo-ternary codes"]]&nbsp; to clarify the topic discussed here.
  
  
== Eigenschaften des Duobinärcodes ==
+
== Properties of the duobinary code ==
 
<br>
 
<br>
Der Duobinärcode ist durch die Codeparameter <i>N</i><sub>C</sub> = 1 und <i>K</i><sub>C</sub> = &ndash;1 festgelegt. Damit ergibt sich für das LDS der Amplitudenkoeffizienten bzw. für das LDS des Sendesignals:
+
The&nbsp; '''duobinary code'''&nbsp; is defined by the code parameters &nbsp;$N_{\rm C} = 1$&nbsp; and &nbsp;$K_{\rm C} = -1$.&nbsp; This gives the power-spectral density&nbsp; $\rm (PSD)$&nbsp; of the amplitude coefficients and the PSD of the transmitted signal:
 
+
[[File:P_ID1348__Dig_T_2_4_S3b_v1.png|right|frame|Power-spectral density of the duobinary code|right|class=fit]]
:<math>{\it \Phi}_a(f) ={1}/{2} \cdot \left [1 + \cos
 
  (2\pi  f    T)\right ] = \cos^2
 
  (\pi  f    T)\hspace{0.05cm},</math>
 
  
:<math> {\it \Phi}_s(f)  =    s_0^2 \cdot T  \cdot \cos^2
+
:$${\it \Phi}_a(f) ={1}/{2} \cdot \big [1 + \cos
 +
  (2\pi  f    T)\big ] = \cos^2
 +
  (\pi  f    T)\hspace{0.05cm},$$
 +
:$$ {\it \Phi}_s(f)  =    s_0^2 \cdot T  \cdot \cos^2
 
   (\pi  f    T)\cdot {\rm si}^2
 
   (\pi  f    T)\cdot {\rm si}^2
 
   (\pi  f    T)=    s_0^2 \cdot T  \cdot {\rm si}^2
 
   (\pi  f    T)=    s_0^2 \cdot T  \cdot {\rm si}^2
   (2 \pi  f    T)  \hspace{0.05cm}.</math>
+
   (2 \pi  f    T)  \hspace{0.05cm}.$$
 +
 
 +
The graph shows the power-spectral density
 +
*of the amplitude coefficients &nbsp; &#8658; &nbsp; ${\it \Phi}_a(f)$&nbsp;  as a red curve,<br>
 +
 
 +
*of the total transmitted signal &nbsp; &#8658; &nbsp; ${\it \Phi}_s(f)$&nbsp; as a blue curve.<br><br>
 +
 
 +
In the second graph,&nbsp; the signals &nbsp;$q(t)$, &nbsp;$b(t)$&nbsp; and &nbsp;$c(t) = s(t)$&nbsp; are sketched. We refer here again to the&nbsp; (German language)&nbsp; SWF applet &nbsp;[[Applets:Pseudoternaercodierung|"Signals, ACF, and PSD of pseudo-ternary codes"]],&nbsp; which also clarifies the duobinary code.
  
<br>[[File:P_ID1348__Dig_T_2_4_S3b_v1.png|Leistungsdichtespektrum des Duobinärcodes|right|class=fit]]<br>
+
[[File:P_ID1349__Dig_T_2_4_S3a_v2.png|left|frame|Signals in duobinary coding|class=fit]]
 +
<br><br><br><br><br><br>From these illustrations it is clear:
 +
*In the duobinary code,&nbsp; any number of symbols with same polarity&nbsp; ("+1"&nbsp; or&nbsp; "&ndash;1")&nbsp; can directly succeed each other &nbsp; &rArr;  &nbsp; ${\it \Phi}_a(f = 0)=1$,&nbsp; ${\it \Phi}_s(f = 0) = 1/2 \cdot s_0^2 \cdot T$.<br>
  
Die Grafik zeigt das Leistungsdichtespektrum
+
*In contrast,&nbsp; for the duobinary code,&nbsp; the alternating sequence&nbsp; "... , +1, &ndash;1, +1, &ndash;1, +1, ..."&nbsp; does not occur,&nbsp; which is particularly disturbing with respect to intersymbol interference.&nbsp; Therefore,&nbsp; in the duobinary code: &nbsp;${\it \Phi}_s(f = 1/(2T) = 0$.<br>
*der Amplitudenkoeffizienten &nbsp;&#8658;&nbsp; <i>&Phi;<sub>a</sub></i>(<i>f</i>) als rote Kurve,<br>
 
*des gesamten Sendsignals &nbsp;&#8658;&nbsp; <i>&Phi;<sub>s</sub></i>(<i>f</i>) als blaue Kurve.<br><br>
 
  
In der Grafik am Seitenende sind die Signale <i>q</i>(<i>t</i>), <i>b</i>(<i>t</i>) und <i>c</i>(<i>t</i>) = <i>s</i>(<i>t</i>) skizziert.
+
*The power-spectral density &nbsp;${\it \Phi}_s(f)$&nbsp; of the pseudo-ternary duobinary code is identical to the PSD with redundancy-free binary coding at half rate $($symbol duration &nbsp;$2T)$.<br>
 +
<br clear= all>
  
<br><br><br>Aus beiden Darstellungen geht hervor:
+
== Error probability of the pseudo-ternary codes ==
*Beim Duobinärcode können beliebig viele Symbole mit gleicher Polarität (&bdquo;+1&rdquo; bzw. &bdquo;&ndash;1&rdquo;) direkt aufeinanderfolgen. Deshalb gilt <i>&Phi;<sub>a</sub></i>(<i>f</i> = 0) = 1 und <i>&Phi;<sub>s</sub></i>(<i>f</i> = 0) = <i>s</i><sub>0</sub><sup>2</sup> &middot; <i>T</i>.<br>
+
<br>
*Dagegen tritt hier die alternierende Folge  ... , +1, &ndash;1, +1, &ndash;1, +1, ...  nicht auf, die hinsichtlich Impulsinterferenzen besonders störend ist. Beim Duobinärcode gilt deshalb <i>&Phi;<sub>s</sub></i>(<i>f</i> = 1/(2<i>T</i>) = 0.<br>
+
The graph shows the &nbsp;[[Digital_Signal_Transmission/Error_Probability_with_Intersymbol_Interference#Definition_and_statements_of_the_eye_diagram|"eye diagrams"]]&nbsp; ('''without''' noise) when using
*Das Leistungsdichtespektrum <i>&Phi;<sub>s</sub></i>(<i>f</i>) des pseudoternären Duobinärcodes ist identisch mit dem LDS bei redundanzfreier Binärcodierung mit halber Rate (Symboldauer 2<i>T</i>).<br>
+
[[File:EN_Dig_T_2_4_S4.png|right|frame|Eye diagrams for AMI, duobinary and 4B3T coding|class=fit]]
 +
#the AMI code (left),
 +
#the  duobinary code (center),
 +
#the 4B3T code (right).  
  
<br>[[File:P_ID1349__Dig_T_2_4_S3a_v2.png|Signale bei Duobinärcodierung|class=fit]]<br><br>
 
  
Die Eigenschaften der Pseudoternärcodes und insbesondere des Duobinärcodes können Sie sich mit dem Interaktionsmodul &nbsp; [[:File:Pseudoternaercodierung (1).swf|Signale, AKF und LDS der Pseudoternärcodes]] &nbsp; verdeutlichen.<br>
+
The same assumptions apply as on the section &nbsp;[[Digital_Signal_Transmission/Block_Coding_with_4B3T_Codes#Error_probability_of_the_4B3T_codes|"Error probability of the 4B3T codes"]].&nbsp; In particular:
 +
*The system comparison is made under&nbsp; "peak constraint".&nbsp; Therefore,&nbsp; we use the rectangular basic transmission pulse.<br>
  
 +
*The overall frequency response shows a raised cosine with best possible rolloff factor &nbsp;$r = 0.8$.&nbsp;
 +
 +
*The noise power &nbsp;$\sigma_d^2$&nbsp; is thus &nbsp;$12\%$&nbsp; larger than with the matched filter&nbsp; (global optimum).
  
== Fehlerwahrscheinlichkeit der Pseudoternärcodes ==
 
<br>
 
Die Grafik zeigt die Augendiagramme ohne Rauschen bei Verwendung von AMI&ndash;Code (links) und Duobinärcode (Mitte) im Vergleich zum 4B3T&ndash;Code (rechts). Es gelten die gleichen Voraussetzungen wie auf [http://en.lntwww.de/Digitalsignal%C3%BCbertragung/Blockweise_Codierung_mit_4B3T-Codes#Fehlerwahrscheinlichkeit_der_4B3T-Codes_.281.29 Seite 4 von Kapitel 2.3].
 
  
[[File:P_ID1350__Dig_T_2_4_S4_v1.png|Augendiagramme bei AMI-, Duobinär- und 4B3T-Codierung|class=fit]]<br><br>
+
The results can be interpreted as follows:
  
Alle Bilder gelten für eine Cosinus&ndash;Rolloff&ndash;Charakteristik des Gesamtfrequenzgangs (von Sender und Empfänger) mit dem Rolloff&ndash;Faktor <i>r</i> = 0.8. Die Ergebnisse sind wie folgt zu interpretieren:
+
*One can see in the left graph that for the AMI code the horizontal lines at &nbsp;$+s_0$&nbsp; and  &nbsp;$-s_0$&nbsp; are missing&nbsp; (DC signal freedom!),&nbsp; while for the duobinary code&nbsp; (middle graph)&nbsp; no transitions from &nbsp;$+s_0$&nbsp; to &nbsp;$-s_0$&nbsp; (and vice versa)&nbsp; are possible.  
*Beim 4B3T&ndash;Code erkennt man im Augendiagramm deutlich mehr Linien als bei den beiden linken Bildern. Der redundanzfreie Ternärcode würde nahezu das gleiche Ergebnis liefern.<br>
 
  
*Auf der oben zitierten Seite wurde die Symbolfehlerwahrscheinlichkeit des 4B3T&ndash;Codes für die Leistungskenngröße 10 &middot; lg(<i>s</i><sub>0</sub><sup>2</sup>&middot;<i>T</i>/<i>N</i><sub>0</sub>) = 13 dB (Spitzenwertbegrenzung!) wie folgt berechnet:
+
*With the 4B3T code,&nbsp; you can see clearly more lines in the eye diagram than in the two left pictures.&nbsp; The redundancy-free ternary code would give almost the same result.<br>
  
::<math>{ \sigma_d}/{s_0} = 0.145 \hspace{0.3cm}\Rightarrow \hspace{0.3cm}
+
*In the section quoted above,&nbsp; the symbol error probability of the 4B3T code for the parameter &nbsp;$10 \cdot \lg \hspace{0.05cm}(s_0^2 \cdot T/N_0) = 13 \ \rm dB$&nbsp; was calculated as follows:
 +
:$${ \sigma_d}/{s_0} = 0.145 \hspace{0.3cm}\Rightarrow \hspace{0.3cm}
 
  p_{\rm S} = {4}/{3} \cdot {\rm Q} \left( \frac{s_0/2}{ \sigma_d} \right) \approx
 
  p_{\rm S} = {4}/{3} \cdot {\rm Q} \left( \frac{s_0/2}{ \sigma_d} \right) \approx
 
{4}/{3} \cdot {\rm Q} \left( 3.45 \right) = 3.7 \cdot 10^{-4}
 
{4}/{3} \cdot {\rm Q} \left( 3.45 \right) = 3.7 \cdot 10^{-4}
  \hspace{0.05cm}.</math>
+
  \hspace{0.05cm}.$$
 
+
*Using a pseudo-ternary code results in a larger error probability because here the noise rms value is not reduced compared to redundancy-free binary coding:
*Bei Verwendung eines Pseudoternärcodes ergibt sich eine größere Fehlerwahrscheinlichkeit, weil hier der Rauscheffektivwert gegenüber der redundanzfreien Binärcodierung nicht verringert wird:
+
:$${ \sigma_d}/{s_0} = 0.167 \hspace{0.3cm}\Rightarrow \hspace{0.3cm}
 
 
::<math>{ \sigma_d}/{s_0} = 0.167 \hspace{0.3cm}\Rightarrow \hspace{0.3cm}
 
 
  p_{\rm S} = {4}/{3} \cdot {\rm Q} \left( \frac{s_0/2}{ \sigma_d} \right) \approx
 
  p_{\rm S} = {4}/{3} \cdot {\rm Q} \left( \frac{s_0/2}{ \sigma_d} \right) \approx
 
{4}/{3} \cdot {\rm Q} \left( 3 \right) = 1.8 \cdot 10^{-3}
 
{4}/{3} \cdot {\rm Q} \left( 3 \right) = 1.8 \cdot 10^{-3}
  \hspace{0.05cm}.</math>
+
  \hspace{0.05cm}.$$
 
+
*When the Nyquist condition is satisfied,&nbsp; the AMI and duobinary codes do not differ in terms of error probability despite completely different eye diagrams.&nbsp; But as will be shown in the section &nbsp;[[Digital_Signal_Transmission/Intersymbol_Interference_for_Multi-Level_Transmission#Eye_opening_for_the_pseudo_ternary_codes|"Eye opening for the pseudo-ternary codes"]],&nbsp; the error behavior of these codes differs extremely whenever &nbsp;[[Digital_Signal_Transmission/Ursachen_und_Auswirkungen_von_Impulsinterferenzen|"intersymbol interference"]]&nbsp; plays a role.<br>
*Bei Erfüllung der Nyquistbedingung unterscheiden sich der AMI&ndash; und der Duobinärcode trotz völlig unterschiedlicher Augendiagramme  nicht hinsichtlich der Fehlerwahrscheinlichkeit.<br>
 
 
 
*Wie aber in [http://en.lntwww.de/Digitalsignal%C3%BCbertragung/Impulsinterferenzen_bei_mehrstufiger_%C3%9Cbertragung#Augen.C3.B6ffnung_bei_redundanzfreien_Mehrstufensystemen_.281.29 Kapitel 3.4] noch gezeigt werden wird, ist das Fehlerverhalten der beiden Codes immer dann extrem unterschiedlich, wenn Impulsinterferenzen eine Rolle spielen.<br>
 
  
*Man erkennt in der linken Grafik, dass beim AMI&ndash;Code die horizontalen Linien bei +<i>s</i><sub>0</sub> bzw. &ndash;<i>s</i><sub>0</sub> fehlen (Gleichsignalfreiheit), während beim Duobinärcode (mittlere Grafik) keine Übergänge von +<i>s</i><sub>0</sub> auf &ndash;<i>s</i><sub>0</sub> (und umgekehrt) möglich sind.<br>
 
  
==Aufgaben==
+
==Exercises for the chapter==
 
<br>
 
<br>
[[Aufgaben:2.7 AMI-Code|A2.7 AMI-Code]]
+
[[Aufgaben:Exercise_2.7:_AMI_Code|Exercise 2.7: AMI Code]]
  
[[Zusatzaufgaben:2.7 Pseudoternärcodes – LDS]]
+
[[Aufgaben:Exercise_2.7Z:_Power-Spectral_Density_of_Pseudo-Ternary_Codes|Exercise 2.7Z: Power-Spectral Density of Pseudo-Ternary Codes]]
  
[[Aufgaben:2.8 Vergleich Binär - AMI - 4B3T|A2.8 Vergleich Binär - AMI - 4B3T]]
+
[[Aufgaben:Exercise_2.8:_Code_Comparison_Binary,_AMI_and_4B3T|Exercise 2.8: Code Comparison Binary, AMI and 4B3T]]
  
 
{{Display}}
 
{{Display}}

Latest revision as of 23:47, 22 March 2023


General description of the pseudo-multilevel codes


In symbolwise coding,  each incoming source symbol  $q_\nu$  generates an encoder symbol  $c_\nu$,  which depends not only on the current input symbol  $q_\nu$  but also on the  $N_{\rm C}$  preceding symbols  $q_{\nu-1}$, ... , $q_{\nu-N_{\rm C}} $.   $N_{\rm C}$  is referred to as the  "order"  of the code.

Typical for symbolwise coding is that

  • the symbol duration  $T$  of the encoded signal  (and of the transmitted signal)  matches the bit duration  $T_{\rm B}$  of the binary source signal,  and
  • encoding and decoding do not lead to major time delays,  which are unavoidable when block codes are used.

The  "pseudo-multilevel codes"  – better known as  "partial response codes"  –  are of special importance.  In the following,  only  "pseudo-ternary codes"   ⇒   level number  $M = 3$  are considered. 

  • These can be described by the block diagram corresponding to the left graph. 
  • In the right graph an equivalent circuit is given,  which is very suitable for an analysis of these codes.
Block diagram  (above)  and equivalent circuit  (below)  of a pseudo-ternary encoder


One can see from the two representations:

  • The pseudo-ternary encoder can be split into the  "non-linear pre-encoder"  and the  "linear coding network",  if the delay by  $N_{\rm C} \cdot T$  and the weighting by  $K_{\rm C}$  are drawn twice for clarity  – as shown in the right equivalent figure.
  • The  "non-linear pre-encoder"  obtains the precoded symbols  $b_\nu$,  which are also binary,  by a modulo–2 addition  ("antivalence")  between the symbols  $q_\nu$  and  $K_{\rm C} \cdot b_{\nu-N_{\rm C}} $: 
$$q_\nu \in \{-1, +1\},\hspace{0.1cm} K_{\rm C} \in \{-1, +1\}\hspace{0.3cm}\Rightarrow \hspace{0.3cm}b_\nu \in \{-1, +1\}\hspace{0.05cm}.$$
  • Like the source symbols  $q_\nu$,  the symbols  $b_\nu$  are statistically independent of each other.  Thus,  the pre-encoder does not add any redundancy.  However,  it allows a simpler realization of the decoder and prevents error propagation after a transmission error.
  • The actual encoding from binary  $(M_q = 2)$  to ternary  $(M = M_c = 3)$  is done by the  "linear coding network"  by the conventional subtraction
$$c(t) ={1}/{2} \cdot \big [b(t) - K_{\rm C} \cdot b(t- N_{\rm C}\cdot T)\big] \in \{-1, \ 0, +1\}\hspace{0.05cm},$$
which can be described by the following  "impulse response"  resp.  "transfer function"  with respect to the input signal  $b(t)$  and the output signal  $c(t)$: 
$$h_{\rm C}(t) = {1}/{2} \cdot \big [\delta(t) - K_{\rm C} \cdot \delta(t- N_{\rm C}\cdot T)\big] \ \ \ \circ\!\!-\!\!\!-\!\!\!-\!\!\bullet\ \ \ H_{\rm C}(f) ={1}/{2} \cdot \left [1 - K_{\rm C} \cdot {\rm e}^{- {\rm j}\hspace{0.05cm}\cdot\hspace{0.05cm} 2\pi \hspace{0.05cm}\cdot \hspace{0.05cm}N_{\rm C}\hspace{0.05cm}\cdot \hspace{0.05cm}T}\right]\hspace{0.05cm}. $$
  • The relative redundancy is the same for all pseudo-ternary codes.  Substituting  $M_q=2$,  $M_c=3$  and  $T_c =T_q$  into the  "general definition equation",  we obtain
$$r_c = 1- \frac{R_q}{R_c} = 1- \frac{T_c}{T_q} \cdot \frac{{\rm log_2}\hspace{0.05cm} (M_q)}{{\rm log_2} \hspace{0.05cm}(M_c)} = 1- \frac{T_c}{T_q \cdot {\rm log_2} \hspace{0.05cm}(M_c)}\hspace{0.5cm}\Rightarrow \hspace{0.5cm} r_c = 1 -1/\log_2\hspace{0.05cm}(3) \approx 36.9 \%\hspace{0.05cm}.$$

$\text{Conclusion:}$  If the NRZ rectangle is assumed for the basic transmission pulse  $g_s(t)$,  the  transmitted signal of all pseudo-ternary codes is:

$$s(t) = \sum_{\nu = -\infty}^{+\infty} a_\nu \cdot g_s ( t - \nu \cdot T)\hspace{0.05cm}.$$
  • This is both  "ternary"   ⇒   $a_\nu \in \{-1, \ 0, +1\}$  and  "redundant"'   ⇒   statistical ties between the  $a_\nu$.

Properties of the AMI code


The individual pseudo-ternary codes differ in the  $N_{\rm C}$  and  $K_{\rm C}$ parameters.  The best-known representative is the  first-order bipolar code  with the code parameters

  •  $N_{\rm C} = 1$, 
  •  $K_{\rm C} = 1$,


which is also known as  AMI code  (from: "Alternate Mark Inversion").  This is used e.g. with  "ISDN"  ("Integrated Services Digital Networks")  on the so-called  $S_0$  interface.

Signals with AMI coding and HDB3 coding
  • The graph above shows the binary source signal  $q(t)$.
  • The second and third diagrams show:
  • the likewise binary signal  $b(t)$  after the pre-encoder,  and
  • the encoded signal  $c(t) = s(t)$  of the AMI code.


One can see the simple AMI encoding principle:

  1. Each binary value  "–1"  of the source signal  $q(t)$   ⇒   symbol  $\rm L$  is encoded by the ternary amplitude coefficient  $a_\nu = 0$. 

  2. The binary value  "+1"  of the source signal  $q(t)$   ⇒   symbol  $\rm H$  is alternately represented by  $a_\nu = +1$  and  $a_\nu = -1$. 

This ensures that the AMI encoded signal does not contain any   "long sequences"

  •   $ \langle c_\nu \rangle = \langle \text{...}, +1, +1, +1, +1, +1, \text{...}\rangle$   resp.
  •   $ \langle c_\nu \rangle = \langle \text{...}, -1, -1, -1, -1, -1, \text{...}\rangle$,


which would lead to problems with a DC-free channel.

On the other hand,  the occurrence of long zero sequences is quite possible,  where no clock information is transmitted over a longer period of time.
To avoid this second problem,  some modified AMI codes have been developed, for example the  "B6ZS code"  and the  "HDB3 code":

  • In the  HDB3 code  (green curve in the graphic),  four consecutive zeros in the AMI encoded signal are replaced by a subsequence that violates the AMI encoding rule.
  • In the gray shaded area,  this is the sequence  "$+\ 0\ 0\ +$",  since the last symbol before the replacement was a  "minus".
  • This limits the number of consecutive zeros to   $3$   for the HDB3 code and to   $5$   for the  "B6ZS code"
  • The decoder detects this code violation and replaces "$+\ 0\ 0\ +$" with "$0\ 0\ 0\ 0$" again.

Power-spectral density of the AMI code


The frequency response of the linear code network of a pseudo-ternary code is generally:

$$H_{\rm C}(f) = {1}/{2} \cdot \big [1 - K_{\rm C} \cdot {\rm e}^{-{\rm j}\hspace{0.03cm}\cdot \hspace{0.03cm} 2\pi\hspace{0.03cm}\cdot \hspace{0.03cm}f \hspace{0.03cm}\cdot \hspace{0.03cm} N_{\rm C}\hspace{0.03cm}\cdot \hspace{0.03cm}T} \big] ={1}/{2} \cdot \big [1 - K \cdot {\rm e}^{-{\rm j}\hspace{0.03cm}\cdot \hspace{0.03cm} \alpha} \big ]\hspace{0.05cm}.$$

This gives the power-spectral density  $\rm (PSD)$  of the amplitude coefficients  $(K$  and  $\alpha$  are abbreviations according to the above equation$)$:

$$ {\it \Phi}_a(f) = | H_{\rm C}(f)|^2 = \frac{\big [1 - K \cos (\alpha) + {\rm j}\cdot K \sin (\alpha) \big ] \big [1 - K \cos (\alpha) - {\rm j}\cdot K \sin (\alpha) \big ] }{4} = \text{...} = {1}/{4} \cdot \big [2 - 2 \cdot K \cdot \cos (\alpha) \big ] $$
Power-spectral density of the AMI code
$$ \Rightarrow \hspace{0.3cm}{\it \Phi}_a(f) = | H_{\rm C}(f)|^2 = {1}/{2} \cdot \big [1 - K_{\rm C} \cdot \cos (2\pi f N_{\rm C} T)\big ] \hspace{0.4cm}\bullet\!\!-\!\!\!-\!\!\!-\!\!\circ \hspace{0.4cm} \varphi_a(\lambda \cdot T)\hspace{0.05cm}.$$

In particular,  for the power-spectral density of the AMI code  $(N_{\rm C} = K_{\rm C} = 1)$,  we obtain:

$${\it \Phi}_a(f) = {1}/{2} \cdot \big [1 - \cos (2\pi f T)\big ] = \sin^2 (\pi f T)\hspace{0.05cm}.$$

The graph shows

  • the PSD  ${\it \Phi}_a(f)$  of the amplitude coefficients  (red curve),  and
  • the PSD  ${\it \Phi}_s(f)$  of the total transmitted signal  (blue),  valid for NRZ rectangular pulses.


One recognizes from this representation

  • that the AMI code has no DC component,  since  ${\it \Phi}_a(f = 0) = {\it \Phi}_s(f = 0) = 0$, 
  • the power  $P_{\rm S} = s_0^2/2$  of the AMI-coded transmitted signal  $($integral over  ${\it \Phi}_s(f)$  from  $- \infty$  to  $+\infty)$.


Notes:

  • The PSD of the HDB3 and B6ZS codes differs only slightly from that of the AMI code.


Properties of the duobinary code


The  duobinary code  is defined by the code parameters  $N_{\rm C} = 1$  and  $K_{\rm C} = -1$.  This gives the power-spectral density  $\rm (PSD)$  of the amplitude coefficients and the PSD of the transmitted signal:

Power-spectral density of the duobinary code
$${\it \Phi}_a(f) ={1}/{2} \cdot \big [1 + \cos (2\pi f T)\big ] = \cos^2 (\pi f T)\hspace{0.05cm},$$
$$ {\it \Phi}_s(f) = s_0^2 \cdot T \cdot \cos^2 (\pi f T)\cdot {\rm si}^2 (\pi f T)= s_0^2 \cdot T \cdot {\rm si}^2 (2 \pi f T) \hspace{0.05cm}.$$

The graph shows the power-spectral density

  • of the amplitude coefficients   ⇒   ${\it \Phi}_a(f)$  as a red curve,
  • of the total transmitted signal   ⇒   ${\it \Phi}_s(f)$  as a blue curve.

In the second graph,  the signals  $q(t)$,  $b(t)$  and  $c(t) = s(t)$  are sketched. We refer here again to the  (German language)  SWF applet  "Signals, ACF, and PSD of pseudo-ternary codes",  which also clarifies the duobinary code.

Signals in duobinary coding







From these illustrations it is clear:

  • In the duobinary code,  any number of symbols with same polarity  ("+1"  or  "–1")  can directly succeed each other   ⇒   ${\it \Phi}_a(f = 0)=1$,  ${\it \Phi}_s(f = 0) = 1/2 \cdot s_0^2 \cdot T$.
  • In contrast,  for the duobinary code,  the alternating sequence  "... , +1, –1, +1, –1, +1, ..."  does not occur,  which is particularly disturbing with respect to intersymbol interference.  Therefore,  in the duobinary code:  ${\it \Phi}_s(f = 1/(2T) = 0$.
  • The power-spectral density  ${\it \Phi}_s(f)$  of the pseudo-ternary duobinary code is identical to the PSD with redundancy-free binary coding at half rate $($symbol duration  $2T)$.


Error probability of the pseudo-ternary codes


The graph shows the  "eye diagrams"  (without noise) when using

Eye diagrams for AMI, duobinary and 4B3T coding
  1. the AMI code (left),
  2. the duobinary code (center),
  3. the 4B3T code (right).


The same assumptions apply as on the section  "Error probability of the 4B3T codes".  In particular:

  • The system comparison is made under  "peak constraint".  Therefore,  we use the rectangular basic transmission pulse.
  • The overall frequency response shows a raised cosine with best possible rolloff factor  $r = 0.8$. 
  • The noise power  $\sigma_d^2$  is thus  $12\%$  larger than with the matched filter  (global optimum).


The results can be interpreted as follows:

  • One can see in the left graph that for the AMI code the horizontal lines at  $+s_0$  and  $-s_0$  are missing  (DC signal freedom!),  while for the duobinary code  (middle graph)  no transitions from  $+s_0$  to  $-s_0$  (and vice versa)  are possible.
  • With the 4B3T code,  you can see clearly more lines in the eye diagram than in the two left pictures.  The redundancy-free ternary code would give almost the same result.
  • In the section quoted above,  the symbol error probability of the 4B3T code for the parameter  $10 \cdot \lg \hspace{0.05cm}(s_0^2 \cdot T/N_0) = 13 \ \rm dB$  was calculated as follows:
$${ \sigma_d}/{s_0} = 0.145 \hspace{0.3cm}\Rightarrow \hspace{0.3cm} p_{\rm S} = {4}/{3} \cdot {\rm Q} \left( \frac{s_0/2}{ \sigma_d} \right) \approx {4}/{3} \cdot {\rm Q} \left( 3.45 \right) = 3.7 \cdot 10^{-4} \hspace{0.05cm}.$$
  • Using a pseudo-ternary code results in a larger error probability because here the noise rms value is not reduced compared to redundancy-free binary coding:
$${ \sigma_d}/{s_0} = 0.167 \hspace{0.3cm}\Rightarrow \hspace{0.3cm} p_{\rm S} = {4}/{3} \cdot {\rm Q} \left( \frac{s_0/2}{ \sigma_d} \right) \approx {4}/{3} \cdot {\rm Q} \left( 3 \right) = 1.8 \cdot 10^{-3} \hspace{0.05cm}.$$
  • When the Nyquist condition is satisfied,  the AMI and duobinary codes do not differ in terms of error probability despite completely different eye diagrams.  But as will be shown in the section  "Eye opening for the pseudo-ternary codes",  the error behavior of these codes differs extremely whenever  "intersymbol interference"  plays a role.


Exercises for the chapter


Exercise 2.7: AMI Code

Exercise 2.7Z: Power-Spectral Density of Pseudo-Ternary Codes

Exercise 2.8: Code Comparison Binary, AMI and 4B3T