Материал: 636_Nosov_V.I._Seti_radiodostupa_CH.1_

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Таблица 4.7 Некоторые примитивные полиномы

m

 

 

 

f ( X )

m

 

 

 

f ( X )

 

 

 

 

 

 

 

 

 

 

3

1

X X 3

 

 

14

1

X X 6

X 10

X 14

4

1

X

X 4

 

 

15

1

X

X 15

 

 

5

1 X 2

X 5

 

 

16

1 X X 3

X 12

X 16

6

1

X X 6

 

 

17

1

X 3

X 17

 

 

7

1

X 3

X 7

 

 

18

1

X 7

X 18

 

 

8

1

X 2

X 3

X 4

X 8

19

1

X X 2

X 5

X 19

9

1

X 4

X 9

 

 

20

1

X 3

X 20

 

 

10

1

X 3

X 10

 

 

21

1

X 2

X 21

 

 

11

1

X 2

X 11

 

 

22

1

X

X 22

 

 

12

1

X X 4

X 6

X 12

23

1

X 5

X 23

 

 

13

1

X X 3

X 4

X 13

24

1

X X 2

X 7

X 24

Таким образом, из (4.33) и (4.34) следует, что 3 представляется в виде

взвешенной суммы всех

- членов более низкого порядка. Фактически так

можно представить все степени . Для рассматриваемого случая в соответствии с рисунком 4.13 и выражением (4.33) необходимо представить значения

элементов поля

4 , 5 ,

6 через

значения

0 ,

1,

3 .

Результаты

таких

представлений приведены ниже. С учетом уравнения (4.34) получим

 

 

 

4

3

(1

)

 

2.

 

(4.35,а)

Используя результаты уравнения (4.35,а) определим

 

 

 

 

 

 

5

4

(

2 )

2

3.

 

(4.35,б)

Из уравнений (4.34) и (4.35) получаем

 

 

 

 

 

 

 

 

 

5

1

2.

 

 

 

(4.35,в)

Используя результат уравнения (4.35,в), получим

 

 

 

 

 

6

5

(1

2 )

 

2

3

1 2.

(4.35,г)

А теперь из уравнения (4.35.г) вычисляем

 

 

 

 

 

 

7

6

 

(1 2 )

 

3

1

0.

(4.35,д)

131

Так как, в соответствии с (4.35,д)

7

0 , то восемью элементами

 

конечного поля GF(23) будут

 

 

 

0, o , 1, 2 ,

3 ,

4 , 5 , 6 .

(4.36)

Отображение элементов поля в базисные элементы, которое описывается уравнением (4.31), можно проиллюстрировать с помощью схемы линейного регистра сдвига с обратной связью (Linear Feedback Shift Register — LFSR) (рис. 4.14). Схема генерирует (при m = 3) 2m -1 ненулевых элементов поля и, таким образом, обобщает процедуры, описанные в уравнениях (4.35)-(4.36). Следует отметить, что показанная на рис. 4.14 обратная связь соответствует коэффициентам полинома f (X ) 1 X X 3 , как и в случае двоичных циклических кодов.

Пусть вначале схема находится в некотором состоянии, например, 100. При выполнении правого сдвига на один такт можно убедиться, что каждый из элементов поля (за исключением нулевого), показанных на рис. 4.13, циклически будет появляться в разрядах регистра сдвига. На данном конечном поле GF(23) можно определить две арифметические операции – сложение и умножение. В таблице 4.8 показана операция сложения, а в табл. 4.9 – операция умножения, но только для ненулевых элементов. Правила суммирования следуют из уравнений (4.34) и (4.35); и их можно доказать, обратившись к рисунку 4.13, поскольку сумму двух элементов поля можно рассчитать путем сложения (по модулю 2) соответствующих коэффициентов их базисных элементов. Правила умножения, указанные в таблице 4.9, следуют из обычной процедуры, в которой произведение элементов поля вычисляется путем сложения по модулю (2m - 1) их показателей степеней или, для данного случая, по модулю 7.

X0

X1

X2

X3

T1

T2

T3

Рис. 3.18 Отображение элементов поля Галуа в базисные элементы

132

Таблица 3.6 Операция сложения для GF(8) при f (X )

1

X

X 3

 

 

0

1

2

3

4

 

 

5

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

3

6

1

5

 

 

4

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

3

0

4

0

2

 

 

6

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

6

4

0

5

1

 

 

3

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

1

0

5

0

6

 

 

2

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

5

2

1

6

0

 

 

0

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

4

6

3

2

0

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

2

5

0

4

3

 

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 3.7 Операция умножения для GF(8) при f (X )

1

 

X

X 3

 

 

0

1

2

3

4

 

 

5

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

2

3

4

 

 

5

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

2

3

4

5

 

 

6

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

2

2

3

4

5

6

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

3

3

4

5

6

0

 

 

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

4

4

5

6

0

1

 

 

2

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

5

5

6

0

1

2

 

 

3

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

6

6

0

1

2

3

 

 

4

 

5

 

 

 

 

 

 

 

 

 

 

 

 

4.6.2 Кодирование Рида-Соломона

В уравнении (3.32) представлена наиболее распространенная форма

записи кодов Рида-Cоломона через параметры n,k,t

и

некоторое

положительное число m >2

 

 

 

(n,k) (2m

1,2m 1 2t).

 

(4.37)

Здесь n k 2t – число контрольных

символов, а t

количество

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

P(X ) A

A X

A X 2

... A

X 2t 1

X 2t .

(4.38)

0

1

2

2t 1

 

 

 

Степень полиномиального генератора равна числу контрольных символов. Коды Рида-Соломона являются подмножеством кодов БХЧ, которые обсуждались выше и показаны в таблице 4.5. Поэтому связь между степенью полиномиального генератора и числом контрольных символов, как и в кодах БХЧ, не должна оказаться неожиданностью. В этом можно убедиться, подвергнув проверке любой генератор из таблицы 4.7. Поскольку

133

, 2 ,...,

полиномиальный генератор имеет порядок 2t, мы должны иметь в точности 2t последовательные степени , которые являются корнями полинома. Обозначим корни Р(X) как 2t . Нет необходимости начинать именно с корня это

можно сделать с помощью любой степени .

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

P( X ) ( X )( X

2 )( X

3 )( X

4 )

 

( X 2

(

2 ) X

3 )( X 2

( 3

4 ) X

7 )

( X 2

4 X

3 )( X 2

6 X

0 )

 

(4.39)

X 4

( 4

6 ) X 3 ( 3

10 0 ) X 2 ( 4

9 ) X 3

X 4

3 X 3

0 X 2

1 X

3.

 

 

Поменяв порядок расположения членов полинома на обратный и заменив знаки "минус" на "плюс", так как над двоичным полем +1 = -1, полиномиальный генератор Р(X) можно будет представить следующим образом

P(X ) 3 1X 0 X 2 3 X 3 X 4.

(4.40)

Кодирование в систематической форме.

Так как код Рида-Соломона является циклическим, кодирование в систематической форме аналогично процедуре двоичного кодирования, разработанной в разделе, посвященном циклическим кодам. Мы можем осуществить сдвиг полинома сообщения D(Х) в крайние правые k разряды регистра кодового слова и произвести последующее прибавление полинома четности (или остатка от деления) R(Х) в крайние левые n-k разряды. Поэтому мы умножаем D(Х) на X n k , проделав алгебраическую операцию таким образом, что D(Х) оказывается сдвинутым вправо на п - k позиций. В разделе посвященном циклическому кодированию это показано на примере двоичного кодирования. Далее мы делим X n k D(X) на полиномиальный генератор Р(X), что можно записать следующим образом

X n k D( X )

Q( X )

R( X )

, или

P( X )

P( X )

 

 

(4.41)

X n k D( X ) Q( X )P( X ) R( X ).

134

Здесь Q(X) и R(Х) — это частное и остаток от полиномиального деления. Как и в случае двоичного кодирования, остаток будет четным. Уравнение (4.41) можно переписать следующим образом

R(X ) X n k D(X ) по модулю P(X ).

(4.42)

Результирующий полином кодового слова T(X), с учетом уравнений (4.41) и (4.42), можно переписать следующим образом

T (X ) R(X ) X n k D(X ).

(4.43)

Продемонстрируем шаги, подразумеваемые уравнениями (4.42) и (4.43), закодировав в соответствии с рисунком 4.13 сообщение из трех символов

010

010

010

(4.44)

1

3

5

 

 

 

 

 

 

 

 

 

с помощью кода Рида-Соломона (7,3), генератор которого определяется уравнением (4.40).

Сначала мы

умножаем

(сдвиг

вверх)

полином

сообщения

D(X )

1X 0

3 X

 

5 X 2

 

на

 

X n k

X 4 ,

 

что

 

дает

X n k D(X )

1X 4

3 X 5

5 X 6 .

Далее поделим

такой

сдвинутый

вверх

полином

сообщения

на

полиномиальный

генератор

из

уравнения

(4.40),

P(X )

3

1X

0 X 2

3 X 3

X 4 .

Полиномиальное

деление

недвоичных

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

R(X ) 0 2 X 4 X 2 6 X 3.

(4.45)

Затем, из уравнения (4.43), полином кодового слова можно записать следующим образом

T(X ) 0 2 X 4 X 2 6 X 3 1X 4 3 X 5 5 X 6. (4.46)

Систематическое кодирование с помощью (n-k) разрядного регистра сдвига.

135

Источник: https://studfile.net/preview/16709054/