2. Kody numeryczne i arytmetyka cyfrowa

2.13. Kody Graya

Kody Graya (w najprostszym ujęciu) to kody numeryczne, które liczbom całkowitym ze zbioru <0,2n−1> (gdzie n ≥ 1) przyporządkowują słowa kodowe n bitowe w taki sposób, że sąsiednie liczby (tzn. różniące się o 1 lub 2n−1) mają słowa kodowe różniące się tylko na jednej pozycji. Oznacza to, że odległość Hamminga słów kodowych sąsiednich liczb jest równa 1. Można pokazać, że kod Graya jest kodem niewagowym.

Poniżej podany jest przykład 4 bitowego kodu Graya kodującego liczby ze zbioru <0,15>

0 → 0000
1 → 0001
2 → 0011
3 → 0010
4 → 0110
5 → 0111
6 → 0101
7 → 0100
8 → 1100
9 → 1101
10 → 1111
11 → 1110
12 → 1010
13 → 1011
14 → 1001
15 → 1000

Sposób tworzenia tego kodu dla zbioru <0,2n+1−1>  jeśli już mamy kod Graya dla zbioru< wyjaśnia Rys. 6. Opisany na Rys. 6. mechanizm umożliwia zdefiniowanie kodu Graya dla dowolnego zbioru liczb postaci <0,2n+1−1>. Definicja ma charakter indukcyjny. Punktem wyjścia jest oczywiście stwierdzenie, że kod dla zbioru liczb <0,1> = {0,1} zdefiniowany jako funkcja realizująca przyporządkowanie 0 → 0, 1 → 1 jest kodem Graya.

Rys. 6. Sposób tworzenia kodu Graya dla zbioru liczb <0,2n+1−1> jeśli mamy kod Graya dla zbioru liczb .<0,2n−1>.

Kody Graya stosowane są w urządzeniach do cyfrowego pomiaru położenia w urządzeniach mechanicznych np. w tarczach kodowych do pomiaru kąta określającego położenie wału obrotowego.

Uogólnieniem koncepcji kodów Graya są kody Graya na grafach. Chodzi w nich o takie przyporządkowanie słów kodowych wierzchołkom grafu by połączone gałęzią wierzchołki miały słowa kodowe różniące się tylko na jednej pozycji.