выберите верный код грея для двоичного кода 1001 это обязательный вопрос

Коды Грея

Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на «отражённый двоичный код».

Содержание

Алгоритм построения [ править ]

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 300px Gray Code Building. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-300px Gray Code Building. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 300px Gray Code Building. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Существует несколько видов кода Грея, самый простой из них — так называемый зеркальный двоичный код Грея. Строится он так:

Псевдокод [ править ]

Доказательство правильности работы алгоритма [ править ]

Таким образом, этот код — код Грея. Индукционное предположение доказано, алгоритм работает верно.

Существует ещё несколько видов кода Грея — сбалансированный код Грея, код Баркера-Грея, одноколейный код Грея. [1] Кроме того, коды Грея используются для упорядочения перестановок.

Явная формула для получения зеркального двоичного кода Грея [ править ]

Для кода длиной [math]1[/math] бит утверждение проверяется непосредственно.

Для любого [math]x \lt 2^n[/math] выполняется [math]\enspace L_x = 0M_x[/math] и, по условию, равно

[math]L_x = 0(x_x_ \dots x_ <0>\oplus 0x_x_ \dots x_<1>)[/math] раскрыв скобки, получим новое выражение [math]L_x[/math] :

[math]= 0x_x_ \dots x_ <0>\oplus 00x_x_ \dots x_<1>[/math] что равно (второе слагаемое равно первому, побитово сдвинутого вправо.)

[math]= x \oplus (\lfloor x / 2 \rfloor)[/math]

[math]L_x = 1(\overline x_ \dots x_<0>> \oplus 0 \overline x_ \dots x_<1>>)[/math] что по свойству xor ( [math]\neg x \oplus \neg y = x \oplus y[/math] ) равно

[math]= 1(\overline >x_ \dots x_ <0>\oplus 0x_x_ \dots x_<1>)[/math] или (все по тому же свойству)

[math]= 1(x_x_ \dots x_ <0>\oplus 1x_x_ \dots x_<1>)[/math] раскрыв скобки, получим

[math]= 1x_x_ \dots x_ <0>\oplus 01x_x_ \dots x_<1>[/math] откуда получаем, зная из условия, что старший разряд [math]L_x[/math] равен [math]1[/math]

[math]= x_x_x_ \dots x_ <0>\oplus 0x_x_x_ \dots x_<1>[/math] что, аналогично первому пункту, равно

[math]= x \oplus (\lfloor x / 2 \rfloor)[/math]

Таким образом, шаг индукции доказан, следовательно, теорема верна.[math]\triangleleft[/math]

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 50px Single track. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-50px Single track. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 50px Single track. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Сбалансированный код Грея [ править ]

Несмотря на то, что зеркальный двоичный код Грея полезен во многих случаях, он не является оптимальным в некоторых ситуациях из-за отсутствия «однородности». В сбалансированном коде Грея, количество изменений в различных координатных позициях сделаны максимально приближенными настолько, насколько это возможно.

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

Однодорожечный код Грея [ править ]

Еще один вид кода Грея — это однодорожечный код Грея, разработанный Спеддингом и уточнен Хильтгеном, Патерсоном и Брандестини.

Чтобы снизить уровнень шума различных контактов не переключаясь в тот же момент времени, один датчик предпочтительно устанавливает дорожки так, что выход данных от контактов находится в коде Грея. Чтобы получить высокую угловую точность, нужно много контактов; для достижения точности хотя бы в [math]1[/math] градус нужно, по крайней мере, [math]360[/math] различных позиций на оборот, который требует минимум [math]9[/math] бит данных, и тем самым такое же количество контактов.

Не путать с цепными кодами, получаемых циклическим сдвигом.

Применение [ править ]

Фрэнк Грей изобрел метод для преобразования аналоговых сигналов в отраженные двоичные кодовые группы с использованием аппарата на основе вакуумной трубки. Способ и устройство были запатентованы в 1953 году, а код получил название код Грея. «PCM трубка» — аппарат, запатентованный Греем, был сделан Раймондом У. Сирсом из (англ.) Bell Labs, работая с Греем и Уильямом М. Гудоллом.

Таким образом, высока вероятность того, что при кодировании с помощью кода Грея в случае возникновения ошибки ошибочным будет только один из [math]k = \log_2 M[/math] переданных битов.)

Задача о Ханойских башнях [ править ]

