Hallo, was für einfache Fehlererkennende und korrigierende Protokolle gibt es den? Bis jetzt scheint mir das Hamming Protokol das einfachste zu sein. Jedoch stört es mich das nur 1 Fehler erkannt wird. Gäbe es eine einfach Möglichkeit mehr Fehler zu erkennen ?(evt. noch durch ein zusätzlich Paritätsbit aber wo setz man das am geschicksten?) Das nur ein Fehler korrigiert werden kann reicht mir aus. Ich habe ein Datenpaket mit 16Bit und möchte natürlich mit möglichst wenig Zusatzbits auskommen. (Maximal 6 optimal 4) Außerdem sollte es auch von einen Nichtmathematiker implantierbar sein :-). Danke schonmal für eure Antworten. Gruß Peter
Wenn Fehler auftreten, dann vergiss es doch! (persönliche Meinung) Ansonsten ist CRC ein einfaches Verfahren noch einfacher ist eine Prüfsumme.
Sieh Dich mal um nach Reed-Solomon Vorwärtsfehlerkorrektur -mah http://de.wikipedia.org/wiki/Reed-Solomon-Code
Der Hamming-Code kann sebstverständlich auch mehr als einen Fehler detektieren. Er kann auch z.B. zwei Fehler erkennen und einen korrigieren. Je mehr Fehler erkannt/korrigiert werden sollen, desto mehr zusätzlich angehängte Symbole sind erforderlich. Der Hamming ist prinzipiell von Nichtmathematikern verwendbar, das erkennt man unter anderem daran, dass es mir auch schon gelungen ist, ihn zu benutzen. Der RS-Code ist ein Blockkode, der zwar leistungsfähig, aber in der Implementierung sehr unhandlich ist (bei Xilinx kostet der Core dafür richtiggehend Geld). Der Hamming dürfte sogar in recht kleine CPLD reinpassen. Sieh mal unter Bildschirmtext nach, da müßte irgendwo das beschrieben sein, was du suchst.
Ich würde den Hamming Code zusammen mit Interleaving einsetzen, falls es sich bei dem Übertragungsweg hauptsächlich um Burst-Störungen handeln kann. Man packt dabei von dem Datenblock, den man versendet jeweils die ersten, zweiten, ... Bits zu einem 8 Bit Wort zusammen. Falls Eine Störung dann ein Byte kaputtmacht hat man immer nur ein Bit, das sich mit dem Hamming korrigieren lässt. Nachteil: --------- Man muss mühsam Bits hin und her schubsen und hat deutlich mehr Verzögerungszeit (kennt man ja schon von den DSL Modems, bei denen das Interleaving auch benutzt wird, bzw. bei "Fastpath" abgeschaltet wird)
Es kommt doch auf die Art der vorkommenden Fehler an - oder ?
Leihe dir mal J.Swoboda, "Codierung zur Fehlerkorrektur und Fehlererkennung". Ein Standardwerk ist auch W.W. Peterson, "Error Correcting Codes". Ich meine fast, das dieses Werk auch übersetzt wurde.
Hallo, ich sollte vieleicht etwas kongkreter werden: Es handelt sich hier um eine IR-Übertragung ohne Rückkanalmöglickeit. Es werden immer Datenpakete mit ca. 16Bit geschickt. Und diese Datenpake fließen allerdings nicht in einem Datentrom sondern in unregelmäßigen abständen. Sprich jedes Datenpaket muss für sich die Fehlerkorrektur enthalten. Ein doppeltes Senden will ich vermeiden. Das ganze Protokol soll im übrigen in einen AVR(ATMEGA8 wird angestrebt) realisiert werden. @ Michael Haberler Das RS Verfahren scheint nach einem kurzem überfliegen wohl eher für länger Datenströme gedacht zu sein. @ Bernd G. Wie soll das gehen? Ich habe den Hammingcode leider nicht von Grundauf verstanden sondern kann ihn eigentlich nur programmieren. Wenn ich das aber in Wikipedia richtig gelesen habe ginge das nur durch die Reduzierung der Codewörter. (Daher größer Hammingabstand der einzelnen Wörter) Ließen sich die Einzelnen Codewörter überhaupt effizent in Echtzeit berechnen? Weil für eine 16 Bit Look Up Tabel hätte ich kein Platz. @Matthias Danke für den Hinweis macht aber bei 16 Bit glaube ich wenig sinn. @ALL Liege ich richrig das durch ein zusätzliches einfaches Paritätsbit im Hammingcode die Erkennungsleistung auf 2 Fehler steigen würde? Weil wenn er bei 2 Fehler Falsch korrigieren würde, würde er ja nur ein Bit änderen. Somit wäre dann die "Interne" Parität falsch oder habe ich hier ein Denkfehler? Sollte man dann das Paritätsbit über alles machen? Sprich Daten und Hammingbits oder nur über die Datenbits? Gruß Peter
Peter wrote: > Hallo, > was für einfache Fehlererkennende und korrigierende Protokolle gibt es > den? Bis jetzt scheint mir das Hamming Protokol das einfachste zu sein. > Jedoch stört es mich das nur 1 Fehler erkannt wird. Gäbe es eine einfach > Möglichkeit mehr Fehler zu erkennen ? Man kann nicht alles haben. Simpel und besonders leistungsfaehig sind in diesem Fall widerspruechlich.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.