DE3687285T2 - Verfahren und anordnung zur modifizierung eines lauflaengenbegrenzten codes. - Google Patents
Verfahren und anordnung zur modifizierung eines lauflaengenbegrenzten codes.Info
- Publication number
- DE3687285T2 DE3687285T2 DE8686103742T DE3687285T DE3687285T2 DE 3687285 T2 DE3687285 T2 DE 3687285T2 DE 8686103742 T DE8686103742 T DE 8686103742T DE 3687285 T DE3687285 T DE 3687285T DE 3687285 T2 DE3687285 T2 DE 3687285T2
- Authority
- DE
- Germany
- Prior art keywords
- code
- block
- bits
- charge accumulation
- charge
- 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
Links
- 238000000034 method Methods 0.000 title claims description 18
- 238000009825 accumulation Methods 0.000 claims description 29
- 239000003607 modifier Substances 0.000 claims description 15
- 238000006467 substitution reaction Methods 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000003491 array Methods 0.000 claims description 2
- 230000003213 activating effect Effects 0.000 claims 1
- 238000001514 detection method Methods 0.000 claims 1
- 238000011084 recovery Methods 0.000 claims 1
- 230000008859 change Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 230000001186 cumulative effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000007704 transition Effects 0.000 description 7
- 238000012935 Averaging Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000003990 capacitor Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 4
- 230000004907 flux Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001939 inductive effect Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code 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/145—Conversion to or from block codes or representations thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Dc Digital Transmission (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
- Die vorliegende Erfindung betrifft ein Verfahren und eine Anordnung zur Modifizierung eines lauflängenbegrenzten Codes und insbesondere die Modifizierung solcher Codes zum Löschen eines Gleichstrompegels, um dadurch die Kommunikation solcher Codes über Schaltungen zu ermöglichen, die nicht in der Lage sind, die Gleichstromkomponente zu beherrschen.
- Daten oder Informationen in Binärform bestehen aus Datenbits, wobei die Information in jedem Bit als einer von zwei logischen Zuständen vorliegt, als logische 1 oder als logische 0. Die Bits können über Kommunikationskanäle übertragen oder auf Speichermedien, besonders auf magnetischen Medien, aufgezeichnet werden. Bei der Speicherung auf magnetischen Medien können eine logische 1 und eine logische 0 durch alternierende Zustände einer magnetischen Polarisierung dargestellt werden, oder einer der logischen Zustände kann durch einen Übergang in einen magnetischen Zustand dargestellt werden, während der andere in bezug auf einen geeigneten Zeitrahmen durch das Fehlen eines Übergangs dargestellt wird.
- Verschiedene Formen von Signalformaten stehen für die Übertragung digitalisierter Daten als Serie von Datenbits zur Verfügung. So kann zum Beispiel eine logische 1 durch eine relativ hohe positive Spannung dargestellt werden, während eine logische 0 durch eine relativ niedrige positive Spannung dargestellt wird. Eine solche Signalwelle hat eindeutig eine Gleichstromkomponente. Statt dessen kann eine logische 1 auch als Impuls positiver Spannung und eine logische 0 als Impuls negativer Spannung dargestellt werden. Die einzelnen Impulse können dadurch gekennzeichnet sein, daß zwischen ihnen Abstände mit einer Spannung von null Volt gelassen werden oder indem die einzelnen Abschnitte der Welle, die jeweils mit Datenbits gekennzeichnet sind, durch Zeitsignale eines Taktgebers bezeichnet werden. Bei den genannten Wellen, bei denen positive und negative Spannungsausschläge vorkommen, hängt das Vorhandensein eines Gleichstrompegels von der Dauer einer Folge von Signalen mit logisch 1 im Vergleich zu der Dauer einer Folge von Signalen mit logisch 0 ab. So hängt in einer Serie von Datenbits von vorbestimmter Länge die Größe eines Gleichstrompegels, sofern vorhanden, von den relativen Anteilen der positiven und negativen Bereiche der Welle ab.
- In digitalen Kommunikationssystemen, bei denen ein Taktsignal eingesetzt wird, um einen Abschnitt einer Welle zu kennzeichnen, der ein einzelnes Datenbit darstellt, wobei solche Abschnitte Übergänge zwischen positiven und negativen Spannungen, eine positive Spannung oder eine negative Spannung sind, ist im Empfänger einer übermittelten Botschaft die Verwendung eines Taktgebers erforderlich, der mit der Datenwelle synchronisiert ist.
- Eine solche Synchronisation läßt sich erzielen, indem die digitale Welle so aufgebaut wird, daß die Lauflänge der positiven und negativen Abschnitte der Welle beschränkt wird. Die Übergänge zwischen positiven und negativen Spannungen werden bei der Synchronisierung eines Takts verwendet, und entsprechend gewährleistet die genannte Beschränkung der Welle, daß solche Übergänge zeitlich eng genug beieinanderliegen, um die gewünschte Genauigkeit bei der Synchronisierung des Takts mit der Welle zu bieten.
- Eine digitale Welle, in der Datenbits codiert sind, die gemäß einer Lauflängenbegrenzung angeordnet sind, ist oft durch die Verwendung eines Zahlenpaars gekennzeichnet, wobei die erste Zahl eine Mindestzahl von Nullen darstellt, die zwischen einer logischen 1 stehen, und die zweite Zahl des Paars die Höchstzahl von Nullen darstellt, die zwischen einer logischen 1 stehen können. Eine solche Lauflängenbegrenzung kann einen Gleichstrompegel über eine Länge einer Datenbitfolge zulassen, die ausreicht, um die Signalwelle beim Durchgang durch eine kapazitive oder induktive Kopplung in einer Kommunikationsschaltung oder einer Aufzeichnungsschaltung zu verzerren. Zum Beispiel baut ein Gleichstrompegel langsam eine Ladung an einem Koppelkondensator auf, die schließlich zur Verzerrung der Signalwelle führt, wenn nicht folgende Abschnitte der Welle zu einer Entladung des Kondensators führen, so daß die durchschnittliche Ladung an dem Kondensator null ist. Auf ähnliche Weise wird bei einer induktiven Kopplung eine Gleichstromkomponente zur Erzeugung eines zunehmenden Flusses in die Spannung integriert, und dies führt schließlich zu einer Verzerrung des Signals, sofern nicht eine weitere Bitfolge einen negativen Beitrag zu dem Fluß leistet. Der in einer Lauflängenbegrenzung aufgebaute Code kann daher eine übermäßige Gleichstromkomponente aufweisen, die bisher mit verfügbaren Formen digitaler Wellen zur Codierung digitaler Daten nicht gelöscht werden konnte.
- Die Löschung einer Gleichstrom- oder sonstigen Frequenzkomponente aus einer codierten Welle wird in den folgenden US Patentschriften beschrieben: Patel 3.810.111 vom 7. Mai 1974, Ouchi 3.995.264 vom 30. November 1976 und Franaszek et al 4.028.535 vom 7. Juni 1977.
- Ein Artikel mit dem Titel "Charge-Constrained Byte-Oriented (0,3) code'" (IBM Technical Disclosure Bulletin, Dezember 1976, Seite 2715-2717) beschreibt ein Verfahren zur Beendigung des unbegrenzten Anstiegs des angesammelten Änderungswerts über einer codierten Welle, d. h. zur Verminderung von Gleichstrompegeln, durch häufiges Umkehren ausgewählter Abschnitte der Welle. Dies wird durch Einfügung einer umkehrenden oder nicht-umkehrenden Verbindung in Form eines Bitpaars an den Abschnittsgrenzen erreicht.
- Von besonderem Interesse sind ein Verfahren und eine Anordnung zur Erzeugung eines (1,7) Codes aus einem ursprünglichen Code mit einer Rate von 2/3 des ursprünglichen Codes, wie sie in neuerer Zeit in einer US Patentschrift 4.413.251 vom 1. November 1983 von R. Adler et al beschrieben wurde. Daten, die in einem Format codiert sind, das keine Lauflängenbegrenzung aufweist, werden durch das genannte Verfahren und die Anordnung in einen Code mit Lauflängenbegrenzung umgewandelt. Die Anordnung empfängt jeweils zwei Bits des hereinkommenden Codes und wandelt jede Zwei-Bit-Folge in eine Drei-Bit-Folge um. Danach kann der modifizierte Code über einen Kommunikationskanal übertragen oder auf magnetischen Medien gespeichert werden. Anschließend wird der Code vor der Nutzung durch einen Empfänger oder der Anzeige wieder in seine ursprüngliche codierte Form zurückverwandelt und dann schließlich decodiert, um die Daten zur Darstellung auf der Anzeige oder zu einem sonstigen Zweck zu extrahieren. Zwar dürften die genannte Codierungsmethode von Adler und die daraus resultierende Menge von Codes äußerst nützlich sein, doch leidet der Nutzen unter dem Vorhandensein eines Gleichstrompegels, der übermäßig hoch werden und dadurch zu Verzerrungen in Kommunikationssystemen, die eine Gleichstromkomponente nicht beherrschen können, sowie zu Verzerrungen in jeder Aufzeichnung von Daten auf magnetischen Medien, führen kann.
- Die Erfindung wird in den beigefügten Ansprüchen definiert.
- Es ist ein Ziel der vorliegenden Erfindung, ein Verfahren und eine Anordnung zur Umwandlung eines lauflängenbegrenzten Codes, insbesondere des genannten Adler-Codes, in eine Form zu ermöglichen, die im Durchschnitt keinen Gleichstrompegel aufweist, aber dennoch die Lauflängenbegrenzung des ursprünglichen Codes beibehält. Ein Verfahren und eine Anordnung der Erfindung erreichen dieses Ziel und bieten noch andere Vorteile, indem der ursprüngliche Block in Blöcke geteilt wird, jeweils zwei zusätzliche Bits zwischen den Blöcken eingefügt werden und gelegentlich einzelne Bits in den anführenden und angefügten Folgen von vier Bits jedes Blocks geändert werden, um eine Umkehr im Richtungssinn einer kapazitiven Ladung (oder eines magnetischen Flusses) zu gewährleisten, die durch das Vorhandensein einer Gleichstromkomponente in Blöcken des ursprünglichen Codes aufgebaut wird.
- Gemäß einem System, das die Erfindung nutzt, werden Daten zuerst in einem Standardcode codiert und dann durch den genannten Adler-Code in einen lauflängenbegrenzten Code umgewandelt, und dieser Code wird dann durch die Erfindung modifiziert, um langfristige Gleichstrompegel zu löschen, die sich über mehrere Blöcke des Codes erstrecken. Der modifizierte Code kann dann gespeichert oder zu einem Empfänger übermittelt werden, und danach erlaubt das System der Erfindung die Wiederherstellung des früheren Signalformats, um die spätere Decodierung und den Abruf der Daten zu ermöglichen. Statt dessen kann die Erfindung auch auf einen bestehenden lauflängenbegrenzten Code angewandt werden, der ähnliche Eigenschaften wie der genannte Adler-Code aufweist, um den Gleichstrompegel zu löschen, gefolgt von einer späteren Wiederherstellung des Gleichstrompegels.
- Ein Merkmal der Erfindung besteht in der Entdeckung, daß aufgrund von Lauflängenbegrenzungen das anführende und das angefügte Ende eines Blocks des Adler-Codes in der Zahl der verschiedenen Kombinationen von logischen Zuständen der einzelnen Bits beschränkt sind. Daher kann mit jeder Kombination eines angefügten Endes aus vier Bits und eines anführenden Endes aus vier Bits aufeinanderfolgender Dreißig- Bit-Blöcke des Adler-Codes eine Tabulierung der logischen Zustände der zusätzlichen zwei Bits vorgenommen werden, um eine folgende Ladung, die mit der Gleichstromkomponente eines folgenden Blocks in Zusammenhang steht, so zu leiten, daß dem Aufbau einer Ladung von einem früheren Block entgegengewirkt wird.
- Größere Flexibilität könnte erzielt werden, indem mehr als die genannten zwei zusätzlichen Bits zwischen den Codeblöcken eingesetzt würden, und zwar so, daß die genannten anführenden und angefügten Enden eines Blocks nicht modifiziert werden müßten oder weniger stark modifiziert werden müßten, um den Richtungssinn der Ladung umzuleiten. Jedoch würden solche zusätzlichen Bits die Datenrate verlangsamen und im Falle gespeicherter Daten mehr Speicherkapazität erfordern. Es wird angenommen, daß die Wahl der zwei Bits, die zwischen aufeinanderfolgenden Codeblocks eingefügt werden, in dem Sinne optimal ist, daß sich relativ wenig an der Datenrate ändert und nur minimale Änderungen am Format der logischen Zustände der anführenden und angefügten Enden eines Codeblocks erforderlich sind. In der Anwendung der Erfindung werden die Ladungsmenge, die von einem früheren Block verursacht wird, und der Ladungsbeitrag des gegenwärtigen Blocks festgehalten, um zu ermitteln, ob eine Umkehr in der Richtung eines Ladungsaufbaus erforderlich ist, um den Effekt einer Gleichstromkomponente zu neutralisieren.
- Die genannten Aspekte und andere Merkmale der Erfindung werden in der folgenden Beschreibung zu den beiliegenden Zeichnungen erläutert, wobei gilt:
- Fig. 1 ist ein vereinfachtes Blockdiagramm eines Systems, das die Erfindung umfaßt;
- Fig. 2 zeigt ein Blockdiagramm eines Codierers aus Fig. 1, der einen Gleichstrompegel gemäß der Erfindung löscht;
- Fig. 3 ist ein Diagramm des zeitlichen Ablaufs, das sich zur Erläuterung der relativen Codelänge von Blockcodes eignet, die von der Schaltung aus Fig. 2 verarbeitet werden;
- Fig. 4 ist ein Blockdiagramm der Codierschaltung innerhalb des Codierers aus Fig. 2 zum Einfügen der zusätzlichen Bits zur Steuerung des Richtungssinns des Ladungsaufbaus; und
- Fig. 5 zeigt einen Decodierer aus Fig. 1 zur Wiederherstellung des Gleichstrompegels.
- In Fig. 1 wird ein vereinfachtes Ausführungsbeispiel eines Kommunikationssystems 20 gezeigt, das die Erfindung umfaßt. Die eingegebenen Daten auf Leitung 22 werden zu einem Codierer 24 geleitet, der die Daten im Format eines lauflängenbegrenzten Codes codiert. Bei dem Codierer 24 kann es sich zum Beispiel um denjenigen handeln, der in der genannten Patentschrift von Adler beschrieben ist. Ein Ausgangssignal des Codierers 24 wird zu einem Codierer 26 geleitet, der gemäß der Erfindung arbeitet, um den Code des Codierers 24 so zu modifizieren, daß der durchschnittliche Gleichstrompegel gelöscht wird. Der modifizierte Code erscheint auf Leitung 28 und wird über eine Kommunikationsverbindung 30 an einen Decodierer 32 geleitet, der gemäß der Erfindung arbeitet, um den Gleichstrompegel wiederherzustellen und den codierten Daten wieder das Format zurückzugeben, das am Ausgang des Codierers 24 erschien. Das Ausgangssignal des Decodierers 32 wird zu einem weiteren Decodierer 34 geleitet, der die umgekehrte Operation des Codierers 24 durchführt, so daß die Daten auf Leitung 36 in derselben Form erscheinen wie die Daten auf Leitung 22. Die Daten auf Leitung 36 werden zu einem Gerät geleitet, das sie nutzt, wie zum Beispiel zu einer Anzeige 38. Anzumerken ist, daß die Daten auf den Leitungen 22 und 36 in codierter Form vorliegen können, wie zum Beispiel im ASCII-Code für alphanumerische Zeichen, oder als digitalisierte Version analoger Musterdaten, wie sie von einem Analog-Digital- Umsetzer (nicht abgebildet) geliefert werden.
- Die Kommunikationsverbindung 30 kann von einem Funksender oder -empfänger oder einer Telefonverbindung (nicht abgebildet) Gebrauch machen oder umfaßt, wie in dem Beispiel aus Fig. 1 dargestellt, ein magnetisches Medium mit einem Aufzeichnungskopf 42 und einem Wiedergabekopf 44, die damit verbunden sind. Signale auf Leitung 28 werden zu dem Medium 40 über den Aufzeichnungskopf 42 geleitet, um auf dem Medium 40 gespeichert zu werden. Die gespeicherten Daten werden von dem Medium 40 mit Hilfe des Wiedergabekopfes 44 ausgelesen und von dem Wiedergabekopf 44 zu dem Eingang des Decodierers 32 geleitet.
- Im Betrieb des Systems 20 besteht die Rolle, die von der Erfindung gespielt wird, in der Nutzung des Codierers 26 und des Decodierers 32. Der Codierer 26 modifiziert ein eingehendes digitalisiertes Signal, wie zum Beispiel das von dem genannten Code der Adler-Patentschrift exemplifizierte, um den Gleichstrompegel zu löschen und dadurch das digitalisierte Signal für die weitere Kommunikation und durch eine kapazitive Kopplung (nicht abgebildet) oder durch die magnetischen Medien 40 vorzubereiten. Nach dem Abruf des digitalisierten Signals von dem magnetischen Medium 40 stellt der Decodierer 32 das digitalisierte Signal wieder in seiner ursprünglichen Form her, wie zum Beispiel den Code der Adler- Patentschrift, so daß das digitalisierte Signal dann zu seinem beabsichtigten Zweck genutzt werden kann, wie zum Beispiel zur Darstellung von Informationen auf der Anzeige 38. Die Löschung des Gleichstrompegels beruht auf einer Prüfung des gegenwärtigen Blocks des Codes und eines oder mehrerer vorhergehender Blöcke des Codes, um deren jeweiligen Beitrag zum Aufbau einer Ladung zu bestimmen. Die Verwendung des Ausdrucks "Ladung" ist hier dieselbe wie in der genannten Patentschrift von Patel, in der mit dem Ausdruck sowohl die Ladung beschrieben wird, die ein Kondensator erfährt, durch den der Code übermittelt wird, als auch einen analogen Spannungs- oder Stromanstieg, den ein Integrator erfährt, durch den die codierte Welle hindurchgeht. Durch Beobachtung einer Verlagerung in der Ladung weg von einem Wert der Nulladung, sei es eine positive Verlagerung oder eine negative Verlagerung, wurde eine Korrektur durchgeführt, indem eine entsprechende Verschiebung, eine negative Verschiebung oder eine positive Verschiebung, eingefügt wird, um die Verlagerung der Ladung weg von dem Wert der Nulladung zu neutralisieren. Dies wird erreicht, indem zusätzliche Bits zwischen den Codeblöcken eingefügt und/oder die anführenden und angefügten Endabschnitte der aufeinanderfolgenden Blöcke des codierten Signals modifiziert werden.
- Aufgrund der Lauflängenbegrenzung im Aufbau des Blockcodes gibt es relativ wenige Kombinationen, die mit den digitalen Wörtern gebildet werden können, die die Endabschnitte der Codeblocks plus die eingefügten Bits umfassen. Diese relativ wenigen Kombinationen ermöglichen es, daß der Prozeß der Wiederherstellung durch den Decodierer 32 durch eine relativ einfache logische Prozedur erreicht werden kann, wobei die modifizierten Endabschnitte der Blöcke wieder in ihrem ursprünglichen Format wiederhergestellt werden.
- Fig. 2 zeigt ein Blockdiagramm des Codierers 26, der über eine Leitung 46 zu dem Ausgang des Codierers 24 geleitet wird und den gleichstromfreien Code auf Leitung 28 liefert. Eine stilisierte Darstellung eines Codesignals, das über die Leitung 46 übertragen wird, ist bei 48 zu sehen. Der Codierer 26 umfaßt einen Auf-Ab-Zähler 50, einen Umschalt-Flipflop 52, der auf positive und negative Übergänge in der Welle des Codesignals 48 reagiert und auf der Leitung 54 ein Ausgangssignal liefert, einen Taktgeber 56, einen Zähler 58, einen Zwischenspeicher 60, einen Frequenzskalierer 62, einen Pufferspeicher 64, einen Codemodifizierer 66 und eine Logikeinheit 68 mit zwei Vorzeichendetektoren 70 und 72, die an ihre Eingänge gekoppelt sind.
- Im Betrieb dient der Zähler 50 als Integrator, der die Taktimpulse des Taktgebers 56 zählt. Das Ausgangssignal des Flipflops 52 ändert bei jedem Übergang der Welle des Codesignals 48 den Zustand und wird über die Leitung 54 zu einem Auf/Ab-Steuerungsanschluß des Zählers 50 geleitet. Der Zähler 50 zählt aufwärts bei einem Signal auf der Leitung 54, das einen Abschnitt des Signals 48 mit einer relativ hohen Spannung anzeigt, die von dem Flipflop 52 erfaßt wurde. Damit der Codierer 24 und der Codierer 26 synchron arbeiten, dienen die Impulse des Taktgebers 56 auch als Antrieb für den Codierer 24. Der Zähler 58 zählt die Impulse des Taktgebers 56, so daß sein Zählerstand für die Länge eines Codewortes des Signals 48 steht. Der Zähler 58 wird so eingestellt, daß er nach dem Abschluß jedes Blocks des Signals 48 ein Ausgangssignal auf Leitung 74 liefert. Im Falle des genannten Codes der Adler-Patentschrift hat jeder Block des Codes 30 Bits, und dementsprechend würde der Zähler 58 zur Verwendung mit dem genannten Adler-Code auf einen Wert von 30 gesetzt. Bei Erreichen des Zählerstandes 30 erzeugt der Zähler 58 den Impuls auf der Leitung 74, der den Zähler 58 zurücksetzt und außerdem auch den Zähler 50 zurücksetzt und den Zwischenspeicher abtastet.
- Weil der Zähler 50 beim Abschluß jedes Blocks des Codes zurückgesetzt wird, stellt der Gesamtzählerstand des Zählers 50 die Ladung dar, die durch den Block des Codes angesammelt wurde. Die Ladung kann einen Wert von null haben oder einen Wert ungleich null, der entweder positiv oder negativ ist. Der Stand des Zählers 50 wird nach dem Abtasten durch das Signal auf der Leitung 74 in dem Zwischenspeicher 60 gespeichert. Dadurch enthält der Zwischenspeicher eine Geschichte des zurückliegenden Ladungsaufbaus, während die Ausgabe des Zählers 50 den Wert der Ladung des letzten Blocks darstellt. Der ausgegebene Zählerstand des Zählers 50 wird zu dem Detektor 70 geleitet, der prüft, ob der Zählerstand oder die Ladung, für die der Zählerstand steht, positiv oder negativ ist. Das positive oder negative Vorzeichen der Ladung wird von dem Detektor 70 als Eingabe an die Logikeinheit 68 geleitet. Auf ähnliche Weise wird der ausgegebene Zählerstand oder die Ladung des Zwischenspeichers 60 an den Detektor 72 geleitet, der prüft, ob die angesammelte Ladung positiv oder negativ ist. Das Vorzeichen der angesammelten Ladung wird von dem Detektor 72 als Eingabe an die Logikeinheit 68 geleitet.
- Der Pufferspeicher 64 empfängt auf der Leitung 46 das Signal von dem Codierer 24. Das codierte Signal auf der Leitung 46 wird durch Taktimpulse des Taktgebers 56 in den Speicher 64 getaktet. Die Bits des codierten Signals werden aus dem Speicher 64 anschließend mit einer höheren Taktrate durch Taktimpulse ausgelesen, die von dem Frequenzskalierer 62 hergeleitet werden. Der Skalierer 62 wird durch Impulse des Taktgebers 56 getrieben und enthält eine bekannte Zählschaltung und möglicherweise einen zusätzlichen Taktgeber (nicht abgebildet), der durch Impulse der Zähler des Skalierers 62 synchronisiert wird. Auf Wunsch können die Schaltung des Skalierers 62 und des Taktgebers 56 zu einer einzigen Taktgeberschaltung (nicht abgebildet) kombiniert werden, die Taktimpulse mit einer geringeren und einer höheren Taktfrequenz ausgibt.
- Der Pufferspeicher 64 erfüllt zwei Funktionen, nämlich die Speicherung des eingehenden codierten Signals auf der Leitung 46, bis die Ladungsdaten des aktuellen Codeworts von dem Zähler 50 zur Verfügung gestellt werden, und eine Erhöhung der Taktrate zur Unterbringung der zusätzlichen Bits, die von dem Codemodifizierer 66 eingesetzt werden sollen. Dies läßt sich unter Bezugnahme auf die Zeitdiagramme in Fig. 3 erläutern, wobei das obere Diagramm Blöcke mit 30 Bit langen Codewörtern zeigt, die auf der Leitung 46 übermittelt werden, während der untere Graph die entsprechenden 32-Bit-Blöcke zeigt, die am Ausgang des Codemodifizierers 66 auf der Leitung 28 auftreten. Wie aus Fig. 3 hervorgeht, ist die zeitliche Dauer bei dem 30-Bit-Block dieselbe wie bei dem 32- Bit-Block. Um die Gleichheit der zeitlichen Dauer zu berücksichtigen, muß die Taktrate um das Verhältnis der Bits (32/30) erhöht werden.
- Die Logikeinheit 68 weist den Modifizierer 66 an, den Richtungssinn (positiv oder negativ) des Ladungsaufbaus eines Codeblocks entweder zu ändern oder aber im vorliegenden Zustand zu belassen. Wenn die von den Detektoren 70 und 72 festgestellten Richtungen gegensätzlich sind, was zu einer Korrektur des Ladungsaufbaus und einer Verringerung der Gleichstromkomponente führt, weist die Logikeinheit 68 den Modifizierer 66 an, den Ladungszustand des vorliegenden Codeblocks beizubehalten. Wenn die Detektoren 70 und 72 jedoch feststellen, daß die Ladungen des Zählers 50 und des Zwischenspeichers 60 dasselbe Vorzeichen aufweisen, was auf einen anhaltenden Aufbau der Ladung und der Gleichstromkomponente hindeutet, weist die Logikeinheit 68 den Modifizierer 66 an, den Richtungssinn der Ladung des vorliegenden Codeblocks umzukehren. Dadurch weist die Ladung des Codeblocks, der den Modifizierer 66 verläßt, immer den richtigen Richtungssinn für die Korrektur der Ladungsansammlung auf.
- Wie aus Fig. 4 hervorgeht, umfaßt der Codemodifizierer 66 einen Speicher 76, bei dem es sich um einen Nur-Lese-Speicher handeln kann, eine Zeitsteuerungseinheit 78 und eine Gattersteuerungseinheit 80. Der in dem Pufferspeicher 64 gespeicherte Code wird zu der Gattersteuerungseinheit 80 geleitet und gemeinsam mit einem Eingangssignal der Logikeinheit 68 auch als Adresse zu dem Speicher 76. Die Zeitsteuerungseinheit 78 wird durch die hohen Taktimpulse des Skalierers 62 (Fig. 2) getrieben und liefert Zeitsteuerungssignale für den Betrieb des Speichers 76 und der Gattersteuerungseinheit 80. Im Falle des genannten als Beispiel dienenden Adler-Codes werden anführende und angefügte Endabschnitte, die jeweils sechs Bits umfassen, zur Adressierung des Speichers 76 genutzt. Die Zeitsteuerungseinheit 78 betreibt den Speicher 76 so, daß er auf das Auftreten der Bits in den anführenden und angefügten Endabschnitten anspricht. Die Zeitsteuerungseinheit 78 betreibt die Gattersteuerungseinheit so, daß sie alle Bits eines Codeblocks außer den Bits der anführenden und angefügten Endabschnitte des Codeworts von dem Speicher 64 empfängt und an deren Stelle die modifizierte Bitgruppe für die Endabschnitte plus die zusätzlichen zwei Bits einsetzt, die zwischen den Codeblocks eingefügt werden.
- Als alternatives Ausführungsbeispiel wird darauf hingewiesen, daß der Modifizierer 66 in Form einer programmierbaren Logik- Anordnung konstruiert sein kann. Mit der programmierbaren Logik-Anordnung (nicht abgebildet) würden die Bits eines eingehenden Codeblocks zu einer Gruppe von Eingangsleitungen der Anordnung geleitet, und die Bits des ausgegebenen modifizierten Codeblocks würden auf einer Gruppe von Ausgangsleitungen der Anordnung erscheinen. Zwischenverbindungen zwischen der Eingangs- und der Ausgangsgruppe sind gegeben, um dieselbe Funktion zu erfüllen, wie sie der Speicher 76 und die Gattersteuerungseinheit 80 als Reaktion auf die Adressierung durch die Signale des Speichers 64 und der Logikeinheit 68 erfüllen.
- Die genannte Operation wird leichter verständlich unter Bezugnahme auf die folgende mathematische Analyse, die sich auf einen lauflängenbegrenzten (1,7) Code der Form bezieht, die in der genannten Adler-Patentschrift beschrieben ist, wobei sich jeder Codeblock aus 30 Bits zusammensetzt und zwei Bits durch die Schaltung der Erfindung zwischen aufeinanderfolgenden Codeblöcken eingefügt werden. In dieser Situation übersteigt die angesammelte Ladung insgesamt nicht den absoluten Wert dreißig. Die Datenfortpflanzungsrate des Codes beträgt vor dem Einsetzen der beiden zusätzlichen Bits 2/3, denn die dreißig Bits in einem Codeblock enthalten nur zwanzig Datenbits. Nach dem Einfügen der beiden zusätzlichen Bits sinkt die Datenrate auf 20/32 = 0,625. Wenn es durch Rauschen oder andere Ursachen in einem Bit des Codeblocks zu einem Fehler kommt, wird die Fehlerfortpflanzung des Decodierers begrenzt; ein Fehler in den codierten Bits kann nicht mehr als zehn Fehler in den decodierten Bits verursachen.
- Wie aus der folgenden mathematischen Darstellung hervorgeht, führt die Modifikation der Endabschnitte der Codeblöcke zu einer Änderung der Gesamtladung, die angesammelt würde. Für eine solche Änderung böte der Zählerstand des Zählers 50, der auf dem eingehenden Codeblock vor der Modifizierung beruht, keine ausreichende Grundlage. Daher ist es wünschenswert, für die Entscheidung der Logikeinheit 68 eine weitere Grundlage zu geben, die über die Leitung 82 vom Modifizierer 66 kommt. Der Speicher 76 gibt projektierte Endabschnitte der Codeblocks für beide Fälle aus, nämlich für die Umkehr und für die Nichtumkehr des Richtungssinns der Ladungsansammlung. Die projektierten Endabschnitte werden über die Leitung 84 zu einem Berechner 86 des Ladungsinkrements geleitet, der zwei Werte des Ladungsinkrements liefert, von denen der eine dem Fall der Umkehr und der andere dem Fall der Nichtumkehr des Richtungssinns der Ladungsansammlung entspricht. Der Modifizierer 66 umfaßt des weiteren eine Mittelwertbildungseinheit 88 und einen Vorzeichendetektor 90. Die beiden möglichen Werte des Ladungsinkrements werden über die Leitungen 92 und 94 zu der Mittelwertbildungseinheit 88 geleitet, die den Mittelwert der beiden Ladungsinkremente liefert. Der Detektor 90 ermittelt das Vorzeichen des Mittelwerts und leitet den Mittelwert über die Leitung 82 zu der Logikeinheit 82, damit dort endgültig festgelegt wird, ob der Speicher 76 über die Adreßleitungen zur Umkehr oder zur Nichtumkehr des Richtungssinns der Ladungsansammlung aufgefordert wird. Die Bedeutung dieses letzten Schrittes in dem Prozeß geht aus der folgenden mathematischen Beschreibung hervor.
- Der Codierer fügt zwei Bits (y&sub1;, y&sub2;) zwischen zwei aufeinanderfolgende Blöcke von 30 Bits (n&sub1;, . . ., n&sub3;&sub0;) der Ausgabe des (1,7) Codierers ein. Er kann auch die Werte der vier Bits an den Enden dieses 30-Bit-Blocks ändern. Wir bezeichnen die neuen Werte des 30-Bit-Blocks mit a&sub1;, . . ., a&sub3;&sub0;.
- n&submin;&sub5;... n&sub0; und a&submin;&sub5;...a&sub0; sollen sich auf die letzten Ziffern des vorangegangenen Blocks beziehen. Für jeden Wert von n&submin;&sub5; ... n&sub0;·n&sub1;... n&sub6; gibt es zwei Auswahlmöglichkeiten für a&submin;&sub5; ... a&sub0;·y&sub1;y&sub2;·a&sub1;... a&sub6;. Die mit "0" bezeichnete Auswahl hat dieselbe Parität wie die Eingabe: a&submin;&sub5;+...+a&sub0;+y&sub1;+y&sub2;+ a&sub1;+...+a&sub6; = n&submin;&sub5;+...+n&sub0;+n&sub1;+...+n&sub6; Modulo 2, während die als "1" bezeichnete Auswahl die entgegengesetzte Parität hat. Die Paritätsänderung stimmt mit der Änderung des Richtungssinns der Ladungsansammlung überein. Die Wirkung der Auswahl "1" ist eine Änderung des Richtungssinns der Ladungsansammlung, während die Auswahl "0" den Richtungssinn unverändert läßt, d. h. wie sie ohne die vorliegende Codierung wäre.
- Die nachstehende Beschreibung verwendet folgende Definitionen:
- Die Ladung einer Folge x&sub1;x&sub2;...xn ist die kumulative Ladung nach dem Schreiben der Folge x&sub1;...xn, wenn vor dem Schreiben von x&sub1; die Ladung 0 und steigend war. Somit gilt für beliebige Zeichenfolgen x (wobei 0 die leere Zeichenfolge ist):
- Ladung (0)=0
- Ladung (0.x)=1+Ladung (x)
- Ladung (1.x)=-1-Ladung(x)
- Für einen gegebenen Wert von n&submin;&sub5;...n&sub0;·n&sub1;... n&sub6; ergibt die Auswahl 0 die Zeichenfolge a&sup0;&submin;&sub5;...a&sup0;&sub0;·y&sup0;&sub1;y&sup0;&sub2;·a&sup0;&sub1;... a&sup0;&sub6;, während die Auswahl 1 die Zeichenfolge a¹&submin;&sub5;... a¹&sub0;·y¹&sub1;y¹&sub2;. a¹&sub1;... a¹&sub6; ergibt.
- e&sup0; bezeichne die Ladung der Folge a&sup0;&submin;&sub3;... a&sup0;&sub0;·y&sup0;&sub1;y&sup0;&sub2;. a&sup0;a&sub1;... a&sup0;&sub4;, wobei es sich bei der hochgestellten 0 um einen Index (nicht um einen Exponenten) handelt.
- e¹ bezeichne die Ladung der Folge a¹&submin;&sub3;... a¹&sub0;·y¹&sub1;y¹&sub2;. a¹&sub1;... a¹&sub4;, wobei es sich bei der hochgestellten 1 um einen Index (nicht um einen Exponenten) handelt.
- Ein in Klammern stehendes Argument "(n)" gibt die Stelle an, bei der die Funktion berechnet wird, so daß e&sup0;(n) an der Grenze zwischen den Blöcken n und n+1 berechnet wird.
- c(n) bezeichne die kumulative Ladung vier Bits vor dem Ende des nten Blocks. r(n) bezeichne den Richtungssinn der Ladungsansammlung (entweder +1 oder -1) zur gleichen Zeit.
- Der Codierer (ausgehend von dem Ausführungsbeispiel einer programmierbaren Logik-Anordnung oder eines Echtzeit- Rechners) tabuliert die beiden Mengen E(n) = (e&sup0;(n)+e¹(n))/2 und F(n) = (e&sup0;(n)-e¹(n))/2.
- m(n) bezeichne die Ladung der Folge n&sub5;... n&sub2;&sub6;, in Block n.
- s bezeichne die Parität von n&submin;&sub3;... n&sub0;. n&sub1;... n&sub4;, d. h. s=+1, wenn die Zahl der Einsen in der Folge gerade ist, und s=-1, wenn die Zahl der Einsen in der Folge ungerade ist. Dies ist dasselbe wie die Parität von a&sup0;&submin;&sub3;... a&sup0;&sub0;·y&sup0;&sub1; y&sup0;&sub2;·a&sup0;&sub1;... a&sup0;&sub4;. Auf ähnliche Weise bezeichnet die Parität der Folge a&sub5;... a&sub2;&sub6;.
- Für n> 0 setze d(n) = c(n) + r(n)E(n). So ist d(n) der Mittelwert der beiden möglichen Werte der kumulativen Ladung nach vier Bits in Block n+1 entsprechend der Wahl zwischen den Blöcken n und n+1.
- Definiere Δ(n) = r(n-1)F(n-1) + r(n-1)s(n-1)m(n) + r(n-1) s(n-1)t(n)E(n).
- Anzumerken ist, daß, wenn zwischen den Blöcken n-1 und n die Auswahl "0" getroffen wird, d(n)=d(n-1) + Δ(n) ist. Außerdem ist bei der Auswahl "0" r(n) = r(n-1)s(n-1)t(n) und bei der Auswahl "1" -r(n-1)s(n-1)t(n).
- Bei der Auswahl "1" ergibt sich folgender Fall. Dann ist d(n) = d(n-1) - r(n-1)F(n-1) - r(n-1)s(n-1)m(n) - r(n-1) s(n-1) t(n)E(n). Zu erinnern ist an d(n-1) = c(n-1) + r(n-1)E(n-1) = c(n-1) + r(n-1)(e&sup0;(n-1)+e¹(n-1))/2, wobei c(n-1) eine kumulative Ladung ist. Der nächste Term ist -r(n-1)F(n-1) = -r(n-1)(e0(n-1)-e¹(n-1))/2. Bei Addition wird e&sup0;(n-1) gelöscht, und r(n-1)e¹(n-1) ergibt den Beitrag zu der tatsächlichen kumulativen Ladung der zehn Bits a¹&submin;&sub3;... a¹&sub0;, y¹&sub1;, y¹&sub2;, a¹&sub1;... a¹&sub4;bei Auswahl 1. Der dritte Term ergibt den Beitrag der Bits 5 bis 26 im nten Block (mit dem korrekten Vorzeichen). Der letzte Term ist einfach r(n)E(n). Somit ergeben die ersten drei Terme die kumulative Ladung vier Bits vor dem Ende des nten Blocks (d. h. c(n)), und der letzte Term korrigiert dies zu d(n).
- Die Auswahl sei "0" oder "1" zwischen den Blöcken n-1 und n, um den absoluten Wert von d(n) zu minimieren. Wenn somit d(n-1) und Δ(n) dasselbe Vorzeichen haben, soll "1" gewählt werden (um Δ(n) von d(n-1) zu subtrahieren und dadurch die Größe zu vermindern); wenn d(n-1) und Δ(n) entgegengesetzte Vorzeichen haben, soll "0" gewählt werden, und wenn einer der beiden den Wart 0 hat, soll eine beliebige Auswahl getroffen werden.
- Des weiteren ist anzumerken, daß Δ(n) beschränkt ist; sein absoluter Wert kann 19 nicht überschreiten.
- Daher ist d(n) ebenfalls beschränkt; sein absoluter Wert kann 19 nicht überschreiten. Dies muß der Fall sein, da sonst, wenn d(n) den Wert 19 erstmals überschreitet, entweder d(n-1) > d(n) ist oder d(n-1) und [d(n)-d(n-1)] dasselbe Vorzeichen haben. Der erste Fall ist unmöglich, weil d(n) der erste Wert ist, der 19 überschreitet, und der zweite Fall ist unmöglich durch unsere Auswahl von "0" oder "1".
- Die tatsächliche kumulative Ladung zu einem beliebigen Zeitpunkt wiederum liegt "in der Nähe" des Wertes von d(n) an der nächsten Blockgrenze und wird daher wiederum durch den Wert 30 beschränkt.
- Die folgende Tabulierung zeigt in der linken Spalte die Bits an der Schnittstelle zwischen zwei aufeinanderfolgenden Codeblöcken (dem angefügten Ende des einen Blocks und dem anführenden Ende des folgenden Blocks) und in der mittleren und der rechten Spalte die entsprechenden Substitutionen. Jede Substitution umfaßt die zwei zusätzlichen Bits zwischen den Blöcken und kann auch eine Änderung in einigen Bits in dem anführenden und dem angefügten Ende mit sich bringen. Die mittlere Spalte (keine Paritätsänderung) bringt eine Änderung im Richtungssinn der Ladungsansammlung, und die rechte Spalte (Paritätsänderung) behält den Richtungssinn der Ladungsansammlung bei. SUBSTITUTIONEN Blockende. Blockanfang keine Paritätsänderung Paritätsänderung (aber nicht 3 Nullen auf einer Seite) *HINWEIS: 101 steht für alle Kombinationen außer 101.
- Die folgende Tabelle zeigt alle möglichen Endabschnitte der Codeblocks. Zu den einzelnen Blockenden sind die Ladungsinkremente für den Fall der Umkehrung und für den Fall der Nichtumkehrung des Richtungssinns der Ladungsansammlung angegeben. Diese Informationen wird von dem Rechner 86 (Fig. 4) geliefert und dann, wie oben erläutert, von der Logikeinheit 68 verwendet, je nachdem, ob der Speicher 76 über die Adreßleitungen zur Umkehr oder zur Nichtumkehr aufgefordert wird. Die Ladungsinkremente sind wie folgt. BLOCKENDEN
- Der Decodierer 32 stellt die ursprünglichen lauflängenbegrenzten Bits aus den lauflängenbegrenzten und ladungsbeschränkten Bits wieder her, die zuvor von dem Codierer ausgegeben wurden. Er nimmt einen Block von zweiunddreißig Bits, der aus dreißig Datenbits und zwei Ladungsbits
- a&sub1;a&sub2;... a&sub2;&sub9;a&sub3;&sub0;y&sub1;y&sub2;
- besteht, und konvertiert ihn in dreißig lauflängenbegrenzte Datenbits
- n&sub1;n&sub2;... n&sub2;&sub9;n&sub3;&sub0;.
- Keine Änderungen erfolgen bei den mittleren zweiundzwanzig Bits
- nk = ak, k = 5,6,...26.
- In den vier Bits am Anfang und am Ende sind dagegen Änderungen möglich. Die Änderungen in den vier Bits am Anfang (Ende) eines Blocks können von den letzten (ersten) sechs Bits des vorangegangenen (folgenden) Blocks sowie von den ersten (letzten) sechs Bits des Blocks selbst abhängen. Es ergibt sich folgendes Bild:
- a&submin;&sub5;a&submin;&sub4;a&submin;&sub3;a&submin;&sub2;a&submin;&sub1;a&sub0;y&sub1;y&sub2;a&sub1;a&sub2;a&sub3;a&sub4;a&sub5;a&sub6;
- bestimmt
- n&submin;&sub3;n&submin;&sub2;n&submin;&sub1;n&sub0;n&sub1;n&sub2;n&sub3;n&sub4;
- Die Regeln für Änderungen sind in der untenstehenden Tabelle angegeben. Wenn ein Eintrag fehlt, erfolgt keine Änderung.
- Die Logikfunktionen, die diese Änderungen (oder keine Änderungen) durchführen, sind im folgenden angegeben.
- Der durch die obenstehenden mathematischen Gleichungen beschriebene Prozeß wird von dem Decodierer 32 implementiert, wie in Fig. 5 gezeigt. Frei von dem Gleichstrompegel, wird der Code von der Kommunikationsverbindung 30 (Fig. 1) zu einem Eingaberegister 96 des Decodierers 32 geleitet. Der Decodierer umfaßt des weiteren ein Ausgaberegister 98, eine Gruppe von zehn UND-Gattern 100, 102, 104,. ..118, und zwei ODER-Gattern 120 und 122, die zwischen den Registern 96 und 98 angeschlossen sind. Eingangssignale zu den UND-Gattern werden von dem Eingaberegister 96 geliefert. Drei Eingangssignale werden zu jedem der ODER-Gatter geliefert, wobei zwei der drei Eingangssignale von den UND-Gattern und das dritte von dem Register 96 stammen. Die Verbindung der Signale zwischen dem Register 96 und dem Gatter folgt derjenigen, die in den obenstehenden Gleichungen gezeigt ist. Die letzte Gleichung wird beispielsweise von den UND-Gattern 110 und 112 und dem ODER-Gatter 122 implementiert.
- Die Fehlerfortpflanzung ist begrenzt. Ein Fehler in den lauflängenbegrenzten und ladungsbeschränkten Bits kann nicht zu mehr als acht Fehlern in den lauflängenbegrenzten Bits führen. Der Decodierersatz für den genannten Adler-Code (1,7) hat eine Fehlerfortpflanzung von sechs Bits. Wenn die Bits für den Benutzer decodiert werden, indem sie zunächst durch den Decodierer 32 und 34 geleitet werden, wird die Fehlerfortpflanzung abermals eingeschränkt. Ein Fehler in den lauflängenbegrenzten und ladungsbeschränkten Bits kann nicht zu mehr als zehn Fehlern in den unbeschränkten Benutzerbits führen.
- Zu alternativen Ausführungsbeispielen ist anzumerken, daß der Entscheidungsprozeß, bei dem festgelegt wird, ob eine Umkehr erfolgen soll, auf eine weitere Weise erzielt werden kann, wie unter Bezugnahme auf Fig. 2 und 4 gezeigt wird. Anstelle der Kopplung des Zählers 50 an die Logikeinheit 68 über den Detektor 70 kann der Zähler 50 über eine Leitung 124 an die Mittelwertbildungseinheit 88 des Modifizierers 66 gekoppelt werden. Die Mittelwertbildungseinheit 88 würde dann den Stand des Zählers 50 zu jedem der Signale auf den Leitungen 92 und 94 addieren und so die vollständige Ladungsansammlung liefern, die sich während der Dauer eines vollständigen Codeblocks mit beiden möglichen Modifikationen der Endabschnitte des Codeblocks ergäbe. Die Schaltung der Mittelwertbildungseinheit 98 würde so modifiziert, daß nicht der Mittelwert der beiden Signale an den Detektor 90 geleitet würde, sondern die Mittelwertbildungseinheit 88 nur das (in absoluten Werten) größere der beiden Signale an den Detektor 90 leiten würde. Der Detektor 90 würde dann anstelle des Detektors 70 angeschlossen, um das Vorzeichen der größtmöglichen Ladungsansammlung zu liefern, die mit dem gegenwärtigen Codeblock nach der Modifikation durch den Modifizierer 66 erzielt werden kann.
- Die genannte Schaltung und der Codierungsprozeß haben eine bequeme Transformation eines lauflängenbegrenzten Codes ergeben, die den Mittelwert des Gleichstrompegels löscht, damit das codierte Signal über eine Kommunikationsverbindung übermittelt werden kann, die auf eine Gleichstromkomponente nicht reagiert, und damit das codierte Signal auf magnetischen Medien gespeichert werden kann. Zwar richtet sich die obige Beschreibung auf einen Code mit einer Begrenzung (1,7), doch versteht es sich, daß die Lehren aus dieser Erfindung auch auf Codes anwendbar sind, bei denen andere Begrenzungen für die Zahl der logischen Nullen gelten, die sich zwischen logischen Einsen befinden können.
Claims (9)
1. Verfahren zum Modifizieren eines lauflängenbegrenzten Codes zum
Löschen einer darin enthaltenen Gleichstromkomponente, während die
Lauflängenbegrenzung trotzdem beibehalten wird, das die Schritte
aufweist:
Empfangen einer Folge von Codeblöcken, die eine Folge digitaler Bits
aufweisen und ein vorbestimmtes Format und eine vorbestimmte
Lauflängenbegrenzung besitzen;
Analysieren erster und zweiter aufeinanderfolgender Codeblöcke, um den
Richtungssinn einer Ladungsansammlung in jedem Block zu bestimmen;
Modifizieren der Verbindung zwischen den ersten und den zweiten
Codeblöcken zum Bereitstellen einer Ladungsrichtung im zweiten Block, die
der Ladungsansammlung im ersten Block entgegenwirkt,
wobei die Modifikation die Schritte enthält:
Einfügen zusätzlicher Codebits zwischen einem angefügten Endabschnitt
des ersten Blocks und einem anführenden Endabschnitt des zweiten
Blocks, wobei jeder der Endabschnitte eine vorgestimmte Anzahl von Bits
aufweist;
Liefern vorbestimmter Sätze von Substitutionsendabschnitten für die
angefügten und die anführenden Endabschnitte und Wählen eines
geeigneten Satzes von Endabschnitten, um über den zweiten Block den
erforderlichen Richtungssinn für die Ladungsansammlung zu ereichen,
wobei das Modifizieren der Verbindung die Lauflängenbegrenzung in jedem
der Codeblöcke aufrechterhält.
2. Verfahren nach Anspruch 1, bei weichem der Wählschritt das Wählen
eines von zwei Sätzen vorgeschriebener Bitanordnungen enthält, wobei
eine erste aus einem Substitutionssatz und den zusätzlichen Bits
bestehende Anordnung über den zweiten Block eine Umkehrung des
Richtungssinnes der Ladungsansammlung herbeiführt, und eine zweite
Anordnung eines zweiten Substitutionssatzes und die zusätzlichen Bits
über den zweiten Block keine Umkehrung des Richtungssinnes der
Ladungsansammlung bewirkt.
3. Verfahren nach Anspruch 2, bei welchem dem Wählschritt eine Analyse
des Richtungssinnes der Ladungsansammlung über den ersten und zweiten
Blöcken und die über den ersten und zweiten Anordnungen berechnete
Ladungsansammlung zugrunde gelegt wird.
4. Verfahren nach einem der vorigen Ansprüche, das ferner den Schritt
des Wiederherstellens des vorbestimmten Formats aufweist
und bei welchem der Schritt des Wiederherstellens die
Lauflängenbegrenzung aufrechterhält.
5. Vorrichtung zum Modifizieren eines lauflängenbegrenzten Codes zum
Löschen einer darin enthaltenen Gleichstromkomponente, während die
Lauflängenbegrenzung erhalten bleibt, wobei der Code aus einer Folge
digitaler Bits gebildet wird, die in einer Reihe von Blöcken in einem
vorbestimmten Format angeordnet sind, und ein angefügter Endabschnitt
eines ersten Blocks an einer Verbindung zwischen den beiden Blöcken an
einen anführenden Endabschnitt eines zweiten Blocks angrenzt und diese
Vorrichtung aufweist:
Mittel zum Analysieren jedes der genannten Blöcke, um darin - die
Anwesenheit einer Ladungsansammlung zu analysieren, wobei die
Analysemittel Mittel zum Detektieren des Richtungssinnes einer solchen
Ansammlung enthalten,
an die Analysemittel gekoppelte Mittel zum Modifizieren der Verbindung
zwischen zwei aufeinanderfolgenden Codeblöcken, um einen Richtungssinn
der Ladungsansammlung im zweiten Block zu wählen, die einer
Ladungsansammlung durch den ersten Block entgegenwirkt, und bei
welcher
die Modifikationsmittel die Lauflängenbegrenzung aufrechterhalten, wobei
die Modifikationsmittel aufweisen:
Mittel zum Einfügen zusätzlicher Codebits zwischen den angefügten und
anführenden Endabschnitten, wobei jeder der Endabschnitte eine
vorbestimmte Anzahl von Bits aufweist;
Mittel zum Liefern vorbestimmter Sätze von Substitutionsendabschnitten für
beide, die anführenden und die angefügten Endabschnitte der Codeblöcke
und
Mittel zum Wählen eines geeigneten Satzes von Substitutionsendabschnitten,
um über den zweiten Block den erforderlichen Richtungssinn der
Ladungsansammlung zu erzielen.
6. Vorrichtung nach Anspruch 5, bei welcher die Modifikationsmittel an
der Verbindung mit einem Satz vorgeschriebener Anordnungen digitaler
Bits wirken, wobei die vorgeschriebenen Anordnungen die
Substitutionsendabschnitte und die zusätzlichen Codebits enthalten, und
bei welcher das Mittel zum Liefern aufweist:
einen Speicher, der die vorgeschriebenen Anordnungen digitaler Bits
speichert, wobei der Speicher mittels Adressen adressiert wird, die aus
der Folge von Bits in einem anführenden Endabschnitt eines gerade
auftretenden Codeblocks und der Folge von Bits in einem angefügten
Endabschnitt eines vorhergehenden Codeblocks gebildet werden.
7. Vorrichtung nach Anspruch 6, bei welcher der Speicher für jede
Adresse zwei Sätze von vorgeschriebenen Anordnungen liefert, wobei ein
Satz der vorgeschriebenen Anordnungen an dieser Adresse einen
Richtungssinn der Ladungsansammlung zurückliefert und ein zweiter Satz
der vorgeschriebenen Anordnungen an dieser Adresse den Richtungssinn
der Ladungsansammlung umkehrt.
8. Vorrichtung nach Anspruch 7, bei welcher das Modifikationsmittel die
Polarität von mindestens einem Bit in einem Endabschnitt eines Codeblocks
umkehrt.
9. Vorrichtung nach Anspruch 8, bei weicher der Speicher für jede
Adresse zwei Sätze von vorgeschriebenen Anordnungen liefert, wobei ein
Satz der vorgeschriebenen Anordnungen an dieser Adresse einen
Richtungssinn der Ladungsansammlung zurückliefert und ein zweiter Satz
der vorgeschriebenen Anordnungen an dieser Adresse den Richtungssinn
der Ladungsansammlung umkehrt, und
die Modifikationsmittel Mittel enthalten, die auf einen von den
Detektionsmitteln detektierten Richtungssinn der Ladungsansammlung
reagieren, um den Speicher zur Ausgabe eines der beiden Sätze
vorgeschriebener Anordnungen an dieser Adresse zu aktivieren.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/725,954 US4675650A (en) | 1985-04-22 | 1985-04-22 | Run-length limited code without DC level |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3687285D1 DE3687285D1 (de) | 1993-01-28 |
DE3687285T2 true DE3687285T2 (de) | 1993-07-01 |
Family
ID=24916609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE8686103742T Expired - Fee Related DE3687285T2 (de) | 1985-04-22 | 1986-03-19 | Verfahren und anordnung zur modifizierung eines lauflaengenbegrenzten codes. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4675650A (de) |
EP (1) | EP0199088B1 (de) |
JP (1) | JPS61245720A (de) |
CA (1) | CA1285650C (de) |
DE (1) | DE3687285T2 (de) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0233221A (ja) * | 1988-07-22 | 1990-02-02 | Matsushita Electric Ind Co Ltd | コード変換装置と復号装置 |
US5060242A (en) * | 1989-02-24 | 1991-10-22 | General Electric Company | Non-destructive lossless image coder |
US5144304A (en) * | 1989-07-17 | 1992-09-01 | Digital Equipment Corporation | Data and forward error control coding techniques for digital signals |
US5151699A (en) * | 1990-09-05 | 1992-09-29 | Pioneer Electronic Corporation | Data converting apparatus |
JPH04185119A (ja) * | 1990-11-20 | 1992-07-02 | Matsushita Electric Ind Co Ltd | 可変長符号化装置 |
US5208834A (en) * | 1991-03-15 | 1993-05-04 | International Business Machines Corporation | Lexicographical encoding and decoding of state-dependent codes |
US5625644A (en) * | 1991-12-20 | 1997-04-29 | Myers; David J. | DC balanced 4B/8B binary block code for digital data communications |
SG85049A1 (en) * | 1992-02-19 | 2001-12-19 | Mitsubishi Electric Corp | Data conversion method and recording/reproducing apparatus using the same |
US5550683A (en) * | 1992-12-11 | 1996-08-27 | Eastman Kodak Company | Magnetic recording channel employing a non-ideal d.c.-free equalizer and a d.c.-free modulation code |
US5341134A (en) * | 1992-12-30 | 1994-08-23 | Datatape Incorporated | Simple coding scheme for DC free channel codes of form M/N, where M=N-1 and M and N are positive integers |
US5424881A (en) | 1993-02-01 | 1995-06-13 | Cirrus Logic, Inc. | Synchronous read channel |
JPH0729307A (ja) * | 1993-07-06 | 1995-01-31 | Eastman Kodak Co | データを制御極性方式で記録および検索するためのシステム |
KR0135793B1 (ko) * | 1994-11-29 | 1998-05-15 | 김광호 | (4,20)런렝쓰 리미티드 코드 생성방법 및 장치 |
JP3243140B2 (ja) * | 1995-02-20 | 2002-01-07 | パイオニア株式会社 | データ変換方式 |
EP0885978B1 (de) * | 1996-12-06 | 2003-05-02 | Kawasaki Steel Corporation | Stahlblech für doppeltgewundenes rohr und verfahren zu dessen herstellung |
JP2001511323A (ja) * | 1997-01-30 | 2001-08-07 | フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド | 高速シリアルリンク用データ符号器/復号器 |
JP4092733B2 (ja) * | 1997-10-07 | 2008-05-28 | ソニー株式会社 | 磁気記録再生装置 |
US6195025B1 (en) * | 1998-07-13 | 2001-02-27 | International Business Machines Corporation | Method and means for invertibly mapping binary sequences into rate 2/3 (1,K) run-length-limited coded sequences with maximum transition density constraints |
US7286065B1 (en) | 2001-03-05 | 2007-10-23 | Marvell International Ltd. | Method and apparatus for DC-level constrained coding |
US6661356B1 (en) | 2001-03-05 | 2003-12-09 | Marvell International, Ltd. | Method and apparatus for DC-level constrained coding |
KR100669623B1 (ko) * | 2001-03-12 | 2007-01-15 | 엘지전자 주식회사 | 디지털 데이터 변환방법 |
US7084789B2 (en) * | 2003-11-17 | 2006-08-01 | Seagate Technology Llc | DC-free code having limited error propagation and limited complexity |
US7002492B2 (en) * | 2004-07-07 | 2006-02-21 | Seagate Technology Llc | High rate running digital sum-restricted code |
US8139628B1 (en) | 2005-01-10 | 2012-03-20 | Marvell International Ltd. | Method and device to compensate for baseline wander |
WO2007083525A1 (ja) * | 2006-01-23 | 2007-07-26 | Rohm Co., Ltd. | 符号化装置、復号装置、振幅調整装置、記録情報読取装置、信号処理装置および記憶システム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5356917A (en) * | 1976-11-02 | 1978-05-23 | Olympus Optical Co Ltd | Coding system |
JPS5619506A (en) * | 1979-07-23 | 1981-02-24 | Sony Corp | Code converting method |
JPS5632851A (en) * | 1979-08-24 | 1981-04-02 | Matsushita Electric Ind Co Ltd | Coding and decoding system for binary information |
NL186790C (nl) * | 1980-07-14 | 1991-02-18 | Philips Nv | Werkwijze voor het coderen van een reeks van blokken tweetallige databits in een reeks van blokken van tweetallige kanaalbits, alsmede modulator, demodulator en registratiedrager te gebruiken bij de werkwijze. |
JPS57132461A (en) * | 1981-02-09 | 1982-08-16 | Sony Corp | Converter for binary data code |
JPS5875353A (ja) * | 1981-10-29 | 1983-05-07 | Pioneer Electronic Corp | デ−タ変換方式 |
US4547890A (en) * | 1982-09-28 | 1985-10-15 | Abraham M. Gindi | Apparatus and method for forming d.c. free codes |
JPS59112409A (ja) * | 1982-12-17 | 1984-06-28 | Hitachi Denshi Ltd | 符号方式 |
US4833471A (en) * | 1984-03-26 | 1989-05-23 | Canon Kabushiki Kaisha | Data processing apparatus |
DE3587535T2 (de) * | 1984-10-01 | 1994-01-20 | Matsushita Electric Ind Co Ltd | Verfahren und Vorrichtung zur numerischen Datenkodierung. |
-
1985
- 1985-04-22 US US06/725,954 patent/US4675650A/en not_active Expired - Fee Related
- 1985-09-18 CA CA000490980A patent/CA1285650C/en not_active Expired - Lifetime
-
1986
- 1986-03-18 JP JP61058467A patent/JPS61245720A/ja active Pending
- 1986-03-19 EP EP86103742A patent/EP0199088B1/de not_active Expired
- 1986-03-19 DE DE8686103742T patent/DE3687285T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0199088A2 (de) | 1986-10-29 |
EP0199088A3 (en) | 1990-03-07 |
CA1285650C (en) | 1991-07-02 |
DE3687285D1 (de) | 1993-01-28 |
EP0199088B1 (de) | 1992-12-16 |
US4675650A (en) | 1987-06-23 |
JPS61245720A (ja) | 1986-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3687285T2 (de) | Verfahren und anordnung zur modifizierung eines lauflaengenbegrenzten codes. | |
DE3606869C2 (de) | Vorrichtung zur Datenkompression | |
DE3742098C2 (de) | ||
DE2728594A1 (de) | Magnetischer leser fuer strichkodierte zeichen | |
DE2728889C3 (de) | Verfahren und Vorrichtung zum Übertragen eines Zweipegel-Faksimilesignals | |
DE69534298T2 (de) | Verfahren und Vorrichtung zur Ermittlung einer Phasendifferenz und Filterschaltung | |
DE1512654C3 (de) | Verfahren und Codiereinrichtung zur Codierung grafischer Informationen mit verringerter Redundanz | |
DE2844216A1 (de) | Synchronisierfolgecodierung bei code mit begrenzter lauflaenge | |
DE2805294C2 (de) | Codierende Übertragungsanlage für Faksimile-Signale | |
DE1499225B2 (de) | Schaltungsanordnung zur reduzierung von datenwortlaengen | |
DE2645460C2 (de) | Verfahren und Vorrichtung zum Auswerten von selbsttaktierend codierten Signalen | |
DE1774314B1 (de) | Einrichtung zur maschinellen zeichenerkennung | |
DE2634426C2 (de) | Bandkompressionseinrichtung | |
DE2500055C2 (de) | Faksimile-uebertragungssystem | |
DE2340250C2 (de) | Verfahren und Vorrichtung zur redundanzreduzierenden Codierung eines aus Blöcken zu je N Bits bestehenden Nachrichtenstromes | |
DE69008038T2 (de) | Schaltungsanordnung zur Detektion des Verlustes eines digitalen, empfangenen Signals für digitale Signalempfänger. | |
DE2135350A1 (de) | Verfahren und Anordnung zur Datenver arbeitung | |
DE2826450B2 (de) | Verfahren zum Steuern der Übertragung digitaler Signale und Anordnung zur Durchfuhrung des Verfahrens bei einer digitalen Faksimileübertragungseinrichtung | |
DE3742142A1 (de) | Verfahren und vorrichtung zur kompression und rekonstruktion von datenfolgen | |
DE2757164C2 (de) | Verfahren zum Übertragen oder Aufzeichnen von digitalen Signalen | |
DE2336180C3 (de) | Videodatenkompression bei der Abtastung von Schriftstücken | |
DE2557922A1 (de) | Verfahren und vorrichtung zur faksimile-datenkomprimierung | |
DE2127516C2 (de) | Verfahren zur Übertragung binärcodierter Signale von Bildvorlagen oder Schriftvorlagen | |
DE2457435B2 (de) | Schaltung zur Wiedergewinnung von Daten aus einem Daten- und Taktsignale enthaltenden Signalzug | |
DE2365218A1 (de) | Verfahren und vorrichtung zum codieren und verdichten von videoinformation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |