Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Итог / +Раздел III. Теор.информации и кодирования.doc
Скачиваний:
119
Добавлен:
23.03.2015
Размер:
1.63 Mб
Скачать

20. Циклические коды. Порождающий многочлен циклического кода, проверочный многочлен;

Синдром циклического кода, теорема о синдроме циклического кода.

Пусть C– код в пространстве, тогда C называется циклическим если

Пример (могут просить написать):

Примерами циклических кодов являются коды Хэмминга, коды Боуза - Чоудхури - Хоквингема (БЧХ — коды), коды Рида-Соломона. Введем преобразование, называемое циклическим сдвигом . Данное преобразование - линейное преобразование.Циклические коды в- это в точности все инвариантные подпространства относительно циклического сдвига.

Запись элементов из в виде многочленов (описание циклических кодов как идеалов в кольце многочленов): Можно записать элементы поляв виде многочленов и тогда рассматривать циклические коды как иделы в кольце многочленов.- сопоставление

Для многочленов, степень которых меньше или равна n-1, соответствие взаимно однозначное.

Рассмотрим множество многочленов вида ,- поржденный им идеал в кольце многочленов. Рассмотрим факторкольцо:. Оно состоит из различных правых (левых) смежных классовпо идеалу. Для удобства каждый такой класс можно заменить на его представителя, а в качестве различных представителей взять многочлены изстепень которых не превышает. Т.о., фактор-кольцоможно считать состоящим из многочленов степени, не большей, чемс коэффициентами из. Сложение и умножение в этом кольце осуществляется по модулю многочлена. М/у элементами данного факторкольца и элементами пространствасуществует взаимнооднозначное соответствие, причем при данном соответствии сохраняются операции сложения и умножения на скаляр.

Опр. Подкольцо – подмножество кольца, которое само являющееся кольцом относительно главных бинарных операций кольцо.

Опр. Идеал. Правый (левый) идеал – такое подкольцо кольца, умножение всех элементов которого справа(слева) на элемент кольца принадлежит идеалу. Если верны оба утверждения, множество называется двусторонним идеалом. Если операция коммутативна, используется понятие идеал.

Теорема «О представлении циклического кода в виде идеала»:Пусть С – линейный код в. С является цикличным кодом тогда и только тогда (), когда соответствующее ему множество многочленов в кольцеявляется идеалом.

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

Доказательство утверждения: a). Т.к в кольце Кгдерезультат циклического сдвига. Т.к. С- цикличен, то и, то

б) .

из свойства «а» для идеалов следует, что , но тогда из свойства «б» следует, что. При умножении одного многочлена на другой получим сумму указанных произведений, каждое из которых принадлежитI. Но так как I замкнуто по сложению, получим что произведение 2-х многочленов, один из которых принадлежит кольцу К, а второй подкольцуIлежит вI.. Из данного включения следует, чтоявляется подкольцом и идеалом кольца К. что и требовалось показать.

1) Рассмотрим множествои пусть- идеал. Необходимо показать, что код С – цикличен. Возьмем произвольное. Необходимо показать, что. По условию:. Т.к.- идеал, то. Другими словами:, т.е..Что и требовалось доказать.

Порождающий и проверочный многочлен циклического кода.

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

Утверждение «О многочлене »:

Доказательство:поделим многочленна многочленс остатком. Получим:

. Т.к. С – идеал, то . Но. В противном случае получаем противоречие с корректностью выбора.

Замечание:Заметим, что, который был описан выше, обладает свойством:или (что одно и то же), т.е. С порождается. Это следует из того, что С – идеал и последнего утверждения, в котором мы получаем, чтовсе многочлены из С представимы через.

Опр.: Многочленциклического кода С, описанный выше, называетсяпорождающим многочленом данного кода.

Замечание: Заметим, что два различных порождающих многочлена одного и того же кода получаются друг из друга путем умножения на константу. Поэтому в качестве берут тот, у которого старший коэффициент равен 1.

Теорема «О порождающем многочлене»:Пусть- порождающий многочлен циклического кода С в, тогда многочленделит многочлен.

Доказательство: Поделим многочленнас остатком. Получим:. В кольце К:. Поскольку.

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

Опр.:Пусть С – циклический код с порождающим многочленоми длиной кодового слова равной, тогдапроверочныммногочленом кода С называется многочлен вида:.

Замечание:Т.к. все порождающие многочлены одного кода отличаются друг от друга на константу, то и все проверочные многочлены отличаются на константу. Обычно, в качестве проверочного многочлена выбирают тот, у которого коэффициент при старшем члене равен 1.

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

В теории информации циклические коды часто записываются как иkсоответствует числу информационных символов, аm- проверочных

