Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция 7

Коды Хемминга

 

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

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

Наибольшее распространение получили две модели кода Хемминга: код с обнаружением и исправлением одиночной ошибки (минимальное кодовое расстояние d = 3) и код с исправлением одиночной ошибки и обнаружением двойной (d = 4).

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

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

Установить, на каких позициях кодовой комбинации следует разместить контрольные символы и какие позиции займут информационные символы.

Собрав макет кодовой комбинации, определить значение каждого контрольного символа.

Составить кодовые комбинации, включающие как контрольные, так и информационные символы.

Дать алгоритм проверок, позволяющий установить наличие и место ошибки.

Синтез кода с d = 3

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

Первая задача.

Определить число контрольных символов nк.

Для этого, если задано n или nи , необходимо воспользоваться соответственно формулами

(1)

, (2)

где ] b [ - знак округления до ближайшего большего целого числа.

Вторая задача.

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

Контрольные символы должны составить двоичное число (синдром ошибки), которое бы указывало номер ошибочной позиции.

В результате первой частной проверки на четность получается символ первого (младшего) разряда синдрома, в результате второй проверки - символ второго и т. д.

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

 

Десят-й эквив-т Синдром ошибки
   

 

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

В первой проверке должны участвовать те позиции, которые содержат единицу в младшем разряде. Исходя из табл. 1, это будут 1, 3, 5, 9,.....

В второй проверке должны участвовать те позиции, которые содержат единицу во втором разряде. По табл. 1, это будут 2, 3, 6, 7,.....

В третьей проверке должны участвовать 4, 5, 6, 7,.... позиции.

 

 

В результате получим таблицу 2.

 

Номер проверки Номера поз-й, охватыв-х этой проверкой
Первая          
Вторая          
Третья          

 

Анализируя таблицу 2 можно заключить, что контрольные символы Кm должны размещаться на следующих позициях: К1 на позиции 1, т.е. 20;

К2 на позиции 2, т.е. 21; К3 на позиции 4, т.е. 22; К4 на позиции 8, т.е. 23;

Кm на позиции 2m.

Третья задача.

Определить значение контрольных символов. Составляется макет кода Хемминга. Пусть nи =4, nк = 3, n = 7. Тогда в общем виде он выглядит следующим образом:

Номера позиций 1 2 3 4 5 6 7

Символы К1 К2 И3 К3 И2 И1 И0,

где Иi - информационные символы.

Алгоритм определения контрольных символов

Определение значения К1. Составляется сумма по модулю 2 всех символов, включая и К1, размещенных на позициях 1, 3, 5, 7, 9,..., охватываемых первой проверкой, т.е.

К1 Å И3 Å И2 Å И0. (3)

Значение символа К1 определяется из условия обращения суммы (3) в нуль, т.е. из условия четности. Если число единиц (без К1) нечетное, то К1=1, если четное, то К1=0.

Определение значения К2. Составляется сумма по модулю 2 всех символов, включая и К1, размещенных на позициях, охватываемых второй проверкой, т.е.

К2 Å И3 Å И1 Å И0. (4)

Значение символа К2 определяется из условия обращения суммы (4) в нуль, т.е. из условия четности. Если число единиц (без К2) нечетное, то К2=1, если четное, то К2=0.

Определение значения К3. Составляется сумма по модулю 2 всех символов, включая и К3, размещенных на позициях, охватываемых третьей проверкой т.е.

К3 Å И2 Å И1 Å И0. (5)

Символ К3 одолжен обращать в нуль двоичную сумму (5).

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

Четвертая задача.

Составить кодовые комбинации. Для этого надо выписать все комбинации исходного безызбыточного двоичного кода и, пользуясь макетом кодового слова, а так же вычисленными на основании сумм (3), (4), (5) и так далее значениями контрольных символов Кm, записать все n и комбинаций кода Хемминга.

Что касается пятой задачи - разработки алгоритма проверок, то она будет рассмотрена ниже, так как относится к декодированию кода Хемминга.

Рассмотрим пример синтеза кода Хемминга.

Пусть имеется ансамбль из 16 сообщений и его необходимо закодировать кодом Хемминга (d = 3).

Решение:

1) определяем число контрольных символов. Поскольку задан ансамбль сообщений N и = 16, то задано число информационных символов nи =lb16=4. Следовательно необходимо пользоваться формулой

