Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги / Теория электрической связи. Помехоустойчивая передача данных в информационно-управляющих и телекоммуникационных системах модели, алгоритмы, структуры.pdf
Скачиваний:
12
Добавлен:
13.11.2023
Размер:
24.95 Mб
Скачать

5. ПРИМЕНЕНИЕ ГРУППОВЫХ КОДОВ В КАНАЛАХ И ТРАКТАХ СИСТЕМ ПЕРЕДАЧИ ДАННЫХ

Алгебраические коды, к которым относится групповой код, получи­ ли наиболее широкое применение в системах передачи дискретной ин­ формации. Они являются оптимальными в цифровых каналах с независи­ мыми и пакетирующимися ошибками. Это объясняется высокими коррек­ тирующими свойствами, регулярностью структуры, эффективными спосо­ бами построения и декодирования. В настоящей главе рассматриваются групповые коды, на примере которых демонстрируются некоторые общие подходы к заданию и реализации алгебраических корректирующих кодов. Здесь же приведены обобщенные структурные схемы кодирующих и де­ кодирующих устройств, даны оценки сложности их аппаратной реализа­ ции. Далее рассмотрено построение итеративных кодов Элайеса на базе групповых кодов.

5.1.Алгебраическое введение

Валгебраическом введении даны основные понятия и определения теории поля и векторной алгебры, необходимые для понимания принци­ пов реализации рассматриваемого класса кодов.

5.1.1.Группа, кольцо, поле

Группой (G) называется множество элементов, в котором определе­ на некоторая операция/(* ) и выполняется ряд аксиом.

Если основной операцией * является сложение (* —> +), то группа называется аддитивной, если же (*—>•), то группа называется мультипли­ кативной.

Аксиома 1. Замкнутость: для каждой пары элементов a,beG суще­

ствует, и притом единственный, элемент группы

c e G . c = a*b

= а + Ь, с = а Ь).

 

Аксиома 2. Ассоциативность: (а • Ь) • с = а с).

 

Аксиома 3.

Наличие единичного элемента: существует элемент

е GG, такой, что

а* е = е* а = а, где д е С .

 

Для аддитивной группы единичный элемент е = 0:

 

 

а + е =е + а = а +0 =0 + а —а.

 

Для мультипликативной группы единичный элемент е =\ :

 

а е = е а = а \ = \ а = а

 

Аксиома 4. Наличие обратных элементов: для Уа

е G существует

обратный элемент а €G ,такой, что а * а = а* д = е.

 

Для аддитивной группы обратный элемент определяется как реше­ ние уравнения а + а = а + д = 0 ,из которых а = -а .

Для мультипликативной группы обратный элемент определяется как решение уравнения а а = а а = 1 , из которых а = а ~х

Кроме перечисленных аксиом элементы группы удовлетворяют коммутативному закону, т. е. равенству

a*b = b * а[а + 6 = 6 + а\а Ъ - Ъ а

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

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

Группа, имеющая конечное число элементов, называется конечной. Порядком конечной группы называется число элементов группы.

Кольцом (К) называется множество элементов, на котором опреде­ лены операции сложения и умножения и выполняются следующие аксио­ мы:

Аксиома 1. Множество R является аддитивной абелевой группой. Аксиома 2. Замкнутость: для любых двух элементов ауЪ e R опреде­

лено произведение а 6 , которое является элементом R.

Аксиома 3. Ассоциативность: для любых трех элементов а ,6 ,C G R

справедливо равенство а ( 6 с) = (а 6 ) • с.

Аксиома 4. Дистрибутивность: для любых трех элементов а ,6 eR

справедливы равенства a (b + c) = a b + a- c и ( 6 + с ) а = 6 а + с а Кольцо называется коммутативным, если коммутативна операция

умножения, т.е. а 6 = 6 а. Примерами кольца являются:

1.Все действительные числа с операциями сложения и умножения.

2.Все множества положительных и отрицательных целых чисел

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

Полем (F) называется коммутативное кольцо с единичным элемен­ том по умножению (единичный мультипликативный элемент), в котором каждый ненулевой элемент обладает мультипликативным обратным эле­ ментом.

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

Поле, содержащее конечное число

элементов qy называется конечным

и обозначается GF(р) (Поле Галуа -

Galua Field). Порядком конечного по­

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

все элементы поля, кроме нулевого, поэтому мультипликативная группа поля порядка q имеет порядок q - 1 .

Примером конечного поля является простое поле, элементами кото­ рого служат вычеты по модулю простого числа р (mod р). Вычет опреде­ ляется как остаток от деления целого числа на модуль р.

Полная система вычетов по модулю простого числа р удовлетворяет всем законам поля (более подробно сравнения, вычеты, их свойства рас­ смотрены в п. 6.1). Таким образом, полная система вычетов по модулю простого числа р образует конечное поле порядка р . Его обозначают через GF(р) и называют простым полем Галуа.

Пример 5.1. Элементами поля GF(3) являются числа (вычеты) О, 1,2. Аддитивная группа GF(3) состоит из чисел 0, 1, 2, а мультиплика­ тивная группа - из чисел 1 , 2 :

+

0

1

2

 

1

2

0

0

1

2

1

1

2

1

1

2

0

2

2

1

2

2

0

1

 

 

 

Обратные элементы:

 

Обратные элементы:

- 1 = 2

 

 

 

 

Г ' = 1

- 2 = 1

 

 

 

 

2 " ' = 2

Поле GF(2): аддитивная группа состоит из чисел 0, 1, а мультипли­

кативная группа -

из числа 1 :

 

 

 

+

 

0

1

 

1

 

0

 

0

1

1

1

 

1

 

1

0

 

 

 

Обратные элементы:

Обратный элемент:

 

 

- 1 = 1

 

Г ' = 1

 

 

 

 

1- 1 = 1 0 1

 

 

 

Символ 0

 

обозначает логическую операцию «исключающее или»,

к которой сводится суммирование по модулю 2 в поле GF(2).

Совокупность целых чисел

по модулю р не

образует поле, если

только р не является простым, из-за отсутствия обратного мультиплика­ тивного элемента.

Пример 5.2. Рассмотрим совокупность вычетов по модулю р = 4. Аддитивная группа по mod 4 состоит из четырех элементов: 0, 1, 2, 3; мультипликативной группы из вычетов по mod 4 нет, т. к. отсутствует об­ ратный мультипликативный элемент:

+

0

1

2

3

1

2

3

0

0

1

2

3

1

1

2

3

1

1

2

3

0

2

2

0

2

2

2

3

0

1

3

3

2

1

3

3

0

1

2

 

 

 

 

Обратные элементы:

Обратные элементы:

- 1 = 3

1_ , = 1

-3 = 1

3_ ,=3

-2 = 2

2 " 1 - отсутствует

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

Расширенное поле GF(рп). Целые числа по модулю простого числа образуют поле порядка р. Оказывается, можно образовать GF порядка рп, где р - простое число. Но в этом случае расширенное поле состоит не из чисел, а из вычетов-полиномов по модулю неприводимого полинома сте­ пени к с коэффициентами из простого поля GF(р) [10,13,14].

5.1.2. Векторные пространства и линейные алгебры

Множество V называется векторным пространством над полем GF(p), если для него выполняются следующие аксиомы:

Аксиома 1. Множество V является абелевой аддитивной группой и, следовательно, для V справедливы все рассмотренные ранее аксиомы абелевой аддитивной группы.

Аксиома 2. Для любого вектора V и любого элемента поля с опреде­ лено произведение с V , являющееся вектором (элементы поля называют­ ся скалярами).

Аксиома 3. Дистрибутивный закон: если U ,V е V - векторы из мно­

жества V , а с - скаляр, то c-(U +V) = c -U + c -V

 

Аксиома 4. Дистрибутивный закон: если V - вектор, а с и d -

скаля­

ры, то (с + d) V = с V + d V

 

Аксиома 5. Ассоциативный закон: если V - вектор, а с и d -

скаля­

ры, то (с • d) V =c (d -V).

 

Таким образом, во всех аксиомах, определяющих умножение, в V используется только умножение на скаляр.

Множество А называется линейной ассоциативной алгеброй над полем F, если выполняются следующие аксиомы:

Аксиома L Множество А является векторным пространством над У7.

Аксиома 2. Для любых двух элементов и и V из А существует про­ изведение U V , определяемое как некоторый элемент из А.

Аксиома 3. Ассоциативный закон: для любых трех элементов U , V и W т А выполняется (U -V) -IV = (/ (V -W).

Аксиома 4. Дистрибутивный закон: если c u d - скаляры из F , а

U y V и W - векторы из А, то U (cF + diF) = cU F + dU W

Последовательностью длины п элементов называется упорядо­ ченное множество из п элементов поля, обозначаемое (а{уа2,—,ап), где каждый а. является элементом поля.

Сложение последовательностей длины п определяется следующим образом: (al,a2,...,a„) +(bl,b2,...,b„) = (al +Ь,,а2 +Ь2,...,а„ +Ьп).

Умножение последовательности длины на элемент поля определяет­ ся правилом: с(а1уа2,...уап) = (cal9ca2,...,сая).

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

Умножение последовательностей длины п может быть определено

так: (а1,а2,...уа„)-(Ь1,Ь2,...,Ьп) = (а} Ьь а2 -Ь2у...,а„ Ъ„).

 

Введение этой операции превращает совокупность последователь­

ностей в линейную алгебру.

 

 

 

Скалярное

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

двух

векторов:

(а,,а2,.-., Д„)х

 

+ а 2^2 + —+ аА )

Если скалярное произведения двух

векторов равно нулю, то говорят, что эти векторы ортогональны. Заметим, что все операции проводим по правилам GF(p), т. е. поля, над которым рассматриваем векторное пространство. Единичный элемент векторного пространства будем обозначать тем же символом «О», который использу­ ется для обозначения нулевого элемента поля. В совокупности всех по­

следовательностей длины п 0 = (0,...,0); 0 • V = О,

V е V

Линейной комбинацией т векторов {Fj,F2 ,...,Fm} называется сум­

ма вида

LJ = axVx + a2V2 +... + amVm, где ai е GF(р).

Совокупность векторов FJ,F2 ,...,Km называется линейно зависимой

тогда и только тогда, когда существуют скаляры

с ,,...,с т , не все равные

нулю,

такие, что cxVx+с2У2 +... + cmVm =0.

Совокупность векторов

Fj,K2 ,...,Fw называется линейно независимой, если она не является линей­ но зависимой.

Некоторая совокупность векторов порождает векторное пространст­ во, если каждый вектор векторного пространства представить в виде ли­ нейной комбинации векторов этой совокупности. Совокупность т линей­ но независимых векторов, порождающих векторное пространство, назы­ вается базисом пространства. В любом пространстве число линейно не­ зависимых векторов, порождающих пространство, называется размерно­ стью пространства (dim V - т).

Если V есть /и-мерное векторное пространство, то любая совокуп­ ность из т линейно независимых векторов, принадлежащих К, является базисом V.

5.1.3. Матрицы

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

а п ,

а 1 2 »

 

а 2\ *

а 22>

а 2п

 

 

. . . ,

_а т\>

а т2 »

а т п .

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

диагональю матрицы.

Пространством строк матрицы М размерности т х п называется совокупность всех линейных комбинаций векторов (строк матрицы). Оно образует подпространство векторного пространства последовательностей длиной п. Размерность пространства строк называется рангом по строкам.

Существует совокупность элементарных операций над строками:

1.Перестановка любых двух строк.

2.Умножение любой строки на элемент поля.

3.Прибавление произведения одной из строк М на ненулевой эле­ мент поля к другой строке матрицы.

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

Квадратная матрица, у которой на главной диагонали стоят едини­ цы, а всюду вне главной диагонали - нули, называется единичной и обо­ значается /.

Матрицей, транспонированной к матрице М размерности т х п , на­

зывается матрица МТ размерности

п х m , строками которой являются

столбцы матрицы Л/, а столбцами -

строки матрицы М. Транспонирован­

ной матрицей к матрице

j является матрица [ау7|.

Две матрицы размерности

m х п можно складывать поэлементно:

|a,yj +[^//] =

+ Ь,у]. При этом

определении матрицы образуют абелеву

аддитивную группу (напомним, что элементами матрицы являются эле­ менты поля).

 

Матрица |ау |

размерности т х к

и

матрица

размерностью

к х п

могут быть перемножены, причем матрица-произведение |c,yj раз-

мерности т х п получается по правилу

 

 

it

 

 

Су = Ysan *fy/ * Все операции вы-

 

 

 

 

 

 

 

/=1

 

 

полняются по правилам поля, над

которым

рассматриваются операции

с матрицами, т. е. по модулю числар .

 

 

 

 

 

 

Пример 5.3, Умножить матрицы.

 

 

 

 

 

 

'1

0"

 

 

 

'0

1

1

0"

 

 

1 1

0 1 1 0= 1 1 1 1

 

 

0

1_

_1

0 0

1

1

0

0

1

 

 

 

 

 

 

 

3 x 2

 

2 x 4

 

 

3 x 4

 

 

 

 

 

 

 

 

ы

 

 

 

 

 

 

 

к

 

 

 

 

 

 

 

 

 

сц = Z ai7 -by

 

 

 

 

 

 

Суммы попарных произведений элементов матриц вычисляются по

модулю 2 (поле GF(2)).

 

 

 

 

 

 

 

 

 

Подпространство V2 последовательностей длины п называется нуле­

вым пространством для подпространства V\ последовательностей длины

л, если VF е К2 ортогонален подпространству

V} или, что одно и то же,

ортогонален каждому из векторов, порождающих подпространство V]. Ес­

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

V

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

сти

1 х п , то V принадлежит нулевому пространству матрицы М размер­

ности т х п тогда и только тогда, когда V -А/т =

0.

 

 

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

равна т , то размерность нулевого пространства равна п - т .

 

Если V2 - подпространство

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

длины п и

нулевое пространство для V2, то У2 - нулевое пространство для Vx.

5.2. Групповые коды

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

минимальному весу кодовой комбинации. Действительно, по определе­ нию кодового расстояния = W {y{ 0 Vj), где Vi и Vj е V . Но согласно

аксиоме замкнутости линейная комбинация V\ 0 Vj=Vn е V Следователь­

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

5.2.1. Матричное задание группового кода

Поскольку векторы двоичного группового кода образуют векторное пространство последовательностей длины л над полем GF(2), то (л, т, d)-Ko& полностью задается порождающей матрицей кода G размер­ ности [тхп]:

(5.1)

у т\

V = (а1,а2,...,а11) 9 <2/ = 0 ,1 .

Строки порождающей матрицы G образуют базис векторного про­ странства V (л, w, ^0 -кода, размерность которого равна числу базисных векторов, т. е. dim V = /л, и является совокупностью т линейно независи­ мых векторов. Таким образом, Vv 0 c2V2 0 ...0 c mFm, ct =0,1, Vv e V, где V - векторное пространство двоичного группового (л, т, d)-кода, мощность которого N = -1, т. е. пространство состоит из N ненулевых векторов [15].

Пример 5.4. Порождающая матрица (5,3,2)-кода имеет вид

’1 0 0 1 0" > г

С[3х5] = 0 1 0 1 1 = Уг

0 0 1 0 1 Уз

Матрица G порождает все кодовое векторное пространство (5,3,2)- кода размерности dim К = 3, состоящее из N = 2 3 - 1 = 7 ненулевых векто­ ров:

cxVx Фс2У2 Фс3Гз,

Й = (1.7), с, =0,1

*3

С2

С|

-

V,

0

0

1

0

1

0

-

V2

0

1

1

-

vt®v2

1

0

0

-

v3

1

0

i

-

к3 е к ,

1

1

о

-

Г3 ф Г2

1

1

1

-

F3 e F 2 ® ^

Порождающей матрице кода G соответствует проверочная матрица Н размерности [4 х и ], где к - число избыточных символов кода, опреде­ ляемое как к = п - т . Строки матрицы Н являются базисом нулевого век­ торного пространства для векторного пространства, порождаемого матри­ цей G. Справедливо следующее матричное уравнение:

G • Ят = 0,

(5.2)

где # т - транспонированная матрица Я. Из (5.2) следует уравнение

V НТ = 0,

(5.3)

где V е К, т. е. для любого кодового вектора (л, т, й)-кода, принадлежаще­ го векторному пространству V, порожденному матрицей G, справедливо уравнение (5.3). Уравнение (5.3) можно записать в координатном виде

где at = 0,1; h~ - элемент транспонированной матрицы Я, стоящий на пе­

ресечении 1-й строки иу-го столбца. Из (5.3,а) следует, что для каждого из к столбцов транспонированной матрицы Н справедливо уравнение

£ a r * J = 0 ,O = U ) .

(5.4)

/=1

Соотношения (5.4) называются обобщенными проверками на чет­ ность.

Пример 5.5. Проверочная матрица (5,3,2)-кода из примера 5.4 име­ ет вид

1

1

0

1

0

^[2x5]

1

1 0

 

1

0

 

Обобщенные проверки на четность получим из уравнения (5.3,а):

1

0

 

1

1

 

{аха2аъа^а5)- 0

1

= (0,0) = (а, Ф а2Ф а4 = 0 , а2Ф а3Ф а5= 0).

1

0

 

01

5.2.2.Синдром группового кода

Синдром группового кода ( S ) вычисляется декодером как решение уравнения

 

V ' H T =S =(Si,s2,...,Sj,...,sk),

(5.5)

где V - V Ф е =(а{,а'2,

...,д^) -

искаженный вектор на входе декоде­

ра.

 

 

 

Таким образом, с учетом (5.5)

 

 

 

S = ё - Н Т =

) •|AJ |,

(5.6)

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

достаточно указать только место ошибки и затем проинвертировать ука­ занные разряды. Из уравнений (5.5) и (5.6) следует выражение для вычис­ ления значенияj-ro разряда синдрома:

s i = I X

й£= 2>,-.hjj , (J = 1,к ), s , = 0,1.

(5.7)

/=1

/=1

 

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

дрома и множеством исправляемых ошибок Е = £

справедливо сле­

 

1=оvz

 

дующее соотношение: 2к > Е = £

. Таким образом, мы получим верх-

i=0\l J

 

 

нюю границу Хемминга.

 

 

Пример 5.6. Проанализируем код (5,3,2) из примера 5.4. У данного кода dmin = 2 , т. е. этот код не может исправлять всевозможные однократ­ ные ошибки. Действительно, нетрудно убедиться в том, что не выполняет­

1(5

= 6 . Синдром в данном примере -

ся соотношение Хемминга 21 < £

1=0 \ 1

 

это двухразрядный вектор S = (уь -у2), значения разрядов которого со­

гласно (5.7) находятся из уравнений

 

=а\ 0 ^ 2

~ е\

\s2 = а 2 ® а3 ® а 5 =^2 ® е3 ® в5*

Тогда таблица соответствия значений синдрома и значений ошибки имеет следующий вид:

5,

S2

{<?;}

0

0

0

1

0

е,,<?4

0

1

е3,е5

1

1

е2

Неоднозначность соответствия подтверждает невозможность ис­ правления всевозможных однократных ошибок анализируемым (5, 3, 2)- кодом.

5.2.3. Групповой систематический код

Кодовые векторы группового систематического кода (ГСК) имеют формат вида

т.е. на первых слева подряд идущих т позициях располагаются информа­ ционные символы кода, а на последующих подряд идущих к позициях - избыточные символы кода. Информационные символы кода будем обо­

значать через {al},/ = l,w , а избыточные символы - через {с; },у = 1Д . В общем случае, как видно из (5.8),

ai(i=m+Un) С/(./=I.*) *

ГСК нашел широкое применение на практике по ряду причин:

1.Сохраняется в неизменном виде исходная, т. е. кодируемая в не­ избыточном (первичном) коде информационная часть.

2.С меньшими задержками, т. е. существенно проще реализуются операции кодирования и декодирования информации.

Порождающая матрица G группового систематического кода имеет приведенно-ступенчатую форму:

' 1

0

 

0

P i t

P \ 2

P u '

0

1

 

0

P l \

Ргг

P l k

G = [lmP]=

 

 

 

 

 

 

0

0

0

1

P m l

P l m

P m k .

где - единичная матрица размерности [тхт];

Р - кодирующая мат­

рица размерности [тхк].

В этом случае операция кодирования в ГСК может быть представ­ лена как умножение информационного вектора и = (д ,, а2 ат ) на G:

 

u- G = V

(5.10)

В координатной форме данное уравнение имеет вид

 

(fl|

*[^m^>]= (fll>fl2>**-» Д|»***»^т >С|,...,Су,...,С^),

(5.10, а)

т ---

C /= £ a iP i/J = U -

/=1

Выражения вида (5.10а) для вычисления избыточных разрядов ГСК по известным информационным разрядам называют операторами коди­ рования.

Проверочная матрица ГСК

H = [ P TI k ],

(5.11)

где /^-транспонированная кодирующая матрицаР; Ik - единичная матрица размерности х к ].

Пример 5.7. Построим порождающую и проверочную матрицы ГСК (5,3,2), рассмотренного в примере 5.4:

 

"1

0

0

1

0

Г т 1

"1

1

0

1

0 "

С = [/Зр]= 0

1

0

1

1 ;

Н = \РТ12\=

 

 

 

 

 

 

 

 

 

L

*■J

0

1

1

0

1.

 

0

0

1

0

1

 

 

 

 

 

 

 

 

 

 

Из

(5.10) следует,

что

)м = (<з,,а2 3 )|-[/3 /»]= К = (а ,,а 2 3 ,с ,,с 2).

Тогда операторы кодирования имеют следующий вид:

 

 

 

 

 

 

с ,= а ,Ф а 2,

с2 = а 2 Ф а3.

 

 

 

 

Из

(5.3) и (5.3,а)

V ■Н Т =0,

т. е.

(ai,a2 ,^3»ci»c2)*[^T^2] “ (0 >0 )-

Следовательно, справедливо, что

 

 

 

 

 

 

 

 

Га, Ф а2 Фс, =0;

 

отсюда

 

ГС\ = а ,Ф а 2;

 

 

\а 2 0 а3 Ф с2 = 0,

 

с2 =а2 ® а3.

 

 

 

 

 

 

Отметим, что благодаря приведенно-ступенчатой форме матриц G и Я получается система из к алгебраических уравнений, в каждом из кото­ рых содержится по одной переменной, и упрощаются процедуры кодиро­ вания и декодирования в ГСК. Любые линейные алгебраические коды, исправляющие однократные ошибки, т. е. коды с dm\n = 3 и dmin = 4 называются кодами Хемминга. Тогда, как следует из уравнения (5.7), син­ дром ГСК Хемминга совпадает со столбцом проверочной матрицы Я, но­ мер которого соответствует номеру ошибочной позиции. Для кодов Хем­ минга иногда выбирают другую форму представления кодовых векторов,

при которой избыточные разряды расположены на позициях кодового слова, номера которых равны степеням двойки. В этом случае синдром представляет собой двоичное число, указывающее номер пораженной по­ зиции. В данном разделе ГСК Хемминга будут рассматриваться как част­ ный случай ГСК с форматом вида (5.8).

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

Блок-схема алгоритма построения ГСК представлена на рис. 5.1. Приведенный обобщенный алгоритм синтеза операторов кодирова­

ния пригоден для любого алгебраического кода с точностью до раскрытия ряда операторов. Ниже алгоритм рассматривается для ГСК и оговарива­ ются некоторые особенности его применения для других типов кодов:

1. Исходные данные. Ими являются: число информационных симво­ лов кода (т) либо множество передаваемых сообщений (М); модель кана­ ла связи; допустимая вероятность правильной либо искаженной передачи сообщения (вероятность правильной передачи или вероятность трансфор­ мации). Пусть задан канал связи с независимыми ошибками, описываемый биномиальным распределением ошибок с вероятностью ошибки на сим­ вол, равной ).

