DE3104762C2 - - Google Patents
Info
- Publication number
- DE3104762C2 DE3104762C2 DE3104762A DE3104762A DE3104762C2 DE 3104762 C2 DE3104762 C2 DE 3104762C2 DE 3104762 A DE3104762 A DE 3104762A DE 3104762 A DE3104762 A DE 3104762A DE 3104762 C2 DE3104762 C2 DE 3104762C2
- Authority
- DE
- Germany
- Prior art keywords
- bits
- information
- bit
- memory
- corrected
- 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
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- 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
- H04L1/0041—Arrangements at the transmitter end
-
- 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
- H04L1/0045—Arrangements at the receiver end
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Description
Die Erfindung bezieht sich auf einen Codierer und
Decodierer gemäß dem Oberbegriff des Hauptanspruchs.
In Systemen zur binären Datenübertragung besteht
aufgrund unvermeidlicher Störungen immer eine gewisse
Wahrscheinlichkeit für den Empfang von falschen Zeichen.
Um bei der Decodierung verfälschte Binärinformation zu
erkennen und zu korrigieren, ist eine Vielzahl von
Verfahren bekannt geworden, so zum Beispiel in dem Buch
"Error-Correcting-Codes" von W.W. Peterson und E.J.
Weldon, The M.I.T. Press, Cambride, Mass./USA second
edition, 1972 auf den Seiten 289 bis 308. Auf den Seiten
256-261 desselben Buchs ist ein gattungsgemäßer Codierer für einen
quasizyklischen Code beschrieben, der ein
Schieberegister enthält.
Es ist Aufgabe der Erfindung, einen neuartigen Codierer und
Decodierer für einen quasizyklischen Code anzugeben.
Eine vorteilhafte Schaltung, die die potentielle
Fehlerkorrekturfähigkeit des Codes ausnutzt, minimalen
Speicherplatz benötigt und dabei die Anzahl der
Korrekturschritte möglichst klein hält, ist im Anspruch 2
angegeben.
Die Lösung dieser Aufgabe erfolgt mit den im Anspruch 1
angegebenen Mitteln. Vorteilhafte Weiterbildungen können
den Unteransprüchen entnommen werden.
Durch die Verwendung eines quasizyklischen Codes wird
bei gleichem Verhältnis zwischen binärer Prüf- und
Nutzinformation eine größere Übertragungssicherheit als
mit den bekannten BCH-Codes bei gleichen Parametern n
und k erreicht. Bei gleichen Forderungen an die
Übertragungssicherheit wie bei BCH-Codes ist die
Nutzinformation in einem Codewort zu Lasten der
Prüfinformation größer. Dies führt dazu, daß die Menge
an Nutzinformation, die in der Zeiteinheit übertragen
werden kann, zunimmt.
Ein weiterer Vorteil in der Verwendung quasizyklischer
Codes, besteht darin, daß sich mit relativ einfachen
Schieberegisterschaltungen, ähnlich wie bei zyklischen
Codes, die Codierung realisieren läßt. Außerdem kann
die Codierschaltung als wesentlicher Teil zur Berechnung
der Syndrome im Decoder verwendet werden.
Bei der Decodierung des verwendeten, quasizyklischen Codes werden
alle bis zu zweifachen Fehler und ein erheblicher Teil der dreifachen
Fehler im Informationsteil des empfangenen Codewortes
korrigiert. Das Decodierschema ist so ausgelegt, daß
sich von den korrigierbaren 4-fachen und 5-fachen Fehlern
im empfangenen Wort höchstens 3-fache Fehler im Informationsteil
befinden können und damit diese Fehler mit höchstens 3
Schritten korrigiert werden. Vergleichbare BCH-Codes können
mit einer auf dem Berlekamp-Massey-Algorithmus beruhenden
Schaltung nur alle höchstens zweifachen Fehler korrigieren.
Weiterhin werden für solche zyklischen BCH-Codes im Decodierer
komplizierte Rechen und Logikschaltungen benötigt.
Ein zusätzlicher Vorteil ergibt sich aus der Tatsache, daß
von allen möglichen korrigierbaren Fehlermustern sich höchstens
3 Bitfehler im informationstragenden Teil des Codewortes
befinden.
Da eine klare zeitliche Trennung von zwei verschiedenen
Taktphasen möglich ist, kann dadurch eine Beschleunigung
der Decodierung erreicht werden.
Die Erfindung wird anhand von Zeichnungen eines Ausführungsbeispieles
näher erläutert. Es zeigt:
Fig. 1 ein Blockschaltbild eines Codierers für einen
quasizyklischen (36, 24)-Code;
Fig. 2 im Blockschaltbild des Codierers gemäß Fig. 1
erwähnte Takte T₁, T₂ und T₃;
Fig. 3 ein Blockschaltbild eines Decodierers für den
quasizyklischen (36, 24)-Code;
Fig. 4 im Blockschaltbild des Decodierers gemäß Fig. 3
erwähnte Takte T₄ bis T₉ und
Fig. 5 ein Blockschaltbild eines anderen Schaltkreises
im gestrichelt umrahmten Teil der Fig. 3.
Die Erfindung wird an einem Ausführungsbeispiel mit einem
quasizyklischen (36, 24)-Code beschrieben. Dieser Code besteht
aus n = 36 Bits je Codewort mit k = 24 Bits als Nutzinformation
und n-k = 12 Bits als Prüfinformation. Der Code
heißt quasizyklisch, weil sich die Redundanz-Matrix in zyklische
Teilmatrizen zerlegen läßt. Allgemein gesagt besteht
der quasizyklische Code aus Codewörtern in der Form 3i, 2i
für n und k mit i als ganze Zahl und ab 4.
Obwohl der quasizyklische (36, 24)-Code kein zyklischer
Code ist und der Code zunächst nur in Form der Generatormatrix
vorliegt, muß zur Bildung eines Codewortes keine
in der Codierer-Schaltung nur sehr aufwendig realisierbare
Matrizenmultiplikation durchgeführt werden. Durch
die speziellen Eigenschaften des Codes und die spezielle
Zerlegung des Informationsteils eines Codewortes genügt
es, ein rückgekoppeltes Schieberegister mit einem Zusatzspeicher
zu verwenden.
Im Decoder wird das Syndrom des empfangenen Wortes berechnet.
Unter einem Syndrom versteht man einen Zeilenvektor
mit r Komponenten, der dadurch entsteht, daß man ein
Codewort eines (n, k)-Codes als (1, n)-Matrix (Codevektor)
auffaßt und diesen Codevektor mit der transponierten
(r, n) paritycheck-matrix (Kontrollmatrix) multipliziert.
Für r gilt dabei r = n-k. Ist das Syndrom nicht gleich
den Nullvektor, besteht eine Unvereinbarkeit zwischen
codierter und decodierter Information, wie sie zum Beispiel
durch Übertragungsfehler hervorgerufen wird.
Für den verwendeten Code ergeben sich 2¹² verschiedene
mögliche Syndrome. Jedem der (2¹² =) 4096 Syndrome ist
die Position eines Bitfehlers im Informationsteil des
empfangenen Wortes oder Null zugeordnet. Dabei gibt der
Wert des Syndroms die Adresse eines Speicherplatzes an,
der normalerweise die Position eines falsch übertragenen
Bits enthält. Enthält der Speicherplatz das Nullwort, so
bedeutet dies, daß höchstens im Redundanzteil noch Bitfehler
liegen können. Weitere Syndromberechnungen werden
dann nicht mehr durchgeführt. Da nach der Decodierung
lediglich der Informationsteil von 24 Bit von Interesse
ist, genügen 5 Bits zur Kennzeichnung der Position eines
Bitfehlers, was sich aus log₂ k errechnet, als diejenige
ganze Zahl, die größer oder höchstens gleich diesem Wert ist.
Nach der eventuell erfolgten Korrektur eines Bitfehlers
wird erneut das Syndrom des korrigierten Wortes berechnet
und ein wie oben beschriebener Vorgang durchgeführt. Nach
höchstens drei Korrekturschritten, das heißt nach dreimaliger
Berechnung des Syndroms, sind im Informationsteil
des empfangenen Wortes alle korrigierbaren Fehler beseitigt
worden. Das bedeutet, daß im Informationsteil bis zu
3 Bitfehler korrigiert wurden.
Der allgemeine Weg zur Codierung von binärer Nutzinformation
eines Codewortes besteht darin, dieses als Vektor
aufzufassen und mit der Generatormatrix zu multiplizieren.
Bei zyklischen Codes besteht eine Analogie zwischen Vektor
und Polynomdarstellung, was die Codierung und Decodierung
dieser Codes wesentlich erleichtert. Die einfachen Schieberegisterschaltungen,
wie sie auch in der Erfindung bei
Codierer und Decodierer verwendet werden, erlauben nämlich
unter anderem die Addition, Multiplikation und Division von
Polynomen und damit die einfache Codierung von zyklischen
bzw. quasizyklischen Codes.
Zur Codierung der Nutzinformation des verwendeten quasizyklischen
(36, 24)-Code, das heißt der Nutzbits U₀, U₁ . . .
U₂₃, müßte man diese daher mit der Generatormatrix G
multiplizieren, da dieser Code nicht zyklisch ist.
Zerlegt man aber die Nutzinformation in ihre beiden Hälten
U₀, U₁ . . . U₁₁ und U₁₂, U₁₃ . . . U₂₃, ist auch hier
der Übergang zur Polynomdarstellung möglich. Dann ergibt
sich für die beiden Hälften der Nutzinformation U₁ (x) und
U₂ (x):
Das Codepolynom c (x) hat dann die Darstellung:
c (x) = U₁ (x) · x²⁴ + U₂ (x) · x¹² + p (x)
Mit p (x) als Prüfpolynom, das für den gewählten Code
durch die Beziehung:
p (x) = (U₁ (x) · q₁ (x) + U₂ (x) · q₂ (x))/1 + x¹²)
gebildet wird.
Aufgrund des gewählten Codes ergeben sich g₁ (x) und g₂ (x) zu:
g₁ (x) = 1 + x + x³ + x⁵ + x⁷ + x¹⁰ + x¹¹
g₂ (x) = 1 + x⁵ + x⁷ + x⁹ + x¹⁰
Fig. 1 zeigt das Blockschaltbild des Codierers und Fig.
2 die dazugehörigen Takte T₁, T₂ und T₃, an deren Zeitachse
die fortlaufenden jeweiligen Bittakte angegeben
sind.
Die ersten 12 Bits (Bit U₀ bis U₁₁) der an einem Eingang
1 liegenden Nutzinformation U₁ (x), die von einer nicht
dargestellten Datenquelle kommt, gelangen in einen Pufferspeicher
2 und gleichzeitig über ein UND-Gatter 3 mit dem
Takt T₁ und einem nachfolgenden ODER-Gatter 8 direkt zu
einem Ausgang 29. Der Pufferspeicher erlaubt die gleichzeitige
Verarbeitung von zwei zyklischen Codewerthälften. Die
nächsten 12 Bits (Bit U₁₂ bis U₂₃) der Nutzinformation
U₂ (x) gelangen aufgrund des Taktes T₂ über ein UND-Gatter 5
an einen modulo-2-Addierer 21. Gleichzeitig gelangt U₁ (x)
aus dem Pufferspeicher 2 über ein UND-Gatter 4 auch an den
modulo-2-Addierer 21, dessen Ergebnis gelangt an eine erste
Stufe 9 eines Schieberegisters 30. Außerdem gelangt
U₂ (x) wieder über das UND-Gatter 3 und das ODER-Gatter 8
an den Ausgang 29. Die erste Stufe 9 mit den folgenden
Stufen 10 bis 20 und der modulo-2-Addierer 21 mit den nachfolgenden
modulo-2-Addierern 22 bis 28 stellen eine Codierschaltung
dar. Die Codierschaltung multipliziert gleichzeitig
die Polynome U₁ (x) mit g₁ (x) und U₂ (x) mit g₂ (x),
addiert die Multiplikationsergebnisse und bildet als Ergebnis
das Prüfpolynom (p (x) durch Division mit d (x) =
1 + x¹² (UND-Gatter 6, das den Ausgang der Stufe 20 mit dem
modulo-2-Addierer 21 verbindet und das vom Takt T₂ gesteuert wird).
Am Ende des Taktes T₂ steht das erste der 12 Prüfbits in
der Schieberegisterstufe 20, nach weiteren 12 Bittakten
sind die 12 Prüfbits über ein an die Stufe 20 angeschlossenes
UND-Gatter 7 (Takt T₃) und das ODER-Gatter 8
der Nutzinformation angefügt worden. Am Ausgang 29 tritt
auf diese Weise das Codepolynom c (x) bzw. die Bits c₀
bis c₃₅ auf. Die sich anschließenden Sendeeinrichtungen
und der Übertragungskanal sind nicht dargestellt, ebenso
wie der erforderliche Taktgenerator.
Fig. 3 zeigt das Blockschaltbild des zyklischen Decodierers
und Fig. 4 die dazugehörigen Takte T₄ bis T₉, an
deren Zeitachse die fortlaufenden, jeweiligen Bittakte
angegeben sind.
Die vor einem Eingang 40 liegenden Empfängerteile sind
nicht dargestellt. Der Taktgenerator ist mit 39 bezeichnet.
Vom Eingang 40 her gelangen die ersten 12 Bits des
empfangenen 36 Bit-Wortes wegen des Taktes T₄ bzw. T₅
gleichzeitig über ein UND-Gatter 48 in einen Pufferspeicher
44 und über ein UND-Gatter 49 in ein Vorregister 41
mit einem Serienausgang und 12 bitparallelen Ausgängen. Der
Pufferspeicher 44 erlaubt die gleichzeitige Verarbeitung
von zwei zyklischen Codehälften.
Ein zweipoliger Umschalter 62 ist mit seinem ersten beweglichen
Arm mit dem Eingang eines UND-Gatters 51 und mit
seinem zweiten beweglichen Arm mit dem Eingang eines UND-Gatters
52 verbunden, an die außerdem der Takt 7 anliegt.
Der erste Ruhekontakt des Umschalters 62 ist mit dem
Ausgang des Pufferspeichers 44 und der zweite Ruhekontakt
mit dem Eingang 40 verbunden. Der erste Arbeitskontakt ist
mit dem Ausgang eines aus zwei gleichen Hälften bestehenden,
je 12 Bit langen Summenregisters 42 und der zweite
Arbeitskontakt ist mit dem Mittenabgriff des Summenregisters
42 verbunden. Der Umschalter 62 wird vom Takt T₆
umgesteuert. Während des Taktes T₆ ist der zweipolige Umschalter
62 in der oberen Stellung und wegen des Taktes T₇
liegen die jeweiligen ersten und zweiten Informationshälften
U₁ (x) bzw. U₂ (x) gleichzeitig über die UND-Gatter 51
bzw. 52 an den Eingängen eines rückgekoppelten Schieberegisters
46, welches sich von dem in Fig. 1 gezeigten Schieberegister
30 nur dadurch unterscheidet, daß jede seiner
Stufen zusätzlich noch einen bitparallelen Ausgang hat.
Mit Hilfe dieses Schieberegisters 46 werden während des
Taktes T₇ die zu den empfangenen Informationsbits gehörenden
12 Prüfbits berechnet. Das Syndrom des empfangenen
Wortes erhält man durch Addition dieser 12 Prüfbits zu
den im Vorregister 41 stehenden 12 Prüfbits des empfangenen
Wortes. Die Addition erfolgt bitparallel mit 12 modulo-
2-Addierern 60, die an die bitparallelen Ausgänge des Schieberegisters
46 angeschaltet sind.
Während des Taktes T₈ gelangt das so erhaltene 12 Bit-Wort
durch 12 UND-Gatter 57 an den Adresseneingang eines Festwertspeichers
45. Unter der damit aufgerufenen Adresse
steht die Position des fehlerhaften Informationsbits im
empfangenen Wort, das den kleinsten Abstand vom Redundanzteil
hat. Da bei dem Fehlerkorrekturverfahren nur Bitfehler
im Informationsteil korrigiert werden, genügen zur binären
Darstellung der möglichen Bitpositionen eines Bitfehlers
5 Bits, wie schon früher erläutert. Diese 5 Bits stehen am
Datenausgang 67 des Festwertspeichers 45 während des Taktes
T₈ zur Verfügung. In einem nachfolgenden Umcodierer 47
werden diese 5 Bits in ein 24-Bit-Fehlermuster umgewandelt,
das nur eine einzige Eins an der durch die 5 Bits
adressierten Bitposition aufweist. Dieses Fehlermuster
und der Inhalt eines aus zwei gleichen Hälften bestehenden,
je 12 Bit langen Sicherstellungsregisters 43 werden
über je 12 modulo-2-Addierer 58 und 59 parallel in das
Summenregister 42 addiert, dessen Eingang über ein UND-
Gatter 50 mit dem Ausgang des Vorregisters verbunden ist.
Der zweite Eingang des UND-Gatters 50 ist mit dem Takt T₄
verbunden. Zuvor ergab sich der Inhalt des Sicherstellungsregisters
43 aus dem Informationsteil des empfangenen Wortes,
der während des Taktes T₉ über je 12 UND-Gatter 53
und 54 aus dem Summenregister 42 kopiert wurde. Sofern das
empfangene Wort ein korrigierbares Fehlermuster enthält,
ist der im Summenregister 42 abgespeicherte Informationsteil
um den ersten von eventuell mehreren Bitfehlern korrigiert
worden. Während des folgenden Taktes T₉ wird der
Inhalt des Summenregisters 42 wiederum in das Sicherstellungsregister
43 kopiert.
Mit dem korrigierten Informationsteil wird über das Schieberegister
46 nach dem oben beschriebenen Ablauf ein neues
Syndrom berechnet, wobei der Umschalter 62 jetzt in der unteren
Stellung ist. Hat das Syndrom den Wert Null, so steht
am Datenausgang 67 des Festwertspeichers 45 ebenfalls ein
Nullwort oder ein Hinweis auf Bitfehler, die sich ausschließlich
im Redundanzteil befinden. Der Ausgang eines NOR-Gatters
61, das am Datenausgang 67 angeschlossen ist, liefert
dann eine logische "1", die die Ausgänge von je 12 UND-
Gattern 55 und 56 freigibt, die mit ihren jeweils anderen
Eingängen mit den Ausgängen des Sicherstellungsregisters
43 verbunden sind und die die bereits wieder in das Sicherstellungsregister
43 kopierte Nutzinformation am Ausgang
68 zur Verfügung stellen. Die weitere Verarbeitung der
Nutzinformation ist nicht dargestellt.
Hat das Syndrom nicht den Wert Null und weist es außerdem
auf weitere Bitfehler im Informationsteil hin, so wird
über den umgeschalteten Umschalter 62 mit dem korrigierten
Informationsteil der oben beschriebene Vorgang noch einmal
wiederholt.
Mit einem Zähler 63 wird die Anzahl der Fehler im empfangenen
Wort über die Anzahl der Korrekturzyklen erfaßt, der
Takt T₉ löst die Zählung aus und stellt den Zählimpuls für
den Zähler 63 dar. Über einen Ausgang 66 kann der Zählerstand
gleichzeitig mit der korrigierten Nutzinformation
ausgegeben werden.
Diese Zählschaltung kann mit einem durch einen Schalter
64 einstellbaren Vergleicher 65 erweitert werden. Wenn das
empfangene Wort einen Fehler enthält, der mehr Korrekturzyklen
erfordert als mit dem Schalter 64 eingestellt sind,
Zahl der Korrekturzyklen = Schalterstellung (Fehlerzahl)
+1, wird die Korrektur abgebrochen und über ein UND-Gatter
69 ein Signal für Decodierversagen an einen weiteren Ausgang
70 ausgegeben. Die Korrekturfähigkeit des Decoders
kann damit so eingestellt werden, daß kein oder maximal ein,
zwei oder drei Fehler im informationstragenden Teil des
empfangenen Codewortes korrigiert werden.
Wird die eingestellte Fehlerzahl erreicht, so gibt der Vergleicher
65 über ein ODER-Gatter 71 an den Taktgenerator 39
ein Rücksetzsignal R, welches diesen in seinen Ausgangszustand
zurückstellt. Auch wenn der Decoder schon mit weniger
Fehlern als eingestellt ein Wort korrigiert hat,
wird der Taktgenerator durch das Signal des ODER-Gatters
61 über das ODER-Gatter 71 rückgesetzt. Mit dem dann vom
Taktgenerator 39 abgegebenen Rückssetzsignal RS werden außerdem
alle Arbeitsregister, mit Ausnahme vom Sicherstellungsregister
43, gelöscht.
Nach Beendigung des Taktsignals T₄ ist die Taktphase I beendet,
während der die Ablaufsteuerung des Decoders Empfangsbittakt
synchron sein muß. In der anschließenden Taktphase
II kann der Ablauf schneller erfolgen, so daß sich
eine Verkürzung der Decodierzeit ergibt. Dies kann beispielsweise
durch Erhöhen der Frequenz des Taktgenerators erfolgen.
Bei simplex betriebenen Sende/Empfangsgeräten mit den beschriebenen
Codierern und Decodierern kann das Schieberegister
46 im Decodierer auch als Schieberegister 30 im Codierer
benutzt werden (nicht dargestellt).
Diese Art der Decodierung erfordert eine Speicherkapazität
von 4096 Speicherplätzen zu je 5 Bit. Ist der Speicherplatzbedarf
eine kritische Größe, so besteht eine Möglichkeit
zur Halbierung der 4096 Speicherplätze.
Zur Halbierung des Speicherplatzbedarfes ist ein relativ geringer
Aufwand an Zusatzlogik und ein zusätzlicher Zeitaufwand
von 12 Schiebetakten pro Korrekturschritt erforderlich.
Dafür fällt der Umcodierer etwas einfacher aus als der in Fig. 3.
Mit dem Takt T₈ wurde bisher das Syndrom als Adresse für den
Festwertspeicher 45 freigegeben. Der Takt T₈ gibt nun das
Syndrom frei zur bitparallelen Übernahme in ein rückgekoppeltes
Schieberegister. In diesem Schieberegister
wird die am weitesten rechts stehende Bitposition auf das
Erscheinen einer binären Eins überprüft. In diesem Schieberegister
wird nun das Syndrom solange zyklisch verschoben
bis nach spätestens elf Schritten in der überwachten
Bitposition eine binäre Eins steht oder es wird nach zwölf
Schritten abgebrochen, falls das Syndrom Null ist. Ist das
Syndrom nicht Null, so geben die ersten elf rechtsbündig
im Schieberegister stehenden Bits die Adresse eines Festwertspeichers
an, in dem Null oder mit jeweils fünf Bits
gekennzeichnet, die Position eines Bitfehlers im 24 Bit
umfassenden Informationsteil steht. Die fünf Bits für die
fehlerhafte Bitposition werden so zugeordnet, daß z. B. beim
Wert Eins des fünften Bits der Fehler in der 1. Hälfte des
Informationsteils liegt und beim Wert Null des fünften Bits
der Fehler in der zweiten Hälfte des Informationsteils
liegt (oder umgekehrt).
Im Umcodierer werden die vier restlichen Bits in ein 12-
Bitwort umgewandelt und dieses in das Schieberegister eingeschrieben.
Im Schieberegister werden die zu zwölf fehlenden
zyklischen Vertauschungsschritte durchgeführt. Die Differenz
der zu zwölf fehlenden Vertauschungsschritte ist bei
der Verschiebung des Syndroms und der Überwachung der am
weitesten rechts stehenden Bitposition des Schieberegisters
von einem Zähler erfaßt worden.
Nach dieser Anzahl von zyklischen Vertauschungsschritten
steht im Schieberegister das Fehlerwort, wobei das fünfte
Bit aus dem Festwertspeicher angibt, ob dieses Fehlerwort
zur ersten oder zweiten Hälfte der Nutzinformation gehört.
Durch bitparallele modulo-2-Addition wird anschließend
die Korrektur der Nutzinformation vorgenommen. Die
restlichen Schritte verlaufen so, wie es bereits beschrieben
wurde.
Das Blockschaltbild eines Ausführungsbeispieles für die
Reduzierung des Speicherplatzbedarfes auf 2047 Speicherplätze
zu je 5 Bit zeigt die Fig. 5. Es kann ersatzweise
in Fig. 3 an der gestrichelt umrahmten Stelle eingefügt
werden.
Zunächst wird das Syndrom in das 12-zellige Schieberegister
31 bitparallel übernommen. Der Ausgang des Schieberegisters
wird von der Zusatzlogik 32 auf das Erscheinen
einer binären Eins überwacht. Falls der Ausgang des Schieberegisters
eine binäre Eins führt, wird von der Zusatzlogik
32 kein Verschiebetakt geliefert. Ist der Ausgang
des Schieberegisters Null, so wird der Inhalt des Schieberegisters
31 um jeweils eine Stelle verschoben, bis eine binäre
Eins erscheint. Die Anzahl der Stellenverschiebungen des
Inhalts des Schieberegisters, bis wieder eine binäre Eins
an seinem Ausgang auftritt, liefert in einem auf die Zahl
Zwölf voreingestellten Zähler in der Zusatzlogik die Differenz
der nachher mit dem Fehlermuster durchzuführenden
zyklischen Verschiebeschritte.
Sowie im Verlauf der Syndromverschiebungen eine binäre Eins
am Ausgang des Schieberegisters 31 auftritt, wird der Verschiebetakt
sowohl für das Schieberegister als auch für
den voreingestellten Zähler in der Zusatzlogik weggenommen.
Durch ein Freigabesignal von der Zusatzlogik 32 gelangt
jetzt das zyklisch verschobene Syndrom mit den ersten elf
rechtsbündig stehenden Bits als Adresse auf den Festwertspeicher
34. Die zu diesen elf Bits gehörende Bitposition
wird an den Umcodierer 33 weitergegeben, der daraus ein
zwölf-Bit-Wort als zugehöriges Fehlermuster bildet. Dieses
Fehlermuster wird in einen Zwischenspeicher 35 übernommen.
Gleichzeitig setzt die fünfte Bitposition aus dem Festwertspeicher
34 ein RS-Flipflop 36.
Umschalter U₁ bis U₁₂ verbinden die Eingänge des Schieberegisters
31 entweder mit den Ausgängen der modulo-2-
Addierer zur Übernahme des Syndroms oder mit den Ausgängen
des Zwischenspeichers 35 zur Übernahme des Fehlermusters.
Nach der Übernahme des Fehlermusters in den Zwischenspeicher
35 werden die Umschalter U₁ bis U₁₂ durch ein Steuersignal
aus der Zusatzlogik 32 umgeschaltet. Dadurch gelangt das
Fehlermuster bitparallel in das Schieberegister 31. Sowie
dieser Vorgang abgeschlossen ist, wird von der Zusatzlogik
32 erneut der Verschiebetakt an das Schieberegister 31 und
den Zähler angelegt. Der Inhalt des Schieberegisters 31 muß
solange verschoben werden, bis der Zähler die Differenz Null
anzeigt.
Umschalter V₁ bis V₁₂ verbinden die Ausgänge des Schieberegisters
31 entweder mit den Eingängen des Festwertspeichers
34 zur Eingabe der Adresse oder mit den Eingängen von zweimal
12 UND-Gattern 37 bzw. 38 zur Ausgabe des Fehlermusters.
Die jeweils zweiten Eingänge der UND-Gatter 37 und 38 sind
mit dem Ausgang des RS-Flipflops 36 verbunden. Jetzt werden
die Umschalter V₁ bis V₁₂ durch ein Steuersignal von der
Zusatzlogik 32 umgeschaltet und das Fehlermuster zur Ausgabe
aus dem Schieberegister 31 freigegeben. Das 12-Bit-
Fehlermuster gelangt nun, gesteuert von dem RS-Flipflop
36 und den UND-Gattern 37 bzw. 38 auf die erste oder zweite
Hälfte des 24-Bit-Ausganges und somit an die Eingänge
der modulo-2-Addierer 58, 59 und steht somit zur Korrektur
der Nutzinformation wie schon beschrieben zur Verfügung.
An den Ausgang des Festwertspeichers 34 ist ein NAND-Gatter
72 angeschaltet, das bei der Ausgabe des Nullwortes
eine logische Eins zum Abbruch der Korrekturschritte an
die UND-Gatter 55, 56, 69 und das ODER-Gatter 71 gibt.
Die erwähnte Zusatzlogik 32 ist eine einfache Hilfsschaltung
zur Steuerung der geschilderten Vorgänge wie Zählen,
Taktdurchschaltung und Ableitung der Steuersignale zur
Umschaltung der Umschalter U und V, so daß keine weitere
Erläuterung notwendig erscheint.
Claims (7)
1. Codierer und Decodierer zur Fehlererkennung mit
Hilfe eines quasizyklischen (n, k)-Codes, der in einem
Schieberegister realisiert ist, für ein binäres
Datenübertragungssystem, dadurch
gekennzeichnet, daß der Code n-k=k/2
Prüfbits aufweist, daß der Codierer und der Decodierer
in gleicher Weise aus je k zu übertragenden
Informationsbits mittels eines k/2-zelligen
Schieberegisters (30, 46) mit zwei Eingängen, denen die
durch einen k/2 Bit langen Pufferspeicher (2, 44)
verzögerten ersten k/2 bzw. die unverzögerten zweiten
k/2 Informationsbits zugeführt werden, k/2 Prüfbits
berechnen und daß der Decodierer aus den empfangenen und
den von ihm berechneten Prüfbits durch modulo-2-Addition
das Syndrom berechnet.
2. Decodierer nach Anspruch 1, dadurch gekennzeichnet,
daß das Syndrom als Adresse eines Festwertspeichers
verwendet wird, daß im Festwertspeicher (45) eine
Information zur Beendigung der Korrektur oder die
Position eines fehlerhaften Informationsbits gespeichert
ist, die in einem Umcodierer (47) in ein k Bit
umfassendes Fehlermuster umgesetzt wird, daß durch
modulo-2-Addition des Fehlermusters zu den empfangenen
Informationsbits ein erstes Bit korrigiert wird, daß
nach Berechnung neuer Syndrome aus den korrigierten
Informationsbits in weiteren Korrekturschritten jeweils
ein weiterer Fehler in den Informationsbits korrigiert
wird und daß nach einer wählbaren Anzahl von derartigen
Korrekturschritten oder beim Auffinden der Information
zum Beenden der Korrektur das Korrekturverfahren beendet
und die gegebenenfalls mehrfach korrigierten
Informationsbits ausgegeben werden.
3. Decodierer nach Anspruch 2, dadurch gekennzeichnet,
daß der Festwertspeicher (45) 2 n-k Speicherplätze mit
je [log₂k] Bit besitzt.
4. Codierer und Decodierer nach Anspruch 1, dadurch
gekennzeichnet, daß ein Festwertspeicher (34) mit 2 n-k-1
Speicherplätzen mit je [log₂k] Bit vorgesehen ist, daß das
Syndrom in einem weiteren Schieberegister (31) mit k/2
Zellen solange, maximal jedoch k/2mal, zyklisch
verschoben wird, bis an dessen Ausgang eine binäre Eins
auftritt, daß die ersten k/2-1 Bits des zyklisch
verschobenen Syndroms als Adresse des Festwertspeichers
(34) dienen, daß im Festwertspeicher (34) eine
Information zur Beendigung der Korrektur oder die
Position eines fehlerhaften Informationsbits gespeichert
ist, die in einem Umcodierer (33) in ein k/2 Bit
umfassendes Fehlermuster und eine Angabe umgesetzt wird,
die angibt, ob der Fehler in den ersten oder zweiten k/2
Informationsbits auftritt, daß durch modulo-2-Addition
des Fehlermusters zu den empfangenen ersten oder zweiten
k/2 Informationsbits ein erstes Bit korrigiert wird, daß
nach Berechnung neuer Syndrome aus den korrigierten
Informationsbits in weiteren Korrekturschritten jeweils
ein weiterer Fehler in den Informationsbits korrigiert
wird und daß nach einer wählbaren Anzahl von derartigen
Korrekturschritten oder beim Auffinden der Information
zum Beenden der Korrektur das Korrekturverfahren beendet
und die gegebenenfalls mehrfach korrigierten
Informationsbits ausgegeben werden.
5. Codierer und Decodierer nach einem der vorangehenden
Ansprüche, dadurch gekennzeichnet, daß der
quasizyklische Code aus Codewörtern mit n = 36 Bits, von
denen k = 24 Bits Informationsbits und 12 Bits Prüfbits
sind, besteht und die Redundanz-Matrix aus zwei gleich
großen zyklischen Teilmatrizen zusammengesetzt ist.
6. Codierer und Decodierer nach einem der vorangehenden
Ansprüche, zur Verwendung in einem
Simplex-Sende/Empfangsgerät, dadurch gekennzeichnet, daß
das Schieberegister (46) im Codierer als Schieberegister
(30) im Decodierer eingesetzt ist.
7. Decodierer nach Anspruch 2 oder 4, dadurch
gekennzeichnet, daß die Anzahl der Korrekturschritte
drei beträgt.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19813104762 DE3104762A1 (de) | 1981-02-11 | 1981-02-11 | System zur binaeren datenuebertragung |
US06/347,135 US4453249A (en) | 1981-02-11 | 1982-02-09 | System for binary data transmission |
CH1675/82A CH658351A5 (de) | 1981-02-11 | 1982-02-11 | Verfahren zur binaeren datenuebertragung mit fehlererkennung und -korrektur. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19813104762 DE3104762A1 (de) | 1981-02-11 | 1981-02-11 | System zur binaeren datenuebertragung |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3104762A1 DE3104762A1 (de) | 1982-08-19 |
DE3104762C2 true DE3104762C2 (de) | 1989-01-12 |
Family
ID=6124526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19813104762 Granted DE3104762A1 (de) | 1981-02-11 | 1981-02-11 | System zur binaeren datenuebertragung |
Country Status (3)
Country | Link |
---|---|
US (1) | US4453249A (de) |
CH (1) | CH658351A5 (de) |
DE (1) | DE3104762A1 (de) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4630271A (en) * | 1983-01-20 | 1986-12-16 | Nippon Hoso Kyokai | Error correction method and apparatus for data broadcasting system |
US4611333A (en) * | 1985-04-01 | 1986-09-09 | Motorola, Inc. | Apparatus for despreading a spread spectrum signal produced by a linear feedback shift register (LFSR) |
KR100429528B1 (ko) * | 2002-01-23 | 2004-05-03 | 삼성전자주식회사 | 디지털 통신 방법 및 장치 |
JP4702632B2 (ja) * | 2007-04-06 | 2011-06-15 | ソニー株式会社 | 符号化方法および符号化装置、並びにプログラム |
US20090222712A1 (en) * | 2008-03-03 | 2009-09-03 | Legend Silicon Corp. | Decoding scheme for correcting both erasures and errors of reed-solomon codes in a digital communication system |
CN107567639B (zh) * | 2015-07-09 | 2021-09-10 | 惠普发展公司,有限责任合伙企业 | 多维循环符号 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4107652A (en) * | 1975-12-27 | 1978-08-15 | Fujitsu Limited | Error correcting and controlling system |
-
1981
- 1981-02-11 DE DE19813104762 patent/DE3104762A1/de active Granted
-
1982
- 1982-02-09 US US06/347,135 patent/US4453249A/en not_active Expired - Lifetime
- 1982-02-11 CH CH1675/82A patent/CH658351A5/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE3104762A1 (de) | 1982-08-19 |
CH658351A5 (de) | 1986-10-31 |
US4453249A (en) | 1984-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69834542T2 (de) | Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke | |
DE2916710C2 (de) | ||
DE3119669C2 (de) | ||
DE2060643C3 (de) | Schaltungsanordnung zur Korrektur von Einzelfehlern | |
DE2657826A1 (de) | Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage | |
DE3231956A1 (de) | Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes | |
DE2614916A1 (de) | Konverter zur codeumwandlung | |
EP0219917B1 (de) | Vermittlungsanlage mit Fehlerkorrektur | |
DE2217935C3 (de) | Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht | |
DE1499694A1 (de) | Einrichtung zur Fehlerkorrektur von parallel dargestellten,binaer codierten n-stelligen Informationszeichen | |
DE3104762C2 (de) | ||
DE3404417A1 (de) | Codierer-pruefschaltungsanordnung | |
DE2324538A1 (de) | Digitale nachrichtenuebertragungsanordnung | |
DE1474576B2 (de) | Fehlererkennungseinrichtung fuer den zeitmultiplexbetrieb | |
DE2047868A1 (de) | Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes | |
EP0003480A2 (de) | Schaltungsanordnung zum Umwandeln von Binärinformationen mittels Kontrollbits | |
DE3644015C2 (de) | ||
DE3003502A1 (de) | Datenfehler-korrektursystem | |
DE3042394C2 (de) | ||
DE1296192B (de) | Binaere Codeschaltung | |
DE1774225A1 (de) | Fehlerkorrekturschaltung | |
DE3702697A1 (de) | Paritaetserzeugungsschaltung | |
EP0073979A1 (de) | System zur Übertragung digitaler Informationssignale | |
DE1211687B (de) | System zur linearen systematischen Kodierung | |
DE19962766A1 (de) | Verbessertes kombiniertes System zur Erzeugung von Fehlerkorrektur-Codesymbolen und Fehler-Syndromen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: ALCATEL SEL AKTIENGESELLSCHAFT, 7000 STUTTGART, DE |