Задача:
Даны три стержня, на один из которых нанизаны восемь колец, причем кольца отличаются размером и лежат меньшее на большем. Задача состоит в том, чтобы перенести пирамиду из восьми колец за наименьшее число ходов на другой стержень. За один раз разрешается переносить только одно кольцо, причём нельзя класть большее кольцо на меньшее.

Источник

Код Грея

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

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

Содержание

Название

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

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

Применения

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

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 500px US02632058 Gray. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-500px US02632058 Gray. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 500px US02632058 Gray. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. magnify clip. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-magnify clip. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка magnify clip. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 220px Encoder Disc %283 Bit%29.svg. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-220px Encoder Disc %283 Bit%29.svg. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 220px Encoder Disc %283 Bit%29.svg. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. magnify clip. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-magnify clip. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка magnify clip. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

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

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

Код Грея используется для генерации сочетаний методом вращающейся двери [2]

В некоторых компьютерных играх (например, Duke Nukem 3D) для успешного прохождения уровня требуется подобрать нужную комбинацию положений нескольких переключателей. Для минимизации числа переключений при переборе вариантов следует использовать код Грея.

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

Преобразование двоичного кода в код Грея

Коды Грея легко получаются из двоичных чисел путём побитовой операции «Исключающее ИЛИ» с тем же числом, сдвинутым вправо на один бит. Следовательно, i-й бит кода Грея Gi выражается через биты двоичного кода Bi следующим образом:

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. f43fcd63291c2b13dd6dbd5d65e398d8. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-f43fcd63291c2b13dd6dbd5d65e398d8. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка f43fcd63291c2b13dd6dbd5d65e398d8. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

где выберите верный код грея для двоичного кода 1001 это обязательный вопрос. b71edd70fcad670e99a9912ba5e55d77. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-b71edd70fcad670e99a9912ba5e55d77. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка b71edd70fcad670e99a9912ba5e55d77. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".– операция «исключающее ИЛИ»; биты нумеруются справа налево, начиная с младшего.

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

Однако, необходимо помнить, что данный алгоритм будет работать правильно, если компилятор реализует циклический логический сдвиг (стандарт языка C не уточняет тип сдвига). Тот же самый алгоритм, записанный на языке Паскаль:

Пример: преобразовать двоичное число 10110 в код Грея.

Преобразование кода Грея в двоичный код

Обратный алгоритм – преобразование кода Грея в двоичный код – можно выразить рекуррентной формулой

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 4faaf579368198a570e5b09627afaef9. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-4faaf579368198a570e5b09627afaef9. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 4faaf579368198a570e5b09627afaef9. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

причём преобразование осуществляется побитно, начиная со старших разрядов, и значение выберите верный код грея для двоичного кода 1001 это обязательный вопрос. f3c91d74501c217351b426236a83d5ce. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-f3c91d74501c217351b426236a83d5ce. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка f3c91d74501c217351b426236a83d5ce. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код"., используемое в формуле, вычисляется на предыдущем шаге алгоритма. Действительно, если подставить в эту формулу вышеприведённое выражение для i-го бита кода Грея, получим

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 872301de03311c90bf0b4fe487862b84. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-872301de03311c90bf0b4fe487862b84. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 872301de03311c90bf0b4fe487862b84. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Однако приведённый алгоритм, связанный с манипуляцией отдельными битами, неудобен для программной реализации, поэтому на практике используют видоизменённый алгоритм:

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 3942d7c9b975eb00f7d21707d91bdbfa. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-3942d7c9b975eb00f7d21707d91bdbfa. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 3942d7c9b975eb00f7d21707d91bdbfa. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

где N – число битов в коде Грея (для увеличения быстродействия алгоритма в качестве N можно взять номер старшего ненулевого бита кода Грея); знак выберите верный код грея для двоичного кода 1001 это обязательный вопрос. b71edd70fcad670e99a9912ba5e55d77. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-b71edd70fcad670e99a9912ba5e55d77. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка b71edd70fcad670e99a9912ba5e55d77. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".означает суммирование при помощи операции «исключающее ИЛИ», то есть

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 43fc02a397a4af3391922a5b474ecdd4. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-43fc02a397a4af3391922a5b474ecdd4. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 43fc02a397a4af3391922a5b474ecdd4. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Действительно, подставив в формулу выражение для i-го бита кода Грея, получим

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. cc3bcacd6301bffcd8ec28f57f8f1813. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-cc3bcacd6301bffcd8ec28f57f8f1813. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка cc3bcacd6301bffcd8ec28f57f8f1813. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код". выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 66d9f31d9bbe2f5019f7b675510fefae. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-66d9f31d9bbe2f5019f7b675510fefae. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 66d9f31d9bbe2f5019f7b675510fefae. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Здесь предполагается, что бит, выходящий за рамки разрядной сетки (выберите верный код грея для двоичного кода 1001 это обязательный вопрос. b1de401a0df7abe93d97699f3aa22886. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-b1de401a0df7abe93d97699f3aa22886. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка b1de401a0df7abe93d97699f3aa22886. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".), равен нулю.

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

Тот же самый алгоритм, записанный на языке Паскаль:

Пример: преобразовать код Грея 11101 в двоичный код.

Быстрое преобразование 8/16/24/32-разрядного значения кода Грея в двоичный код на языке BlitzBasic:

Простой способ преобразования двоичного числа в код Грея выполняется по правилу: старший разряд записывается без изменения, каждый следующий символ кода Грея нужно инвертировать, если в натуральном коде перед этим была получена «1», и оставить без изменения, если в натуральном коде был получен «0».

Генерация кодов Грея

Код Грея для n бит может быть рекурсивно построен на основе кода для n–1 бит путём переворачивания списка бит (то есть записыванием кодов в обратном порядке), конкатенации исходного и перевёрнутого списков, дописывания нулей в начало каждого кода в исходном списке и единиц — в начало кодов в перевёрнутом списке. Так, для генерации списка для n = 3 бит на основании кодов для двух бит необходимо выполнить следующие шаги:

Коды для n = 2 бит:00, 01, 11, 10
Перевёрнутый список кодов:10, 11, 01, 00
Объединённый список:00, 01, 11, 1010, 11, 01, 00
К начальному списку дописаны нули:000, 001, 011, 01010, 11, 01, 00
К перевёрнутому списку дописаны единицы:000, 001, 011, 010110, 111, 101, 100

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

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

Быстрое преобразование 8/16/24/32-разрядного бинарного кода в код Грея на языке BlitzBasic:

См. также

Примечания

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

Ссылки

Полезное

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

