Hi!
Ich weiss nicht ob du mit Manchester-codierung bei einem
FSK-Modulierten Signal glücklich wirst. Der Chip IA4420 benutzt
Frequency-Shift-Keying als Modultaionsverfahren, dabei wird die 0 bzw.
1 nicht über einen Pegelwechsel wie bei Amplituden-Modulation
übertragen sondern es wird die Frequenz des Signales verändert. Mir ist
da irgendwie grad nicht klar wie man das Manchester-Codieren könnte, vor
allem, weil ich ja den Chip nehme um mir Arbeit zu ersparen und deshalb
das interne Register und den FIFO benutze um einfach das zu sendende
Byte ins Register zu schieben und den Rest macht der Chip. Eine
Fehlerkorrektur wäre natürlich hier sehr zu empfehlen aber auf die
Manchestercodierung kannst du meines Erachtens verzichten.
Zu Hammingcodierung:
Definition: Hammingdistanz: Minimum der Distanzen aller möglichen
Codewortpaare: Bsp: Codewörter: {100,010,001}
h=min{d(100,010),d(100,001),d(010,001)}=min{2,2,2}=2
Fehlererkennung: große Hemmingdistanz hat folgende Vorteile: Wenn durch
einen Fehler weniger Bits verfälscht werden, als der Wert der
Hammingdistanz h angibt, so ist das Ergebniswort mit Sicherheit kein
Codewort. (ein Codewort kann nur durch mindestens h Bitfehler
entstehen).
Bsp:
Codewörter: {100,010,001}
h=2
Übertragen wird 100 aber durch Bitfehler kommt 101 an. -> kein
Codewort, Fehler erkannt.
Durch 2 Bitfehler wird statt 100, 001 übertragen -> 001 ist Codewort,
Fehler wird nicht erkannt.
Fehlerkorrektur:
Ist die Anzahl der Fehler kleiner als h/2 so kann der Fehler nicht nur
erkannt sondern auch korrigiert werden.
Bsp:
Codewörter: {00000,11111}
h=5
Es können also bis zu 4 Fehler erkannt und bis zu 2 Fehler korrigiert
werden.
2 Fehler: statt 11111 wird 10110 empfangen. Da die Distanz
d(10110,11111) kleiner als d(10110,00000) ist wird 10110 als 11111
erkannt.
Anmerkung: Bei einer zu großen Anzahl an Fehlern kann es natürlich
vorkommen, dass falsch korrigiert wird. bzw. kein Fehler erkannt wird.
Redundante Codes:
Um größere Hammingdistanzen zu erreichen wird mehr Redundanz in die
Codeworte gebracht. D.h. dass nicht nur die übertragende Information
sondern auch gewisse (für den Empfänger unnötige) Zusatzinformationen
gesendet wird. Bsp: Parity Check Code. Dabei wird für jedes Codewort
ein zusätzliches Bit übertragen, dessen Wert so gewählt ist, dass die
Anzahl der Einsen(1) gerade ist (=even parity).
Ebenso gibt es auch odd parity (Anzahl der Einsen ist ungerade)
Daher lässt sich leicht ein Übertragungsfehler erkennen (aber höchstens
EIN Fehler, da Hammingdistanz d nur 2 ist!!)
Raffinierter Codes:
z.Bsp: Minimum Distance-4 Hammingcode (MD4HC)
Information Even Parity MD4HC
0000 0 0000
0001 1 0111
0010 1 1011
0011 0 1100
0100 1 1101
0101 0 1010
0110 0 0110
0111 1 0001
1000 1 1110
1001 0 1001
1010 0 0101
1011 1 0010
1100 0 0011
1101 1 0100
1110 1 1000
1111 0 1111
Allgemeine Methode zur Konstruktion von Fehlerkorrigierenden
Codes(=Hammingcodes) unter der Verwendung einer Hammingdistanz von 3.
für jede natürliche Zahl m gibt es einen (2^m-1)-bit Hammingcode, der m
Parity-Bits und 2^m-1-m Informationsbits enthält.
Weiteres im Netz.
Das mit der Arbeit stimmt ;-), habe grad viele Prüfungen und komme
deshalb erst wieder mitte Dezember dazu da weiterzumachen.
lg
Fasti