Теория кодирования

Министерство  образования и науки Российской Федерации

Южно-Уральский  Государственный университет

Приборостроительный факультет

Кафедра Автоматики и Управления

 

 

 

 

 

 

 

 

РЕФЕРАТ

 

На тему: «Теория кодирования»

По дисциплине: «Общая теория связи»

 

    

 

 

 

 

 

 

СОСТАВИЛ

Студент группы ПС-317

____________ Коченгин  А.Е 

 

 

ПРОВЕРИЛА

                        Барбасова Т.А 

«___»_________ 2013г.

 

 

 

 

 

 

 

 

 

Челябинск – 2013

 

Содержание

 

1.Основные понятия и  определения теории кодирования………………….3

2. Двоичный код на  все сочетания…………………………………………......4

3. Единично-десятичный код…………………………………………………...4

4. Двоично-десятичный код…………………………………………………......5  5.Число-импульсный код………………………………………………………..8

6. Код Морзе……………………………………………………………………….8

7.Код Бодо………………………………………………………………………...11

8 . Международный телефонный  код………………………………………....12

9. Код Грэя………………………………………………………………………..14

3. ПОМЕХОЗАЩИЩЕННЫЕ КОДЫ

3.1 Основные понятия…………………………………………………………...16

3.2 Коды с обнаружением  ошибок……………………………………………...20

3.3Коды с постоянным  числом единиц и нулей в  комбинациях…………..23

3.4.Распределительный  код……………………………………………………..25

3.5. Код с проверкой на четность…………………………………………….....25

3.6. Код с числом единиц кратным  трем……………………………………....28

3.7. Код с удвоением элементов(корреляционный  код)…………………......28

3.8. Инверсный код………………………………………………………………..29

3.9. Код Хэмминга………………………………………………………………....30

3.10. Циклические коды………………………………………………………….36

3.11. Итеративные коды………………………………………………………….43

 

 

 

1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ  ТЕОРИИ КОДИРОВАНИЯ

Код — это набор условных обозначений (или сигналов) для записи (или передачи) некоторых заранее определенных понятий.

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

Обычно каждый образ при кодировании (иногда говорят — шифровке) представлении  отдельным знаком.

Знак - это элемент конечного множества отличных друг от друга элементов.

Знак вместе с его смыслом  называют символом.

Набор знаков, в котором определен  их порядок, называется алфавитом. Существует множество алфавитов:

  • алфавит кириллических букв {А, Б, В, Г, Д, Е, ...}
  • алфавит латинских букв {А, В, С, D, Е, F,...}
  • алфавит десятичных цифр{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
  • алфавит знаков зодиака {картинки знаков зодиака} и др.

Особенно большое значение имеют  наборы, состоящие всего из двух знаков:

  • пара знаков {+, -}
  • пара цифр {0, 1}
  • пара ответов {да, нет}

Алфавит, состоящий из двух знаков, называется двоичным алфавитом. Двоичный знак (англ. binary digit) получил название «бит».

Шифрование - кодирование сообщения отправителя, но такое чтобы оно было не понятно несанкционированному пользователю.

Длиной кода называется такое количество знаков, которое  используется при кодировании.

Количество символов в алфавите кодирования и длина кода - совершенно разные вещи. Например, в русском  алфавите 33 буквы, а слова могут  быть длиной в 1, 2, 3 и т.д. буквы.

Код может быть постоянной и непостоянной длины. Коды различной (непостоянной) длины  в технике используются довольно редко. Исключением является лишь троичный код Морзе. В вычислительной технике  в настоящее время широко используется двоичное кодирование с алфавитом (0, 1). Наиболее распространенными кодами являются ASCII (American standart code for information interchange - американский стандартный код для обмена информацией) и КОИ-8 (код обмена информации длиной 8 бит).

2. Двоичный код на все сочетания

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

Например, комбинации 0010 и 0011 отличаются друг от друга лишь в младшем разряде. Если помеха исказит первую комбинацию, то будет принят сигнал 0011 и будет  принят сигнал и будет неясно, то ли пришла первая искаженная комбинация, то ли принята вторая неискаженная. Можно найти еще целый ряд  комбинаций в том же коде, которые  отличаются друг от друга только в  одном разряде. Комбинации 0101 и 0111 - в 2-ом разряде комбинации 1110 и 0110 - в 4ом разряде и т.д. Есть различия в  двух и больше разрядах, например, комбинации 1111 и 0001. Есть для каждой комбинации соседние комбинации, отличающиеся на один разряд: для 1111 имеем 0111, 1110, 1101, 1011. Все это делает двоичный код на все сочетания непомехозащищенным. Непомехоустойчивым или непомехозащищенным кодом называется код, в котором  искажение одного разряда кодовой  комбинации не может быть обнаружено. Иногда эти коды называются обыкновенными  кодами. Рассмотрим примеры двоичных непомехозащищенных кодов.

Двоичный код на все  сочетания - код полностью выражающийся двоичной системой счисления. Общее число комбинаций N = 2n.

3. Единично-десятичный код

Единично-десятичный код предусматривает передачу разрядов десятичных цифр соответствующим количеством единиц. 

Недостатком единично-десятичного кода является его информационная неэкономичность. Так, например, при двухразрядном единично-десятичном коде необходимо передать 18 элементов кода и при этом на один элемент приходится приблизительно 5 значений измеряемой величины. Информационная неэкономичность кода приводит к увеличению времени передачи измерительной информации.

Важным  преимуществом единично-десятичного кода является упрощение приемника с цифровой формой отчета или регистрации.

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

11 111 1111 – 234

111 11111 11 – 352

 

Например, в первой строке записано число 234, при  записи равномерным кодом оно  примет вид

0000000011 00000000111 0000001111

 

4. Двоично-десятичный код

Для представления информации в  десятичной системе счисления и  выполнения операций над десятичными  числами в цифровых устройствах  используется двоично-десятичное кодирование, при котором каждая десятичная цифра представляется группой двоичных цифр. Число битов в таких группах строго фиксируется (их должно быть не менее четырех) с сохранением всех левых нулевых разрядов. В практике используется несколько разновидностей двоично-десятичных кодов (табл. 1.2), сохраняющих свое значение благодаря полезным специфическим особенностям.

Таблица 1.2

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

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

Одни из них код 2421 также взвешенный, но старший разряд имеет вес не 8, а 2. Его положительная особенность  состоит в том, что замена в  кодирующей тетраде нулей на единицы, а единиц на нули превращает каждую десятичную цифру х в 9-х, т. е. получается обратный код. Для превращения его в дополнительный код достаточно прибавить единицу. Коды с таким свойством называют самодополнительными. Они применяются при выполнении арифметических операций над десятичными числами в обратном или дополнительном коде.

Самодополнительным является и  код с избытком 3, который получается прибавлением  к каждой цифре кода прямого замещения. Как и код 2421, он удобен для выполнения операций над десятичными числами. При этом легко определяется перенос, так как сумма двух слагаемых, каждое из которых берется с избытком 3, получится с избытком 6, что исключает лишние кодовые комбинации (для получения правильного кода суммы из полученного результата вычитается 3). Но этот код в отличие от кодов 8421 и 2421 не является взвешенным, вследствие чего мало удобен для преобразования чисел из одной системы в другую.

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

Так, в коде 2 из 5 каждая десятичная цифра представляется пятью разрядами, из которых два и только два  содержат единицы. Если появится ошибка в одном из двоичных разрядов, т. е. если нуль превратится в единицу  или единица превратится в  нуль, то общее число единиц окажется больше или меньше двух, что можно  обнаружить простым их подсчетом. Другой способ обнаружения одиночной ошибки основан на использовании бита, которым  дополняется какой-либо код, для  контроля четности. Значение дополнительного  бита выбирается таким, чтобы общее  число единиц в кодирующей группе всегда было четным или нечетным (в  зависимости от принятого правила  контроля). Рассмотренные способы  обнаруживают одиночные ошибки, точнее, нечетное количество ошибок, по не реагируют  на двойные и вообще четное количество ошибок. Существуют более сложные  способы построения корректирующих кодов, используемых в технике связи, но в обычных вычислительных системах из-за громоздкости они не применяются.

Операции над десятичными числами  выполняются с помощью несколько  дополненной двоичной арифметики. Так, при сложении двух чисел в коде прямого замещения 8421 необходимо добавить корректирующее слагаемое  к каждой тетраде, в которой в процессе суммирования получена недопустимая цифра (1010, 1011, 1100, 1101, 1110) или возник перенос в следующую тетраду. Например:

При вычитании чисел в коде 8421 коррекция сводится к вычитанию  , из каждой тетрады разности, которая потребовала заем. Например:

5. Число-импульсный код

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

00000 - пример пятиразрядного кода. Очевидно N = n

10000

11000

11100

11110

11111

В цифро-аналоговых преобразователях используют число-импульсный код, в котором число импульсов равно изображаемому числу. Так как передача число-импульсного кода по каналу связи занимает много времени, то обычно информация во всех частях системы выражается в виде двоичного или двоично-десятичного кодов и только в цифро-аналоговых преобразователях двоичный код преобразуется в число-импульсный. Преобразование число-импульсного кода в двоичный выполняется двоичным счетчиком.

6. Код Морзе

Относится к числу неравномерных кодов, в которых кодовые комбинации отличаются различной длительностью. В коде Морзе сигналы (буквы и  цифры, условные знаки) передаются в  виде точек и тире. Точка может  быть записана как 1 и передаваться одним импульсом. Тире записывается тремя строчными импульсами (без  интервала между ними). Интервал между точкой и тире означает нули. Одна кодовая комбинация (буква или  цифра) отдельна от другой интервалом из совокупности трех нулей. Если длительности 1 и 0 одинакова и равны τ, то самая  короткая комбинация (буква Е) по продолжительности  равна 4τ, а самая длительная - 22 τ (цифра 0). В среднем длина кодовой  комбинации равна примерно 9, 5τ.

Различная длина кодовых комбинаций при  передаче букв и цифр

А - 10111 (· - ) является недостатком кода Морзе, впервые

Н - 11101 ( - ·) примененного в 1844 году.

С - 10101 (· · ·)

Т - 111 (-)

1 - 1011101110111 (· - - - )

5 - 101010101 (· · · · ·)

Азбука Морзе – CW от continuous wave - незатухающая волна

Азбука Морзе, код Морзе, «Морзянка» — способ кодирования букв алфавита, цифр, знаков препинания и других символов при помощи длинных и коротких сигналов, так называемых «тире» и «точек» (а также пауз, разделяющих буквы). За единицу времени принимается длительность одной точки. Длительность тире равна трём точкам. Пауза между знаками в букве — одна точка, между буквами в слове — 3 точки, между словами — 7 точек.  
Была названа в честь американского изобретателя Сэмюеля Морзе, который изобрёл её в 1838.  
Если же говорить о самой телеграфной азбуке (системе кодировки символов короткими и длинными посылками для передачи их по линиям связи, известная как «код Морзе» или «морзянка»), которую применяют сейчас, существенно отличается от той, что изобрел в 1838 г. С.Морзе, хотя некоторые исследователи полагают, что ее автором был Альфред Вейль — партнер Сэмюеля Морзе по бизнесу. Надо заметить, что исходная таблица «кода Морзе» разительно отличалась от тех кодов, что сегодня звучат на любительских диапазонах. В ней, во-первых, использовались посылки трех разных длительностей («точка», «тире» и «длинное тире» — в 4 раза длиннее «точки»). Во-вторых, некоторые символы имели паузы внутри своих кодов.  
Азбука Морзе является первым цифровым способом передачи информации. Телеграф и радиотелеграф первоначально использовали азбуку Морзе; позже стали применяться код Бодо и ASCII, которые более удобны для автоматизации. Впрочем, сейчас и для азбуки Морзе есть средства автоматической генерации и распознавания.  
Для передачи русских букв использовались коды сходных латинских букв; это соответствие алфавитов позже перешло в МТК-2, а потом в КОИ-7 и КОИ-8 (однако в азбуке Морзе букве Q соответствует Щ, а в МТК и КОИ — Я).  
достоинство кода:  
- высокая помехозащищенность при приеме на слух в условиях сильных радиопомех;  
- возможность кодирования вручную;  
- запись и воспроизведение сигналов простейшими устройствами.  
недостатки кода:  
- неэкономичность, на передачу одного знака кода требуется в среднем 9,5 элементарных посылок;  
- малая пригодность для буквопечатающего приема;  
- низкая скорость телеграфирования

В 2004 Международный союз электросвязи (МСЭ) ввёл в азбуку Морзе новый  код для символа @, для удобства передачи адресов электронной почты.

На практике вместо заучивания количества точек и тире и их последовательности запоминают так называемый «напев» (мнемоническую словесную форму), соответствующий каждому знаку  кода Морзе. При этом слоги, в состав которых входят гласные а, о, ы, соответствуют  тире, а все остальные слоги  и слог ай — точке.  
A A • − ай-даа  
Б B − • • • баа-ки-те-кут  
В W • − − ви-даа-лаа  
Г G − − • гаа-раа-жи  
Д D − • • доо-ми-ки  
Е E • есть  
Ж V • • • − же-ле-зи-стоо  
З Z − − • • заа-каа-ти-ки  
И I • • и-ди  
Й J • − − − йес-на па-ра  
К K − • − как же так?  
Л L • − • • лу-наа-ти-ки  
М M − − маа-маа  
H N − • ноо-мер  
О O − − − оо-коо-лоо  
П P • − − • пи-лаа-поо-ёт  
P R • − • ре-шаа-ет  
С S • • • си-ни-е  
Т T − таак  
У U • • − у-нес-лоо  
Ф F • • − • фи-ли-моон-чик  
Х H • • • • хи-ми-чи-те  
Ц C − • − • цаа-пли-наа-ши  
Ч ö − − − • чаа-шаа-тоо-нет  
Ш ch − − − − шаа-роо-ваа-рыы  
Щ Q − − • − щаа-ваам-не-шаа  
Ь X − • • − тоо-мяг-кий-знаак  
Ы Y − • − − ыы-не-наа-доо  
Э é • • − • • э-ле-роо-ни-ки  
Ю ü • • − − ю-ли-аа-наа  
Я ä • − • − я-маал-я-маал  
1 • − − − − и-тоо-лькоо-оо-днаа  
2 • • − − − два не-хоо-роо-шоо  
3 • • • − − три те-бе-маа-лоо  
4 • • • • − че-тве-ри-те-каа  
5 • • • • • пя-ти-ле-ти-е  
6 − • • • • поо-шес-ти бе-ри  
7 − − • • • даа-даа-се-ме-ри  
8 − − − • • воо-сьмоо-гоо-и-ди  
9 − − − − • ноо-наа-ноо-наа-ми  
0 − − − − − нооль-тоо-оо-коо-лоо  
Точка • • • • • •  
Запятая • − • − • −  
/ − • • − • доо-ми-ки ноо-мер  
? • • − − • • у-не-слоо доо-ми-ки  
! − − • • − −  
Знак раздела − • • • − раа-зде-ли-те-каа  
Ошибка/перебой • • • • • • • • хи-ми-чи-те хи-ми-чи-те  
@ • − − • − •

Аббревиатуры  
Часто для ускорения радиообмена используются аббревиатуры и специальные «Q-коды».  
73 - наилучшие пожелания.  
55 - рукопожатие.  
88 - люблю, целую.  
99 - не желаю с Вами работать.

SOS  
Сигнал SOS запрещается подавать, если нет неминуемой угрозы для жизни людей или судна на море. SOS подаётся без пауз между буквами: «• • • − − − • • • »(три точки, три тире, три точки), то есть как одна длинная буква. Хотя часто считается, что SOS является аббревиатурой от «Save our souls» (спасите наши души) или «Save our ship» (спасите наш корабль), на самом деле он был выбран из-за простоты передачи, к тому же передаётся не так как все аббревиатуры (отдельными буквами), а единой буквой.

Сигналы CW являются первичными электрическими сигналами, представляющими телеграфное  сообщение в коде Морзе. Применяются  в основном в диапазоне частот от 3 до 30 МГц с АМ (амплитудной  модуляцией) и реже с FSK (частотной  модуляцией). С ручными методами телеграфирования распространены методы передачи с помощью трансмиттера, позволяющего повысить скорость передачи до 300 знаков/мин и исключить искажения знаков, возникающие за счет субъективных особенностей работы операторов. При ручном телеграфировании могут применяться специальные телеграфные ключи различных вариантов и синтезаторы «точек» и «тире», обеспечивающие повышенную скорость и качество передачи знаков. 

1 элемент      1               точка

3 элемента    111           тире

1 элемент      0               раздел между элементами знака

3 элемента    000           раздел между знакаи

7 элементов  0000000  раздел между  словами

7. Код Бодо

Равномерный пятиэлементный телеграфный код. Максимальное число комбинаций

N=25=32

Код Бодо передается без разделительных знаков

А - 10000

Б - 00110

В - 01101

Г - 01010

Код Бодо́ (назван в честь Жана Мориса Эмиля Бодо, 1845 − 1903) — цифровой, первоначально синхронный,пятибитный код. Позже он стал международным стандартом CCITT-1. На его основе был разработан код CCITT-2, ставший стандартом в телеграфии. Первоначальный код (позже International Telegraph Alphabet No. 1(ITA1), CCITT-1) разработал Эмиль Бодо 1870 для своего телеграфа. Код вводился прямо клавиатурой, состоящей из пяти клавиш, нажатие или ненажатие клавиши соответствовало передаче или непередаче одного бита в пятибитном коде. Максимальная скорость передачи — 180 знаков в минуту.

 

Оригинальный код Бодо

Управляющие символы

o. ...

пробел, перейти к таблице букв

.o ...

пробел, перейти к таблице цифр

oo ...

удалить последний знак

   

таблица букв

   

таблица цифр

.. o..

A

 

oo o..

K

   

.. o..

1

 

o. o..

.

.. oo.

É

 

oo oo.

L

   

.. .o.

2

 

o. .o.

9/

.. .o.

E

 

oo .o.

M

   

.. ..o

3

 

o. ..o

7/

.. .oo

I

 

oo .oo

N

   

.. o.o

4

 

o. o.o

2/

.. ooo

O

 

oo ooo

P

   

.. ooo

5

 

o. ooo

'

.. o.o

U

 

oo o.o

Q

   

.. oo.

1/

 

o. oo.

:

.. ..o

Y

 

oo ..o

R

   

.. .oo

3/

 

o. .oo

?

   

.o ..o

B

 

o. ..o

S

   

.o o..

6

 

oo o..

(

.o o.o

C

 

o. o.o

T

   

.o .o.

7

 

oo .o.

)

.o ooo

D

 

o. ooo

V

   

.o ..o

8

 

oo ..o

-

.o .oo

F

 

o. .oo

W

   

.o o.o

9

 

oo o.o

/

.o .o.

G

 

o. .o.

X

   

.o ooo

0

 

oo ooo

+

.o oo.

H

 

o. oo.

Z

   

.o oo.

4/

 

oo oo.

=

.o o..

J

 

o. o..

   

.o .oo

5/

 

oo .oo

£






В 1901 Donald Murray переработал код, изменил порядок знаков и добавил некоторые дополнительные знаки. Это было связано с изобретением клавиатуры для телеграфного аппарата. Теперь порядок кодов был не связан с требованиями удобства оператора, и они были переупорядочены, чтобы минимизировать износ оборудования при переключениях. Общие принципы — пятибитная кодировка и использование буквенного и цифрового регистров — остались неизменными. Модификация нового кода была принята в 1932 как стандарт ITA2 или CCITT-2.

В СССР была принята модификация CCITT-2 с дополнительным регистром для кириллицы — МТК-2.

 

8 . Международный телефонный код

Для того, чтобы позвонить по телефону в другую страну, обычно, сначала  надо набрать префикс выхода на международную  линию (в России это 8 10). Затем нужно набрать международный код той страны, в которую вы хотите позвонить, и местный телефонный номер.

Телефо́нный пла́н нумера́ции — система, позволяющая пользователям телефонов совершать и принимать междугородные и международные телефонные звонки. Код зоны нумерации (называемый ABC для географически определяемой зоны нумерации или DEF — для географически не определяемой зоны нумерации) — 3 десятичных знака для Российской Федерации: — та часть телефонного номера, которая указывает междугородный узел связи. Телефонными планами нумерации коды зон присваиваются междугородным узлам связи, так что звонящий абонент может связаться с телефонами за пределами своего местного узла связи. Обычно код зоны, находящийся перед номером, соответствует определённому географическому местоположению.

Различают открытые и закрытые планы нумерации.

При открытом плане нумерации местное телефонное соединение устанавливается набором только местного номера без набора национального номера.

При закрытом плане нумерации набор национального номера необходим для телефонного соединения любого вида — местного, внутризонового, междугороднего.

Международный союз электросвязи отдаёт предпочтение закрытому плану нумерации. В соответствии с приказом Мининформсвязи, в 2008 году Россия должна была полностью перейти на закрытый план нумерации[1]. Однако до настоящего времени (январь 2013) этого не произошло.

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

Хотя Международный союз электросвязи (ITU) пытается сделать так, чтобы по всему миру были внедрены единые стандарты доступа к международной и междугородной связи, до сих пор в разных странах существуют различные способы доступа к внезоновым звонкам. Например, ITU рекомендует, чтобы для международного доступа использовался код 00. Однако эти рекомендации действуют не во всех государствах. Например, США и Канада используют Североамериканский план нумерации со своими правилами. Россия также использует свой способ доступа (через «восьмёрку»).

Международный план нумерации устанавливает телефонные коды стран, то есть коды, определяющие целые страны или группы стран. Стандарт E.164 регулирует телефонные коды стран на международном уровне и устанавливает максимальную длину полного международного телефонного номера. Каждая страна сама устанавливает нумерацию внутри своей телефонной сети. В результате, региональные коды зон могут иметь:

    • фиксированную длину, например, 3 цифры в США и Канаде, 1 цифру в Австралии;
    • переменную длину, например, от 2 до 5 цифр в Германии и Австрии, от 1 до 3 цифр в Японии, 1 или 2 цифры в Израиле, от 3 до 6 цифр в России;
    • либо могут быть включены прямо в номер абонента, как, например, в Испании или Норвегии — это называется «закрытый» план нумерации. В некоторых случаях необходимо всегда набирать и код выхода на междугородную станцию (обычно 0): так происходит в Бельгии, Швейцарии, ЮАР.

Обычно коды зон определяют и  стоимость звонка. Звонки внутри своей  зоны или небольшой группы соседних или перекрывающих друг друга  зон стоят намного меньше звонков  за пределы такой зоны или группы зон. Кроме того, существуют специальные  коды зон для бесплатных и платных звонков, для звонков в сотовые сети связи. Существуют также исключения: в некоторых странах (например, в Израиле) звонки тарифицируются по одной стоимости независимо от того, куда звонит абонент, а в других (например, в Великобритании) код зоны обычно делится на две части с разной стоимостью.

9. Код Грэя

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

Цифра

Прямой код

Код Грея

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


 

Как видно, коды лексикографически (в данном случае, по значению) упорядоченных цифр 1 и 2 в случае кода Грея различаются  одним двоичным разрядом, а прямые коды этих же цифр – двумя разрядами. Аналогичную картину можно наблюдать  в случае пар цифр 3 и 4; 5 и 6; 7 и 8.

Для формирования кода Грея можно использовать следующую  последовательность действий:

Шаг 1) код Грея для 0 и 1 равен 0и 12, соответственно;

