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]
Единица в дополнительном разряде свидетельствует об однократной ошибке.
Синдром показывает наличие ошибки там, где её нет. Он не может её исправить.
Принятая кодовая комбинация будет исправлена неправильно.