2.Выбор типа кода, оптимального для заданной модели канала свя­ зи. Для каналов связи с независимыми ошибками оптимальными являются групповые коды и циклические (БЧХ) коды. Если бы канал описывался моделью канала с памятью, то необходимо было бы выбрать коды, опти­ мальные в каналах с пакетирующими ошибками, например циклические коды Файра, Абрамсона, перемежающиеся и др. Итак, мы выбрали ГСК.

3.На данном шаге алгоритма реализуются операторы 3, 4 и 5, свя­ занные с выбором методом перебора параметров кода: корректирующей способности (.у), числа избыточных символов (к), которые обеспечивают требуемые характеристики достоверности передачи информации. Для ГСК выбор параметров кода осуществляется с помощью верхней границы Хемминга. Для БЧХ-кодов аналогичная задача решается с помощью гра­ ницы существования кода БЧХ. Итак, из границы Хемминга для фиксиро­ ванных значений т и последовательно перебираемых значений s опреде­ ляются длины кодовых слов п = т + к. Для каждых п и s находится веро­ ятность правильной передачи сообщения Рпр= Р(т):

(5.12)

Рис. 5.1. Обобщенная блок-схема алгоритма построения алгебраического (ГСК) кода

Далее значение Япр сравнивается с [Рд], допустимой вероятностью правильной передачи кодового слова (сообщения). Если Рпр < [Ра], то кратность исправляемых ошибок увеличивается на единицу и расчет по­ вторяется, иначе переходим к оператору 6 .

4. Выбор ближайшего табличного кода [14]. Граница Хемминга н является границей существования кода и потому не гарантирует сущест­ вования ГСК с параметрами, определенными на предыдущих шагах алго­

ритма. Поэтому обращаемся к табличным ГСК и находим ближайший код (лт, тъ dT), удовлетворяющий условию dT > d , т. е. sT > s9mT > т .

5. Выбор укороченного кода. Отыскиваем число i = /ит - /я, на кото­ рое укорачиваем число информационных символов кода, т.е. реализуем переход от параметров табличного кода к укороченному коду:

(лт ,/ят ,^ т ) ——l >(nT - i imT - i td) =(n,m,d). Найденный укороченный код и является искомым кодом, т. к. удовлетворяет всем исходным данным. В принципе после этого шага можно уточнить значение Р(т) (5.12), кото­ рое должно измениться за счет уменьшения длины кода на величину i .

6 . Построение операторов кодирования. Операторы кодирования (5.10,а) табличных кодов приводятся в стандартных таблицах ГСК [14]. Для построения операторов кодирования укороченного ГСК необходимо в операторах кодирования табличных кодов зачеркнуть / первых инфор­ мационных символов (а ,,а 2>•••»**/)•

Пример 5.8. Проиллюстрируем приведенный алгоритм на примере построения ГСК, исправляющего однократную ошибку, т. е. кода Хемминга с dm\n= 3 и dmj„ = 4. Выберем в качестве исходных данных т = 4, s = 1. Следует отметить, что в данном примере из методических соображений опущена переборная часть алгоритма, связанная с анализом логического условия, т.к. это чисто вычислительная процедура, загромождающая при­ мер. Напомним, что из границы Хемминга отыскиваются параметры ко­ дов с нечетным кодовым расстоянием. Далее будет показано, как перехо­ дить от кодов с нечетным кодовым расстоянием </н»исправляющих ошиб­ ку кратности s, к кодам с ближайшим большим четным кодовым расстоя­ нием ((d4 = J H + 0 »исправляющим s-кратные ошибки и обнаруживающим ошибки кратности г = s + 1 .

С учетом изложенного в данном примере отыскиваем операторы кодирования для ГСК Хемминга с */min = 3 и т = 4:

1 + п *

1 +п

Перебором устанавливаем параметры кода: л = 7, /и = 4, А = 3, т.е. (7,4,3)-код. Такой код существует, и операторы кодирования можно выпи­ сать из стандартной кодовой таблицы ГСК. Ниже покажем, как можно са­ мостоятельно строить операторы кодирования по проверочной матрице ГСК. Для этого рассмотрим построение проверочной матрицы Н. Не­ сложно показать, что столбцами матрицы являются ^-разрядные ненуле­ вые двоичные векторы, образующие линейно-независимые множества из r - d - 1 векторов. Данное утверждение основано на следующем. Если ГСК обнаруживает ошибки кратности г и меньше, то синдром, определяе-

мый из (7.7), должен быть ненулевым при умножении вектора ошибки ве­ са г и меньше на Я.

Для построения матрицы Я размерности [кхп] ГСК Хемминга дос­ таточно в качестве п столбцов выписать различные ^-разрядные ненуле­ вые двоичные векторы. В рассматриваемом примере построим провероч­ ную матрицу Я ' размерности [3x7]:

“0

 

0

0

 

1

1

 

1

1"

Я ' = 0

 

1

1

0

 

0

 

1 1 .

1

0

 

1

0

 

1

0

 

1

Далее с помощью эквивалентного преобразования (перестановка столбцов) приведем матрицу Я ' в приведенно-ступенчатую форму Я вида (5.11):

“1

1

0

1

1

0

0

# = 1

1

1

0

0

1

0

1

0

1

1

0

0

1

Из (5.3) и (5.3,а) следует

 

 

 

 

 

 

(ах,а2>аг,ал,сх,с2,сг)Щ ^ = а ,

(i = 1,7; у = 1,3).

Откуда и получаются искомые операторы кодирования:

с, =ах0

я2 0

 

а4;

 

с2 = ах0 а 2 0 д 4;

(6.13)

с3 = ах0

а3 0

а4.

 

Пусть и = (ах,а2,а3,ал) = (1101), тогда с учетом (6.13)

V = (ах,а 2,аъ,аА,си с2,съ) ^ { \ Ш \ Щ .

Пусть потребовалось укоротить построенный код (7,4,3) на i = 2 информационных символа, т. е. перейти к укороченному коду (5,2,3): (7,4,3)—^ —>(5,2,3). Тогда операторы кодирования (5,2,3)-кода можно построить по операторам кодирования (5.13), используя правило, сформу­ лированное в п. 6 алгоритма:

с, - а 4\

 

с2 = а 3;

(5.13,а)

с3 = а3 0

я4.

Вектор укороченного (5,2,3)-кода имеет вид

К = ( а 3 4 12 ,с3)= = (0 1 1 0 1 ).

Рассмотрим переход от кода с нечетным кодовым расстоянием dH к коду с ближайшим четным кодовым расстоянием d4 = dH+ \ . Для такого пе­ рехода достаточно ввести еще один дополнительный избыточный разряд с*+ь значение которого определяется из общей проверки на четность:

т

к

 

<*+, = 2 > /© 2 > у

(5.14).

/=1 ./=1

Таким образом, если параметры исходного кода (л, т, dH\ то пара­ метры кода с d4 = du + 1 таковы: л+ 1, т, d4y т. е. число информационных символов сохранилось, а число избыточных символов увеличилось на один.

Пример 5.9. Для кода (7,4,3) из примера 5.8 код (8,4,4) будет кодом с ближайшим большим четным кодовым расстоянием. При этом дополни­ тельный избыточный разряд общей проверки на четность

С4 = Ц а,-Ф '£с/ .

/=1 y=i '

Если в (5.14) подставить выражения для Cj из (5.10,а), то уравнение (5.14) упростится. Можно предложить следующее правило вычисления Ос+\ через информационные символы исходного (л, т, */н)-кода.

Правило. Если информационный символ входит четное число раз в операторы кодирования (л, т, </н)-кода (5.10,а), то он сохраняется в (5.14), если же информационный символ входит нечетное число раз, то он не сохраняется в выражении (5.14).

С учетом сформулированного правила и операторов кодирования кода (7,4,3) в выражении (5.13) уравнение для с4 имеет следующий вид: с4 = а2 © а30 а4. Тогда вектор кода (8,4,4)

V=(л| ,а2 3 4 12 3 ,с4) = (1 1 0 1 1 0 0 0 ).

5.2.5.Декодирование группового систематического кода

Декодер ГСК реализует синдромное декодирование, суть которого основана на вычислении синдрома в соответствии с уравнениями (5 .5 ),

(5.6) и (5.7). Итак, синдромное декодирование состоит из следующих эта­ пов:

1. По принятому кодовому вектору V' = V 0 ё находим синдром

S= (•£]

2.С учетом (5.6) и (5.7) по вычисленному значению синдрома одно­ значно отыскиваем вектор ошибок ё = (e],e2 ,...fej,...ien).

3.Производим исправление ошибок и выдачу скорректированного кодового слова (сообщения) получателю: V = V 0 ё, либо стирание полу­

ченного кодового слова, если кратность ошибок в кодовом слове s' удов­ летворяет соотношению s < s '< i\ где г - кратность обнаруживаемых ошибок.

Пример 5.10. Проиллюстрируем синдромное декодирование на примере кода (8,4,4) из примера 5.9. В процессе данного примера будет сделан ряд замечаний общего характера, связанных с реализацией коррек­ тирующих возможностей кода с четным кодовым расстоянием. Итак, для кода (8,4,4) уравнение (5.5) с учетом (5.13) имеет вид

Sj = а{ 0

а2

0

а\ 0

с,;

 

 

s2 = а\ 0

о!2

0

яз 0

с2; >(7,4,3)

 

 

s 2 = Д] 0

а2 0

а \ 0

с3;

(8,4,4)

(5.15)

s4 = 2 > ; е

ХУ,-.

 

 

 

1=1

./=I

 

 

 

 

Отметим, что (5.15) согласно (5.6) и (5.7) можно записать и через вектор ошибок: ё = (e],e2 ,e3 ie4 ,eSie6 telye%) . Синдром кода (8,4,4) - это че­ тырехразрядный вектор: s =(sb s2 is3 ,s4), у которого первые три разряда

(в общем случае

^-разрядов)

вычисляются

согласно

уравнениям кода

(л ,т,^ н)-(7,4,3),

а последний

четвертый

разряд s4

(в общем случае

(£ + 1 )-й разряд) - согласно общей проверке на четность,

 

 

 

т

к+1

 

(5.16)

 

 

,=1

У=1

 

 

 

 

 

При этом минимизация выражения (5.16) недопустима. Таким обра­

зом, общая структура синдрома кода

(л + 1, т, d4

= dH + 1) такова:

S =

При этом первые ^-разрядов вычисляются по (5.5),

(5.6) для кода (л, т, </н)> а последний + 1)-й разряд - по (5.16) для кода (л+1, т, </ч). При декодировании кода Хемминга с dmjn = 4, исправляющего

одну и обнаруживающего две ошибки, анализ кратности ошибок в кодо­ вом векторе К7 на входе декодера производится в соответствии с табл. 5.1.

 

Таблица 5.1

S\, S2,..., $

S/c S/H-l Кратность ошибок в векторе V 9

п/п

 

1

0

0

2

* 0

1

3

* 0

0

4

0

1

Ошибок нет

Ошибки нечетной кратности, в частно­ сти однократная ошибка Ошибки четной кратности, в частности двукратная ошибка Ошибки в символе с*+\

Вданной таблице символ «0» означает, что все координаты вектора нулевые; символ «*0 » показывает, что хотя бы одна координата вектора ненулевая.

Таким образом, декодер исправляет однократную ошибку в ситуаци­ ях 2 и 4 и стирает сообщение при двукратной ошибке (ситуация 3).

Врассматриваемом примере для кода (8,4,4) при исправлении одно­ кратной ошибки таблица соответствия значений синдрома и места ошиб­

ки - это табл. 5.2.

Таблица 5.2

Si S2 S3

s4

{«,}

0

0

0

0

0

0

0

1

1

Ч (сз)

0

1 0

1

Ч (С2)

0

1

1

1

ез (яз)

 

 

 

 

1

0

0

1

Ч (ci)

1

0

1

1

Ч (а4)

1

1

6

1

ег (а2)

1

1

1

1

Ч (а0

0

0

0

1

Ч (с4)

 

*0

0

2кр

Значения (Si, S2, S3) совпадают с соответствующим столбцом матри­ цы Н кода (7,4,3) в примере 5.8.

Комбинационная схема для обнаружения двукратной ошибки и сти­ рания сообщения при аппаратной реализации строки 3 табл. 5.1 представ­ лена на рис. 5.2,а. На рис. 5.2,6 показана реализация схемы стирания для кода (8 ,4,4).

S,

-

 

S\

_| 1

 

1

 

 

 

&

s->

-

SJ

-

Е

&

Sk

J

 

S3

 

 

 

 

с, ..

 

 

S4

 

Sk+l

 

 

 

 

 

e - S * +1

V^Sy-

e = S4 y S j

Рис. 5.2. Комбинационная схема, реализующая стирание кодовой комбинации с двукратной ошибкой для

(л+1, т, 4)-кода (а) и для (8 ,4 ,4)-кода (б)

Аппаратная реализация кодеров и декодеров ГСК и оценка сложно­ сти будут рассмотрены более подробно в последующих параграфах.

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

к суммированию хранящихся в памяти столбцов проверочной матрицы Н

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

ошибок, подобной табл. 5.2, содержащей 2 строк. Таким образом, затраты ячеек памяти для аппаратно-программной реализации в микропроцессор­ ном базисе синдромного декодирования также определяются величиной

5.2.6. Кодеры групповых систематических кодов. Оценка сложности аппаратной реализации

Обобщенная функциональная схема кодера ГСК приведена на рис. 5.3. Обозначения, принятые на схеме: БР„, - входной буферный ре­ гистр m-разрядного информационного вектора ГСК; {я,} - последователь­ ный вход БР,„; а\, а2 я , ат - параллельные входы БРШ; У\ - управ­ ляющий вход мультиплексора для выбора режима работы: приема инфор­ мационных символов, поступающих последовательных информационных символов {я,} либо приема символов параллельно во времени; У2 - управ­ ляющий вход демультиплексора для выбора режима выдачи кодового век­

тора: последовательно во времени {я,} или параллельно во времени; У2 и У4 - управляющие входы выбора режима работы БР„, и БР„; НУ (R) - вход начальной установки БРт (сброс в «О»); СИ (РУ) - соответственно вход синхронизации либо сигналы с выходов распределительного узла; КМПС - комбинатор проверочных (избыточных) символов, т. е. схема, реализующая операторы кодирования; БР„ - выходной буферный регистр л-разрядного вектора ГСК.

Рис. 5.3. Обобщенная функциональная схема кодера ГСК

Кодер ГСК в общем случае представляет собой (а, ^-многополюс­ ник, т. е. схему с а входами и Ъ выходами [11]. В зависимости от способа представления во времени входного и выходного сигналов кодера, режи­ мов использования буферных регистров информационных символов (БР,„) и выходного кодового вектора (БР„) возможны следующие варианты зна­ чений а и Ь: ( 1 , 1), (m, 1), (1 , л), (т, л).

Поясним данные обозначения: (1, 1) - информационные символы последовательно подаются на вход БР„, и последовательно считываются с одного выхода БР„, при этом БР,Ни БР„ переводятся соответственно в ре­ жимы последовательной записи и считывания; (т, 1) - информационные символы параллельно подаются на вход БРП| и последовательно считыва­ ются с одного выхода БР„; аналогично объясняются оставшиеся два обо­

значения. Следует добавить, что варианты (1, 1), (т, 1) и (1,.и) предпочти­ тельны в системах телемеханики, в трактах ПД и системах связи, а варианты (т, п) и (m, 1) чаще встречаются в системах хранения информации.

Кроме того, различают два типа комбинаторов проверочных симво­ лов (КМПС) - параллельный и последовательный, в зависимости от пред­ ставления во времени сигнала на их входе. При этом в КМПС параллель­ ного типа на один из входов конъюнкторов подается синхросигнал, а в КМПС последовательного типа на эти входы последовательно во вре­ мени поступают сигналы с выходов распределительного узла.

Пример 5.11. Рассмотрим развернутые функциональные схемы ко­ деров (8 , 4, 4)-кода с параллельными и последовательными КМПС, реали­ зующими операторы кодирования (5.13) и (5.14) из примера 5.8. На рис. 5.4 приведена развернутая функциональная схема кодера ГСК (8 , 4, 4)- кода с КМПС параллельного типа, реализованного в базисе трехвходовых сумматоров по модулю 2. На вход КМПС информационные символы по­ ступают параллельно во времени по выделенным шинам (сигналы подоб­ ного типа называются сигналами, разнесенными в пространстве).

Рис. 4.4. Развернутая функциональная схема кодера (8 ,4 ,4)-кода

сКМПС параллельного типа

Вцелом кодер (8 , 4, 4)-кода, изображенный на рис. 5.4, в соответст­ вии с классификацией, данной выше, является (4, 8 )-многополюсником.

Рассмотрим реализацию кодера ГСК с КМПС последовательного типа, на вход которого информационные символы поступают последова­ тельно во времени по выделенным шинам (сигналы подобного типа назы­

ваются сигналами, разнесенными во времени и в пространстве). В этом случае КМПС реализуется в базисе дизъюнкторов, а функции сумматоров по модулю 2 выполняют триггеры со счетным входом в составе БР„.

На рис. 5.5 приводится развернутая функциональная схема кодера (8 , 4 ,4)-кода с операторами кодирования (5.13) и (5.14).

Разнесение сигналов (информационных символов) во времени и в пространстве на входе КМПС обеспечивает распределительный узел, выходы которого стробируют конъюнкторы на выходе БРт.

Рис. 5.5. Развернутая функциональная схема кодера (8 ,4 ,4)-кода

сКМПС последовательного типа

Вкодере, реализованном по схеме (1, 1) на основе КМПС параллельного типа, которая нашла широкое применение в трактах передачи данных, блоки из т информационных символов поступают на вход БР,„ непрерыв­ но. После каждого блока из т символов подается синхроимпульс, считы­ вающий информационные символы на вход КМПС, который вырабатыва­ ет к избыточных символов; при этом в БР„ записывается л-разрядный век­ тор ГСК. В течение следующих т тактов записи очередного блока инфор­ мационных символов в БР„, из выходного буферного регистра БРЛдолжен быть выведен блок из п символов. Следовательно, скорость считывания

информации из БРЛ(f2) должна быть в п/т раз больше скорости записи информации в БРЛ| (/J). Поясним это.

Действительно,

m r 1 п \ п г m -t\ =n t2; h = — tx- , f 2 = — =-------= —/ 1,

п t2 т /, т

где t\ (/2) - длительность тактов работы БРт (БР„).

В соответствии с обобщенной функциональной схемой кодера ГСК, приведенной на рис. 5.3, верхняя оценка сложности кодеров ГСК через число элементов памяти и комбинационных элементов может быть пред­ ставлена так:

^эл = Л»эп + Лэп + Ю *m o d 2 + "»& ,

(5 .1 7 )

где т к m(Mj 2 - верхняя оценка числа двухвходовых сумматоров по mod 2 или дизъюнкторов в составе КМПС (параллельного или последовательно­ го типа); тэп, лэп - число элементов памяти (ЭП) в составе БР„, (БРЯ); т& - число двухвходовых конъюнкторов на выходе БРт.

5.2.7. Декодеры групповых систематических кодов. Оценка сложности аппаратной реализации

Обобщенная функциональная схема декодера ГСК приведена на рис. 5.6. Обозначения на данном рисунке, совпадающие с аналогичными обозначениями на рис. 5.3, дополнительно не поясняются.

Рис. 5.6. Обобщенная функциональная схема декодера ГСК

На входы декодера параллельно либо последовательно во времени поступают неискаженные или искаженные кодовые векторы ГСК. В сис­ темах передачи информации (системах связи) используются последова­ тельные сигналы на входе декодера, а в системах хранения информации - параллельные сигналы на входе декодера.

Декодер ГСК так же, как и кодер ГСК, в общем случае представляет собой (д, 6 )-многополюсник. В зависимости от способа представления во времени входного и выходного сигналов декодера и режимов использова­ ния входного (БР„) и выходного (МБР„) регистров декодера возможны сле­ дующие варианты значений а и b: (1, 1), (л, 1), (1, л), (п, п). Пояснения при­ водимых вариантов декодеров ГСК аналогичны тем пояснениям, которые давались выше для кодеров ГСК.

В составе декодера выделим: входной буферный регистр (БР„); кор­ ректор, который состоит из устройства вычисления синдрома (УВС) и де­ комбинатора синдрома (ДКМС) и реализует однозначное соответствие между значением синдрома и вектором ошибки; выходной многорежим­ ный буферный регистр (МБР,,).

Возможны разные варианты реализации корректора, некоторые из них будут рассмотрены ниже.

Скорректированная информация хранится в многорежимном буфер­ ном регистре (МБРЛ) декодера. МБР,, состоит из многофункциональных триггеров с установочным и счетным входами, что позволяет реализовать процедуру записи в МБР,, исходного вектора и коррекции ошибок. Через б обозначен выход ДКМС (корректора), равный единице при обнаружении ошибок и обеспечивающий стирание полученного сообщения. Информа­ ция с выхода МБР,, может считываться последовательно либо параллельно во времени, что обусловлено режимом использования МБР,,.

Выделим две реализации УВС - параллельного и последовательного типа в зависимости от представления во времени сигнала на входе УВС.

Пример 5.12. Рассмотрим развернутые функциональные схемы де­ кодеров ГСК с УВС параллельного и последовательного типа, реализую­ щих уравнения (5.15) для ГСК (8 , 4,4) из примера 5.10. На рис. 5.7 показа­ на развернутая функциональная схема декодера с УВС параллельного ти­ па, реализованы в базисе сумматоров по модулю два, а на рис. 5.8 - раз­ вернутая функциональная схема декодера ГСК (8 , 4, 4) с УВС последова­ тельного типа. В данном случае УВС состоит из комбинатора синдрома (КМС) и буферного регистра синдрома с к триггерами со счетным входом, каждый из которых реализует суммирование по модулю для определенных групп символов (согласно (5.15)), поступающих последовательно во вре­ мени на вход КМС.

Рис. 5.7. Развернутая функциональная схема декодера ГСК (8, 4, 4) с УВС параллельного типа

Рис. 5.8. Развернутая функциональная схема декодера ГСК (8, 4, 4) с УВС последовательного типа

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

Л^эл —2/1эп + + п • £mod2 + тъп+ 2& ,

(5.18)

где 2лэп - число элементов памяти в БР„ и МБРЯ; тзп -

число элемен­

тов памяти в БРС; п ктод 2 - верхняя оценка числа двухвходовых

к

сумматоров по модулю два или дизъюнкторов в составе УВС; 2& - верхняя оценка числа £-входовых конъюнкторов в ДКМС; в том слу­ чае, если вместо ДКМС используется ПЗУ векторов ошибок, то сложность ПЗУ равна 2 п элементов памяти; - число двухвходовых конъюнкторов на выходе БР„.

Как видно из приведенной оценки (5.18), основным недостатком синдромных декодеров ГСК является показательный рост сложности де­ комбинаторов синдрома при аппаратной реализации или ПЗУ ошибок при аппаратно-программной реализации. Для преодоления этого недостатка были предложены другие виды линейных алгебраических кодов (цикличе­ ские, коды с подстановками, каскадные и т.д.) и алгебраические методы (алгоритмы) декодирования [9,10,12,13,14], не рассматриваемые в настоя­ щем разделе.

Пример 5.13. Приведем пример использования кодеров и декодеров ГСК в системе хранения информации для коррекции ошибок в данных, считываемых из оперативного запоминающего устройства (ОЗУ).

На рис. 5.9 изображена функциональная схема защищенного с по­ мощью ГСК (12, 8 , 3) ОЗУ Обозначения, принятые на схеме: БРД - бу­ ферный регистр данных, в который заносится информация из шины дан­ ных перед записью в ОЗУ; ИБРД - инвертирующий буферный регистр данных, состоящий из многорежимных триггеров с установочным и счет­ ным входами, в котором исправляются искаженные символы перед считы­ ванием в магистраль данных. Остальные обозначения аналогичны обозна­ чениям, использованным ранее на рис. 5.6, 5.7, 5.8. В приведенном приме­ ре используются КМПС (кодер) и УВС параллельного типа, реализован­ ные на многовходовых сумматорах по mod 2 , обозначенных на рис. 5 .9 символом

КОДЕР

г Ш б - 1 - А у

-ID5-0- В Z

-1-IC0-

-ГОЗ-1- С

-ID1-0- D

 

-ID0-1- Е

 

-ID6-1- А у

 

-ID5-1- В Ь

-0IC1-

-ID3-1- С

-ID2-0- D

 

-ГОо-1- Е

 

-ГО7-0- А I

 

-ШЗ-1- В

-1-IC2-

-Ш2-0- С

 

-ID1-0- D

 

-П)7-0- А Z

 

-ID6-1- в

-0-IC3-

-Юз-1- с

 

-Ш4-0- D

 

МАТРИЦА УВС ПАМЯТИ

 

-д~

I

 

 

- с

 

 

-D

 

 

•Е

 

Й

Т

О

 

 

-OD2-0- D

 

о

 

 

 

н Т

-OD1-0- D I 0С2-1-F

-OD7-0

0 D6-1 Z

-С -D - ’ОСЗ-ОН£.

ДЕКОМБИНАТОР

СИНДРОМА

X/Y

Y,1

-O -i

-1-S0- А

 

 

 

 

Y 2

- o -

-1-Sl - В

Y3

- 0 -

Y, - 1 -

 

-1-S2- с

Y5

- 0

-

Y« - 0

-

 

 

Y 7

- 0

-

-0-S3- D

Y 8

- 0

-

дкме

-OD7-0- И БРД -0-DB7

-OD6-1- -1-DB6 -OD5-1- -1-DB5 -OD4-0- -0-DB4

-OD3-0- -1-DB3 -OD2-0- -0-DB2

-ODl-O- -0-DB1

-OD0-1- -1-DB0

ИНВЕРТИРУЮЩИЙ БР

Рис. 5.9. Пример использования кодеров и декодеров ГСК параллельного типа для исправления и обнаружения ошибок в данных, считываемых из ОЗУ

5.3. Итеративные коды

Итеративные коды были предложены Элайесом в 50-х годах и яви­ лись прекрасным конструктивным подтверждением справедливости вто­ рой теоремы Шеннона (теоремы существования). В ней говорилось о воз­ можности передачи информации по каналам с шумом с вероятностью ошибки, стремящейся к нулю, при скорости передачи информации, стре­ мящейся к пропускной способности канала (или некоторой константе). В основе кодов Элайеса лежат групповые систематические коды.

5.3.1. Двухмерный итеративный код

Структура двухмерного итеративного кода (ДИК) Элайеса имеет следующий вид:

а\л

 

 

а \,2

ahml

1

Q ./II, +1

С,,,,

 

 

1

 

 

 

 

 

 

1

 

 

 

а2 ,\

 

а2,2

а 2,/и,

1

Q .//I, +1

 

 

1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1

с

 

с

ат, ,1

&т 2 Л

а т 2 ,л»|

1

,//ij +1

1

 

2 +1,л,

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

Г

 

1

с

 

с

^/я

 

+ J

Q I2 +!,2

 

1

 

j

 

 

||

 

»»2 + l.« j +1

'“'/и 2 +I,/Ij

 

1

1» 2 +11

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

с "2’wl

1

с

 

с /12 .1/,

Спг%1

с„2.

1

 

 

'-'и , ,/II| +1

Здесь

можно выделить

информационную

матрицу размерности

2 х т

 

. е. состоящую из т2

строк и пц столбцов. Каждая строка коди­

руется в ГСК (п|, ти 4), а каждый столбец - в {пъ т2у4). В последнем (4-м) квадранте располагаются избыточные символы проверки проверок.

Пример 5.14. Построим двухмерный итеративный код. Для просто­ ты рассмотрения примем, что в качестве кодов строк и столбцов использу­ ется один и тот же ГСК - (8,4,4) с операторами кодирования (5.13), (5.14) из примера (5.8).

Результат кодирования информационной матрицы [4x4] в ДИК имеет следующий вид:

ООП

1

1 0 1 0

1

0 0 0 1

1

0 1 1 1

1

1 0 0 0

1

1 1 1 0

1

1 1 0 0

1

0 1 0 1

1

 

1

 

 

1

 

1 0 1 0

1

ООП

1

0 1 1 1

1

0 0 0 1

1

1 1 1 0

1

1 0 0 0

1

0 1 0 1

1

1 1 0 0

1

Для ДИК справедливы следующие соотношения:

где */(2) - кодовое расстояние ДИК; d\ и d2 - соответственно кодовые рас­ стояния ГСК строки и столбца (для ДИК согласно рекомендациям Элайеса </, = < /2 = 4 и < /(2)= 16);

л(2) = л, - л2.

(5.20)

где л(2)- длина ДИК; п1у п2 - соответственно длины ГСК строки и столбца;

/и(2) - т х т2,

(5.21)

где nf2)- длина информационной части ДИК; /иь tn2 -

соответственно дли­

ны информационных частей ГСК строки и столбца;

 

д(2> = ”'i Щ -

(

[ ( 5 . 2 2 )

м, • п2

щ

п2

где *<2) - скорость передачи информации ДИК.

Определим вероятность ошибки при передаче сообщения ДИК (р(2)) по двоичному симметричному каналу с вероятностью ошибки на символ р. Вероятность ошибки при передаче сообщений (лj, m]f 4)-кодом строки, исправляющим одну и обнаруживающим две ошибки,

Р\*П\ р 2

(5.23)

Вероятность ошибки при передаче сообщений (;ь, /и2, 4)-кодом столбца, исправляющим одну и обнаруживающим две ошибки,

р {2) « п 2 1 ) 2 =n2 -nf р 2 2

Таким образом, порядок малости р(2) = 0(р4).

Пример 5.15. Пусть р= 10 3 Тогда вероятность ошибки при переда­ че сообщений кодом (8,4,4) р\ « 8-10-6, а вероятность ошибки при передаче сообщений ДИК р(2)« 0,5-1 О*9. Выигрыш очевиден.

Различают два подхода к декодированию ДИК: матричный и итератив­ ный. Поясним их суть. При матричном декодировании ДИК кодовая таблица просматривается дважды - по строкам и столбцам (однократный просмотр таблицы). При каждом просмотре реализуется корректирующая способность кода. Если в результате такого просмотра (декодирования) ДИК (кодовой таб­ лицы) сохраняется признак стирания столбца, то стирается все сообщение и фиксируется ошибка при передаче информации ДИК.

При итеративном декодировании ДИК кодовая таблица просматри­ вается неограниченное число раз, до тех пор, пока результаты декодирова­ ния строк или столбцов не совпадут.

Как было показано выше, ДИК по Элайесу имеет dm\n = 16 и должен исправлять всевозможные ошибки кратности s = 7 и меньше и обнаружи­ вать ошибки кратности г = 8 . В то же время существуют определенные комбинации ошибок меньшей кратности (четырехкратные, шестикрат­ ные), которые не исправляются. К таким «плохим» конфигурациям оши­ бок относятся «прямоугольники», т. е. конфигурации, при которых ошиб­ ки расположены в двух строках и двух столбцах (четырехкратные); шес­ тикратные, если они расположены в двух строках и трех столбцах. Совер­ шенно очевидно, что «плохие» конфигурации неисправляемых ошибок со­ ставляют малую долю всех возможных конфигураций исправленных оши­ бок.

Отметим, что при итеративном декодировании доля «плохих» кон­ фигураций меньше, чем при матричном декодировании. Например, при матричном декодировании не исправляются конфигурации типа «трапе­ ций», когда четырехкратные ошибки располагаются в двух строках и трех столбцах. В работе [И] более подробно рассматриваются алгоритмы мат­ ричного декодирования ДИК при различной корректирующей способно­ сти кодов строк и столбцов. Существенным недостатком итеративного ал­ горитма является то, что он вносит значительно большую задержку в про­ цедуру декодирования, чем матричный алгоритм. Кроме того, матричный алгоритм проще реализовать в аппаратном базисе.

На рис. 5.10 и 5.11 приводятся обобщенные функциональные схемы соответственно декодера и кодера ДИК (лгя2, т\тг> d \d 2). При этом деко­ дер реализует матричный алгоритм. Обозначения на рисунках аналогичны обозначениям на рис. 5.3 и 5.6. Кодирующее устройство ДИК строится из кодеров строк и столбцов и двух демультиплексоров (DMX), осуществ­ ляющих упорядочивание кодовых векторов строк и столбцов. Сложность декодера является суммой сложностей декодеров кодов строк и столбцов с добавлением сложностей реализации буферных регистров и коммутаци­ онной схемы на основе демультиплексора, которые линейно изменяются в зависимости от длины итеративного кода. Существенным моментом при оценке сложности реализации кодера и декодера является то, что их слож­ ность оценивается суммой сложности кодеров и декодеров строк и столб­ цов, в то же время длина и кодовое расстояние ДИК равны произведению длин и кодовых расстояний кодов строк и столбцов.

Рис. 5.10. Обобщенная функциональная схема декодера

двухмерного итеративного кода (п\-п2, т\-т2з d\d2)

j=1 ^ 2

5.11. Обобщенная функциональная схема кодера двухмерного итеративного кода (п\ п2, тгль, d\d2)

5.Э.2. /-мерный итеративный код (/ИК)

При увеличении мерности итеративного кода уменьшается доля не­ управляемых ошибок и, следовательно, снижается вероятность ошибки при передаче сообщений /-мерного итеративного кода (/ИК). Покажем это на примере трехмерного итеративного кода (ТИК), структура которого приведена на рис. 5.12.

(n\,m u d\)

>

(л3, т 3> </з)

а*

IHJ

Рис. 5.12. Структура трехмерного итеративного кода

ТИК состоит из кодовых таблиц ДИК, рассмотренных в п. 5.2.8.1. Число кодовых таблиц ДИК определяется кодом третьей мерности (л3, /я3, d3 = 4), и, следовательно, общее число таблиц равно л3, из них тъ инфор­ мационных и кг избыточных. Пусть операторы кодирования кода (л3, т 3, 4) взяты из примера 5.8 для кода (8,4,4):

4

= a f

 

4

= 4

 

cl

= 4

(5.24)

Тогда первые тъ = 4 информационных таблиц строятся по правилам ДИК, а последние А3 = 4 - строятся по следующему правилу: элементы таблицы Сь стоящие на пересечении /-й строки иу-го столбца 4 , отыски­

ваются из уравнения для c f в (6.24), при этом в качестве информационных

символов берутся элементы таблиц 4 ,4 , 4 с теми же координатами; по аналогии заполняются таблицы С2 3 ,...,С*3 , соответственно с элемента­

ми матриц 4 , 4 , . . . ^ . В рассматриваемом примере кода (8,4,4) элементы

матриц С2 3 4 - с2 'сЗ' с 4 находятся с помощью соответствующих

уравнений из (5.24).

Таким образом, «плохая» конфигурация ошибок типа «прямоуголь­ ника» для четырехили шестикратных ошибок в ДИК исправится с помо­ щью ТИК, благодаря тому, что все искаженные элементы имеют разные координаты / и j и, следовательно, попадут в разные кодовые слова кода (л3, т з> 4) и будут исправлены. По аналогичным правилам строятся четы­ рех-, пятимерные и т. д. итеративные коды. При этом элементами /-мерного кода являются кодовые таблицы предыдущего (/-1)-мерного кода.

Рассмотрим характеристики /-мерного итеративного кода.

 

„(О =

т

(0

_

4 (0

= Г К >

 

(5.25)

 

—Г К ;

 

= П К

 

 

V=1

 

 

v=l

 

v=l

 

 

где л(,), т®, d® -

соответственно длина, число информационных символов

и кодовое расстояние /ИК.

 

 

 

 

„ 2 ,/-2

 

 

P o l

„ 2

4-2

п 2 '

*

Л 1

(5.26)

= И/ ni-\

 

п 2

 

где Рош “ вероятность ошибки при передаче сообщений /ИК; р - вероят­ ность ошибки на символ в двоичном канале связи; л, - длина кода /-й мер­ ности.

Из (5.26) следует, что при /—>оо /7^ —>0, так как сомножитель р 2

при р < КГ3 стремится к нулю быстрее, чем растет величина произведения остальных сомножителей.

Согласно рекомендациям Элайеса параметры групповых кодов Хемминга с dmin = 4 для каждой мерности /-мерного итеративного кода выби­

раются из следующих соотношений:

 

 

 

л, = 2 Г + /- 1 ,

к. = г + /;

г >3

 

(5.27)

где л, и kj - соответственно

длина и

число

избыточных

символов

(л„ n,—kh 4)-кода Хемминга для

/-й мерности; г -

константа.

Например,

пусть г = 3, тогда параметры ГСК Хемминга соответствующей мерности таковы:

/ = 1 ,

И| = 8 ,

*1 = 4:

(8,4,4),

/ = 2 ,

п2= 16,

*2 =5:

(16,11,4),

i = 3,

из =32,

*з= 6 :

(32, 26,4),

i = 4,

и4= 64,

*4=7:

(64,57,4) и т.д .

Определим скорость передачи информации /ИК:

Л(0 = rid - ^ ) = п (1 - ^ г

) •

(5.28)

V=1

«V v=l

2

 

 

Выражение (5.28) получено с учетом (5.27),

lim

= 1, т. к. 2r+'Ml

 

 

 

|->00

 

растет быстрее, чем г + v.

Таким образом, действительно, /ИК Элайеса является конструктивным подтверждением теоремы Шеннона о кодировании в канале с шумом.

5.3.3. Применение двухмерного итеративного кода в системе хранения информации, реализованной на стандартных магнитных накопителях

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

Системы хранения информации в ПЭВМ реализуются на основе сравнительно дешевых стандартных накопителей с жесткими и гибкими магнитными дисками, сменными картриджами на магнитных и магнитно­ оптических носителях, и, следовательно, для указанных накопителей тре­ буются недорогие реализации методов обеспечения надежного хранения информации.

Из-за возможных дефектов магнитных накопителей (МН) хранящая­ ся на них информация подвержена различным искажениям.

В настоящем разделе описывается способ защиты информации, хра­ нящейся на магнитных накопителях, основанный на использовании двух­ мерного итеративного кода (п\ п2>/Я|/я2, dydj) = (51218, 51012, 3*4) и реа­ лизованный в соответствующем программном пакете [16]. Отметим, что длина кода и длина информационной части измеряются в байтах.

На МН как носителе информации выделяется:

-уровень физического формата, позволяющего разбить поток ин­ формации на адресуемые блоки-секторы;

-уровень логического формата, решающего задачу структуриза­ ции массива блоков информации - секторов.

Для каждого уровня рассмотрения МН имеют место свои виды по­ вреждения, искажения данных и их проявления.

На уровне физического формата дорожки возможно возникновение 3 ситуаций, связанных с искажением и выявляемых аппаратурой:

1.Не найден сектор, точнее, его заголовок.

2.Не обнаружен маркер (адресная метка) идентификатора сектора либо маркер данных.

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

3. Искажены данные сектора. Это обнаруживается с помощью быточных символов CRC - контрольной суммы секторов, которая подсчи­ тывается аппаратно при чтении данных сектора и сравнивается с записан­ ной.

На уровне логического формата проявляются ошибки: 1) чтения загрузочного сектора;

2)чтения таблицы размещения файлов - FAT;

3)чтения каталога (-ов);

4)чтения файла, т. е. собственно данных.

При этом возможно существование одновременно всех 4 ошибок, связанных с повреждением информации на накопителе.

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

Так как системная область (загрузочный сектор, FAT, корневой ка­ талог) находится в непрерывной области дискового пространства, то соот­ ветствующие ее избыточные сектора располагаются сразу за ней также не­ прерывным блоком:

ттттт ккккк.

Избыточные сектора (Л) для собственно данных (т) чередуются с по­ следними:

тк тк тк тк тк.

Всостав программного кодека (кодера и декодера) для защиты дан­ ных на магнитных накопителях входит программа разметки МН, резерви­ рующая место для избыточных секторов. Драйвер помехозащищенного обмена с магнитным накопителем осуществляет прозрачное кодирование / декодирование записываемой / считываемой на МН информации.

Вописываемом ДИК код строки (ль т и 3) = (512, 510, 3) использу­ ется в режиме обнаружения ошибок. Обнаруживаются не менее двух оши­ бочных байтов. В ПЭВМ код строки реализуется аппаратно. Код столбца ДИК (л2, т 2, 4) = (18, 12, 4) используется в режиме исправления одной

и обнаружения двух ошибок. В целом корректирующая способность ДИК ccf2) = 1 2 реализуется программно с помощью программного кодека (драйвера). Разработанный и внедренный алгоритм декодирования позво­ ляет восстановить информацию при повреждении любых трех секторов и определенных конфигураций искаженных секторов большей кратности в кодовой группе из 18 секторов по 512 байт каждый (вся дискета разбита на кодовые группы по 18 секторов каждая).

