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

Корольов / Теория связи

.pdf
Скачиваний:
229
Добавлен:
10.02.2016
Размер:
8.73 Mб
Скачать

Проверочная матрица такого кода имеет вид

H= [α0α1α2...αn1 ],

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

Вкачестве примера выберем код (7, 4, 3), порождающий полином которого g(x)= x3 + x +1 примитивен, а проверочная матрица

0010111 H = [1αα2...α6 ]= 0101110 ,

1001011

с точностью до порядка следования столбцов совпадает с ранее полученной проверочной матрицей (5.17) этого же кода. Смена порядка на обратный объясняется изменением в (5.18) порядка записи степеней переменной x .

2. Порождающий полином g(x) неприводим, но не является примитив-

ным, длина кода n = 2m 1. В этом случае элемент α поля GF(2m ) не обязательно является его корнем, и при отыскании корня возникают дополнительные трудности. Таков, например, полином g(x)= x6 + x3 +1 для кода с n = 9 (табл. 5.5).

Следует прибегнуть к таблицам неприводимых полиномов.

В табл. 5.6 представлены полиномы степеней до 8, заимствованные из [33], где можно найти сведения о полиномах до 34-й степени.

Неприводимые многочлены даны в восьмеричном представлении. Каждую цифру соответствующего многочлену числа следует перевести в трехразрядное двоичное число и рассматривать его разряды как коэффициенты при степенях x многочлена. Например, среди полиномов степени 5 есть восьмеричное число 67. Это означает: 67 =110111 x5 + x4 + x2 + x +1.

Примитивные многочлены подчеркнуты. Первым среди многочленов данной степени помещен примитивный, и с его помощью строится поле GF(2m ). Перед восьмеричным представлением стоит десятичное число, отде-

ленное точкой и означающее показатель степени примитивного элемента, являющегося корнем следующего за ним полинома, причем большие степени записываются слева. Например, для нахождения корня полинома 6-й степени 127 нужно задать с помощью примитивного полинома 103 поле GF(26 ) и в

221

Таблица 5.6

Неприводимые полиномы над полем GF(2)

Степень m

Восьмеричное представление полиномов

полинома

2

1.7

 

 

 

 

 

 

3

1.13

 

 

 

 

 

 

 

 

 

 

 

 

4

1.23

3.37

 

 

 

 

 

5.007

 

 

 

 

5

1.45

3.75

5.67

 

 

 

 

6

1.103

3.127

5.147

 

7.111

 

9.115

 

11.155

21.007

 

 

 

 

 

7

1.211

3.217

5.235

 

7.365

 

9.277

 

11.325

13.203

19.303

 

21.345

 

 

8

1.435

3.567

5.763

 

7.551

 

9.765

 

11.747

13.453

15.727

 

17.023

 

19.545

 

 

 

 

 

 

 

 

 

21.613

23.543

25.433

 

27.477

 

37.537

 

 

 

 

 

 

 

 

 

43.703

45.471

51.037

 

85.007

 

 

 

 

 

 

 

 

 

 

качестве корня β полинома 127 взять элемент α3 этого поля. Каждый из мно-

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

Многочлен, двойственный неприводимому, также неприводим, а двойственный примитивному – примитивен. Двойственные многочлены не помещены в табл. 5.6, однако могут быть получены из представленных в ней переменой порядка следования коэффициентов при степенях x на обратный. Так, полином, двойственный 67, имеет вид: 111011 x5 + x4 + x3 + x +1.

Показатель i степени примитивного элемента поля, соответствующий корню двойственного многочлена, определяется как i = 2m 1j , где j -

степень примитивного элемента – корня приведенного в табл. 5.6 полинома. Поскольку 2m 1 и j нечетны, то i всегда четно. Например, корнем полинома,

222

212 1 = 9 455
x2l 1 +1
xn +1

двойственного полиному

23, является

элемент β =α14 ,

так как

i =15 1 =14 , двойственного полиному 37 – элемент β =α12 , и т.д.

 

Минимальный многочлен элемента α j включен в таблицу,

даже если

степень многочлена меньше

m (т.е. показатель

j принадлежит циклотомиче-

скому классу, содержащему меньшее m число компонентов, например, классу K5 (табл. 5.3)). Таким минимальным многочленом корня α5 в поле GF(24 ) явля-

ется 007 второй степени. В табл. 5.6 подобные многочлены начинаются с нуля. 3. Порождающий полином g(x) представляет собой произведение не-

скольких неприводимых многочленов, каждый из которых имеет корни в GF(2m ), и по-прежнему n = 2m 1. Например, g(x)= (x2 + x +1)(x4 + x +1)=

