Gray-Code



  • Hallo zusammen,

    ich habe noch nicht den Vorteil von Gray Code verstanden. Eigentlich dachte ich, dass bei der Übertragung eines digitalen Signals eine Übertragungsfehler nicht so schlimme Auswirkung haben wird, da sich zwei benachbarte Zahlen in nur einem Bit unterscheiden. Doch auf der anderen Seite macht ein Fehler von 0000 auf 1000 auch in der Gray Codierung einen großen Unterschied aus.

    Warum ist diese Codierung dennoch vorteilhaft?

    Vielen Dank
    LG, freakC++



  • freakC++ schrieb:

    Hallo zusammen,

    ich habe noch nicht den Vorteil von Gray Code verstanden. Eigentlich dachte ich, dass bei der Übertragung eines digitalen Signals eine Übertragungsfehler nicht so schlimme Auswirkung haben wird, da sich zwei benachbarte Zahlen in nur einem Bit unterscheiden. Doch auf der anderen Seite macht ein Fehler von 0000 auf 1000 auch in der Gray Codierung einen großen Unterschied aus.

    Warum ist diese Codierung dennoch vorteilhaft?

    Vielen Dank
    LG, freakC++

    Es geht um die Gray-Scheibe.
    http://de.wikipedia.org/w/index.php?title=Datei:BCD-Scheibe.svg&filetimestamp=20100323232251

    Wenn sich das Rad von einer Zahl zur nächsten dreht, ändert sich nue EIN Bit!
    Dadurch kann es nicht bei minimalen Herstellungsungenauigkeiten oder Verschleiß oder sonstwas dazu kommen, daß zweichen zwei Zahlen sich noch eine dritte Zahl einklemmt.

    Mit der normalen Schreibe würde auf 0011 die 0100 folgen, was drei Bits ändert. Was passiert, wenn der Drahtfingerstromabgreifer auf dem zeiten Bit ein wenig dejustiert ist und zu früh den Wechsel sieht? Dann gehts 0011 -> 0001 -> 0100.
    Ganz böse Falle. In dem Moment, wo 0001 gemessen wird, fährt das Kernkraftwerk runter.

    Entsprechend auch beim übertragen von Messwerten auf parallelen Kabeln. Solange sich die Messwerte immer nur um +-1 ändern, ändert sicvh auch nur ein Bit. Man braucht keinen äußeren Takt, der sagen würde, wann ein Signal auf dem Kabel gültig ist. Der Schaltunsaufwand ist einfach minimal.

    Es geht überhaupt nicht darum, unstetige Signale zu übertragen. Da hätte man überhaupt keinen Zugewinn. Es geht nicht darum, gegen ein zufällig umkippendes Bit zu sichern, das hat, wie Du festgestellt hast, genau so großen Einfluß wie bei normaler Codierung. Es geht nur um steige Messerte, mechanische Abgreifer, parallele Übertragung.
    Wenn der Messertaufnehmer schon ein A/D-Wandler auf einem Mini-Board mit USB-Schnittstelle ist, biste schon viel zu hoch, um da noch Gray zu brauchen. Könnte sein, daß Du es nie brauchen wirst, aber für Grundlagenvorlesungen ist sowas immer wichtig, dann muss man die Lehrinhalte nicht übertrieben oft mehrmals im Jahrhundert ändern.



  • Bei der n-PSK Modulation, wobei jeweils einem der n Symbole ein bestimmter Phasenshift zugeordnet wird, bietet sich auch der Gray-Code an. Übertragungsfehler führen dazu, dass die Phase nicht richtig erkannt werden. Dann landet man typischerweise einen daneben. Das würde aber wegen des Gray-Codes nur genau einen Bitfehler produzieren. Und je weniger Bitfehler desto höher ist die Wahrscheinlichkeit, dass man die übertragene Nachricht noch per FEC (forward error correction) Korrigieren kann.

    Man kann es aber auch für 16-QAM einsetzen. Da hat man im Phasenraum 4x4 Code-Punkte, wobei man die 2bittigen X- und Y-Coordinate Gray-Kodieren kann:

    0000   0001   0011   0010
    
     0100   0101   0111   0110
    
     1100   1101   1111   1110
    
     1000   1001   1011   1010
    

    Hier ist die Zuordnung von Bitmustern im 4x4-Raster so gewählt, dass benachbarte Zellen sich nur in einem Bit unterscheiden. Die ersten beiten Bits entspricht der Gray-Kodierung der Zeile und die letzten beiden Bits der Gray-kodierten Spalte.

    Also ... Übertragungstechnik ist ein Aspekt, wo Gray-Codes interessant sind. Je weniger Bitfehler desto besser.



  • volkard schrieb:

    Es geht überhaupt nicht darum, unstetige Signale zu übertragen. Da hätte man überhaupt keinen Zugewinn. Es geht nicht darum, gegen ein zufällig umkippendes Bit zu sichern, das hat, wie Du festgestellt hast, genau so großen Einfluß wie bei normaler Codierung. Es geht nur um steige Messerte, mechanische Abgreifer, parallele Übertragung.
    Wenn der Messertaufnehmer schon ein A/D-Wandler auf einem Mini-Board mit USB-Schnittstelle ist, biste schon viel zu hoch, um da noch Gray zu brauchen. Könnte sein, daß Du es nie brauchen wirst, aber für Grundlagenvorlesungen ist sowas immer wichtig, dann muss man die Lehrinhalte nicht übertrieben oft mehrmals im Jahrhundert ändern.

    Gray-Codes sind auch heute noch super, wenn man sie mit (gerne auch digitaler) Fehlerkorrektur und/oder -erkennung verbindet.
    Ich addiere meinen eigentlichen Daten ein paar redundante Daten, mit denen es mir nicht mehr weh tut, wenn ein einzelnes (oder je nach Codierung auch ein paar mehr)
    Bits umkippen. Dann kann ich immer noch mein Datenpaket retten (Fehlerkorrektur) oder wenigstens einen Fehler erkennen, wenn er passiert (Fehlererkennung).


Anmelden zum Antworten