код Грея — Циклический двоичный код. [http://www.morepc.ru/dict/] Тематики информационные технологии в целом EN Gray code … Справочник технического переводчика

Код грея — 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 Код Грея, рефлексный двоичный код двоичная система нумерования, в… … Википедия

код Грея — Gray kodas statusas T sritis automatika atitikmenys: angl. Gray code vok. Gray Code, m rus. код Грея, m pranc. code de Gray, m ryšiai: sinonimas – Grėjaus kodas … Automatikos terminų žodynas

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

Код Джонсона — Код Джонсона двоичная система счисления, в которой два соседних значения различаются только в одном двоичном разряде. Принципы формирования кода Джонсона 1. Код Джонсона является кодом с избытком, то есть для числа разрядов больше 2 в коде… … Википедия

Код Грэя — 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 Код Грея, рефлексный двоичный код двоичная система нумерования, в… … Википедия

Преобразователь угол-код — Датчик угла Датчик угла или преобразователь угол код, также называемый энкодер устройство, предназначенное для преобразования угла поворота вращающегося объекта (вала) в электрические сигналы, позволяющие определить угол его поворота. Широко… … Википедия

рефлексный код — код Грея циклический код — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом Синонимы код Греяциклический код EN reflected code … Справочник технического переводчика

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

Источник

Код ГРЕЯ в многопозиционных видах модуляций

При многопозиционных видах модуляций (М-ФМн и М-КАМ) выбор положения символа в сигнальном созвездии влияет на вероятность битовой ошибки.

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. lazy placeholder. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-lazy placeholder. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка lazy placeholder. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Рассмотрим положение символов в сигнальном созвездии для четверичной фазовой модуляции. Для 4-ФМн каждый символ представляется 2 битами. Назначим каждому символу по часовой стрелке комбинацию бит в обычной двоичной системе счисления: <00; 01; 10; 11>.

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. lazy placeholder. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-lazy placeholder. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка lazy placeholder. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

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

Пример кодирования двоичного кода

Рассмотрим пример по рисунку выше. Пусть был передан символ S0, который кодирован битами <00>. Из-за воздействия шумов наиболее частой ошибкой будет прием символа S1 или S3, т.к. они расположены ближе, чем символ S2. Ошибочный прием символа S2 также будет, но такие ошибки будут происходить реже.

Если возникла ошибка, при которой был принят символ S1 <01>вместо S0 <00>, то будет потерян всего 1 бит информации, т.к. символ S1 отличается от символа S2 на один бит. Однако если возникла ошибка, при которой был принят символ S3 <11>, то будет потеряно уже 2 бита информации.

Возникает вопрос, можно ли символам назначить такие комбинации бит, чтобы любые два соседних символа отличались не более чем на один бит. Ответ на этот вопрос положительный – нужно воспользоваться кодом Грея.

Код Грея определение

В таблице ниже представлен код Грея для 2-х и 3-х бит.

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

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. lazy placeholder. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-lazy placeholder. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка lazy placeholder. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Если символы 4-ФМн закодировать кодом Грея, т.е. символам S0 S1 S2 S3 назначить комбинацию бит <00; 01; 10; 11>соответственно, то любые два соседних символа будут отличаться друг от друга не более чем на один бит. В этом случае, если произойдет любая ошибка, где будут перепутаны два соседних символа, будет потерян только один бит информации.

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. lazy placeholder. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-lazy placeholder. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка lazy placeholder. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

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

Если рассматривать созвездие амплитудно-фазовых модуляций, в том числе КАМ, то видно, что у каждого символа более двух соседей. В этом случае нельзя придумать такой код, при котором все близлежащие символы отличались бы только на один бит. Но и в этом случае играет большую роль, каким символам, какие кодовые комбинации назначаются. Те символы, которые расположены ближе всего друг к другу, должны отличаться на минимальное количество бит, в идеальном случае на один.

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. lazy placeholder. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-lazy placeholder. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка lazy placeholder. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Если невозможно сделать так, чтобы все соседи отличались на один бит, тогда допускается отличие на два бита, и т.д. Чем дальше символы в созвездии располагаются друг от друга, тем реже возникает ошибка, при которой эти символы будут перепутаны, следовательно, тем на большее количество бит они могут отличаться.

Задача назначения битовых комбинаций каждому символу в созвездии сводится к минимизации среднего количества битовых ошибок при фиксированном отношении сигнал/шум.

Источник

Выберите верный код грея для двоичного кода 1001 это обязательный вопрос

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

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

Содержание

[править] Название

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

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

[править] Применения

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

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 500px US02632058 Gray. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-500px US02632058 Gray. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 500px US02632058 Gray. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. magnify clip. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-magnify clip. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка magnify clip. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 220px Encoder Disc %283 Bit%29.svg. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-220px Encoder Disc %283 Bit%29.svg. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 220px Encoder Disc %283 Bit%29.svg. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. magnify clip. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-magnify clip. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка magnify clip. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

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

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

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

[править] Преобразование двоичного кода в код Грея

Коды Грея легко получаются из двоичных чисел путём побитовой операции «Исключающее ИЛИ» с тем же числом, сдвинутым вправо на один бит. Следовательно, i-й бит кода Грея G i выражается через биты двоичного кода B i следующим образом:

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. f43fcd63291c2b13dd6dbd5d65e398d8. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-f43fcd63291c2b13dd6dbd5d65e398d8. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка f43fcd63291c2b13dd6dbd5d65e398d8. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

где выберите верный код грея для двоичного кода 1001 это обязательный вопрос. b71edd70fcad670e99a9912ba5e55d77. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-b71edd70fcad670e99a9912ba5e55d77. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка b71edd70fcad670e99a9912ba5e55d77. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".– операция «исключающее ИЛИ»; биты нумеруются справа налево, начиная с младшего.

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

Однако, необходимо помнить, что данный алгоритм будет работать правильно, если компилятор реализует циклический логический сдвиг (стандарт языка C не уточняет тип сдвига). Тот же самый алгоритм, записанный на языке Паскаль:

Пример: преобразовать двоичное число 10110 в код Грея.

[править] Преобразование кода Грея в двоичный код

Обратный алгоритм – преобразование кода Грея в двоичный код – можно выразить рекуррентной формулой

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 4faaf579368198a570e5b09627afaef9. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-4faaf579368198a570e5b09627afaef9. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 4faaf579368198a570e5b09627afaef9. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

причём преобразование осуществляется побитно, начиная со старших разрядов, и значение выберите верный код грея для двоичного кода 1001 это обязательный вопрос. f3c91d74501c217351b426236a83d5ce. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-f3c91d74501c217351b426236a83d5ce. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка f3c91d74501c217351b426236a83d5ce. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код"., используемое в формуле, вычисляется на предыдущем шаге алгоритма. Действительно, если подставить в эту формулу вышеприведённое выражение для i-го бита кода Грея, получим

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 872301de03311c90bf0b4fe487862b84. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-872301de03311c90bf0b4fe487862b84. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 872301de03311c90bf0b4fe487862b84. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Однако приведённый алгоритм, связанный с манипуляцией отдельными битами, неудобен для программной реализации, поэтому на практике используют видоизменённый алгоритм:

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 3942d7c9b975eb00f7d21707d91bdbfa. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-3942d7c9b975eb00f7d21707d91bdbfa. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 3942d7c9b975eb00f7d21707d91bdbfa. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

где N – число битов в коде Грея (для увеличения быстродействия алгоритма в качестве N можно взять номер старшего ненулевого бита кода Грея); знак выберите верный код грея для двоичного кода 1001 это обязательный вопрос. b71edd70fcad670e99a9912ba5e55d77. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-b71edd70fcad670e99a9912ba5e55d77. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка b71edd70fcad670e99a9912ba5e55d77. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".означает суммирование при помощи операции «исключающее ИЛИ», то есть

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 43fc02a397a4af3391922a5b474ecdd4. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-43fc02a397a4af3391922a5b474ecdd4. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 43fc02a397a4af3391922a5b474ecdd4. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Действительно, подставив в формулу выражение для i-го бита кода Грея, получим

выберите верный код грея для двоичного кода 1001 это обязательный вопрос. cc3bcacd6301bffcd8ec28f57f8f1813. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-cc3bcacd6301bffcd8ec28f57f8f1813. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка cc3bcacd6301bffcd8ec28f57f8f1813. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код". выберите верный код грея для двоичного кода 1001 это обязательный вопрос. 66d9f31d9bbe2f5019f7b675510fefae. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-66d9f31d9bbe2f5019f7b675510fefae. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка 66d9f31d9bbe2f5019f7b675510fefae. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".

Здесь предполагается, что бит, выходящий за рамки разрядной сетки (выберите верный код грея для двоичного кода 1001 это обязательный вопрос. b1de401a0df7abe93d97699f3aa22886. выберите верный код грея для двоичного кода 1001 это обязательный вопрос фото. выберите верный код грея для двоичного кода 1001 это обязательный вопрос-b1de401a0df7abe93d97699f3aa22886. картинка выберите верный код грея для двоичного кода 1001 это обязательный вопрос. картинка b1de401a0df7abe93d97699f3aa22886. Код назван в честь Фрэнка Грея, который в 1947-ом году получил патент на "отражённый двоичный код".), равен нулю.

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

Тот же самый алгоритм, записанный на языке Паскаль:

Пример: преобразовать код Грея 11101 в двоичный код.

Быстрое преобразование 8/16/24/32-разрядного значения кода Грея в двоичный код на языке BlitzBasic:

Простой способ преобразования двоичного числа в код Грея выполняется по правилу: старший разряд записывается без изменения, каждый следующий символ кода Грея нужно инвертировать, если в натуральном коде перед этим была получена «1», и оставить без изменения, если в натуральном коде был получен «0».

[править] Генерация кодов Грея

Код Грея для n бит может быть рекурсивно построен на основе кода для n–1 бит путём переворачивания списка бит (то есть записыванием кодов в обратном порядке), конкатенации исходного и перевёрнутого списков, дописывания нулей в начало каждого кода в исходном списке и единиц — в начало кодов в перевёрнутом списке. Так, для генерации списка для n = 3 бит на основании кодов для двух бит необходимо выполнить следующие шаги:

Коды для n = 2 бит:00, 01, 11, 10
Перевёрнутый список кодов:10, 11, 01, 00
Объединённый список:00, 01, 11, 1010, 11, 01, 00
К начальному списку дописаны нули:000, 001, 011, 01010, 11, 01, 00
К перевёрнутому списку дописаны единицы:000, 001, 011, 010110, 111, 101, 100

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

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

Быстрое преобразование 8/16/24/32-разрядного бинарного кода в код Грея на языке BlitzBasic:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *