Помехоустойчивое кодирование. 2
Федеральное агентство по образованию
Государственное образовательное учреждение высшего
профессионального
образования
«ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Кафедра «Информационная
безопасность систем и технологий»
Отчет
о курсовом проекте
по дисциплине «Передача дискретных сообщений»
по теме:
«Помехоустойчивое
кодирование»
Исполнитель КР Л.М. Мухутдинова
Руководитель КР
к.т.н., доцент
Б.В. Султанов
Пенза 2011
Изм..
Лист
№ докум.
Подп.
Дата
Лист
2
ПГУ 4.090106.001 ПЗ
Разраб.
Мухутдинова
в С.А.
Провер.
Султанов Б.В.
Реценз.
Н.Контр.
Султанов Б.В.
Утв.
Помехоустойчивое кодирование
Лит.
Листов
19
Гр. 08ПТ3
РЕФЕРАТ
Отчет
содержит 19 страницы, 4 таблицы, 1 рисунок,
2 источника.
КОДИРОВАНИЕ,
КОД ХЕММИНГА, КОД РИДА-СОЛОМОНА, КОД БЧХ
Объектом исследования являются код Хемминга, код БЧХ, код Рида-Соломона.
Целью
курсовой работы является изучение принципом
построения помехоустойчивых кодов и
их основных параметров.
В
процессе работы было осуществлено кодирование
информационных комбинаций кодом Хэмминга,
БЧХ кодом и кодом Рида-Соломона.
В
результате работы все задачи были
решены и все требования задания
были выполнены.
СОДЕРЖАНИЕ
Реферат 2
Задание на курсовую работу 4
Введение 5
- Код Хемминга 6
- Код БЧХ 10
- Код Рида-Соломона 13
Заключение 18
Список используемых источников 19
ЗАДАНИЕ
НА КУРСОВУЮ РАБОТУ
ВЕДЕНИЕ
Высокие
требования к достоверности передачи
информации в современных
В
данной курсовой работе были исследованы
корректирующие коды, т.е. коды, служащие
для обнаружения или
Курсовая работа состоит из 3 разделов.
Первый
раздел посвящен исследованию кода Хемминга,
для него найден порождающий многочлен,
сформирована разрешённая кодовая
комбинация кода, в искажённом сообщении
исправлена ошибка.
Во
втором разделе рассматривается
код БЧХ, для него найден
порождающий многочлен, сформирована
разрешённая кодовая комбинация, построен
регистр кодирующего устройства для кода
БЧХ.
В
третьем разделе исследован код
Рида—Соломона, построены
таблицы представления, сложения и умножения
элементов в поле
GF(8), найден порождающий многочлен, вычислены
синдромы для
принятой комбинации, определено местонахождение и значение
ошибки в ней.
1 Код Хемминга
Задача 1.2.16. Определить порождающий многочлен g(x) кода Хэмминга, скорость которого R ≥ r0, где r0 = 0,8, рассматривая его как код БЧХ, исправляющий одиночные ошибки. Сформировать разрешённую комбинацию систематического кода, соответствующую заданной информационной комбинации . Исправить ошибку в принимаемой кодовой комбинации .
Решение:
По
скорости кода r0 определяем
значение длины кодовой комбинации n
и значение длины информационной последовательности
k разработанного кода из выражения
1:
Данное отношение удовлетворяет коду Хэмминга (31,26), где , .
Рассмотрим
код Хэмминга как циклический
код и определим порождающий
полином g(х). При заданной длине
кода n и кратности исправления ошибки вычислим m
из формулы 2:
Откуда:
Из
выражения
находим, . В таблице минимальных неприводимых
многочленов находим
значение полинома:
Порождающая матрица определяется из выражения 3:
,
(3)
где:
– единичная матрица размером ;
– матрица, строки которой
определяются из выражения 4:
(4)
где:
– полином соответствующий i-
Для
определения матрицы
воспользуемся выражением
(4). В результате вычислений получаем:
Производящая
матрица будет иметь вид:
Для
получения кодовой комбинации необходимо
вектор, соответствующий этой кодовой
комбинации умножить
на матрицу . Полученный
в результате умножения
вектор и будет являться
разрешённой кодовой
комбинацией. В
соответствии с заданием . Выполним умножение:
Проверочная
матрица в систематическом виде
строится на основе матрицы
по формуле 5:
где:
– единичная матрица,
–
транспонированная
матрица .
Для
определения синдрома необходимо умножить
найденную кодовую комбинацию на .
Полученный в результате
умножения вектор и
будет являться синдромом,
по которому можно судить
о наличии ошибки или
её отсутствии. В
соответствии с заданием принята кодовая
комбинация .
В
соответствии с этим синдромом определяем
по матрице ,
что ошибка произошла
в 31 разряде, следовательно,
исправленная комбинация:
Для
проверки результата осуществляется деление на
порождающий полином
. Остаток от деления
равен нулю, следовательно, ошибка исправлена
верно.
2
Код БЧХ
Задача
2.2.4. Определить порождающий многочлен
g(x) примитивного кода БЧХ над GF(2) длины
n = 2m –
1, где m = 4, исправляющего ошибки
кратностью tи =
3. Сформировать разрешённую комбинацию
систематического кода, соответствующую
информационной комбинации
a(x) = 11001. Построить регистр кодирующего
устройства систематического циклического
кода с порождающим многочленом
g(x), привести таблицу, иллюстрирующую
состояние ячеек в процессе работы регистра
при поступлении на его вход информационного
блока a(x). Определить, является ли
разрешённой принимаемая кодовая комбинация
V’(x) = 100101101011001.
Решение:
Для
определения порождающего многочлена
примитивного БЧХ кода была использована
таблица минимальных многочленов. Определим
значение параметров
и из выражений:
;
.
Из
таблицы минимальных многочленов в соответствии
с
и получаем:
Выполнив
умножение соответствующих многочленов,
получим:
Найдем
кодовую комбинацию
в соответствии с выражением
6:
,
(6)
где:
– входная информационная последовательность;
– определяется из выражения ;
– находится как
остаток от деления
на по формуле
7:
Рассчитаем в
среде Matlab:
Следовательно по формуле 6 равна:
Построим
регистр кодирующего устройства
систематического циклического кода (рисунок
1) на основе порождающего многочлена следующим
образом. Длина регистра
равна степени многочлена
и соответствует
десяти. Число обратных связей и сумматоров
по |2| соответствует количеству коэффициентов
порождающего многочлена равных единицы
(за исключением старшего), т.е. .
Перед ячейками, номера
которых соответствуют
индексам единичных
коэффициентов, размещаются
сумматоры по |2|.
0
5
1
7
2
4
3
6
8
9
Рисунок 1 –
Регистр кодирующего устройства
систематического циклического кода
В
таблице 1 показано состояние ячеек
в процессе работы регистра.
Таблица 1 – Таблица состояние ячеек в процессе работы регистра
| Вход | Состояние ячеек | |||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
| 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
После
поступления на вход регистра информационного
блока в его ячейках
Для
того, чтобы определить является ли
разрешенной комбинация, следует
найти остаток от деления принимаемой
комбинации на порождающий многочлен . Если остаток равен нулю,
комбинация является разрешенной, если
остаток отличен от нуля, то принимаемая
комбинация является неразрешенной. Осуществим деление в среде
Matlab:
В
данном случае принимаемая комбинация
является неразрешенной.
3
Код Рида-Соломона
Задача
3.1.1. Построить таблицы
Решение:
Определим параметры кода Рида-Соломона:
– длина кода;
– кодовое расстояние;
– максимальная степень
– длина информационной
Первым
этапом решения задачи является построение
таблицы представлений поля GF(8),
построенного на основе многочлена с
примитивным элементом
.
Таблица 2 – таблицы представления элементов в поле GF(8)
| Степенное обозначение | Многочленное обозначение | Кодовое обозначение | Десятичное обозначение |
| 0 | 0 | 000 | 0 |
| α0 | 1 | 001 | 1 |
| α1 | z | 010 | 2 |
| α2 | z2 | 100 | 4 |
| α3 | z+1 | 011 | 3 |
| α4 | z2+z | 110 | 6 |
| α5 | z2+z+1 | 111 | 7 |
| α6 | z2+1 | 101 | 5 |
Таблица 3 – Таблица сложения элементов в поле GF(8)
| + | 0 | 1 | α1 | α2 | α3 | α4 | α5 | α6 |
| 0 | 0 | 1 | α1 | α2 | α3 | α4 | α5 | α6 |
| 1 | 1 | 0 | α3 | α6 | α1 | α5 | α4 | α2 |
| α1 | α1 | α3 | 0 | α4 | 1 | α2 | α6 | α5 |
| α2 | α2 | α6 | α4 | 0 | α5 | α1 | α3 | 1 |
| α3 | α3 | α1 | 1 | α5 | 0 | α6 | α2 | α4 |
| α4 | α4 | α5 | α2 | α1 | α6 | 0 | 1 | α3 |
| α5 | α5 | α4 | α6 | α3 | α2 | 1 | 0 | α1 |
| α6 | α6 | α2 | α5 | 1 | α4 | α3 | α1 | 0 |
Таблица 4 – Таблица умножения элементов в поле GF(8)
| ´ | 0 | 1 | α1 | α2 | α3 | α4 | α5 | α6 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | α1 | α2 | α3 | α4 | α5 | α6 |
| α1 | 0 | α1 | α2 | α3 | α4 | α5 | α6 | α7 |
| α2 | 0 | α2 | α3 | α4 | α5 | α6 | α7 | α8 |
| α3 | 0 | α3 | α4 | α5 | α6 | α7 | α8 | α9 |
| α4 | 0 | α4 | α5 | α6 | α7 | α8 | α9 | α10 |
| α5 | 0 | α5 | α6 | α7 | α8 | α9 | α10 | α11 |
| α6 | 0 | α6 | α7 | α8 | α9 | α10 | α11 | α12 |
Так
как , то каждый q-ичный символ кода состоит
из трех двоичных элементов. Поэтому с
учетом таблицы 2:
.
Далее
вычислим порождающий многочлен :
Определим
разрешенную комбинацию систематического
кода .
определяется по
формуле 7, воспользовавшись средой Matlab.
Отсюда
разрешенная комбинация систематического
кода равна:
10111101111
Определим является ли разрешенной комбинации . Если в соответствии с формулой 8 синдром содержащий – разрядов, то все разряды должны быть нулевыми:
где:
Вычисляем
синдром для этой комбинации:
Локатор
ошибок для данного кода будет
иметь вид: . Найдем
его коэффициенты из
следующей системы уравнений:
Подставив
в нее значения синдрома, получим:
Получим коэффициенты локатора ошибок: и .
Локатор
ошибок имеет вид:
Для того, чтобы найти корни нужно в правую часть подставить вместо поочередно все ненулевые значения элементов поля . Те элементы поля, при подстановке которых полином принимает нулевое значение, являются его корнями. Получаем что: .
Отсюда находим числа , которые указывают расположения ошибок в принятой кодовой комбинации: .
Это
значит, что ошибки находятся при
2 и 5 степенях многочленного представления
принятой кодовой комбинации. Но кроме
расположения ошибок необходимо выяснит
их значение. Для этого решим систему:
Подставим
в систему значения :
Коэффициенты
– принадлежат многочлену
ошибок . Запишем и сам многочлен :
Сложим
многочлен ошибок с принятой кодовой
комбинацией и получим
ЗАКЛЮЧЕНИЕ
В процессе выполнения курсового проекта были изучены принципы кодирования кодом Хэмминга, БЧХ и Рида-Соломона. В соответствии с заданием были решены три задачи.
Таким
образом, задание на курсовой проект
выполнено в полном объёме.
СПИСОК
ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1
Султанов Б.В., Иванов А.П., Геращенко
С.М. Математические основы
2
Кузнецов Ю.А. Передача дискретных сообщений.
Конспект лекций. – Пенза 2000г.