-
"Verfahren zur Korrektur von einfachen und überlappenden Fehlerbündeln"
Zusatz zu Patent . ... ... (Patentanmeldung P 20 37 877.2-53) Die Erfindung bezieht
sich auf ein. Verfahren zur Korrektur von einfachen oder gleichzeitig am Anfang
und Ende eines Datenblocks auftretenden Fehlerbündeln der Länge b#bmax# ent (m/2)
bei der Ubertragung binärcodierter Nachrichten unter Verwendung eines zyklischen
Codes, der aus n-stelligen Wörtern mit k Informationszeichen und m Redundanzzeichen
gebildet wird und bei dem sendeseitig die Redundanzzaichen durch Multiplikation
des die Informationszeichen repräsentierenden Vektors [Xi]mit einer Codiermatrix
hervorgehen und empfangsseitig zur Fehlererkennung jedes n-stellige empfangene Wort
mit einer Prüfmatrix [H]multipliziert wird,
die die um die Einheitsmatrix
fi] ergänzte Codiermatrix fA] ist und bei dem entsprechend der Hauptanmeldung P
20 37 877.2-53 ein Code verwendet wird,bei dessen Prüfmatrix [H] bestimmte Untermatrizen
nur linear unabhängige Spaltenvektoren enthalten und bei dem alle Stellen des empfangenen
Wortes so lange insbesondere zyklisch verschoben werden, bis eine eventuell auftretende
Folge von Nullen der Länge (jm-bmax) im Syndromregister enthalten ist, und bei dem
anschließend alle Stellen des empfangenen Wortes, die mit einer Syndromstelle der
Wertigkeit 1 korrespondieren, in ihrer Wertigkeit verändert werden Gemäß der Hauptanmeldung
wird die Aufgabe gelöst, ein Verfahren anzugeben, das es gestattet, die Größe bmax
zu bestimmen und mit geringem Materialaufwand und wenig Korrekturschritten einfache
oder auch gleichzeitig am Anfang und Ende eines Datenblocks auftretende Fehlerbündel
der Uge b#bmax#ent(m/2) mit absoluter Genauigkeit zu korrigieren.
-
Wie bereits in der Hauptanmeldung beschrieben, werden bei der Ubeftragung
von digitalen Nachrichten über Kanäle, die
sog. Fehlerbündel aufweisen,
vorzugsweise zyklische Blockcodes verwendet, da diese Codes in besonders einfacher
Weise Schaltungstechnisch verwirklicht werden können. Figur 1 zeigt schematisch
den Aufbau eines Datenblockes aus n Zeichen, die sich aus k Informationszeichen
und m Redundanzzeichen zusammensetzen.
-
Da die Einteilung der Kanaldaten in Blöcke, die dem jeweils verwendeten
Code entsprechen, willkürlich ist und vorzugsweise der Statistik der auftretenden
Fehlerbündel angepaßt wird, kann es vorkommen, daß ein Datenblock nicht nur von
einem, sondern von mehreren Fehlerbündeln gestört wird, die über das betreffende
Codewort-verteilt sind. übliche Codes und dazugehörige Decodierschaltungen beherrschen
diesen allgemeinen Fail von Störungen nicht und verwerfen derartige Blöcke als unkorrigierbar,
sofern eine solche Störung erkennt wurde.
-
Da derartige Störungen statistisch auftreten, kann es vorkommen, daß
manche Godeworte nur am Anfang und Ende Fehler enthalten, in dem zwischenliegenden
Bereich jedoch fehlerfrei sind.
-
Figur 2 zeigt schematisch den in Bl(jcke i-l, i, i+1, i+2, unterteilten
Datenfluß in einem Übertragungskanal. Die schraffiert gezeigten Störungen verfälschen
dabei die Codeworte 1-1, i und i+1. Das Codewort i ist dabei von zwei Fehlerbündeln
betroffen. Obwohl nun in diesen Codeworten physikalisch gesehen zwei Fehlerbündel
enthalten sind, können diese im Fall der Verwendung zyklischer Codes als ein"überlappendes11
Bündel gedeutet werden, was solange richtig korrigiert werden kann, solange die
Summe der beiden Teillängen die vom Code her garantierte korrigierbare Fehlerbündellänge
bmax# (b1 + b2) ist. Obwohl dieser Tatbestand schon aus W.W. Peterson: Error-Correcting
Codes, MIT Press 1961 bekannt tst, so beschranken sich doch alle bisher bekannten
Deoodierverfahren und Schaltungen auf die Korrektur ausschließlich nicht Uberlappender
BUndel.
-
Der Erfindung liegt die Aufgabe zugrunde, das in der Hauptanmeldung
genannte Verfahren weiter auszubilden Und zu präzisieren sowie durch Anwendungsbeispiele
zu erläutern.
-
die im Die Aufgabe wird durch Anspruch 1 genannte Erfindung gelöst.
-
Da das Informationsregister nur zeitweilig getaktet wird, können m
Stellen des Informationsregisters eingespart werden.
-
Um den SchaltungsaufWand für die Steuerung des Decoders möglichst
niedrig zu halten, wurde der Decodiervorgang so organisiert, daß sowohl im. Störungsfalle
als auch im Falle fehlerfreier Übertragung immer das gleiche Programm mit einem
Minimum an Verzweigungen abläuft; damit ist erklärt warum die Datenausgabe bei fehlerfreier
Übertragung nicht sofort, sondern erst nach Ablauf des Decodiervorganges erfolgt.
-
Die Weiterbildung gemäß Anspruch 2 hat den Vorteil, daß vor Ausgabe
der Information eine Entscheidung getroffen werden kann, was im Falle eines nichtkorrigierbaren
Fehlers mit der Information geschehen soll. Der Empfang des Wortes und die gesamte
Decodierung erfordern (2n+k) Takte.
-
In Fällen, in denen eine Kennzeichnung eines unkorrigierbaren Empfangawortes
erst nach dessen Ausgabe statthaft ist, stellt Anspruch 3 eine zeitsparende Variante
zur Lösung der Aufgabe dar. In diesem Falle sind zum Empfang und Korrektur eines
Wortes bei einer fehlerhaften Übertragung nur 2n Takte erforderlich.
-
Die Erfindung wird nun anhand von Ausführungsbeispielen näher erläutert.
Es zeigen: Figur 3 das Blockschaltbild eines Decoders zur aufeinanderfolgenden Korrektur
von normalen und "überlappenden" Fehlerbündeln Figur 4 das Blockschaltbild eines
Decoders zur aufeinanderfolgenden Korrektur von "überlappenden" und normalen Fehlerbündeln.
-
Das in Figur 3 gezeigte Blockschaltbild besteht aus an sich bekannten
3austeinen, die jedoch in einer zur Lösung der gestellten Auf gabe vorteilhaften
Weise zusammenwirken.
-
Die von Eingang E eintreffenden Codewörter gelangen Je nach Stellung
des Schalters S1 direkt oder über einen Pufferspeicher 4 zum eigentlichen Decoder.
Dieser besteht im wesentlichen aus einem k-stelligen Informationsregister 1, das
über einen mod.2-Addierer 7 an seinem Ausgang und einem Umschalter S2 an seinem
Eingang wahlweise über die Leitung 8 zur zyklischen Verschiebung der Information
im Speicher 1 rückgekoppelt werden kann und einem m-stelligen Syndromregister 2,
an dessen Rückkoppelungsleitung ein Zahler 3 angeschlossen ist,
der
einen Umschalter S3 steuert. Der Umschalter S3 ist so angeschlossen, daß in einer
Stellung das Syndromregister das Syndrom berechnet, in der anderen Stellung der
Inhalt des Syndromregisters zum mod.2-Addierer 7 geleitet wird.
-
Am Ausgang des mod.2-Addierers 7 liegt der Schalter S4, der die Information
nach Verarbeitung an den Ausgang A weiterleitet.
-
Der Eingang des Syndromregisters besteht aus einem weiteren mod.2-Addierer
6, dessen erster Eingang am Ausgang des -Umschalters S1 angeschlossen ist und dessen
zweiter Eingang vom Ausgang des Syndromregisters gespeist wird. Der Ausgang des
mod.2-Addierers 6 führt über den Umschalter 53 entweder zur Rückkoppelungsleitung
des Syndromregisters oder zum mod.2-Addierer 7.
-
Die Funktionsweise des Codierers ist folgende: Vom Kanal her gelangen
über den Eingang E Datenblöcke eines unter Umständen durch die Übertragung gestörten
zyklischen Codes über die TJmschaltér S1 und 52 in den Decoder. Dabei laufen die
zuerst eintreffenden Informationsbits des Empfangswortes gleichzeitig in das Schieberegister
1 und in
das Syndromregister 2 ein. Die Schalter S1, S2, 3 und 54
stehen dabei in Stellung 0. Das Syndromregister ist in einer für den betreffenden
Code charakteristischen Weise rückgekoppelt und erzeugt bei Eingabe eines gestört
empfangegen Codewortes eine Merkmalsfolge von Ziffern, genannt Syndrom, die Rückschlüsse
auf die im Codewort aufgetretenen Fehler gestattet.
-
Nachdem die Informationsbits alle eingetroffen sind, wird der Taktinpuls
des Informationsregisters 1 a schaltet und der Schalter S2 in Stellung 1 gebracht.
Vom Kanal laufen nunmehr noch die Redundanzbits ein, di. jedoch nur zum Register
2 geleitet werden..
-
Ist das ganze Empfangswort im Syndromregister eingelaufen, beginnt
der eigentliche Decodiervorgang. Schalter S1 wird in Stellung 2 geschaltet und nachfolgende
Kanalbits müssen zwischenzeitig von einem Pufferspeicher 4 auf genommen werden.
-
Im Syndromregister 2 hat sich eine Merkmalsfolge tng Ziffern ergeben,
die charakteristisch für die aufgetretenen Fehler ist. An die Rückkoppelungsleitung
des Registers 2 ist ein Zähler 3 angeschlossen, der die Anzahl * aufeinanderfolgenden
Nullen zählt und der durch jede neu eintreffende Ziffer 1 gelöscht wird. Ferner
ist das Register
so geschaltet, daß es direkt mit den zuerst eingelaufenen
Informationsstellen korrespondiert, d.h., jedes Syndrom ist einem Empfangswort zugeordnet
das mit pm vormultipliziert ist (W.W. Peterson: Error Correcting Codes, MIT Press
1961 Seite 150 u. 193).
-
Der Zählerstand wird nun erstmals abgefragt. Zeigt er eine Nullkette
der Länge (m-bmax) oder gröBer an, so bedeutet dies, daß das gesuchte Fehlerbündel
bereits gefunden ist, und der Zähler schaltet den Schalter S3 in Stellung 1.
-
Anschließend wird während bmax aufeinanderfolgenden Takten, wahrend
denen auch Register 1 wieder getaktet wird, das Fehlermuster den Informationszeichen
mod.2 überlagert. Die korrigierte Information erscheint dabei am Ausgang des mod.2-Addierers
7 und wird. über die Rückkoppelleitung 8 wieder in das Informationsregister eingespeist.
-
Normalerweise wird das Fehlerbündel nicht sofort gefunden sein. Dann
werden das Informationsregister und das Syndromregister im gleichen Takt weitergeschaltet.
Dabei kreisen die Informationsbits über die Leitung 8 in ihrem Register 1 derart,
daß die Phasenlage zum Syndromregister erhalten bleibt. Nach jedem Takt wird der
Zähler erneut abgefragt,
bis der Zähler eine Nullenkette der Länge
(m-bmax) anzeigt.
-
Ist diese Bedingung erfüllt, schaltet der Zähler den Schalter S3 auf
Stellung 1 und der Inhalt des Syndromregisters wird in den folgenden Takten mod.2
zum Inhalt des Registers 1 zur Korrektur addiert. Nachdem die Information einmal
in ihrem Register gekreist ist, wird Schalter 84 geschlossen und die korrigierte
Information an Ausgang A Dieses Verfahren erlaubt auch die Korrektur von überlappenden
Bündeln, deren Anfang im Redundanzteil und der e demzufolge im Informationsteil
eines Wortes liegt. Der Zähler kann daher während der ersten k Takte des Decodiervorgangs
keine Nullkette der Länge (m-bmax) feststellen. Nachdem diese k Takte jedoch vorüber
sind, ist die Information genau einmal in ihrem Register gekreist und das Register
1 wird während der nun folgenden m Takte angehalten. Das Syndromregister wird nach
wie vor weitergetaktet und findet während dieser m Takte die entscheidende Nullkette
der Mindestlänge (m-bmax).
-
Der Schalter S3 wird dann in Stellung 1 geschaltet - und während der
restlichen Takte verläßt der Anfang des Fehlermusters das Syndromregister.
-
Nachdem die- m Takte vorUber sind, werden Schalter S4 in Stellung
1 geschaltet und die beiden Register 1 und 2 zur Datenausgabe noch k-mal gemeinsam
getaktet-, wobei der Teil des Uberlappenden FehlerbUndels, der die Information gestört
hat, jetzt durch mod.2 Überlagerung korrigiert wird. Nach vollendeter Datenausgabe
werden die Schalter S2, S) und 54, in Stellung 0 und Schalter S1 in Stellung 1 gebracht.
Sodann wird die im Pufferspeicher 4 zwischenzeitig angesammelte Datenmenge mittels
eines schnellen Arbeitstaktes in den Decoder übernommen und Schalter S1 sodann in
Stellung Q geschaltet, um weitere Daten vom Kanal aufnehmen zu können.
-
Wenn n Takte-nach Beginn des Decodiervorgangs der Zähler 3 noch kein
Fehlerbündel gefunden hata so liegt ein erkennbarer, aber unkorrigierbarer Fehler
vor und die Datenausgabe wird unterbrochen bzw. als unkorrigierbar gekennzeichnet.
Das Kriterium zur "unkorrigierbar" ergibt sich aus, der UND- Bedingung, daß 1. seib
Beginn des Decodiervorganges n Takte vergangen sind und 2. der Zähler 3 noch keine
entscheidende Nullkette gefunden hat.
-
Der Decodiervorgang und die Datenausgabe zusammen benötigen somit
(n+k) Takte.
-
In einer u.U. vorteilhaften Variante des Verfahrens kann die Anzahl
der benötigten Takte für den Decodlerforgang und die Datenausgabe auf n verringert
werden. Ein diesbezügliches Blockschaltbild ist in Figur 4 dargestellt.
-
Die Arbeitsweise des Decoders nach Figur 4 unterscheidet sich prinzipiell
dadurch von der nach Figur 3, daß mit dem ersten Ausführungsbeispiel zuerst nach
einem normalen Fehlerbündel gesucht wird und falls ein solches nicht gefunden wurde,
anschließend noch geprüft wird, ob ein ""überlappendes" Fehlerbündel vorliegt. In
dem zweiten Ansführungsbeispiel nach Figur 4 werden zuerst "überlappende" und dann
normale Fehlerbündel korrigiert. Das hat einerseits den Vorteil, daß k Takte eingespart
werden, andererseits aber auch den Nachteil, daß der Decoder erst nach Ausgabe der
Information melden kann, ob ein korrigierbarer oder unkorrigierbarer Datenblock
vorgelegen hat.
-
Die Schaltung gemäß Figur 4 weist ein Syndromregister 21 auf ohne
Vormultiplizikation mit Xm und ein Informationsregister 1, das kcine Rückkoppelungsleitung
besitzt. Dadurch entfällt der die Rückkoppelung einschaltende Umschalter S2, und
der mod.2-Addierer 6 des Syndromregister 21 ist direkt mit dem Eingang des Informationsregisters
1 verbunden.
-
Die Arbeitsweise der Anordnung ist folgende: Die Kanaldaten gelangen
über den Eingang E und den Schalter 51 gleichzeitig in das Informationsregister
1 und das Syndromregister 21. Die Schalter S1, 53, S4 sind dabei in Stellung 0.
Der Zähler 3, der genau wie der Zähler 3 von Fig. 3 arbeitet, liegt ebenso an. der
Rückkoppelungsleitung des Syndromregisters und ortet die charakteristische Nullfolge.
-
Wenn die Information vom Kanal her voll in den Decoder eingelaufen
ist, wird das Informationsregister angehalten und nur das Syndromregister arbeitet
weiter. -Nachdem das ganze Wort eingelaufen ist, wird Schalter S1 in Stellung 2
geschaltet und der Zählerstand von Zähler 3 erstmals abgefragt.
-
- Weitere Kanaldaten werden während des Decodiervorgangs vom Pufferspeicher
4 aufgenommen. - Zeigt der Zähler jetzt schon eine Nullkette der Länge (m-bmax)
an, so bedeutet dies, daß entweder das Empfangswort fehlerfrei ist oder ein Fehlerbündel
nur in der Redundanz enthält. In jedem Fall wird bei Auffinden der charakteristischen
Nullfolge der Schalter S3 in Stellung 1 geschaltet.
-
Während der nun folgenden m Takte arbeitet nur das Syndromregister.
Steht hierbei der Schalter 53 in Stellung 1, so wird nun das Muster eines eventuell
in der Redundanz befindlichen Fehlerbündels aus dem Register 21 herausgeschoben.
Findet der Zähler 3 jedoch erst während dieser Takte die gesuchte Nullfdlge, so
liegt ein überlappendes Bündel vor. Wenn die m Takte vorüber sind, werden die Register
1 und 21 noch k mal gemeinsam getaktet, wobei gleichzeitig die Datenausgabe über
den dabei geschlossenen Schalter S4 erfolgt. Liegt ein korrigierbares Bündel vor,
so findet der Zähler 3 irgendwann einmal die entscheidende Nullfolge und die Information
wird durch mod.2 Überlagerung des Syndromregister-Inhaltes während der Ausgabe im
mod.2-Addierer 7 korrigiert.
-
Hat der Zähler 3 jedoch am Ende kein korrigierbares Fehlerbündel gefunden,
so ist die Information bereits ausgegeben und die "Unkorrigierbar "-Quittung wird
hinterher geliefert.
-
In beiden Schaltungen wird zur Auffindung der Nullkette im Syndromregister
åeweils nur ein Zähler verwendet. Dies ist unter Berücksichtigung der derzeitig
erhältlichen integrierten
Schaltkreise von Vorteil, da das Syndromregister
dann vorteilhaft aus relativ hoch integrierten MOS-Schieberegistern aufgebaut werden
kann, deren einzelne Stufen dann nicht mehr zugänglich sind - vorausgesetzt, daß
ein gespreizter zyklischer Code verwendet wird, der nur eine geringe Zahl von mo.d.2-Rückkopplungen
besitzt.
-
Anstelle des Zählers kann jedoch auch ein einfaches UND-Gatter mit
(m-bmax) Eingängen verwendet werden, das feststellt, ob die letzten (m-bmax) ellen
des Syndromregisters Nullen enthalten. Diese Technik bietet sicher dann Vorteile,
wenn das Syndromregister selbst voll integriert wird.