-
Ccdier- und Decodiervorfahren sowie Anordnung zur Korrektur
-
und/oder Erkennung von Ubertragungsfehlern bei digitaler Datenübertragung
Die Erfindung befaßt sich mit einem Codier- und Decodierverfahren sowie einer Anordnung
zur Korrektur bzw. Erkennung von Übertragungsfehlern mit Hilfe der redundanten Codierung.
-
Zur Korrektur von Übertragungsfehlern bei digitaler Datenübertragung
sind zahlreiche Codier- und Decodieranordnungen bekannt geworden, die auf Redundanzcodierverfahren
wie rekurrente und Blockcode-Verfahren basieren: (i) W. W. Peterson, E.J. Weldon,
Jr.: Error-correcting codes, second edition, MIT Press, Cambridge, Masts.
-
1972 (2) R.G. Gallager: Information theory and reliable comunication,
John Wiley and Sons, Inc., N.Y. 1968 (3) E.R. Berlekamp: Algebraic coding theory,
McGraw-Hill, N.Y. 1968
(4) R.W. Lucky, J. Salz, E.J. -Weldon, Jr.:
Principles of data communication, McGraw-Hill, N.Y. 1968 (5) Deutsche Patentanmeldung
P 22 51 677.4 v. 18.9.73 (6) G.D. Forney, Jr. : Concatenated codes, MIT Press, Cambridge,
Mass. 1967 (7) K. Brayer: The improvement of digital hf communication trough coding:
II-Tandem interleaved cyclic coding, IEEE, vol. COM-16, No. 6, S. 779- 786.
-
Man unterscheidet zwischen Zufallsfehlern und Fehlerbündeln. Zufallsfehler
sind statistisch voneinander unabhängig, wogegen die Fehler innerhalb eines Bündels
voneinander abhängig sind. Zur Korrektur bzw. Erkennung von beiden Fehlerarten gibt
es mehrere praktikable Korrekturalgorithmen. Ein typischer Übertragungskanal, der
Zufallsfehler liefert, ist z.B. die Funkverbindung zu Weltraumsonden, hier werden
Übertragungsfehler hauptsächlich von weißem Gauß'schem Rauschen verursacht. Als
Beispiel für einen bündelgestörten Kanal kann eine Telefonwählverbindung genannt
werden. Es gibt jedoch sehr wenig reale Übertragungskanäle, die nur Jeweils eine
dieser Fehlerarten aufweisen. Die meisten realen Übertragungskanäle weisen sogenannte
gemischte Störstrukturen auf. Auch hierfür sind Codier- und Korrekturverfahren bekannt
wie z.B.
-
einstufige und adaptive Verfahren (1, 2), die zwar die Korrektur beider
Fehlerarten erlauben, Jedoch nur, wenn
beide nicht gleichzeitig
auftreten. Zwei- und mehrstufige Verfahren erlauben die gleichzeitige Korrektur
von beiden Fehlerarten, wobei üblicherweise eine äußere Stufe zur Korrektur von
Fehlerbündeln und eine innere Stufe zur Korrektur von Zufallsfehlern ausgelegt ist
(1, 5, 7). Für die äußeren Stufen kommen im Prinzip zwei Arten der Codierungen in
Frage: 1. Symbolcodes, z.B. Reed-Solomon-Codes, wobei die Codeelemente Blöcke sind,
deren Länge mit der Länge des Informationsteiles des inneren Codes übereinstimmt
(6).
-
2. Normale Binärcodes, z.B. BCH-Codes, die sich als günstig zur Korrektur
von Fehlerbündeln erweisen (5).
-
In beiden Fällen kann die äußere Stufe durch die innere dadurch unterstützt
werden, daß an die äußere Stufe Informationen über Ort und Länge der Fehlerbündel
gegeben werden. Im Extremfall ist es dann dadurch möglich, daß mit Hilfe der äußeren
Stufe Fehlerbündel bis zur Redundanzlänge korrigiert werden können, was etwa eine
Verdoppelung der sonst korrigierbaren Bündellänge bedeutet.
-
Alle bekannten zwei oder mehrstufigen Codier- bzw. Decodieranordnungen
haben jedoch den Nachteil, daß sie schaltungstechnisch sehr aufwendig und damit
sehr teuer sind.
Die Erfindung hat sich deshalb zur Aufgabe gestellt,
eine mehrstufige Codier- und Decodieranordnung anzugeben, die gleichzeitig Zufallsfehler
und/oder Fchlerbündol korrigieren kann, damit also für den Einsatz auf realen Übertragungskanälen
geeignet ist, wobei unter guter Ausnutzung der Coderedundanz und bei sehr hohen
Fehlerreduktionen eine Realisierung mit sehr geringem Aufwand möglich ist.
-
Die Lösung erfolgt mit den in den Patentansprüchen angegebenen Mitteln.
-
Die Erfindung sei nun an einer zweistufigen Ausführungsform, die mit
Blockcodierung arbeitet, beschrieben.
-
Die Figur 1 zeigt eine solche zweistufige Codieranordnung, die Figur
2 die dazugehörige Decodieranordnung.
-
Die Figur 3 nun veranschaulicht die Wirkungsweise der zweistufigen
Codieranordnung nach Figur 1 in einem Zeitablauf.
-
Zunächst sei vorausgeschickt, daß ein zyklischer BCH-Code mit der
Mindest-Hammingdistanz d, der Bündelkorrekturfähigkeit b, der Informationszeichenanzahl
k und der Codewortlänge n verwendet wird. Dieser Code gestattet die Korrektur
von
bis zu
(entier-Funktion) Zufallsfehlern odor Fehlerbündeln bis zur Länge b pro Block.
-
Das Wesentliche der Erfindung liegt nun darin, dan die äussere Stufe
den gleichen Code verwendet wie die innere und daß der äußere Code um einen Faktor
s, der vorzugsweise don Wert k hat, gespreizt werden kann. Die relative Ink formationsrate
beträgt pro Stufe Ri = ñ so daß für die relative Gesamtrate einer zweistufigen Anordnung
gilt R = Rj2 Anhand von Figur 1 sei der Codiorvorgang erläutert. Die Quellendaten,
die kontinuierlich mit der Geschwindigkeit vQ am Eingang E ankommen mögen, werden
zunächst in einem ersten Puffer KP1 abgespeichert. Ist ein ganzer Block mit k Informationsbits
eingelaufen, so wird dieser über den Ausgang KP1" des Puffers gP1 und einen Umschalter
KSl in den Codor K geholt, zu einem Codeblock mit n Bits codiert und anschließend
über einen zweiten Umschalter KS2 in einem zweiten Puffer KP2, der vorzugsweise
ein Matrixspeicher ist, zeilenweise abgelegt. Auf diese Weise werden k Codeblöcke
im Puffer KP2 abgelegt, der damit gefüllt ist. Diese erste Betriebsstellung wird
nun nach der Erst füllung des zweiten Puffers KP2 abwechselnd von einer zweiten
Betriebsstellung unterbrochen, wobei die
beiden Umschalter KS1
und KS2 eo umgelegt wordon, daß der Ausgang KP2" des zweiten Puffers KP2 mit dem
Eingang K' des Coders K und sein Ausgang K" mit dem Eingang KP3' eines dritten Puffers
KP3 verbunden ist. In dieser zweiten Betriebsstellung werden k Zeichen spaltenweise
aus dem zweiten Puffer KP2 in den Coder K geholt, womit also eine Spreizung um den
Faktor k erfolgt, anschließend zu Codeblöcken mit n Bit codiert und in den dritten
Puffer KP3 eingespeichert. Danach wird wieder in die erste Betriebsstellung zurückgeschaltet,
ein neuer Block mit k Informationszeichen aus dem ersten Puffer KP1 in den Coder
geholt, dort zu einem Codeblock zu n Zeichen codiert und in die erste freigewordene
Spalte des zweiten Puffers KP2 abgelegt. Gleichzeitig werden die Codeblöcke aus
dem dritten Puffer KP3 kontinuierlich mit der Geschwindigkeit vK = RQ über den Ausgang
KP3" zur Über-R tragung über den Kanal ausgegeben. Anschließend wird wieder in die
zweite Betriebsstellung umgeschaltet, in der die nächste Spalte mit k Zeichen aus
dem zweiten Puffer KP2 in den Coder K ausgelesen, dort wiederum zu einem Codeblock
der Länge n codiert und in den dritten Puffer KP3 abgespeichert wird. Der Co der
arbeitet also im Zeitmultiplex für beide Codierstufen und muß deshalb mit der Geschwindigkeit
vC . 2 . vK arbeiten. Der Puffer KP3 dient allein zur Geschwindigkeitsanpassung
an
den Kanal und muß im Prinzip nur einen Block mit n Bit aufnehmen
können. Der zweite Puffer KP2 erfüllt zwei Funktionen gleichzeitig: er bewirkt die
Spreizung und dient dem im Zeitmultiplex arbeitenden Coder als Zwischenspeicher.
Der erste Puffer KP1 dicnt ebenfalls nur zur Geschwindigkeitsanpassung, er kann
z.B. entfallen, wenn die Quelle einen Start-Stop-Betrieb mit der Geschwindigkeit
2 vK erlaubt.
-
Die Codespreizung wird vorzugsweise mit einem n x n -Matrixspeicher
mit wahlfreiem Zugriff durchgeführt. Die ersten k Codeblöcke werden in die ersten
Zeilen eingegeben. Dio Ausgabe erfolgt nun spaltenweise, indom n Blöcke zu k Bit
ausgelesen werden. Die nächsten k Codeblöcke werden nun, wie weiter oben schon ausgeführt,
in die ersten sukzessive freiwerdenden Spalten eingegeben. Die Ausgabe erfolgt dementsprechend
dann zeilenweise in n Blöcken zu k Bit. Es werden also jeweils k Codeblöcke einmal
zeilen- und einmal spaltenweise abwechselnd eingegeben, und bei der Ausgabe werden
abwechselnd n Blöcke einmal spalten- und einmal zeilenweise ausgegeben. Diese alternierende
Betriebsweise hat für relative Raten von R > 0,5 gegenüber dem Wechselspeicherbetrieb
den Vorteil des geringeren Speicherbedarfs bei relativ einfacher Realisierung. Der
für die Adressierung der Ein- und Ausgabe
erforderliche umschaltbaro
Zählor besteht vorzugsweise aus zwei gloichen Tcilzählcrn, einem Spalten- und einem
Zeilenzühler, deren Zählmodul wahlweise auf den Spreizungsfaktor s, vorzugsweise
k, eingestellt werden kann. Bei zeilenweiser Eingabe wird der Zeilenzähler dem Spaltenzahler
nachgeschaltet, der modulo n zählt, während der Zeilonznhler modulo s zählt. Bei
spaltemfeiser Eingabe werden dio Rcihenfolge und dor Zählmodul von Zeilen- und Spaltenzahler
entsprechend vcrtauscht. Entsprechend ist auch der Ausgabezähler aufgebaut, wobei
der Unterschied lediglich darin besteht, daß der jeweilige erste Teilzähler modulo
s und der jeweilige zweite modulo n zählt.
-
Die Decodierung erfolgt in umgekehrter Reihenfolge wie die Codierung.
Die Figur 2 zeigt eino entsprechende Decoder anordnung. Nach erfolgter Synchronisation
werden die empfangenen Blöcke der Länge n kontinuierlich mit der Kanalgeschwindigkeit
vK über den Eingang DP1' in den Puffer DPl eingegeben. Über den Ausgang DP1" und
einen Umschalter DS1 gelangt jeweils ein Block in den Decoder DK, der ihn entsprechend
der inneren Codierung korrigiert und das Decodierprodukt mit k Bits über den Ausgang
DK", einen Umschalter DS2 und den Eingang DP2' in einem Puffer DP2 ablegt. Nach
der Eingabe der ersten s Blöcke in DP2 wird abwechselnd aus DP2 bzw. DP1 jeweils
ein Block
geholt, durch den Decoder entsprechend der äußeren bzw.
-
inneren Codierung korrigiert und abwechselnd in die Puffer DP3 bzw.
DP2 abgelegt. Aus dem Puffer DP3 wird die zweistufig korrigierte Information dann
kontinuierlich mit der Geschwindigkeit vS = vQ . vX . R an die Senke ausgegeben.
-
In der Figur 3 ist die Wirkungsweise der Codioranordnung nach Figur
1 durch ein Zeitdiagramm näher erklärt1 in dem der zeitliche Ablauf der Bit ströme
an den Ein- und Ausgängen der drei Puffer KP1 bis KP3 dargestellt ist.
-
In der obersten Zeile erkennt man die den Eingang E mit dor Geschwindigkeit
vQ passierende Information, die in Blöcken 1, 2, 3 usw. zu je k Informationszeichen
gegliedert ist. In der zweiten Zeile ist die den Ausgang KP1" mit der Geschwindigkeit
vC verlassende Information dargestellt. In der dritten Zeile ist die den Eingang
KP2' des zweiten Puffers KP2 passierende, codierte Information dargestellt, wobei
eine Blocklänge von n = 2k zugrunde gelegt ist. Die zu jedem Informationsblock durch
den Codierer zugegebene Coderedundanz ist durch ein waagerecht schraffiertes, numeriertes
Kästchen dargestellt, das an das den Informationsblock darstellende nicht schraffierte
Kästchen angehangt ist. In der vierten Zeile sind die den Puffer KP2 an seinem Ausgang
KP2"
mit der Geschwindigkeit vC verlassenden Blöcke dargestellt,
wobei diese Blöcke, die ja infolge spaltenweisem Auslosen und damit erfolgter Spreizung
nicht mehr mit den vorherigen Blöcken identisch sind, durch nichtnumerierte Ist
chen dargestellt sind. Im Beispiel ist ein Puffer KP2 mit einer Matrix von n2 =
4 x 4 wiedergegeben. Domnach erfolgt ein erstes spaltenweises Auslesen aus dem Puffer
KP2, wenn k . 2 Zeilen eingeschrieben worden sind.
-
In der fünften Zeile sieht man diese Blöcke mit der Informationslänge
k auf die volle Codelänge n verlängert dargestellt beim Eingang KP3' in den dritten
Speicher Ich3.
-
In der letzten Zeile endlich wird das Verlassen der nunmchr zweistufig
codierten Information am Ausgang KP3" des dritten Puffers KP3 dargestellt, wobei
der Kanal mit der Geschwindigkeit vK t 4 vQ beaufschlagt wird.
-
Die Vorteile der Erfindung liegen in dor Korrcturmöglichkeit von Zufallsfehlern
und/oder Fehlerbündeln, wobei die innere Stufe die Korrekturart der äuneren Codierungsstufe
je nach Anforderung, die sich aus den Störungseigenschaften des Übertragungskanals
ergibt, steuern kann. Ein weiterer Vorteil ist die gute Ausnutzung der Coderedundanz,
wobei sehr hohe Fehlerreduktionen bei geringem Aufwand ermöglicht werden. Die Realisierung
der Anordnung ist dadurch aufwandsarm, daß der aufwendige Decoder der Korrektureinrichtung
nur
einmalig erforderlich ist und von beiden Stufen bonutzt wird, während Pufferspeicher
auch mit hohem Integrationsgrad billig erhältlich sind. Weiterhin sind dio Puffer
von Coder und Decoder bis auf die zu vertauschende Ein- bzw. Ausgabe gleich: es
entsprechen sich KP1 und DP3, KP2 und DP2 sowie KP3 und DPl.
-
Die beschriebene zweistufige Codier- und Decodieranordnung hat nun
die Möglichkeiten, mit verschiedenen Korrekturstrategien zu arbeiten. Es seien im
folgenden einige davon genannt.
-
1. Beide Stufen korrigieren Zufallsfehler.
-
2. Die innere Stufe korrigiert Zufallsfehler und die äußerte' Fehlerbündel.
-
3. Beide Stufen korrigieren Fehlerbündel, die innere kurze und die
äußere lange Fehlerbündel. Bei Bedarf kann auch die innere Stufe mit Spreizung arbeiten.
-
4. Wie die Strategie 1 bis 3, jedoch mit dem Zusatz, daß die innere
Stufe weitere Fehlererkennungseigenschaften aufweist, wie Erkennung und Anzeige
von nicht oder falsch decodierten Blöcken. Dies kann mit Hilfe der Codierung und/oder
durch Einsatz eines sogenannten Stördetektors geschehen. Besonders
bei
Bündelkorrektur läßt sich dadurch mit wenig Aufwand eino wesentliche Steigerung
der korrigierbaren Bündellänge erreichen. Im Grenzfall sind dann Bündel bis zur
Länge der Redundanz, nämlich n - k Bit, sicher korrigierbar.
-
Mit Hilfe der Codierung ist Fehlererkennung einmal dadurch möglich,
daß man die Coderedundanz nicht voll für die Korrektur ausnutzt, indem weniger als
t Fehler pro Block korrigiert werden. Wahlweise kann auch aus der Häufigkeit einer
Korrektur von t Fehlern auf das Vorhandensein von Fehlerbündeln geschlossen werden.
-
Bei Einsatz eines Stördetektors, durch den die analogen Empfangssignale
auf unzulässige Abweichungen von ihren Sollwerten überwacht und damit Hinweise auf
mögliche Übertragungsfehler gewonnen werden, können im Gegensatz zur Codierung Fehler
vorgetäuscht werden. Dies kann jedoch dadurch vermindert werden, daß Entscheidungsschwol
len höhergelegt werden, da die Anzeigesicherheit im allgemeinen mit der Intensität
der Störung steigt. Insbesondere Bündelstörungen können sehr sicher erkannt werden.
-
Die als zweistufiges Ausführungsbeispiel beschriebene
Anordnung
zur Fehlerkorrektur bzw. -erkennung läßt sich prinzipiell auch mehrstufig einsetzen.
Wesentliche Einschränkungon ergeben sich dabei nur aus der Goschwindigkeitsüberhöhung
und der steigenden Durchlaufzeit; boide hängen linear von der Stufenzahl ab. Vorteilhaft
ist, dan bei mehreren Stufen die Spreizungsfaktoren zwischen den einzelnen Stufen
sich im Prinzip beliebig variieren lassen. Boi reinen Zufallsfehlern ist für die
Sproizung der Wert k am günstigsten. Bci Fehlerbündeln wird dor Spreizungswert von
der maximal korrigierbaren Bündollänge bestimmt. Der Spreizungsfaktor geht linear
in Durchlaufzeit, Speicherbedarf und korrigierbare Bündellänge jeder Stufe ein.
-
Letztlich sei noch erwähnt, daß die erfindungsgemäße Anordnung sich
vorteilhaft auch bei rokurrenter Codiorung eignet. Bei rekurrenter Codierung ergibt
sich der günstigste Spreizungsfaktor aus der Länge der Fehlerfortpflanzung beim
Decoder.
-
L e e r s e i t e