DE68920739T2 - Daten-Kodierung für den Sofortstart von PRML-Empfängern. - Google Patents

Daten-Kodierung für den Sofortstart von PRML-Empfängern.

Info

Publication number
DE68920739T2
DE68920739T2 DE68920739T DE68920739T DE68920739T2 DE 68920739 T2 DE68920739 T2 DE 68920739T2 DE 68920739 T DE68920739 T DE 68920739T DE 68920739 T DE68920739 T DE 68920739T DE 68920739 T2 DE68920739 T2 DE 68920739T2
Authority
DE
Germany
Prior art keywords
bit
code words
preselected number
data blocks
subset
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 - Fee Related
Application number
DE68920739T
Other languages
English (en)
Other versions
DE68920739D1 (de
Inventor
Roy Daron Dr Cideciyan
Francois Bernard Dr Dolivo
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE68920739D1 publication Critical patent/DE68920739D1/de
Application granted granted Critical
Publication of DE68920739T2 publication Critical patent/DE68920739T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10046Improvement or modification of read or write signals filtering or equalising, e.g. setting the tap weights of an FIR filter
    • G11B20/10055Improvement or modification of read or write signals filtering or equalising, e.g. setting the tap weights of an FIR filter using partial response filtering when writing the signal to the medium or reading it therefrom
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Error Detection And Correction (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

    Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft die Datencodierung für Systeme die eine Partial-Response-Signalisierung mit Impulsfolgedetektion auf Basis des Maximum-Likelihood-Prinzips (PRML) verwenden. Ein solches Signalübertragungs- und Detektionsschema ist beispielsweise für die magnetische und optische Datenspeicherung nützlich sowie für die Datenübertragung über Kabel. Im besonderen befaßt sich die Erfindung mit der Datencodierung in PRML- Systemen, um die Zeit, die für die Erkennung der Zeitsteuerungspräambeln benötigt wird, welche vor den Datenfolgen übertragen werden und die richtige Takt- und Verstärkungseinstellung im Empfänger sichern, zu verkürzen und um eine zuverlässigere Unterscheidung zwischen zufälligen Datenfolgen und der Zeitsteuerungspräambel zu erreichen.
  • Hintergrund der Erfindung
  • Um einen exakten Betrieb der Verstärkungs- und Taktregelkreise sowie eine Reduzierung der Speicherlänge der Viterbi-Decodierer in PRML-Empfängern zu erreichen, sind 8/9-ratenumsetzende Codes für Partial-Response-Klasse-IV-Signalisierungssysteme (PRML) mit Impulsfolgedetektion auf Basis des Maximum-Likelihood-Prinzips entwickelt worden. Bei Anwesenheit eines Vorcodierers zwischen dem Partial-Response-Klasse-IV (PR-IV) Kanal und dem ratenumsetzenden 8/9-Codierer, erfüllt man diese zwei Ziele durch Einschränken der maximalen Lauflänge von Nullen, die mit G&sub0; bezeichnet wird, in den codierten binären Folgen {bn} und durch Begrenzen der maximalen Anzahl aufeinanderfolgender Nullen, die mit I&sub0; bezeichnet wird, in den zwei Subfolgen von {bn) mit geraden oder ungeraden Zeitindizes. Ein Beispiel eines Systems, bei dem sowohl G&sub0; als auch I&sub0; durch geeignete Codierung (entweder auf 4 und 4 beziehungsweise auf 3 und 6) begrenzt werden, wird in der U.S.-Patentschrift Nr. 4 707 681 von Eggenberger offenbart.
  • Es wäre wünschenswert ein Codierschema zu haben, welches eine dritte Aufgabe erfüllen kann, nämlich den Anlaufvorgang eines PRML-Empfängers zu beschleunigen, indem die minimale Beobachtungslänge verkürzt wird, die erforderlich ist, um codierte Benutzerdaten zuverlässig von der Zeitsteuerungspräambel {1, 1, 1, ... 1, 1} zu unterscheiden, welche in vielen Systemen Teil der Trainingsfolgen ist, die den codierten Datenfolgen {bn} vorangehen.
  • Aufgaben der Erfindung
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Codierschema für PRML-Systeme anzugeben, bei dem die Zeit zum Unterscheiden zwischen der Zeitsteuerungspräambel und den codierten Datenfolgen reduziert wird.
  • Es ist eine andere Aufgabe der vorliegenden Erfindung, ein Codierschema anzugeben, das kürzere Zeitsteuerungspräambeln ermöglicht.
  • Eine weitere Aufgabe der vorliegenden Erfindung ist die Bereitstellung eines PRML-Codierschemas, das einfache Code-Abbildungen ermöglicht, welche eine einfache Implementierung der Codierer und Decodierer durch logische Gate-Arrays zulassen.
  • Eine weitere Aufgabe der vorliegenden Erfindung ist es, für Systeme, die die PRML-Technik und eine Zeitsteuerungspräambel, bestehend aus aufeinanderfolgenden Einsen verwenden, ein Codierschema bereitzustellen, welches Codebeschränkungen unterstützt, die für einen exakten Betrieb der Verstärkungs- und Taktregelkreise sowie für eine Reduzierung der Speicherlänge der Viterbi- Decodierer in PRML-Empfängern vorteilhaft sind.
  • Zusammenfassung der Erfindung
  • Diese Aufgaben werden durch ein Codierverfahren und eine Codiervorrichtung erfüllt, wie sie in den Ansprüchen 1 und 7 definiert werden. Besondere bevorzugte Ausführungsformen dieses Verfahrens sowie der Codier- und Decodiervorrichtungen werden in den abhängigen Ansprüchen definiert.
  • Die Erfindung setzt diese Aufgaben um, indem die Anzahl G&sub1; der aufeinanderfolgenden Einsen in den codierten Datenfolgen auf
  • einen relativ kleinen Wert begrenzt wird, während die Begrenzung der Anzahl der aufeinanderfolgenden Nullen sowohl in den vollständig codierten Folgen als auch in den geraden und ungeraden Teilfolgen auch aufrechterhalten wird. Je kleiner die-maximale Lauflänge der Einsen, bezeichnet als G&sub1;, in den codierten Folgen {bn} ist, um so schneller können die Daten von der Präambel unterschieden werden. Weil die Zeitsteuerungspräambel lang genug sein muß, um vom PRML-Empfänger während der Anlaufphase zuverlässig erkannt zu werden, erlauben kleinere Werte von G&sub1; kürzere Trainingsfolgen, was zu einer schnelleren Synchronisation der PRML-Empfänger führt. Die vorliegenden 8/9-Codes, die durch das Dreier-Tupel (G&sub0;, I&sub0;, G&sub1;) beschrieben werden, ermöglichen ein zuverlässiges, schnelles Anlaufen der PRML-Empfänger, und die Länge der Erkennungsfenster für die Präambel braucht typischerweise weniger als die Hälfte der Fensterlänge betragen, wie sie für frühere Codes, die in der U.S.-Patentschrift Nr. 4 707 681 dargestellt werden, erforderlich waren.
  • Es werden mehrere Codierschemata offenbart, welche es gestatten zwischen unterschiedlichen Codebegrenzungen zu wählen, so daß eine Kombination ausgewählt werden kann, die für die entsprechende Anwendung am besten geeignet ist. Diese Schemata besitzen desweiteren die Eigenschaft, daß das Decodieren durchgeführt werden kann, ohne daß Kenntnisse über vorhergehend codierte Daten benötigt werden, wodurch ein Ausbreiten von Decodierfehlern im Fall von Übertragungsfehlern verhindert wird.
  • Desweiteren werden mehrere Codeabbildungsschemata offenbart, welche für die vorliegenden Codierschemata die Implementierung von Codierern (und Decodierern) mit einer geringen Anzahl logischer Gatter erlauben.
  • Diese und andere Vorteile werden aus der folgenden Beschreibung bevorzugter Ausführungsformen der vorliegenden Erfindung mit Bezug auf die Zeichnungen deutlicher werden.
  • Liste der Zeichnungen
  • Fig. 1 ist eine schematische Darstellung der Struktur der gespeicherten Datenfolgen, welche eine Zeitsteuerungspräambel enthält.
  • Fig. 2A ist die Darstellung eines Blockschaltbildes eines Systems, in welchem die vorliegende Erfindung Anwendung findet.
  • Fig. 2B ist ein detaillierteres Blockschaltbild des Codiererabschnittes des Systems von Fig. 2A.
  • Die Fig. 3A, 3B und 3C zeigen für einen speziellen Code in der Matrix aller 9-Bit-Worte ein Muster, welches die Vorauswahl aller möglich Codeworte zeigt; die Unterteilung der Matrix aller möglichen 8-Bit-Eingangsworte in neun Subsätze, um die Zuordnung zwischen den Codierereingangs- und den Codiererausgangsworten zu erleichtern; und die Zuordnung zwischen Eingangs- und Ausgangssubsätzen.
  • Fig. 4 zeigt für einen anderen Code in der Matrix aller 9-Bit- Worte ein Muster, welches die Vorauswahl aller möglichen Codeworte zeigt.
  • Die Fig. 5A, 5B und 5C zeigen für einen weiteren Code eine ähnliche Auswahl und Zuordnungen wie die Fig. 3A, 3B und 3C.
  • Die Fig. 6A und 6B sind Blockschaltbilder eines Codierers mit finiten Zuständen und eines Decodierers zur Implementierung der Erfindung, welche durch die Auswahl- und Zuordnungsmatrizen der Fig. 5A, 5B und 5C repräsentiert wird.
  • Die Tabellen 1 bis 6 zeigen für drei verschiedene Implementierungen der vorliegenden Erfindung die Codiererlogik und die Decodiererlogik.
  • Detaillierte Beschreibung Datenformat mit Präambeln:
  • Fig. 1 zeigt ein Beispiel für die Struktur einer Datenfolge, wenn diese auf einem magnetischen Aufzeichnungsmedium (Magnetplatte) gespeichert wird. Wie zu sehen ist, wird jeder Datensatz separat gespeichert. Dem Datenbereich jedes aufgezeichneten Satzes gehen eine Zeitsteuerungspräambel und ein Synchronisationsmuster voraus. Diese sind erforderlich, um den Empfänger so zu initialisieren, daß er die Daten richtig lesen kann.
  • Es ist von Bedeutung, daß die Zeitsteuerungspräambel korrekt von den Daten unterschieden wird. Wenn die Daten beliebige zufällige Bitmuster enthalten können, auch solche, die der verwendeten Zeitsteuerungspräambel (d.h. {1, 1, 1, ... }) ähneln, dann müssen für eine zuverlässig Erkennung und Unterscheidung relativ lange Zeitsteuerungspräambeln benutzt werden, und es ist eine relativ lange Zeit erforderlich.
  • Um diese Zeit zu verkürzen, wird in der vorliegenden Erfindung vorgeschlagen, den codierten Datenfolgen eine Beschränkung hinzuzufügen, so daß die Bitmuster, die einer solchen Zeitsteuerungspräambel entsprechen, nur in begrenzter Länge auftreten können. Dies gestattet eine schnellere Unterscheidung zwischen den Daten und der Präambel und als Folge dessen wird es ermöglicht, kürzere Zeitsteuerungspräambeln zu verwenden (welche weniger Speicherplatz benötigen).
  • Grundmodell:
  • Ein System, in welchem die vorliegende Erfindung verwendet wird, kann durch die folgenden drei Hauptblöcke, die in Fig. 2A dargestellt sind, repräsentiert werden: Codierer 11, der mit einer 8/9-Rate arbeitet, Vorcodierer 13 und PR-IV-Kanal 15. Im folgenden wird das Eingangs-Ausgangsverhalten dieser Blöcke detailliert diskutiert werden. B kennzeichnet das binäre Alphabet {0, 1}.
  • Magnetische Aufzeichnungskanäle sind Basisbandkanäle mit einer Übertragungsfunktion, die gekennzeichnet ist durch eine spektrale Null bei der Frequenz f = 0, durch ein spektrales Maximum bei einer Frequenz, die von den spezifischen Parametern das Aufzeichnungssystems abhängt und durch einen exponentiellen Abfall zu höheren Frequenzen hin. Sie sind deshalb besonders gut geeignet, als PR-IV-System behandelt zu werden, nachdem das Kanalausgangssignal in geeigneter Weise gefiltert worden ist. Vor dem PR-IV-Kanal liegt ein Vorcodierer 13, dessen Eingangs folge die codierte Folge {bn}, bn ε B ist und dessen Ausgangsfolge {cn}, cn ε B gegeben ist durch:
  • worin die Modulo-2 Addition kennzeichnet und das Überstreichen für die Negation der Variable steht. Die Eingangssymbole des PR- IV-Kanals dn ε {+1, -1} und die Vorcodierer-Ausgangssymbole cn werden (wie in Block 17 gezeigt) durch die Beziehung dn 2cn - 1 aufeinander abgebildet, wobei cn als die reelle Zahl 0 oder 1 interpretiert werden muß. Die ternäre Ausgangsfolge des PR-IV- Kanals {yn} kann geschrieben werden als:
  • wobei (1) verwendet wurde, um die Beziehung zwischen bn und yn zu erhalten. Es ist zu beachten, daß die am Eingang des Vorcodierers nur aus Nullen bestehende Folge und die Zeitsteuerungspräambel (die nur aus Einsen bestehende Folge) am Ausgang des PR- IV-Kanals zu einer nur aus Nullen bestehenden Folge beziehungsweise zu {..., +2, +2, -2, -2, +2, +2, -2, -2, ... } führen.
  • Die Lauflänge der Nullen in der Ausgangsfolge {yn} des PR-IV-Kanals und in seinen zwei Subfolgen mit geraden oder ungeraden Zeitindizes muß begrenzt werden, um die automatische Verstärkungseinstellung und die Taktwiedergewinnung zu unterstützen und die Länge des im Viterbi-Decodierer benötigten Speichers zu reduzieren. Dies kann durch ein Verfahren und eine Vorrichtung erreicht werden, wie sie in der U.S.-Patentschrift Nr. 4 707 681 von Eggenberger offenbart wurden. Die maximale Lauflänge des Kanalausgangssignals yn, das mit der Zeitsteuerungspräambel am Ausgang des PR-IV-Kanals identisch ist {..., +2, +2, -2, -2, ...}, muß ebenfalls begrenzt werden, um ein zuverlässiges schnelles Anlaufen der PRML-Empfänger zu ermöglichen. Diese Ziele können durch die vorliegende Erfindung effektiv erreicht werden und zwar durch Verwendung eines 8/9-Ratencodierers 11, dem ein Vorcodierer 13 folgt, welcher die gewünschten Lauflängenbegrenzungen, die ursprünglich am Ausgang des PR-IV-Kanals definiert werden, in die einfachen Lauflängenbegrenzungen {G&sub0;, I&sub0;, G&sub1;} am Ausgang des 8/9-Ratencodierers übersetzt.
  • Das Vorcodieren beeinflußt die Leistungsfähigkeit von Datenübertragungssystemen, die mit PR-IV-Signalisierung und Impulsfolgedetektion auf Basis des Maximum-Likelihood-Prinzips arbeiten, nicht. Jedoch kann die Existenz eines Vorcodierers zu kürzeren Lauflängenbegrenzungen am Ausgang des PR-IV-Kanals führen, wenn die Codierer auf eine spezielle Klasse beschränkt sind. Zum Beispiel können 8/9-Raten-Blockcodierer mit einer Ausgangsblockgröße von 9 ohne Vorcodierer keine Kanalausgangsfolgen erzeugen die maximal v = 4 aufeinanderfolgende Nullen aufweisen. Das kann wie folgt erklärt werden. Es gibt nicht mehr als 216 binäre 9-Tupel, welche zu PR-IV-Folgen {y} führen, die die Beschränkungen u = 4 und v = 4 erfüllen, wenn sie in beliebiger Reihenfolge über den PR-IV-Kanal übertragen werden. Andererseits gibt es, wenn dem PR-IV-Kanal ein Vorcodierer vorangestellt wird, 279 binäre 9- Tupel, die beliebig nebeneinandergestellt werden können und 8/9- Blockcodes mit einer Ausgangsblockgröße von 9, so daß Kanal ausgangsfolgen erzeugt werden können, welche die Beschränkungen u = 4 und v = 4 erfüllen (vgl. oben erwähnte U.S.-Patentschrift 4 707 681).
  • Das Eingangssignal eines 8/9-Ratencodierers {an}, an ε B ist eine unbeschränkte binäre Folge und das Codiererausgangssignal {bn}, bn ε B erfüllt die folgenden Boole'schen Gleichungen.
  • worin n ein beliebiger Integerwert ist, "+" die Boole'sche ODER- Verknüpfung kennzeichnet und für die Boole'sche UND-Verknüpfung steht. Gleichung (3) begrenzt die maximale Lauflänge von Nullen in der Codiererausgangsfolge auf G&sub0;. Gleichung (4) führt dazu, daß die maximale Anzahl aufeinanderfolgender Nullen in den zwei Codiererausgangssubfolgen mit geraden oder ungeraden Zeitindizes I&sub0; nicht übersteigt. Schließlich sichert Gleichung (5), daß die maximale Lauflänge von Einsen in der Codiererausgangsfolge nicht größer als G&sub1; ist. Im folgenden wird das Codiererausgangssignal als (G&sub0;, I&sub0;, G&sub1;)-beschränkte Folge bezeichnet.
  • Codierereingangs- und Ausgangssignal:
  • Fig. 2B zeigt in detaillierterer Darstellung den Codiererabschnitt von Fig. 2A. Vor dem eigentlichen Codierer 11B, welcher 8-Bit-Eingangsblöcke X nimmt und 9-Bit-Ausgangscodeworte Y bereitstellt, liegt ein Serien-Parallel-Wandler 11A, welcher die serielle Folge der Bits an in die Eingangsblöcke X wandelt. Auf der Ausgangsseite des Codierers wandelt ein Parallel-Serien- Wandler 11C die Codeworte Y in eine serielle Bitfolge bn.
  • Codierer und Decodierer für spezielle Blockcodes:
  • Der Codierer für einen (n, k) Blockcode mit einer Rate k/n ordnet jedem Block von k Eingangssymbolen einen Block von n Ausgangssymbolen zu. Die Motivation für die Verwendung von (9,8)-Blockcodes im Gegensatz zu nicht blockweise aufgebauten Codes liegt in der Einfachheit der Codierer-/Decodierer-Hardware, die mit den Blockcodes verbunden ist. Der nichtlineare, binäre (9,8)- Blockcode der in der Vergangenheit entwickelt wurde, wurde mit dem Ziel geschaffen, die Beschränkungen G&sub0; und I&sub0; (vgl. z.B. U.S.-Patentschrift 4 707 681) zu minimieren. Im folgenden werden einfache Codierer-/Decodierer-Realisierungen für zwei optimale (9,8)-Blockcodes vorgestellt, welche zusätzlich zu G&sub0; und I&sub0; den Parameter G&sub1; minimieren. Als 3-Tupel (G&sub0;, I&sub0;, G&sub1;) ausgedrückt, werden diese Codes durch (4,6,5) und (4,4,9) charakterisiert. Die kleinste Summe der Beschränkungen G&sub0; + I&sub0; + G&sub1;, die mit (9,8)- Blockcodes erreicht werden kann, ist 15. Dieses Minimum erreicht man unter allen möglichen Beschränkungen (G&sub0;, I&sub0;, G&sub1;) nur mit (4,6,5) und (4,5,6).
  • Codierer/Decodierer für (4,6,5) Code:
  • Zuerst wird eine Codierer-/Decodierer-Realisierung für den (4,6,5)-Code beschrieben. Die Codiererentwicklung beginnt mit der Auswahl aller 9-Tupel Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;) ε B&sup9;, welche die folgenden Boole'schen Gleichungen erfüllen.
  • (Y&sub1;+Y&sub2;+Y&sub3;) (Y&sub2;+Y&sub3;+Y&sub4;+Y&sub5;+Y&sub6;) (Y&sub3;+Y&sub4;+Y&sub5;+Y&sub6;+Y&sub7;) (Y&sub4;+Y&sub5;+Y&sub6;+Y&sub7;+Y&sub8;) (Y&sub7;+Y&sub8;+Y&sub9;) = 1 (6)
  • (Y&sub1;+Y&sub3;+Y&sub5;+Y&sub7;) (Y&sub3;+Y&sub5;+Y&sub7;+Y&sub9;) (Y&sub2;+Y&sub4;+Y&sub6;+Y&sub8;) = 1 (7)
  • und entweder
  • Y&sub1; Y&sub2; Y&sub3; + Y&sub2; Y&sub3; Y&sub4; Y&sub5; Y&sub6; Y&sub7; + Y&sub3; Y&sub4; Y&sub5; Y&sub6; Y&sub7; Y&sub8; + Y&sub6; Y&sub7; Y&sub8; Y&sub9; = 0 (8a)
  • oder
  • Y&sub1; Y&sub2; Y&sub3; Y&sub4; + Y&sub2; Y&sub3; Y&sub4; Y&sub5; Y&sub6; Y&sub7; + Y&sub3; Y&sub4; Y&sub5; Y&sub6; Y&sub7; Y&sub8; + Y&sub7; Y&sub8; Y&sub9; = 0 (8b)
  • wobei (6), (7) und (8a) verwendet werden, um eine Liste L&sub1; von 263 Codeworten zu erzeugen und (6), (7) und (8b) verwendet werden, um eine andere Liste L&sub2; von 263 Codeworten zu erzeugen. Durch Verwerfen aller 9-Tupel, welche mit mehr als zwei Nullen beginnen oder enden oder die eine innere Folge von fünf oder mehr Nullen besitzen, sichert (6), daß die Beschränkung G&sub0; = 4 erfüllt wird. Gleichung (7) garantiert I&sub0; = 6, indem die Lauflänge der Nullen innerhalb von Y&sub1;Y&sub3;Y&sub5;Y&sub7;Y&sub9; und Y&sub2;Y&sub4;Y&sub6;Y&sub8; auf drei beschränkt wird. Schließlich sichern (8a) ((8b)) G&sub1; = 5, indem alle Y eliminiert werden, die mit mehr als zwei (drei) Ein&en beginnen oder mit mehr als drei (zwei) Einsen enden oder die eine Folge von sechs oder mehr Einsen im Inneren besitzen. Es ist zu beachten, daß wenn Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;) E L&sub1; dann Y' = (Y&sub9;, Y&sub8;, ... , Y&sub1;) ε L&sub2; gilt. Daher können die Codeworte einer Liste einfach durch Umkehrung der Codeworte der anderen Liste erhalten werden. Der hier vorgestellte (4,6,5)-Blockcode umfaßt 256 Codeworte und wurde zufallsmäßig so ausgewählt, daß er einen Subsatz L&sub1; bildet, der L&sub2; entgegensteht. Die 263 möglichen Codeworte in L&sub1; sind als 263 spezielle Plätze innerhalb des 16 x 32 Feldes, das in Fig. 3A gezeigt wird, durch ein " " markiert, deren (i,j)-ter Platz am Schnittpunkt der i-ten Zeile, i = 0, 1, ..., 15 und der j-ten Spalte, j = 0, 1, ..., 31, dem 9-Tupel Y (Y&sub1;, Y&sub2;, ..., Y&sub9;) entspricht, wobei Y&sub9;Y&sub8;Y&sub7;Y&sub6; und Y&sub5;Y&sub1;Y&sub2;Y&sub3;Y&sub4; die binären Darstellungen der Dezimalzahlen i beziehungsweise j sind. Es ist zu beachten, daß die linke Hälfte des obigen Feldes Y&sub5; = 0 entspricht, wogegen die rechte Hälfte Y&sub5; = 1 entspricht. Die mit "-" markierten Plätze in L&sub1; (4,6,5) repräsentieren 9-Tupel, die als Codeworte in dem hier vorgestellten (4, 6, 5)-Blockcode nicht zugelassen sind.
  • Es gibt eine Vielzahl Blockcodes, die aus dem Feld L&sub1; (4,6,5) abgeleitet werden können und die Codeworte jedes Codes können den 256 8-Bit-Bytes auf 256! verschiedene Arten zugeordnet werden. Folglich ist die Anzahl aller Codierer-Abbildungen, die mit dem Feld L&sub1; (4,6,5) verbunden sind, sehr groß. Deshalb ist es wünschenswert, eine Codierer-Abbildung auszuwählen, die zu einfachen Codierer-/Decodierer-Realisierungen führt.
  • Der Raum aller Eingangsbytes B&sup8; des Codierers wird in 9 paarweise disjunkte Sätze Ak, k = 1, 2, ..., 9 zerlegt. Die Elemente des Subsatzes Ak werden innerhalb des in Fig. 3B dargestellten 16x16 Feldes als spezielle Plätze, markiert mit "k", hervorgehoben, deren (i,j)-ter Platz am Schnittpunkt der i-ten Zeile, i 0, 1, ..., 15 und der j-ten Spalte, j = 0, 1, ..., 15, dem Byte X = (X&sub1;, X&sub2;, ... , X&sub8;) entspricht, wobei X&sub8;X&sub7;X&sub6;X&sub5; und X&sub1;X&sub2;X&sub3;X&sub4; die binären Darstellungen der Dezimalzahlen i beziehungsweise j sind.
  • Genauso sind die Elemente Dk, k = 1, 2, ..., 9, die bezüglich der Codiererabbildung die Bilder von Ak darstellen, als spezielle Plätze innerhalb des 16 x 32 Feldes, das in Fig. 3C gezeigt wird, durch ein "k" markiert, deren (i,j)-ter Platz am Schnittpunkt der i-ten Zeile, i = 0, 1, .. ., 15 und der j-ten Spalte, j = 0, 1, ..., 31, dem 9-Tupel Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;) entspricht, wobei Y&sub9;Y&sub8;Y&sub7;Y&sub6; und Y&sub5;Y&sub1;Y&sub2;Y&sub3;Y&sub4; die binären Darstellungen der Dezimalzahlen i beziehungsweise j sind.
  • Das Muster der "-" in D (4,6,5) repräsentiert 9-Tupel, welche nicht als Codeworte verwendet werden können. Das Gleiche gilt für das Muster der "-" in L&sub1; (4,6,5). Die sieben 9-Tupel L&sub1;, welche in dem hier vorgestellten (4,6,5)-Blockcode nicht als Codeworte verwendet werden, entsprechen den Plätzen, die in D (4,6,5) mit " " markiert sind. Die Teilgebiete (Partitionen) A&sub1; und D&sub1; sind folgende: Die Muster der "1" in A (4,6,5) und in der rechten Hälfte von D (4,6,5) sind dieselben wie das Muster der " " in der rechten Hälfte von L&sub1; (4,6,5). Die anderen Subsätze Ak, k = 2, 3, ..., 9 und deren Bilder aufgrund der Codiererabbildungen Dk, k = 2, 3, ..., 9, werden gleichzeitig auf eine solche Weise ausgewählt, daß die Anzahl der benötigten logischen Gatter so klein wie möglich wird. Es ist zu beachten, daß die Auswahl der Teilgebiete Ak und Dk und der Eins-zu-Eins Entsprechungen zwischen Ak und Dk keiner Regel folgt, ausgenommen ist der Fall k = 1.
  • Die Codierer- und Decodiererlogik des (4,6,5)-Codes wird in den Tabellen 1 beziehungsweise 2 gezeigt. Im folgenden kennzeichnet das Überstreichen der Variablen in den Tabellen die Negation in der Boole'schen Algebra. Um die Anzahl der logischen Gatter zu reduzieren, werden Zwischenvariablen für den Codierer Vi, i = 1, 2, ..., 7 und für den Decodierer Wi, i = 1, 2, ..., 9 verwendet. Zu demselben Zweck werden Superpartitionen als Vereinigungen von Teilgebieten (Partitionen) Si, i = 1, 2, ..., 9 für den Codierer und Ti, i = 1, 2, ..., 6 für den Decodierer eingeführt. Der Decodierer enthält eine optionale Fehlermarkierung F, welche gesetzt wird (F = 1), wenn das Eingangssignal des Decodierers ein unerlaubtes Codewort repräsentiert.
  • Minimalwert der Summe der Beschränkungen
  • Im folgenden kennzeichnet die Summe aller drei Beschränkungen, d.h.
  • = G&sub0; + I&sub0; + G&sub1; (9)
  • Die bisher vorgestellten Blockcodes erreichen = 15. Um das kleinste herauszufinden, das man mit einem (8,9)-Blockcode erhalten kann, wurde die maximale Anzahl der frei verkettbaren 9-Tupel nmax für alle relevanten Beschränkungen bestimmt. Das kleinste , das mit einem Codierer für einen (9,8)-Blockcode erreichbar ist, wird nur bei (4,5,6) und (4,6,5) erhalten.
  • Codierer/Decodierer für (4,4,9)-Code:
  • Eine Codierer-/Decodierer-Realisierung für den (4,4,9)-Blockcode wurde aus der Modifikation der Codierer-/Decodiererlogik erhalten, die in der U.S.-Patentschrift 4 707 681 angegeben wird.
  • Die Bedingungen für die Auswahl der Ausgangscodeworte sind durch Gleichung (6) und die folgenden zwei Gleichungen gegeben.
  • (Y&sub1;+Y&sub3;+Y&sub5;) (Y&sub5;+Y&sub7;+Y&sub9;) (Y&sub2;+Y&sub4;+Y&sub6;) (Y&sub4;+Y&sub6;+Y&sub8;) = 1 (10)
  • und entweder
  • Y&sub1; Y&sub2; Y&sub3; Y&sub4; Y&sub5; Y&sub6; + Y&sub5; Y&sub6; Y&sub7; Y&sub8; Y&sub9; = 0 (11a)
  • oder
  • Y&sub1; Y&sub2; Y&sub3; Y&sub4; Y&sub5; + Y&sub4; Y&sub5; Y&sub6; Y&sub7; Y&sub8; Y&sub9; = 0 (11b)
  • wobei (6), (10) und (11a) verwendet werden, um eine Liste L&sub1; von 259 Codeworten zu erzeugen und (6), (10) und (11b) verwendet werden, um eine andere Liste L&sub2; von 259 Codeworten zu erzeugen. Die Gleichungen (6) und (10) sichern, G&sub0; = 4 und I&sub0; = 4, wogegen (11a) oder (11b) G&sub1; = 9 garantiert. Es ist zu beachten, daß die Codeworte von L&sub2; einfach durch Umkehrung der Codeworte von L&sub1; erhalten werden. Der hier vorgestellte (4,4,9)-Blockcode umfaßt 256 Codeworte und wurde zufallsmäßig so ausgewählt, daß er einen Subsatz L&sub1; bildet.
  • Die 259 möglichen Codeworte in L&sub1; sind wieder als 259 Plätze innerhalb des 16 x 32 Feldes L&sub1; (4,4,9), das in Fig. 4 gezeigt wird, mit " " markiert.
  • Die Tabellen 3 und 4 zeigen die Codierer- und Decodiererlogik des (4,4,9)-Codes einschließlich des optionalen Fehlererkennungsmarkierung F, welches gesetzt wird, wenn das Eingangssignal des Decodierers ein unerlaubtes Codewort ist. Es ist zu beachten, daß die Notation, die in der U.S.-Patentschrift 4 707 681 mit den Codierer-/Decodiererpartitionen verbunden ist, übernommen wurde.
  • Die zwei, oben vorgestellten Codierer-/Decodierer-Realisierungen entsprechen optimalen (9,8)-Blockcodes, d.h., keine der Beschränkungen G&sub0;, I&sub0; und G&sub1; kann weiter verringert werden, ohne daß sich Auswirkungen auf eine andere Beschränkung ergeben.
  • Codierer mit finiten Zuständen:
  • Die Blockcodierer, die in dem vorhergehenden Abschnitt diskutiert wurden, unterteilen die Informationsfolge in Blöcke und bearbeiten diese unabhängig voneinander. Im folgenden wird ein weiterer Codierer beschrieben, welcher eine Maschine mit finiten Zuständen ist, d.h. bei diesem Codierer ist das Ausgangssignal nicht nur vom momentanen Eingangssignal abhängig, sondern hängt auch von dem vorhergehend codierten Eingangssignal ab. Dieser Codierer gestattet eine noch bessere Reduzierung der Lauflängen. Decodierer, die zusammen mit diesem Codierer mit finiten Zuständen verwendet werden, müssen nicht selbst Maschinen mit finiten Zuständen sondern können Blockdecodierer sein.
  • Codierer und Decodierer für den (4,6,4)-Code
  • Der Codierer für den (4,6,4)-Code ist eine Maschine mit finiten Zuständen, bei der der Codiererzustand durch das letzte Bit des vorhergehenden Codewortes definiert wird. Genau wie bei den oben diskutierten Decodierern, kann der mit dem (4,6,4)-Code verbundene Decodierer als Blockdecodierer realisiert werden, welcher jeden 9-Bit-Block, der an seinem Eingang anliegt, auf einen Block aus 8 Bits abbildet. Der (4,6,4)-Code ist besser als die oben beschriebenen Blockcodes, d.h., er erreicht G&sub0; = 4, G&sub1; = 4 und = 14, und dennoch ist seine Codierer-/Decodierer-Implementierung fast so einfach wie die der Blockcodes.
  • Im folgenden werden der (4,6,4)-Code und seine Codierer-/Decodierer-Realisierung beschrieben. Eine Liste von 230 Codeworten erhält man durch Auswahl aller 9-Tupel Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;) ε B&sup9;, welche die Gleichungen (6) und (7) sowie folgende Gleichung erfüllen.
  • Y&sub1; Y&sub2; Y&sub3;+Y&sub2; Y&sub3; Y&sub4; Y&sub5; Y&sub6;+Y&sub3; Y&sub4; Y&sub5; Y&sub6; Y&sub7; +Y&sub4; Y&sub5; Y&sub6; Y&sub7; Y&sub8;+Y&sub7; Y&sub8; Y&sub9; = 0 (12)
  • Die Bedingungen (6) und (7) sichern G&sub0; = 4 und I&sub0; = 6, wogegen (12) G&sub1; = 4 garantiert. Die Codeworte in L beginnen nicht mit mehr als zwei Nullen oder Einsen. Wenn jedoch das letzte Bit des vorhergehenden Codewortes bekannt ist, im folgenden als Z bezeichnet, kann das nächste Codewort im Fall Z = 1 mit drei oder vier Nullen beginnen und mit drei oder vier Einsen im Fall Z = 0. Es gibt 26 binäre 9-Tupel, die mit drei oder vier Nullen beginnen und nicht gegen (7) oder (12) verstoßen und auch nicht gegen eine modifizierte Version von (6), bei der (Y&sub1; + Y&sub2; + Y&sub3;) durch (Y&sub1; + Y&sub2; + Y&sub3; + Y&sub4; + Y&sub5;) ersetzt wird, um zu gestatten, daß Codeworte mit drei oder höchstens vier Nullen beginnen. Genauso gibt es 35 binäre 9-Tupel, welche mit drei oder vier Einsen beginnen und die nicht gegen (6), (7) und eine modifizierte Version von (12) verstoßen, bei der (Y&sub1; Y&sub2; Y&sub3;) durch (Y&sub1; Y&sub2; Y&sub3; Y&sub4; Y&sub5;) ersetzt wurde, um zu gestatten, daß Codeworte mit drei oder höchstens vier Einsen beginnen.
  • Die 230 Codeworte in L, die 26 Codeworte, die aus Z = 1 folgen und die 35 Codeworte, die aus Z = 0 folgen, werden als spezielle Plätze, die mit " ", "1" beziehungsweise "0" markiert sind, innerhalb des 16x32 Feldes dargestellt, das in Fig. 5A gezeigt wird, wobei die Definitionen bezüglich der Entsprechungen zwischen einem Feldplatz und einem 9-Tupel von Fig. 3A angewandt werden. Das Muster der "-" in L (4,6,4) repräsentiert alle 9-Tupel, welche nicht als Codeworte verwendet werden können. Der Raum der 256 Eingangsbytes B wird in 13 paarweise disjunkte Sätze Ak, k = 1, 2, ..., 9, a, b, c, d unterteilt, wobei der Index k eine Hexadezimalzahl ist.
  • Die Elemente der Subsätze Ak, k = 1, 2, ..., d werden als spezielle Plätze, markiert mit "k", innerhalb des 16x16 Feldes von Fig. 5B dargestellt, wobei die Definitionen bezüglich der Entsprechungen zwischen einem Feldplatz und einem 8-Tupel von Fig. 3B angewandt werden. Die 230 Bytes in A (4,6,4), die mit "k", k = 1, 2, ... 9, a, b markiert sind, werden unabhängig vom Codiererzustand Z auf die 230 binären 9-Tupel in L(4,6,4) abgebildet, die mit " " gekennzeichnet sind, wobei die Bilder von Ak, k = 1, 2, ..., b die Dk, k = 1, 2, ..., b sind. Die verbleibenden 26 Bytes in A (4,6,4), die mit "c" und "d" markiert sind, werden auf 26 Codeworte in L (4,6,4) abgebildet, die mit "1" markiert sind, wenn Z = 1 gilt, oder auf 26 Codeworte, die aus den 35 binären 9-Tupeln ausgewählt werden, die in L (4,6,4) mit "0" markiert sind.
  • Die Elemente von D, k = 1, 2, ..., b sind als mit "k" markierte Plätze innerhalb des 16x32 Feldes, das in Fig. 5C gezeigt wird, dargestellt, wobei die Definitionen bezüglich der Entsprechungen zwischen einem Feldplatz und einem 9-Tupel von Fig. 3C angewandt werden. Die Bilder der 26 Bytes von Ak, k = c, d sind vom Codiererzustand Z abhängig, und werden durch die Plätze spezifiziert, die in obigem Feld mit "c" und "d" markiert sind. Das Muster der "-" in D (4,6,4) repräsentiert alle 9-Tupel, die nicht als Codeworte verwendet werden und umfaßt das Muster der "-" in L (4,6,4) zusätzlich zu 35 - 26 = 9 ungenutzten 9-Tupeln, die in L (4,6,4) durch "0" markiert sind.
  • Die (4,6,4)-Codierer-/Decodiererstruktur wird in Fig. 6 (6A und 6B) gezeigt.Die Codiererlogik besitzt neben den 8 Eingängen für die Bits X&sub1;, X&sub2;, ... , X&sub8; und den neun Ausgängen für die Bits Y&sub1;, Y&sub2;, ... , Y&sub9; einen zusätzlichen Eingang Z, der über ein Verzögerungselement 21 mit dem Bitausgang Y&sub9; verbunden ist. Das Verzögerungselement repräsentiert eine Zeitverzögerung, die der Periodendauer eines Byteblockes entspricht. Somit kann ein Eingangsblock X in zwei verschieden Ausgangscodeworte Y gewandelt werden, abhängig vom letzten Bit des vorhergehenden Ausgangscodewortes.
  • Der Decodierer braucht keine Maschine mit finiten Zuständen (sequentieller Decodierer) zu sein. Ein normaler Blockdecodierer, der ein Codewort Y direkt in einen 8-Bit-Block X wandelt, ist ausreichend. Für die Fehlererkennungslogik wird jedoch ein separater Z-Eingang benötigt, der das letzte Bit Y&sub9; des vörhergehenden Codewortes über ein Verzögerungselement 27 empfängt.
  • Die Codierer- und Decodiererlogik wird in den Tabellen 5 beziehungsweise 6 dargestellt. Diese logischen Gleichungen werden durch logische Gate-Arrays implementiert, die in der Codiererlogik 19, der Decodiererlogik 23 beziehungsweise der Fehlererkennungslogik 25 der Fig. 6A und 6B enthalten sind. Um die Anzahl der logischen Gatter zu reduzieren, werden Zwischenvariablen für den Codierer Vi, i = 1, 2, ..., 22 und für den Decodierer Wi, i = 1, 2, ..., 17 verwendet. Es wird eine optionale Fehlermarkierung F bereitgestellt, welche gesetzt wird, wenn das Eingangssignal des Decodierers ein unerlaubtes Codewort ist. Tabelle 1 (4,6,5) Codiererlogik Variablen Partitionen Superpartitionen Codiererausgangssignal Tabelle 2 (4,6,5) Decodiererlogik Variablen Partitionen Superpartitionen Decoderausgangssignal Fehlererkennungsmarkierung Tabelle 3 (4,4,9) Codiererlogik Variablen Partitionen Codiererausgangssignal Tabelle 4 (4,4,9) Decodiererlogik Variablen Partitionen Decoderausgangssignal Fehlererkennungsmarkierung Tabelle 5 (4,6,4) Codiererlogik Variablen Partitionen Superpartitionen Codiererausgangssignal Tabelle 6 (4,6,4) Decodiererlogik Variablen Partitionen Superpartitionen Decoderausgangssignal Fehlererkennungsmarkierung

