Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ilipbaeva L.B.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
350.55 Кб
Скачать

2.3. Идеал

Совокупность целых чисел образует идеал, если эти числа кратны некоторому целому числу.

Аналогичное утверждение существует и для многочленов: совокупность многочленов образует идеал, когда она содержит все многочлены, кратные некоторому многочлену g(x).

Пример. Рассмотрим систему вычетов по mod( и выберем g(x)=x+1. В этом случае идеал образуют следующие многочлены:

I; 0; x+1;

Все другие возможные произведения типа k(x)g(x) сравнимы с приведенными, например:

или

(

Если f(x)=g(x)h(x), то все элементы идеала, порождаемого g(x), удовлетворяют соотношению

𝑎(х)h(x)=0 (modf(x))

В нашем примере g(x)=x+1; h(x)= Проверим справедливость этого утверждения

( .

x+1

0

Следовательно, ( .

2.4. Корни полинома

В поле GF( ) совокупность всех ненулевых элементов является совокупностью корней многочлена .

Пример. Пусть р=2; n=2. Тогда , т.е. многочлен имеет вид . В нашем случае, когда р=2, знаки «минус» и «плюс» эквивалентны, поэтому будем рассматривать полином .

В расширение GF( ) все операции проводили по модулю полинома f(𝑎)= . Раньше мы убедились, что совокупность вычетов по модулю этого полинома образует поле.

Итак, ненулевыми элементами поля GF( является 1, 𝑎, 𝑎+1. Проверим, что каждый из них обращает в нуль полином 𝑏(x)=

  1. b(1)=1+1=0;

  2. b(𝑎)= ;

Следовательно, b(𝑎)=0 (modf(𝑎));

  1. b(𝑎+1)=(( 𝑎+1)( 𝑎+1)( 𝑎+1)+1)=( (modf(𝑎)).

Рассмотренное свойство позволяет производить разложение полинома на множители, которые являются элементами расширенного поля.

В нашем примере

Можно проверить выполнение этого равенства, не забывая, что все операции над элементами расширения проводятся по mod(

(x+1)(x+𝑎)(x+𝑎+1)=( 𝑎)+x( +

.

Рассмотрим теперь корни полинома f(x). Некоторые элементы расширения GF( являются корнями этого полинома.

Пусть известен один из них , т.е. f( Можно доказать, что все другие корни этого полинома являются степенями

.

Обратимся опять к нашему примеру, в котором p=2 и n=2.

Полином f(x)= имеет два корня . Но Поэтому можно записать следующее разложение полинома f(x):

f(x)=(x- .

Мы видим, что полином, неприводимый в простом поле GF(p), может быть разложен на множители в расширении GF( .

В дальнейшем нами будут использованы также два следующих свойств [2]:

  1. Каждый неприводимый над полем степени n является делителем многочлена . Это утверждение является следствием разложения полиномов и .

  2. Каждый делитель многочлена имеет степень n или меньшую

Глава 3 циклические коды

3.1. Построение циклических кодов

Наиболее распространенным и излученным типом кодов являются циклические коды.

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

Элементы удобно рассматривать как коэффициенты полинома

A(x)= (3.1)

Циклический сдвиг на l позиций соответствует умножению на по mod( ..

Пример. Пусть n=3 и f(x)= .

Рассмотрим циклические сдвиги полинома A(x)=x+1. в котором , .

A(x)=0+x+1;

xA(x)=

;

и т.д.

Мы видим, что умножение на приводит к циклическому сдвигу коэффициентов. Но многочлены, которые получаются в результате такого умножения, образуют идеал (см. раздел 2.3).

Таким образом, циклический код представляет собой идеал, порождаемый некоторым многочленом. Обозначим этот порождающий многочлен g(x). Он должен делить полином . Степень полинома g(x) определяет число проверочных символов кода. Каждое кодовое слова А(х) принадлежит идеалу, т.е. может быть представлено как

A(x)=k(x)g(x)∊

Если степень g(x) равна r, а степень полином A(x) не превышает n-1, то степень полинома k(x) не должна быть больше n-r-1. Но k(x) –произвольные полиномы. Коэффициентами этих полиномов могут служить информационные символы {

k(x)=

Общее число информационных символов равно k=n-r.

Следовательно, из n символов циклического кодового слова r символов являются проверочными, а k=n-r символов информационны-ми, т.е. полином g(x) порождает код (n; k).

Для построения циклического коа необходимо знать разложение полинома на множители.

Мы видели (см. раздел 2.4), что если n= , то многочлен представляется как произведение неприводимых полиномов степени не выше m. Каждый из этих полиномов, а также их произведения могут быть использованы как порождающие полиномы циклического кода.

Пример. Пусть n= .

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

)( .

которые можно использовать как порождающие полиномы:

порождает код (7.6);

порождает код (7.4);

порождает код (7.4);

) порождает код (7.3).

Так как порождающий полином g(x) делит полином , то

.

Полином h(x) называется проверочным полиномом кода. Для любого кодового слова U(x) выполняется соотношение

Ú(x)h(x)=0 (mod(

Так, в рассмотренном выше примере для кода (7.4), который порождается полиномом , проверочным служит полином h(x)= и наоборот.

Наиболее удобным способом описания кода является матричный. Для формирования порождающей матрицы циклического кода G в качестве строк берутся все циклические перестановки коэффициентов полинома g(x). Условие это можно записать так:

G= . (3.2)

Число столбцов матрицы G равно числу символов кода n. Но полином g(x) имеет степень r. Недостающие n-r позиций первой строки заполняются нулями.

Пример. Запишем матрицу G для порождающего полинома

g(x)= .

Первую строку матрицы G образуют коэффициенты полинома g(x). Следующие строки получаются путем циклического сдвига влево этой первой строки:

G= . (3.3)

Из примера видно, что матрица (3.2) порождает несистематический код; в нем информационные и проверочные символы неразделимы. Такой код неудобен на практике. Необходимо получить порождающую матрицу в приведенно - ступенчатой форме. Для этого можно подобрать подходящие линейные комбинации строк матрицы (3.2), но лучше воспользоваться следующим приемом.

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

где -остаток от деления на g(x).

Тогда

=g(x)

Соотношение (3.4) определяет кодовое слово, так как справа стоит произведение порождающего полинома g(x) на некоторый полином . Полином должен иметь степень не больше, чем r-1. Таким образом, в соотношении (3.4) справа стоит поленом, имеющий 1 при и нулевые коэффициенты при всех других степенях j .

Если в качестве строк порождающей матрицы взять коэффициенты этих полиномов, то получим искомую приведенно-ступенчатую матрицу

G=[ .

Матрица Р в (3.5) формируется из остатков от деления на g(x).

Пример. n=7, g(x)= .

Надо найти остатки от деления на g(x); i={6, 5, 4, 3}

;

+x+1

;

x

;

1

;

Коэффициенты полиномов являются элементами матрицы Р.

В результате получаем следующую порождающую матрицу G.

G=

(3.6)

Над матрицей G для ориентировки записаны степени х, которым соответствуют коэффициенты в столбцах матрицы. Нетрудно проверить, что матрица (3.6) может может быть также получена из матрицы (3.3) путем перестановки строк и их линейной комбинации. Однако такие манипуляции целесообразны только при небольших значениях k и n.

Рассмотрим, какие операции над информационным полиномом k(x) необходимо выполнить, чтобы получить кодовое слово с разделенными информационными и проверочными символами. Полином k(x) имеет степень k-1. Умножим его на

(3.7)

Но, согласно (3.4),

.

Поставив (3.8) в (3.7), получим

Или

(3.9)

Слева в (3.9) стоит полином, принадлежащий коду. Первое слагаемое в правой части- полином, коэффициенты которого равны информационным символам. Они занимают k позиций. Второе слагаемое r(x)= полином, степень которого не превышает n-k-1, так как степени всех остатков не превышают r-1=n-k-1. Этот полином является остатком от деления на полином g(x) и соответствует проверочным символам слова.

Проверочная матрица циклического кода Н может быть сформирована с помощью проверочного полинома h(x). Если известна приведено-ступенчатая форма порождающий матрицы G, то соответствующая ей проверочная матрица легко отыскивается в форме

или

В нашем примере для кода (7.4) h(x)=1+x+ и

H=

Над матрицей Н записаны степени х, которым соответствуют коэффициенты полинома h(x).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]