Автор работы: Пользователь скрыл имя, 15 Января 2014 в 17:12, реферат
Код Хэмминга – систематический код, то есть состоящий из информационных и корректирующих символов, расположенных по строго определенной системе, имеющих одинаковую длину и всегда занимающих строго определенные места в кодовых комбинациях.
Предложенные Хэммингом регулярные методы построения кодов, корректирующих ошибки, имеют фундаментальное значение. Они демонстрируют инженерам практическую возможность достижения пределов, на которую указывали законы теории информации.
1. Значение кода Хемминга.
2. Код Хемминга.
3. Принцип построения кодов Хемминга.
4. Применение.
5.Литература.
№ разряда: |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
Контроль по четности в группе |
Контрольный бит |
Контроль по четности в целом |
Контрольный бит в целом |
Распределение контрольных и информационных разрядов |
p1 |
p2 |
d1 |
p3 |
d2 |
d3 |
d4 |
p4 |
d5 |
d6 |
d7 |
||||
Переданное кодовое слово: |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
||||
Принятое кодовое слово: |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
||||
p1 |
1 |
0 |
1 |
0 |
1 |
1 |
Pass |
0 |
|||||||
p2 |
0 |
0 |
1 |
0 |
0 |
1 |
Pass |
0 |
|||||||
p3 |
0 |
1 |
1 |
0 |
Pass |
0 |
|||||||||
p4 |
0 |
1 |
0 |
1 |
Pass |
0 |
1 |
Pass |
p4 |
p3 |
p2 |
p1 |
||
В двоичном представлении |
0 |
0 |
0 |
0 |
|
В десятичном представлении |
Σ = 0 |
2. В принятом коде в
целом количество единиц
№ разряда: |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
Контроль по четности в группе |
Контрольный бит |
Контроль по четности в целом |
Контрольный бит в целом |
Распределение контрольных и информационных разрядов |
p1 |
p2 |
d1 |
p3 |
d2 |
d3 |
d4 |
p4 |
d5 |
d6 |
d7 |
||||
Переданное кодовое слово: |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
||||
Принятое кодовое слово: |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
||||
p1 |
1 |
0 |
1 |
0 |
1 |
1 |
Pass |
0 |
|||||||
p2 |
0 |
0 |
1 |
0 |
0 |
1 |
Pass |
0 |
|||||||
p3 |
0 |
1 |
1 |
0 |
Pass |
0 |
|||||||||
p4 |
0 |
1 |
0 |
1 |
Pass |
0 |
0 |
Fail |
p4 |
p3 |
p2 |
p1 |
||
В двоичном представлении |
0 |
0 |
0 |
0 |
|
В десятичном представлении |
Σ = 0 |
3. В принятом коде в
целом и в некоторых из
№ разряда: |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
Контроль по четности в группе |
Контрольный бит |
Контроль по четности в целом |
Контрольный бит в целом |
Распределение контрольных и информационных разрядов |
p1 |
p2 |
d1 |
p3 |
d2 |
d3 |
d4 |
p4 |
d5 |
d6 |
d7 |
||||
Переданное кодовое слово : |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
||||
Принятое кодовое слово: |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
||||
p1 |
1 |
0 |
1 |
0 |
1 |
0 |
Fail |
1 |
|||||||
p2 |
0 |
0 |
1 |
0 |
0 |
0 |
Fail |
1 |
|||||||
p3 |
0 |
1 |
1 |
0 |
Pass |
0 |
|||||||||
p4 |
0 |
1 |
0 |
0 |
Fail |
1 |
1 |
Fail |
p4 |
p3 |
p2 |
p1 |
||
В двоичном представлении |
1 |
0 |
1 |
1 |
|
В десятичном представлении |
8 |
2 |
1 |
Σ = 11 |
Из таблицы следует, что ошибка произошла в 11-м разряде и что её можно исправить.
4. В принятом коде в целом
количество единиц четно, но
в некоторых контрольных
№ разряда: |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
Контроль по четности в группе |
Контрольный бит |
Контроль по четности в целом |
Контрольный бит в целом |
Распределение контрольных и информационных разрядов |
p1 |
p2 |
d1 |
p3 |
d2 |
d3 |
d4 |
p4 |
d5 |
d6 |
d7 |
||||
Переданное кодовое слово: |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
||||
Принятое кодовое слово: |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
||||
p1 |
1 |
1 |
1 |
0 |
1 |
1 |
Fail |
1 |
|||||||
p2 |
0 |
1 |
0 |
0 |
0 |
1 |
Pass |
0 |
|||||||
p3 |
0 |
1 |
0 |
0 |
Fail |
1 |
|||||||||
p4 |
0 |
1 |
0 |
1 |
Pass |
0 |
1 |
Pass |
p4 |
p3 |
p2 |
p1 |
||
В двоичном представлении |
0 |
1 |
0 |
1 |
|
В десятичном представлении |
4 |
1 |
Σ = 5 |
Раз получившаяся сумма не равна нулю, а контрольный бит указывает на ошибку передачи, то обнаруживаем двойную ошибку. Исправление двойных ошибок здесь, конечно, невозможно.
Увеличивая дальше количество контрольных разрядов, можно было бы построить коды, рассчитанные на исправление двойных ошибок и обнаружение тройных и т.д. Однако методы построения этих кодов не вполне разработаны.
3. Принцип построения кодов Хемминга.
Построение кодов Хемминга базируется на принципе проверки на
четность веса W (числа единичных символов) в информационной груп-
пе кодового блока.
Поясним идею проверки
на четность на примере
ректирующего кода, который так и называется кодом с проверкой на
четность или кодом с проверкой по паритету (равенству).
В таком коде
к кодовым комбинациям
двоичного k-разрядного кода добавляется один дополнительный разряд
(символ проверки на четность, называемый проверочным, или конт-
рольным). Если число символов 1 исходной кодовой комбинации чет-
ное, то в дополнительном разряде формируют контрольный символ 0, а
если число символов 1 нечетное, то в дополнительном разряде форми-
руют символ 1. В результате общее число символов 1 в любой переда-
ваемой кодовой комбинации всегда будет четным.
Таким образом,
правило формирования
дится к следующему:
r1 = i1 ⊕ i2 ⊕ ... ⊕ ik ,
где i – соответствующий информационный символ (0 или 1); k – общее
их число а под операцией "⊕" здесь и далее понимается сложение по
mod 2. Очевидно, что добавление
дополнительного разряда
ет общее число возможных комбинаций вдвое по сравнению с числом
комбинаций исходного первичного кода, а условие четности разделяет
все комбинации на разрешенные и неразрешенные. Код с проверкой на
четность позволяет
вой комбинации, так как такая ошибка нарушает условие четности, пе-
реводя разрешенную комбинацию в запрещенную.
Критерием правильности принятой комбинации является равенство
нулю результата S суммирования по mod 2 всех n символов кода, вклю-
чая проверочный символ r1. При наличии одиночной ошибки S прини-
мает значение 1:
S = r1 ⊕ i1 ⊕ i2 ⊕ ... ⊕ ik = 0 – ошибки нет,
n
Этот код является (k +1, k)-кодом, или (n, n–1)-кодом. Минимальное
расстояние кода равно двум (dmin = 2), и, следовательно, никакие ошиб-
ки не могут быть исправлены. Простой код с проверкой на четность
может использоваться только для обнаружения (но не исправления) од-
нократных ошибок.
Увеличивая число
дополнительных проверочных
руя по определенным правилам проверочные символы r, равные 0 или
1, можно усилить корректирующие свойства кода так, чтобы он позво-
лял не только обнаруживать, но и исправлять ошибки. На этом и осно-
вано построение кодов Хемминга.
Коды Хемминга
позволяют исправлять
непосредственного описания. Для каждого числа проверочных символов
r = 3, 4, 5… существует классический код Хемминга с маркировкой
(n, k) = (2r–1, 2r–1 – r) , (3.20)
т. е. (7,4), (15,11), (31,26) …
При других
значениях числа
чаются так называемые усеченные (укороченные) коды Хемминга.
Так, для Международного телеграфного кода МТК-2 , имеющего
5 информационных символов,
потребуется использование
тирующего кода (9,5), являющегося усеченным от классического кода
Хемминга (15,11), так как число символов в этом коде уменьшается
(укорачивается) на 6.
4.Применение.
Код Хэмминга используется в некоторых прикладных программах в области хранения данных, особенно в RAID 2; кроме того, метод Хемминга давно применяется в памяти типа ECC и позволяет "на лету" исправлять однократные и обнаруживать двукратные ошибки.
Литература: