Коды грея

Коды грея
2-битный код Грея
00
01
11
10
3-битный код Грея
000
001
011
010
110
111
101
100
4-битный код Грея
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000

Код Грея, рефлексный двоичный код — двоичная система нумерования, в которой два соседних значения различаются только в одном двоичном разряде.

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

Содержание

Название

Название рефлексный (отражённый) двоичный код происходит от факта, что вторая половина значений в коде Грея эквивалентна первой половине, только в обратном порядке, за исключением старшего бита, который просто инвертируется. Если же разделить каждую половину ещё раз пополам, свойство будет сохраняться для каждой из половин половины и т. д.

Код получил имя исследователя лабораторий Bell Labs Фрэнка Грея. Он использовал этот код в своей импульсной системе связи, для чего был написан патент за номером 2632058.

Применения

Использование кодов Грея основано прежде всего на том, что он минимизирует эффект ошибок при преобразовании аналоговых сигналов в цифровые (например, во многих видах датчиков).

Фрагмент главной страницы патента Грея
Круговой энкодер с трёхбитным кодом грея

Коды Грея часто используются в датчиках-энкодерах [1]. Их использование удобно тем, что два соседних значения шкалы сигнала отличаются только в одном разряде. Также они используются для кодирования номера дорожек в жёстких дисках.

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

Широко применяются коды Грея и в теории генетических алгоритмов [2] для кодирования генетических признаков, представленных целыми числами.

Алгоритмы преобразования

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

Алгоритм преобразования из двоичной системы счисления в код Грея, записанный на языке C:

 unsigned int grayencode(unsigned int g) {
   return g ^ (g >> 1);
 }

обратный алгоритм (преобразование из кода Грея в двоичную систему счисления):

 unsigned int graydecode(unsigned int gray) {
   unsigned int bin;
   for (bin = 0; gray; gray >>= 1) {
     bin ^= gray;
   }
   return bin;
 }

рекурсивная функция построение кода Грея на языке C:

//n -- требуемая длина кода,
//m -- указатель нп массив, как минимум, длины n 
       для хранения кода (должен быть выделен до вызова функции)
//depth -- параметр рекурсии
 
int gray (int n, int* m, int depth) 
 
{
	int i,t=(1<<(depth-1));
 
	if (depth==0)
		m[0]=0;
 
	else
	{
//массив хранит десятичные записи двоичных слов
		for (i=0;i<t;i++)
			m[t+i]=m[t-i-1]+(1<<(depth-1));
	}
	if (depth!=n)
		gray(n,m,depth+1);
	return 0;
}

См. также

Примечания

  1. http://www.radioradar.net/articles/scientific_technical/encoder.html
  2. http://www.basegroup.ru/genetic/math_print.htm

Библиография

  • Black, Paul E. Gray code. 25 февраля 2004. NIST. [1] (англ.).

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "Коды грея" в других словарях:

  • Код Грея — 2 битный код Грея 00 01 11 10 3 битный код Грея 000 001 011 010 110 111 101 100 4 битный код Грея 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 Код Грея  система счисления, в которой два соседних значения… …   Википедия

  • Код грея — 2 битный код Грея 00 01 11 10 3 битный код Грея 000 001 011 010 110 111 101 100 4 битный код Грея 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 Код Грея, рефлексный двоичный код  двоичная система нумерования, в… …   Википедия

  • код Грея — n мерная двоичная система в виде графа. Коды Грея задаются так, чтобы двоичные слова отличались на расстояние Хемминга, равное единице …   Словарь лингвистических терминов Т.В. Жеребило

  • Код Грэя — 2 битный код Грея 00 01 11 10 3 битный код Грея 000 001 011 010 110 111 101 100 4 битный код Грея 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 Код Грея, рефлексный двоичный код  двоичная система нумерования, в… …   Википедия

  • Ханойская башня — Модель Ханойской башни с восемью дисками Ханойская башня является одной из популярных головоломок XIX века. Даны три стержня, на один из которых нанизаны восемь колец, причем кольца отличаются …   Википедия

  • Сигнальное созвездие — (англ. constellation diagram)  представление манипулированных радиосигналов на комплексной плоскости. Содержание 1 Описание 2 Решётчатая кодированная модуляция …   Википедия

  • СИМВОЛИЗМ —         худож. направление, сложившееся в зап. европ. культуре в к. 60 нач. 70 х гг. 19 в. (первоначально в лит ре, затем и в других видах искусства изобразит., муз., театральном) и вскоре включившее в себя иные явления культуры философию,… …   Энциклопедия культурологии

  • Microsoft Research — (MSR)  подразделение корпорации Microsoft, созданное в 1991 году для исследования различных вопросов и тем в области информатики. Здесь в данное время работают обладатели премии Тьюринга Чарльз Хоар и Батлер Лэмпсон, обладатель Филдсовской… …   Википедия

  • Приютино (усадьба) — Запрос «Приютино» перенаправляется сюда; см. также другие значения. Микрорайон Приютино …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»