11.07.2015 Aufrufe

Skriptum Kapitel 4

Skriptum Kapitel 4

Skriptum Kapitel 4

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

DatensicherungRichard EierStand im Jänner 02<strong>Kapitel</strong> 4.Anwendungen der Binären Blockcodes4.1 Modifikationen von bestehenden Codes4.2 Zusammengesetzte Codierverfahren4.3 Einfache Code-Beispiele auf der Basis von Wortwiederholungen4.4 Codes unter Einbeziehung von Diagonal-Summen4.5 Reed-Mueller Codes als modifizierte erweiterete Hamming Codes4.6 Spezielle Polynomcodes(First DRAFT !!)11.01.02 14:53 C:\Daten_Sicherung\Arb_Skizzen\Da-Si_4.doc


Inhaltsverzeichnis4. Anwendungen der Binären Blockcodes 14.1 Modifikationen von bestehenden Codes 14.1.1 Erweitern (Extending) und Punktieren (Puncturing) von Codes: 14.1.2 Verkürzen (Shortening) und Verlängern (Largening) von Codes 14.1.3 Vergrößern (Augmenting) und Verkleinern (Expurgating) von Codes 24.2 Zusammengesetzte Codierverfahren 24.2.1 Verkettete (kaskadierte,concatenated) Codes 24.2.2 Stufencodierung (Verschachtelte Codes, Code-Interleaving)) 34.2.3 Produkt Codes (Iterierte Codes) 34.3 Einfache Code-Beispiele auf der Basis von Wortwiederholungen 44.3.1 Wiederholungs-Codes 44.3.2 Bauer-Code 54.4 Codes unter Einbeziehung von Diagonal-Summen 64.4.1 Beispiel nach Kasatschinski / Eier 64.4.2 PATEL-HONG-Code 104.5 Reed-Mueller Codes als modifizierte erweiterete Hamming Codes 104.6 Spezielle Polynomcodes 104.6.1 Alle Codes mit der gleichen Periode (x N – 1) 104.6.2 Beispiele für häufig verwendete (STANDARDISIERTE) CODES und derenGENERATORPOLYNOME 114.6.3 RS-Codes 124.6.4 BCH-Codes 124.6.5 FIRE-Codes 124.6.6 124.6.7 Prinzip der CD-Sicherung (CIRS-Codes) 12AbbildungenAbb. 4.1 Kaskadierte Codes 2Abb. 4.2 Stufencodierung 3Abb. 4.3 Produkt Codes 3Abb. 4.4 Prinzip des Wiederholungscodes 4Abb. 4.5 Prinzip des Wiederholungscodes mit mehrfacher Wiederholung 4Abb. 4.6 Phasenmoduliertes Signal 5Abb. 4.7 Mehrfachabtastung 5Abb. 4.8 Prinzip des Bauer Codes 5Abb. 4.9 Prinzip der Ermittlung der Prüfstellen 7Abb. 4.10 Konkretes Beispiel zur Ermittlung der Prüfstellen 7Abb. 4.11 Spalten- und Diagonalsumme 8Abb. 4.12 Parity Check Matrix für Hamming Abstand HA = 3 8Abb. 4.13 Parity Check Matrix für Hamming Abstand HA = 4 8Abb. 4.14 Codierung der Variation der zweidimensionalen Paritätskontrolle 9Abb. 4.15 Fehlerkorrektur der Variation der zweidimensionalen Paritätskontrolle 9Abb. 4.16 Struktogramm für Fehlerkorrektur der Variation der zweidimensionalen Paritätskontrolle 10Abb. 4.17 CD-Sicherung der Spalten 1211.01.02 14:53 1


Abb. 4.18 CD Sicherung der Diagonalen 1311.01.02 14:53 2


