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

книги из ГПНТБ / Теория и техника передачи данных и телеграфия учебник

..pdf
Скачиваний:
29
Добавлен:
27.10.2023
Размер:
23.44 Mб
Скачать

помех трансформируется в комбинацию (1 1 0 0 0 0 1), отли­ чающуюся от переданной в 4-м разряде, то синдром, вычислен­ ный в декодирующем устройстве приемника, будет иметь вид Sf=100 . Следовательно, ошибка произошла в 4-м разряде.

Кодирующие и декодирующие устройства для кодов Хэмминга строятся на основе систем проверочных соотношений

матрицы

проверок. При

этом в случае

упорядоченной

записи

столбцов

Н(Л , k)

в

качестве проверочных

разрядов

удобно

вы­

бирать

разряды

с

номерами 2\ где і — 0 , 1 , . . . ,

г — 1,

так

как

в этом

случае

каждая строка Н( „,*) однозначно

выражает

из­

быточный

элемент

через

информационные.

 

 

 

 

Рассмотрим построение кодирующих и декодирующих

устройств

кода

Хэмминга на примере (7,4)-кода.

В этом

слу­

чае 1, 2,

4-й элементы

кодовой комбинации удобно

выбрать

избыточными. Тогда связь между избыточными и информаци­ онными элементами по матрице Н(7,4> устанавливается сле­ дующим образом:

а, = а 3 + а 3 -f- а 7 , а-,а-д-\~ ай -f- а 7 , а 4 = а 5 -f- а 6 -+- а 7 .

Структурная схема кодирующего устройства изображена на рис. 6.6а. Информация из источника параллельным кодом запи­ сывается в 3, 5, 6 и 7-ю ячейки регистра и одновременно по­ дается на входы соответствующих сумматоров по модулю 2 для формирования избыточных элементов. Сформированные избы­ точные элементы записываются в 1, 2 и 4-ю ячейки регистра, после чего вся коловая комбинация выводится из регистра к вы­ ходу передатчика.

Устройство исправления ошибок изображено на рис. 6.66. Принятая кодовая комбинация записывается в приемный ре­ гистр, ячейки которого в соответствии с проверочными соотно­ шениями поданы на входы трех сумматоров (вычислитель син­ дрома). Вычисление синдрома происходит после того, как вся принятая комбинация записана в приемный регистр. При нали­ чии ошибки на выходе дешифратора появится сигнал, который запишет «1» в соответствующую ячейку регистра исправления. После вычисления синдрома происходит считывание принятой комбинации из приемного регистра через сумматор исправления. На другой вход сумматора исправления подается содержимое

регистра исправления, причем информация из

одноименных

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

одновременно.

На выходе сумматора исправления ошибочно принятый элемент будет инвертирован, т. е. исправлен.

Бели код используется только для обнаружения ошибок, то декодирующее устройство упрощается (рис. б.бв). В этом случае достаточно выходы сумматоров S u S2, S3 подать на схему ИЛИ. Если хотя бы одно проверочное соотношение не удовлетворяется, то на выходе схемы ИЛИ появится сигнал «Ошибка».

Рассмотренные примеры дают представление о принципах по­ строения кодирующих и декодирующих устройств для кодов

 

а)

 

Источник

 

 

 

 

 

 

 

 

информдц ии

 

тт

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

rn

 

 

Выход

 

 

Регистр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tu­

f

7

7

7

7

 

 

 

 

 

 

 

Приемный

регис/пр

Т/.

 

 

 

 

Вход

у

/

;

;

;

;

*

е

Выход

Л' наполите/гю

 

 

 

 

 

 

 

 

 

 

 

 

I

 

 

 

анформааион-

 

 

 

 

 

 

 

ТСумматор

ных

разрядов

 

 

 

 

 

 

 

 

\испраіления

 

вычисм/пель

Ц

 

5

і

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Синдрома

 

 

 

 

 

 

Регистр

 

Цешиїрраторь," Ж

исправления

 

ТЦ Приемный регистр

Выход

н наноли/пея/о анформацг/оннб/х

раз/>/)&0д°

ВычисрителА^

синдрома

.Хэм-минга. Однако более рациональным является построение ко­

дирующих и декодирующих