= x6 + x5 + x4 + x3 +1 (табл. 5.5) порождает код (15, 9, 3).

Очевидно, в этом случае среди n k корней полинома g(x) будут корни каждого из сомножителей, отыскиваемые изложенным выше способом.

4. Общий случай: порождающий полином g(x) либо неприводим, либо

является произведением неприводимых многочленов; длина кода n 2m 1. Корни многочлена для таких значений n являются элементами не-

которого поля GF(2l ), причем показатели этих элементов принадлежат одно-

му циклотомическому классу K5 по модулю (2l 1). Полином имеет кор-

нями все элементы поля GF(2l ), в том числе и корни полинома xn +1. Следова-

тельно, x2l 1 +1 делится на xn +1, а 2l 1 делится на n (см. 5.3.5), т.е. 2l 1 = nr , где r – целое число, причем одному значению n может соответствовать множество пар чисел (l, r). Например, при n = 9 справедливы равенства 26 1 = 9 7 ;

и т.д.

Поскольку корни xn +1 лежат в поле GF(2l ), то корни неприводимых полиномов – делителей двучлена xn +1 также принадлежат этому полю, и их следовало бы обозначать показателями j степени примитивного элемента по-

ля GF(2l ), как это делалось в табл. 5.6. По так как одному значению и может отвечать несколько полей GF(2l ), в перечнях кодов [33] корни помечаются

223

отношением j

.

 

l

 

 

Табл. 5.7 содержит заимствованные из [30] двоичные циклические коды

(n,k,d0 ) нечетной длины до n = 23 с указанием нормированных показателей

j

 

 

l

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

 

 

 

 

 

 

 

 

 

 

Таблица 5.7

 

 

 

Нормированные показатели корней

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

k

d0

δ

R

 

n

k

d0

δ

R

7

4

3

3

1

 

15

4

8

8

0,1,3,5

 

 

 

 

 

 

 

 

 

 

 

 

 

7

3

4

4

0,1

15

3

5

5

1,3,7

 

 

 

 

 

 

 

 

 

 

 

 

 

9

3

3

3

1

15

2

10

10

0,1,3,7

 

 

 

 

 

 

 

 

 

 

 

 

 

9

2

6

6

0,1

17

9

5

4

1

 

 

 

 

 

 

 

 

 

 

 

 

 

15

11

3

3

1

17

8

6

6

0,1

 

 

 

 

 

 

 

 

 

 

 

 

 

15

10

4

4

0,1

21

16

3

3

7,3

 

 

 

 

 

 

 

 

 

 

 

 

 

15

9

3

3

1,5

21

15

4

3

0,7,3

 

 

 

 

 

 

 

 

 

 

 

 

 

15

9

4

3

3,5

 

21

14

4

4

0,1

 

 

 

 

 

 

 

 

 

 

 

 

 

15

8

4

4

0,1,5

 

21

13

4

3

7,9,3

 

 

 

 

 

 

 

 

 

 

 

 

 

15

8

4

3

0,3,5

 

21

12

4

3

0,7,9,3

 

 

 

 

 

 

 

 

 

 

 

 

 

15

7

3

3

1,7

 

21

11

6

6

0,3,1

 

 

 

 

 

 

 

 

 

 

 

 

 

15

7

5

5

1,3

 

21

10

5

5

7,3,1

 

 

 

 

 

 

 

 

 

 

 

 

 

15

6

6

6

0,1,3

 

21

9

5

6

9,3,1

 

 

 

 

 

 

 

 

 

 

 

 

 

15

6

6

6

0,1,7

 

21

8

6

6

0,9,3,1

 

 

 

 

 

 

 

 

 

 

 

 

 

15

5

3

3

1,5,7

 

21

6

7

7

3,5,1

 

 

 

 

 

 

 

 

 

 

 

 

 

15

5

7

7

1,3,5

 

23

12

7

5

1

 

 

 

 

 

 

 

 

 

 

 

 

 

15

4

6

6

0,1,5,7

 

23

11

8

6

0,1

 

 

 

 

 

 

 

 

 

 

 

 

 

Например, для кода (9, 3, 3) величина

j

=1. Это означает, что корнем

 

l

 

порождающего полинома данного кода в поле GF(26 ) является элемент α7 , в

поле GF(212 ) – элемент α455 и т.д.

 

 

224

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

Пусть β1, β2 ,..., βr – элементы поля GF(2m ), являющиеся заданными корнями,

а M1(x), M2 (x),..., Mr (x) – соответствующие им минимальные многочлены. Каждый из корней является некоторой степенью примитивного элемента поля. Если все показатели степени принадлежат разным циклотомическим классам по модулю (2m 1), то в соответствии с (5.9), (5.10) и (5.11) порождающий полином

