Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
разное / ИТ / Лабораторная 8 / Такая вот теория 2.doc
Скачиваний:
88
Добавлен:
15.06.2014
Размер:
261.12 Кб
Скачать

4.7 Коды Рида-Соломона (рс)

Коды РС являются недвоичными циклическими кодами, символы кодовых слов которых берутся из конечного поля GF(q). Здесь q степень некоторого простого числа, например q=2m.

Допустим, что РС-код построен над GF(8), которое является расширением поля GF(2) по модулю примитивного многочлена f(z)=z3+z+1. В этом случае символы кодовых слов кода будут иметь значения, представленные в таблице 6.

Таблица 6

<TBODY>000

0

0

011

z+1

3

001

1

0

110

z2+z

4

010

z

1

111

z2+z+1

5

100

z2

2

101

z2+1

6</TBODY>

Кодовые слова РС-кода отображаются в виде многочленов

V(x)=VN-1xN-1+ ... +V1x1+V0; где N - длина кода; Vi - q-ичные коэффициенты (символы кодовых слов), которые могут принимать любое значение из GF(q). Эти коэффициенты как это следует из таблицы, также отображаются многочленами с двоичными коэффициентами Vi=am-1zm-1+ ... +a1z1+a0.

Коды РС являются максимальными, т.к. при длине кода N и информационной последовательности k они обладают наибольшим кодовым расстоянием d=N-k+1. Порождающим многочленом g(x) РС-кода является делитель двучлена xN+1 степени меньшей N с коэффициентами из GF(q) при условии, что элементы этого поля являются корнями g(x). Здесь - примитивный элемент GF(q). На основе этого определения, а также теоремы Безу, выражение для порождающего многочлена РС-кода будет иметь вид g(x)=i=1d-1(x-i). Степень g(x) равна d-1=N-k=R. В РС-кодах принадлежность кодовых слов данному коду определяется выполнением d-1 уравнений в соответствии с выражением

i=0N-1Vizim=0;(m=m0; m0+1; ... m0+d-2) (*)

где Vi - символы-коэффициенты из GF(q); z0, z1... zN-1 - ненулевые элементы GF(q). Элементы z0, z1... zN-1 называются локаторами, т.е. указывающими на номер позиции символа кодового слова. Например, указателем i - позиции является локатор zi или элемент i GF(q). Так как все локаторы должны быть различны и причем ненулевыми, то их число в GF(q) равно q-1. Следовательно, такое количество символов должно быть в кодовых словах кода. Поэтому обычно длина РС-кода определяется из выражения N=q-1.

Пример. Допустим, что длина РС-кода равна N, кодовое расстояние d=3, то в соответствии с (*) проверочными уравнениями будут

VN-1(N-1)1+VN-2(N-2)1+ ... +V1(1)1+V0(0)1=0;

VN-1(N-1)2+VN-2(N-2)2+ ... +V1(1)2+V0(0)2=0;

Свойства РС-кодов:

1. Циклический сдвиг кодовых слов, символы которых принимают значение из GF(q), порождает новые кодовые слова этого же кода.

2. Сумма по mod2 двух и более кодовых слов дает кодовое слово, принадлежащее этому же коду.

3. Кодовое расстояние РС-кода определяется не по двоичным элементам, а по q-ичным символам.

4. В РС-коде, исправляющем tu ошибок порождающий многочлен определяется из выражения g(x)=(x-m0)(x-m0+1)...(x-m0+2tu-1). Обычно m0 принимают равным 1. Однако, с помощью разумного выбора значения m0, иногда можно упростить схему кодера.

5. Корректирующие способности РС-кода определяются его кодовым расстоянием: t0d-1; T0(t0-1)m+1; tud-1/2; Tu(tu-1)m+1; где T0, Tu - длина пакетов, в которых обнаруживаются и исправляются ошибки. Обнаружение ошибок в кодовых словах состоит в определении синдрома S=Sd-2 ... S1S0, элементы которого определяются из выражения Sj =i=0N-1 Vi zim0+j; (j=0, ... , d-2).

Пример. Требуется сформировать кодовое слово РС-кода над GF(23), соответствующее двоичной информационной последовательности a(1,0)=000000011100101.

Так как m=3, то каждый q-ичный символ кода состоит из трех двоичных элементов. Поэтому с учетом таблицы 6 a(x)=3x2+2x+6. Определяем параметры кода: N=q-1=7; k=5; R=2; d=N-k+1=3;

g(x)=i=1d-1(x-i)=(x-1)(x-2)=x2+(1+2)x+3=x2+4x+3.

Кодовое слово формируется в соответствии с выражением: V(x)=a(x)xR+R(x); где R(x)=Rg(x)[a(x)xR]=Rg(x)[(3x2+2x+6)x2]=Rg(x)[3x4+2x3+6x2]=6x+6.

В результатеV(x)=3x4+2x3+6x2+6x+6 или в двоичной форме V(1,0)=000.000.011.100.101.101.101.

Таблица 2 Элементы поля GF(16) как расширение GF(2) по примитивному многочлену (z)=z4+z+1

В двоичном виде

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

В виде степени

В двоичном виде

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

В виде степени

0000

0

0

1011

z3+z+1

7

0001

1

0

0101

z2+1

8

0010

z

1

1010

z3+z

9

0100

z2

2

0111

z2+z+1

10

1000

z3

3

1110

z3+z2+z

11

0011

z+1

4

1111

z3+z2+z+1

12

0110

z2+z

5

1101

z3+z2+1

13

1100

z3+z2

6

1001

z3+1

14

Таблица 3 Элементы поля GF(16) как расширение GF(4) по примитивному многочлену f(z)=z2+z+2

В четвертичном виде

В десятичном виде

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

В виде степени

00

0

0

0

01

1

1

0

10

4

z

1

12

6

z+2

2

32

14

3z+2

3

11

5

z+1

4

02

2

2

5

20

8

2z

6

23

11

2z+3

7

13

7

z+3

8

22

10

2z+2

9

03

3

3

10

30

12

3z

11

31

13

3z+1

12

21

9

2z+1

13

33

15

3z+3

14

Таблица 4 Элементы поля GF(4) как расширение GF(2) по примитивному многочлену f(z)=z2+z+1

В двоичном виде

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

В виде степени

В десятичном виде

00

0

0

0

01

1

0

1

10

z

1

2

11

z+1

2

3

Таблица 5 Операции сложения и умножения элементов в поле GF(4)

+

0

1

2

3

1

2

3

0

0

1

2

3

1

1

2

3

1

1

0

3

2

2

2

3

1

2

2

3

0

1

3

3

1

2

3

3

2

1

0

Таблица 6 Элементы поля GF(8) как расширение GF(2) по примитивному многочлену f(z)=z3+z+1

В двоичном виде

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

В виде степени

В двоичном виде

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

В виде степени

000

0

0

011

z+1

3

001

1

0

110

z2+z

4

010

z

1

111

z2+z+1

5

100

z2

2

101

z2+1

6

Таблица 7 Непримитивные элементы поля GF(2m)

m

GF(2m)

N

1

4

GF(24)

3

5

5

3

2

6

GF(26)

3

21

7

9

9

7

3

8

GF(27)

3

85

5

51

15

17

17

15

4

9

GF(29)

7

73

5

10

GF(210)

3

341

11

93

31

33

33

31

6

12

GF(212)

3

1365

5

819

7

585

9

455

13

315

15

273

21

195

45

91

63

65

65

63

Соседние файлы в папке Лабораторная 8