Преобразователь двоичного кода в код грея

Калькулятор позволяет конвертировать заданное число в код Грея, и делать автоматическое обратное преобразование.

Свойство этих кодов заключается в том, что при изменении числа на соседнее, двоичные биты составляющие его , изменялись только в одной позиции.

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

Как видите, у соседних чисел представленных кодом Грея, меняется только один, и только один бит.

Где это может применяться? Например в биологии когда цепочку генома можно закодировать кодом Грея, и тогда минимальная мутация в одной позиции, будет означать изменение в одной позиции кода Грея, а значит число в десятичной системе будет отличаться лишь на единицу.

Код Грея, можно создавать только для двоичных представлений числа, в других системах счисления, кодов подобных коду Грея, создать нельзя.

Но! Нам никто не запрещает взять любое целое число в любой системе счисления, перевести в двоичный вид, применить код Грея и вернуть обратно в исходную систему счисления.

Наш калькулятор это и делает. Он выдает результат как в исходной системе счисления, так и в двоичной. На мой взгляд это очень удобно.

Например, взяв нашу десятичную систему счсиления и тогда число 343 в коде Грея выглядит так 508. Одним кликом число 343 перевелось в двоичную, из него получили код Грея и снова перевели в десятичную.

Как преобразовывать числов код Грея и обратно, лучше чем в Википедии не написано. Оттуда же взяты и алгоритмы.

Читайте также  Программа для изготовления загрузочной флешки

Преобразование А(х) = (an . aр . a1) , где a = xp Å xp , если р = 1, 2, . n-1, и aр = xn , если р = n, определяет алгоритм построения кода Грея.

Код Грея используют в преобразованиях аналоговых физических сигналов в цифровые сигналы с погрешностью, не превышающей значение младшего разряда двоичного числа X.

Важно: код Грея относится к таким, в которых при переходе от любой кодовой комбинации к следующей изменяется только один разраяд. Код Грея можно получить по соотношению , где — значение разряда кода грея, — значение разряда двоичного кода, преобразуемого в код грея. Ряд левее старшего для двоичного кода считается нулевым.

Пример: Записать число в коде Грея. Перепишем это число в двоичном коде: 1010, тогда преобразование будет выглядеть следующим образом:

Х
*
Х

(*-всегда ноль). Сложив столбцы в таблице по модулю 2 и отбросив последний (где есть «Х»), получили число или двоичное 1010 в коде Грея. Оно имет значение 1111. Это можно увидеть и на временных диаграммах (рис. 6.38)

Рис. 6.38 Работа преобразователя двоичного кода в код Грея

Рис. 6.39 Структура преобразователя двоичного кода в код Грея (блок Bin_to_Gray)

Рис. 6.40 Преобразователь двоичного кода в код Грея в пакете

Рис. 6.41 Временные диаграммы

Рис. 6.42 Матрица временных задержек

Программа:

VARIABLE q[3..0] : NODE;

FOR i IN 0 TO t GENERATE

Преобразование кода Грея в двоичный код описывается выражением xp = ap Å xp+1, если р = 1, 2, . n-1, и x = an , если р = n. Схема преобразователя А(х) для четырехразрядных двоичных чисел Х = (x4, х3, x2, x1) показано на рис. 6.43.

Пример: Получить из числа 1011, записанного в коде Грея, его двоичное значение.

Тут нужно пояснить. Бинарное число в старшем разряде всегда будет иметь то значение, которое было в старшем разряде кода Грея. Остальные значения получаются после сложения по модулю 2 соответствующих разрядов (если записаны как в таблице, тогда по диагонали).

Читайте также  После обновления драйверов упал фпс

Рис. 6.43 Работа преобразователя кода Грея в двоичный код (*)

Рис. 6.44 Внутренняя структура элемента Gray_to_Bin

(преобразователя кода Грея в двоичный код)

(*) Примечание. Для получения кода Грея, из которого нужно получить двоичный код, можно воспользоваться рассмотренным в предыдущем примере преобразователем двоичного кода в код Грея (модуль Bin_to_Gray).

Рис. 6.44 Преобразователь кода Грея в двоичный код в

В преобразователях аналоговых физических величин (например, угла поворота вала) в цифровые сигналы с погрешностью, не превышающей значения младшего разряда, используется код Грея (он соответствует непозиционной системе счисления). Код Грея строится таким образом, что при переходе от одного числа к следующему изменяется всегда только один двоичный разряд. Таблица преобразования четырехразрядных двоичных чисел X (ху х2, х<, х) в код Грея G (g3, g2, gvg) и обратно приведена ниже. Прямые и обратные преобразователи кода Грея в двоичный код реализуются с помощью логических элементов Исключающее ИЛИ.

Осуществим синтез преобразователя четырехразрядного двоичного числа. Заполним диаграммы Вейча для каждого разряда кода Грея и выполним минимизацию выражений для переменных g3g2g<gQ.

На рис. 2.17 приведены диаграммы Вейча для первых четырех разрядов кода Грея. Часто возникает потребность преобразовать один из этих кодов в другой. Для удобства работы в табл. 2.5 показаны соответствия всех 32 комбинаций одного и другого кодов.

Таблица перевода двоичного кода в код Грея и обратно

Ссылка на основную публикацию
Adblock
detector