Очевидно, что подобная система защиты информации на МН вносит следующие виды избыточности: информационную, временную (связанную с увеличением времени доступа и уменьшением скорости обмена), про­ граммную (в виде памяти, занимаемой драйвером обмена с МН в оперативной памяти ПК, и в виде памяти, занимаемой программным па­ кетом на жестком диске).

Информационная избыточность для реализованного (л2, *я2, 3)-кода (18,13) составляет 27,8%; для (л2, т 2,4)-кода (18,12) - 33,3%.

При записи данных увеличение времени доступа примерно в 2-3 раза, по сравнению с исходным, связано с необходимостью считывать с МН неизменяемые сектора из кодовой группы, к которой происходит обращение (но только при первом обращении к ней), и записывать затем измененные избыточные сектора.

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

Программная избыточность в пакете: драйвер обмена с МН занимает около 40 кбайт основной памяти, однако можно загружаться в верхнюю память или при необходимости драйвер может быть выгружен из памяти и загружен снова. В состав пакета входит утилита, предоставляющая поль­

зователю интерфейс

для работы с

файловой системой, такой же, как

и Norton Commander,

и автоматически

загружающая драйвер обмена с МН

при запуске и выгружающая при окончании работы с ней.

Размер дискового пространства, занимаемого пакетом на жестком диске при полной инсталляции, составляет 2 0 0 кбайт.

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

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

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