r

 

g(x)= Mi

(5.20)

i=1

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

g(x)= НОК[M1 (x), M2 (x),..., Mr (x)].

(5.21)

5.4.5. Спектральное описание циклических кодов

Рассмотрим еще один подход к описанию полиномиальных кодов, который основан на использовании дискретного преобразования Фурье (ДПФ) кодовых последовательностей, заданных над конечным полем GF(p). Данный под-

ход, подробно изложенный в [30], позволяет в ряде случаев упростить процедуры кодирования и декодирования.

Пусть V = (v0 ,v1,...,vn1 ) – последовательность из n элементов конечного по-

ля GF(p), причем n делит pm 1 для некоторого m , и пусть α – примитивный элемент порядка n в расширении поля GF(pm ). Дискретным преобразованием Фурье вектора V над конечным полем GF(p) называется последовательность F (v) = (f0(v), f1(v),..., fn(v1)) элементов поля GF(pm ) задаваемая равенством

n1

 

f j(v ) = viαij , j = 0,1,..., n 1.

(5.22)

i=0

225

В матричной форме ДПФ может быть записано следующим образом

 

 

 

1

1

1

...

1

 

 

 

F (v ) = (v0v1...vn1 )

1

α

α2

...

αn1

.

 

 

 

... ...

...

... ...

 

 

 

 

1

αn1

α2(n1)

... α(n1)2

 

Такое определение аналогично определению ДПФ в поле комплексных

чисел,

где

α заменяется на

корень n

степени из единицы, равный

j

2π

В связи с такой аналогией оказывается удобным называть индекс

exp

 

 

n

 

 

 

 

 

 

 

i «дискретным временем», а последовательность v0 , v1,..., vn1 – временной после-

довательностью (функцией). Тогда индекс j можно назвать «частотой», а по-

следовательность f0(v), f1(v),..., fn(v1) – частотным спектром или просто спектром.

Если векторы V и F (v)

связаны равенством (5.22), то существует обрат-

ное преобразование Фурье

 

 

 

 

 

 

vi =

1 n1 (v ) ij

.

(5.23)

 

n

f j α

 

 

j=0

 

 

Равенства (5.22) и (5.23) часто называют парой преобразований Фурье.

Укажем на два наиболее важных свойства ДПФ.

 

1. Пусть U , V и W

временные последовательности,

причем wi =uivi ,

i = 0,1,..., n 1. Тогда

 

 

 

 

 

n1

f j(v) = fk(u ) fn(vk) . k=0

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

n1

f j(w) = f j(u ) f j(v ) , i = 0,1,...,n 1, то wi = ulvi l . l =0

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

2. Если вектор V во временной области и его преобразование Фурье F (v) заданыввидеполиномов

V(x)= vi xi

i=0n1

n1

и F (v)(z)= fi(v)zi .

i=0

226

то элемент α j поля GF(pm ) является корнем полинома тогда и только тогда,

когда частотный компонент f j(v ) равен нулю; элемент αj является корнем

F (v)(z) тогда и только тогда, когда i -я компонента vi равна нулю.

На основе спектрального подхода можно дать еще одно равнозначное определение циклическому коду как множеству таких слов над конечным полем GF(p), у которых все спектральные компоненты, принадлежащие заданному множеству частот, называемых проверочными, равны нулю.

5.4.6. Простейшие блочные линейные коды

Коды длины n и размерности k могут иметь разные значения кодового расстояния d0 и обладать поэтому разной помехоустойчивостью. Оптимальны-

ми называются коды, обеспечивающие при заданных n и k максимальную вероятность правильного приема кодового слова. Они, как правило, имеют наибольшее кодовое расстояние. Числа n и k определяют скорость кода, равную k n двоичных единиц на 1 символ.

При заданной величине кодового расстояния d0 существует нижняя гра-

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

qИС

(d0 1)

 

 

Выражение для нижней границы (n k )min = log2

C2ni

 

получается в результа-

 

i =0

 

 

те приравнивания числа 2(nk ) 1 различных ненулевых синдромов количеству

qИС

(d0 1)

 

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

 

C2ni

 

 

i =0

 

 

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

Рассмотрим некоторые простейшие оптимальные коды.

Код с простой проверкой на четность обозначается (n,n 1,2) и содержит слова с одним проверочным символом S = (a1, a2 ,..., an1,b). Проверочный символ

227

есть сумма по модулю 2 информационных:

b = a1 + a2 +... + an1 .

Видно, что b =1, если число единиц в информационной последовательности нечетное, и b = 0 , если число единиц – четное. Таким образом, наличие проверочного символа позволяет всем кодовым словам придать общий признак: четность числа единиц в слове.