С помощью порождающего полинома осуществляется кодирование циклическим кодом. В частности:

  • несистематическое кодированиеосуществляется путём умножения кодируемого вектора наg(x):c(x) =u(x)g(x) – векторы сначала переписываются в виде соответствующих полиномов, а затем перемножаются, после чего записывается вектор, соответствующий ответу

  • систематическое кодированиеосуществляется путём «дописывания» к кодируемому слову остатка от делениянаg(x), то есть.

Обнаружение ошибок кодирования (при передаче в канале с помехами)

Будем рассматривать несистематическое кодирование. Пусть мы получили сообщение

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

Синдром– это вектор (в указанном определении –вектор-строка)- определяемый через проверочную матрицу. Можно записать соответствующий ему многочлен.

Учитывая, что получим, сто синдром равен

И соответственно по синдрому можно определить вектор ошибок. (На практике такой поиск обычно осуществляют по заранее составленным таблицам).

Свойства синдрома:

1) .

2) .

3) .

4) (равенство смежных классов).

Доказательство:

  1. Следует из определения проверочной матрицы.

  2. .

  3. .

  4. Используем критерий равенства правых смежных классов в абелевой группе (- группа, (С, +) - подгруппа):

.

Опр.:Пусть- подмножество,(- непустое множество), тогда х≠0 –лидерМ, если он имеет минимальный вес Хэменга, т.е..

Утверждение «О ближайшем соседе»: Пусть С – код в,его проверочная матрица., тогдабудет ближайшим элементом к элементу, в смысле расстояния Хэменга,элементбудет лидером смежного класса с синдромом.

Доказательство: Заметим, чтодействительно содержится в классе, определяемом:

.Пусть х – ближайший сосед, т.еЕсли элементпробегает все кодовые слова, то элементпробегает все элементы смежного класса, т.е.. Другими словами,лидер смежного класса.

Пусть- лидер смежного класса. Т.е.. Другими словами:. Следовательно, х – ближайший сосед. Утверждение доказано.

Алгоритм декодирования с помощью синдромов и лидеров:

  1. Найти проверочную матрицу для кода С.

  2. Перечислить все смежный классы пои для каждого класса указать соответствующий ему синдром и выбрать какого-либо лидера этого класса.

  3. Для полученного сообщения вычисляется его синдром.

  4. По полученному синдрому найти соответствующий ему лидер

  5. Декодировать , где

Можно написать алгоритм и для случая использования многочленов

В этом случае процедура декодирования имеет следующий вид:

  1. Найдем синдромный многочлен

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

  3. Полином ошибки есть

Так, для кодов Хэмминга получаемый синдром просто совпадает с вектором ошибок

Циклический код не обнаружит ошибок в полученной комбинации только в том случае, если количество ошибок таково, что перевело одну разрешенную кодовую комбинацию в другую( то есть полученное нами слово так же принадлежит коду), и не сможет исправить ошибки в том случае, если их количество превысит число проверочных символов.

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

(на всякий случай - было в лекциях по кодированию)

Теорема «О порождающей матрице циклического кода»:Пусть С – циклический код надс длинной кодового словаи порождающим многочленом. Тогда в качестве порождающей матрицы кода С можно взять матрицу вида:

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

,,являются базисом кода С.

Запишем многочлены, которые соответствуют данным кодовым словам:

;;

Так как код С является идеалом, порожденным многочленом , то

Покажем, что элементы - линейно независимы. Рассмотрим линейную комбинацию:

Заметим, что многочлен имеет степень не большую, чем, т.к. этот многочлен тождественно равен нулю в кольце. Значит мы можем сказать, что все коэффициенты указанной линейной комбинации равны 0. Запишем равенство коэффициентов нулю в виде системы:

Поскольку , то. Из второго уравнения:. И так далее до. Таким образом, мы показали, что система линейно независима. Покажем, что данная система является полной в С. Возьмем произвольный многочлен.можно выбрать таким образом, что бы он представлялся в виде:, где. Но тогдаимеет вид:, где. Следовательно:. Таким образом матрицадействительно порождающая матрица.Следствие:Пусть циклический код С с длинной кодового словаи порождающим многочленом, таким что:. Тогда.Теорема «О проверочной матрице циклического кода»:Пусть циклический код С с длинной кодового словаи проверочным многочленом,. Тогда в качестве проверочной матрицы кода С можно взять матрицу вида:

Доказательство:Т.к. проверочный многочлен, где- порождающий многочлен, то:

в кольце. В самом деле:в кольце, так как С – идеал. Если делится нацело на. Следовательно:. Приравнивая к нулю коэффициенты при соответствующих степенях в произведении, получим систему линейных уравнений с матрицейвида:

Матрицабудет являться одной из проверочных матриц для кода С. Из соображений размерности получим:. Легко заметить, что последнеестрок матрицылинейно независимы, поэтому предыдущие строки можно отбросить и получить в качестве проверочной матрицы матрицу Н из условия теоремы.