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

4 курс / Руслан / MOII-PZ_2

.pdf
Скачиваний:
3
Добавлен:
18.08.2022
Размер:
289.15 Кб
Скачать

Практическое занятие №2.

Применение кодов Хемминга для кодирования информации

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

1. Общие сведения Основу современной теории кодирования составляют два направления,

непосредственно связанные с теоремами Шеннона. Первое из них вытекает из теоремы кодирования для канала без помех, называется кодированием источника (сжатием сообщений) и заключается в статическом согласовании источника с каналом. Коды, используемые для этого, принято называть первичными. Задача статического согласования источника и канала особенно важна для источников с большой избыточностью. Это имеет место чаще всего для источников непрерывных сообщений: при телефонии, телеметрии, телевидении. Однако методы статического согласования таких источников оказываются весьма сложными и вследствие этого используются довольно редко. Для дискретных источников данная задача не представляет особого интереса, так как они не обладают большой избыточностью.

Второе направление следует из теоремы кодирования Шеннона для канала с помехами и носит название помехоустойчивого кодирования. Его задачей является повышение верности передаваемых сообщений с помощью целенаправленного введения избыточности в процессе преобразования информации. В результате избыточность кодовых комбинаций оказывается больше избыточности источника. Однако именно она способствует обнаружению и исправлению ошибок при передаче сообщений по каналам связи с помехами.

Коды делятся на блочные и непрерывные. Блочными принято называть такие коды, в которых знаки сообщения от источника однозначно отображаются (преобразуются) в некоторую конечную дискретную последовательность, или блок кодовых символов, называемых кодовой комбинацией. В непрерывных кодах в процессе кодирования деления на отдельные блоки не производится. Здесь кодовые символы определяются всей последовательностью знаков сообщения.

Для блочных кодов немаловажное значение имеет понятие длины кодовой комбинации, для двоичных кодов, в частности, она определяется

1

числом символов "0" и "1", входящих в кодовый блок. Если длина всех комбинаций одинакова, то код называют равномерным, в противном случае код является неравномерным. Простейшими примерами являются неравномерный код Морзе.

Код Хемминга – это блочный код, позволяющий исправлять одиночные и фиксировать двойные ошибки. Идея кодов Хемминга заключается в разбиении данных на блоки фиксированной длины и вводе в эти блоки контрольных бит, дополняющих до четности несколько пересекающихся групп, охватывающих все биты блока. Ричард Хемминг рассчитал минимальное количество проверочных бит, позволяющих однозначно исправлять однократные ошибки.

Если для информационных данных длиной m подобрать такое количество контрольных бит k, что максимально возможное количество различных последовательностей длиной m+k будет больше или равно максимальному количеству различных закодированных информационных блоков, содержащих не больше одной ошибки, то точно можно утверждать, что существует такой метод кодирования информационных данных с помощью k контрольных бит, который гарантирует исправление однократной ошибки.

k=2k– m – 1

(1)

Так как количество бит должно быть целым числом, то k, вычисленное с помощью этого уравнения, необходимо округлить до ближайшего большего целого числа.

Пример:

Таким образом, k лежит в диапазоне от 3 до 4. Ближайшим большим целым числом будет 4.

Все биты, порядковые номера которых являются степенью двойки, – это контрольные разряды. То есть если порядковый номер бита обозначить

2

символом ‘n’, то для контрольных бит должно быть справедливо равенство: n=2k, где k – любое положительное целое число.

Например, для закодированной последовательности длиной 13 бит проверочными будут: 1, 2, 4 и 8 биты, так как 20 = 1, 21 = 2, 22 = 4, 23 = 8.

Для корректировки однократной ошибки необходимо определить позицию бита как сумму номеров контрольных битов, в которых была обнаружена ошибка.

2. Порядок выполнения работы 2.1.Выполнить первоначальное кодирование текстовой строки сообщения в

последовательность числовых значений. Для кодирования использовать таблицу ASCII символов (рисунок П.1, приложение 1). Результат кодирование представить в виде таблицы 1.

Таблица 1

Символ

Код ASCII

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

 

 

 

2.2. Разбить последовательность числовых значений на блоки по 16 бит. Результат кодирование представить в виде таблицы 2. Двоичный код должен быть разбит на тетрады (0101.0101.0010.0001).

Таблица 2

№ блока Бинарный код

1.

2.3.Определить количество проверочных битов k для m=16 (использовать уравнение 1) и их позиции в закодированном сообщении. Результат представить в виде таблицы 3. В позиции проверочных битов записать 0. Проверочные биты выделить цветом.

Таблица 3

№ блока Бинарный код

1.

2.4.Для каждого блока рассчитать значения проверочных битов. Результат представить в виде таблиц 4-5.

3

Таблица 4

1 2

Кол-во единиц

Бит четности

Таблица 5

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

 

 

 

 

 

 

 

 

Исходная кодовая последовательность

 

 

 

 

 

 

 

1

X

 

X

 

X

 

X

 

X

 

X

 

X

 

X

 

X

 

X

 

X

2

 

X

X

 

 

X

X

 

 

X

X

 

 

X

X

 

 

X

X

 

 

4

 

 

 

X

X

X

X

 

 

 

 

X

X

X

X

 

 

 

 

X

X

8

 

 

 

 

 

 

 

X

X

X

X

X

X

X

X

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

X

X

X

X

X

 

 

 

 

 

 

 

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

 

 

 

 

 

 

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

В соответствии с заданием определить номер блока и номер бита с ошибкой. Составить таблицу с расчетом контрольных битов для указанного блока (по аналогии с таблицей 5).

2.6.Составить сравнительную таблицу переданных контрольных бит и результата п.2.5. Выделить несовпадающие биты.

2.7.Рассчитать номер бита с ошибкой. Проверить на совпадение этого номера

с заданием.

3.Требования к оформлению результатов работы В отчет заносятся:

1. Цели и задачи работы.

2. Промежуточные результаты и таблицы 1-5.

3. Выводы по работе

4

4. Задание для выполнения практической работы

Текст для кодирования

П.2.5-2.7

варианта

 

Номер блока с

Номер бита с

 

 

ошибкой

ошибкой

1.

ABCD1213

1

3

2.

EFGH9067

2

5

3.

IJKL5634

3

7

4.

MNOP2387

4

9

5.

QRST4512

1

10

6.

UVWX8854

2

11

7.

WZQA6731

3

12

8.

ASZX9066

4

13

9.

DFGH6421

1

14

10.

JKHG8547

2

18

Приложение 1

Рисунок П.1 – Таблица ASCII символов

5

Соседние файлы в папке Руслан