DE1524891C3 - Schaltungsanordnung zur Korrektur von Fehlerbündeln - Google Patents
Schaltungsanordnung zur Korrektur von FehlerbündelnInfo
- Publication number
- DE1524891C3 DE1524891C3 DE1524891A DE1524891A DE1524891C3 DE 1524891 C3 DE1524891 C3 DE 1524891C3 DE 1524891 A DE1524891 A DE 1524891A DE 1524891 A DE1524891 A DE 1524891A DE 1524891 C3 DE1524891 C3 DE 1524891C3
- Authority
- DE
- Germany
- Prior art keywords
- circuit
- error
- bits
- shift register
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/17—Burst error correction, e.g. error trapping, Fire codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
groß wie die Höchstzahl der Bits in einem zu korrigierenden
Fehlerbündel. Daher sind die bekannten Schaltungen zur Korrektur von Fehlerbündeln sehr
kostspielig.
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsanordnung zur Korrektur von Fehlerbündeln
in den Codewörtern eines systematischen Codes anzugeben, die einen gegenüber bekannten
Schaltungen dieser Art verringerten Schaltungsaufwand erfordert. Als systematisch bezeichnet man einen
Code, bei dem die Redundanzbits eines Codewortes auf dessen Informationsbits folgen.
Die genannte Aufgabe wird gelöst mit Hilfe einer Schaltungsanordnung zur Korrektur von Fehlerbündeln
aus maximal b Bits in binären Codewörtern eines systematischen Codes, in dessen Codewörtern
der Informations- und der Redundanzteil gleich groß sind, mit einem Decodierer, der aus einem übertragenen
Codewort ein Prüfwort ableitet zur Feststellung, ob ein korrigierbares Fehlerbündel vorliegt,
und mit einer an den Decodierer angeschlossenen Fehlerkorrekturschaltung, welche Schaltungsanordnung
dadurch gekennzeichnet ist, daß der Decodierer ein r-stufiges [r — Grad des Codepolynoms P(X)]
Schieberegister enthält, bei dem ein Antivalenz-Glied auf eine Registerstufe / folgt, wenn einer der dieser
Stufe zugeordneten Koeffizienten at oder bt den Wert 1
besitzt, wobei at den Koeffizienten der i. Potenz von X
des Codepolynoms P(X) darstellt und der Koeffizient h durch Lösen der Gleichung
b χη-r+i — 1
modulo P(X) bestimmt wird, in der η die Gesamtzahl
der Bits eines Codewortes bezeichnet, daß die zweiten Eingänge derjenigen Antivalenz-Glieder, bei denen
für die Koeffizienten der zugehörigen Registerstufe / gilt: cn = 0 und bi = 1, an den Eingang der Decodierschaltung
angeschlossen sind, daß die zweiten Eingänge derjenigen Antivalenz-Glieder, bei denen für die
Koeffizienten der zugehörigen Registerstufe gilt: at = 1 und bi = 0, mit dem Ausgang des Antivalenz-Gliedes
der r. Stufe des Schieberegisters verbunden sind, daß der 2. Eingang des Antivalenz-Gliedes der
r. Stufe mit dem Eingang der Decodierschaltung und dessen Ausgang mit den zweiten Eingängen derjenigen
Antivalenzglieder verbunden ist, bei denen für die Koeffizienten der zugehörigen Registerstufe gilt:
at = bt = 1, daß als Schaltung zum Feststellen, ob
ein korrigierbares Fehlerbündel vorliegt, ein UND-Glied dient, das an die Ausgänge der / niederstelligsten
Stufen des Schieberegisters angeschlossen ist, wobei /
einen Wert zwischen-^- und log2 («+l) besitzt, und
daß das Ausgangssignal des UND-Gliedes zur in einem Antivalenz-Glied erfolgenden Korrektur des
synchron in einem Pufferspeicher mitverschobenen Codewortes verwendet wird.
Im folgenden wird ein Ausführungsbeispiel der Erfindung in Verbindung mit den Zeichnungen näher
erläutert, von denen zeigt
F i g. I ein allgemeines Blockdiagramm eines Systems
zur Korrektur von Fehlerbündeln,
F i g. 2 ein Beispiel für eine Codierschaltung zur Codierung von Nachrichten mit einem Codepolynom
hundertsten Grades,
F i g. 3 eine Decodier- und Korrekturschaltung gemäß der Erfindung, die mit der Codierschaltung der
F i g. 2 zu verwenden ist,
F i g. 4 eine Codierschaltung, die ein Codepolynom achten Grades verwendet,
F i g. 5 eine Decodier- und Korrekturschaltung gemäß der Erfindung, die mit der Codierschaltung
der F i g. 4 zu verwenden ist, und
F i g. 6 ein einzelnes Gerät gemäß der Erfindung, das codiert, decodiert und korrigiert.
Um das Verständnis der vorliegenden Erfindung zu erleichtern, folgt vor einer genauen Beschreibung der
Erfindung ein kurzer Überblick über die bisher gebräuchlichen Verfahren zur Korrektur von Fehlerbündeln.
Eine Reihe von Datenbits, binären Nullen und Einsen, kann als ein Polynom dargestellt werden,
dessen X-Werte als absteigende Potenzen vorliegen und Koeffizienten haben, die Null oder Eins sind,
abhängig von den Ziffern der Datenbits.
Eine Folge von KDatenbits Ακ-ι, Ακ-2, ..'.,A1, A0
kann dann als ein Polynom D(X) dargestellt werden:
ηίγ\ — δ υκ
P(X) stellt eine zweite Bitfolge eines geeignet ausgewählten
Codepolynoms dar, welches Fehlerbündel korrigieren kann. Der Grad des Codepolynoms sei r,
und das ausgewählte Codepolynom kann Fehlerbündel
emer LanSe korngieren, die
< b < r ist. (Bei den bisher gebräuchiichen Anlagen gilt
allgemein b <-£■).
Bei den meisten herkömmlichen Codiersystemen
besteht der erste Schritt in der Multiplikation von D(X) mit Xr um folgenden Ausdruck zu erhalten:
XrD(X) = Ακ-1Χτ+κ~1+Ακ-ζΧτ+κ~2 + ...
10·
Der nächste Schritt ist
durch das Codepolynom
traktion werden modulodas Zeichen © dargestellt
Division ist ein Quotient
dessen Grad kleiner ist als
d. h. XrD(X)IP(X) = Q(X)
schreiben kann
durch das Codepolynom
traktion werden modulodas Zeichen © dargestellt
Division ist ein Quotient
dessen Grad kleiner ist als
d. h. XrD(X)IP(X) = Q(X)
schreiben kann
die Division von XrD(X) P(X). Addition und Sub-2
ausgeführt, was durch wird. Das Ergebnis dieser Q(X) und ein Rest R(X),
r, der Grad des Polynoms, © R(X)JP(X) was man auch
— P(X) O(X) © R(X)
Das übertragene Nachrichtenpolynom mit den ursprünglichen Daten und den Bits R(X) zur Korrektur
von Fehlerbündeln wird dargestellt als
M(X) = XrD(X) © R(X) — P(X) O(X)
Es ist zu beachten, daß Addition und Subtraktion lo_2 ^^ Efgebnis ^
Die durch M dargestellte Bitfolge wird mit dem werthöchsten Bit zuerst zum Empfänger übertragen.
Die empfangenen Bits werden durch M' dargestellt. Auf der Empfängerseite wird das Polynom M'(X),
dessen Koeffizienten M' entsprechen, durch P(X) dividiert. Wenn bei der Übertragung keine Fehler aufgetreten
sind, ist der Rest dieser Division Null. Wenn ein Übertragungsfehler ein korrigierbares Fehlerbündel
erzeugt hat, d. h., daß alle Fehler in einem Block von b Bits konzentriert sind, findet sich in dem
Rest eine Konzentration von Einsen in einem Block von b Bits. Die Einsen in dem Rest stellen dann das
Fehlermuster dar und können zur Berichtigung der
Fehler benutzt werden. Wenn die Fehler nicht innerhalb eines korrigierbaren Bündels liegen, konzentrieren
sich die Einsen im Rest nicht auf einen Block der Länge b, d. h. zwischen der ersten und der letzten
im Rest auftretenden Eins liegen b oder mehr Bit-Positionen. Ein derartiger Fehler wird vom System
nicht korrigiert.
Ein Merkmal dieser Erfindung liegt in der Korrektur eines sehr hohen Prozentsatzes (im wesentlichen aller)
der Fehlerbündel einer vorgegebenen Länge.
Das bei der Anwendung dieser Erfindung benutzte Codepolynom kann jedes beliebige Polynom vom
Grad r sein, das größer oder gleich Z>+2log (n+1) ist,
wobei b die Länge des korrigierbaren Fehlerbündels und η die Länge eines Blocks einer übertragenen Nachrieht
ist.
Wie bei der bisher üblichen Technik wird die Nachricht
codiert, indem man das Polynom D(X), das die eintreffenden Bits einer Information darstellt, mit Xr
multipliziert und dann durch das Codepolynom P(X) dividiert, um die Nachricht M(X)
M(X) = XrD(X) © R(X) = P(X) Q(X)
zu erhalten, wobei Q(X) der Quotient ist, den man als Ergebnis der Division erhält.
Auf der Empfangsseite wird die empfangene Nachricht M' multipliziert mit Xa, wobei a = <x—(n—r)
und cn die Periode des Codepolynoms P(X) ist, und
dann durch das Codepolynom P(X) dividiert. Wenn der Rest dieser Division gleich Null ist, traten bei der
Übertragung keine Fehler auf. Wenn der Rest ungleich Null ist, wird er bei der Korrektur verwendet.
Wenn kein Fehler außerhalb der ersten übertragenen b Bits auftrat, sind die wertniedrigsten r—b
Bitstellen des Restes Null, und die werthöchsten b Bitstellen des Restes enthalten das Muster des Fehlerbündels.
Wenn die Fehler außerhalb der ersten übertragenen b Bits, jedoch keiner außerhalb der ersten
übertragenen r Bits liegt, dann erscheinen einige Einsen in den ersten r—b Bitstellen des Restes. Wenn Fehler
außerhalb der ersten übertragenen r Bits liegen, besteht eine bestimmte Wahrscheinlichkeit E (abhängig
vom Codepolynom und der Fehlerzahl außerhalb der übertragenen ersten r Bits), daß jede einzelne Bitstelle
des Restes von der Stelle 1 bis zur Stelle r—b Null ist.
Wenn man annimmt, daß die Fehlerwahrscheinlichkeit E für jede Stelle unabhängig ist, dann ist die
Wahrscheinlichkeit, daß alle Bitstellen von 1 bis r—b gleichzeitig Null sind, ungefähr gleich Er~h. Wenn
man dann also die Bedingung von lauter Nullen in den r—b wertniedrigsten Stellen des Restes dazu benutzt,
ein Fehlerbündel in den ersten übertragenen b Bits anzuzeigen, wobei das Muster von Einsen in dem
Rest das Fehlermuster darstellt, dann besteht eine Fehlerwahrscheinlichkeit Er~b, die durch Vergrößern
von r—b beliebig klein gemacht werden kann.
Wenn die Bedingung für das Vorliegen eines korrigierbaren Fehlerbündels nicht erfüllt ist, können die
Restbits in ein Schieberegister eingegeben und dieselbe Bedingung geprüft werden, um festzustellen, ob ein
korrigierbares Fehlerbündel in den Bits 2 bis b+1 des übertragenen Blocks aufgetreten ist. Jede folgende
Verschiebung im Register verschiebt die Bitspanne, in der das· Fehlerbündel erkannt wird, um eine Bitstelle.
Das Verschieben kann n—b-mal erfolgen. Die
Wahrscheinlichkeit, daß beim Verschieben eines Blocks eine Bedingung unrichtig erkannt wird, die ein
Fehlerbündel von einer Länge kleiner gleich b Bits anzeigt, ist dann annähernd (n—b)Er~b. Für große
Werte von b ist diese Wahrscheinlichkeit sehr klein. Somit kann von dem Verfahren erwartet werden, daß
es bei der Korrektur langer Fehlerbündel voll wirksam wird.
Ein Blockdiagramm mit den Hauptteilen eines Systems zur Korrektur von Fehlerbündeln gemäß der
vorliegenden Erfindung ist in F i g. 1 dargestellt. Das dargestellte System kann sowohl eine Nachricht für die
Übertragung codieren als auch eine codierte Nachricht empfangen und decodieren. Von einer Quelle gelieferte
Daten werden am Eingang 2 des Codierers empfangen. Die Daten werden zwecks Übertragung über einen
Übertragungskanal dem Ausgang 3 des Codierers zugeführt und ebenfalls auf die Rückkopplungs- und
Ausgangssteuerschaltungen 4. Im rückgekoppelten Schieberegister 5 werden die Restbits für die Fehlererkennung
und -korrektur berechnet. Während der Codierung wird die Rückkopplungsverbindung zum
Schieberegister 5 durch die Daten gesteuert, die den Rückkopplungs- und Ausgangssteuerschaltungen 4
vom Eingang 2 des Codierers zugeführt werden. Nach der Berechnung der Restbits werden diese dem Ein-,
gang 3 des Codierers zwecks Übertragung über einen Übertragungskanal zugeführt. Wie bereits erwähnt,
kann dieses System sowohl Nachrichten übertragen als auch empfangen. Wenn das System als Empfänger
arbeitet, werden am Eingang 6 des Decoders Datenbits und Redundanzbits von einem anderen nicht dargestellten
Codiergerät empfangen. Die Daten^ und Redundanzbits werden in dem rückgekoppelten Schieberegister
7 zur Berechnung des Prüfwortes (Syndrom) entsprechend den empfangenen Daten und der Redundanz
benutzt. Jedes Redundanzbit wird fallen gelassen, nachdem es seinen Beitrag zum Prüfwort
geleistet hat. Somit braucht beim Decodieren keine Redundanz gespeichert zu werden. Das ankommende
Datenwort wird im Speicher 8 gespeichert und das errechnete Prüfwort im Schieberegister 7. Nach vollständiger
Errechnung kann das Prüfwort in ein anderes Schieberegister innerhalb der Entscheidungsschaltung 9
gesetzt werden, so daß das Schieberegister 7 zur Errechnung des Prüfwortes für die nächste ankommende
Nachricht benutzt werden kann.
Nachdem das Prüfwort vollständig berechnet und im Schieberegister der Entscheidungsschaltung 9 gespeichert
worden ist, wird das Muster im Prüfwort von der Entscheidungsschaltung untersucht. Die Entscheidungsschaltung
stellt fest, ob ein korrigierbares Fehlerbündel aufgetreten ist oder nicht. Ist entsprechend
den oben beschriebenen Verfahren ein solches Fehlerbündel festgestellt worden, wird die
Korrekturschaltung 10 zu seiner Korrektur eingeschaltet. Die Korrektur erfolgt bei der Weiterleitung
der Daten zum Ausgang 11 des Decoders.
Wenn die Daten aus dem Speicher 8 über die Korrekturschaltung 10 zum Ausgang 11 des Decoders
übertragen werden, treten an ihre Stelle im Speicher neue am Eingang 6 des Decoders vorhandene Daten.
Wie bei den bisher üblichen Systemen wird der Takt für die Daten dem Eingang des Decoders ebenfalls
über den Übertragungskanal zugeführt. Die verschiedenen Arten der Taktsteuerung sind bekannt und bedürfen
keiner weiteren Erläuterung.
Die vorigen Abschnitte beschreiben das erfindungsgemäße Verfahren zur Korrektur von Fehlerbündeln
und ein Gerät zur Durchführung des Verfahrens. Die folgenden Abschnitte geben als Beispiel die Anwendung
eines bestimmten Codepolynoms und beschreiben im einzelnen die von der Codier- und der Decodierschaltung
benutzten Schieberegister, die Rückkopplungs- und Ausgangssteuerschaltungen, die Entscheidungsschaltung
und die Korrekturschaltung.
Auswahl eines Codepolynoms
Für dieses Beispiel wird angenommen, daß die Daten in Blocks von 100 Bit Länge dem System zugeführt
werden. Wenn wir einen Code benutzen, bei dem gleich viel Informations- und Redundanzbits vorhanden
sind, muß für das Codepolynom ein Polynom hundertsten Grades verwandt werden. Da r
> b+2log (n+1) sein muß, wobei r der Grad des Codepolynoms,
b die größte Länge eines korrigierbaren Fehlerbündels und η die Länge eines Nachrichtenblocks ist, kann das
im folgenden Beispiel zu beschreibende System Fehlerbündel erkennen und korrigieren, die bis zu 92 Bitpositionen
umfassen. In den folgenden Beispielen wird angenommen, daß Fehlerbündel mit einer größten
Länge von 90 Bits korrigiert· werden. Obwohl das System genauere Ergebnisse bei der Korrektur
kürzerer Fehlerbündel liefern würde (z. B. 85 Bits), gilt dieses Beispiel zur Illustration. Der hundertste
Grad des Polynoms P(X) = X100 + Xi0 + X7t + X"
+ X3i + F + l wurde als Codepolynom für die
folgenden Beispiele gewählt.
Codieren einer Nachricht
In F i g. 2 ist eine Codierschaltung dargestellt, die zur Multiplikation einer ankommenden Nachricht
D(X) mit Z100 verwendet werden kann, während sie gleichzeitig diese Nachricht durch das Codepolynom
P(X) = X100 + Xao + X7i + X67 + X39 + X20 + 1
dividiert. Der Einfachheit halber wurden viele Einzelheiten über Taktgabe, Verschiebeleitungen usw. in der
Zeichnung weggelassen. Außerdem ist zu sehen, daß andere Anlagen, die die obigen Funktionen der Multiplikation
und Division (parallel oder nacheinander) ausführen, ebenfalls verwendet werden können. Die
Eingangsleitung 12 ist mit einem Eingang einer UND-Schaltung 14 verbunden, deren Ausgang an
einen Eingang einer ODER-Schaltung 16 angeschlossen ist, an deren Ausgang wiederum die Ausgangsleitung 18
direkt angeschlossen ist. Die Eingangsleitung 12 ist ebenfalls mit einem Eingang des Modulo-2-Addierers
22 verbunden. (Der Modulo-2-Addierer kann einfach eine ausschließliche ODER-Schaltung sein.) Die
Signale am Ausgang 24 des Modulo-2-Addierers 22 sind die Eingangssignale für das Schieberegister 26,
dessen Stufen durch die Nummern 1 bis 100 gekennzeichnet sind. In der Zeichnung sind nur die Stufen 1,
20, 39, 57, 74, 90 und 100 des Schieberegisters 26 dargestellt. Die niedrigen Ziffern entsprechen den Stufen
niederer Ordnung des Schieberegisters, und die Verschiebung erfolgt von links nach rechts. Das Ausgangssignal
der letzten Stufe 100 des Schieberegisters wird den UND-Schaltungen 28 und 30 zugeführt. Der Ausgang
der UND-Schaltung 28 speist den zweiten Eingang des Modulo-2-Addierers 22. Der Ausgang der
UND-Schaltung 30 speist einen zweiten Eingang der ODER-Schaltung 16. Da die letzte Stufe des Schieberegisters
26 über den Modulo-2-Addierer 22 zwecks Addition auf andere Stufen des Schieberegisters zurückgekoppelt
wird, nennt man diese Anordnung allgemein ein lineares rückgekoppeltes Schieberegister.
Beim Codieren von Nachrichtenbits in dem dargestellten Gerät wird zunächst jede Information in
dem Schieberegister 26 durch einen Taktimpuls (nicht dargestellt) gelöscht. Zu Beginn wird die UND-Schaltung
14 durch ein Taktsignal auf der Leitung 32 erregt, wodurch die Eingabedaten auf Leitung 12 durch die
UND-Schaltung 14 und die ODER-Schaltung 16 direkt auf die Ausgangsleitung 18 gelangen. Die UND-Schaltung
28 wird zu Beginn durch ein Signal auf der
ίο Leitung 34 erregt, während die UND-Schaltung 30
über die Leitung 36 gesperrt wird. Somit wird das Ausgangssignal der letzten Stufe 100 des Schieberegisters 26
über die UND-Schaltung 28 und die Leitung 38 dem Modulo-2-Addierer 22 zugeführt, wo es modulo-2
is mit den Eingangsdaten auf der Leitung 12 addiert
wird. Somit erscheinen die Eingangsdaten nach 100 Verschiebungen am Ausgang des Schieberegisters.
Das ist gleichzusetzen einer Multiplikation der Eingangsdaten mit Z100. Die von der Leitung 24 ausgehenden
Rückkopplungsleitungen geben Rückkopplungsinformationen in das Schieberegister zum Komplementieren
der verschobenen Stellen, damit sie dem Codepolynom entsprechen. So komplementiert z. B.
der Modulo-2-Addierer 40 das Ausgangssignal der
as Stelle 20 des Schieberegisters entsprechend dem Ausdruck
X20 von P(X). Dadurch wird eine Division der Eingangsdaten durch das Codepolynom erreicht, wodurch
nur die Restbits R(X) im Schieberegister bleiben, nachdem alle Datenbits am Eingang 12 angekommen
sind.
Nachdem alle Informationsbits empfangen wurden, werden die Leitungen 32 und 34 abgeschaltet, so daß
jetzt keine Daten mehr auf die Ausgangsleitung und ebenso wenig auf die Rückkopplungsleitung von der
Ausgangsstufe 100 des Schieberegisters gelangen können. Gleichzeitig wird die Leitung 36 erregt, so daß
der Inhalt des Schieberegisters über die UND-Schaltung 30 und die ODER-Schaltung 16 auf die Ausgangsleitung
gelangen kann. Somit wird an die Datenbits der bei der Division durch das Codepolynom erhaltene
Rest an das Ende der Nachricht angehängt.
Decodieren einer Nachricht
In der Decodierschaltung wird die empfangene Nachricht untersucht und ein Syndrom (Prüfwort) abgeleitet.
Das Syndrom wird dann bei der Fehlerkorrektur benutzt.
Eine erfindungsgemäße Decodierschaltung, die ein Prüfwort errechnet, ist folgendermaßen aufgebaut: P(X) sei das Codepolynom, r der Grad von P(X) und η die Blocklänge der übertragenen Nachrichten. Die Koeffizienten bt sind so zu berechnen, daß
Eine erfindungsgemäße Decodierschaltung, die ein Prüfwort errechnet, ist folgendermaßen aufgebaut: P(X) sei das Codepolynom, r der Grad von P(X) und η die Blocklänge der übertragenen Nachrichten. Die Koeffizienten bt sind so zu berechnen, daß
r-l
bt Xn-'+t = 1 modulo P(X).
-0
Es seien α« die Koeffizienten von X( in P(X). Es ist
ein r-stufiges, rückgekoppeltes Schieberegister zu benutzen, dessen Stufen von 1 bis r numeriert sind und
in welchem die Verschiebung von den niederzahligen zu den hochzahligen Stufen erfolgt. Zwischen die
Stufen ί und /+1 ist eine ausschließliche ODER-Schaltung (Modul-2-Addierer) anzuordnen, wenn ai
oder bi 1 ist, wobei die /-te Stufe ein Eingangssignal
509 516/262
für die ausschließliche ODER-Schaltung liefert, deren zweites Eingangssignal ein Rückkopplungssignal ist,
das später noch näher bestimmt wird. Das Ausgangssignal wird von Stufe i nach Stufe /+1 verschoben.
In den Fällen, in denen at = 1 und bi = 0 ist,
kommt das Rückkopplungssignal für die zwischen den Stufen ι und /+1 angeordnete ausschließliche ODER-Schaltung
von der r-ten Stufe. In den Fällen, in denen cn = 0 und bi = 1 ist, bildet ein Bit der Eingangsnachricht auch das Rückkopplungssignal. In Fällen,
wo flj = 1 und bi = 1 ist, kommt das Rückkopplungssignal vom Ausgang einer ausschließlichen ODER-Schaltung,
deren eines Eingangssignal vom Ausgang der r-ten Stufe und deren anderes Eingangssignal ein
Bit der Eingangsnachricht ist. In dem rückgekoppelten Register erfolgt für jedes Bit der Eingangsnachricht,
die als codierter Block vorliegt, eine Verschiebung. Nach η Verschiebungen befinden sich alle Bits der
Eingangsnachricht in dem Register, und dieses enthält das dem empfangenen Nachrichtenblock entsprechende
Prüfwort.
Für den Fall des Codepolynoms P(X) = X100 + X90
+ X7i + X57 + X39 + X20 + 1 ist at = 1 für
/ == 0, 20, 39, 57, 74, 90,100 und für alle anderen Werte
von i ist at = 0. Da die letzte Stufe des Schieberegisters
die Stufe 100 ist, und ihr Eingangssignal a99 entspricht,
braucht a100 beim Aufbau des Schieberegisters
nicht berücksichtigt zu werden. Für das oben als Beispiel gegebene Codepolynom ergibt eine einfache
algebraische Manipulation die Werte für bi. (Wobei
alle Additionen und Subtraktionen modulo-2 ausgeführt werden.) Bei Verwendung dieses als Beispiel
gegebenen Polynoms ist bi = 1 für die Werte i = 0, 4,
5, 10, 13, 15, 16, 17, 19, 22, 24, 25, 32, 36, 42, 43, 44, 46, 49, 51, 54, 58, 59, 62, 66, 67, 69, 70, 73, 76, 78, 80,
85, 86, 88, 89, 95, 96, 97, 99 und für alle anderen Werte von / ist b{ = 0.
Die in F i g. 3 dargestellte Decodierschaltung 39 enthält ein nach obigen Parametern aufgebautes
Schieberegister. Das Schieberegister hat einhundert Stufen, die mit den Zahlen 1 bis 100 gekennzeichnet
sind. Dabei entsprechen die höheren Zahlen den höherwertigen Stufen des Schieberegisters. Es sind nur
siebzehn Stufen (1 bis 11, 20, 21, 42, 43, 99, 100) des Schieberegisters dargestellt. Die Verschiebung erfolgt
von links nach rechts. Durch die oben gegebenen Werte cn und bi ist die Lage der verschiedenen ausschließlichen
ODER-Schaltungen bestimmt. Bei Betrachtung der in F i g. 3 dargestellten Schieberegisterstufen
ergibt sich, daß eine ausschließliche ODER-Schaltung jeweils auf die Stufen 4, 5, 42, 99 folgt,
weil bt, b5, bi2 und b9a alle gleich eins sind. Je eine
weitere ausschließliche ODER-Schaltung folgt auf die Stufe 20, da a20 = 1 ist und auf die Stufe 100 (vor
Stufe 1) weil sowohl a0 als auch bo—l sind. Hinter
den Stufen 1, 2, 3, 6, 7, 8, 9, 10, 11, 21, 43 folgt keine ausschließliche ODER-Schaltung, da weder at noch bi
für irgendeinen dieser /-Werte gleich eins ist. Da α« = 0
und bi = 1 für i = 4, 5, 42 und 99 ist, wird das zweite
Eingangssignal für die ausschließliche ODER-Schaltung, die jeweils auf die Stufen 4, 5, 42 und 99 folgt,
direkt von dem eintreffenden Nachrichtenbit gebildet. Da a20 = 1 und b20 — 0 ist, erhält die ausschließliche
ODER-Schaltung hinter der zwanzigsten Stufe des Schieberegisters ihr zweites Eingangssignal vom Ausgang
der hundertsten (r-ten) Stufe des Schieberegisters. Da ag = 1 und b0 = 1 ist, kommen die Eingangssignale
für die erste Stufe des Schieberegisters vom Ausgang der ausschließlichen ODER-Schaltung 41, deren einer
Eingang mit dem Ausgang der Stufe 100 des Schieberegisters und deren anderer Eingang mit der Eingangsleitung verbunden ist, auf der die Nachrichtenbits
eintreffen. [Wenn z. B. ein Codepolynom P(X) so ausgewählt würde, daß a0 = 1 und b0 = 0 ist, käme das
Eingangssignal für die erste Stufe des Schieberegisters direkt vom Ausgang der hundertsten Stufe dieses
Registers.]
ίο Wenn eine von dem in F i g. 2 dargestellten Codierer
codierte Nachricht von dem in F i g. 3 dargestellten Decodierer empfangen wird, wird bei Empfang der
Nachricht ein Prüfwort erzeugt. Wenn die Nachricht ohne Übertragungsfehler empfangen wird, enthält das
errechnete Prüfwort lauter Nullen. Wenn während der Übertragung erkennbare Fehler aufgetreten sind,
enthält das Prüfwort eine oder mehrere Einsen.
Korrekturschaltung
Wie oben beschrieben, wird die Bedingung von lauter Nullen in den r—b niedrigsten Stellen des Prüfwortes
(wobei r die Anzahl der Stufen im Schiebe-, register und b die Länge des korrigierbaren Fehlerbündeis
ist) dazu benutzt, ein Fehlerbündel in den ersten übertragenen b Bits (Bits 1 bis 6) anzuzeigen,
wobei das Muster von Einsen in dem Rest des Prüfwortes das Fehlermuster darstellt. Wenn die Bedingung
für das Vorliegen eines korrigierbaren Fehlerbündels nicht erfüllt ist, wird das Prüfwort in dem ruckgekoppelten
Schieberegister verschoben und dieselbe Bedingung wiederum geprüft, um festzustellen, ob ein
korrigierbares Fehlerbündel in den Bits 2 bis b + 1 des übertragenen Nachrichtenblocks aufgetreten ist.
Jede weitere Verschiebung im Register verschiebt die Spanne, innerhalb der ein Fehlerbündel erkennbar
ist, um eine Bitstelle. Die Verschiebung kann n—o-mal
erfolgen, wobei η die Gesamtlänge des Nachrichtenblocks ist. In denVhier betrachteten Beispiel ist r = 100,
b = 90 und η = 200 (100 Datenbits + 100 Redundanzbits).
In F i g. 3 ist weiterhin die Korrekturschaltung 50 dargestellt. Während der Zeit, in welcher die eintreffende
Nachricht in dem Decoder 39 zur Errechnung eines Prüfwortes benutzt wird, wird die Nachricht
ebenfalls in einem Pufferspeicher 52 gespeichert. Der Pufferspeicher kann ein Schieberegister, eine Verzögerungsleitung,
ein Kernspeicher, ein Magnetband oder ein anderes geeignetes Speichermedium sein. Nach
dem Eintreffen des letzten Bits der Nachricht ist das Prüfwort in den Stufen 1 bis 100 des Schieberegisters
im Decodierer 39 enthalten und die empfangene Nachricht im Pufferspeicher 52.
Wenn in den ersten neunzig übertragenen Bits ein Fehlerbündel enthalten ist, dann enthalten die Stufen 1
bis 10 des Schieberegisters lauter Nullen, und die Stufen 11 bis 100 (die b werthöchsten Stufen) des
Schieberegisters enthalten das Fehlermuster. Mit der UND-Schaltung 54 kann man feststellen, ob die
Stufen 1 bis 10 des Schieberegisters lauter Nullen enthalten. Die UND-Schaltung 54 hat zehn Eingänge,
von denen jeder mit dem Ausgang einer der Stufen 1 bis 10 des Schieberegisters verbunden ist. Wenn alle
Stufen 1 bis 10 des Schieberegisters Nullen enthalten, erscheint auf der Ausgangsleitung 56 der UND-Schaltung
54 ein Signal. Die Ausgangsleitung 56 der UND-Schaltung 54 speist einen von drei Eingängen der
UND-Schaltung 58. Eine andere Eingangsleitung der
UND-Schaltung 58 ist mit dem Ausgang der Stufe 100 (der letzten Stufe) des im Decodierer 39 enthaltenen
Schieberegisters verbunden. Der dritte Eingang der UND-Schaltung 58 ist an eine Leitung 60 angeschlossen.
Der Ausgang der UND-Schaltung 58 ist mit einem Eingang der ausschließlichen ODER-Schaltung 62
verbunden. Der andere Eingang dieser ausschließlichen ODER-Schaltung 62 ist an den Ausgang des Pufferspeichers
52 angeschlossen. Der Ausgang der ausschließlichen ODER-Schaltung 62 ist direkt mit der
Ausgangsleitung 64 des Systems verbunden.
Wenn eine der Stufen 1 bis 10 des Schieberegisters keine Null enthält, zeigt das an, daß einer oder mehrere
Fehler außerhalb der ersten neunzig Bits aufgetreten sind. Um zu bestimmen, ob ein korrigierbares Fehlerbündel
aufgetreten ist und wo es liegt, wird der Inhalt des rückgekoppelten Schieberegisters verschoben und
die ersten 10 Stufen noch einmal auf Nullgehalt geprüft. Diese Verschiebung wird so lange wiederholt,
bis die ersten 10 Stufen lauter Nullen enthalten (wodurch die Lage des zu korrigierenden Fehlerbündels
angezeigt wird) oder bis n—^-Verschiebungen stattgefunden
haben, ohne daß die ersten 10 Stufen alle Nullen enthalten (wodurch ein nicht korrigierbarer
Fehler angezeigt wird), wobei η die Gesamtlänge des Nachrichtenblocks und b die größte Länge eines
korrigierbaren Fehlerbündels ist.
Wenn die Lage eines Fehlerbündels einmal ermittelt ist, muß, der Inhalt des Schieberegisters des Decodierers
39 "verschoben werden, ohne daß die Rückkopplungsverbindungen wirksam sind. Zu diesem
Zweck wird hinter der hundertsten Stufe des Schieberegisters im Decodierer 39 die UND-Schaltung 66
angeordnet. Ein Eingang der UND-Schaltung 66 wird durch den Ausgang der hundertsten Stufe des
Schieberegisters gespeist. Der andere Eingang der UND-Schaltung 66 ist mit dem Ausgang einer Inverter-Schaltung
68 verbunden, deren Eingang an den Ausgang der UND-Schaltung 58 angeschlossen ist.
Während der Errechnung des Prüfwortes befindet sich kein Signal auf der Leitung 60. Infolgedessen
liefert auch die UND-Schaltung 58 kein Ausgangssignal. Während dieser Zeit liefert der Inverter 68
ein Ausgangssignal und macht über die UND-Schaltung 66 die Rückkopplungsverbindungen des Schieberegisters
im Decodierer 39 wirksam. Nach Errechnen des Prüfwortes erscheint ein Signal auf der Leitung 60.
Wenn dann in allen Stufen 1 bis 10 des Schieberegisters Nullen erscheinen (dadurch wird angezeigt,
daß ein korrigierbares Fehlerbündel lokalisiert wurde), gibt die UND-Schaltung 58 ein Ausgangssignal ab,
sobald eine Eins in der Stufe 100 des Schieberegisters erscheint. Dieses Ausgangssignal der UND-Schaltung
58 sperrt über den Inverter 68 die UND-Schaltung 66 und verhindert eine Rückkopplung innerhalb des
Schieberegisters. Die beschriebene Anordnung ist nur ein Beispiel von vielen, um die Rückkopplungsverbindungen
des Schieberegisters unwirksam zu machen, wenn ein korrigierbarer Fehler lokalisiert worden ist.
Der in F i g. 3 dargestellte Decoder 39 und die Korrekturschaltung 50 erkennen Fehler und korrigieren
diese durch Ausführen der folgenden Schritte:
1. Die ganze empfangene Nachricht wird in den Pufferspeicher 52 und gleichzeitig in das Schieberegister
des Decoders 39 gelesen. Der Inhalt des rückgekoppelten Schieberegisters des Decoders 39 wird bei
jedem eintreffenden Bit verschoben. Der Pufferspeicher 52 weist keine Rückkopplung auf. Während
dieser Zeit befindet sich auf der Leitung 60 kein Signal.
2. Die empfangene Nachricht wird dann aus dem Pufferspeicher 52 Bit für Bit ausgelesen und der Inhalt
des rückgekoppelten Schiederegisters im Decoder 39 um einen Schritt pro Bit verschoben, ohne daß Eingangsimpulse
dem Register zugeleitet werden. Während dieses und des nächsten Schrittes ist ein Signal auf
der Leitung 60 vorhanden.
ίο 3. Sobald lauter Nullen in den ersten 10 Stufen des
Schieberegisters erscheinen, ist das Fehlermuster in den letzten 90 Stufen des Schieberegisters enthalten, und
die falschen Bits erscheinen am Ausgang des Pufferspeichers 52. Da auf den Leitungen 56 und 60 Signale
auftreten, liefert die UND-Schaltung 58 jedesmal ein Ausgangssignal, wenn eine Eins in der Stufe 100 des
Schieberegisters auftaucht. So wird durch die ausschließliche ODER-Schaltung 62 jedes aus dem Pufferspeicher
52 kommende fehlerhafte Bit komplementiert, bevor es auf die Ausgangsleitung 64 übertragen
wird.
Obwohl das beschriebene System Fehler in den Redundanzbits korrigieren kann, ist im allgemeinen
nur die Korrektur von Fehlern in den Datenbits erforderlich. Trotzdem müssen in dem Schieberegister
genug Verschiebungen vorgenommen werden um festzustellen, ob ein aufgetretener Fehler tatsächlich
korrigierbar war.
Obwohl in obiger Beschreibung die Kapazität des' Pufferspeichers 52 so groß angenommen wurde, daß er die ganze übertragene Nachricht aufnehmen kann, ist das nicht unbedingt erforderlich. Wenn nur die Datenbits korrigiert werden sollen, braucht der Pufferspeicher nur so groß zu sein, daß er alle übertragenen Datenbits aufnehmen kann. Für das zugrunde gelegte Beispiel würde ein Pufferspeicher mit einer Kapazität von 100 Bits ausreichen, um alle übertragenen Datenbits festzuhalten. In einem System, in dem die Redundanzbits für die Fehlererkennung und -korrektur nicht im Pufferspeicher gespeichert werden sollen, müßte der Eingang des Pufferspeichers vom Eingang des Systems getrennt werden. Eine Möglichkeit hierzu bietet der Einsatz einer UND-Schaltung 72 zwischen dem Eingang des Pufferspeichers und dem Eingang des Systems. Die Leitung 74 gestattet das Speichern von Bits im Pufferspeicher, während diese beim System eintreffen. Während der Zeit, in welcher die Redundanzbits für die Fehlererkennung und -korrektur in das System gelangen, erscheint kein Signal auf der Leitung 74, und die UND-Schaltung 72 würde daher das Speichern von Redundanzbits in dem Pufferspeicher 52 verhindern.
Obwohl in obiger Beschreibung die Kapazität des' Pufferspeichers 52 so groß angenommen wurde, daß er die ganze übertragene Nachricht aufnehmen kann, ist das nicht unbedingt erforderlich. Wenn nur die Datenbits korrigiert werden sollen, braucht der Pufferspeicher nur so groß zu sein, daß er alle übertragenen Datenbits aufnehmen kann. Für das zugrunde gelegte Beispiel würde ein Pufferspeicher mit einer Kapazität von 100 Bits ausreichen, um alle übertragenen Datenbits festzuhalten. In einem System, in dem die Redundanzbits für die Fehlererkennung und -korrektur nicht im Pufferspeicher gespeichert werden sollen, müßte der Eingang des Pufferspeichers vom Eingang des Systems getrennt werden. Eine Möglichkeit hierzu bietet der Einsatz einer UND-Schaltung 72 zwischen dem Eingang des Pufferspeichers und dem Eingang des Systems. Die Leitung 74 gestattet das Speichern von Bits im Pufferspeicher, während diese beim System eintreffen. Während der Zeit, in welcher die Redundanzbits für die Fehlererkennung und -korrektur in das System gelangen, erscheint kein Signal auf der Leitung 74, und die UND-Schaltung 72 würde daher das Speichern von Redundanzbits in dem Pufferspeicher 52 verhindern.
Wie vorher bereits beschrieben wurde, enthält die Korrekturschaltung 50 ein weiteres Schieberegister
(nicht dargestellt), das das Prüfwort aus dem Decoder 39 aufnimmt, so daß dieses sofort mit dem Decodieren
der nächsten Nachricht beginnen kann. Ein derartiges Schieberegister in der Korrekturschaltung ist mit dem
im Decoder 39 dargestellten identisch mit der Ausnähme, daß die vom Decodereingang ausgehende
Rückkopplungsleitung wegfallen kann, weil keine Eingangssignale vorhanden sind, während das Prüfwort
untersucht wird.
Die Erfindung ermöglicht durch Verwendung von nur 100 Redundanzbits die Korrektur von Fehlerbündeln
bis zu einer Länge von 90 Bits. Das stellt eine große Verbesserung gegenüber dem bisherigen Stand
der Technik dar, nach dem mindestens 180 Redundanz-
bits erforderlich waren, um Fehlerbündel mit einer Länge von 90 Bits korrigieren zu können. So würde
z. B. die Anwendung eines Fire-Codes für die Korrektur von Fehlerbündeln mit einer Länge von 90 Bits
etwa 270 Redundanzbits erfordern.
Ein weiterer bedeutender Vorteil der Erfindung ergibt sich aus dem neuen Merkmal der Verwendbarkeit
jedes Polynoms der entsprechenden Länge (oder Grades) als Codepolynom, Das wiederum gestattet die
Auswahl eines Polynoms, das eine sehr einfache Schaltung erfordert. Wenn z. B. ein Polynom ausgewählt
wird, das nur wenige Rückkopplungsverbindungen für das System verwendeten Schieberegisters erfordert,
können viele Stufen des Schieberegisters einfach durch eine Verzögerungsleitung ersetzt werden. Aus diesem
Grunde ist bei der Realisierung der Erfindung die Verwendung mikrominiaturisierter Schaltungen viel
leichter möglich als das sonst der Fall wäre.
Ein weiterer Vorteil der Erfindung liegt darin, daß die UND-Schaltung 54 zur Untersuchung der ersten
r—δ-Stufen des Schieberegisters viel kleiner ist (weit
weniger Eingänge hat) als die bisher benutzten. In dem oben gegebenen Beispiel reichte eine UND-Schaltung
mit 10 Eingängen aus, um ein Fehlerbündel von einer Länge bis zu .90 Bits zu erkennen und zu lokalisieren,
wogegen nach dem Stand der Technik hierzu eine UND-Schaltung mit 180 Eingängen erforderlich gewesen
wäre.
,Somit ist ein System gemäß dieser Erfindung einfacher
zu realisieren als das nach dem Stand der Technik möglich ist, während gleichzeitig größere Fehlerbündel
in kürzerer Zeit korrigiert werden können als bisher.
Um die Beschreibung nicht zu sehr auszudehnen, wurden für das vorher beschriebene Ausführungsbeispiel
der Erfindung keine Zahlenbeispiele gebracht, die genau zeigen, wie Nachrichten von dem System
verarbeitet werden. Um jedoch ein vollständiges Verständnis dieser Erfindung weiter zu erleichtern, werden
jetzt alle Einzelheiten an Hand bestimmter Beispiele für ein kleineres System zur Korrektur von Fehlerbündeln
beschrieben, das das Prinzip dieser Erfindung zeigt. Daraus ist zu ersehen, daß sowohl die vorher
beschriebene Anordnung als auch noch größere Ausführungen in genau derselben Art und Weise arbeiten
wie das im folgenden zu beschreibende Beispiel. Obwohl dieses Beispiel die praktischen Vorteile der Erfindung
nicht klarlegt, dient es doch zur Illustration des Arbeitsprinzips der Erfindung.
Für die folgenden einfachen Beispiele wird angenommen, daß Daten in Blocks von 8 Bits Länge in das
System gelangen. Wenn weiterhin ein Code mit gleich vielen Informations- und Redundanzbits angenommen
wird, wird für das Codepolynom ein Polynom achten Grades benötigt. Das Codepolynom P(X) = Xs + X*
+ X* + X2 + X + 1 wurde für die folgenden Beispiele
ausgewählt. Da r > b-\-2log (n+1) sein muß,
wobei r der Grad des Codepolynoms, b die größte Länge eines korrigierbaren Fehlerbündels und η die
Länge des Nachrichtenblocks ist, kann das jetzt zu beschreibende System Fehlerbündel erkennen und
korrigieren, die drei oder weniger Bitpositionen einnehmen.
Codieren einer Nachricht
In F i g. 4 ist eine Anordnung dargestellt, mit der eine ankommende Nachricht D(X) mit Λ'8 multipliziert
werden kann, während sie gleichzeitig durch das Codepolynom P(X) = Xs + X* + Xs + X +1 dividiert
wird. Viele Einzelheiten über Taktgabe, Verschiebungsleitungen usw. wurden um der Klarheit der
Zeichnung willen weggelassen. Die Eingangsleitung 210 ist mit dem Eingang einer UND-Schaltung 212, die
zwei Eingänge hat, verbunden. Deren Ausgang ist mit einem Eingang einer ODER-Schaltung 214 verbunden,
deren Ausgang wiederum direkt an die Ausgangsleitung 216 angeschlossen ist. Die Eingangsleitung 210
ίο ist ebenfalls mit einem der Eingänge eines Modulo-2-Addierers
218 verbunden. Am Ausgang 220 des Modulo-2-Addierers 218 erscheinen die Eingangssignale für ein Schieberegister 222, dessen Stufen mit
den Ziffern 1 bis 8 bezeichnet sind. Die niedrigen Ziffern entsprechen den niederwertigen Stufen des
Schieberegisters, und die Verschiebung erfolgt von links nach rechts. Die Ausgangssignale der letzten
Stufe 8 dieses Schieberegisters werden den UND-Schaltungen 224 und 226 zugeführt. Das Ausgangssignal
der UND-Schaltung 224 speist den zweiten Eingang des Modulo-2-Addierers 218. Der Ausgang
der UND-Schaltung 226 speist einen zweiten Eingang
der ODER-Schaltung 214. ■ -
Beim Codieren von Nachrichtenbits in dem dargestellten G erät werden zunächst sämtliche Informationen
im Schieberegister 222 durch einen nicht dargestellten Taktimpuls gelöscht. Die UND-Schaltung 212 wird
durch ein Taktsignal auf Leitung 228 erregt, das die Eingangsdaten auf der Leitung 210 direkt über die
UND-Schaltung 212 und die ODER-Schaltung 214 auf die Ausgangsleitung 216 gelangen läßt. Die UND-Schaltung
224 wird durch ein Signal auf der Leitung 230 erregt, während die UND-Schaltung 226 durch
ein Signal auf der Leitung 232 gesperrt wird. Somit wird das Ausgangsbit der letzten Stufe 8 des Schieberegisters
222 über die UND-Schaltung 224 und die Leitung 234 auf den Modulo-2-Addierer 218 rückgekoppelt,
wo es modulo-2 zum Eingangsbit auf der Leitung 210 addiert wird. So erscheint das Eingangsbit
nach acht Verschiebungen am Ausgang des Schieberegisters. Das ist gleichbedeutend mit einer Multiplikation
des Eingangs mit Xa. Die Rückkopplungsleitungen, die von der Leitung 220 ausgehen, geben die
Rückkopplungsinformation in das Schieberegister und komplementieren dadurch die verschobenen Stellen so,
daß sie dem Codepolynom entsprechen. So komplementiert z. B. der Modulo-2-Addierer 236 das Ausgangsbit
der Stelle 2 des Schieberegisters entsprechend dem Ausdruck X2 von P(X). Dadurch erfolgt eine
Division der Eingangsdaten durch das Codepolynom, wodurch nur die Restbits R(X) im Schieberegister
bleiben, nachdem alle Datenbits am Eingang 210 eingetroffen sind.
Nachdem alle Informationsbits empfangen wurden, werden die Leitungen 228 und 230 spannungslos gemacht, wodurch sowohl der Datenfluß zur Ausgangsleitung als auch die Rückkopplungsverbindung von der Ausgangsstufe 8 des Schieberegisters unterbrochen wird. Zur gleichen Zeit wird Leitung 232 eingeschaltet und gestattet den Inhalt des Schieberegisters über die UND-Schaltung 226 und die ODER-Schaltung 214 auf die Ausgangsleitung zu geben. Somit wird nach den Datenbits der Rest, der sich bei der Division durch das Codepolynom ergab, ausgeschoben und an das Ende der Nachricht angehängt. Die folgende Tabelle zeigt den Inhalt des Schieberegisters während des Codierens einer als Beispiel gewählten Datenbitfolge 10001001.
Nachdem alle Informationsbits empfangen wurden, werden die Leitungen 228 und 230 spannungslos gemacht, wodurch sowohl der Datenfluß zur Ausgangsleitung als auch die Rückkopplungsverbindung von der Ausgangsstufe 8 des Schieberegisters unterbrochen wird. Zur gleichen Zeit wird Leitung 232 eingeschaltet und gestattet den Inhalt des Schieberegisters über die UND-Schaltung 226 und die ODER-Schaltung 214 auf die Ausgangsleitung zu geben. Somit wird nach den Datenbits der Rest, der sich bei der Division durch das Codepolynom ergab, ausgeschoben und an das Ende der Nachricht angehängt. Die folgende Tabelle zeigt den Inhalt des Schieberegisters während des Codierens einer als Beispiel gewählten Datenbitfolge 10001001.
1 | 15 | 2 | 3 | 4 | 5 | 16 | 6 | 7 | 8 | |
Eingabe | O | O | O | O | O | O | O | O | ||
Löschen | 1 | 1 | 1 | O | 1 | O | 1 | O | ||
1 | O | 1 | 1 | 1 | O | 1 | O | 1 | ||
O | 1 | 1 | O | 1 | O | O | O | O | ||
O | O | 1 | 1 | O | 1 | O | O | O | ||
O | 1 | 1 | O | 1 | 1 | 1 | 1 | O | ||
1 | O | 1 | 1 | O | 1 | 1 | 1 | 1 | ||
O | 1 | 1 | O | 1 | 1 | 1 | O | 1 | ||
O | O | 1 | 1 | O | 1 | 1 | 1 | O | ||
1 | ||||||||||
Der Rest ist O*7 - IX* ■+ IXs - \Xl - I*3 -t- I*2
-f- IX-r 0. Wenn die Restbits an das Ende der Datenbits
10001001 angehängt werden, wird die übertragene Nachricht zu 1000100101110110. Die werthöchsten
Bits werden zuerst übertragen.
Decodieren einer Nachricht
Beim Decodieren wird die empfangene Nachricht untersucht und ein Syndrom (Prüfwort) aus ihr gebildet.
Das Syndrom wird dann bei der Korrektur benutzt.
Wie bereits oben beschrieben, ist ein Decoder zur Errechnung des Prüfwortes erfindungsgemäß wie folgt
konstruiert: Wenn P(X) das Codepolynom bezeichnet und r den Grad von P(X) und η die Blocklänge der
übertragenen Nachricht, sind die Koeffizienten von bi so zu berechnen, daß
r-1
35
modul P(X). Ai bezeichnet den Koeffizienten von
X* in P(X). Es ist ein rückgekoppeltes Schieberegister
für r Bits zu konstruieren, dessen Stufen von 1 bis r numeriert sind und bei dem die Verschiebung von den
Stufen mit den niederen zu denen mit den höheren Nummern erfolgt. Zwischen die Stufen / und /-Kl ist
eine ausschließliche ODER-Schaltung (Modulo-2-Addierer) zu schalten, wenn a<
oder bi = 1 ist, wobei die /-te Stufe ein Eingangssignal für die ausschließliche
ODER-Schaltung und die Rückkopplungsverbindung, die weiter unten noch definiert wird, das andere Eingangssignal
liefert. Der Inhalt wird von Stufe / nach Stufe /+1 verschoben.
In den Fällen, in denen a< = 1 und A<
= 0 ist, geht die Rückkopplungsverbindung für die zwischen den Stufen / und /+1 angeordnete ausschließliche ODER-Schaltung
vom Ausgang der r-ten Stufe aus. In den Fällen, in denen a<
= 0 und bi = 1 ist, geht die Rückkupplungsverbindung
vom Eingang des Schieberegisters aus. In den Fällen, in denen a<
= 1 und A< = 1 ist, geht die Rückkopplungsverbindung vom Ausgang
einer ausschließlichen ODER-Schaltung aus, deren einer Eingang mit dem Ausgang der r-ten Stufe und
deren anderer Eingang mit dem Eingang des Schieberegisters verbunden ist. Der Registerinhalt des rückgekoppelten
Schieberegisters wird beim Eintreffen jedes Bits eines codierten Nachrichtenblocks verschoben.
Nach η Verschiebungen befinden sich alle Bits in dem Register, und das Register enthält das dem
empfangenen Nachrichtenblock entsprechende Prüfwort (Syndrom).
Im Falle des Codepolynoms P(X) =Ι8 + Ρ^Γ
- X2 - X -hl sind die a( Werte a0 =1, ax = 1,
a, = 1, a3 = 0, a4 = 1, as = 1, as = 1 und G7 = 0.
Wie vorher braucht ar, das in diesem Beispiel aB entspricht,
beim Aufbau des Schieberegisters nicht berücksichtigt zu werden. Bei dem oben als Beispiel
gegebenen Codepolynom erhält man durch einfaches algebraisches Umformen die Werte für b{. Es ist dabei
zu berücksichtigen, daß alle Additionen und Subtraktionen modulo-2 auseeführt · werden. Wenn
P(X) = Xs - X6 -i- X* τ X1 -r X - 1 ist, dann ist
b0 = 1, bx = 1, b2 = 1, 63 = 0, bi = 1, 65 = 1, bt = 1
und b-, = 1.
In F i g. 5 ist ein Decoder 239 dargestellt, der ein nach den obigen Parametern aufgebautes Schieberegister
enthält. Das Schieberegister hat 8 Stufen mit den Bezeichnungen Sl bis S8, wobei die höheren
Zahlen den höhenvertigen Stellen des Schieberegisters entsprechen. Das Verschieben erfolgt von links nach
rechts. Aus den oben gegebenen Werten für a< und bt
ist zu ersehen, daß mit Ausnahme der dritten und vierten Stufe eine ausschließliche ODER-Schaltung zwischen
je zwei nebeneinanderliegende Stufen des Schieberegisters angeordnet werden muß. (Zwischen der
dritten und vierten Stufe wird keine ausschließliche ODER-Schaltung benötigt, da a3 = 0 und b3 = 0 ist.)
Da a0 = 1 und b0 = 1 ist, wird das Eingangssignal für
die Stufe 51 des Schieberegisters vom Ausgang der ausschließlichen ODER-Schaltung 240 geliefert, deren
Eingänge mit dem Ausgang der Stufe S8 des Schieberegisters
und der Eingangsklemme für die Nachrichtenbits verbunden sind. [Wenn z. B. ein Codepolynom
P(X) so ausgewählt wird, daß a0 = 1 und
b0 = 0 ist, würde das Eingangssignal für die erste
Stufe des Schieberegisters direkt vom Ausgang der Stufe 58 des Schieberegisters geliefert.] Da für / =1,
2, 4 und 6 at = 1 und bi = 1 ist, ist das zweite Eingangssignal
für die hinter den Stufen 51, 52, 54 und 56 des Schieberegisters angeordneten ausschließlichen
ODER-Schaltungen die aus dem Ausgangssignal der achten Stufe des Schieberegisters und den
eintreffenden Nachrichtenbits gebildete Summe modulo-2. Da für / = 5 und 7 gilt; o<
= 0 und bi = 1, wird das zweite Eingangssignal für jede der ausschließlichen
ODER-Schaltungen hinter der fünften und siebten Stufe des Schieberegisters direkt von den
eintreffenden Nachrichtenbits gebildet. In dem gegebenen Beispiel existiert kein Wert für /, für den U1 = 1
und bi = 0 ist. Wenn ein solcher /-Wert vorläge,
erhielte die ausschließliche ODER-Schaltung hinter der /-ten Stufe des Schieberegisters ihr zweites Eingangssignal
vom Ausgang der achten (r-ten) Stufe des Schieberegisters.
509 516/262
Bei der Beschreibung der Codierschaltung nach F i g. 5 wurde gezeigt, daß ein Block von Datenbits
10001001 als folgende Nachricht codiert wird 1000100101110110. ~Wenn eine derartige Nachricht
ohne Ubertragungsfehler von der Codierschaltung der
F i g. 5 empfangen wird, sollte das errechnete Prüfwort
(Sandrom) lauter Nullen enthalten. Die folgende Tabelle zeigt den Inhalt jeder Stufe des Schieberegisters
während der Errechnung des Prüfwortes für die Nachricht 1000100101110110.
Eingang | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Löschen | O | O | O | O | O | O | O | O |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
O | 1 | O | O | H-* | 1 | 1 | O | 1 |
O | 1 | O | 1 | O | O | 1 | O | O |
O | O | 1 | O | 1 | O | O | 1 | O |
1 | 1 | 1 | O | O | O | 1 | 1 | O |
O | O | 1 | 1 | O | O | O | 1 | 1 |
O | 1 | 1 | O | 1 | 1 | O | 1 | 1 |
1 | O | 1 | 1 | O | 1 | O | O | O |
O | O | O | 1 | 1 | O | 1 | O | ο ■ |
1 | 1 | 1 | 1 | 1 | O | H-* | O | 1 |
i | O | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | O | O | 1 | 1 | 1 | O | 1 | O |
O | O | O | O | 1 | 1 | 1 | O | 1 |
i | O | O | O | O | 1 | O | 1 | 1 |
1 | O | O | O | O | O | O | O | Q |
* . O | O | O | O | O | O | O | O | O |
Somit errechnet der Decoder richtig ein Prüfwort, das lauter Nullen enthält, wenn die Nachricht ohne
Fehler empfangen wurde.
Korrekturschaltung
Wie oben beschrieben wird die Bedingung von lauter Nullen in den r—b wertniedrigsten Stellen des
Restes (wobei r die Anzahl der Stufen des Schieberegisters und b die Länge eines korrigierbaren Fehlerbündels
ist) dazu benutzt, ein Fehlerbündel in den ersten übertragenen b Bits anzuzeigen, wobei das
Muster von Einsen im Rest das Fehlermuster darstellt. Wenn die Bedingung für das Vorliegen eines korrigierbaren
Fehlerbündels nicht erfüllt ist, können die Restbits um eine Position verschoben und dieselbe Bedingung
geprüft werden, um zu ermitteln, ob ein korrigierbares Fehlerbündel in den Bits 2 bis b—1 des übertragenen
Nachrichtenblocks aufgetreten ist. Jede folgende Verschiebung des Registers verschiebt die
Spanne, innerhalb derer das Fehlerbündel erkannt werden kann, um eine Bitstelle. Die Verschiebung kann
n—i-mal erfolgen, wobei η die Gesamtlänge des Nachrichtenblocks
ist.
In F i g. 5 ist die Korrekturschaltung 250 dargestellt. Während die eintreffende Nachricht in dem Decoder
239 zur Errechnung des Prüfwortes benutzt wird, wird die Nachricht im Pufferspeicher 252 gespeichert.
Nachdem das letzte Bit der Nachricht in das System gelangt ist. ist in den Stufen Sl bis S8 des Schieberegisters
im Decoder 239 das Prüfwort enthalten und die gesamte empfangene Nachricht im Pufferspeicher
252. Der Pfferspeicher 252 kann aus einem Schieberegister, einer Verzögerungsleitung, einem Kernspeicher,
einem Magnetband oder einem anderen geeigneten Speichermedium bestehen.
Wenn ein korrigierbares Fehlerbündel in den ersten drei übertragenen Bits aufgetreten ist. enthalten die
Stufen 51 bis S5 des Schieberegisters Nullen und die
Stufen 56 bis 58 (die b höchstwertigen Stufen) des Schieberegisters das Fehlermuster. Um zu bestimmen,
ob die Stufen 51 bis 55 des Schieberegisters Nullen enthalten, ist die UND-Schaltung 254 vorgesehen.
Die UND-Schaltung 254 hat fünf Eingänge, von denen jeder mit dem Ausgang einer der Stufen 51 bis 55 des
Schieberegisters verbunden ist. Wenn alle Stufen 51 bis 55 des Schieberegisters Nullen enthalten, erscheint
ein Signal auf der Ausgangsleitung 256 der UND-Schaltung 254. Die Ausgangsleitung 256 der
UND-Schaltung 254 speist einen der drei Eingänge der UND-Schaltung 258. Ein anderer Eingang der
UND-Schaltung 258 wird durch den Ausgang der Stufe 58 des Schieberegisters, das in dem Decoder 239
enthalten ist, gespeist. Der dritte Eingang der UND-Schaltung 258 ist mit der Leitung 260 verbunden. Der
Ausgang der UND-Schaltung 258 ist mit einem Eingang der ausschließlichen ODER-Schaltung 262 verbunden.
Der andere Eingang der ausschließlichen ODER-Schaltung 262 ist an den Ausgang des Pufferspeichers
252 angeschlossen. Der Ausgang der ausschließlichen ODER-Schaltung 262 ist direkt mit der
Ausgangsleitung 264 des Systems verbunden.
Wenn ein Fehlerbündel einmal lokalisiert worden ist, muß der Inhalt des Schieberegisters des Decoders
239, ohne daß die Rückkopplungsverbindungen wirksam sind, verschoben werden. Zu diesem Zweck ist
hinter der achten Stufe des Schieberegisters die UND-
19 20
Schaltung 266 angeordnet. Ein Eingang der UND- empfangene Bit (1) wird vom Pufferspeicher 252 auf
Schaltung 266 ist mit dem Ausgang der Stufe 8 des die Ausgangsleistung gesendet. Nach dieser ersten
Schieberegisters verbunden, der andere Eingang mit Verschiebung enthalten die Stufen Sl bis S8 des
dem Ausgang der Inverterschaltung 268, deren Ein- Schieberegisters die Werte 000101000. Da die ersten
gang vom Ausgang der UND-Schaltung 258 gespeist 5 fünf Stufen des Schieberegisters nicht lauter Nullen
wird. enthalten, gelangt bei der nächsten Verschiebung das
Während der Errechnung des Prüfwortes befindet zweite empfangene Bit (0) vom Pufferspeicher 252
sich kein Signal auf der Leitung 260. Daher liefert die auf die Ausgangsleitung 264. Nach dieser zweiten
UND-Schaltung 258 auch kein Ausgangssignal. Da Verschiebung enthalten die acht Stufen des Schiebehierdurch
das Ausgangspotential der Inverterschal- io registers die Werte 00001010. Nach der zweiten Vertung
268 positiv wird, gestattet die UND-Schaltung 266 Schiebung stehen immer noch nicht lauter Nullen in den
das Wirksamwerden der Rückkopplungsverbindung ersten fünf Stufen des Schieberegisters. Daher gelangt
des Schieberegisters in dem Decoder 239. Nachdem nach der dritten Verschiebung die dritte empfangene
das Prüfwort errechnet worden ist, erscheint ein Signal Ziffer (0) vom Pufferspeicher auf die Ausgangsleitung,
auf der Leitung 260. Wenn dann in den Stufen 51 15 Nach der dritten Verschiebung enthalten die acht
bis S5 des Schieberegisters überall Nullen erscheinen Stufen des Schieberegisters die Werte 00000101. Nach
(wodurch angezeigt wird, daß ein korrigierbares der dritten Verschiebung enthalten die Stufen 51
Fehlerbündel lokalisiert wurde), liefert die UND- bis 55 des Schieberegisters lauter Nullen und daher
Schaltung 258 ein Ausgangssignal, sobald eine Eins erscheint ein Signal auf der Leitung 256. Jetzt wird also
in der achten Stufe des Schieberegisters erscheint. 20 bei der vierten Verschiebung die 1 in der achten Stufe
Damit wird die UND-Schaltung 266 gesperrt und des Schieberegisters mittels der ausschließlichen ODER-die
Rückkopplungsverbindung des Schieberegisters Schaltung 262 modulo-2 zu der 1 addiert, die aus dem
unwirksam gemacht. Die angegebene Lösung ist nur Pufferspeicher 252 kommt und auf der Ausgangsein
Beispiel aus den vielen Möglichkeiten, das Un- leitung 264 so eine Null erzeugt. Dadurch ist der
wirksammachen der Rückkopplungsverbindung des 25 Fehler, der das vierte empfangene Bit zu einer 1 machte,
Schieberegisters zu erreichen, wenn ein korrigierbarer korrigiert. Während der Korrektur wird die UND-Fehler
lokalisiert worden ist. Schaltung 266 durch das Ausgangssignal der UND-
Die in F i g. 5 dargestellte Korrekturschaltung 250 Schaltung 258 gesperrt und dadurch die Rückkopp---
und der'Decoder 239 erkennen und korrigieren Fehler lungsverbindung innerhalb des Schieberegisters unter-
durch Ausführung der folgenden Schritte: 3° brochen. Somit enthalten nach der vierten Verschie-
1. Die ganze empfangene Nachricht wird in den bung die Stufen 51 bis 58 des Schieberegisters die
Pufferspeicher 252 und gleichzeitig in das Schiebe- Ziffern 00000010. Bei der fünften Verschiebung gelangt
register des Decoders 239 eingegeben. Der Inhalt des die richtig empfangene fünfte Ziffer (1) aus dem Pufferrückgekoppelten
Schieberegisters des Decoders 239 speicher auf die Ausgangsleitung. Diese Ziffer wird
wird jedesmal verschoben, wenn ein Bit in das System 35 durch die in der achten Stufe des Schieberegisters ergelangt.
Der Pufferspeicher 252 besitzt keine Rück- scheinende Null nicht beeinflußt. Nach der fünften
kupplungsverbindung. Während dieser Zeit ist auf Verschiebung enthalten die Stufen 51 bis 58 des
der Leitung 260 kein Signal vorhanden. Schieberegisters die Werte 00000001. Somit wird bei
2. Jetzt wird die empfangene Nachricht Bit für Bit der sechsten Verschiebung die 1, die aus dem Pufferaus
dem Pufferspeicher ausgelesen und der Inhalt des 4° speicher 252 kommt, modulo-2 zu der 1 addiert, die in
rückgekoppelten Schieberegisters im Decoder 239 für der achten Stufe des Schieberegisters erscheint und so
jedes Bit einmal verschoben, wobei am Eingang des eine Null auf der Ausgangsleitung erzeugt. Nach der
Decoders keine Bits eintreffen. Während dieses sechsten Verschiebung sind beide bei der Übertragung
Schrittes (und während des nächsten) ist auf der aufgetretene Fehler korrigiert, und alle Stufen des
Leitung 260 ein Signal vorhanden. 45 Schieberegisters enthalten lauter Nullen. Somit ge-
3. Sobald in den ersten fünf Stufen des Schiebe- langen bei allen folgenden Verschiebungen die Stellen
registers lauter Nullen erscheinen, befindet sich das unverändert aus dem Pufferspeicher 252 auf die
Fehlermuster in den drei werthöchsten Stufen des Angangsleitung 264.
Registers, und die falschen Bits kommen jetzt aus dem Wenn nach n—b-Verschiebungen (wobei η die
Pufferspeicher 252. Da sich auf den Leitungen 256 50 Blocklänge der Nachricht und b die Länge eines
und 260 Signale befinden, liefert die UND-Schaltung korrigierbaren Fehlerbündel ist) die Bedingung nicht
258 jedesmal ein Ausgangssignal, wenn eine 1 in der erfüllt ist, daß in den ersten fünf Stufen des Schiebeachten
Stufe des Schieberegisters erscheint. Somit registers lauter Nuller stehen, zeigt das an, daß ein
sorgt die ausschließliche ODER-Schaltung 262 dafür, nicht korrigierbarer Fehler aufgetreten ist.
daß die falschen Bits aus dem Pufferspeicher 252 55 Das in F i g. 5 dargestellte System kann ebenfalls
komplementiert werden, bevor sie auf die Ausgangs- Fehlerbündel entdecken, die in den Redundanzbits
leitung 264 übertragen werden. (zur Fehlererkennung und -korrektur) aufgetreten Um an einem Beispiel die Fehlerkorrektur zu zeigen, sind. Wenn z. B. die empfangene Nachricht in den Bitsei
angenommen, daß das vierte und sechste Bit in der stellen 13 und 15 fehlerhafte Bits enthielt (d. h. die
empfangenen Nachricht falsch waren. In diesem Fall 60 empfangene Nachricht war 1000100101111100) könnte
ist die empfangene Nachricht 1001110101110110. Nach dieser Fehler korrigiert werden. Nachdem das Prüf-Errechnung
des Prüfwortes enthalten die Stufen 51 wort errechnet ist, enthalten die Stufen 51 bis 58 des
bis 58 des Schieberegisters im Decoder 239 die Werte Schieberegisters die Werte 11001111. Nach jeder Ver-00101000.
Da die ersten fünf Stufen des Schiebe- Schiebung enthält dann das Schieberegister die in der
registers nicht lauter Nullen enthalten, erscheint kein 65 folgenden Tabelle angegebenen Werte. Die erste EinSignal
am Ausgang 256 der UND-Schaltung 254. tragung in der Tabelle zeigt das Prüfwort. Jede nach-Der
Inhalt des Pufferspeichers und des rückgekoppelten folgende Eintragung gibt den Inhalt der 8 Stufen des
Schieberegisters wird dann verschoben, und das erste Schieberegisters nach einer Verschiebung an.
Prüfwort
1. Verschiebung
2. Verschiebung
3. Verschiebung
4. Verschiebung
5. Verschiebung
6. Verschiebung
7. Verschiebung
8. Verschiebung
9. Verschiebung
10. Verschiebung
11. Verschiebung
12. Verschiebung
1 | 2 | 3 | 4 | 5 | 6 | 7 |
1 | 1 | 0 | 0 | 1 . | 1 | 1 |
1 | 0 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 | 1 | 1 |
0 | 0 | 1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 | 0 | 1 |
0 | 0 | 0 | 0 | 0 | 1 | 0 |
1 1 0 0 1 1 1 0 0 0 0 0 1
Wie in der Tabelle dargestellt, enthalten nach Ausführung von zwölf Verschiebungen die ersten fünf
Stufen des Schieberegisters lauter Nullen. Zum gleichen Zeitpunkt sind ebenfalls die ersten zwölf (richtig
empfangenen) Bits vom Pufferspeicher auf die Ausgangsleitung'gelangt.
Die fehlerhaften Bits auf den Stellen 13 und 15 können wie oben beschrieben korrigiert
werden.
Im allgemeinen brauchen Fehler in den Redundanzbits .nicht korrigiert zu werden, sondern nur solche in
den Datenbits. Im Schieberegister müssen jedoch genügend Verschiebungen vorgenommen werden, um
festzustellen, daß ein aufgetretener Fehler korrigierbar ist.
Obwohl in den oben gegebenen Beispielen angenommen wurde, daß der Pufferspeicher 252 die ganze
übertragene Nachricht aufnehmen kann, ist das keine notwendige Voraussetzung. Wenn nur Datenbits
korrigiert werden sollen, braucht der Pufferspeicher nur so groß sein, daß er alle übertragenen Datenbits
aufnehmen kann. In den oben gegebenen Beispielen hätte ein Pufferspeicher mit einer Kapazität von 8 Bits
voll ausgereicht, um alle übertragenen Datenbits aufzunehmen. In einem System, in welchem die Redundanzbits
nicht im Pufferspeicher gespeichert werden, muß der Eingang des Pufferspeichers vom Eingang
des Systems getrennt werden. Das kann durch Anordnen einer UND-Schaltung 72 zwischen den
Eingang des Pufferspeichers und den Systemeingang erfolgen. Die Leitung 74 gestattet die Speicherung von
Bits in den Pufferspeicher während der Zeit, in welcher Datenbits in das System gelangen. Während der Zeit,
in welcher Redundanzbits in das System gelangen, erscheint kein Signal auf der Leitung 74, und die UND-Schaltung
72 sperrt dann für die Redundanzbits den Eingang des Pufferspeichers 252.
System zum Codieren, Decodieren und Korrigieren
In F i g. 6 sind Einzelheiten eines kombinierten Systems zum Codieren, Decodieren und Korrigieren
von Nachrichten gegeben, welches die oben beschriebene vereinfachte Version dieser Erfindung enthält.
Das System kann eine Nachricht codieren, ein Prüfwort für eine codierte Nachricht erzeugen und Fehlerbündel
erkennen und korrigieren, die in einer codierten Nachricht aufgetreten sind.
Das System enthält die oben in Verbindung mit den F i g. 4 und 5 beschriebenen Elemente sowie einige
zusätzliche Elemente. Der wichtigste Zusatz ist der so Hauptspeicher 300, dessen Funktion später beschrieben
wird. Der Hauptspeicher 300 kann ein Kernspeicher, Magnetplatten- oder Magnettrommelspeicher'
oder ein anderes geeignetes Speichermedium sein. Da zum Codieren und Decodieren von Nachrichten
»5 nur ein Schieberegister 302 verwendet wird, muß eine Zeitsteuerung vorgesehen werden, die eine zu codierende
von einer zu decodierenden Nachricht getrennt hält. Zu diesem Zweck wird ein Taktsignal 304 auf die
Leitung 306 gegeben. Die Frequenz des Taktsignals ist die gleiche wie die Frequenz, mit der Bits dem
System zugeführt werden, d. h., während jeder Bitperiode steigt und fällt der Signalpegel 304 einmal.
Eine zu codierende Nachricht wird dem System über die Leitung 308 zugeführt, die an einen Eingang der
UND-Schaltung 310 angeschlossen ist. Die Taktsignalleitung 306 ist an den anderen Eingang der
UND-Schaltung 310 angeschlossen, so daß die Bits einer zu codierenden Nachricht nur während der Zeit
in das System gelangen können, in welcher der Pegel
des Signals 304 hoch ist. Über die Leitung 312 gelangen
zu decodierende Nachrichten in das System und werden über die UND-Schaltung 314 weitergegeben.
Die Taktgeberleitung 306 ist an die Inverterschaltung 316 angeschlossen, deren Ausgang den
anderen Eingang der UND-Schaltung 314 speist, so daß die Bits einer zu decodierenden Nachricht während
der Zeit in das System gelangen, in welcher der Pegel des Taktsignals 304 niedrig ist.
Codieren einer Nachricht
Wenn eine zu codierende Nachricht über die Leitung 308 in das System gelangt und die UND-Schaltung
310 durchläuft, werden die Bits dieser Nachricht ebenfalls der UND-Schaltung 318 zugeleitet, deren
Ausgang einen Eingang der ODER-Schaltung 320 speist, deren Ausgang wiederum direkt mit der Ausgangsleitung
322 des Codierers verbunden ist. Der andere Eingang der UND-Schaltung 318 ist mit der
Taktgeberleitung 324 verbunden, auf der während der Zeit, in welcher eine zu codierende Nachricht empfangen
wird, ein Signal vorhanden ist. Die Bits der zu codierenden Nachricht werden ebenfalls dem Modulo-2-Addierer
326 zugeführt. Das Signal auf der Taktgeberleitung 324 wird ebenfalls der ODER-Schaltung
328 zugeleitet, deren Ausgang mit einem Eingang der UND-Schaltung 330 verbunden ist, deren Ausgang
wiederum an den zweiten Eingang des Modulo-2-Addierers 326 angeschlossen ist. Somit erfolgt wäh-
23 24
rend der Zeit, in der eine zu codierende Nachricht gen worden sind, enthält das Schieberegister das
empfangen wird, eine Rückkopplung von der wert- später bei der Korrektur zu verwendende Prüfwort,
höchsten Stufe des Schieberegisters 302 über die UND- Das Prüfwort wird im Hauptspeicher 300 gespeichert
Schaltung 330 auf den Modulo-2-Addierer 326 (wo und später, wie im folgenden beschrieben, verwendet,
der Inhalt der werthöchsten Stufe des Schieberegisters 5 Somit wird durch Ein- und Ausspeichern des Schiebe-
modulo-2 mit einem eintreffenden Datenbit addiert registerinhalts in den und aus dem Hauptspeicher 300
wird) und vom Addierer zu den entsprechenden Stufen vor und nach jeder Verschiebung nur ein Schiebe-
des Schieberegisters 302 in der oben in Verbindung register 302 für das Codieren und das Decodieren von
mit F i g. 4 beschriebenen Art. Nach Empfang aller Nachrichten verwendet.
Bits einer zu codierenden Nachricht ist der Rest der io
Division des Polynoms in den Stufen des Schiebe- Fehlererkennung und -korrektur
registers 302 enthalten. Zu diesem Zeitpunkt werden Bei der oben beschriebenen Decodierung ergibt sich der Leitung 324 keine Impulse mehr zugeführt, um ein bei der Korrektur zu verwendendes Prüfwort, das den Eingang 308 des Codierers vom Ausgang 322 zu im Hauptspeicher 300 gespeichert wird. Das Prüfwort trennen. Durch das Ausfallen der Impulse auf der 15 wird dann dem Hauptspeicher entnommen und zum Leitung 324 wird auch die UND-Schaltung 330 ge- Schieberegister 338 übertragen, das in der Korrektursperrt, die eine Rückkopplung auf das Schiebe- schaltung des Spezialrechners enthalten ist. Zur gleiregister 302 während der Zeit verhindert, in der die chen Zeit wird die Nachricht, die während der Deco-Restbits (Redundanzbits) zum Ausgang des Codierers dierung in dem Hauptspeicher 300 gespeichert wurde, gelangen. Da das auf der Leitung 324 vorhandene 20 zum Pufferspeicher 340 in der Korrekturschaltung Signal durch die Inverterschaltung 332 invertiert wird, übertragen. Wie bereits im Zusammenhang mit bevor es der UND-Schaltung 334 zugeführt wird, F i g. 5 erwähnt, braucht nur der Datenbits enthaltende können die Restbits aus dem Schieberegister 302 über Teil der Nachricht zum Pufferspeicher 340 übertragen die UND-Schaltung 334 und die ODER-Schaltung 320 zu werden, jedoch kann auch die ganze Nachricht auf den Ausgang 322 des Codierers zugeleitet werden. 25 (einschließlich Datenbits und Redundanzbits) auf
registers 302 enthalten. Zu diesem Zeitpunkt werden Bei der oben beschriebenen Decodierung ergibt sich der Leitung 324 keine Impulse mehr zugeführt, um ein bei der Korrektur zu verwendendes Prüfwort, das den Eingang 308 des Codierers vom Ausgang 322 zu im Hauptspeicher 300 gespeichert wird. Das Prüfwort trennen. Durch das Ausfallen der Impulse auf der 15 wird dann dem Hauptspeicher entnommen und zum Leitung 324 wird auch die UND-Schaltung 330 ge- Schieberegister 338 übertragen, das in der Korrektursperrt, die eine Rückkopplung auf das Schiebe- schaltung des Spezialrechners enthalten ist. Zur gleiregister 302 während der Zeit verhindert, in der die chen Zeit wird die Nachricht, die während der Deco-Restbits (Redundanzbits) zum Ausgang des Codierers dierung in dem Hauptspeicher 300 gespeichert wurde, gelangen. Da das auf der Leitung 324 vorhandene 20 zum Pufferspeicher 340 in der Korrekturschaltung Signal durch die Inverterschaltung 332 invertiert wird, übertragen. Wie bereits im Zusammenhang mit bevor es der UND-Schaltung 334 zugeführt wird, F i g. 5 erwähnt, braucht nur der Datenbits enthaltende können die Restbits aus dem Schieberegister 302 über Teil der Nachricht zum Pufferspeicher 340 übertragen die UND-Schaltung 334 und die ODER-Schaltung 320 zu werden, jedoch kann auch die ganze Nachricht auf den Ausgang 322 des Codierers zugeleitet werden. 25 (einschließlich Datenbits und Redundanzbits) auf
Nach jeder Verschiebung des Inhalts des Schiebe- Wunsch dorthin übertragen werden,
registers 302 während des Codierens wird der Inhalt Fehlererkennung und -korrektur erfolgt genau so
des Schieberegisters 302 im Hauptspeicher 300 ge- wie in dem in F i g. 5 beschriebenen System. Die,,
speichert. Vor dem nächsten Schiebevorgang beim UND-Schaltung 342 überwacht die r—b wertnied-
Codieren, wird der im Hauptspeicher 300 gespeicherte 30 rigsten Stufen des Schieberegisters, um herauszufinden,
Inhalt des Schieberegisters 302 wieder zu diesem über- ob sie lauter Nullen enthalten. Diese Bedingung zeigt
tragen. an, daß das Fehlermuster in den b höheren Stufen des
Decodieren einer Nachricht Schieberegisters steht. Der Inhalt des Pufferspeichers
314 (der keine Rückkopplungsverbindung hat) und
Wie oben beschrieben, gelangen die Bits einer zu 35 des Schieberegisters 338 (das, wie oben beschrieben,
decodierenden Nachricht über die UND-Schaltung 314 eine Rückkopplungsverbindung aufweist) werden
während der Zeit in das System in der der Pegel des gleichzeitig verschoben. Das Ausgangssignal der
Taktsignals 304 niedrig ist. Die Bits der zu deco- UND-Schaltung 342 und das der werthöchsten Stufe
dierenden Nachricht werden ebenfalls dem Haupt- des Schieberegisters 338 speisen die UND-Schaltung
speicher 300 zugeleitet, wo sie bis zur Fehlerkorrektur 4° 344, die infolgedessen ein Ausgangssignal erzeugt,
gespeichert bleiben. Das auf Leitung 306 erscheinende wenn eine Anzeige für das Vorliegen eines falschen
Signal wird nach Umkehrung durch die Schaltung 316 Bits aus der werthöchsten Stufe des Schieberegisters
über die ODER-Schaltung 328 der UND-Schaltung 338 ausgeschoben wird. Die Fehleranzeige wird dem
330 zugeleitet und ermöglicht die Rückkopplung inner- Modulo-2-Addierer 346 zugeleitet, damit er das fehlerhalb
des Schieberegisters 302 während des Decodie- 45 hafte Bit, das aus dem Pufferspeicher 340 kommt,
rens. Die Bits der zu decodierenden Nachricht werden komplementiert. Da eine Rückkopplung innerhalb des
dem Modulo-2-Addierer 336 zugeführt, dessen anderes Schieberegisters 338 verhindert werden muß, nachdem
Eingangssignal von der letzten Stufe des Schiebe- ein zu korrigierendes Fehlerbündel lokalisiert wurde,
registers 302 kommt. Das Ausgangssignal des Modulo- wird das Ausgangssignal der UND-Schaltung 342
2-Addierers 336 bildet ein Rückkopplungssignal für 50 durch die Inverterschaltung 347 invertiert, deren Ausdas
Schieberegister, wie das bereits in Verbindung mit gang mit einem Eingang einer UND-Schaltung 348
F i g. 5 beschrieben wurde. Die Bits der zu deco- verbunden ist, die in der Rückkopplungsschleife des
dierenden Nachricht werden ebenfalls direkt bestimm- Schieberegisters 338 liegt. Dadurch wird eine Rückten
Stufen des Schieberegisters zugeleitet, um die kopplung innerhalb des Schieberegisters 338 verhin-Rückkopplung
zu bewirken, wie das in Verbindung 55 dert, nachdem ein zu korrigierendes Fehlerbündel
mit F i g. 5 bereits beschrieben wurde. lokalisiert worden ist.
Wiederum wird nach jeder Verschiebung des Schiebe- Wie aus obiger Beschreibung zu ersehen ist, verregisterinhaltes
beim Decodieren der Inhalt des Schiebe- arbeitet das in F i g. 6 dargestellte System drei Nachregisters
in den Hauptspeicher 300 übertragen, aus richten gleichzeitig. Es codiert eine Nachricht, decoweichem
er unmittelbar vor der nächsten Verschiebung 60 diert eine andere Nachricht (und erzeugt ein Prüfwort
in das Schieberegister zurückgespeichert wird. Nach- hierfür) und erkennt und korrigiert Fehler in einer
dem alle Bits der zu decodierenden Nachricht empfan- dritten Nachricht.
Hierzu 4 Blatt Zeichnungen
Claims (1)
1 2
entwickelt, um Möglichkeiten zum Erkennen und
Patentanspruch: Korrigieren derartiger Fehler zu schaffen. Die Fehler
arten, die durch die verschiedenen Codes erkannt und
Schaltungsanordnung zur Korrektur von Fehler- korrigiert werden können, fallen grundsätzlich in eine
bündeln aus maximal b Bits in binären Code- 5 von zwei Kategorien, entweder sind es Einzelfehler
Wörtern eines systematischen Codes, in dessen oder es sind Fehlerbündel. Bei der Theorie für das
Codewörtern der Informations-und der Redundanz- Korrigieren von Einzelfehlern geht man von der An-.
teil gleich groß sind, mit einem Decodierer, der nähme aus, daß eine Störung sich immer nur auf ein
aus einem übertragenen Codewort ein Prüfwort Bit auswirkt, und daher die Wahrscheinlichkeit eines
ableitet zur Feststellung, ob ein korrigierbares io gegebenen Fehlermusters nur von der Anzahl der Feh-Fehlerbündel
vorliegt^ und mit einer an den Deco- ler abhängt. So korrigiert z. B. ein Code zur Korrektur
dierer angeschlossenen Fehlerkorrekturschaltung, von Einzelfehlern ein Muster von b oder weniger
dadurch gekennzeichnet, daß der De- Fehlern in einem Block von η Bits. Wenn diese Ancodierer
(Fig. 5; 239) ein /--stufiges [r = Grad nähme auch für einige Übertragungssysteme zulässig
des Codepolynoms P(X)] Schieberegister enthält, 15 ist, so gibt es doch zahlreiche andere Systeme, in denen
bei dem ein Antivalenz-Glied (z. B. 240, 247, 246) Fehler vornehmlich in Bündelform auftreten. So treten
auf eine Registerstufe / (z. B. S8, Sl, 56) folgt, z. B. Störungen in Telefonleitungen durch überwenn
einer der dieser Stufe zugeordneten Koeffi- springende Funken im allgemeinen zeitweise auf und
zienten at oder bi den Wert 1 besitzt, wobei at dauern länger als ein Bit. Als weiteres Beispiel seien
den Koeffizienten der i. Potenz von X des Code- 20 Schäden auf Magnetbändern angeführt, die im allgepolynoms
P(X) darstellt und der Koeffizient bi meinen größer sind als der für die Auftragung eines
durch Lösen der Gleichung Bits erforderliche Platz, und derartige Schäden be7
treffen mehrere Bits in einem gegebenen Bandbereich.
^1 h γη-r+i _ ι ^n derartigen Systemen kann das Auftreten von
.-^0 l ~~ 25 Fehlerbündeln erwartet werden.
Gegenwärtig gibt es verschiedene Codes zur Korrek-
modulo P(X) bestimmt wird, in der η die Gesamt- tür von Fehlerbündeln. Im allgemeinen werden Datenzahl
der Bits eines Codewortes bezeichnet, daß die bitfolgen codiert, indem man die Datenbitfolge durch
* zweiten Eingänge derjenigen Antivalenz-Glieder ein Codepolynom P(X) dividiert und einen Rest R(X)
(z. B. 240, 247 und 245 in Fig. 5), bei denen für 30 erhält. Die Restbits bilden die Bits zur Fehlererkendie
Koeffizienten der zugehörigen Registerstufe / nung und -korrektur und werden nach den Datenbits
gilt: üi = 0 und bi = 1, an den Eingang der Deco- übertragen, wobei das Ganze die aus η Bits bestehende
dierschaltung angeschlossen sind, daß die zweiten Nachricht M(X) darstellt. Vor der Nachricht kann eine
Eingänge derjenigen Antivalenz-Glieder, bei denen Reihe sogenannter Vorimpulse übertragen werden,
für die Koeffizienten der zugehörigen Registerstufe 35 die den Anfang der Nachricht kennzeichnen. Auf der
gilt: cn = 1 und bi = 0, mit dem Ausgang des Empfängerseite macht ein aus diesen Vorimpulsen
Antivalenz-Gliedes (240) der r. Stufe des Schiebe- gewonnenes Vorsignal die Decodierschaltungen empregisters
verbunden sind, daß der 2. Eingang des fangsbereit und stellt den Anfang einer Nachricht fest.
Antivalenz-Gliedes der r. Stufe mit dem Eingang Die Decodierschaltung arbeitet dann weiter und divider
Decodierschaltung und dessen Ausgang mit 40 diert die Nachricht durch das Codepolynom P(X).
den zweiten Eingängen derjenigen Antivalenz- Der sich aus dieser Division ergebende Rest ist Null,
glieder (z. B. 241, 242 und 246 in F i g. 5) verbun- wenn keine Fehler bei der Übertragung aufgetreten
den ist, bei denen für die Koeffizienten der züge- sind. Wenn jedoch ein korrigierbares Fehlerbündel
hörigen Registerstufe gilt: at — bi = 1, daß als auftrat, definiert der durch den Decoder aus dem die
Schaltung zum Feststellen, ob ein korrigierbares 45 Korrektur von Fehlerbündeln ermöglichenden Code-Fehlerbündel
vorliegt, ein UND-Glied (254) dient, polynom erhaltene Rest ein Fehlermuster, das zur
das an die Ausgänge der / niederstelligsten Stufen Lokalisierung und Korrektur der Fehler benutzt wird,
des Schieberegisters angeschlossen ist, wobei/einen Der Umfang der Klasse von Polynomen, die als
,,,^ ., r—i ,, / , i\i_ ·* j. jjn Codepolynome bei den bisherigen Systemen zur
Wert zwischen -.,- und Io&(«+1) besitzt, und daß 5o KomTk Jr von Fehierbündeln benutzt werden können,
das Ausgangssignal des UND-Gliedes (254) zur ist durch bestimmte Merkmale begrenzt. Eines dieser
in einem Antivalenz-Glied (262) erfolgenden Merkmale ist, daß die Summe zweier möglicher
Korrektur des synchron in einem Pufferspeicher Muster von Fehlerbündeln E1(X) + E2(X), die durch
(252) mitverschobenen Codewortes verwendet wird. das Codepolynom P(X) dividiert wird, einen Rest R(X)
55 ergeben muß, der von Null verschieden ist. Somit hängt das Codepolynom ab von der Länge des über-
tragenen Nachrichtenblocks und der Länge des
längsten korrigierbaren Fehlerbündels. Eine der Probleme
bei den bisherigen Systemen zur Korrektur
Die Erfindung bezieht sich auf eine Schaltungs- 60 von Fehierbündeln liegt darin, daß außer wiederanordnung
gemäß Oberbegriff des Patentanspruchs. holtem Probieren kein Weg bekannt ist, ein wirksames
In Digitalrechnern und Datenübertragungssystemen Codepolynom zu finden, das zur Entdeckung und
werden sehr häufig binäre Codefolgen verwendet. Korrektur von Fehlerbündeln einer gegebenen Länge
Diese binären Codefolgen haben die Form von Folgen verwendet werden kann. Viele Codepolynome, mit
positiver und negativer elektrischer Impulse, die Null- 65 denen sich Fehlerbündel korrigieren lassen, sind be-
und Eins-Datenbits darstellen. Für Übertragungs- kannt, aber ihre Anwendung führt im allgemeinen nur
systeme, die Störungen unterworfen sind, wurden dazu, daß zu der Nachricht eine Anzahl von Redunviele
verschiedene Arten von Fehlerkorrekturcodes danzbits hinzugefügt wird, drei- oder mehrmal so
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US602101A US3487361A (en) | 1966-12-15 | 1966-12-15 | Burst error correction system |
Publications (3)
Publication Number | Publication Date |
---|---|
DE1524891A1 DE1524891A1 (de) | 1970-12-17 |
DE1524891B2 DE1524891B2 (de) | 1975-04-17 |
DE1524891C3 true DE1524891C3 (de) | 1975-12-11 |
Family
ID=24409972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1524891A Expired DE1524891C3 (de) | 1966-12-15 | 1967-12-14 | Schaltungsanordnung zur Korrektur von Fehlerbündeln |
Country Status (4)
Country | Link |
---|---|
US (1) | US3487361A (de) |
DE (1) | DE1524891C3 (de) |
FR (2) | FR1540851A (de) |
GB (1) | GB1198510A (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3568148A (en) * | 1969-04-02 | 1971-03-02 | Radiation Inc | Decoder for error correcting codes |
US3622984A (en) * | 1969-11-05 | 1971-11-23 | Ibm | Error correcting system and method |
JPS55149551A (en) | 1979-05-10 | 1980-11-20 | Toshiba Corp | Data correcting circuit |
US4410989A (en) * | 1980-12-11 | 1983-10-18 | Cyclotomics, Inc. | Bit serial encoder |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3373404A (en) * | 1964-11-10 | 1968-03-12 | Gustave Solomon | Error-correcting method and apparatus |
US3389375A (en) * | 1965-02-01 | 1968-06-18 | Bell Telephone Labor Inc | Error control system |
US3402390A (en) * | 1965-03-01 | 1968-09-17 | Motorola Inc | System for encoding and decoding information which provides correction of random double bit and triple bit errors |
US3411135A (en) * | 1965-03-15 | 1968-11-12 | Bell Telephone Labor Inc | Error control decoding system |
-
1966
- 1966-12-15 US US602101A patent/US3487361A/en not_active Expired - Lifetime
-
1967
- 1967-10-12 FR FR8750A patent/FR1540851A/fr not_active Expired
- 1967-11-27 FR FR8848A patent/FR93450E/fr not_active Expired
- 1967-12-13 GB GB56950/67A patent/GB1198510A/en not_active Expired
- 1967-12-14 DE DE1524891A patent/DE1524891C3/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
GB1198510A (en) | 1970-07-15 |
FR93450E (fr) | 1969-03-28 |
FR1540851A (fr) | 1968-09-27 |
DE1524891B2 (de) | 1975-04-17 |
US3487361A (en) | 1969-12-30 |
DE1524891A1 (de) | 1970-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2060643C3 (de) | Schaltungsanordnung zur Korrektur von Einzelfehlern | |
DE2357004C3 (de) | Verfahren und Einrichtung zur Fehlerkorrektur für Daten | |
DE3231956A1 (de) | Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes | |
DE2914515A1 (de) | Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem | |
DE2657826A1 (de) | Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage | |
DE2262070A1 (de) | Mit schieberegistern arbeitendes fehlerkorrektursystem | |
DE2221171C3 (de) | Fehlerkorrigierendes Datenübertragungssystem | |
DE3006958A1 (de) | Digitalsignal-uebertragungssystem | |
DE2447255B2 (de) | Verfahren und Schaltungsanordnungen zur Fehlerprüfung In digitalen Datenübertragungsanlagen | |
DE2217935C3 (de) | Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht | |
DE2916619A1 (de) | System zum uebertragen binaerer daten ueber eine anzahl von kanaelen | |
DE1964358C3 (de) | Fehlerkorrekturanordnung für ein Datenübertragungssystem | |
DE1599084A1 (de) | Einrichtung zur Korrektur von Fehlerbuendeln | |
DE2324538A1 (de) | Digitale nachrichtenuebertragungsanordnung | |
DE1524891C3 (de) | Schaltungsanordnung zur Korrektur von Fehlerbündeln | |
DE1290565B (de) | Verfahren zur empfaengerseitigen Korrektur dualkodierter Nachrichten | |
DE1449334A1 (de) | Datenverarbeitungsanlage | |
DE2000565A1 (de) | Fehlerkorrigierendes System zur Korrektur mehrfacher,zufaelliger Fehler | |
DE1168677B (de) | System zur Fehlerermittlung und Fehlerkorrektur | |
DE3852569T2 (de) | Verfahren und Gerät zur Dekodierung von blockkodierten Daten, beeinträchtigt durch Ersatz, Einfügungen und Verlust von Symbolen. | |
DE1774225A1 (de) | Fehlerkorrekturschaltung | |
DE2758952B1 (de) | Schaltungsanordnung zum Codieren oder Decodieren von Binaerinformationen | |
DE2063275B2 (de) | Verfahren und Vorrichtung zur Fehlererkennung beim Decodieren einer ursprünglich als Signalfolge mit m Pegelstufen vorliegenden Nachricht | |
DE2300505A1 (de) | Vorrichtung zur schwellwertdecodierung | |
DE3104762A1 (de) | System zur binaeren datenuebertragung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
E77 | Valid patent as to the heymanns-index 1977 | ||
8339 | Ceased/non-payment of the annual fee |