Добавил:
Факультет ИКСС, группа ИКВТ-61 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab_rab_8

.pdf
Скачиваний:
18
Добавлен:
20.11.2018
Размер:
413.02 Кб
Скачать

Практическая работа №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]

Единица в дополнительном разряде свидетельствует об однократной ошибке.

Синдром показывает наличие ошибки там, где её нет. Он не может её исправить.

Принятая кодовая комбинация будет исправлена неправильно.

Соседние файлы в предмете Математические Основы Теории Помехоустойчивого Кодирования