Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
145
Добавлен:
15.06.2014
Размер:
72.19 Кб
Скачать

Омский государственный технический университет

Кафедра «Автоматизированные системы обработки информации и управления»

Отчет

по лабораторной работе №2

«Исследование процессов кодирования и декодирования при передаче дискретных сообщений кодами Хэмминга»

Выполнил:

студент гр. Ас-330

Юдин Е.Б.

Проверил:

Юдин Е.Б.

Омск-2002

Задание к лабораторной работе:

1. Определить длину информационной i , длину проверочной k последовательности кода и формируем код Хэмминга.

2. Построить порождающую матрицу кода. 3. Построить проверочные матрицы кода в модифицированном (с проверкой на четность) виде. 4. Сформировать системы проверочных и синдромных уравнений. 5. Сформировать кодовое слово исследуемого кода, ввести одиночную ошибку и показать ее исправление путем вычисления синдрома. 6. Показать на примере, что код не гарантирует обнаружение тройных ошибок.

7. Произвести первичное декодирование принятого сообщения, закодированного кодом Хэмминга. При этом осуществить обнаружение и исправление ошибок в кодовых словах, используя методику исправления с вычислением синдрома.

Результаты выполнения работы

1. Определяем длину информационного i и длину проверочного к последовательного кода и формируем код Хэмминга.

Нам дана длина кода – n. Информационные и проверочные биты определим из соотношения:

2к > i+k (1)

Т.к. длина кода n=7, а длину информационного кода возьмем равную i=4, то согласно соотношению (1) количество проверочных бит k=n-i, k=3:

23 > 4+3.

Код (7,4,3).

Формируем код Хэмминга: k1 k2 i3 k4 i5 i6 i7 (проверочные биты стоят на местах: 20, 21, 22, 23 и т.д.):

1. 00001

2. 00010

3. 00011 00001 k1 = i3 i5 i7

4. 00100 00010  k2 = i3 i6 i7

5. 00101 00100 k4 = i5 i6 i7

6. 00110

7. 00111

2. Кодом Хэмминга называется (n,k)-код, проверочная матрица которого имеет i = n-k строк и 2i-1 столбцов, причем столбцами являются все различные ненулевые последовательности. Столбец Р – проверка на четность. Строим порождающую матрицу кода, которая состоит из единичной матрицы Ii, содержащей информационные биты и прямоугольной матрицы Ki,k, составленной из проверочных битов:

G =

3. Построим проверочную матрицу.

Проверочная матрица имеет вид H(n,i)=|Ki,kT, Ii|; где Ii - единичная матрица;

Ki,kT - прямоугольная матрица в транспонированном виде матрицы Ki,k из порождающей матрицы. Проверочная матрица любого кода Хэмминга всегда содержит минимум три линейно зависимых столбца.

В нашем случае H(8,4)=|K4,4T, I4|: K4,4T =

Отсюда получаем проверочную матрицу вида:

H =

4. Сформируем системы проверочных и синдромных уравнений. Для этого умножим единичную матрицу I8,8 на транспонированную проверочную матрицу H8,4,получим:

=

5. Сформируем кодовое слово исследуемого кода, введем одиночную ошибку и покажем ее исправление путем вычисления синдрома. Произведение любого кодового слова G1 на транспонированную проверочную матрицу дает нулевой вектор размерности (n-i): Gi·Hn,iT =[00...]

Возьмем любой код из порождающей матрицы G, умножим на HT и проверим на наличие ошибки:

=

Как видно из полученного результата - ошибки нет.

Произведение некоторого кодового слова Gi', т.е. с ошибкой, на транспонированную проверочную матрицу называется синдромом и обозначается Si: Gi'·H(n, k)T= Si.

Пусть переданное кодовое слово G=00101010, а принятое слово - G'=00100010. Синдром, соответствующий принятому слову будет равен S=G'·H(8,4)T=[1000]. Вычисленный синдром указывает на ошибку в пятой позиции. Покажем это:

= 1000

6. Код Хэмминга позволяет выявить только одну ошибку.

Показать на примере, что код не гарантирует обнаружение тройных ошибок.

Пусть передано кодовое слово 10001111. Сделаем три ошибки и получим код 10100101. Проверим его:

= 0000

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

7. Произвести первичное декодирование принятого сообщения, закодированного кодом Хэмминга. При этом осуществить обнаружение и исправление ошибок в кодовых словах, используя методику исправления с вычислением синдрома. Возьмем произвольный информационный код: i = 0110.

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

Ki,k =  k = 0110

Полученный код имеет вид:

Декодирование означает исключение проверочных битов. Получим код 0110.

Проверим наш код на наличие ошибок:

= 0000

Вычисленный синдром показывает на то, что код ошибки не содержит.

Введем ошибку и проверим ее при помощи матрицы синдромных уравнений:

= 1010

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

0

Соседние файлы в папке лабораторная 6