4 Anwendungen der Binären Blockcodes4. ANWENDUNGEN DER BINÄREN BLOCKCODES4.1 Modifikationen von bestehenden Codes4.1.1 Erweitern (Extending) und Punktieren (Puncturing) von Codes:Unter diesen Begriffen werden die Modifikationen zusammengefaßt, bei denen die Anzahl mder Daten-Stellen konstant gehalten wird, während die Anzahl der Kontroll-Stellen und dieAnzahl der CW-Stellen in gleichem Sinn erhöht bzw. erniedrigt werden.Codes werden durch zusätzliche Prüfstellen erweitert, d.h. N ⇑ , m = , k ⇑ .Die neuen Prüfstellen tragen dazu bei, daß gewisse früher unerkennbare Fehler doch nocherkannt werden. Durch das Erweitern wird der HA des Codes daher sicher NICHT kleiner;sondern bleibt zumindest gleich oder kann - wenn man planvoll vorgeht - sogar vergrößertwerden.Prominentestes Beispiel dafür sind die erweiterten HAMMING-Codes, bei denen der HA von3 auf 4 erhöht wird. Den gleichen Erfolg erzielt man auch bei jedem anderen Code, der einenungeraden HA = 2⋅t + 1 hat; durch das ´Anhängen eines All_PTY-Bits´, d.h. also durch dasErweitern des Codes mit 1 neuen Prüfstelle, wird der HAMMING-Abstand auf HA erweitert = 2⋅tvergrößert.Die gegenteilige Maßnahme bezeichnet man als Punktieren. Ursprünglich vorgesehene Prüf-Bits werden im CW nicht mehr verwendet, d.h. N ⇓ , m = , k ⇓ .Durch das Weglassen von Prüf-Stellen werden natürlich die Möglichkeiten zur Fehler-Erkennungeingeschränkt. Die Folge davon ist, daß der HA im allgemeinen verkleinert wird oderbestenfalls gleich bleiben kann.Ein Anwendungsbeispiel dafür ist das Einsparen des All_PTY-Bits bei der 2-dimensionalenPTY-Sicherung. Es wird zum Beispiel dazu eingesetzt, um die gesamte CW-Länge auf einbyte-kompatibles Format zu trimmen. Dabei wird bewußt in Kauf genommen wird, daß derHA von 4 auf 3 reduziert wird.4.1.2 Verkürzen (Shortening) und Verlängern (Largening) von CodesDiese Begriffe bezeichnen Modifikationen, bei denen die Anzahl k der Prüf-Stellen gleichbleibt, während die Anzahl der Daten-Stellen und die Anzahl der CW-Stellen im selben Ausmaßerhöht bzw. erniedrigt werden.Codes werden durch das Weglassen von Daten-Stellen verkürzt, d.h. N ⇓ , m ⇓ , k = . Daweniger Daten-Stellen offensichtlich weniger CW bedeuten, wird auch die Menge der krit.FMkleiner, so daß der HA sicher nicht kleiner, sondern bestenfalls größer wird oder zumindestgleich bleibt.Das Verkürzen eines Codes ist die verläßlichste Methode, ein erprobtes Sicherungsverfahrenohne Gefahr für den HA an die aktuellen Umstände einer konkreten Applikation anzupassen.Im Gegensatz dazu bezeichnet man das Aufstocken von Daten-Stellen bei der gleichen Anzahlvon Prüf-Stellen als Verlängern des Codes, d.h. N ⇑ , m ⇑ , k = . Auf Grund dergrößeren Anzahl von gesicherten Daten-Stellen muß man im allgemeinen mit einer Reduktiondes HA rechnen; nur wenn die Grenzen der Leistungsfähigkeit einer Codierung nochnicht ausgereizt sind, kann unter günstigen Umständen der HAMMING-Abstand trotz derVerlängerung ungeändert bleiben.Wir haben dieses Szenario beim Code des Bausteins AM 2960 in Abschnitt 3.2.3 durchgespieltund gezeigt, daß bei diesem Beispiel durch ein sorgfältiges Design der HA = 4 aufrechterhalten werden kann.11.01.02 14:53 1