Claims (13)

1. Verfahren zum Codieren binärer Daten, die in Blöcke unterteilt sind, von denen jeder eine erste gegebene Anzahl k an Bits hat, in Codeworte, von denen jedes eine zweite gegebene Anzahl n = k + 1 Bits hat, das Verfahren umfaßt die Schritte:
- Empfangen der binären Daten;
- Erzeugen einer Folge von Codeworten fester Länge,
- die Folgen enthalten nicht mehr als eihe erste vorgewählte Anzahl (G&sub0;) aufeinanderfolgender Nullen;
- die Folgen umfassen zwei Subfolgen, von denen eine nur aus ungeraden Bitplätzen und die andere nur aus geraden Bitplätzen besteht, wobei jede der Subfolgen nicht mehr als eine zweite vorgewählte Anzahl (I&sub0;) aufeinanderfolgender Nullen enthält; dadurch gekennzeichnet, daß
- die Codeworte so ausgewählt werden, daß die maximale Anzahl aufeinanderfolgender Einsen, welche in einer beliebigen Codewort folge auftreten kann, eine dritte vorgewählte Anzahl (G&sub1;) nicht überschreitet, welche ein Minimum darstellt, das in Verbindung mit der ersten vorgewählten Anzahl (G&sub0;) und der zweiten vorgewählten Anzahl (I&sub0;) möglicherweise auftreten kann.
7. Vorrichtung zum Codieren binärer Daten in Codeworte, wobei die Vorrichtung umfaßt:
- Empfängermittel zum Empfangen binärer Daten und zur Aufteilung dieser Daten in Blöcke, von denen jeder eine erste gegebene Anzahl k an Bits umfaßt;
- Codiermittel, die mit den Empfängermitteln verschaltet sind, zum Erzeugen von Folgen von Codeworten fester Länge, von denen jedes Codewort eine zweite gegebene Anzahl n = k + 1 Bits umfaßt;
- die Folgen enthalten nicht mehr als eine erste vorgewählte Anzahl (G&sub0;) aufeinanderfolgender Nullen;
- die Folgen umfassen zwei Subfolgen, von denen eine nur aus ungeraden Bitplätzen und die andere nur aus geraden Bitplätzen besteht, wobei jede der Subfolgen nicht mehr als eine zweite vorgewählte Anzahl (I&sub0;) aufeinanderfolgender Nullen enthält, dadurch gekennzeichnet, daß
- die Folgen nicht mehr als eine dritte vorgewählte Anzahl (G&sub1;) aufeinanderfolgender Einsen enthalten;
- die dritte vorgewählte Anzahl (G&sub1;) der Minimalwert ist, der in Verbindung mit der gegebenen Kombination der ersten vorgewählten Anzahl (G&sub0;) und der zweiten vorgewählten Anzahl (I&sub0;) auftreten kann.
2. Verfahren nach Anspruch 1 zum Codieren von Daten, von welchen aus den unterteilten 8-Bit-Datenblöcken 9-Bit-Codeworte gebildet werden, umfassend die folgenden Schritte:
- Auswählen eines vollen Subsatzes (L&sub1;), bestehend aus 263 möglichen Codeworten, aus dem Satz aller möglichen 9-Bit-Worte Y (Y&sub1; Y&sub2;, ... , Y&sub9;} wobei der Subsatz die folgenden logischen Bedingungen erfüllt:
(Y&sub1; + Y&sub2; + Y&sub3;) (Y&sub2; + Y&sub3; + Y&sub4; + Y + Y&sub6;) (Y&sub3; + Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7;) (Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7; + Y&sub8;) (Y&sub7; + Y&sub8; + Y&sub9;) = 1,
(Y&sub1; + Y&sub3; + Y&sub5; + Y&sub7;) (Y&sub3; + Y&sub5; + Y&sub7; + Y&sub9;) (Y&sub2; + Y&sub4; + Y&sub6; + Y&sub8;) = 1 und
Y&sub1; Y&sub2; Y&sub3; + Y&sub2; Y&sub3; Y&sub4; Y&sub5; Y&sub6; Y&sub7; + Y&sub3; Y&sub4; Y&sub5; Y&sub6; Y&sub7; Y&sub8; + Y&sub6; Y&sub7; Y&sub8; Y&sub9; = 0;
- Auswählen eines Teil-Subsatzes, bestehend aus 256 aktuellen Codeworten, aus dem vollen Subsatz der möglichen Codeworte;
- Zuordnen von je einem der 256 möglichen 8-Bit-Datenblöcke zu je einem der aktuellen Codeworte des Teil- Subsatzes und
- Codieren der Datenblöcke dadurch, daß jeder Datenblock durch das zugeordnete Codewort ersetzt wird;
so daß für die sich ergebende Folge von Codeworten die erste vorgewählte Anzahl (G&sub0;) die Vier ist, die zweite vorgewählte Anzahl (I&sub0;) die Sechs ist und die dritte vorgewählte Anzahl (G&sub1;) die Fünf ist.
3. Verfahren nach Anspruch 1 zum Codieren von Daten, von welchen aus den unterteilten 8-Bit-Datenblöcken 9-Bit-Codeworte gebildet werden, umfassend die folgenden Schritte:
- Auswählen eines vollen Subsatzes (L&sub2;), bestehend aus 263 möglichen Codeworten, aus dem Satz aller möglichen 9-Bit-Worte Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;) wobei der Subsatz die folgenden logischen Bedingungen erfüllt:
(Y&sub1; + Y&sub2; + Y&sub3;) (Y&sub2; + Y&sub3; + Y&sub4; + Y&sub5; + Y&sub6;) (Y&sub3; + Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7;) (Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7; + Y&sub8;) (Y&sub7; + Y&sub8; + Y&sub9;) = 1,
(Y&sub1; + Y&sub3; + Y&sub5; + Y&sub7;) (Y&sub3; + Y&sub5; + Y&sub7; + Y&sub9;) (Y&sub2; + Y&sub4; + Y&sub6; + Y&sub8;) = 1 und
Y&sub1; Y&sub2; Y&sub3; Y&sub4; + Y&sub2; Y&sub3; Y&sub4; Y&sub5; Y&sub6; Y&sub7; + Y&sub3; Y&sub4; Y&sub5; Y&sub6; Y&sub7; Y&sub8; + Y&sub7; Y&sub8; Y&sub9; = 0;
- Auswählen eines Teil-Subsatzes, bestehend aus 256 aktuellen Codeworten, aus dem vollen Subsatz der möglichen Codeworte;
- Zuordnen von je einem der 256 möglichen 8-Bit-Datenblöcke zu je einem der aktuellen Codeworte des Teil-Subsatzes; und
- Codieren der Datenblöcke dadurch, daß jeder Datenblock durch das zugeordnete Codewort ersetzt wird;
so daß für die sich ergebende Folge von Codeworten die erste vorgewählte Anzahl (G&sub0;) die Vier ist, die zweite vorgewählte Anzahl (I&sub0;) die Sechs ist und die dritte vorgewählte Anzahl (G&sub1;) die Fünfist.
4. Verfahren nach Anspruch 1 zum Codieren von Daten, von welchen aus den unterteilten 8-Bit-Datenblöcken 9-Bit-Codeworte gebildet werden, umfassend die folgenden Schritte:
- Auswählen eines vollen Subsatzes (L&sub1;), bestehend aus 259 möglichen Codeworten, aus dem Satz aller möglichen 9-Bit-Worte Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;) wobei der Subsatz die folgenden logischen Bedingungen erfüllt:
(Y&sub1; + Y&sub2; + Y&sub3;) (Y&sub2; + Y&sub3; + Y&sub4; + Y&sub5; + Y&sub6;) (Y&sub3; + Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7;) (Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7; + Y&sub8;) (Y&sub7; + Y&sub8; + Y&sub9;) = 1,
(Y&sub1; + Y&sub3; + Y&sub5; ) (Y&sub5; + Y&sub7; + Y&sub9;) (Y&sub2; + Y&sub4; + Y&sub6; ) (Y&sub4; + Y&sub6; + Y&sub8; ) = 1 und
Y&sub1; Y&sub2; Y&sub3; Y&sub4; Y&sub5; Y&sub6; + Y&sub5; Y&sub6; Y&sub7; Y&sub8; Y&sub9; = 0;
- Auswählen eines Teil-Subsatzes, bestehend aus 256 aktuellen Codeworten, aus dem vollen Subsatz der möglichen Codeworte;
- Zuordnen von je einem der 256 möglichen 8-Bit-Datenblöcke zu je einem der aktuellen Codeworte des Teil- Subsatzes; und
- Codieren der Datenblöcke dadurch, daß jeder Datenblock durch das zugeordnete Codewort ersetzt wird;
so daß für die sich ergebende Folge von Codeworten die erste vorgewählte Anzahl (G&sub0;) die Vier ist, die zweite vorgewählte Anzahl (I&sub0;) die Vier ist und die dritte vorgewählte Anzahl (G&sub1;) die Neun ist.
5. Verfahren nach Anspruch 1 zum Codieren von Daten, von welchen aus den unterteilten 8-Bit-Datenblöcken 9-Bit-Codeworte gebildet werden, umfassend die folgenden Schritte:
- Auswählen eines vollen Subsatzes (L&sub2;), bestehend aus 259 möglichen Codeworten, aus dem Satz aller möglichen 9-Bit-Worte Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;) wobei der Subsatz die folgenden logischen Bedingungen erfüllt:
(Y&sub1; + Y&sub2; + Y&sub3;) (Y&sub2; + Y&sub3; + Y&sub4; + Y&sub5; + Y&sub6;) (Y&sub3; + Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7;) (Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7; + Y&sub8;) (Y&sub7; + Y&sub8; + Y&sub9;) = 1,
(Y&sub1; + Y&sub3; + Y&sub5;) (Y&sub5; + Y&sub7; + Y&sub9;) (Y&sub4; + Y&sub6; + Y&sub8;) = 1 und
Y&sub1; Y&sub2; Y&sub3; Y&sub4; Y&sub5; + Y&sub4; Y&sub5; Y&sub6; Y&sub7; Y&sub8; Y&sub9; = 0;
- Auswählen eines Teil-Subsatzes, bestehend aus 256 aktuellen Codeworten, aus dem vollen Subsatz der möglichen Codeworte;
- Zuordnen von je einem der 256 möglichen 8-Bit-Datenblöcke zu je einem der aktuellen Codeworte des Teil-Subsatzes; und
- Codieren der Datenblöcke dadurch, daß jeder Datenblock durch das zugeordnete Codewort ersetzt wird;
so daß für die sich ergebende Folge von Codeworten die erste vorgewählte Anzahl (G&sub0;) die Vier ist, die zweite vorgewählte Anzahl (I&sub0;) die Vier ist und die dritte vorgewählte Anzahl (G&sub1;) die Neun ist.
6. Verfahren nach Anspruch 1 zum Codieren von Daten, von welchen aus den unterteilten 8-Bit-Datenblöcken 9-Bit-Codeworte gebildet werden, umfassend die folgenden Schritte:
- Auswählen aus dem Satz aller möglichen 9-Bit-Worte
Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;)
- eines ersten vollen Subsatzes (L), bestehend aus 230 aktuellen Codeworten, welche die folgenden logischen Bedingungen erfüllen:
(Y&sub1; + Y&sub2; + Y&sub3;) (Y&sub2; + Y&sub3; + Y&sub4; + Y&sub5; + Y&sub6;) (Y&sub3; + Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7;) (Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7; + Y&sub8;) (Y&sub7; + Y&sub8; + Y&sub9;) = 1,
(Y&sub1; + Y&sub3; + Y&sub5; + Y&sub7;) (Y&sub3; + Y&sub5; + Y&sub7; + Y&sub9;) (Y&sub2; + Y&sub4; + Y&sub6; + Y&sub8;) = 1 und
Y&sub1; Y&sub2; Y&sub3; + Y&sub2; Y&sub3; Y&sub4; Y&sub5; Y&sub6; + Y&sub3; Y&sub4; Y&sub5; Y&sub6; Y&sub7; + Y&sub4; Y&sub5; Y&sub6; Y&sub7; Y&sub8; + Y&sub7; Y&sub8; Y&sub9; = 0 ;
- Auswählen eines zweiten Subsatzes (1), bestehend aus 26 aktuellen Codeworten, die einer ersten Bedingung mit Y&sub1; = Y&sub2; = Y&sub3; = 0 unterliegen und welche weiterhin die folgenden logischen Bedingungen erfüllen:
(Y&sub4; + Y&sub5;) (Y&sub4; + Y&sub5; + Y&sub6;) (Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7;) (Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7; + Y&sub8;) (Y&sub7; + Y&sub8; + Y&sub9;) = 1,
(Y&sub5; + Y&sub7;) (Y&sub5; + Y&sub7; + Y&sub9;) (Y&sub4; + Y&sub6; + Y&sub8;) = 1 und
Y&sub4; Y&sub5; Y&sub6; Y&sub7; Y&sub8; + Y&sub7; Y&sub8; Y&sub9; = 0
- Auswählen eines dritten Subsatzes (0) von 35 möglichen Codeworten, die einer zweiten Bedingung mit Y&sub1; = Y&sub2; = Y&sub3; = 1 unterliegen und welche weiterhin die folgenden logischen Bedingungen erfüllen:
(Y&sub4; + Y&sub5; + Y&sub6; + Y&sub7; + Y&sub8;) (Y&sub7; + Y&sub8; + Y&sub9;) = 1,
Y&sub4; Y&sub5; + Y&sub4; Y&sub5; Y&sub6; + Y&sub4; Y&sub5; Y&sub6; Y&sub7; + Y&sub4; Y&sub5; Y&sub6; Y&sub7; Y&sub8; + Y&sub7; Y&sub8; Y&sub9; = 0
- Auswählen eines Teil-Subsatzes, bestehend aus 26 aktuellen Codeworten, die der zweiten Bedingung unterliegen, aus dem dritten Subsatz der möglichen Codeworte, die der zweiten Bedingung unterliegen;
- Zuordnen von je einem der 256 möglichen 8-Bit-Datenblöcke zu je einem der aktuellen Codeworte der Subsätze, wobei 26 von den möglichen 8-Bit-Datenblöcken zweifach zugeordnet werden und zwar einem Codewort, das der ersten Bedingung unterliegt und einem Codewort, das der zweiten Bedingung unterliegt; und
- Codieren der Datenblöcke dadurch, daß jeder Datenblock durch das zugeordnete Codewort ersetzt wird, wobei die Auswahl der bedingten Codeworte von dem binären Wert des letzten Bits des zuletzt erzeugten Codewortes abhängt;
so daß für die sich ergebende Folge von Codeworten die erste vorgewählte Anzahl (G&sub0;) die Vier ist, die zweite vorgewählte Anzahl (I&sub0;) die Sechs ist und die dritte vorgewählte Anzahl (G&sub1;) die Vier ist.
8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß sie einen Codierer zur Wandlung von 8-Bit Eingangsdatenblöcken X = (X&sub1;, X&sub2;, ... , X&sub8;) in 9-Bit-Ausgangscodeworte Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;) umfaßt, wobei der Codierer ein logisches Gate-Array ist, in welchem die folgenden logischen Funktionen implementiert sind:
so daß in Reaktion auf eine zufällige Folge der Eingangsdatenblöcke für die sich ergebende Folge der Ausgangscodeworte die erste vorgewählte Anzahl (G&sub0;) die Vier ist, die zweite vorgewählte Anzahl (I&sub0;) die Sechs ist und die dritte vorgewählte Anzahl (G&sub1;) die Fünfist.
9. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß sie einen Codierer zur Wandlung von 8-Bit Eingangsdatenblöcken X = (X&sub1;, X&sub2;, ... , X&sub8;) in 9-Bit-Ausgangscodeworte Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;) umfaßt, wobei der Codierer ein logisches Gate-Array ist, in welchem die folgenden logischen Funktionen implementiert sind:
so daß in Reaktion auf eine zufällige Folge der Eingangsdatenblöcke für die sich ergebende Folge der Ausgangscodeworte die erste vorgewählte Anzahl (G&sub0;) die Vier ist, die zweite vorgewählte Anzahl (I&sub0;) die Vier ist und die dritte vorgewählte Anzahl (G&sub1;) die Neun ist.
10. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß sie einen Codierer zur Wandlung von 8-Bit Eingangsdatenblöcken X = (X&sub1; , X&sub2;, ... , X&sub8;) in 9-Bit-Ausgangscodeworte Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;) umfaßt,
wobei der Codierer ein sequentieller Codierer (Figur 6A) ist, der neun Ausgänge zum Bereitstellen der neun Bits jedes Ausgangscodewortes besitzt und ebenfalls neun Eingänge, von denen acht so verschaltet sind, daß sie die acht Bits eines Eingangsdatenblockes empfangen und der neunte Eingang (Z) ist mit dem neunten Ausgang über ein Verzögerungselement (21) verbunden;
der Codierer ist ein logisches Gate-Array, in welchem die folgenden logischen Funktionen implementiert sind:
so daß in Reaktion auf eine zufällige Folge der Eingangsdatenblöcke für die sich ergebende Folge der Ausgangscodeworte die erste vorgewählte Anzahl (G&sub0;) die Vier ist, die zweite vorgewählte Anzahl (I&sub0;) die Sechs ist und die dritte vorgewählte Anzahl (G&sub1;) die Vier ist.
I1. Decodiervorrichtung zur Wandlung von 9-Bit-Eingangscodeworten Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;), die von einer Codiervorrichtung nach Anspruch 8 erzeugt wurden, in 8-Bit Ausgangsdatenblöcke X = (X&sub1;, X&sub2;, ... , X&sub8;), wobei die Decodiervorrichtung ein logisches Gate-Array umfaßt, in welchem die folgenden logischen Funktionen implementiert sind:
12. Decodiervorrichtung zur Wandlung von 9-Bit-Eingangscodeworten ,Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;), die von einer Codiervorrichtung nach Anspruch 9 erzeugt wurden, in 8-Bit Ausgangsdatenblöcke X = (X&sub1;, X&sub2;, ... , X&sub8;), wobei die Decodiervorrichtung ein logisches Gate-Array umfaßt, in welchem die folgenden logischen Funktionen implementiert sind:
13. Decodiervorrichtung zur Wandlung von 9-Bit-Eingangscodeworten Y = (Y&sub1;, Y&sub2;, ... , Y&sub9;), die von einer Codiervörrichtung nach Anspruch 10 erzeugt wurden, in 8-Bit Ausgangsdatenblöcke X = (X&sub1;, X&sub2;, ... , X&sub8;), wobei die Decodiervorrichtung ein logisches Gate-Array umfaßt, in weichem die folgenden logischen Funktionen implementiert sind:
DE68920739T 1989-08-16 1989-08-16 Daten-Kodierung für den Sofortstart von PRML-Empfängern. Expired - Fee Related DE68920739T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP89810607A EP0413076B1 (de) 1989-08-16 1989-08-16 Daten-Kodierung für den Sofortstart von PRML-Empfängern