Порождающая матрица кода имеет n 1 строки n столбцов:

 

1

0

...

0

1

 

G =

0

1

...

0

1

.

 

... ... ... ... ...

 

 

0

0

...

1

1

 

Любые строки матрицы содержат 2 единицы и отличаются значениями символов на двух позициях, поэтому кодовое расстояние равно 2. Следовательно, код может лишь обнаруживать однократные ошибки (qоб = 2).

Проверочная матрица кода содержит одну строку

H = 1 1 ... 1 .

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

Декодирование кода основано на проверке четности числа единиц в принятой последовательности Y . Для этого вычисляется синдром, содержащий один компонент

C

=

YH

T =

+

+

...

+

 

+

 

 

 

a1

a2

 

 

an1

b ,

 

 

или с учетом Y = S + E и SH T

= 0

 

 

 

 

 

 

 

 

 

 

 

 

C = e1 + e2 +... + en .

 

 

 

Значение C = 0 соответствует четному числу единиц в Y .

 

В этом случае

принимается решение об отсутствии ошибок,

 

= S . Ясно, что

т.е. полагается S

 

при действии ошибки четной кратности C = 0 ,

и данное решение будет непра-

вильным.

 

 

 

 

 

 

 

 

 

 

 

 

Если C =1 , то фиксируется наличие ошибки. Очевидно,

значение C =1

даст любая ошибка нечетной кратности,

т.е.

код обнаруживает часть ошибок

228

большей кратности, чем qоб =1. Несомненным достоинством этого кода является высокая скорость, характеризуемая величиной (n 1)n .

Код нечетной длины с повторением обозначается (n,1, n), имеет кодовые слова [ab1b2...bn1 ] с одним информационным символом и n 1 проверочными, кото-

рые повторяют информационный:

b1 = b2 =... = bn1 = a .

Порождающая матрица состоит из одной строки G = [11...1], так что код с повторением имеет всего два слова: одно содержит только нули, второе – только единицы. Понятно, что кодовое расстояние равно n , отсюда

qоб = n 1, qИС =

(n 1)

.

 

 

 

 

 

 

2

 

Проверочная матрица кода:

 

 

 

 

 

 

 

1

1

0

0

...

0

 

 

 

H =

1

0

1

0

...

0

.

 

... ... ... ... ... ...

 

 

1

0

0

0

...

1

 

имеет n 1 строк и n столбцов и указывает, что сумма первого и любого другого символов кодового слова должна равняться 0. Число избыточных символов в коде достигает нижней границы, следовательно, коды нечетной длины с повторением относятся к совершенным.

Проверочная матрица кода (n,n 1,2) с простой проверкой на четность совпадает с порождающей матрицей кода с повторением (n,1, n), а порождаю-

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

Коды Хэмминга имеют кодовое расстояние d0 = 3, исправляют все одно-

кратные ошибки или обнаруживают двукратные, т.е. qоб = 2 , qИС =1. Зависимо-

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

229

GF(pm );

n = 2nk 1.

(5.24)

Следовательно, для кодов Хэмминга достигается нижняя граница числа (n k )= log2 (n +1) избыточных символов, а сами коды являются совершенными.

Примеры кодов: (3, 1,3), (7,4, 3), (15, И, 3), (31,26, 3), (63, 57, 3),....

Единственный код Голея (23, 12, 7) завершает ряд совершенных кодов. Расширенный код Хэмминга образуется из совершенного путем добавле-

ния общей проверки на четность, т. е. проверочного символа, равного сумме всех символов кода Хэмминга. Код имеет кодовое расстояние d0 = 4 , что позво-

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

При добавлении проверочного символа длина кода становится четной, а соотношение (5.24) преобразуется к виду n = 2nk 1 . Расширенные коды Хэм-

минга образуют ряд: (4, 1,4), (8,4,4), (16, 11,4), (32, 26,4), (64,57,4),....

Коды этого вида относятся к квазисовершенным, т.е. исправляющим все ошибки кратности по qИС включительно и часть ошибок кратности qИС +1 .

5.5. Коды Боуза-Чоудхури-Хоквингема 5.5.1. МетодызаданиякодовБЧХ

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

Код БЧХ длины n , исправляющий qИС -кратные ошибки, это циклический блочный код над полем GF(p), корнями порождающего многочлена которого

являются βv , βv+1,..., βv+2qИС1 , где β – элемент конечного поля v – целое

число.

В соответствии с этим определением и выражением (5.21) порождающий многочлен кода БЧХ может быть представлен наименьшим общим кратным

g(x)= НОК[Mv (x), Mv+1 (x),..., Mv+2qИС1 (x)],

230

Соседние файлы в папке Корольов