Forum: Mikrocontroller und Digitale Elektronik Aus x möglichen Werten die Werte mit einer Hamming-Distanz von min. 3 suchen


von Frank (Gast)


Lesenswert?

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

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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 ?

von Sascha W. (sascha-w)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.