Symbolweise Codierung mit Pseudoternärcodes
Inhaltsverzeichnis
Allgemeine Beschreibung der Pseudomehrstufencodes
Bei der symbolweisen Codierung wird mit jedem ankommenden Quellensymbol $q_\nu$ ein Codesymbol $c_\nu$ erzeugt, das außer vom aktuellen Eingangssymbol $q_\nu$ auch von den $N_{\rm C}$ vorangegangenen Symbolen $q_\nu$, ... , $q_{\nu-N_{\rm C}} $ abhängt. $N_{\rm C}$ bezeichnet man als die Ordnung des Codes.
Typisch für eine symbolweise Codierung ist, dass
- die Symboldauer $T$ des Codersignals (und des Sendesignals) mit der Bitdauer $T_{\rm B}$ des binären Quellensignals übereinstimmt, und
- die Codierung und Decodierung nicht zu größeren Zeitverzögerungen führen, die bei Verwendung von Blockcodes unvermeidbar sind.
Besondere Bedeutung besitzen die Pseudomehrstufencodes – besser bekannt unter der englischen Bezeichnung Partial Response Codes.
Im Folgenden werden ausschließlich Pseudoternärcodes ⇒ Stufenzahl $M = 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.
Man erkennt aus den beiden Darstellungen:
- Der Pseudoternärcoder kann in den nichtlinearen Vorcodierer und ein lineares Codiernetzwerk aufgespalten werden, wenn man – wie im rechten Ersatzschaltbild dargestellt – die Verzögerung um $N_{\rm C} \cdot T$ und die Gewichtung mit $K_{\rm C}$ zur Verdeutlichung zweimal zeichnet.
- Der nichtlineare Vorcodierer gewinnt durch eine Modulo–2–Addition (Antivalenz) zwischen den Symbolen $q_\nu$ und $K_{\rm C} \cdot b_{\nu-N_{\rm C}} $ die vorcodierten Symbole $b_\nu$, die ebenfalls binär sind:
- $$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}.$$
- Die Symbole $b_\nu$ sind wie die Quellensymbole $q_\nu$ statistisch voneinander unabhängig. Der Vorcodierer fügt also keine Redundanz hinzu. Er gestattet aber eine einfache Realisierung des Decoders und verhindert eine Fehlerfortpflanzung nach einem Übertragungsfehler.
- Die eigentliche Umcodierung von binär $(M_q = 2)$ auf ternär $(M = M_c = 3)$ bewirkt das lineare Codiernetzwerk durch die herkömmliche Subtraktion
- $$c(t) ={1}/{2} \cdot \left [b(t) - K_{\rm C} \cdot b(t- N_{\rm C}\cdot T)\right] \in \{-1, \ 0, +1\}\hspace{0.05cm},$$
- das durch folgende Impulsantwort bzw. Übertragungsfunktion bezüglich dem Eingangssignal $b(t)$ und dem Eingangssignal $c(t)$beschrieben werden kann:
- $$h_{\rm C}(t) = {1}/{2} \cdot \left [\delta(t) - K_{\rm C} \cdot \delta(t- N_{\rm C}\cdot T)\right] \ \ \ \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}. $$
- Die relative Coderedundanz ist für alle Pseudoternärcodes gleich. Setzt man in die allgemeinen Definitionsgleichung $M_q=2$, $M_c=3$ sowie $T_c =T_q$ ein, so erhält man
- $$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{Fazit:}$ Setzt man für den Sendegrundimpuls $g_s(t)$ das NRZ–Rechteck voraus, so lautet das Sendesignal aller Pseudoternärcodes:
- $$s(t) = \sum_{\nu = -\infty}^{+\infty} a_\nu \cdot g_s ( t - \nu \cdot T)\hspace{0.05cm}.$$
Dieses ist sowohl ternär ⇒ $a_\nu \in \{-1, \ 0, +1\}$ als auch redundant ⇒ statistische Bindungen zwischen den $a_\nu$.
Eigenschaften des AMI-Codes
Die einzelnen Pseudoternärcodes unterscheiden sich in den Parametern $N_{\rm C}$ und $K_{\rm C}$. Der bekannteste Vertreter ist der Bipolarcode erster Ordnung mit den Codeparametern $N_{\rm C} = 1$ und $K_{\rm C} = 1$, der auch unter der Bezeichnung AMI–Code (von: Alternate Mark Inversion) bekannt ist. Dieser wird zum Beispiel bei ISDN (Integrated Services Digital Networks) auf der so genannten S0–Schnittstelle eingesetzt.
Die Grafik zeigt oben das binäre Quellensignal $q(t)$. Im zweiten und dritten Diagramm sind dargestellt:
- das ebenfalls binäre Signal $b(t)$ nach dem Vorcodierer, und
- das Codersignal $c(t) = s(t)$ beim AMI–Code.
Man erkennt das einfache AMI–Codier– und Decodierprinzip:
- Jeder Binärwert „-1” von $q(t)$ ⇒ Symbol $\rm L$ wird durch den ternären Amplitudenkoeffizienten $a_\nu = 0$ codiert.
- Der Binärwert „+1” von $q(t)$ ⇒ Symbol $\rm H$ wird alternierend mit $a_\nu = +1$ und$a_\nu = -1$ dargestellt.
Damit wird sichergestellt, dass im AMI–codierten Signal keine langen „+1”– bzw. „–1”–Sequenzen enthalten sind, was bei einem gleichsignalfreien Kanal zu Problemen führen würde.
Dagegen ist das Auftreten langer Nullfolgen durchaus möglich, bei denen über einen längeren Zeitraum keine Taktinformation übertragen wird.
Um dies zu vermeiden, wurden einige modifizierte AMI–Codes entwickelt, zum Beispiel der B6ZS–Code und der HDB3–Code:
- Beim HDB3–Code (grüne Kurve in obiger Grafik) werden vier aufeinanderfolgende Nullen im AMI–codierten Signal durch eine Teilsequenz ersetzt, die die AMI–Codierregel verletzt.
- Im grau hinterlegten Bereich ist dies die Folge „+ 0 0 +”, da das letzte Symbol vor der Ersetzung ein „–” war.
- Damit ist beim HDB3–Code die Anzahl aufeinanderfolgender Nullen auf 3 begrenzt, beim B6ZS–Code auf 5. Der Decoder erkennt diese Codeverletzung und ersetzt „+ 0 0 +” wieder durch „0 0 0 0”.
Leistungsdichtespektrum des AMI-Codes
Der Frequenzgang des linearen Codiernetzwerks eines Pseudoternärcodes lautet allgemein:
- $$H_{\rm C}(f) = {1}/{2} \cdot \left [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} \right] ={1}/{2} \cdot \left [1 - K \cdot {\rm e}^{-{\rm j}\hspace{0.03cm}\cdot \hspace{0.03cm} \alpha} \right] \hspace{0.05cm}.$$
Damit ergibt sich für das Leistungsdichtespektrum (LDS) der Amplitudenkoeffizienten ($K$ und $\alpha$ sind Abkürzungen):
- $$ {\it \Phi}_a(f) = | H_{\rm C}(f)|^2 = \frac{\left [1 - K \cos (\alpha) + {\rm j}\cdot K \sin (\alpha) \right ] \left [1 - K \cos (\alpha) - {\rm j}\cdot K \sin (\alpha) \right ] }{4} = \text{...} = {1}/{4} \cdot \left [2 - 2 \cdot K \cdot \cos (\alpha) \right ] $$
- $$ \Rightarrow \hspace{0.3cm}{\it \Phi}_a(f) = | H_{\rm C}(f)|^2 = {1}/{2} \cdot \left [1 - K_{\rm C} \cdot \cos (2\pi f N_{\rm C} T)\right ] \hspace{0.4cm}\bullet\!\!-\!\!\!-\!\!\!-\!\!\circ \hspace{0.4cm} \varphi_a(\lambda \cdot T)\hspace{0.05cm}.$$
Insbesondere erhält man für das Leistungsdichtespektrum (LDS)des AMI–Codes $(N_{\rm C} = K_{\rm C} = 1)$:
- $${\it \Phi}_a(f) = {1}/{2} \cdot \left [1 - \cos (2\pi f T)\right ] = \sin^2 (\pi f T)\hspace{0.05cm}.$$
Die Grafik zeigt
- das LDS ${\it \Phi}_a(f)$ der Amplitudenkoeffizienten (rote Kurve),
- das LDS ${\it \Phi}_s(f)$ des gesamten Sendesignals (blau), gültig für NRZ–Rechteckimpulse.
Man erkennt aus dieser Darstellung
- die Gleichsignalfreiheit des AMI–Codes, da ${\it \Phi}_a(f = 0) = {\it \Phi}_s(f = 0) = 0$ ist,
- die Leistung $P_{\rm S} = s_0^2/$ des AMI–codierten Sendesignals
(Integral über ${\it \Phi}_s(f)$ von $- \infty$ bis $+\infty$).
Hinweise:
- Das LDS von HDB3– und B6ZS–Code weicht von dem des AMI–Codes nur unwesentlich ab.
- Die hier behandelte Thematik können Sie sich mit dem Interaktionsmodul Signale, AKF und LDS der Pseudoternärcodes verdeutlichen.
Eigenschaften des Duobinärcodes
Der Duobinärcode ist durch die Codeparameter NC = 1 und KC = –1 festgelegt. Damit ergibt sich für das LDS der Amplitudenkoeffizienten bzw. für das LDS des Sendesignals:
\[{\it \Phi}_a(f) ={1}/{2} \cdot \left [1 + \cos (2\pi f T)\right ] = \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}.\]
Die Grafik zeigt das Leistungsdichtespektrum
- der Amplitudenkoeffizienten ⇒ Φa(f) als rote Kurve,
- des gesamten Sendsignals ⇒ Φs(f) als blaue Kurve.
In der Grafik am Seitenende sind die Signale q(t), b(t) und c(t) = s(t) skizziert.
Aus beiden Darstellungen geht hervor:
- Beim Duobinärcode können beliebig viele Symbole mit gleicher Polarität („+1” bzw. „–1”) direkt aufeinanderfolgen. Deshalb gilt Φa(f = 0) = 1 und Φs(f = 0) = s02 · T.
- Dagegen tritt hier die alternierende Folge ... , +1, –1, +1, –1, +1, ... nicht auf, die hinsichtlich Impulsinterferenzen besonders störend ist. Beim Duobinärcode gilt deshalb Φs(f = 1/(2T) = 0.
- Das Leistungsdichtespektrum Φs(f) des pseudoternären Duobinärcodes ist identisch mit dem LDS bei redundanzfreier Binärcodierung mit halber Rate (Symboldauer 2T).
Die Eigenschaften der Pseudoternärcodes und insbesondere des Duobinärcodes können Sie sich mit dem Interaktionsmodul Signale, AKF und LDS der Pseudoternärcodes verdeutlichen.
Fehlerwahrscheinlichkeit der Pseudoternärcodes
Die Grafik zeigt die Augendiagramme ohne Rauschen bei Verwendung von AMI–Code (links) und Duobinärcode (Mitte) im Vergleich zum 4B3T–Code (rechts). Es gelten die gleichen Voraussetzungen wie auf Seite 4 von Kapitel 2.3.
Alle Bilder gelten für eine Cosinus–Rolloff–Charakteristik des Gesamtfrequenzgangs (von Sender und Empfänger) mit dem Rolloff–Faktor r = 0.8. Die Ergebnisse sind wie folgt zu interpretieren:
- Beim 4B3T–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.
- Auf der oben zitierten Seite wurde die Symbolfehlerwahrscheinlichkeit des 4B3T–Codes für die Leistungskenngröße 10 · lg(s02·T/N0) = 13 dB (Spitzenwertbegrenzung!) wie folgt berechnet:
- \[{ \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}.\]
- 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} 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}.\]
- Bei Erfüllung der Nyquistbedingung unterscheiden sich der AMI– und der Duobinärcode trotz völlig unterschiedlicher Augendiagramme nicht hinsichtlich der Fehlerwahrscheinlichkeit.
- Wie aber in Kapitel 3.4 noch gezeigt werden wird, ist das Fehlerverhalten der beiden Codes immer dann extrem unterschiedlich, wenn Impulsinterferenzen eine Rolle spielen.
- Man erkennt in der linken Grafik, dass beim AMI–Code die horizontalen Linien bei +s0 bzw. –s0 fehlen (Gleichsignalfreiheit), während beim Duobinärcode (mittlere Grafik) keine Übergänge von +s0 auf –s0 (und umgekehrt) möglich sind.
Aufgaben zum Kapitel
Zusatzaufgaben:2.7 Pseudoternärcodes – LDS
A2.8 Vergleich Binär - AMI - 4B3T