Rozszerzenie tematu systemu binarnego i systemów liczbowych. Kod Graya to takie uporządkowanie liczb binarnych, że każde dwie kolejne różnią się dokładnie jednym bitem (wzór G(k)=k XOR (k>>1)). Dzięki temu unika się błędów w enkoderach i przełącznikach, gdzie jednoczesna zmiana wielu bitów mogłaby dać błędne stany pośrednie. Opracował go Frank Gray (patent 1947 r.).

Dam Ci przejście k−1 → k. Policz, ile bitów przeskakuje ZWYKŁY kod binarny (Gray zmienia zawsze 1).
Co to jest kod Graya?
Kod Graya (zwany też refleksyjnym kodem binarnym) to sprytne uporządkowanie liczb binarnych, w którym każde dwie sąsiednie wartości różnią się dokładnie jednym bitem. Opracował go fizyk Frank Gray z Bell Labs — patent zgłoszono w 1947 r., a przyznano w 1953 r.
Po co, skoro mamy zwykły kod binarny?
W zwykłym kodzie binarnym przejście np. z na wymaga jednoczesnej zmiany czterech bitów. Gdyby zmieniły się one nie idealnie równocześnie (co zdarza się w urządzeniach mechanicznych), pojawiłyby się chwilowe, błędne wartości pośrednie. Kod Graya eliminuje ten problem — zawsze zmienia się tylko jeden bit, więc żaden fałszywy stan pośredni nie powstaje.
Jak się go generuje?
Elegancko, jednym wzorem — XOR z przesuniętą o jeden bit w prawo:
gdzie to bitowe XOR, a to przesunięcie bitowe w prawo o jedną pozycję. Dla daje to kolejno: — i faktycznie każde dwie sąsiednie różnią się jednym bitem.
Niezmiennik: odległość Hamminga = 1
Odległość Hamminga liczy, na ilu pozycjach dwa ciągi bitów się różnią. Dla kolejnych wartości kodu Graya wynosi ona zawsze dokładnie . To właśnie ta gwarancja czyni kod Graya odpornym na błędy odczytu.
Gdzie się go stosuje?
W enkoderach pozycji (czujnikach kąta obrotu — tarcza po prawej), przełącznikach, komunikacji cyfrowej i wszędzie tam, gdzie zależy nam na minimalizacji błędów przy zmianie stanu. Bez kodu Graya obracający się enkoder mógłby na moment zameldować zupełnie błędną pozycję.
Po co Ci to na maturze:
Kod Graya to piękny przykład z pogranicza matematyki i informatyki: pokazuje, jak przemyślana matematyczna reprezentacja liczb rozwiązuje konkretny problem inżynierski. Operacje bitowe (XOR, przesunięcie) oraz systemy pozycyjne to stały element zadań z informatyki i matematyki dyskretnej.
Zapamiętaj: kod Graya porządkuje liczby tak, że sąsiednie różnią się jednym bitem (Hamming = 1). Generuje go wzór , a stosuje się go w enkoderach i wszędzie, gdzie liczy się odporność na błędy.
Sąsiednie wartości różnią się dokładnie jednym bitem (odległość Hamminga równa ).
gdzie to XOR, a przesunięcie bitowe w prawo o jeden.
W enkoderach pozycji i przełącznikach jednoczesna zmiana wielu bitów mogłaby dać błędny stan pośredni; kod Graya zmienia zawsze tylko jeden bit, co to eliminuje.
Oznaczenia: liczba, jej kod Graya, XOR, przesunięcie w prawo.
Uczysz? Umieść ten eksperyment na swojej stronie.
Darmowy widget — wklej na stronę szkoły, bloga lub notatki. Linkuje do pełnej wersji.
Dokładnie o jeden bit (odległość Hamminga = 1).
By uniknąć błędów w enkoderach pozycji i przełącznikach — jednoczesna zmiana wielu bitów mogłaby dać błędne stany pośrednie.
Wzorem G(k) = k XOR (k >> 1) — liczba XOR z samą sobą przesuniętą o jeden bit w prawo.