lab_rab_8
.pdfПрактическая работа №8 “Код Хэмминга”
Выполнил студент группы ИКВТ-61 Козырев А. Б.
Задание 8.3.1
Известно, что матрица G в систематической форме состоит из двух подматриц: Единичной матрицы I11 и проверочной матрицы P размера 11x4
1 1 0 0 |1 0 0 0 0 0 0 0 0 0 0| 0 1 1 0 |0 1 0 0 0 0 0 0 0 0 0| 0 0 1 1 |0 0 1 0 0 0 0 0 0 0 0| 1 1 0 1 |0 0 0 1 0 0 0 0 0 0 0| 1 0 1 0 |0 0 0 0 1 0 0 0 0 0 0|
11×15 = 0 1 0 1 |0 0 0 0 0 1 0 0 0 0 0| 1 1 1 0 |0 0 0 0 0 0 1 0 0 0 0|
0 1 1 1 |0 0 0 0 0 0 0 1 0 0 0| 1 1 1 1 |0 0 0 0 0 0 0 0 1 0 0| 1 0 1 1 |0 0 0 0 0 0 0 0 0 1 0| [1 0 0 1 |0 0 0 0 0 0 0 0 0 0 1|]
Таким образом,
|
1 1 0 0 |
|
0 1 1 0 |
|
0 0 1 1 |
|
1 1 0 1 |
|
1 0 1 0 |
|
11×4 = 0 1 0 1 |
|
1 1 1 0 |
|
0 1 1 1 |
|
1 1 1 1 |
|
1 0 1 1 |
|
[1 0 0 1 ] |
|
1 0 0 1 1 0 1 0 1 1 1 |
|
= [1 1 0 1 0 1 1 1 1 0 0] |
11×4 |
0 1 1 0 1 0 1 1 1 1 0 |
|
|
|
0 0 1 1 0 1 0 1 1 1 1 |
Далее, известно что:
Поэтому:
(15,11)
1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 011 = 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 [0 0 0 0 0 0 0 0 0 0 1]
= 0
4×15 = ( 4| 11×4)
1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
= [0 1 0 0 1 1 0 1 0 1 1 1 1 0 0] 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 0 0
0 1 1 0
0 0 1 1
= 1 1 0 1
(15,11)
1 0 1 0
0 1 0 1
1 1 1 0
0 1 1 1
1 1 1 1
1 0 1 1 [1 0 0 1]
Задание 8.3.2
Имеем информационный вектор (кодовое слово):
= [1 0 1 1 0 0 0 0 0 1 1]
Закодированное слово (код) будет:
= ∙ G(15,11)
Таким образом:
1 1 0 0 1 0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 1 0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 1 0 0 0 0 0 0 0 0
1 1 0 1 0 0 0 1 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 1 0 0 0 0 0 0= [1 0 1 1 0 0 0 0 0 1 1] ∙ 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 =
1 1 1 0 0 0 0 0 0 0 1 0 0 0 0
0 1 1 1 0 0 0 0 0 0 0 1 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0 1 0 0
1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 [1 0 0 1 0 0 0 0 0 0 0 0 0 0 1]
= [0 0 0 0 1 0 1 1 0 0 0 0 0 1 1]
Таким образом:
= [0 0 0 0 1 0 1 1 0 0 0 0 0 1 1]
Задание 8.3.3
1 = [0 0 0 0 0 0 0 0 1 0 0 0 0 0 0]
2 = [0 0 1 0 0 0 0 0 1 0 0 0 0 0 0]
3 = [0 0 1 0 0 0 0 0 1 0 1 0 0 0 0]
(1) = [0 0 0 0 1 0 1 1 1 0 0 0 0 1 1]
(2) = [0 0 1 0 1 0 1 1 1 0 0 0 0 1 1]
(3) = [0 0 1 0 1 0 1 1 1 0 1 0 0 1 1]
Декодируем:
Вычислим вектор синдромов по формуле:
= r ∙ HT
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 0 0
0 1 1 0
0 0 1 1(1) = [0 0 0 0 1 0 1 1 1 0 0 0 0 1 1] ∙ 1 1 0 1 = [1 0 1 0 ]
1 0 1 0
0 1 0 1
1 1 1 0
0 1 1 1
1 1 1 1
1 0 1 1 [1 0 0 1]
Таким образом, ошибка наличествует в 9-й позиции принятой кодовой комбинации.
= (1) + [0 0 0 0 0 0 0 0 1 0 0 0 0 0 0]
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 0 0
0 1 1 0
0 0 1 1(2) = [0 0 1 0 1 0 1 1 1 0 0 0 0 1 1] ∙ 1 1 0 1 = [1 0 0 0 ]
1 0 1 0
0 1 0 1
1 1 1 0
0 1 1 1
1 1 1 1
1 0 1 1 [1 0 0 1]
Таким образом, синдром показывает наличие ошибки, но не может её исправить.
Принятая кодовая комбинация будет исправлена неправильно.
′ = [1 0 1 0 1 0 1 1 1 0 0 0 0 1 1]
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 0 0
0 1 1 0
0 0 1 1(3) = [0 0 1 0 1 0 1 1 1 0 1 0 0 1 1] ∙ 1 1 0 1 = [0 1 1 0 ]
1 0 1 0
0 1 0 1
1 1 1 0
0 1 1 1
1 1 1 1
1 0 1 1 [1 0 0 1]
Таким образом, синдром показывает наличие ошибки, но не может её исправить.
Принятая кодовая комбинация будет исправлена неправильно.
′ = [0 0 1 0 1 1 1 1 1 0 1 0 0 1 1]
Задание 8.3.4
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
(16,11) = 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 [0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1]
|
|
1 0 0 0 0 |
|
|
1 1 0 0 0 |
|
|
1 0 1 0 0 |
|
|
1 0 0 1 0 |
|
|
1 0 0 0 1 |
|
|
1 1 1 0 0 |
|
|
1 0 1 1 0 |
|
= |
1 0 0 1 1 |
(16,11) |
1 1 1 0 1 |
|
|
|
1 1 0 1 0
1 0 1 0 1
1 1 1 1 0
1 0 1 1 1
1 1 1 1 1
1 1 0 1 1 [1 1 0 0 1]
Закодируем информационный вектор согласно коду Хэмминга (16, 11)
̃ = [̃ 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1]
0
Где добавочный элемент расширенного кода является разрядом проверки на четность:
14
̃0 = ∑ = 1
=0
Таким образом:
̃ = [1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1]
При синдромном декодировании:
̃= r̆ ∙ H16,11T
Вектор синдрома имеет вид:
̃= ( ̃, , , , |
) = ( ̃, ) |
||||
0 |
0 |
1 |
2 |
3 |
0 |
Таким образом
̃(1) = [1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1]̃(2) = [1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 1]̃(3) = [1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1]
Найдём синдромы:
1 0 0 0 0
1 1 0 0 0
1 0 1 0 0
1 0 0 1 0
1 0 0 0 1
1 1 1 0 0
1 0 1 1 0
̃(1) = [1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1] ∙ 1 0 0 1 1 = [1 1 0 1 0 ] 1 1 1 0 1
1 1 0 1 0
1 0 1 0 1
1 1 1 1 0
1 0 1 1 1
1 1 1 1 1
1 1 0 1 1 [1 1 0 0 1]
Единица в дополнительном разряде свидетельствует об однократной ошибке.
Сама ошибка полностью характеризуется прежним синдромом s(1).
Исправление:
̃ = ̆(1) + [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0]
|
1 0 0 0 0 |
|
|
1 1 0 0 0 |
|
|
1 0 1 0 0 |
|
|
1 0 0 1 0 |
|
|
1 0 0 0 1 |
|
|
1 1 1 0 0 |
|
|
1 0 1 1 0 |
|
̃(2) = [1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 1] ∙ |
1 0 0 1 1 |
= [0 1 0 0 0 ] |
|
1 1 1 0 1 |
|
1 1 0 1 0
1 0 1 0 1
1 1 1 1 0
1 0 1 1 1
1 1 1 1 1
1 1 0 1 1 [1 1 0 0 1]
Так как ̃ = 0, а (2) ≠ 0 ,следовательно, обнаружена неисправимая
0
ошибка.
Выполним последнюю процедуру.
1 0 0 0 0
1 1 0 0 0
1 0 1 0 0
1 0 0 1 0
1 0 0 0 1
1 1 1 0 0
1 0 1 1 0
̃(3) = [1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1] ∙ 1 0 0 1 1 = [1 0 1 1 0 ] 1 1 1 0 1
1 1 0 1 0
1 0 1 0 1
1 1 1 1 0
1 0 1 1 1
1 1 1 1 1
1 1 0 1 1 [1 1 0 0 1]
Единица в дополнительном разряде свидетельствует об однократной ошибке.
Синдром показывает наличие ошибки там, где её нет. Он не может её исправить.
Принятая кодовая комбинация будет исправлена неправильно.