Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Совершенные и квазисовершенные коды

Групповой (m, n)-код, исправляющий все ошибки веса, не большего k, и никаких других, называется совершенным. Свойства совершенного кода:

1. Для совершенного (m, n)-кода, исправляющего все ошибки веса, не большего k, выполняется соотношениеВерно и обратное утверждение;

2. Совершенный код, исправляющий все ошибки веса, не большего k, в столбцах таблицы декодирования содержит все слова, отстоящие от кодовых на расстоянии, не большем k. Верно и обратное утверждение;

3. Таблица декодирования совершенного кода, исправляющего все ошибки в не более чем k позициях, имеет в качестве лидеров все строки, содержащие не более k единиц. Верно и обратное утверждение.

Совершенный код — это лучший код, обеспечивающий максимум минимального расстояния между кодовыми словами при минимуме длины кодовых слов. Совершенный код легко декодировать: каждому полученному слову однозначно ставится в соответствие ближайшее кодовое. Чисел m, n и удовлетворяющих условию совершенности кода очень мало. Но и при подобранных m, n и k совершенный код можно построить только в исключительных случаях.

Если m, n и k не удовлетворяют условию совершенности, то лучший групповой код, который им соответствует называется квазисовершенным, если он исправляет все ошибки кратности, не большей k, и некоторые ошибки кратности
k + 1. Квазисовершенных кодов также очень мало.

Двоичный блочный (m, n)-код называется оптимальным, если он минимизирует вероятность ошибочного декодирования. Совершенный или квазисовершенный код — оптимален. Общий способ построения оптимальных кодов пока неизвестен.

Для любого целого положительного числа r существует совершенный (m, n)-код, исправляющий одну ошибку, называемый кодом Хэмминга (Hamming), в котором m = 2r - r - 1 и n = 2r - 1.

Действительно,

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

1. Выбираем целое положительное число r. Сообщения будут словами длины т = 2r - r - 1, а кодовые слова — длины п = 2r - 1;

2. В каждом кодовом слове b = b1b2…bn r бит с индексами-степенями двойки (20, 21,..., 2r-1) — являются контрольными, остальные — в естественном порядке — битами сообщения. Например, если r = 4, то биты b1,b2,b4,b8 — контрольные, а— b3,b5,b6,b7, b9,b10,b11,b12 b13,b14,b15 из исходного сообщения;

3. Строится матрица М из 2r — 1 строк и r столбцов. В i -ой строке стоят цифры двоичного представления числа i. Матрицы для r = 2, 3 и 4 таковы:

4. Записывается система уравнений bM = 0, где M — матрица из предыдущего пункта. Система состоит из r уравнений. Например, для r = 3:

5. Чтобы закодировать сообщение a, берутся в качестве bj, j не равно степени двойки, соответствующие биты сообщения и отыскиваются, используя полученную систему уравнений, те bj, для которых j — степень двойки. В каждое уравнение входит только одно bj, j = 2i В выписанной системе b4 входит в 1-е уравнение, b2 — во второе и b1 — в третье. В рассмотренном примере сообщение a = 0111 будет закодировано кодовым словом b = 0001111.

Декодирование кода Хэмминга проходит по следующей схеме. Пусть принято слово b + e, где b — переданное кодовое слово, а e — строка ошибок. Так как
bM = 0, то (b + e)M = bM + eM = eM. Если результат нулевой, как происходит при правильной передаче, считается, что ошибок не было. Если строка ошибок имеет единицу в i-й позиции, то результатом произведения eM будет i-я строка матрицы M или двоичное представление числа i. В этом случае следует изменить символ в i-й позиции слова b + e, считая позиции слева, с единицы.

Пример. (4, 7)-код Хэмминга имеет в качестве одного из кодовых слов
b = 0001111. Матрица M7×3 приведена на шаге 3 хода построения кода Хэмминга. Ясно, что bM = 0. Добавим к b строку ошибок e = 0010000. Тогда b + e = 0011111 и (b + e)M = 011 = 310, т.е. ошибка находится в третьей позиции. Если e = 0000001, то b + e = 0001110 и позиция ошибки — (b+e)M = 111 = 710 и т.п. Если ошибка допущена в более чем в одной позиции, то декодирование даст неверный результат.

Код Хэмминга — это групповой код.

Это следует из того, что (m, n)-код Хэмминга можно получить матричным кодированием, при помощи m × n -матрицы, в которой столбцы с номерами не степенями 2 образуют единичную подматрицу. Остальные столбцы соответствуют уравнениям шага 4 построения кода Хэмминга, т. е. 1-му столбцу соответствует уравнение для вычисления 1-го контрольного разряда, 2-му — для 2-го, 4-му — для 4-го и т.д. Такая матрица будет при кодировании копировать биты сообщения в позиции не степени 2 кода и заполнять другие позиции кода согласно схеме кодирования Хэмминга.

Пример. Кодирующая матрица для (4, 7)-кода Хэмминга —

Ее столбцы с номерами 3, 5, 6 и 7 образуют единичную подматрицу. Столбцы с номерами 1, 2 и 4 соответствуют уравнениям для вычисления контрольных бит, например, уравнению b1 = b3 + b5 + b7 соответствует столбец 1101, т.е. для вычисления первого контрольного разряда берутся 1, 2 и 4 биты исходного сообщения или биты 3, 5 и 7 кода.

К (m, n)-коду Хэмминга можно добавить проверку четности. Получится
(m, n + 1)-код с наименьшим весом ненулевого кодового слова 4, способный исправлять одну и обнаруживать две ошибки.

Коды Хэмминга накладывают ограничения на длину слов сообщения: эта длина может быть только числами вида 2r − r − 1: 1, 4, 11, 26, 57,... Но в реальных системах информация передается байтам или машинными словами, т.е. порциями по 8, 16, 32 или 64 бита, что делает использование совершенных кодов не всегда подходящим. Поэтому в таких случаях часто используются квазисовершенные коды.

Квазисовершенные (m, n)-коды, исправляющие одну ошибку, строятся следующим образом. Выбирается минимальное n так, чтобы

Каждое кодовое слово такого кода будет содержать k = п - т контрольных разрядов. Из предыдущих соотношений следует, что

Каждому из n разрядов присваивается слева-направо номер от 1 до n. Для заданного слова сообщения составляются k контрольных сумм S1,..., Sk по модулю 2 значений специально выбранных разрядов кодового слова, которые помещаются в позиции-степени 2 в нем: для Si выбираются разряды, содержащие биты исходного сообщения, двоичные числа-номера которых имеют в i -м разряде единицу. Для суммы S1 это будут, например, разряды 3, 5, 7 и т.д., для суммы S2 — 3, 6, 7 и т.д. Таким образом, для слова сообщения a = a1...am будет построено кодовое словоОбозначим сумму по модулю 2 разрядов полученного слова, соответствующих контрольной сумме Si и самой этой контрольной суммы. Если то считается, что передача прошла без ошибок. В случае одинарной ошибкибудет равно двоичному числу-номеру сбойного бита. В случае ошибки, кратности большей 1, когда ее можно обнаружить. Подобная схема декодирования не позволяет исправлять некоторые двойные ошибки, чего можно было бы достичь, используя схему декодирования с лидерами, но последняя значительно сложнее в реализации и дает незначительное улучшение качества кода.

Пример построения кодового слова квазисовершенного (9, n)-кода, исправляющего все однократные ошибки, для сообщения 100011010.

Искомое кодовое слово имеет вид Далее нужно вычислить контрольные суммы.

Таким образом, искомый код — 0011000111010. Если в процессе передачи этого кода будет испорчен его пятый бит, то приемник получит код 0011100111010. Для его декодирования опять вычисляются контрольные суммы:

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

Совершенный код Хэмминга также можно строить по рассмотренной схеме, т.к. для него 2n/(n + 1) = 2m.

Для исправление одинарной ошибки к 8-разрядному коду достаточно приписать 4 разряда (212/13 > 28), к 16-разрядному — 5, к 32-разрядному — 6, к 64-разрядному — 7.

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


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


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



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




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