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
Application number
DE3104762A
Other languages
English (en)
Other versions
DE3104762A1 (de
Inventor
Dieter Dr.-Ing. 7530 Pforzheim De Roth
Herbert Dipl.-Ing. 7500 Karlsruhe De Schorb
Herbert Dr.-Ing. 6729 Woerth De Kloss
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel Lucent Deutschland AG
Original Assignee
Standard Elektrik Lorenz AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Standard Elektrik Lorenz AG filed Critical Standard Elektrik Lorenz AG
Priority to DE19813104762 priority Critical patent/DE3104762A1/de
Priority to US06/347,135 priority patent/US4453249A/en
Priority to CH1675/82A priority patent/CH658351A5/de
Publication of DE3104762A1 publication Critical patent/DE3104762A1/de
Application granted granted Critical
Publication of DE3104762C2 publication Critical patent/DE3104762C2/de
Granted legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements 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.
Stand der Technik
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.
Aufgabe
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.
Lösung
Die Lösung dieser Aufgabe erfolgt mit den im Anspruch 1 angegebenen Mitteln. Vorteilhafte Weiterbildungen können den Unteransprüchen entnommen werden.
Vorteile
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.
Beschreibung
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.
DE19813104762 1981-02-11 1981-02-11 System zur binaeren datenuebertragung Granted DE3104762A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4107652A (en) * 1975-12-27 1978-08-15 Fujitsu Limited Error correcting and controlling system

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