mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehlerkorrigierende/erkenende Protokolle


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jorge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Fehler auftreten, dann vergiss es doch! (persönliche Meinung)

Ansonsten ist CRC ein einfaches Verfahren noch einfacher ist eine 
Prüfsumme.

Autor: Oberlehrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
implantiert

werden hd

Autor: Michael Haberler (mah)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieh Dich mal um nach Reed-Solomon Vorwärtsfehlerkorrektur

-mah


http://de.wikipedia.org/wiki/Reed-Solomon-Code

Autor: Bernd G. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: Jorge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kommt doch auf die Art der vorkommenden Fehler an - oder ?

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.