Publications (2)

Publication Number Publication Date
DE68920739D1 DE68920739D1 (de) 1995-03-02
DE68920739T2 true DE68920739T2 (de) 1995-06-29

Family

ID=8203173

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68920739T Expired - Fee Related DE68920739T2 (de) 1989-08-16 1989-08-16 Daten-Kodierung für den Sofortstart von PRML-Empfängern.

Country Status (7)

Country Link
US (1) US5241309A (de)
EP (1) EP0413076B1 (de)
JP (1) JPH0724382B2 (de)
KR (1) KR940007546B1 (de)
BR (1) BR9004029A (de)
DE (1) DE68920739T2 (de)
HK (1) HK90095A (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0505657A1 (de) * 1991-03-27 1992-09-30 International Business Machines Corporation Präambel-Erkennung und Synchronisationsdetektierung in Partial-Response Systemen
US5196849A (en) * 1992-01-31 1993-03-23 International Business Machines Corporation Method and apparatus for implementing PRML codes with maximum ones
US5424881A (en) 1993-02-01 1995-06-13 Cirrus Logic, Inc. Synchronous read channel
US5544178A (en) * 1994-06-10 1996-08-06 Cirrus Logic, Inc. Method and apparatus for encoding data in a PRML class-IV digital communication channel
US5576906A (en) * 1994-10-11 1996-11-19 Quantum Corporation Synchronous detection of concurrent servo bursts for fine head position in disk drive
JPH08288850A (ja) * 1995-04-14 1996-11-01 Nec Corp 符号化変調方式および検出方式
ES2159040T4 (es) * 1995-09-01 2006-05-16 Koninklijke Philips Electronics N.V. Metodo de conversion de una serie de palabras de informacion de m bits en una señal modulada, metodo para la fabricacion de un soporte de grabacion, dispositivo de codificacion, dispositivo, dispositivo de grabacion, señal, asi como un soporte de grabacion.
US5949820A (en) * 1996-08-01 1999-09-07 Nec Electronics Inc. Method for optimizing an equalization and receive filter
US5808573A (en) * 1996-08-01 1998-09-15 Nec Electronics Incorporated Methods and structure for sampled-data timing recovery with reduced complexity and latency
US5790057A (en) * 1996-08-12 1998-08-04 Lanart Corporation Method of and system for the efficient encoding of data
KR100408532B1 (ko) * 1996-10-31 2004-01-24 삼성전자주식회사 데이타저장기기의prml코드생성방법
US5914989A (en) * 1997-02-19 1999-06-22 Nec Electronics, Inc. PRML system with reduced complexity maximum likelihood detector
US6089749A (en) * 1997-07-08 2000-07-18 International Business Machines Corporation Byte synchronization system and method using an error correcting code
US6158027A (en) * 1998-08-31 2000-12-05 International Business Machines Corporation Enhanced noise-predictive maximum likelihood (NPML) data detection method and apparatus for direct access storage device (DASD)
US6460150B1 (en) * 2000-03-02 2002-10-01 International Business Machines Corporation Noise-predictive post-processing for PRML data channel
US7133523B2 (en) * 2002-12-20 2006-11-07 Pitney Bowes Inc. Method and system for solving the word problem in braid group cryptosystems
US7388938B2 (en) * 2004-05-28 2008-06-17 Hitachi Global Storage Technologies-Netherlands B.V. Method for bit-byte synchronization in sampling a data string
US7030789B1 (en) 2004-12-01 2006-04-18 Hitachi Global Storage Technologies Netherlands B.V. Techniques for applying modulation constraints to data using periodically changing symbol mappings
US7071851B1 (en) 2005-01-31 2006-07-04 Hitachi Global Storage Technologies Netherlands B.V. Techniques for implementing non-uniform constraints in modulation encoded data
US7064687B1 (en) 2005-01-31 2006-06-20 Hitachi Global Storage Technologies Netherlands B.V. Techniques for modulating data using short block encoders
US7142134B2 (en) * 2005-02-01 2006-11-28 Hitachi Global Storage Technologies Netherlands B.V. Techniques for generating modulation codes using running substitutions
US7126502B2 (en) * 2005-02-01 2006-10-24 Hitachi Global Storage Technologies Netherlands B.V. Techniques for using interleaved encoders to obtain modulation constraints
US7486208B2 (en) * 2007-05-16 2009-02-03 International Business Machines Corporation High-rate RLL encoding

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4644564A (en) * 1983-08-05 1987-02-17 International Business Machines Corporation Decoding the output signal of a partial-response class-IV communication or recording device channel
JPS6048645A (ja) * 1983-08-29 1985-03-16 Sony Corp 情報変換装置
JPH0721942B2 (ja) * 1984-10-11 1995-03-08 ソニー株式会社 チヤンネル符号化方法
US4707681A (en) * 1986-04-24 1987-11-17 International Business Machines Corporation Method and apparatus for implementing optimum PRML codes
US5040191A (en) * 1987-02-24 1991-08-13 Codex Corporation Partial response channel signaling systems
US4786890A (en) * 1987-07-28 1988-11-22 International Business Machines Corporation Method and apparatus for implementing a PRML code
DE3778549D1 (de) * 1987-11-13 1992-05-27 Ibm Schnelle takterfassung fuer partial-response-signalisierung.
NL8702905A (nl) * 1987-12-03 1989-07-03 Philips Nv Werkwijze en inrichting voor het optekenen van informatie, een registratiedrager, een inrichting voor het uitlezen van de opgetekende informatie, alsmede een codeer- en decodeerschakeling voor toepassing in de opteken- en uitleesinrichting.
US4870414A (en) * 1988-03-18 1989-09-26 International Business Machines Corporation Even mark modulation coding method
US5001482A (en) * 1990-06-11 1991-03-19 International Business Machines Corporation BiCMOS digital-to-analog converter for disk drive digital recording channel architecture

Also Published As

Publication number Publication date
EP0413076A1 (de) 1991-02-20
BR9004029A (pt) 1991-09-03
KR940007546B1 (ko) 1994-08-19
KR910005588A (ko) 1991-03-30
JPH03102920A (ja) 1991-04-30
DE68920739D1 (de) 1995-03-02
US5241309A (en) 1993-08-31
EP0413076B1 (de) 1995-01-18
HK90095A (en) 1995-06-16
JPH0724382B2 (ja) 1995-03-15

Similar Documents

Publication Publication Date Title
DE68920739T2 (de) Daten-Kodierung für den Sofortstart von PRML-Empfängern.
DE3888418T2 (de) PRML-Kodierung.
DE68925547T2 (de) Vorrichtung und Verfahren zur Zeichenbegrenzungsermittlung in einem seriellen codierten Datenstrom
DE69024045T2 (de) Kodierungsverfahren und Vorrichtung zur Pipeline- und Parallelverarbeitung.
DE3587535T2 (de) Verfahren und Vorrichtung zur numerischen Datenkodierung.
DE4437790B4 (de) Verfahren und Vorrichtung zur Verwendung von endlichen Automaten zur Durchführung einer Kanalmodulation und einer Fehlerkorrektur und einer Entropie-Kodierung
DE69023372T2 (de) Zuverlässigkeitsverbesserung von nichtflüchtigen Datenspuren einer Speichervorrichtung.
DE60035171T2 (de) Verfahren und Schaltungen zum schnellen Auffinden des minimalen / maximalen Wertes in einer Menge von Zahlen
DE69609509T2 (de) Trelliskodierung mit verminderter fehlerverbreitung
DE19781914C2 (de) System zum Implementieren von lauflängenbegrenzten Codes
DE2844216C2 (de) Erzeugung von Synchronisier-Bitfolgemustern bei Code mit begrenzter Lauflänge
DE3687285T2 (de) Verfahren und anordnung zur modifizierung eines lauflaengenbegrenzten codes.
DE69427399T2 (de) Datenübertragungseinrichtung
DE2227148B2 (de) Schaltungsanordnung zur Umsetzung digitaler Daten
DE2830924A1 (de) Einrichtung zum aufzeichnen und/oder uebertragung von digitalen signalen
DE4203301C1 (de)
DE2805294C2 (de) Codierende Übertragungsanlage für Faksimile-Signale
DE102019107670B4 (de) Entspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE2828219C2 (de)
DE69327021T2 (de) Dekodierschaltung für einen Kode variabler Länge
DE69602932T2 (de) Multitor ram zur anwendung in einem viterbidecoder
DE1549439A1 (de) Datenverarbeitungssystem
DE3051112C2 (de)
DE2727627C2 (de) Dekoder zur Parallelumsetzung von binären Zeichendaten in ein Punktmatrixformat
DE69904827T2 (de) Umkehrbare umsetzung von binären sequenzen in 2/3 (1,k) lauflängenbegrenzte kodierte sequenzen mit beschränkungen der maximalen übergangsdichte

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee