Aus x möglichen Werten die Werte mit einer Hamming-Distanz von min. 3 suchen

Gast #4860596
Hallo,

ich übertrage auf einer Funkstrecke einen Wert mit 16 Bit. Für diese 16 
Bit sind nur 500 Werte möglich (anhand von anderen Bedingungen 
ermittelt).
Der Empfänger hat eine Fehlertoleranz von 3, d.h. er kann 3 Bitfehler 
korrigieren. Ich möchte nun berechnen, wieviele dieser 500 möglichen 
Werte vom Empfänger effektiv unterschieden werden können, da durch die 3 
möglichen Bitfehler ja die Werte sich teilweise überschneiden.

Jetzt habe ich mir erstmal überlegt, dass ich erstmal jeden Wert mit 
jedem anderen Wert vergleiche und die unterschiedlichen bits zähle. Ist 
die Anzahl unterschiedlicher Bits gleich, wäre dieses Wertepaar erstmal 
"gut". Wenn ich diese Analyse für alle Wertepaare durchgeführt habe - 
wie komme ich nun zu meinem Ziel, möglichst viele Werte zu finden, die 
sich in mindestens drei Bit unterscheiden?

Mit freundlichen Grüßen,
Frank
(Firma: Vescomp)
Frank schrieb:
> wie komme ich nun zu meinem Ziel, möglichst viele Werte zu finden, die
> sich in mindestens drei Bit unterscheiden?

 Genau wie oben, nur ein zusätzliches Array anlegen, z.B. TstArr().

 Wenn sich Arr(n) und Arr(37) in 3 bits unterscheiden, in TstArr(37)
 eine 1 reinschreiben und gleich mit Arr(n+1) weitergehen.
 Arr(37) wird dann nicht mehr geprüft, da schon ein Unterschied in
 drei bits zu Arr(0) besteht.
 Zum Schluss TstArr() auf <> 0 prüfen und zählen.

 Oder wolltest du etwas anderes ?
Hallo Frank,

wenn das Funkmodul selbständig 3 Bitfehler korrigieren kann, dann 
überträgt es zu deinen 16-Bit Nutzdaten noch weitere 
Redundanzinformationen. Solange nicht mehr als 3 Bit falsch sind wirst 
du immer den korrekten Wert erhalten.

Sascha

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.