Шаг 2) для построения кодов Грея для десятичных чисел 2 и 3 построим таблицу, в которой для нумерации строк и столбцов использованы коды Грея для чисел 0 и 1 (обозначение строк и столбцов выделены серым фоном):

 

 

номера столбцов

0

1

номера

строк

0

0

1

1

3

2


 

В ячейках  таблицы размещены кодируемые десятичные числа, включая и уже закодированные 0 и 1. Стрелки показывают направление  перемещения по ячейкам для формирования кода одного из чисел (само число указано  в ячейке). Тогда код Грея для  произвольного числа, размещенного в некоторой ячейке, формируется  как номер строки и номер столбца  для этой ячейки. Так, код Грея для  числа 3 – это 102, а для числа 2 – 112. Поскольку код Грея имеет постоянную длину, сформированные ранее коды для чисел 0 и 1 пополняются незначащими нулями, т.е. код Грея для 0 – это 002, а для 1 – это 012;

Шаг 3) получив коды Грея для четырех десятичных чисел, используем их в качестве номеров строк и столбцов, чтобы сформировать кодовые комбинации для первых шестнадцати десятичных цифр:

 

 

00

01

11

10

00

0

1

2

3

01

7

6

5

4

11

8

9

10

11

10

15

14

13

12


 

Так, например, для получения кода числа 9 выписывают обозначения строки и столбца: соответственно, 11 и 01. Тогда получаем код: для числа 15 кодом будет комбинация 1000, для  числа 11 – 1110 и т.д.

Поскольку переход  от числа 15 к 0 также является одношаговым (эти числа имеют коды, соответственно, 1000 и 0000), построенный код называют также циклически одношаговым;

Шаг 4) для формирования кода Грея для множества последовательных натуральных чисел, начинающихся с нуля, в количестве 2строят таблицу размером mxm и нумеруют строки и столбцы в соответствии с кодами Грея, построенными на предыдущих этапах для m чисел. Получают коды Грея в соответствии с рассмотренными схемами.