При отсутствии повреждений (отказов или сбоев) магнитного носи­ теля временные характеристики защищенного диска (время обращения

кдиску) практически не отличаются от характеристик исходного диска.

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

Вприложении 1 приведены реализации комбинаторных и декомбинаторных устройств ГСК в среде моделирования MATLAB.

Контрольные вопросы к главе 5

1.Построить порождающую матрицу G для ГСК (6,3,3) и вычис­ лить проверочные символы.

2.Построить проверочную матрицу Н для ГСК (7,4,3) и вычислить проверочные символы.

3.Построить порождающую матрицу G для ГСК (6,3,3) и построить уравнения и таблицу декодирования синдрома.

4.Построить проверочную матрицу Н для ГСК (7,4,3) и построить уравнения и таблицу декодирования синдрома.

5.Определить параметры ГСК для следующих исходных данных:

ю= 5, Рош= ИГ*, Рпр.доп = 0,99999.

6. Построить кодер ГСК (6,3,3) с комбинатором проверочных сим­

волов (КМПС) параллельного типа.

7. Построить кодер ГСК (7,3,4) с комбинатором проверочных сим­ волов (КМПС) последовательного типа.

8 . Построить декодер ГСК (6,3,3) с устройством вычисления син­ дрома (УВС) параллельного типа.

