Материал: Кодировка

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Цель работы: изучение алгоритма корректирующих кодов Хемминга для поиска и исправления ошибок в передаче сообщений, закодированных в двоичном коде.

1 Исходные данные:

Исходные данные представлены в таблице 1. Вариант № 6

Таблица 1  Исходные данные

2.1 Первоначальное кодирование

Кодирование текста представлено в таблице 2.1

Таблица 2.1 – Кодирование текста

Символ

Код

Бинарное представление

U

85

0101.0101

V

86

0101.0110

W

87

0101.0111

X

88

0101.1000

8

56

0011.1000

8

56

0011.1000

5

53

0011.0101

4

52

0011.0100

2.2 Создание блоков

Исходный текст необходимо разбить на блоки по 16 бит и закодировать. Для этого я проведу группировку по 2 символа, как показано в таблице 2.2.1

Таблица 2.2.1 - Блоки

Блоки

Символы

1

UV

2

WX

3

88

4

54

В таблице 2.2.2 представлены закодированные блоки

Таблица 2.2.2 – Закодированные блоки

Номер блока

Бинарный код

1

0101.0101.0101.0110

2

0101.0111.0101.1000

3

0011.1000.0011.1000

4

0011.0101.0011.0100

2.3 Определение количества проверочных битов и из позиций в коде

Количество проверочных битов определяется по формуле (1), представленной ниже.

k = 2k – m – 1, где (1)

k – количество битов;

m – количество символов.

k = 2k – 16 – 1 = 2k – 17.

Методом подбора получаем следующую систему неравенств:

Таким образом, k лежит в диапазоне от 4 до 5. Ближайшим большим целым числом будет 5. Порядковый номер бита n вычисляется по формуле (2), изображенной ниже.

n = 2k, где (2)

k – любое положительно число.

В данном случае порядковые номера проверочных битов будут равны 1, 2, 4, 8 и 16.

В таблице 2.3 представлены бинарные коды с уже вставленными поверочными битами

Таблица 2.3  бинарные коды с уже вставленными поверочными битами

Номер бока

Бинарный код

1

0000101.00101.01001.0110

2

0000101.00111.01001.1000

3

0000011.01000.00101.1000

4

0000011.00101.00101.0100

2.4 Расчет значений проверочных битов

Расчет проверочных битов проводится с помощью таблицы кодировки, изображенной на рисунке 2.4.1

Рисунок 2.4.1  Таблица кодировки

Значения проверочных битов кода для каждого блока представлены в таблицах 2.4.1, 2.4.2, 2.4.3, 2.4.4 соответственно.

Таблица 2.4.1 – Значения проверочных битов в блоке №1

 

1

2

4

8

16

Количество единиц

4

4

5

3

3

Бит четности

0

0

1

1

1

Таблица 2.4.2  Значения проверочных битов в блоке №2

 

1

2

4

8

16

Количество единиц

4

5

4

4

2

Бит четности

0

1

0

0

0

Таблица 2.4.3  Значения проверочных битов в блоке №3

 

1

2

4

8

16

Количество единиц

4

4

3

2

2

Бит четности

0

0

1

0

0

Таблица 2.4.4  Значения проверочных битов в блоке №4

 

1

2

4

8

16

Количество единиц

4

5

4

3

2

Бит четности

0

1

0

1

0

2.5 Кодовая последовательность с контрольными битами

Кодовая последовательность с контрольными битами для каждого блока представлена в таблицах 2.5.1, 2.5.2, 2.5.3, 2.5.4 соответственно.

3 Декодирование и исправление ошибок

Для нахождения местоположения ошибки необходимо заново провести процедуру кодирования и сравнить результаты. Отталкиваясь от исходных данных необходимо проверить второй блок. В таблицах 3.1 и 3.2 представлены кодовая последовательность с проверочными битами и их значения соответственно.

Таблица 3.1 – Значения контрольных битов

 

1

2

4

8

16

Количество единиц

3

4

4

3

2

Бит четности

1

0

0

1

0

Сравнивая таблицы 3.1 и 2.4.2, можно заметить, что первый, второй и восьмой биты различаются, следовательно, их сумма указывает на местоположение ошибки: 1 + 2 + 8 = 11.

Вывод: в ходе выполнения данного практического задания был изучен метод кодирования с применением кодов Хемминга.

Источник: https://studfile.net/preview/16683006/