4 Anwendungen der Binären Blockcodes4.1.3 Vergrößern (Augmenting) und Verkleinern (Expurgating) von CodesUnter diesen Begriffen versteht man die Modifikationen, bei denen Daten-Stellen gegen Prüf-Stellen bzw. umgekehrt ausgetauscht werden, während die Anzahl N der CW-Stellen konstantbleibt.Wenn man gewidmete Daten-Stellen durch Prüf-Stellen ersetzt, spricht man vom Verkleinern(´Expurgieren´) des Codes, d.h. N = , m ⇓ , k ⇑ , womit im besonderen auf die Größe desCode-Raums Bezug genommen wird. Durch diese Maßnahme wird im Prinzip das Potentialeines Sicherungsverfahrens in Hinblick auf die Erkennung von Fehlern verbessert, wodurchder HAMMING-Abstand des Verfahrens sicher nicht verkleinert wird, sondern im allgemeinenvergrößert werden kann, mindestens aber gleich bleibt.Eine typische Anwendung ist, wie schon besprochen, das Ergänzen eines primitiven Generator-Polynomsmit dem Faktor (x – 1), der den HAMMING-Abstand des Codes auf HA = 4verbessert wird.Ein anderes renommiertes Anwendungsfeld bilden die sogenannten BCH-Codes. Bei ihnenwird das Generator-Polynom aus mehreren ausgesuchten Faktoren so zusammengestellt, daßeine gewünschte untere Schranke für den HAMMING-Abstand des Codes garantiert ist. Dadie verwendeten Faktoren des Generator-Polynoms alle Teiler desselben Binoms (x N o – 1)sind, ist die maximal verwendbare CW-Länge von der Anzahl der Koeffizienten unabhängig.Die gegenteiligen Maßnahmen bestehen im Ersetzen von Prüf-Stellen durch Daten-Stellen,was den Code-Raum vergrößert (´augmenteiert´), also N = , m ⇑ , k ⇓ . Unter diesen Umständenwird der HAMMING-Abstand sicher nicht größer, sondern eher kleiner oder bleibtgleich.Die erwähnten Modifikationen können zum Beispiel auch in verschiedenen Formen zusammengesetztwerden. Ein (N, m, k, HA = 2⋅t+1)-Code wird zu einem (N+1, m, k+1, HA =2⋅t+2)-Code erweitert, wobei der HAMMING-Abstand um 1 erhöht wird. Anschließend wirdeine Verkürzung auf einen ((N+1)-1, m - 1, (k+1), HA = 2⋅t+2)-Code vorgenommen, bei derder HAMMING-Abstand erhalten bleibt. Das Ergebnis läßt sich in einem Schritt als eine Verkleinerungdes ursprünglichen (N, m, k, HA = 2⋅t+1)-Code zu einem (N, m-1, k+1, HA =2⋅t+2)-Code erklären, wobei die Vergrößerung des HAMMING-Abstands auf dem kurzenWeg selbstverständlich ist, sondern erst nachgewiesen werden müßte.Die Code-Modifikationen sind ein probates Mittel, um bekannte Codes an besondere Anwendungsperspektivenanzupassen.4.2 Zusammengesetzte Codierverfahren4.2.1 Verkettete (kaskadierte,concatenated) CodesDurch wiederholtes Codieren kann die Sicherheit eines fehlerkorrigierenden Systems vorunerkannten Fehlern beträchtlich erhöht werden, um die Komplexität des Coders und Decodersin Grenzen zu halten. Ein Beispiel für eine solche Art der Codierung zeigt Abb. 4.1. Manspricht in diesem Fall von einer ´Code-Verkettung´ (Concatenated Codes).Kanal für die äußere CodierungKanalÄußere Innere InnereÄußereCodierungAbb. 4.1 Kaskadierte CodesDecodierung11.01.02 14:53 2


4 Anwendungen der Binären BlockcodesDurch die Verkettung der beiden Codierungen sind offenbar die Decodier-Fehler des innerenDecoders die Fehler des äußeren Kanals. Der innere Decoder teilt dem äußeren Decoder mit,wie viele Fehler er beim Decodieren berichtigt hat. Der äußere Decoder kann aus dieserAngabe Rückschlüsse über die Sicherheit der ihm angebotenen Daten ziehen und bei seinerDecodierung berücksichtigen.Anwendungsaspekte der Kaskadierung:Die Codes für die innere und äußere Codierung werden in Hinblick auf unterschiedliche Zielsetzungenentworfen.Code-Verkettungen werden auch verwendet, wenn mehrere Dienste mit unterschiedlichenSicherheitsanforderungen auf gemeinsamen Strecken bzw. Netzen mit einer gemeinsamenBasissicherung angeboten werden. (Nachrichten von Diensten mit einer höheren Anforderungwerden meist zusätzlich noch ´end-to-end´ gesichert.)Eine Hintereinanderschaltung von Codes wird u.a. auch dazu verwendet, um besonders langeBlock-Codes mit einem noch akzeptablen Aufwand zu realisieren.4.2.2 Stufencodierung (Verschachtelte Codes, Code-Interleaving))Code 1Code 2Code 2FehlerbündelAbb. 4.2 StufencodierungZweck dieser Codierung ist, die Fehlerbündel so auf die einzelnen Teil-Codes zu spreizen,daß sie dort nur mehr als einzelne Fehler wirksam, einfach erkannt und korrigiert werdenkönnen.Als Teil-Codes können beliebige Sicherungsverfahren eingesetzt werden. Wir hatten die , siemüssen eigentlich .Wir haben diese Methode bereits bei der wort-orientierten 1-dimensionalen PTY-Sicherung inAbschnitt 3.2.1.4 erwähnt und mit Erfolg angewendet.Sie wir heute standardmäßig bei den Sicherungen von CD´s mit den Cross-Interleaved-RS-Codes angewendet.4.2.3 Produkt Codes (Iterierte Codes)Informations-BlockSicherungscodefürjede ZeileSicherungscode fürjede SpalteAbb. 4.3 Produkt CodesBei Produktcodes ergibt sich der HAMMING-Abstand als Produkt der HAMMING-Abständeder Zeilen- und des Spalten-Codes:HA ges = HA Zeile ⋅ HA SpalteDie 2-dimensionale PTY-Sicherung in Abschnitt 3.2.2 ist ein Sonderfall eines Produkt-Codes.Zeilensicherungen komplex, Spaltensicherungen einfache PTY-Sicherung11.01.02 14:53 3


4 Anwendungen der Binären Blockcodes4.3 Einfache Code-Beispiele auf der Basis von Wortwiederholungen4.3.1 Wiederholungs-CodesDW(DW, Prüfwort =DW)MUX‘1‘ ....... „direkte“ Wiederholung‘0‘ ....... „negierte“ WiederholungAbb. 4.4 Prinzip des WiederholungscodesDer Wiederholungscode entsteht durch Aneinanderreihen des originalen Datenwortes und desnegierten oder nicht negierten Datenwortes. Dies kann, wie in Abb. 4.4 dargestellt, mit Hilfeeines XOR-Gatter realisiert werden. Die Aneinanderreihung erfolgt mittels einesMultiplexers.Der Wiederholungscode besitzt einen Hamming-Abstand von HA=2.4.3.1.1 Wiederholungscode mit mehrfacher WiederholungDW [i]DW [i]DW [i]InformationsstellenPrüfstellenAbb. 4.5 Prinzip des Wiederholungscodes mit mehrfacher WiederholungDieser Code entsteht, durch wiederholtes Aneinanderfügen des originalen Datenwortes. DerHamming-Abstand dieses Codes beträgtHA = (Anzahl der Wiederholungen) + 1Beispielsweise ist der Hamming Abstand in Abb. 4.5 HA=3. Auch hier besteht dieMöglichkeit Fehler zu korrigieren. Häufig wird dabei durch Majoritätsentscheidungfestgestellt, wo Fehler aufgetreten sind, und welche Werte als korrekt zu betrachten sind.Hierbei können auch mehrere Fehler korrigiert werden, solange die Majoritätsentscheidungdadurch nicht verändert wird (z.B. würde durch Majoritätsentscheidung in Abb. 4.5 falschkorrigiert werden, wenn dasselbe Datenbit zweimal gestört wurde). Wird hingegen in mehrals der Hälfte der übertragenen Wörtern dasselbe Bit gestört, wird dieser Fehler nicht erkannt(Restfehler).4.3.1.2 Variationen des WiederholungscodesBei diesen Codes werden die nach jedem Datenbit sofort die ensprechende(n) Prüfstelle(n)gesendet:• Biphase Code (Manchester Code)11.01.02 14:53 4


4 Anwendungen der Binären BlockcodesJedes Datenbit wird sofort invertiert wiederholt. Ist der Spannungspegel der logischenNull und der logischen Eins symmetrisch zum Bezugspotential, kommt in diesem Codekein Gleichanteil vor. Ein weiterer Vorteil besteht darin, daß der Code „selbsttaktierend“ist. Dies bedeutet, das der Takt schon beim Übertragen des Datenwortes durch die Flankezwischen Daten- und Prüfbit festgelegt ist. Nachteilig wirkt sich der doppelteBandbreitenbedarf aus.• Phasenmoduliertes SignalDies entsteht, wenn jedes Datenbit mehrmals, mit alternierendem Vorzeichen wiederholtwird.• Spread Spektrum SignaleAbb. 4.6 Phasenmoduliertes SignalJedes Datenbit wird mehrmals wiederholt, wobei die „Negierung“ der Gesetzmäßigkeiteiner Pseudozufallsfolge entspricht. Daher ist es besonders geeignet für korrelativeEmpfängerauswertung.• MehrfachabtastungJedes Datenbit wird in der gleichen Form mehrmals hintereinander gesendet. Dadurchkommt es zu einer Mehrfachabtastung (Überabtastung) des empfangenen Signals.4.3.2 Bauer-CodeAbb. 4.7 MehrfachabtastungDW(DW, Prüfwort =DW)MUX‘0‘ ....... wenn Gewicht(DW) gerade (even)‘1‘ ....... wenn Gewicht(DW) ungerade (odd)TaktJ° KRAbb. 4.8 Prinzip des Bauer CodesDer Bauer Code (mit gesteuerter Wiederholung) ähnelt dem „normalen“ Wiederholungscode(siehe Abb. 4.4). Das angefügte Prüfwort ist wieder das Datenwort, wird jedoch in11.01.02 14:53 5


