|
|||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
Kod Graya, zwany również kodem refleksyjnym, jest dwójkowym kodem bezwagowym niepozycyjnym, który charakteryzuje się tym, że dwa kolejne słowa kodowe różnią się tylko stanem jednego bitu. Jest również kodem cyklicznym, bowiem ostatni i pierwszy wyraz tego kodu także spełniają w/w zasadę. Kodem Graya długości n jest ciąg wszystkich 2n różnych ciągów n cyfr {0,1}, ustawionych tak, że dwa kolejne ciągi różnią się na jednej pozycji. Używa się go w przetwornikach analogowo-cyfrowych, szczególnie w systemach gdzie występują po sobie kolejne wartości np. czujniki położenia/obrotu. Kodów Graya można używać do etykietowania pojedynczych procesorów w sieci będącej hiperkostką.
edytuj Rozszerzanie kodu GrayaRozszerzanie kodu Graya o 1 bit przeprowadza się wg następującego algorytmu:
edytuj Kod Graya jako zagadnienie grafoweNiech G będzie grafem. Jeżeli edytuj Przykład konstruowania kodu 4-bitowego
edytuj Prosta konwersja z naturalnego kodu binarnego na kod GrayaZamiast konstruowania tablicy kodu Graya dla liczby zapisanej w kodzie dwójkowym można znaleźć odpowiednik w kodzie Graya w następujący sposób:
W języku C tę operację można zapisać następującym wyrażeniem: gray = liczba ^ (liczba / 2) lub gray = liczba ^ (liczba >> 1). edytuj Konwersja z kodu Graya na naturalny kod binarnyKolejne cyfry naturalnego kodu binarnego wyznacza się iteracyjnie, od najbardziej znaczącej, w oparciu o odpowiednią cyfrę kodu Graya i poprzednio wyznaczoną cyfrę kodu naturalnego:
Przykład przeliczenia:
Wynik: słowu 1010 w kodzie Graya odpowiada ciąg 1100 w kodzie naturalnym, czyli liczba 12. Rzeczywiście, jak pokazuje przedstawiona wyżej konstrukcja, 1010 jest trzynastym słowem kodowym 4-bitowego kodu, a więc (przy numeracji rozpoczynającej się od zera) odpowiada mu liczba 12. edytuj Zobacz teżedytuj Linki zewnętrzne |
| All Right Reserved © 2007, Designed by Stylish Blog. |