Таким образом, nк = 3, n = nи + nк = 4 + 3 = 7.

2) определяем позиции, на которых должны быть размещены эти три контрольных символа. Это будут позиции 1, 2 и 4 (см. таб. 2).

3) составляем таблицу комбинаций двоичного безызбыточного кода, не заполняя первую, вторую и четвертую графы. Всего комбинаций будет 16 (табл. 3).

4) находим значения контрольных символов:

для нулевой комбинации все Кj=0.

Для символа К1.

Значение символа К1 определяется из уравнения

 

К1 Å И3 Å И2 Å И0 =0.

а) К1 = 0

б) К1 Å 0 Å 0 Å 1 =0; К1 = 1

в) К1 Å 0 Å 0 Å 0 =0; К1 = 0

г) К1 Å 0 Å 1 Å 0 =0; К1 = 1

д) К1 Å 0 Å 1 Å 0 =0; К1 = 1

е) К1 Å 0 Å 1 Å 1 =0; К1 = 0

Таблица 3.

Комби Номера               Допол
нация п/п К1 К2 И3 К3 И2 И1 И0 Кдоп
а б в г д е                    

 

Для символа К2.

Значение символа К2 определяется из уравнения

 

К2 Å И3 Å И1 Å И0 =0.

а) К2 = 0

б) К2 Å 0 Å 0 Å 1 =0; К2 = 1

в) К2 Å 0 Å 1 Å 0 =0; К2 = 1

г) К2 Å 0 Å 1 Å 1 =0; К2 = 0

д) К2 Å 0 Å 0 Å 0 =0; К2 = 0

е) К2 Å 0 Å 0 Å 1 =0; К2 = 1

Для символа К3.

Значение символа К3 определяется из уравнения

 

К3 Å И2 Å И1 Å И0 =0.

а) К3 = 0

б) К3 Å 0 Å 0 Å 1 =0; К3 = 1

в) К3 Å 0 Å 1 Å 0 =0; К3 = 1

г) К3 Å 0 Å 1 Å 1 =0; К3 = 0

д) К3 Å 1 Å 0 Å 0 =0; К3 = 1

е) К3 Å 1 Å 0 Å 1 =0; К3 = 0

Проставляем значение контрольных символов в табл. 3. Код синтезирован. Поставленная задача решена. (Студенту предлагается в порядке упражнения самостоятельно завершить заполнение табл. 3).

На примере полученного кода Хемминга с d = 3 можно показать, как строится код Хемминга с d = 4, ïîçâîëÿþùèé îáíàðóæèâàòü äâóхêðàòíûå îшибки. Число контрольных символов в таком коде должно быть на единицу больше, т.е. для рассматриваемого примера nк = 3 + 1 = 4, следовательно, код будет восьмипозиционный.

Принцип получения такого кода следующий:

* к каждой кодовой комбинации добавляется еще один дополнительный контрольный символ, позволяющий осуществить общую проверку на четность;

* значение дополнительного контрольного символа определяется исходя из наличия в каждой комбинации кода Хемминга (т.е. учитывая и контрольные символы) четного числа единиц. Таким образом, в нашей табл. 3 появляется еще одна графа Кдоп;

* заполняем эту графу, т.е. определяем значение контрольных символов и размещаем их на последней (восьмой) кодовой позиции:

а) Кдоп = 0

б) Кдоп = 0

в) Кдоп = 1

г) Кдоп = 1

д) Кдоп = 1

е) Кдоп = 1

 

 

 

<== предыдущая лекция | следующая лекция ==>
 | 
Поделиться с друзьями:


Дата добавления: 2014-12-16; Просмотров: 288; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.153 сек.