4 Anwendungen der Binären BlockcodesAbhängigkeit vom Gewicht des Datenwortes negiert (Abb. 4.8). Damit erreicht man einenHamming-Abstand von HA=4! Somit besteht die Möglichkeit einfache Fehler zu korrigieren.Das Syndrom ergibt sich aus dem Datenwort und der übertragenen Prüfstellen (DW XORPrüfwort). Bei fehlerfreier Übertragung hängt allerdings der Wert des Syndroms von demGewicht des Datenwortes ab:gerades Gewicht: Syndrom = ‘0...0‘ungerades Gewicht: Syndrom = ‘1...1‘Tritt ein einfacher Fehler in der Übertragung auf, so wird das Syndrom in einer Stelle gestört.Man muß jedoch noch unterscheiden, ob der Fehler das eigentliche Datenwort oder dasPrüfwort verändert hat (ansonsten würde man ev. das eigentlich korrekt übertrageneDatenwort durch ein fehlerhaftes Prüfwort verändern!). Um dies zu überprüfen ermittelt mandas Gewicht des übertragenen Datenwortes und vergleicht, ob das Syndrom einedementsprechende Form besitzt. Würde ein Fehler im Datenwort auftreten, so ändert sich dasGewicht, und das Syndrom müßte daher die falsche Form besitzen (und umgekehrt):FehlerortGewicht(DW)vor FehlerGewicht(DW)nach FehlerSyndrom nach Auftreten desFehlersFehler im even odd 0...010...0Datenwort odd even 1...101...1Fehler im even even 1...101...1Prüfwort odd odd 0...010...0Tab. 4.3.1 Fehlererkennung beim BauercodeMan erkennt, beispielsweise im 1. Fall, daß trotz ungeradem Gewicht des Datenwortes (nachder Übertragung) das Syndrom mehrheitlich aus Nullen besteht (eigentlich die Form desSyndroms bei geradem Gewicht des Datenwortes). Dies bedeutet einen Fehler im Datenwort.4.4 Codes unter Einbeziehung von Diagonal-Summen4.4.1 Beispiel nach Kasatschinski / EierDieses Beispiel dient nur zur Demonstration, woran man bei Sicherungsmechanismen denkenkann und wie die besprochenen Methoden anzuwenden sind.Dieses Beispiel ist KEIN Prüfungsstoff.A ) AllgemeinesZiel dieser Variation ist die Sicherung einer zweidimensionalen Datenstruktur mit einemHamming Abstand HA=4 mit weniger Prüfstellen als die normale zweidimensionaleParitätskontrolle.Um dies zu erreichen, wird das Zeilen Parity durch ein Diagonal Parity ersetzt. DiePrüfstellen ergeben sich aus der XOR-Verknüfung des Zeilen- und des Diagonal-Paritys.11.01.02 14:53 6


4 Anwendungen der Binären BlockcodesSpurDatenfeldPrüfstellenAbb. 4.9 Prinzip der Ermittlung der PrüfstellenAls Spur (Abb. 4.9) bezeichnet man eine Spalte mit der entsprechenden Diagonale(Schnittpunkt liegt in der Zeile mit den Prüfstellen). Die Prüfstellen werden so gewählt, dasdie Parität längs der Spur gerade ist (modulo 2).Die Abmessungen des Datenfeldes müssen so gewählt werden, das jedes Datenbit auf genau 2Spuren liegt. Dies stellt die Grundlage für die Korrigierbarkeit von einfachen Fehlern dar.Dimensionierung der Datenstruktur:Ausgehend von der Anzahl der Kontrollstellen b (entspricht der Anzahl der Spuren), läßt sichdie Anzahl der maximalen zu sichernden Datenbits berechnen. Ein Fehler kann nur dannlokalisiert und damit auch korrigiert werden kann, wenn zwei Prüfbits ihren Wert ändern.Somit ergibt sich die Anzahl der Datenbits aus der Anzahl der Kombinationen der zweisignifikanten Prüfbits in der Menge aller Prüfbits. Dies läßt sich mit demBinomialkoeffizienten berechnen:⎛b⎞⎜ ⎟ =⎝2⎠2! ⋅b! b ⋅=2 !( b − )( b -1)2Die Anzahl der Zeilen wird ebenfalls durch die Anzahl der Prüfbits bestimmt:w =Anzahl der DatenbitsAnzahl der Prüfbitsb ⋅=( b −1)2⋅1bb −1=2Ist b ungerade, so erhält man eine ganzzahlige Zeilenanzahl. Ist b jedoch gerade, so muß einehalbe Zeile (Halbwort) auf ‘0...0‘ gesetzt werden bzw. ist nicht zu verwenden.Ein konkretes Beispiel mit b=8 ist in Abb. 4.6 dargestellt.Spur iDW 1Spur jDW 2DW 3w = 3,5DW 4b = 8Abb. 4.10 Konkretes Beispiel zur Ermittlung der Prüfstellen11.01.02 14:53 7