9. Построить декодер ГСК (7,3,4) с устройством вычисления син­ дрома (УВС) последовательного типа.

10.Построить двухмерный итеративный код (коды строк и столбцов - ГСК (5,2,3)). Привести пример неисправляемых конфигураций ошибок.

11.Для итеративного кода из п. 10 привести пример использования двух процедур декодирования - матричную и итеративную.

6 . ПРИМЕНЕНИЕ ЦИКЛИЧЕСКИХ КОДОВ В КАНАЛАХ

СНЕЗАВИСИМЫМИ ОШИБКАМИ

6.1.Алгебраическое введение

6.1.1. Определения и терминология

Циклические коды (ЦК) принадлежат к классу алгебраических ко­ дов. Характерной особенностью циклических кодов является полиноми­ альное представление кодовых векторов, а также применение алгебры многочленов для кодирования и декодирования [13,14,15].

В основе циклических кодов - алгебра многочленов по двойному модулю: по модулю полинома 0 сл- 1) и по модулю 2 , поэтому вводится сле­ дующее обозначение: model (*я-1 , 2). Поскольку все операции в простран­ стве циклических кодов проводятся в поле Галуа (GF(2)), то операция сум­ мирования по модулю 2 считается операцией по умолчанию, всегда подра­ зумевается и исключается из обозначения. Поэтому в обозначениях цик­ лического кода присутствует только модуль полинома, относительно ко­ торого производится вычисление.

Для циклического кода характерно представление кодового вектора V (я0, Дь • • ч ап-\) длины п в виде полинома (многочлена) У(х) степени (л-1) над полем Галуа GF(2):

У(х) = а0 Ф а1хФ а 2 х 2 Ф Ф ап_{х п =

л—1

(6 .1)

 

/=о

где коэффициенты at являются координатами в векторном представлении.

6.1.2. Операции над пространством циклических кодов

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

1. Сложение. Поскольку коэффициенты Дг=[0,1], то все действия осуществляются по модулю 2. Поэтому если переменная х1 встречается четное количество раз, то результат суммирования равен 0 , в противном случае - самому значению х\ Например,

(10JC20Jt3)C20JC4)= 1JC20X30JC20JC4= 10дс30дс4

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

(10 x W )-{ 1 Фх) = 1Фх2© .*3© * ® .* 3® * 4 = 1©хФх2Ф;е4

