17
правок
Изменения
Нет описания правки
== Специальные типы кодов Грея ==
=== Сбалансированный Код код Грея ===
Несмотря на то, что зеркальный двоичный код Грея полезен во многих случаях, он не является оптимальным в некоторых ситуациях из-за отсутствия "однородности". В сбалансированном коде Грея, количество изменений в различных координатных позициях сделаны максимально приближенными настолько, насколько это возможно. Чтобы показать это точнее, пусть G - это R-ичный полный цикл Грея, имеющий последовательность перехода <math> (\delta_k)</math>; отсчёты переходов(спектры) G являются наборами целых чисел, определенных как <math>\lambda_k = |\{ j \in \mathbb{Z}_{R^n} : \delta_j = k \}| \, , \text { for } k \in \mathbb{Z}_R</math>.
Код Грея является однородным или равномерно сбалансированным, если все его отсчёты переходов равны, и в этом случае у нас есть <math>\lambda_k = R^n / n</math> для всех <math>k</math>. Ясно, что при R = 2, такие коды существуют только при n = 2. В противном случае, если <math>R^n</math> не делится на n равномерно, то можно построить сбалансированные коды Грея, где каждый отсчёт перехода либо <math>\lfloor R^n / n \rfloor </math> либо <math> \lceil R^n / n \rceil</math>. Коды Грея также могут быть экспоненциально сбалансироваными, если все их отсчеты переходов являются смежными степеням двойки, и такие коды существуют для каждой степени двойки.
=== Код Беккета-Грея ===Код Беккета-Грея был назван в честь ирландского писателя Сэмюэла Беккета, который интересовался симметрией. Его пьеса [http://en.wikipedia.org/wiki/Quad_(play) "Quad"] содержала в себе четырёх актёров и была разделена на 16 временных периодов. Каждый период заканчивался, когда один из четырёх актёров выходил на сцену или же, наоборот, уходил с неё. Пьеса начиналась на пустой сцене, и Беккет хотел, чтобы каждое подмножество актёров появлялось ровно один раз. Ясно, что множество актёров, находящихся в данное время на сцене может быть представлено в виде 4-битного двоичного кода Грея. Беккет, однако, добавил дополнительное условие в сценарий: чтобы со сцены уходил всегда тот из актеров, кто находился на ней дольше остальных. Актёры могли быть представлены как [http://ru.wikipedia.org/wiki/FIFO FIFO очередь] так, что (из всех актёров на сцене) уходил всегда тот актёр, который был первым в этой очереди. Беккет не смог найти Однодорожечный код Беккета-Грея для своей пьесы, да и вообще, исчерпывающее перечисление всех возможных последовательностей показывает, что такой код не существует для n = 4. Известно, что сегодня такие коды существуют для n = 2, 5, 6, 7, и 8, и не существуют для n = 3 или 4.=== Однодорожечный Код Грея ===Еще один вид кода Грея - это Однодорожечный Код Грея. Разработан Спеддингом и уточнен Хильтгеном, Патерсоном и Брандестини в работе "Single-track Gray codes"(1996). Код является циклическим списоком P уникальных двоичных кодировок длины n так, что два последовательных слова отличаются ровно в одной позиции, и когда список рассматривается как <math>P_{xn}</math> матрица, каждая колонка - это циклический сдвиг первого столбца. Название происходит от их использования датчиками вращения, где количество дорожек в настоящее время измеряется с помощью контактов, в результате для каждой дорожки на выход подаётся 0 или 1. Чтобы снизить уровнень шума различных контактов не переключаясь в тот же момент времени, один датчик предпочтительно устанавливает дорожки так, что выход данных от контактов находится в коде Грея. Чтобы получить высокую угловую точность, нужно много контактов; для достижения точности хотя бы в 1 градус нужно, по крайней мере, 360 различных позиций на оборот, который требует минимум 9 бит данных, и тем самым такое же количество контактов.
== Применение ==
* Использование кодов Грея основано прежде всего на том, что он минимизирует эффект ошибок при преобразовании аналоговых сигналов в цифровые (например, во многих видах датчиков).