4 Anwendungen der Binären BlockcodesIn Abb. 4.11, Abb. 4.12 und Abb. 4.13 ist dargestellt, wie die sich zugehörige Parity CheckMatrix ergibt.SP ΣDG ΣHW 1HW 2 HW 3HW 4 HW 5HW 6 HW 7Abb. 4.11 Spalten- und DiagonalsummeHW 1 HW 2 HW 3 HW 4 HW 5 HW 6 HW 7Abb. 4.12 Parity Check Matrix für Hamming Abstand HA = 3HW 1 HW 2 HW 3 HW 4 HW 5 HW 6 HW 7B ) CodierungAbb. 4.13 Parity Check Matrix für Hamming Abstand HA = 4In Abb. 4.14 ist eine einfache Softwarelösung für die Variation der zweidimensionalenParitätskontrolle dargestellt. In dem Struktogramm ist die Addition (+) sowohl als ADD-Modulo Funktion als auch als XOR Funktion zu verstehen.11.01.02 14:53 8


4 Anwendungen der Binären BlockcodesSPΣ := 0DGΣ := 0FOR i:=1 TO wSPΣ := SPΣ + DW[i]DGΣ := ROR(DGΣ) + DW[i]Prüfwort := ROR(DGΣ) + SPΣHA = 3HA = 4jaPrüfwort := - PrüfwortParity(SPΣ) == 1neinAbb. 4.14 Codierung der Variation der zweidimensionalen ParitätskontrolleC ) FehlererkennungDas Syndrom ergibt sich aus SPΣ und DGΣ (ähnlich wie bei der Codierung):Syndrom := (neu berechnetes Prüfwort) XOR (übertragenes Prüfwort)In Abhängigkeit vom Gewicht des Syndroms kann man folgende Fälle unterscheiden:• weight(Syndrom) = 0kein Fehler erkannt (entweder ungestörtes Datenfeld oder unerkennbarer Restfehler)• weight(Syndrom) = 1einfacher Fehler im Prüfwort (Max-Likelihood Prinzip ??)• weight(Syndrom) = 2einfacher Fehler im Datenfeld erkannt, wobei das gestörte Datenbit im Schnittpunkt derbeiden Spuren liegt, die durch das Syndrom gekennzeichnet sind• weight(Syndrom) ≥ 3Fehler erkannt, aber nicht korrigierbar (er handelt sich nicht mehr um einen einfachenFehler)D ) FehlerkorrekturIst das Gewicht des Syndroms = 2, dann ergibt sich das fehlerhafte Datenbit aus demSchnittpunkt der beiden Spuren (Abb. 4.15).0 1 0 1 0FehlerhaftesDatenbitAbb. 4.15 Fehlerkorrektur der Variation der zweidimensionalen ParitätskontrolleIn Abb. 4.16 ist ein einfaches Struktogramm für die Fehlerkorrektur dargestellt.11.01.02 14:53 9


4 Anwendungen der Binären Blockcodeshelp := SyndromFOR i:=w DOWNTO 1help :=ROR(help)Korrigiertes_Wort := help & SyndromDW[i] := DW[i] + Korrigiertes_WortAbb. 4.16 Struktogramm für Fehlerkorrektur der Variation der zweidimensionalenParitätskontrolle4.4.2 PATEL-HONG-Code( keine Prüfungsstoff )Es handelt sich um eine Abart der 2-dimensionalen PTY-Sicherung für ein Datenfeld von 8×7bit, bei der die Zeilensummen durch die Summen über die Diagonalen ersetzt werden. Da esimmer mehr Diagonalen im Rechteck als Zeilen gibt, für die Prüf-Bits aber wie bei der 2-dimensionalen PTY-Sicherung nur genauso viele Stellen wie Zeilen zur Verfügung stehen,wird anstelle der Diagonalsummen ein CRC-Rest davon nach der Division durch einspezielles Generator-Polynom gespeichert. Die Periode des Generator-Polynome beträgt 17.Einsatzgebiet: Blocksicherung der Daten auf mehrspurigen Magnelbändern.Beonderheit: Erkennen und Lokalisieren von Fehlerbündel, die in Zeilenrichtung auftretenkönnen.4.5 Reed-Mueller Codes als modifizierte erweiterete Hamming Codes( keine Prüfungsstoff )(RM-Codes)Reed-Mueller Codes (RM-Codes) sind eine Verallgemeinerung der erweiterten HAMMING-Codes mit einem besonderen Schema zum Erzeugen von ´unabhängigen´ Zeilen in der PTY-Check-Matrix.Die RM-Codes werden durch ein Paar [ ν, r] von Parametern gekennzeichnet.Die Blocklänge eines [ ν, r] RM-Codes ist auf Grund des Designs N = 2 ν , der erzielteHAMMING-Abstand beträt 2eine Potenzen von 2 ν−r .4.6 Spezielle Polynomcodes4.6.1 Alle Codes mit der gleichen Periode (x N – 1)(einige Beispiele)11.01.02 14:53 10


4 Anwendungen der Binären Blockcodes4.6.2 Beispiele für häufig verwendete (STANDARDISIERTE) CODES und deren GENERATORPOLYNOMEName GENERATOR POLYNOMIAL Periode | max. CW-Länge HA CW mit min. weightCRC-4 g 4 (x) = x 4 +x 3 +x 2 +x+1 (2 4 -1)/3 = 5 5 g 4 (x)CRC-7 g 7 (x) = x 7 +x 6 +x 4 +1 = (x 4 +x 3 +1)⋅(x 2 +x+1)⋅(x+1) k.g.V.(2 4 -1, 3, 1) = 15 4 g 7 (x)CRC-8 g 8 (x) = x 8 +x 7 +x 6 +x 4 +x 2 +1 = (x 5 +x 4 +x 3 +x 2 +1)⋅(x 2 +x+1)⋅(x+1) k.g.V.(2 5 -1, 3, 1) = 93 4 (x 2 +1)⋅g 8 (x)CRC-8-ATM g HEC (x) = x 8 +x 2 +x+1 = (x 7 +x 6 +x 5 +x 4 +x 3 +x 2 +1)⋅(x+1) k.g.V.(2 7 -1, 1) = 127 4 g HEC (x)CRC-10-ATM g OAM (x) = x 10 +x 9 +x 5 +x 4 +x+1 = (x 9 +x 4 +1)⋅(x+1) k.g.V.(2 9 -1, 1) = 511 4 (x 4 +1)/(x+1)⋅g OAM (x)CRC-12 g 12 (x) = x 12 +x 11 +x 3 +x 2 +x+1 = (x 11 +x 2 +1)⋅(x+1) k.g.V.(2 11 -1, 1) = 2 11 -1 = 2047 4 (x+1)⋅g 12 (x)CRC-ANSI g ANSI (x) = x 16 +x 15 +x 2 +1 = (x 15 +x+1)⋅(x+1) k.g.V.(2 15 -1, 1) = 2 15 -1 = 32767 4 g ANSI (x)CRC-CCITT 1) gCCITT(x) = x 16 +x 12 +x 5 +1 = (x 15 +x 14 +x 13 +x 12 +x 4 +x 3 +x 2 +x+1)⋅(x+1) k.g.V.(2 15 -1, 1) = 2 15 -1 = 32767 4 g CCITT (x)CRC-SDLC g SDLC (x) = x 16 +x 15 +x 13 +x 7 +x 4 +x 2 +x+1== (x 14 +x 13 +x 12 +x 10 +x 8 +x 6 +x 5 +x 4 +x 3 +x+1)⋅(x+1) 2 k.g.V.(2 14 -1, 2) = (2 14 -1)⋅2 = 32766 4 (x 16383 +1)⋅(x+1)CRC-24 g 24 (x) = x 24 +x 23 +x 14 +x 12 +x 8 +1 == (x 10 +x 8 +x 7 +x 6 +x 5 +x 4 +x 3 +x+1)⋅(x 10 +x 9 +x 6 +x 4 +1)⋅⋅(x 3 +x 2 +1)⋅(x+1) k.g.V.(2 10 -1, 7, 1) = (2 10 -1)⋅7 = 7161 6 g 24 (x)CRC-32A g 32A (x) = x 32 +x 30 +x 22 +x 15 +x 12 +x 11 +x 7 +x 6 +x 5 +x == (x 10 +x 9 +x 8 +x 6 +x 2 +x+1)⋅(x 10 +x 7 +x 6 +x 3 +1)⋅⋅(x 10 +x 8 +x 5 +x 4 +1)⋅(x+1)⋅x k.g.V.(2 10 -1, 2 10 -1, 2 10 -1, 1) = 1023 8 (?)⋅g 32A (x)CRC-32B g 32B (x) = x 32 +x 26 +x 23 +x 22 +x 16 +x 12 +x 11 +x 10 +x 8 +x 7 +x 5 +x 4 +x 2 +x+1 2 32 -1 ≈ 5⋅10 9 3 x 158594881 +x 58594881 modg 32B (x)IEC | TC57.1 g TC57.1 (x) = x 16 +x 14 +x 12 +x 11 +x 9 +x 8 +x 7 +x 4 +x+1k.g.V.(2 7 -1, 2 7 -1, 2) = 254= (x 7 +x 6 +x 3 +x+1)⋅(x 7 +x 6 +x 5 +x 4 +x 3 +x 2 +1)⋅(x+1) 2 für Blocklängen N ≤ 127IEC | TC57.2(nach Massey)46(x 127 +1)⋅(x+1)x 25 +x 25 modg(x)g TC57.2 (x) = x 16 +x 13 +x 12 +x 11 +x 10 +x 8 +x 6 +x 5 +x 2 +1 == (x 15 +x 14 +x 13 +x 11 +x 9 +x 8 +x 5 +x+1)⋅(x+1) k.g.V.((2 15 -1)/217, 1) = 151 6 x 38 +x 38 modg(x)1) Nach CCITT-Standard ist das CRC-Register am Beginn mit dem ALL_1-Wort, also mit FFh zu initialisieren. Letztlich ergibt sich dadurch ein COSET-Code.11.01.02 14:53 11


4 Anwendungen der Binären Blockcodes4.6.3 RS-Codes4.6.4 BCH-Codes4.6.5 FIRE-Codes4.6.6 Prinzip der CD-Sicherung (CIRS-Codes)Die Sicherung der Information auf Compact Disks erfolgt mittels gewichteter Summen (vgl.Galois Felder <strong>Kapitel</strong> ??).Von einem Datenblock mit n Zeilen und m Spalten werden zunächst Sicherungsbits für jedeSpalte erstellt (P-PTY). Anschließend werden Q-PTYs der Diagonalspalten erstellt:1 2 3 ... Spalten... m-2 m-1 mP-PTYAbb. 4.17 CD-Sicherung der SpaltenSchreibt man nun die Spalten des Datenblocks mit den Paritybits P 1 und P 2 als Vektor V P an,⎛ Datenbit (Zeile1) ⎞⎜⎟⎜Datenbit (Zeile 2) ⎟⎜ ... ⎟V ⎜⎟P=(1)⎜Datenbit (Zeile n) ⎟⎜⎟⎜Parity P1⎟⎝ Parity P2⎠so ergeben sich mit der Parity Check Matrix H P⎛ 1⎜n⎝α...HP=+ 2 n+11aus der BedingungHα1...1α1⎞⎟1⎠⋅ V 0(3)P P=zwei Gleichungen, aus welchen sich die Spalten-Paritybits P 1 und P 2 ergeben. Weiterswerden, ebenfalls mit Hilfe gewichteter Summen, die Paritybits für die Diagonalen erstellt:(2)11.01.02 14:53 12


4 Anwendungen der Binären Blockcodes1 2 3 ... Spalten... m-2 m-1 mQ-PTYP-PTYAbb. 4.18 CD Sicherung der DiagonalenFür die Ermittlung der Diagonalparitäten wird nicht nur der Datenblock, sondern auch dieschon erstellten Spaltenparitäten herangezogen. Endet eine Diagonale in der letzten Zeile desDatenblocks, so wird diese in der ersten Zeile fortgesetzt. Somit ergeben sich n+2Diagonalen, welche wieder als Vektoren V Q geschrieben werden können:⎛ Datenbit 1 ⎞⎜ ⎟⎜ Datenbit 2 ⎟⎜ ... ⎟V ⎜ ⎟Q=(4)⎜Datenbit m⎟⎜ ⎟⎜Parity Q1⎟⎝ Parity Q2 ⎠Die Parity Check Matrix H Q⎛ 1⎜m⎝α...HQ=+ 2 m+11αdefiniert mit der BedingungH1...1α1⎞⎟1⎠⋅ V 0(6)Q Q=wieder zwei Gleichungen zur Berechnung der Paritybits Q 1 und Q 2 für jede Diagonalspur.Bei Compact Disks werden Datenblöcke mit 24 (=n) Zeilen und 43 (=m) Spalten verwendet.(5)11.01.02 14:53 13

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!