3. Деление. Согласно правилам алгебры деление полиномов мож представить в следующем виде: F(x}=Q(x)-P(x)(BR(x) 9 где F(x) - делимое, Q(x) - делитель, Р(х) - частное, R(x) - остаток от деления. Операции сло­ жения и умножения полиномов проводятся по рассмотренным выше пра­ вилам. Например,

ф *5 е х 3 Ф 1

х * ® х 2 ® \

Xs Ф X4 Фх2

X2 ® х

х4 Ф х3 Ф х 2 Ф 1

Фх4 Ф х3 Фх

х2 © х © 1

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

F(x) = R(x)modQ(x).

(6.2)

Используя рассмотренные операции над полиномами,

перейдем

к вопросам формирования циклических кодов. При реализации множеств кодовых комбинаций (полиномов) необходимо рассмотреть порождающее их векторное пространство. Векторное пространство циклических кодов образуется путем формирования полиномов, сдвинутых друг относительно друга на определенное количество разрядов. В полиномиальном представ­ лении операция циклического сдвига (Т) эквивалента умножению полино­ ма на х в определенной степени:

7У(х) = ая_, ® а0 х ® а хх 2 0 ...Ф ап_2 х п~х,

Т2 У(х) = ап _ 2 Ф ал_,х Ф а0 х 2 Ф ... Ф а„_3 х л~х,

Вдругой форме записи формула выглядит так:

ТУ(х) = х У ( х ) m od(x"-l).

Необходимо отметить, что максимальная степень полиномов цикли­ ческого кода не превышает л - 1, поскольку рассматриваются многочлены по модулю (хМ ).

Операция циклического сдвига может быть записана в следующем виде: TV(х) = Л(х) mod (хМ ). Покажем справедливость данного представ­ ления.

7 У(х) = а0х Ф ахх 2 Ф ... Ф ап_2 х п 1 Ф ап_хх п

ф ап-\хП ® ап-2 хЛ ] Ф —Ф а\х 2 Ф аох

х п - 1

а„-Хх п - а п_х

ап_х

ап_2 хл_| Ф ... Ф ахх 2 Ф а0х Ф ап_х

 

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

6.1.3. Образующие полиномы циклических кодов

Рассмотрим основы формирования пространства циклических ко­

дов.

Утверждение. Можно подобрать два таких полинома g(x) и й(х), что будет выполняться равенство

xM=g(x).A(x). (6.3)

Полином g(x), который получил название «порождающий», обяза­ тельно имеет максимальную степень к (количество избыточных символов циклического кода) и минимальную степень 0. Полином h(x)> который по­ лучил название «проверочный», обязательно имеет максимальную степень т (количество информационных символов циклического кода) и мини­ мальную степень 0. Полиномы представляются в следующем виде:

g W ^ o ® # ! * ® ^ * 2 ® - ® ^ * *

(6.4)

 

/=0

h(x) = h0 Ф A,JC®к2 х г ® ...® hmx m =

(6.5)

 

1=0

Порождающий полином g(x) составляется путем перемножения не­ приводимых многочленов (такие многочлены делятся без остатка только на 1 и на самих себя - аналог простых чисел в арифметике). Некоторые та­

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

Пример 6.1. Задан циклический код (7,4,3). Для него может быть за­ дан порождающий полином #(х)=1в.х2Ф;с3. Определим проверочный поли­ ном h(х) следующим образом:

ф

JC7 -1

 

I

JC3 Фл:2 Ф1

 

 

|_______________

 

х 7 Ф х6 Ф х4

х 4 Ф х3 Ф х2 ®1

„.д:6© *4 - !

 

 

0

х 6 Ф х * Ф х 3

 

 

 

_ ДС5 0 ДС4 ©

X 3 -

1

0

дс4 0

х г

 

 

дс5 0

 

ф Д С 3 ©

^ -

1

 

х3 0 х 2 0 1

о

В результате вычисляется проверочный полином А(л;)=10дг20 х30 дг4 Порождающий и проверочный полиномы используются для задания цик­ лического кода.

Для описания векторного пространства циклических кодов вводится понятие идеал (7) - класс вычетов (остатков от деления), порожденных оп­ ределенным полиномом. Дадим определение циклического кода с исполь­ зованием указанного понятия.

Определение. Циклический код - идеал в алгебре многочленов по модулю (**-1), порожденный полиномом g(х) и его циклическими сдви­ гами,

7«W = {0 >g (*)> xg(x),..., x m-'g(x),..., дг"4 }.

(6 .6 )

Видеале рассматриваются только полиномы степени не старше л-1,

атакже полиномы, делящиеся Hag(x) без остатка.

Видеале выделяется базис размерности /и, состоящий из т много­

членов,

= {*(*)>•*£(*).... х т~'ё(х)}-

(6.7)

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

x ‘g (x )® x j g(x) = (*' ® x J)g(x).

Максимальная степень полинома g(jc) равна к, максимальная степень множителя х равна т - 1 , поэтому степень образованного указанным спосо­ бом полинома циклического кода не превысит л-1. Таким образом, все многочлены циклического кода, порожденные одним полиномом g(x), де­ лятся на указанный полином без остатка.

6.1.4. Задание циклических кодов корнями порождающего полинома

Рассмотрим основной способ формирования (задания) циклического кода - задание корнями порождающего полинома g(x).

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

Теорема 6.1. Для любых целых положительных чисел h и s сущест­ вует циклический код длины п = 2 Л- 1 , исправляющий .s-кратную ошибку. Количество избыточных символов к при этом определяется из следующего неравенства: к ^ s h (для исправления ошибки каждой кратности требуется h дополнительных (избыточных) символов).

Теорема 6.2. Все полиномы, принадлежащие циклическим кодам, имеют s общих корней из ряда а ь а 3, ..., а^ч- Каждому корню ставится в соответствие минимальный (неприводимый) многочлен (полином): гп\(х), т 3(х), ..., m2s-\(x). Минимальные (неприводимые) многочлены де­ лятся без остатка только на 1 и на самих себя. Если вместо переменной х в полином циклического кода подставить один из корней (т. е. соответст­ вующий ему минимальный многочлен), то полином обратится в ноль.

Доказательства приведенных теорем рассмотрены в [14], поэтому они вынесены за рамки данного учебного пособия. Воспользуемся выво­ дами теорем для задания циклических кодов.

Для задания циклического кода (расчета параметров кода) восполь­ зуемся соотношениями, сформулированными в теореме 6.1. Для разных значений s и h можно рассчитать количество избыточных символов к и общую длину кода п. Поскольку параметр к рассчитывается по равенству, то полученные результаты называют табличными: т т, пТ и кт Таким обра­ зом, можно сделать вывод, что указанные соотношения представляют со­

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

Определим табличное значение длины информационной части тт следующим образом:

mT =nr - к т=2h - l - S h .

(6 .8 )

Значение длины информационной части т9 для которой необходимо построить циклический код, должно быть не больше тТ: m <тт Посколь­ ку в качестве исходных данных для расчета имеется информация о m и s, то в образованном неравенстве имеется только одно неизвестное (И):

m<2 h - \ - S - h .

(6.9)

Неравенство решается методом подбора. Подобрав параметр А, оп­ ределяются значения лт, тп и кт

Далее необходимо перейти к укороченному циклическому коду для того, чтобы длина информационной части была т , а не тт Поскольку ко­ личество избыточных символов кода определяет его корректирующие свойства, то при укорочении кода уменьшать их нельзя. Поэтому умень­ шается длина информационной части на г = mT - т , а значение к = ктне

изменяется

 

(/»T,OTT,</min)—i->(иТ- i,m T - i ydmin).

(6 .1 0 )

Указанным способом определяются параметры циклического кода. Укороченные коды относятся к псевдоциклическим, так как для них

не выполняется условие замкнутости относительно операции циклическо­ го сдвига. Корректирующие свойства укороченных кодов лучше (меньше вероятность трансформации) за счет меньшей длины при таком же коли­ честве избыточных символов. Можно считать, что старшие i разрядов ин­ формационной части укороченного кода равны 0 , и для компактности представления их не учитывают.

Для определения порождающего полинома g(x) воспользуемся соот­ ношениями, сформулированными в теореме 6.2. Из минимальных много­ членов определяется порождающий полином g(jt) как наименьшее общее кратное, что для минимальных многочленов эквивалентно их произведе­

нию:

 

g(jc) = HOK(mf(*) = П m2 i-i (*)•

( 6. 11)

/=1

 

Минимальные многочлены разных степеней рассчитаны и сведены в таблицу следующего вида:

Таблица 6.1

3 4 5

<Х| {»*,(*)}

«3

W * )}

Определив параметры циклического кода и вид порождающего по­ линома g(x), можно считать задание кода законченным.

Существуют эвристические соотношения, связывающие параметры кода (т, dmint s) с параметром А:

<СГ = 2* - 2 - 1,»!™ = А +1,5 ПИХ= 2*-‘ -1 .

(6.12)

Рассчитаем параметры для некоторых табличных кодов.

А= 3, s = 1: тТ=23-1-1 -А = 4, табличный код (7,4,3).

А= 3, s = 2: mT=2 3—12 -/z = 4, табличный код (7,1,5).

А= 4, 5 = 1: mT=24-l-l*A = 4, табличный код (15,11,3). h = 4, s = 2 : mT=2 412 */z = 4, табличный код (15,7,5).

Обратим внимание, что табличный код строится для нечетного

^minУказанному варианту соответствуют коды со следующими корректи­ рующими способностями:

коды, исправляющие ошибки кратности не более s, поскольку из­ вестно, что для таких кодов dmin = 2 s+ 1;

коды, обнаруживающие ошибки четной кратности не более г, по­ скольку известно, что для таких кодов dm\n= г + 1 ;

коды, исправляющие ошибки кратности не более s и обнаружи­ вающие ошибки кратности не более г (г > .у), причем s и г имеют одинако­ вую четность, поскольку известно, что для таких кодов rfmj„ = s + г + 1 .

Для кодов с нечетным dmin, обнаруживающим и/или исправляющим ошибки, расчет параметров осуществляется способом, рассмотренным выше для кодов, исправляющих ошибки.

Варианту кодов с четным dmin соответствуют коды со следующими корректирующими способностями:

коды, обнаруживающие ошибки нечетной кратности не более г, поскольку известно, что для таких кодов dm\n= г + 1 ;

коды, исправляющие ошибки кратности не более s и обнаружи­ вающие ошибки кратности не более г (г > 5 ), причем s и г имеют разную четность, поскольку известно, что для таких кодов dmin = s + г + 1 .

Для построения кодов с четным rfmin необходимо использовать пара­ метры ближайших к ним кодов с меньшим нечетным dm\n. Расчет парамет­ ров кода осуществляется следующим образом. Сначала рассчитываются параметры кода, исправляющего ошибки с нечетным dmini на 1 меньшим,

чем рассматриваемое

При этом определяется параметр s как

 

 

(<*■»■- ц - 1

 

f f ~

2

Переход от кода с нечетным dm\n к коду с ближайшим четным dmin, обнаруживающему и/или исправляющему ошибки, производится с учетом следующих соотношений (табл. 6 .2 ):

 

 

Таблица 6.2.

d Ht4CT

m m

=<гечет + 1

min

min

n

 

n

m

 

m -\

кk+\

(n,m-l,dmn+I)

*<*)•(1 0 ДГ)

Из таблицы видно, что переход осуществляется путем уменьшения длины информационной части т на 1, увеличения длины избыточной час­ ти к на 1 (за счет чего сохраняется неизменной общая длина л), а также формирования нового порождающего полинома путем домножения таб­ личного полинома g(jc) на полином (10х). Поэтому расчет параметров ко­ да с ^niin67 необходимо проводить для значения длины информационной части, равно + 1), чтобы учесть ее дальнейшее уменьшение на 1 .

Пример 6.2. Рассчитать параметры БЧХ-кода, обнаруживающего ошибку кратности г = 2, при длине информационной части т = 6 . Рассчи­ таем требуемое dmin= r + 1 = 2 + 1 = 3. Получили нечетное J min, соответст­ вующее коду, исправляющему ошибку кратности s=1 . Поэтому весь расчет производится для кода с полученным нечетным dm|П= 3 по приведенным выше соотношениям:

m<2h - \ - s h,5<2h - \ - h .

Решив неравенство методом подбора, получим h = 4, табличный код (15,11,3). Искомый код может быть получен за счет укорочения 6 симво­ лов - (9,5,3).

Пример 6.3. Рассчитать параметры кода, исправляющего ошибку кратности не более 5 = 1 и обнаруживающего ошибку кратности не более г = 4, при длине информационной части т = 6 .

Решение. Рассчитаем dm\n= s + г+ 1 = 1+ 4 + 1 = 6 . Получили четное Определяем ближайшее меньшее нечетное dm*п. Оно равно 5 и соот­ ветствует коду, исправляющему ошибку кратности не более s = 2. Поэтому первоначально расчет производится для кода с полученным нечетным

^min—6 .

т < 2 Л- 1 - 5 - Л , 5 < 2 Л- 1 - 2 - Л .

Решив неравенство методом подбора, получим h = 4, табличный код (15,7,5). Далее укоротим код до следующего - (14,6,5). Затем по известным соотношениям производится переход к коду с искомым четным dm„=6 . Перейдя к коду с ближайшим четным dmi„, получим код (14,5,6).

6.1.6. Алгоритмы расчета параметров циклических кодов

Рассмотрим итеративные алгоритмы расчета параметров цикличе­ ских кодов, аналогичные описанным в разделе (см. п. 5.2.4). Исходными данными для расчета являются:

длина информационной части (ти),

вероятность ошибки в символе 0ш),

допустимое значение вероятности правильной передачи (Рпр) со­ общения (рабочей кодовой комбинации).

Окончанием алгоритма расчета является соблюдение следующего

условия Р расч > Рпр, где Рпррасч - расчетное значение вероятности правиль­

ной передачи (см. п. 5.2.4).

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

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

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

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

оба параметра s и г. В частности, один из вариантов предусматривает уве­ личение г по сравнению с s на 1 , т. е. г = s + 1 .

Обратим внимание, что 2-й и 3-й варианты повышения помехо­ устойчивости предусматривают обязательное наличие обратной связи (обратного канала), по которому передаются сигналы квитирования (под­ тверждения) правильной передачи или запроса на повтор в случае обна­ ружения ошибки и стирания сообщения. Эти способы требуют дополни­ тельных ресурсов, поэтому будут рассмотрены отдельно. Приведем алго­ ритм, в котором увеличение помехоустойчивости осуществляется за счет исправления ошибок, что не требует модернизации структуры и алгорит­ мов передачи данных (рис. 6 .1).

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

Соседние файлы в папке книги