устройств

для этого класса

кодов

на базе циклических кодов.

 

 

 

Оценим эффективность кодов Хэмминга. Вероятность нали­

чия ошибок в комбинации

на выходе

декодирующего

устрой-

ства

при исправлении ошибок равна Я,

 

1 - я

Р

а при

обнаружении

Я 0

 

Р

' 2 r -

1 V-

Выигрыш

по достоверно­

 

2Г

3

 

 

 

 

 

 

 

 

 

сти

по сравнению

с простыми

кодами той же длины составляет

 

Я ( > 1 , п)

0 i _ „

, т]0

Я ( > 1 , п)

 

0 r

, т. е. исправле-

І]И = —

= 2

 

= —

р—-

 

= 2 Г - 3

 

* о ш и

 

 

 

 

* о и о

 

 

 

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

 

 

6.5.2. Коды Хэмминга

с d m m

= 4

 

На

основе

(п, &)-кода Хэмминга

с а*М И н =

3 можно получить

( я + 1 ,

&)-код

Хэмминга с dMvm = 4.

Для этого

в кодовую

комби­

нацию

ВВОДИТСЯ ДОПОЛНИТеЛЬНЫЙ

ИЗбыТОЧНЫЙ Элемент,

Я І В Л Я Ю -

щийся результатом проверки на четность всех элементов кодо­

вой комбинации. Матрица проверок для (п+

1, k) -кода

Хэмминга

с я'мип = 4 получается

из матрицы

проверок

(п, &)-кода

с d„mi

— 'S

путем введения дополнительной

строки из /г+1 единиц и прини­

мает вид

 

 

 

 

 

 

 

О"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Н(Л

 

 

 

н(л,

к)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

о

 

 

 

 

 

 

 

 

 

 

11

11

 

 

 

 

где

Н(„,/4) матрица

проверок

кода

с

Мин = 3.

Например,

из-.

(7,4)-кода можно получить (8,4)-код

с а*М ин = 4. Матрица прове­

рок

(8,4)-кода

имеет вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

- 1

1

1

1

0

0

0

о-

 

 

 

 

Н(8,4) =

1

1

0

0

1

1

0

0

 

 

 

 

1

0

1

0

1

0

1

0

 

 

 

 

 

 

 

 

 

 

 

 

- 1

1

1

1

1

1

1

1 -

 

 

 

 

 

§

6.6.

Циклические коды

 

 

 

 

6.6.1.

Определение

 

циклического

 

(п,

к)-кода

 

 

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

избыточностью и корректирующей способностью (в этом отноше­ нии они близки к границе Хэмминга). С целью описания и зада­

ния циклических (п, к)-кодов

используют представление кодо­

вых комбинаций в виде многочленов,

степень которых не превы­

шает п—\, а коэффициентами

являются двоичные элементы «0»

и «1»

 

 

Многочлены, отображающие кодовые комбинации, можно складывать, умножать и делить по обычным правилам с приве­ дением поюбных членов по модулю 2, при этом степень много­ членов при умножении не должна превышать п— 1. Результат умножения приводят по модулю двучлена хп+\. Для того чтобы некоторое множество многочленов составило корректирующий код, необходимо разрешенным кодовым комбинациям придать определенные признаки, которыми они отличались бы от запре­ щенных комбинаций. В циклических кодах характерным призна­ ком разрешенных комбинаций является делимость соответствую­ щих им многочленов на некоторый многочлен, степень которого равна n — k. Этот многочлен называют порождающим или обра­ зующим многочленом циклического кода.

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

многочленов степени « — 1

и менее, делящихся

на некоторый

многочлен g(х)

степени

n—k,

являющийся

сомножителем

двучлена х" + \. Свое название коды, отвечающие данному определению, получили в силу присущего им свойства циклич­

ности: для любой кодовой комбинации

 

V — (vn,

v},...,

 

vn^)

циклический

сдвиг на единицу

РЛЄВО

V" =

v2,•

 

vn}

или

вправо

V"

=

(vn-\,

v0,...,

 

v„-2)

также

является

кодовой:

комбинацией.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

П р и м е р .

Изиестно разложение х7 4

1 на

неприводимые сомножители:

Xі

4-

1 =

(1 + л-) (1

+

х +х3)

(1

+ х2

+ х3).

Найти

все циклические

(п,

6)-коды-

с

п =

7,

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

 

 

 

По определению циклического кода любой делитель Xі + 1 является по­

рождающим многочленом

циклического

кода

длины 7.

Возможные

делители-

XІ

+

1 (порождающие многочлены)

и соответствующие

им

коды

сведены в-

таблицу.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Делитель

Xі

+

1 порождающий

многочлен

кода

 

 

 

Код

 

(-*")

=

14--*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(7.6)

 

 

=

1 + X +

X3

 

 

 

 

 

 

 

 

 

 

 

 

(7.4)

gj

(х) =

1 -f X2

+

X3

 

 

 

 

 

 

 

 

 

 

 

 

(7,4)

g4 (X) =

(1

T x) (1

-f

x + x3) =

1 +

л? +

x3 + XІ

 

 

 

 

 

(7,3)

g'Ax) =

(1

+ x) (1

4-

X* + x3) =

1 +

x +

Xі

+ x*

 

 

 

 

 

(7.3)

gv,(x)

= (! + x + x3)(\ +x* + x3) = l 4- x + X і

+ x3

+ x< + x~°+x«

 

(7.1)

Из приведенного примера видно, что любой делитель хп + [ можно использовать в качестве порождающего многочлена цик­ лического кода длины п. Однако не любой делитель порождает циклический код с требуемыми корректирующими свойствами.

Циклические коды относятся к групповым, во-первых, потому, что операция сложения многочленов совпадает с операцией сло­ жения векторов; во-вторых, совокупность многочленов, деля­ щихся на порождающий многочлен g(x), должна быть замкнута в отношении операции сложения, так как если каждое из сла­ гаемых делится на g(x), то и их сумма делится на g(x) и сте­ пень суммы не превосходит степеней слагаемых; в-третьих, нуле­ вая комбинация принадлежит циклическому коду, так как нуль

делится

без остатка

на

g(x).

 

 

 

 

6.6.2. Порождающая

и проверочная

матрицы

циклического

кода

Порождающая матрица циклического кода может быть по­

строена

по порождающему многочлену g(x).

Для

построения

порождающей матрицы необходимо

по g(x) сформировать k

ли­

нейно-независимых кодовых комбинаций. Так как g(x)

является

кодовой

комбинацией,

то и циклические сдвиги g(x)

также

есть

кодовые комбинации. Алгебраически сдвиг вправо соответствует

умножению

на х.

Циклическим

сдвигом g(x)

является

xg(x) —

многочлен

степени n k +

\. Подобным

образом можно

получить

кодовые комбинации x2g(x),

x3g(x),

 

rh-У

 

 

 

 

Рассмотренные кодовые комбинации

линейно-независимы

так как степени их различны

и,

следовательно,

могут

быть

использованы

в качестве строк

G(n ,

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

Цп,

k)

X2

g(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

g(x)

 

 

 

 

 

 

С другой

стороны,

циклический

(п,

k)-код,

как

и

любой

групповой

код,

может

быть задан

через

двойственный

 

 

 

 

 

 

 

 

 

 

 

 

хп 4- Г

(л, п — Л)-код,

порождаемый

многочленом

h (х) =

—-.——.

 

h (х)

 

 

 

 

 

 

 

 

 

g

\х)

Многочлен

принято

называть

проверочным

многочленом.

-Матрица проверок циклического (п,

k)-кода

в качестве строк со­

держит проверочный

многочлен

п{х)

и n — k—l

его

сдвигов:

 

 

 

 

 

 

h(x)

 

 

 

 

 

 

 

 

 

 

 

X

 

h{x)

 

 

 

 

 

 

 

 

 

Н( Я , * )

Xі

 

h(x)

 

 

 

 

 

 

xn-k-lh(x)

g(x)

П р и м е р .

Для циклического (7,4)-кода

с

порождающим

многочленом

= 1 -f х +

Xі

построить

порождающую

матрицу. Находим:

 

 

 

 

 

 

1 x x"-i~

 

1 1 0 1 0 0 0~

 

 

 

х

g(x)

X +ХЇ

+ Xі

0

I 1

0

1

0 0

 

 

 

 

Jfig

(X)

xn- -f x*

-f X'>

0

0 1

1

0

1 0

 

 

 

 

_x3g (x)_

XiJ^Xl

-f Xs

0

0 0

1

1

0 і

 

 

При задании циклических кодов следует учитывать специ­

фику действий

над многочленами

по сравнению с векторами и,

в

частности

тот факт,

что умножение

многочленов

не совпа­

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

вектор

0 ,

а , , . . . ,

а„ _ і)

и

соответствующий

ему

многочлен

а

(х)

= а0 +

ахх

+

..

. +

ап^ххп-{

 

,

 

а также

 

вектор

(b0,

 

Ь и . . . ,

bn-i)

и

соответствующий

ему

многочлен

b (х) = Ь0

+

Ьлх

+ . . .

+ bn-\xn~l.

Будем

считать

многочлены

а{х)

и b(х)

орто­

гональными, если выполняется условие а(х)Ь(х)

 

= 0.

Коэф­

фициент

при

х'

в

произведении

 

с (х)

— а (х)

b (х)

равен с} =

=

а0

bj + a ^ y - i +

. . . +

a.jb0

+

a1+xbn-X

+ . . . +an-\b}+x.

 

Слагае­

мые,содержащие

0 / + i , . . . , а„-\,

появляются

 

вследствие

сущест­

вования слагаемых в произведении, которые содержат хп+'.

Так

как

произведение

приводится

по модулю х" -+- 1, то

+

1 = 0 ,

т. е. хп

1 и xn+J

= xL

Равенство

для Cj можно

представить

в

виде

скалярного

произведения

 

Cj =

( а 0 ,

а , , . . . ,

а„_і)

 

 

 

Ь0, Ь „ _ і , . . . ,

bj+i). В

этом

произведении

первый век­

тор соответствует

а

(х),

а

второй

вектор

содержит

коэффици­

енты

b (х),

расположенные

в

обратном

порядке

и сдвинутые

циклически

на j -+-1

элемент

вправо.

 

 

 

 

 

 

 

 

 

 

Таким образом, если

произведение

а{х)Ь{х)

 

равно

нулю,

то

вектор,

соответствующий

 

многочлену

 

а(х),

ортогонален

вектору,

соответствующему многочлену

b (х),

компоненты ко­

торого расположены в обратном порядке,

и, кроме

того,

каж­

дому

циклическому

сдвигу

 

этого

вектора.

 

Верно

 

также

и обратное утверждение. Если

вектор

0 , а,,...,

 

а„_і) орто­

гонален

вектору

(bn-i, & „ _ 2 , . . . ,

Ь0) и

каждому

циклическому

сдвигу этого вектора, то а(х)Ь(х)

 

=

0.

 

Учитывая

данную

Специфику,

необходимо

при матричном описании

циклического

кода элементы матрицы проверок или порождающей

матрицы

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

будет

выпол­

нено условие G ( n

> k) Н(и, k) =

0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

П р и м е р .

Построить матрицу

проверок

для

циклического

(7,4) -кода

из предыдущего примера. Для построения

матрицы

проверок

находим про-

 

 

 

 

 

 

 

 

х7

+ 1

 

 

 

 

 

 

 

 

 

 

 

 

верочный многочлен h (х) = у——-—-г 1 + х + х* + Xі.

Отсюда

h

(х)

-

!

• х

х*

х*

1

1

1

0

1

(I

0;

х h

(х)

 

х

-~ Xі

X* х:'

— О I

I

1 0

 

1

0;

х2

(х) =

х2

-Ь л;:'

х<

f х л

= 0

0

1

1

1

0

1.

Найденные векторы записываем в качестве строк матрицы проверок

4(7,4) в

обратной последовательности:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1 0

1

1

Г

 

 

 

 

 

 

 

 

Н(7,4)

0

1 0

1 1 1 0

 

 

 

 

 

 

 

 

 

1 0

1 1 1 0

 

0

 

 

 

 

В

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

ненулевых

последовательностей длины

3. Следовательно, данный код явля­

ется кодом Хэмминга.

 

 

 

 

 

 

 

 

 

 

 

6.6.3.

Каноническая

форма

порождающей

 

и проверочной

матриц

Условимся

в кодовой

комбинации

циклического

(/г,

k)-кода

первые n

— k

элементов,

т. е. коэффициенты

при Л"°,

х\

х 2 , . . . ,

xn-k-i

^ использоБать в качестве

проверочных

элементов, а по­

следние k

элементов, т. е. коэффициенты при

хп-

 

 

 

 

в

качестве

информационных

 

 

(рис. 6.7).

Такое

разме­

щение информационных и проверочных

элементов

обусловлено

особенностями реализации кодирующих и декодирующих уст­

ройств

циклических

кодов.

 

 

 

 

 

 

 

 

о

_/

 

 

п-к

 

 

п-г

 

 

 

X

X ' '

• X X X

• • • X X

 

 

 

избыточные

 

 

(Інірормааионньїе

 

 

 

 

м ементы

 

зле

менты

 

 

 

 

 

r*L (х)

 

 

ас

fx)

• х а ' к

 

 

 

 

 

 

 

Рис. 6.7.

 

 

 

 

 

Методика формирования кодовой комбинации, соответству­

ющей

данной

структуре,

заключается

в

следующем.

Пусть

at(x)

есть

многочлен

степени k — 1, соответствующий

комби­

нации простого ^-элементного кода,

которую

необходимо за^

кодировать

циклическим

(п,

k)-кодом.

 

В

комбинации

цикли­

ческого ( « ,

&)-кода

данную

^-элементную

комбинацию

необ­

ходимо поместить на позиции информационных разрядов. Для

этого многочлен а,(х) следует

умножить

на хп~к.

В резуль­

тате получим многочлен xn~kai (х),

степень

которого

р а в н а я — 1 .

Потребуем выполнения признака делимости кодовой комбина­

ции на

g(x).

В общем случае

при

делении

хп~"аі(х)

на g

(х)

получается

частное qt

(х)

степени

k — 1 и остаток,

степень

ко­

торого

не превышает

n — k

1. Результат

деления

представим

в виде

 

 

 

 

 

 

 

. ., .

 

 

хп-*а,

(х) =

g (х) qt

{х) + г І

(х).

 

 

Рассмотрение многочлена rL (х)

4- xn~kai

 

(х)

показывает,

что

коэффициенты при х°, Xі,

 

х2,.

 

t-n-k

X являются

коэффици­

ентами остатка rt{x),

 

а

 

коэффициенты

 

при

 

степенях

хп~к,

х"~к+*,...,

 

 

хп~1 — элементами

 

первичной

кодовой

 

комбина­

ции

aL{x).

С

другой

стороны,

rt(x)

 

І - xn^kal

(х)

=

g

(х)

qt{x),

т. е. многочлен rt (х) + хп~ка1{х)

 

 

делится

на g

(х)

без

остатка.

Итак,

ri

(х)

-j- xn~kal

(х)

и

есть

искомая

кодовая

 

комбинация

циклического

(п,

 

к)-кода.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Теперь

можно

записать

порождающую

матрицу

цикличес­

кого

(п,

к)

-кода

в канонической

форме:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

G(n, k) = [ Rfcx(n-ft)lfc],

 

 

 

 

 

 

 

где

\k

— единичная

матрица

размеров

ky^k;

Rkx(n-k) — матрица

из k

строк

и п — k столбцов,

/-я строка

которой

соответствует

остатку

от

деления

х!+п~к~х

 

 

на

g

(х).

 

 

 

 

 

 

 

 

 

Матрица

проверок

в

канонической

форме

Н<п, *,

строится

на основании матрицы

G ( n , k ) ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Н(л,fc)= [l(n-fe)R*X(n-*)]-

 

 

 

 

 

 

 

 

П р и м е р .

Построить

порождающую матрицу

и

матрицу

проверок

в канонической форме для циклического (7,4)-кода

с порождающим много­

членом

g

(х)

=

I -j- х

+

х3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Находим остатки от деления х>

иа g (х)

и записываем

в форме равен­

ства

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn~kai

 

(х) =

g(x)qi(x)

 

 

 

+

П

(x).

 

 

 

 

 

 

 

 

 

 

 

 

 

=

g(x)-0

 

 

 

 

 

 

 

 

 

 

 

 

1 0

0

 

 

 

 

 

 

 

x=g(x)0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1 0

 

 

 

 

 

 

 

x*=g(x)-0

 

 

 

 

 

 

 

 

 

 

xi

 

0

0 1

 

 

 

 

 

 

 

xi

=

g(x)-l

 

 

 

 

+

1 +

x

 

 

 

1 1 0

 

 

H (7,4)

 

 

 

 

x*=g(x)-x

 

 

 

 

 

+

 

 

x- • X*

 

0

1 1

 

M X 3

 

 

 

 

X° = g (X)

(1 +

Jfl)

 

 

+

1 +x

-

x*

 

1

1 1

 

 

 

 

 

 

 

x* =

g(x)

(1 +X

+

X*)

 

1

 

+

x4-

 

1

0 1

 

 

 

 

Окончательно получаем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

1

0

0

0"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

O i l

 

0 1 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

° ( 7 , 4 )

 

-

1 1 1

 

0 0 1 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

0

1

о 0 0 1_

 

 

 

 

 

 

 

Из рассмотренного примера видно, что проверочная мат­

рица

Н(„, к)

циклического

 

(л,

k)-кода

 

содержит

в

качестве

столбцов остатки от деления л:0 ,

х,

 

х

2 , х п ~

х

на

порожда­

ющий

 

многочлен.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.6.4. Корректирующие

 

свойства

циклических

 

(п,

 

к)-кодов

 

Определение корректирующих свойств циклических (п, k) -ко­

дов

сводится к нахождению

минимального

кодового

расстояния

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

циклических

кодов.

 

 

 

 

Теорема

6.5. Для

любых

значений е

и t существует цикличе­

ский код длины я = 2 е — 1 , исправляющий

все ошибки кратности t

и менее и содержащий не более et проверочных элементов.

Рассмотрим пример практического использования этой тео­

ремы. Найдем циклические

коды

для е = 5 (я = 31), исправляю­

щие ошибки

кратности t=\,

2, 3. Определим количество избы­

точных элементов по заданным значениям t:

 

t = 1,

я — k = 5-1 = 5;

 

t =

2,

n —

k - 5 - 2

= 10;

 

t =

3,

n —

k = 5-3

= 15.

Таким образом, искомые коды есть (31,26), (31,21) и (31,16). Теорема 6.5 определяет лишь существование кодов с известными

корректирующими

свойствами. Построение

же кодов,

действи­

тельно обладающих этими свойствами, обеспечивается

правиль­

ным выбором порождающего многочлена.

 

 

 

 

Следующая теорема устанавливает связь между порождаю­

щим многочленом и минимальным кодовым

расстоянием.

 

Теорема

6.6. Если среди корней порождающего

многочлена

циклического (я,

k)-кода

имеются корни

вида $т°,

 

fym°+1,

p W

o + d ~ 2 , то минимальное

кодовое расстояние этого

кода равно

по

меньшей

мере

d. В

данной теореме используется

доказан­

ная в теории кодирования [49] возможность представления

корней

порождающего

многочлена

как

степеней

некоторого

числа

р.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.6.5. Выбор

порождающего

 

 

 

многочлена

 

 

 

 

 

 

 

 

 

для

циклического

 

кода

 

 

 

 

 

Порождающий

многочлен

для

(я,

я — 1 ) - к о д о в .

Одним

из

возможных

циклических кодов

длины 7 является (7,6) -код

с

g (х)

=

1 +

х.

Покажем,

что этот

код

образуется

на

основе

проверки на

четность всех

информационных элементов

кодо­

вой комбинации. Для этого найдем

проверочный

многочлен

п{х)

и

построим

проверочную

матрицу.

Определим

п(х)

=

=

(X7

+

1)/(1 +Х)

= 1 +X

+ X2

+ X* +

Xi

+

XF-' + X«

И

Н(7,в)

=

=[ 1 1 1 1 1 1 1 ] .

Таким образом, в рассматриваемом

 

коде

проверочным

с о ­

отношением

охвачены

все

элементы

кодовой

 

комбинации.

В общем случае для (я,

я — 1 ) - к о д а

при

любом

значении я

проверочный

многочлен

находится

как

h (х)

= (хп

 

+ 1)/(1 +

х).

Так как двучлены хп +

1 и

1 + х

имеют общий

корень

х=1,

то х" + 1 делится без остатка на

1 +

х

и

частным

от

деления

всегда является многочлен вида 1 + х

+

хг

+ . . .

+

хп~2

+

хп~х~

Итак, многочлен

вида 1 + х

порождает

(п,

п-~ 1) - код с

про­

веркой на четность по всем элементам.

 

 

 

Порождающий

многочлен

для общего

случая. Теорема

6.6

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

циклического кода и по его корням

определить корректирующие

свойства этого кода.

 

 

 

П р и м е р . Порождающий многочлен

g(x) =

1 + х + х3

(7,4)-кода, рас­

смотренного выше, имеет своими корнями

(З, Р2, р

4 . Требуется

определить кор­

ректирующие свойсіва этого кода.

 

 

 

Находим максимальное число последовательных степеней корней порож­

дающего многочлена. Это Р и Р2. Здесь то = 1, т0 + d2 = 2, откуда d = 4 — 1п0 = 3.

Использование теоремы 6.6 для выбора порождающих много­ членов циклических кодов, обладающих известными корректи­ рующими свойствами, предполагает знание корней многочленов. Поскольку порождающий многочлен циклического (п, k) -кода должен "быть сомножителем хп + \, то для построения всех воз­ можных кодов некоторой длины п, выбора порождающих много­ членов и установления их корректирующих свойств необходимо знание всех сомножителей хп + \ и их корней. Таблицы разложе­ ния хп+\ на неприводимые сомножители с указанием их корней в виде степеней некоторого корня р и циклические коды, пост­ роенные на их основе, приведены в работе [53].

 

П р и м е р .

Дано разложение х 1 5 + !

на

неприводимые

сомножители к

указаны корнл этих сомножителей как степени некоторого корня р.

 

 

 

Сомножитель

Степень

сомножителя

Корни

 

=

\ + х

 

 

 

1

 

315

= 1

 

 

=

1+

х + х<

 

4

 

32,

3*,

3 »

/ з М =

1 +

х + хї + х3

+ х*

4

р .

36,

З9, З1 2

ГЛх) =

1 + х

+

х2

 

2

 

310

 

 

 

 

 

 

 

 

 

 

 

 

 

h(x)

=

1 + хз

-\- X*

 

4

87,

з1 1 ,

з1 3 ,

3"

 

Требуется

выбрать порождающий многочлен для кода Хэмминга

(15,11) и

для

(15,7)-кода.

 

 

 

 

 

 

 

 

 

Для (15,П)-кода Хэмминга порождающий

многочлен должен иметь сте-

лень 4. Двучлен *| 5

+1 имеет своими сомножителями три многочлена степени. 4:

li(x),

h(x), fs(x').

Многочлен fa{x) имеет две последовательные степени корней

Р' и Р2 и, следовательно,

гарантирует dMiiH

= 3.

Многочлен }з(х)

не имеет по­

следовательных степеней корней и, следовательно, гарантирует лишь rfMHH = 2. Многочлен fs(x) имеет две последовательные степени среди корней Р1 3 и Р1 4 и,,

следовательно, гарантирует rfMHH = 3. Итак, для циклического кода Хэмминга:

(15.11) в качестве порождающего многочлена следует выбрать U{x)

или }s(x),.

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

!з(х).

 

 

Для (15.7)-кода

порождающий імногочлен должен иметь

степень 8. Мно­

гочлен такой степени можно получить тремя способами: (х)

}з(х), h(x) fs(x)

или /з (х)/ь (х). Естественно, желательно выбрать такой многочлен

который

обеспечивает максимальное з н а ч е н и е А н а л и з корней указанных

многочле­

нов показывает, что fi(x)

їз(х)

имеет четыре последовательные степени корней

Р$2 , р3 , Р4 и гарантирует rfMllH

=

5; fa(x) f5(x) имеет только две

последова­

тельные степени Р', Р2

или

Р7

, Р8

или З1 3 , Зі4, т. е. гарантирует

dum = 3;