13
Министерство образования и науки Российской Федерации ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «САРАТОВСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ Н.Г.ЧЕРНЫШЕВСКОГО» Кафедра дискретной математики и информационных технологий Полиномиальное кодирование АВТОРЕФЕРАТ БАКАЛАВРСКОЙ (МАГИСТЕРСКОЙ, ДИПЛОМНОЙ) РАБОТЫ Студентки 4 курса 421 группы направления 09.03.01 «Информатика и вычислительная техника» факультета компьютерных наук и информационных технологий Кирдиной Ульяны Сергеевны Научный руководитель к. ф.-м.н., доцент каф ДМиИТ ___________________ И.П. Мангушева дата, подпись Заведующий кафедрой к. ф.-м.н., доцент _____________________ Л. Б. Тяпаев дата, подпись Саратов 2016 год

Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

Министерство образования и науки Российской Федерации

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САРАТОВСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ Н.Г.ЧЕРНЫШЕВСКОГО»

Кафедра дискретной математики

и информационных технологий

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

АВТОРЕФЕРАТ БАКАЛАВРСКОЙ (МАГИСТЕРСКОЙ, ДИПЛОМНОЙ)

РАБОТЫ

Студентки 4 курса 421 группы

направления 09.03.01 «Информатика и вычислительная техника»

факультета компьютерных наук и информационных технологий

Кирдиной Ульяны Сергеевны

Научный руководитель

к. ф.-м.н., доцент каф ДМиИТ ___________________ И.П. Мангушева

дата, подпись

Заведующий кафедрой

к. ф.-м.н., доцент _____________________ Л. Б. Тяпаев дата, подпись

Саратов 2016 год

Page 2: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

СОДЕРЖАНИЕ

ВВЕДЕНИЕ .............................................................................................................. 3

1 Основные понятия ............................................................................................... 4

2 Помехоустойчивое кодирование ........................................................................ 5

2.1 Блочные коды ....................................................................................... 5

2.2 Групповые коды ................................................................................... 6

3 Полиномиальное кодирование ........................................................................... 7

3.1 Возможности полиномиальных кодов ................................................ 8

3.2 Понятие о кодах Боуза-Чоудхури-Хоккенгема ............................... 10

ЗАКЛЮЧЕНИЕ ..................................................................................................... 12

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ........................................... 13

Page 3: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

3

ВВЕДЕНИЕ

Целью выпускной квалификационной работы является рассмотрение

одного из методов помехоустойчивого кодирования, а именно, метода поли-

номиального кодирования и декодирования двоичных сообщений. Для дос-

тижения цели, поставленной в дипломной работе, необходимо было решить

следующие задачи.

1 Изучить теоретический материал, касающийся метода полиноми-

ального кодирования и его использования для обнаружения и корректировки

искажений при передаче по каналу связи с помехами.

2 Продемонстрировать работу метода на примерах.

3 Разработать и реализовать алгоритмы построения кода двоично-

го сообщения, обнаружения ошибки в коде на выходе канала связи и коррек-

тировки кода для случая, когда это возможно.

4 Описать область применения полиномиальных кодов;

5 Рассмотреть задачу нахождения порождающих многочленов;

6 Реализовать метод полиномиального кодирования и декодиро-

вания двоичных сообщений.

Структурно работа состоит из введения, теоретической части, практи-

ческой части, заключения, списка использованных источников и трех прило-

жений.

Page 4: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

4

1 Основные понятия

Группой называется система [G, ∙, 1, ˉ¹] со следующими свойствами:

1. x*(y*z) = (x*y)*z для всех x, y, z ∈ G;

2. 1*x = x*1 = x для всех x ∈ G;

3. x*xˉ¹ = xˉ¹*x = 1 для всех x ∈ G

Кольцом называется алгебраическая система R= [R, +, *] с двумя би-

нарными операциями + и *, которые удовлетворяют следующим условиям

[1].

1. + определят на R структуру абелевой группы: abba для

любых Gba , ;

2. * определяет на R структуру моноида;

3.справедливы законы дистрибутивности:

,)( acabcba bcaccba )( для любых Rcba ,, .

Кольцо называется коммутативным, если a*b=b*a для всех a, b ∈ R.

Моноидом называется полугруппа с нейтральным элементом e , что

xxeex

Полем называется коммутативное кольцо, содержащее не менее двух

элементов, в котором все ненулевые элементы образуют группу по умноже-

нию. К этому классу принадлежат поля целых чисел nZ по модулю простого

числа n . Для построения кодов используются поля степени двойки 2Z .

Двоичным (m, n) - кодом называется пара, состоящая из схемы кодиро-

вания E : 2m→2

n и схемы декодирования D: 2

n→2

m, где 2

n - множество всех

двоичных последовательностей длины n.

Систематический код - это код, в котором каждой кодовой последова-

тельности однозначно сопоставляется входная последовательность [2].

Page 5: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

5

2 Помехоустойчивое кодирование

При передаче информации по каналам связи возможны ошибки вслед-

ствие помех и искажений сигналов. Для обнаружения и исправления возни-

кающих ошибок используются помехоустойчивые коды.

Помехоустойчивость - способность системы осуществлять прием ин-

формации в условиях наличия помех в линии связи и искажений во внутри

аппаратных трактов. Помехоустойчивость обеспечивает надежность и досто-

верность передаваемой информации (данных).

Помехоустойчивое кодирование – один из эффективных методов по-

вышения достоверности и надежности передачи данных. Этот метод позво-

ляет за счет внесения дополнительной избыточности в кодовые комбинации

передаваемых сообщений обеспечить возможность обнаружения и исправле-

ния одиночных, кратных и групповых ошибок [8].

2.1 Блочные коды

Блочный код заменяет каждый блок из m символов некоторым более

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

рованию. Из соображений простоты и надежности большинство систем связи

конструируется для передачи двоичных последовательностей. Блочный

(m, n) – код определяется двумя функциями: E: 2m →2

n, D: 2

n→2

m, m≤n.

Одним из ключевых понятий теории кодирования принадлежит поня-

тие расстояния между двоичными словами. Расстояние d(a, b) между двумя

словами a = (a1,…,an) и b=(b1,…,bn) равно числу позиций, в которых ai≠bi. Ес-

ли слова отличаются в точно одной позиции, то расстояние равно единице.

Весом w(a) слова a=(a1,..,an) называется число единиц среди его коор-

динат. Тогда расстоянием d(a, b) между двоичными словами одинаковой

длины называется вес их суммы, то есть d(a, b) = w(a+b) [2].

Теорема 1. Для того чтобы код давал возможность обнаруживать все

ошибки в ≤ k позициях, необходимо и достаточно, чтобы наименьшее рас-

стояние между двумя кодовыми словами было k+1.

Page 6: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

6

Теорема 2. Для того чтобы код давал возможность исправлять все

ошибки в ≤ k позициях, необходимо и достаточно, чтобы наименьшее рас-

стояние между двумя кодовыми словами было 2k+1.

2.2 Групповые коды

Блочный код называется групповым, если его кодовые слова образуют

группу. Иногда групповые коды являются блоковыми кодами, имеющими

практическое значение. Групповые коды также называют линейными или

кодами с обобщенными проверками на четность [2].

Теорема 3. Если код является групповым, то наименьшее расстояние

между двумя кодовыми словами равно наименьшему весу ненулевого кодо-

вого слова [2].

Page 7: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

7

3 Полиномиальное кодирование

Полиномом степени ≤ m от неизвестной x над коммутативным коль-

цом R называется выражение вида:

Raxaxaxaa k

km

k

k

m

m

,0

10

Элементы ak называются коэффициентами полинома, они могут быть

нулевыми.

Полином иногда обозначается символически a(x). При таком обозначе-

нии имеется в виду, что полином рассматривается как функция из R в R.

Вес многочлена - это количество ненулевых слагаемых в многочлене.

Два стандартных полинома называются равными, если у них одинако-

вая каноническая форма.

Полиномиальные коды – это специальный класс групповых кодов.

При кодировании сообщения отождествляются с многочленами, а само коди-

рование заключается в умножении на фиксированный многочлен [4]. Для

блочных (m, n) – кодов в каждом блоке имеется k = n – m контрольных сим-

волов. Пусть a0, …. , am-1 – символы сообщения a. Будем рассматривать дво-

ичный алфавит, его нужно отождествить с Z2. Тогда слова сообщения можно

отождествить с многочленами степени ≤ m – 1 над Z2:

a↔a0 + a1x + … + am-1xm-1

. (5)

Пусть F – некоторое конечное поле. Фиксируем многочлен степени k:

g(x) = g0+g1x+ … + gkxk∈F[x], g0≠0, gk≠0. (6)

Если g0=0, то все кодовые слова будут начинаться с нуля, и первый

символ не будет нести никакой информации, если же gk=0, то последний

символ не будет нести информации.

Полиномиальный код с кодирующим многочленом g (x) кодирует сло-

во сообщения а вида (6) следующим многочленом:

b(x) = b0+b1x+…+bn-1xn-1

=a(x) g(x) [6].

Page 8: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

8

Теорема 4. Минимальное расстояние между двумя кодовыми словами

полиномиального кода с кодирующим многочленом g(x) совпадает с мини-

мумом весов многочленов a(x)g(x).

Теорема 5. Если многочлен с коэффициентами в Z2 делится на 1+x, то

он имеет четное число ненулевых коэффициентов.

Декодирование при полиномиальном кодировании осуществляется пу-

тем деления кодового полинома b(x) на порождающий полином g(x). Если

остаток от деления на g(x) равен 0, то значит, что ошибки отсутствуют в про-

цессе передачи кодовой комбинации. Частное от деления является искомым

полиномом a(x).

3.1 Возможности полиномиальных кодов

Теорема 7. Если g(x) не является делителем ни одного многочлена ви-

да xk-1 при k<n, то для (m, n) – кода, порожденного g(x), минимальное рас-

стояние между словами не меньше трех [1].

Доказательство. Множество кодовых слов имеет вид a(x) g(x), de-

ga(x)<m. Так как код является групповым, то минимальное расстояние между

кодовыми словами совпадает с минимальным весом кодового слова. Если

существует кодовое слово веса 2, то g(x) делит многочлен вида e(x)= xi+x

j=

xi(1+x

j-1). Так как g0=1, g(x) делит 1+ x

j-1, поэтому не существует кодовых

слов весом 2. Также не может существовать кодовое слово веса 1, иначе g(x)

должен был бы делить xi.

Многочлен g(x) степени k над Z2 называется примитивным, если

g(x)│(xm - 1) для m = 2

k – 1, но ни для какого меньшего значения m.

Примитивные многочлены строятся путем перебора. Некоторые при-

митивные многочлены приведены в таблице 1.

Page 9: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

9

Таблица 1 - Примитивные многочлены

Теорема 6. Рассмотрим полиномиальный (m, n)- код, порожденный

многочленом g(x). «Строка ошибок» e=e0e1…en-1 останется необнаруженной в

том и только том случае, если соответствующий многочлен ошибок делится

на g(x).

Доказательство. Строка ошибок остается необнаруженной только в том

случае, если она является кодовым словом, это доказывает требуемое.

Обнаружение ошибок производится с помощью алгоритма деления с

остатком: нужно поделить многочлен, отвечающий принятому слову, на g(x);

если остаток степени <deg g оказывается ненулевым, то при передаче про-

изошло искажение.

Лемма (алгоритм Евклида). Пусть )(),( xbxa - многочлены в

0)(],[ xbxF . Тогда существует неполное частное ][)( xFxq и остаток

][)( xFxr со свойствами: либо 0)( xr , либо )(deg xr < )(deg xb и

),()()()( xrxqxbxa )(deg xr < )(deg xb

Частное q(x) и остаток r(x) можно вычислить с помощью следующего

алгоритма.

Положим km

k

k xaxa

1

)( и kn

k

k xbxb

0

)( , где 0nb . Рассмотрим два слу-

чая.

Случай 1. Если m<n, полагаем 0)( xq и )()( xaxr .

Page 10: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

10

Случай 2. Если ,nm положим

).()()()()()( 1

1

1 xbxqxaxbxabxaxa nm

mn

Степень этого многочлена не больше 1m , ибо старшие коэффициенты

у )(xa и )()(1 xbxq совпадают и равны mnmn abab 1 . После не более чем 1 nm

таких шагов степень остатка окажется меньше m .

Экспонентой многочлена g называется наименьшее положительное

целое число e, для которого g(x)│(xe - 1). В частности, g∈Z2[x] примитивен,

если его степень равна k, а экспонента e = 2k - 1.

Теорема 7. Пусть кодирующий многочлен полиномиального (m, n) –

кода имеет вид g(x) = (1 + x)*h(x), где экспонента eмногочлена h(x) больше n.

Тогда можно обнаружить любую комбинацию из двух простых или двойных

ошибок.

При простом умножении на g(x) входные символы перемешиваются и

заменяются их линейными комбинациями, поэтому на самом деле использу-

ется другая процедура кодирования. А именно, многочлен a(x) кодируется

многочленом b(x)=xn-m

a(x) - r(x)=q(x)g(x), где r(x)- остаток от деления xn-m

a(x)

на g(x), а q(x) - неполное частное.

При таком методе кодирования кодовые слова состоят из всех много-

членов, делящихся на )(xg . Вектор коэффициентов nkn bb ,..., совпадает с

входным вектором 10 ,.., maa .

3.2 Понятие о кодах Боуза - Чоудхури - Хоккенгема

В 1960 году независимо Боуз, Чоудхури и Хоккенгем открыли один

класс эффективных полиномиальных кодов с исправлением многократных

ошибок. Эти коды получили название кодов Боуза-Чоудхури-Хоккенгема

или БЧХ-кодов. В таких кодах число контрольных символов зависит от числа

ошибок, которое нужно обнаружить или исправить.

Алфавит БЧХ - кода отождествляется с некоторым конечным полем GF

(q). Из-за использования двоичных устройств q обычно является степенью

Page 11: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

11

двойки. Кодирующий многочлен g(x) имеет коэффициенты в этом поле, а

кодовые слова состоят из всех кратных многочлена g(x) [1].

Можно построить БЧХ - код, у которого минимальное расстояние

между словами d , т.е. для любого наперед заданного d.

Кодирующий многочлен g(x) для БЧХ-кода, длина кодовых слов

которого n, строится так: находится примитивный многочлен минимальной

степени q такой, что 12 qn или )1(log 2 nq . Пусть — корень этого

многочлена, тогда рассмотрим кодирующий многочлен g(x) = НОК

))(),...,(( 11 xmxm d , где )(),...,( 11 xmxm d - многочлены минимальной степени,

имеющие корни соответственно 12 ,...,, d .

Построенный кодирующий многочлен производит код с минимальным

расстоянием между кодовыми словами, не меньшим d, и длиной кодовых

слов n [4].

Page 12: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

12

ЗАКЛЮЧЕНИЕ

В ходе работы были решены следующие задачи:

1. Изучен теоретический материал, касающийся метода полиноми-

ального кодирования и его использования для обнаружения и корректировки

искажений при передаче по каналу связи с помехами.

2. Продемонстрирована работа метода на примерах.

3. Разработаны алгоритмы построения кода двоичного сообщения,

обнаружения ошибки в коде на выходе канала связи и корректировки кода

для случая, когда это возможно.

4. Реализован метод полиномиального кодирования и декодирова-

ния двоичных сообщений.

В ходе работы сделан вывод, что полиномиальные коды могут исправ-

лять однократные, двойные и многократные ошибки.

Page 13: Полиномиальное кодированиеelibrary.sgu.ru/VKR/2016/09-03-01_010.pdf · 5 2 Помехоустойчивое кодирование При передаче

13

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1 Биркгоф Г., Барти Т. Современная прикладная алгебра, Мир, 1976

2 Дж. Кларк, мл.Дж.Кейн. Кодирование с исправлением ошибок в системах

цифровой связи, 1987

3 Мангушева И.П. Курс лекций по дискретной математике. Часть I. Элемен-

ты теории множеств и отношений. Функции алгебры логики. Функции к-

значной логики. : учеб. пособие. Саратов: Издат. центр «Наука».

4 Лидовский В. В. Теория информации, Москва, 2004

5 Планета информатики. Кодирование информации. [Электронный

ресурс]:[сайт].

URL: http://www.inf1.info/book/export/html/202

Дата обращения 18.05.16

6 НОУ ИНТУИТ. Полиномиальные коды. [Электронный ресурс]:[сайт].

URL: http://www.intuit.ru/studies/courses/2256/140/lecture/3920?page=3

Дата обращения 20.05.16

7 Прикладная математика. Алгоритм Евклида. [Электронный ресурс]:[сайт].

URL : http://www.pm298.ru/mnog2.php

Дата обращения 10.05.16

8 Золотарѐв В. В., Овечкин Г.В. Помехоустойчивое кодирование. Горячая

линия - Телеком, 2004