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

лабы / лаба 3 / ulsu41

.pdf
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
441.78 Кб
Скачать

Тогда:

S(x)e(x) = !e(x) x2t+s e(x):

Данное выражение называют ключевым уравнением, которому можно придать иной вид:

e(x)S(x) !e(x) (mod x2t+s):

(7)

Заметим, что e(x) = (x) (x), где (x) это многочлен неизвестных локаторов ошибок,(x) многочлен известных локаторов стираний:

ts

YY

e(x) = (1 Xix) (1 Xt+ix) = (x) (x):

i=1 i=1

Введем в рассмотрение многочлен Se(x) = S(x) (x) модифицированный синдромный многочлен. Тогда ключевое уравнение (7) примет вид:

где:

(x)Se(x) !(x) (mod x2t+s);

 

(8)

 

 

 

e

 

 

 

 

 

 

(9)

deg (x)

 

t;

deg !(x)

 

t + s

 

1;

 

(0) = 1:

Рассмотрим сравнение:

 

 

e

 

 

2t+s

)

 

 

a(x)Se(x) b(x) (mod x

 

 

(10)

относительно неизвестных многочленов a(x); b(x) 2 F [x] с условием:

deg a(x) t; deg b(x) t + s 1; a(0) = 1:

(11)

Из (8) и (9) следует, что сравнение (10) с условием (11) имеет решение.

Теорема 3. 1. Многочлены a(x) и b(x) являются решением сравнения (10) с условием (11) тогда и только тогда, когда для некоторого многочлена (x) 2 F [x] выполнены равенства a(x) = (x) (x), b(x) = (x)!e(x).

2.Многочлены (x) и !e(x) являются единственным решением сравнения (10) с условием

(11)и условием взаимной простоты.

Доказательство. 1. Если a(x) = (x) (x), b(x) = (x)!e(x), то:

a(x)Se(x) (x) (x)Se(x) (x)!e(x) b(x) (mod x2t+s):

Обратно, пусть a(x) и b(x) некоторое решение сравнения (10) с условием (11). Рассмотрим два сравнения:

b(x) a(x)S(x) (mod x2t+s);

!(x) (x)S(x) (mod x2t+s):

на (x), а второе на a(x), получим:

Умножив первое сравнение e

e

e

b(x) (x) a(x) (x)Se(x) !e(x)a(x) (mod x2t+s):

Ученые записки УлГУ. Серия Математика и информационные технологии

76

Учитывая первые два неравенства из условия (11) для многочленов a(x), b(x), (x), !(x), из

сравнения b(x) (x) !(x)a(x) (mod x2t+s) следует равенство:

 

e

Так как (x)

 

e

b(x) (x) = !(x)a(x):

 

(12)

 

(x)

 

j

 

 

 

 

e

j

 

гочлен

 

,

 

e

e

 

 

 

 

 

 

 

 

b(x)

=

a(x)

= (x):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!(x) (x)

 

 

Таким образом, a(x) = (x) (x), b(x)e= (x)!(x).

 

 

e

2. Пусть a(x) и b(x) некоторое решение сравнения (10) с условием (11), причем a(x) и b(x) взаимно просты. Из пункта 1 следует, что для некоторого многочлена (x) выполнено

a(x) = (x) (x), b(x) = (x)!(x). В силу взаимной простоты a(x) и b(x) многочлен (x)

поэтому (x) = (x), b(x) = !(ex).

 

должен являться константой. А в силу условия (0) = a(0) = 1

эта константа равна единице,

Определим для

обобщенного алгоритма Евклида следующие многочлены:

 

e

 

 

 

 

r (x) = x2t+s; r (x) = S(x);

 

 

u 1(x) = 1;1 u0(x) = 0; v0 1(x) =e0; v0(x) = 1:

 

Произведем последовательность действий обобщенного алгоритма Евклида (i 1):

 

 

ri 2(x) = ri 1(x)qi(x) + ri(x);

 

 

ui(x) = ui 2(x) ui 1(x)qi 1(x);

 

 

vi(x) = vi 2(x) vi 1(x)qi 1(x):

 

При этом будем получать такие равенства:

 

 

из которых следуют сравнения:ui(x)x2t+s + vi(x)Se(x) = ri(x);

 

 

ri(x) vi(x)S(x) (mod x2t+s):

 

Учитывая, что степени остатков

ri(x) строго убывают, будем применять алгоритм Евклида

e

 

 

до тех пор, пока не достигнем такого rj(x), что:

 

 

deg rj 1(x) t + s;

deg rj(x) t + s 1:

(13)

Тогда в качестве a(x) и b(x) возьмем такие многочлены:

 

 

a(x) = vj(x);

b(x) = rj(x);

(14)

где константа 2 F задается так, чтобы удовлетворялось условие a(0) = 1 (в теореме 4 приводится обоснование того, что vj(0) 6= 0, поэтому такая константа существует). В этом

случае:

b(x) rj(x) vj(x)Se(x) a(x)Se(x) (mod x2t+s); deg b(x) = deg rj(x) t + s 1;

deg a(x) = deg vj(x) = deg x2t+s deg rj 1(x) 2t + s t s = t:

Поэтому такой алгоритм приводит к решению a(x) и b(x) сравнения (10) с условием (11).

Ученые записки УлГУ. Серия Математика и информационные технологии

77

Теорема 4. Пусть vj(x) и rj(x) многочлены из обобщенного алгоритма Евклида с условием (13). Тогда найдется такая ненулевая константа 2 F , для которой (x) = vj(x),

!e(x) = rj(x).

Доказательство. Для многочленов vj(x) и rj(x), а также для многочленов (x) и !e(x) выполнены равенства:

uj(x)x2t+s + vj(x)Se(x) = rj(x);

e(x)x2t+s + (x)Se(x) = !e(x):

Домножив обе части первого равенства на (x), а второго на vj(x), получим:

(x)uj(x)x2t+s + (x)vj(x)Se(x) = (x)rj(x); vj(x)e(x)x2t+s + vj(x) (x)Se(x) = vj(x)!e(x):

Из данных равенств следует сравнение:

(x)rj(x) vj(x)!e(x) (mod x2t+s):

Учитывая степени многочленов в данном сравнении, получаем равенство:

(x)rj(x) = vj(x)!e(x):

Поэтому из (17) с учетом последнего равенства следует такое равенство:

(x)uj(x) = vj(x)e(x):

(15)

(16)

(17)

Из свойства взаимной простоты многочленов uj(x) и vj(x) следует, что vj(x) j (x), поэтому для некоторого многочлена (x) выполнено (x) = (x)vj(x). Подставим это равенство в (16):

e(x)x2t+s + (x)vj(x)Se(x) = !e(x):

Теперь домножим равенство (15) на (x):

(x)uj(x)x2t+s + (x)vj(x)Se(x) = (x)rj(x):

Учитывая степени многочленов !(x), (x) и rj(x), из последних двух равенств следует равенство !(x) = (x)rj(x).

Таким образом, (x) = (x)vj(x), !(x) = (x)rj(x). Так как многочлены (x) и !(x)

e

e

взаимноeпросты, то многочлен (x) является ненулевой константой.

 

Алгоритм 3 (декодирование кодов РС на основе алгоритма Сугиямы на случай ошибок и стираний).

Вход: принятый вектор v, в котором s стираний и не более t ошибок. Выход: исходный кодовый вектор u, если d 2t + s + 1.

1.Определяется t = [(d s 1)=2], где [ ] целая часть числа. В векторе v все стирания за-

меняются нулями, получая тем самым вектор ve. Находятся компоненты S0; S1; : : : ; S2t+s 1 синдромного вектора: Si = ve( i+1), i = 0; 1; : : : ; 2t + s 1. Если они все равны нулю, то возвращается вектор ve и процедура окончена.

Вычисляются значения локаторов стираний Xt+1 = it+1 ; : : : ; Xt+s = it+s на основе известных позиций стираний it+1; : : : ; it+s. Вычисляются коэффициенты модифицированного синдромного многочлена Se(x).

Ученые записки УлГУ. Серия Математика и информационные технологии

78

2.Пусть r 1(x) = x2t+s, r0(x) = Se(x), v 1(x) = 0, v0(x) = 1. С помощью обобщенного алгоритма Евклида производится последовательность вычислений (i 1):

ri 2(x) = ri 1(x)qi 1(x) + ri(x); vi(x) = vi 2(x) vi 1(x)qi 1(x):

Процесс прекращается, как только для некоторого rj(x) будет выполнено:

 

 

 

deg rj 1(x) t + s;

deg rj(x) t + s 1:

Тогда:

 

 

 

 

где константа

 

 

(x) = vj(x); !(x) = rj(x);

2

F

задается так, чтобы

удовлетворялось условие (0) = 1. Пусть

 

 

e

l = deg (x).

3.Отыскиваются l корней многочлена (x) последовательной подстановкой в него ненулевых элементов поля F . При этом локаторы ошибок это величины, обратные корням многочлена (x).

4.Определяется множество M = f1; : : : ; lg [ ft + 1; : : : ; t + sg. По формулам Форни:

 

 

X 1!(Xj 1)

 

Yj =

i

M jj (1e XiXj 1)

; j 2 M;

(18)

2

Q g

 

 

 

nf

 

где !e(x) (x)Se(x) (mod x2t+s); находятся значения ошибок Yj, j 2 M. У вектора ve из ij-го символа, Xj = ij , вычитается значение Yj, j 2 M. При этом получается кодовый вектор u.

Пример 3. Рассмотрим поле GF (32) на основе многочлена x2 + 2x + 2 с примитивным элементом :

В виде

В троичном

Минимальный

степени

виде

многочлен элемента

0

 

x2 1

1

10

 

01

x + 2x + 2

2

11

x2 + 1

3

12

x2

+ 2x + 2

4

20

x + 1

5

02

x2

+ x + 2

6

22

x2

+ 1

7

21

x2

+ x + 2

8

10

x 1

Рассмотрим [8; 4]-код РС над GF (32) с кодовым расстоянием d = 5. Данный код может исправлять либо любые две ошибки и менее, либо любую ошибку и одновременно два и менее стираний, либо четыре и менее стираний. Рассмотрим случай одной ошибки и двух и менее стираний.

Ученые записки УлГУ. Серия Математика и информационные технологии

79

Пусть принят вектор:

v = 0; 2; ; 1; ; 1; 0; 0 :

1. Как мы видим, произошло одно стирание символа. Известный локатор стирания X2 =2, поэтому (x) = 1 2x. Заменив * на 0, получим:

v =

0; 2; 0; 1; ; 1; 0; 0 :

e

 

Определим s = 1, t = [(d s 1)=2] = 1. Вычисляем компоненты синдромного вектора:

S0 = ve( ) = 3 + 3 + 5 + 5 = 6;

S1 = ve( 2) = 4 + 6 + + 2 = 7;

S2 = ve( 3) = 5 + + 5 + 7 = 4;

S3 = ve( 4) = 6 + 4 + + 4 = 0:

Вычисляем Se(x) = S(x) (x) = ( 6 + 7x + 4x2)(1 + 6x) = 6 + 2x + 6x2

2. Определяем r 1(x) = x2t+s = x3, r0(x) = Se(x), v 1(x) = 0, v0(x) неполный обобщенный алгоритм Евклида:

r 1(x) = r0(x)q0(x) + r1(x); q0(x) = 6;

r1(x) = 1 + 4x + x2;

v1(x) = v 1(x) q0(x)v0(x) = 2;

r0(x) = r1(x)q1(x) + r2(x); q1(x) = 2x;

r2(x) = 6;

v2(x) = v0(x) q1(x)v1(x) = 1 + x:

+2x3.

=1. Применяем

Так как t + s = 2, deg r1(x) = 2, deg r2(x) < 2, то после второго шага останавливаемся. Тогда:

При = 1 получаем:

(x) = v2(x); !e(x) = r2(z):

 

(x) = 1 + x; !e(x) = 6:

3.Локатор ошибки равен X1 = 4.

4.По формулам (18) для локаторов X1 = 4 и X2 = 2 находим значения ошибок Y1 = 3, Y2 = 7. Таким образом,

e = 0; 0; 2 ; 0;3

 

; 0;6

0; 0 ;

u = v e =

7

3

 

 

0; ; ; 1; ; 1; 0; 0 :

e

 

 

 

 

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

многочлена:

u(x) = 2x + 3x2 + x3 + 6x4 + x5

Ученые записки УлГУ. Серия Математика и информационные технологии

80

получаются следующим образом:

u(1) = 2 + 3 + 1 + 6 + 1 = 5;

u( 1) = u( 7) = + + 5 + 2 + 3 = 7; u( 2) = u( 6) = 1 + 7 + 2 + 6 + 6 = 4; u( 3) = u( 5) = 7 + 5 + 7 + 2 + = 4;

i = 5; 7; 4; 4 = ; 3; 1; 1 :

4Декодирование кодов РС на основе алгоритма Питерсона-Горенстейна-Цирлера и алгоритма Берлекэмпа-Месси

Продолжим рассмотрение сравнения (8). Пусть d 2t + s + 1,

Se(x) = Se0 + Se1x + : : : + Se2t+2s 1x2t+2s 1 =

= S(x) (x) = (S0 + S1x + : : : + S2t+s 1x2t+s 1)( 0 + 1x + : : : + sxs);

где 0 = 1, i = ( 1)i i(Xt+1; : : : ; Xt+s) элементарный симметрический многочлен от

Xt+1; : : : ; Xt+s, i = 1; : : : ; s.

Так как в сравнении (8) deg !(x) t + s 1, deg S(x) 2t + 2s 1, deg (x) t, то

 

 

 

(x)S(x)

 

 

степенях j

= t + s; t + s + 1;e: : : ; 2t + s

 

1 равны нулю. Поэтому

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

многочлена

 

 

 

при

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

систему линейных уравнений:

 

 

 

 

 

 

 

 

 

 

 

 

 

получаем такую e

 

 

8 0Ss+t+1 + 1Ss+t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ : : : + tSs+1

= 0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0Ss+t

+ 1Ss+t 1

+ : : : + tSs

= 0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

e

 

e

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

: : :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

e

 

 

e

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

0Ss+2t 1 + 1Ss+2t 2 + : : : + tSs+t 1 = 0:

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Так как

0

= 1

 

 

:

система в матричной форме примет такой вид:

 

 

 

 

, то данная

e

 

 

e

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

0 Ss+1

Ss+2

: : : Ss+t

1

t

1

1

=

0

 

Ss+t+1

1

:

(19)

 

 

 

 

 

 

e

e

 

e

0

 

 

 

e

 

 

 

 

 

 

B

 

 

Ss

Ss+1

: : : Ss+t 1

t

 

 

 

B

Ss+t

 

C

 

 

 

 

 

 

 

: : :

: : :

: : :

 

: : :

C

: : :

C

 

 

 

: : :

 

 

 

 

 

 

 

 

e

e

 

 

e

B

1

 

 

B

 

 

e

 

1

C

 

 

 

 

 

B Ss+t 1

Ss+t

: : : Ss+2t

2 C

 

 

C

 

 

Ss+2t

 

 

 

 

 

B

 

 

 

 

 

 

 

CB

 

 

 

B

 

 

 

 

C

 

 

 

 

 

@

e

 

e

 

e

 

A@

 

 

A

 

@

 

e

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обозначим матрицу этой системы через M(t; s). Выясним, в каком случае эта система разрешима.

Лемма 1. Для любого j = 0; 1; : : : ; 2t 2 выполнено равенство:

ts

XY

Ses+j = YkXkj+1 (Xk Xt+i): k=1 i=1

Ученые записки УлГУ. Серия Математика и информационные технологии

81

Доказательство. Пусть, как и ранее, i = ( 1)i i(Xt+1; : : : ; Xt+s) элементарный симметрический многочлен от Xt+1; : : : ; Xt+s. Обозначим i = i(Xt+1; : : : ; Xt+s). Учитывая опре-

 

многочлена S(x) и равенство:

 

 

 

 

 

 

деление

 

s

(

e

1)s i

 

 

Xi

=

0;

 

 

 

t + 1 k

t + s;

 

 

 

 

 

 

s

 

 

иначе;

 

 

 

i=0

 

 

 

s i

k

 

Q

i=1(Xk

 

Xt+i);

получаем:

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s

 

 

 

s t+s

 

 

 

 

 

 

 

 

 

X

 

 

XX

 

 

 

 

 

t+s

 

Ss+j =

is

Sj+i s i =

YkXkj+i+1( 1)s i s i =

 

 

 

e

 

 

 

 

i=0 k=1 t

 

s

 

 

 

X

 

 

 

 

=0

 

 

 

Xk

X

 

 

 

 

 

 

X

Xki ( 1)s i s i =

 

 

 

=

YkXkj+1

 

 

 

YkXkj+1 Xki ( 1)s i s i =

 

 

k=1

 

 

 

i=0

 

 

 

 

=1

i=0

 

ts

XY

=

YkXkj+1 (Xk Xt+i):

k=1

i=1

Теорема 5. Пусть произошло s стираний. Матрица M(t; s) невырождена тогда и только тогда, когда произошло t ошибок.

Доказательство. Обозначим через A; B; C следующие квадратные матрицы порядка t:

A =

0 X1

X2

: : : Xt

1; B =

0

10

1

 

1

1

: : :

1

 

 

Y X

 

B X: t: :1

X: t: :1

:: :: ::

X: t: :1

C

B

:0: :

 

 

B 1

2

 

t

C

B

 

 

 

@

 

 

 

A

@

 

 

C = 0 Q

is=1(X1

 

Xt+i)

Q

0

: : :

0

 

is=1(X2 Xt+i) : : :

B

: : :

 

: : :

: : :

0

 

 

 

0

: : :

B

 

 

 

 

 

 

@

0

 

: : :

0

1

 

Y X

 

: : :

0

C

 

:20: :

2

:: :: ::

Y: :X:

;

 

 

 

t t

C

 

 

 

 

 

A

 

 

 

0

 

1

 

0C C:

:: : A

Qsi=1(Xt Xt+i)

Покажем, что M(t; s) = ABCAT . По лемме 1 элемент матрицы M(t; s) с индексами i и j равен:

 

 

t

s

 

(M(t; s))ij = Ss+i+j 2 =

i+j 1

 

YkXk

(Xk Xt+l):

 

e

=1

l=1

Учитывая, что:

Xk

Y

 

 

 

s

 

(A)ij = Xji 1; (BC)ij = ijYiXi

kY

 

(Xi Xt+k);

 

 

 

=1

где ij символ Кронекера, найдем элемент с соответствующими индексами матрицы ABCAT :

t

t

t

X

X Xk

(ABCAT )ij = (ABC)im(AT )mj =

 

Aik(BC)kmAjm =

m=1

m=1

=1

Ученые записки УлГУ. Серия Математика и информационные технологии

82

t t

s

t

s

X X

Y

X

Yl

=

Xki 1 kmYkXk (Xk Xt+l)Xmj 1 =

YkXki+j 1

(Xk Xt+l):

m=1 k=1

l=1

k=1

=1

Следовательно, M(t; s) = ABCAT .

Если произошло t ошибок, то все X1; : : : ; Xt+s различные, а все Y1; : : : ; Yt отличны от нуля, поэтому определитель матрицы ABCAT отличен от нуля. Если произошло менее чем t ошибок, то хотя бы один диагональный элемент матрицы B равен нулю, поэтому матрица ABCAT будет вырожденной.

Алгоритм 4 (декодирование кодов РС на основе алгоритма Питерсона- Горенстейна-Цирлера на случай ошибок и стираний).

Вход: принятый вектор v, в котором s стираний и не более t ошибок. Выход: исходный кодовый вектор u, если d 2t + s + 1.

1.Определяется t = [(d s 1)=2]. В векторе v все стирания заменяются нулями, получая

тем самым вектор ve. Находятся компоненты S0; S1; : : : ; S2t+s 1 синдромного вектора: Si = ve( i+1), i = 0; 1; : : : ; 2t + s 1. Если они все равны нулю, то возвращается вектор ve и процедура окончена.

Вычисляются значения локаторов стираний Xt+1 = it+1 ; : : : ; Xt+s = it+s на основе известных позиций стираний it+1; : : : ; it+s. Вычисляются коэффициенты модифицированного синдромного многочлена Se(x).

2.Определяется h := t.

Цикл: пока jM(h; s)j = 0, переопределить h := h 1.

Если h > 0, то находятся 1; : : : ; h решение системы (19). Это можно сделать, например, с метода Гаусса. После этого составляется многочлен (x). Пусть l = deg (x).

3.Отыскиваются l корней многочлена (x) последовательной подстановкой в него ненулевых элементов поля F . При этом локаторы ошибок это величины, обратные корням многочлена (x).

4.Определяется множество:

M = f1; : : : ; lg [ ft + 1; : : : ; t + sg:

По формуле (18) находятся значения ошибок Yj, j 2 M. У вектора ve из ij-го символа, Xj = ij , вычитается значение Yj, j 2 M. При этом получается кодовый вектор u.

Пример 4. Рассмотрим расширение поля GF (2) GF (24). Пусть поле GF (24) строится на основе примитивного многочлена p(x) = x4 +x+1, примитивный элемент поля GF (24):

0 =

1

 

 

 

=

1000;

1 =

 

 

 

 

=

0100;

2 =

 

 

2

 

=

0010;

3 =

 

 

 

3

=

0001;

4 =

1

+

 

 

=

1100;

5 =

 

 

+ 2

 

=

0110;

6 =

 

 

2 + 3

=

0011;

7 =

1

+

 

+ 3

=

1101;

8

=

1

 

+ 2

 

=

1010;

9

=

 

 

 

+ 3

=

0101;

10

=

1

+

+ 2

 

=

1110;

11

=

 

 

+ 2

+ 3

=

0111;

12

=

1

+

+ 2

+ 3

=

1111;

13

=

1

 

+ 2

+ 3

=

1011;

14

=

1

 

 

+ 3

= 1001;

15

=

1

 

 

 

=

1000:

Ученые записки УлГУ. Серия Математика и информационные технологии

 

83

Рассмотрим код Рида-Соломона с параметрами n = 15, k = 7, d = 9. В этом случае код может исправить четыре и менее ошибок, либо три и менее ошибок и два и менее стираний, либо две и менее ошибок и четыре и менее стираний, либо одну ошибку и шесть и менее стираний, либо восемь и менее стираний.

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

Пусть на приемном конце получен вектор:

v = 12; 7; 0; 9; 12; 5; 2; ; 3; ; ; ; ; 7; 4 ;

вкотором не более двух ошибок и четыре стирания. Применим алгоритм декодирования 4.

1.Полагаем s = 4, t = [(d s 1)=2] = 2. В данном случае нам известно, что:

X3 = 7; X4 = 9; X5 = 10; X6 = 12:

Поэтому:

(x) = (1 7x)(1 9x)(1 10x)(1 12x) =

=1 + 14x + x2 + 3x3 + 8x4:

Заменим в векторе v на 0:

v =

12; 7; 0; 9; 12; 5; 2; 0; 3; 0; 0; ; 0; 7; 4 :

e

 

Вычислим компоненты синдрома для вектора ve :

S0 = ve( ) = 9; S1 = ve( 2) = 0; S2 = ve( 3) = 5;

S3 = ve( 4) = 5; S4 = ve( 5) = 11; S5 = ve( 6) = 12;

S6 = ve( 7) = 8; S7 = ve( 8) = 3:

Поэтому синдромный многочлен имеет такой вид:

S(x) = 9 + 5x2 + 5x3 + 11x4 + 12x5 + 8x6 + 3x7:

Тогда:

Se(x) = S(x) (x) = Se0 + Se1x + : : : + Se11x11 =

= 9 + 8x + 6x2 + 9x3 + 12x4 + 7x5 + 13x6+ + 3x7 + 4x8 + 11x10 + 11x11:

2. В матричном виде система относительно неизвестных 1; 2 примет вид:

!!

 

S4

S5

2

=

S6

;

 

 

e5

e6

1

 

e7

 

 

 

S

S

 

S

 

 

 

e12

e 7

2

 

e13

;

 

7 13

1

= 3

 

которая имеет решение 1 = 14, 2 = 3, так как jM(2; 4)j =6 0.

 

 

 

Ученые записки УлГУ. Серия Математика и информационные технологии

84

3. Корнями многочлена локаторов ошибок:

(x) = 1 + 14x + 3x2

являются x1 = 1, x2 = 12, поэтому X1 = 1, X2 = 3.

4. После того, как все локаторы ошибок известны, можно воспользоваться формулой Форни для кодов РС:

 

 

 

 

Xi 1!(Xi 1)

 

 

 

 

 

Yi =

1

j=i

e

; i = 1; 2; : : : ; t + s;

 

 

j t+s;

(1 XjXi 1)

 

 

 

 

Q

 

 

 

 

где:

 

 

 

6

 

 

 

 

 

 

 

 

!(x) (x)S(x)

 

 

 

9

+ 3x2

+ 7x3

+ 10x7

(mod x8):

 

+ 7x4 + 7x5e+ 12x6

 

 

 

 

e

 

 

 

Находим значения ошибок: Y1 = 8; Y2 = 3; Y3 = 5, Y4 = 8; Y5 = 6, Y6 = 12. Таким образом:

e = 8; 0; 0; 3; 0; 0; 0; 5; 0; 8; 6; 0; 12; 0; 0 ;

u = 9; 7; 0; ; 12; 5; 2; 5; 3; 8; 6; ; 12; 7; 4 :

Замечание 1. Если второй шаг алгоритма 4 заменить тем, что на вход алгоритма Берлекэмпа-Месси подается последовательность Ses, Ses+1,. . . , Ses+2t 1, то на выходе данного алгоритма получается многочлен (x). Этим самым получим новый алгоритм декодирования кодов РС на основе алгоритма Берлекэмпа-Месси на случай ошибок и стираний.

Список литературы

[1]Блейхут Р. Теория и практика кодов, контролирующих ошибки. Перевод с англ.: И.И. Грушко, В.М. Блиновский. Под редакцией: К.Ш. Зигангирова. М.: Мир, 1986. 576 с.

[2]Gao S. A new algorithm for decoding Reed Solomon codes // Communications, Information and Network Security / V. Bhargava, H. V. Poor, V. Tarokh, and S. Yoon, Eds. Norwell, MA: Kluwer, 2003. Vol. 712. P. 55–68.

[3]W. Cary Hu man, Vera Pless. Fundamentals of Error-Correcting Codes. Cambridge University Press, 2003. 646 p.

[4]Рацеев С.М. Об алгоритмах декодирования кодов Гоппы // Челяб. физ.-матем. журн. 2020. Т. 5, № 3. С. 327–341.

[5]Рацеев С.М., Череватенко О.И. О простом алгоритме декодировании кодов БЧХ, кодов Рида-Соломона и кодов Гоппы // Вестник СибГУТИ. 2020. № 3. С. 3–14.

[6]Рацеев С.М., Череватенко О.И. Об алгоритмах декодирования обобщенных кодов РидаСоломона // Системы и средства информатики. 2020. Т. 30, № 4. С. 83–94.

Ученые записки УлГУ. Серия Математика и информационные технологии

85

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