Ein Gray-Code ist eine Codierung der Zahlen 0, ..., 2n-1 durch einen n-Bit-Blockcode in der Weise, dass Codewörter, die aufeinander folgenden Zahlen entsprechen, den Hamming-Abstand 1 haben, d.h. sich in genau einem Bit unterscheiden.
Es gibt verschiedene solche Codierungen, also verschiedene n-Bit-Gray-Codes.
Definition: Sei A ein Alphabet. Dann ist A* die Menge aller Wörter über A; ferner ist An die Menge aller Wörter der Länge n über A. Das leere Wort wird mit ε bezeichnet, d.h. es gilt A0 = {ε}.
Definition: Zwei Wörter u, v ∈ A* werden verkettet, indem sie zu einem Wort uv hintereinandergeschrieben werden. Für alle Wörter u ∈ A* gilt uε = εu = u.
Definition: Sei u ein Wort über A und X = x0, ..., xk-1 eine endliche Folge von Wörtern über A. Das Produkt uX ist die endliche Folge
uX = ux0, ..., uxk-1,
d.h. die Folge uX entsteht, indem u mit jedem Wort xi der Folge X verkettet wird.
Definition: Sind X = x0, ..., xk-1 und Y = y0, ..., ym-1 zwei endliche Folgen, so ist X, Y die endliche Folge, die entsteht, wenn X und Y hintereinandergeschrieben werden:
X, Y = x0, ..., xk-1, y0, ..., ym-1
Definition: Ist X = x0, ..., xk-1 eine endliche Folge, so ist XR die endliche Folge, die entsteht, wenn X rückwärts durchlaufen wird:
XR = xk-1, ..., x0
Im Folgenden sei A = 𝔹 = {0, 1}.
Wir bezeichnen den zu konstruierenden n-Bit-Gray-Code mit Gn. Da es beim Gray-Code auf die Reihenfolge der Codewörter ankommt, ist Gn eine endliche Folge.
Der Gray-Code Gn für n ∈ ℕ0 ergibt sich rekursiv in folgender Weise:
Gn = |
|
Die nach dieser Vorschrift konstruierten Gray-Codes ergeben sich also folgendermaßen (Codewörter untereinander geschrieben):
|
|
|
|
[Ham 87] R.W. Hamming: Information und Codierung. VCH (1987)
Weiter mit: [Lineare Codes] oder [up]