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

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

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

MATH-NET.RU

Общероссийский математический портал

С. М. Рацеев, Об алгоритмах декодирования кодов Рида-Соломона на случай ошибок и стираний, Ученые записки УлГУ. Серия “Математика и информационные технологии”, 2021, выпуск 1, 67–86

Использование Общероссийского математического портала Math-Net.Ru подразумевает, что вы прочитали и согласны с пользовательским соглашением

http://www.mathnet.ru/rus/agreement

Параметры загрузки: IP: 95.24.110.217

2 апреля 2025 г., 21:05:58

Ссылка на статью:

// Ученые записки УлГУ. Сер. Математика и информационные технологии. УлГУ. Электрон. журн. 2021, № 1, с. 67–86.

Поступила: 15.01.2021 Окончательный вариант: 30.05.2021c УлГУ

УДК 519.725

Об алгоритмах декодирования кодов Рида-Соломона на случай ошибок и стираний

Рацеев С.М.

ratseevsm@mail.ru УлГУ, Ульяновск, Россия

В работе рассматриваются алгоритмы декодирования кодов Рида-Соломона на случай ошибок и стираний. Данные алгоритмы строятся на основе алгоритма Гао, алгоритма Сугиямы, алгоритма Питерсона-Горенстейна-Цирлера, алгоритма Берлекэмпа–Месси. Первый из данных алгоритмов относится к алгоритмам безсиндромного декодирования, остальные к алгоритмам синдромного декодирования. Актуальность данных алгоритмов состоит в том, что они применимы для декодирования кодов Гоппы, которые лежат в основе некоторых перспективных постквантовых криптосистем.

Ключевые слова: помехоустойчивые коды, коды Рида-Соломона, декодирование кода.

Введение

Пусть = ( 0; 1; : : : ; n 1), где i различные элементы конечного поля F = GF (q), y = (y0; y1; : : : ; yn 1) ненулевые (не обязательно различные) элементы из F . Тогда обобщенный код Рида-Соломона, обозначаемый GRSk( ; y), состоит из всех кодовых векторов вида:

u = (y0b( 0); y1b( 1); : : : ; yn 1b( n 1));

(1)

где b(x) информационные многочлены над полем F степени не выше k 1. Кодовое расстояние кода GRSk( ; y) равно d = n k + 1. Если n = q 1, вектор y состоит из единиц иi = i, i = 0; 1; : : : ; n 1, где примитивный элемент поля F , то в этом случае получаем код Рида-Соломона (РС).

Для декодирования кодов Рида-Соломона хорошо известны следующие алгоритмы [1, 2, 3]: алгоритм Гао, алгоритм Сугиямы, алгоритм Берлекэмпа–Месси, алгоритм Питерсона- Горенстейна-Цирлера. В дополнение к этим алгоритмам можно добавить алгоритм поиска

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

67

ошибок Форни. Для обобщенных кодов Рида-Соломона и кодов Гоппы подобные алгоритмы рассматривались в работах [4, 5, 6, 7].

В данной работе рассматриваются алгоритмы декодирования для кодов РС на случай ошибок и стираний: декодирование на основе алгоритма Гао, на основе алгоритма Сугиямы, на основе алгоритма Питерсона-Горенстейна-Цирлера, на основе алгоритма Берлекэм- па–Месси.

1Декодирование кодов РС на основе алгоритма Гао на случай ошибок и стираний (первый вариант)

При описании нижеследующего алгоритма декодирования будем следовать работам [8, 5]. Пусть код Рида-Соломона A над полем GF (q) имеет параметры [n; k; d = n k + 1], n = q 1, примитивный элемент поля GF (q). Будем полагать, что A = GRSk( ; y), где

= (1; ; : : : ; n 1), y = (1; : : : ; 1). Пусть кодовый вектор u 2 A получен на основе информационного многочлена b(x) = b0 + b1x + : : : + bk 1xk 1 с помощью (1).

Пусть в канале связи происходят ошибки и стирания, d 2t+s+1, где t и s число ошибок и стираний соответственно. Предположим, что в принятом векторе v произошли t ошибок и s стираний, причем S множество позиций в векторе v, на которых произошли стирания. На основе векторов v, , y составим соответствующие векторы ve, , z путем удаления всех компонент с номерами из множества S. Рассмотрим код GRSk( ; z) длины ne = n s и размерности ek = k, который получается из кода GRSk( ; y) путем выкалывания компонент с номерами из множества S. Для кодового расстояния кода GRSk( ; z) выполнено равенство de = ne ek + 1 = n s k + 1. Если d 2t + s + 1, то для кодового расстояния de кода GRSk( ; z) выполнено неравенство de 2t + 1. Тогда вектор ve, в котором только ошибки, можно декодировать.

На основе компонент вектора определим многочлен:

m(x) = (x 0)(x 1) : : : (x ne 1):

Пусть X1 = i1 ; : : : ; Xt = it локаторы ошибок. В данном алгоритме многочлен локаторов ошибок запишем в виде:

(x) = (x X1) : : : (x Xt):

Если ошибок не было, то будем полагать, что (x) = 1. Пусть ue вектор, полученный из u, путем выкалывания компонент с номерами из S. Понятно, что ue 2 GRSk( ; z). Так как n k+1 = d 2t+s+1, то n s 2t+k k, поэтому вектор ue получен с помощью кодирования информационного многочлена b(x) = b0 + b1x + : : : + bk 1xk 1 с помощью правила:

ue = (b( 0); b( 1); : : : ; b( ne 1)):

Если vei = uei, то vei = b( i). Если vei 6= uei, то на позиции i произошла ошибка, поэтому( i) = 0. Из этого следует, что:

( i)vei = ( i)b( i); i = 0; 1; : : : ; ne 1:

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

68

Обозначим p(x) = (x)b(x). Тогда:

( i)vei = p( i); i = 0; 1; : : : ; ne 1:

Построим интерполяционный многочлен Лагранжа f(x) степени не выше ne 1, проходящий через точки ( 0; ve0), ( 1; ve1),. . . , ( ne 1; vene 1):

Тогда из равенств:

f( i) = vei; i = 0; 1; : : : ; ne 1; deg f(x) ne 1:

 

получаем сравнение:

( i)f( i) = p( i); i = 0; 1; : : : ; ne 1;

(2)

 

(x)f(x) p(x) (mod m(x)):

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

Вход: принятый вектор v.

Выход: исходный информационный вектор b, если в соответствующем кодовом векторе u произошло s стираний и не более t ошибок при d 2t + s + 1.

1. Пусть S позиции стертых символов в векторе v. На основе векторов v, составить соответствующие векторы ve, путем удаления всех компонент с номерами из множества S. После этого вектор ve рассматривается как вектор, в котором только ошибки, и который соответствует некоторому кодовому вектору кода GRSk( ; z) длины ne = n s и размерности

ek = k. Определяется многочлен:

ne 1

Y

m(x) = (x i):

i=0

2. Интерполяция. Строится интерполяционный многочлен f(x), для которого:

f( i) = vei; i = 0; 1; : : : ; ne 1:

3. Незаконченный обобщенный алгоритм Евклида. Пусть r 1(x) = m(x), r0(x) = f(x), v 1(x) = 0, v0(x) = 1. Производится последовательность действий обобщенного алгоритма Евклида:

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

vi(x) = vi 2(x) vi 1(x)qi 1(x); i 1;

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

 

n + k

 

n + k

deg rj 1(x)

e 2 e

;

deg rj(x) <

e 2 e

:

4. Деление. Информационный многочлен кода GRSk( ; z), соответствующий кодовому

вектору u, равен b(x) = rj(x) .

vj(x)

Теорема 1. Если в кодовом векторе произошло t ошибок и s стираний, причем d 2t + s + 1, то алгоритм декодирования 1 всегда приводит к единственному решению, а именно, к исходному информационному вектору b.

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

69

Доказательство следует из теоремы 1 работы [5].

Пример 1. Рассмотрим код РС над полем GF (11) с параметрами n = 10, k = 4, d = 7,= 2. Данный [10; 4; 7]-код может исправлять до трех ошибок, либо до двух ошибок и до двух стираний, либо одну ошибку и до четырех стираний, либо до шести стираний. Рассмотрим случай одной ошибки и четырех стираний. При этом данный код можно рассматривать как обобщенный код GRS4( ; y), где = (1; 2; 4; 8; 5; 10; 9; 7; 3; 6), вектор y состоит из единиц.

Пусть b = (5; 3; 8; 2) информационный вектор, который соответствует многочлену b(x) = 5 + 3x + 8x2 + 2x3. После кодирования вектора b получаем кодовый вектор:

u = (b(1); b(2); b(4); : : : ; b(6)) = (7; 4; 9; 3; 8; 8; 4; 4; 8; 6):

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

v = ( ; ; ; ; 8; 8; 4; 4; 2; 6);

т.е. произошла ошибка на 8-й позиции (нумеруя с нуля) и четыре стирания с 0-й по 3-ю позиции. Для декодирования применим алгоритм 1.

1. Удалив в векторе v стертые символы, получим новый вектор:

ve = (8; 8; 4; 4; 2; 6);

в котором только одна ошибка. Множество S позиций стертых символов равно S = f0; 1; 2; 3g. Пусть и z векторы длины 6, которые получаются соответственно из векторов и y путем удаления компонент с номерами из множества S:

= (5; 10; 9; 7; 3; 6):

Составляем многочлен m(x):

m(x) = (x 5)(x 10)(x 9)(x 7)(x 3)(x 6) =

= 6 + 3x + 8x2 + 9x3 + x4 + 4x5 + x6:

Ниже приведена матрица Вандермонда V на основе вектора и обратная к ней матрица V 1:

 

0 5

10

9

7

3

6

1

 

 

0 3

4

0

10

7

6

1

 

 

B

1

1

1

1

1

1

C

 

 

B

4

5

10

8

3

4

C

 

V =

4

10

3

2

5

7

; V 1

=

10 8

4

3

0

3

:

 

B

 

 

 

 

 

 

C

 

 

B

 

 

 

 

 

 

C

 

 

B

3

1

4

5

9

3

C

 

 

B

8

0

7

3

9

10

C

 

 

9

1

5

3

4

9

 

 

5

6

5

0

10

3

 

 

B

 

 

 

 

 

 

C

 

 

B

 

 

 

 

 

 

C

 

 

B

1

10

1

10

1

10

C

 

 

B

4

10 7

9

4

7

C

 

 

B

 

 

 

 

 

 

C

 

 

B

 

 

 

 

 

 

C

 

 

@

 

 

 

 

 

 

A

 

 

@

 

 

 

 

 

 

A

 

2. Интерполяция. Вычисляем коэффициенты многочлена f(x) = f0 + f1x + : : : + f5x5:

(f0; f1; : : : ; f5) = vVe 1 = (8; 0; 0; 2; 6; 4);

f(x) = 8 + 2x3 + 6x4 + 4x5:

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

70

3. Применение неполного обобщенного алгоритма Евклида. Определяем r 1(x) = m(x), r0(x) = f(x), v 1(x) = 0, v0(x) = 1 и применяем алгоритм Евклида:

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

q0(x) = 2 + 3x;

r1(x) = 1 + x + 8x2 + 5x3 + 5x4; v1(x) = v 1(x) q0(x)v0(x) = 9 + 8x:

Так как (ne + ek)=2 = 5, deg r0(x) = 5, deg r1(x) = 4, то после первого шага алгоритма Евклида останавливаемся.

4. Деление:

b(x) = r1(x) = 5 + 3x + 8x2 + 2x3: v1(x)

2Декодирование кодов РС на основе алгоритма Гао на случай ошибок и стираний (второй вариант)

Пусть после передачи кодового вектора u на приемной стороне получен вектор v, в котором t ошибок и s стираний, причем d 2t + s + 1. Заменим в векторе v стертые символы, например, нулями. Получим при этом вектор ve. Пусть ошибки произошли на позициях i1; : : : ; it, а стирания на позициях it+1; : : : ; it+s. Пусть X1 = i1 ; : : : Xt = it неизвестные локаторы ошибок, Xt+1 = it+1 ; : : : ; Xt+s = it+s известные локаторы стираний.

Определим многочлен локаторов ошибок (x) и многочлен локаторов стираний (x) следующим образом:

(x) = (x X1) : : : (x Xt); (x) = (x Xt+1) : : : (x Xt+s):

Обозначим e(x) = (x) (x). Если ошибок и стираний не было, то будем полагать, что e(x) = 1.

Если vei = ui, то vei = b( i). Если vei 6= ui, то на позиции i произошла ошибка или стирание, поэтому e( i) = 0. Из этого следует, что:

e( i)vei = e( i)b( i); i = 0; 1; : : : ; n 1:

Обозначим pe(x) = e(x)b(x). Тогда:

e( i)vei = pe( i); i = 0; 1; : : : ; n 1:

Построим интерполяционный многочлен Лагранжа f(x) степени не выше n 1, проходящий через точки (1; ve0), ( ; ve1),. . . , ( n 1; ven 1):

 

f( i) = vi

; i = 0; 1; : : : ; n

 

1; deg f(x)

 

n

 

1:

Тогда из равенств:

ei

i

i

);

 

 

 

 

 

 

 

e(

)f(

) = pe(

i = 0; 1; : : : ; n 1;

 

 

получаем сравнение:

e(x)f(x) pe(x) (mod xn 1):

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

71

= it+s

После обозначения fe(x) = f(x) (x) данное сравнение приобретает вид:

Заметим, что:

(x)fe(x) p(x) (mod xn 1):

 

 

 

 

 

(3)

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

deg (x)

 

 

n k s

;

 

deg p(x) <

 

n + k + s

;

(4)

 

 

 

 

 

 

 

2

 

 

так как:

 

 

2

 

 

 

 

1e

 

 

 

 

 

 

 

 

 

d

 

s

 

n

 

 

k

s

 

 

 

deg (x) t

 

 

 

 

 

=

 

 

 

 

 

 

;

 

 

 

 

 

2

 

 

 

 

 

2

 

 

 

 

 

deg p(x) = deg (x) + deg (x) + deg b(x)

 

 

 

e

n k s

+ s + k

 

1 <

n + k + s

:

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

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

Вход: принятый вектор v.

Выход: исходный информационный вектор b, если в соответствующем кодовом векторе u произошло s стираний и t ошибок при d 2t + s + 1.

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

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

2. Интерполяция. Строится интерполяционный многочлен f(x), для которого: f( i) = vei; i = 0; 1; : : : ; n 1:

Вычисляется многочлен fe(x) = f(x) (x).

3. Незаконченный обобщенный алгоритм Евклида. Пусть r 1(x) = xn 1, r0(x) = fe(x), v 1(x) = 0, v0(x) = 1. Производится последовательность действий обобщенного алгоритма Евклида:

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

 

 

 

vi(x) = vi 2(x) vi 1(x)qi 1(x); i 1;

 

 

 

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

 

 

 

 

 

 

deg rj 1(x)

n + k + s

n + k + s

(5)

 

 

; deg rj(x) <

 

 

 

 

:

2

2

 

 

 

 

 

 

 

 

rj(x)

 

 

 

4. Деление. Информационный многочлен равен b(x) =

 

.

 

 

 

vj(x) (x)

 

 

 

Теорема 2. Если в кодовом

векторе

произошло t

ошибок

и

s стираний, причем

d 2t + s + 1, то алгоритм декодирования 2 всегда приводит к единственному решению, а именно, к исходному информационному вектору b.

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

72

Доказательство. Пусть b(x) исходный информационный многочлен, u(x) кодовый многочлен, полученный с помощью формулы (1). Заметим, что для (x) и pe(x) (истинные значения), которые получены на основе исходных данных, сравнение (3) выполнено, причем b(x) = pe(x)=( (x) (x)).

Пусть с помощью алгоритма 2 получены значения rj(x) и vj(x), причем выполнено (5). Покажем, что rj(x) делится на vj(x) (x), причем rj(x)=(vj(x) (x)) = b(x). Домножив первое из приведенных ниже сравнений:

(x)fe(x) pe(x) (mod xn 1);

vj(x)fe(x) rj(x) (mod xn 1)

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

vj(x)pe(x) (x)rj(x) (mod xn 1):

(6)

Оценим сверху степени многочленов из левой и правой частей данного сравнения. Учитывая неравенства (4) и (5) получаем:

 

deg (x)rj(x) <

n k s

+

n + k + s

= n:

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

2

 

 

 

 

Так как:

 

 

 

 

 

 

 

 

 

 

 

 

n + k + s

 

n k s

 

deg v

(x) = deg(xn

 

1)

 

deg r

 

(x)

 

n

 

=

;

j 1

 

 

j

 

 

 

 

 

 

 

2

2

 

то:

deg vj(x)pe(x) < n k s + n + k + s = n:

2 2

Следовательно, из сравнения (6) получаем равенство:

 

 

 

 

v (x)p(x) = (x)r

(x):

 

 

 

Так как p(x) = (x) (x)b(x), то rj(x)j= vej(x) (x)b(x).j

 

 

 

 

 

Пример 2.

 

GF (23)

 

 

 

 

 

x3

+ x + 1

 

e

Построим поле

 

3

 

на основе примитивного многочлена

 

 

с при-

митивным элементом . Так как

 

= + 1, то:

 

 

 

 

 

 

 

 

0 =

1

 

=

100;

 

 

 

 

 

1 =

 

 

=

010;

 

 

 

 

 

2 =

 

2

=

001;

 

 

 

 

 

3 =

1

+

=

110;

 

 

 

 

 

4 =

 

+ 2 =

011;

 

 

 

 

 

5

=

1

+ + 2

=

111;

 

 

 

 

 

6

=

1

+ 2

=

101;

 

 

 

 

 

7

=

1

 

=

100:

 

 

 

Рассмотрим код Рида-Соломона над полем GF (23) с параметрами n = 7, k = 3, d = 5. Так как d = 5, то данный код может исправлять либо до двух ошибок, либо одну ошибку и до двух стираний, либо до четырех стираний.

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

73

Ниже приведена матрица Вандермонда V на основе вектора = (1; ; 2; 3; 4; 5; 6) и обратная к ней матрица V 1:

0 1

2

4

6

3

5

1

 

0 1

5

3

6

4

2

1

 

V = B

1

1

1

1

1

1

1

C

 

= B

1

1

1

1

1

1

1

C

 

1

 

2

3

4

5

6

; V 1

1

6

5

4

3

2

3

:

3 6

2

5

 

4

4

 

5

2

6

B

 

 

 

 

 

 

 

C

 

B

 

 

 

 

 

 

 

C

 

B

1

 

 

 

 

C

 

B

1

 

 

 

 

C

 

1

4

 

5

2

6

3

 

1

3

6

2

5

 

4

 

B

 

 

 

 

 

 

 

C

 

B

 

 

 

 

 

 

 

C

 

B

1

5 3

 

6

4

2

C

 

B

1

2

4

6

3

5

C

 

B

 

 

 

 

 

 

 

C

 

B

 

 

 

 

 

 

 

C

 

B

1

6

5

4

3

2

 

C

 

B

1

2

3

4

5

6

C

 

B

 

 

 

 

 

 

 

C

 

B

 

 

 

 

 

 

 

C

 

@

 

 

 

 

 

 

 

A

 

@

 

 

 

 

 

 

 

A

 

Рассмотрим случай одной ошибки и двух стираний. Пусть b = ( 4; 3; ) информационный вектор, который соответствует многочлену b(x) = 4 + 3x + x2. После кодирования вектора b получаем кодовый вектор (который можно получить несколькими способами):

u = (b(1); b( ); : : : ; b( 6)) = ( 4; 3; ; 0; 0; 0; 0)V = ( 5; 3; 4; ; 3; ; 5):

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

v = ( 5; ; 4; ; 2; ; 5);

т.е. произошли два стирания на 1-й и 5-й позициях и одна ошибка на 4-й позиции (нумерация с нуля).

Применим алгоритм декодирования 2.

1. Полагаем s = 2, t = [(d s 1)=2] = 1. Заменив в векторе v стертые символы нулями, получаем ve = ( 5; 0; 4; ; 2; 0; 5). Также вычисляем многочлен локаторов стираний (x) = (x )(x 5) = 6 + 6x + x2.

2. Интерполяция. Вычисляем коэффициенты многочлена f(x) = f0 + f1x + : : : + f6x6:

(f0; f1; : : : ; f6) = vVe 1 = (0; 4; 1; 1; ; 2; 5); f(x) = 4x + x2 + x3 + x4 + 2x5 + 5x6:

Вычисляем fe(x) = f(x) (x) = 3x + 4x2 + 4x3 + 6x4 + x5 + 4x6 + x7 + 5x8.

3. Незаконченный обобщенный алгоритм Евклида. Полагаем r 1(x) = 1 + x7, r0(x) = fe(x), v 1(x) = 0, v0(x) = 1. Применяем обобщенный алгоритм Евклида:

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

q0(x) = 0;

r1(x) = 1 + x7;

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

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

r2(x) = + 2x + 4x2 + 4x3 + 6x4 + x5 + 4x6;

v2(x) = v0(x) v1(x)q1(x) = 1;

r1(x) = r2(x)q2(x) + r3(x); q2(x) = 1 + 3x;

r3(x) = 3 + x + x2 + 5x3 + 2x4 + 4x5;

v3(x) = v1(x) v2(x)q2(x) = 1 + 3x:

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

74

После третьего шага процесс останавливается, так как deg r2(x) = 6, deg r3(x) = 5, причем

(n + k + s)=2 = 6.

4. Деление. Исходный информационный многочлен равен:

 

 

 

r3(x)

 

 

b(x) =

 

 

= 4

+ 3x + x2

:

v3

 

 

(x) (x)

 

 

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

Пусть v полученный на приемной стороне вектор, в котором могут быть ошибки и стирания. Пусть t максимальное число возможных ошибок при фиксированном числе стираний s в векторе v, d 2t + s + 1, t = [(d s 1)=2]. Так как позиции стертых символов известны, то заменим эти символы в векторе v, например, на нули и будем обращаться с полученным вектором ve, как с вектором, содержащим только ошибки. Пусть ошибки произошли на позициях i1; : : : ; it, а стирания на позициях it+1; : : : ; it+s. При этом известны только позиции it+1; : : : ; it+s. После того, как на данные позиции поместили нули, с какими-то позициями могли угадать (если в кодовом векторе там действительно стояли нули). Поэтому v = u + e, где e вектор ошибок веса не более t + s.

 

Пусть X1 = i1 ; : : : Xt = it неизвестные локаторы ошибок, Xt+1 = it+1 ; : : : ; Xt+s =

it+s

известные локаторы стираний,

Y

 

 

 

 

e

 

 

; : : : ; Y

 

 

 

e

 

 

 

значения ошибок. Найдем

e

 

 

 

1

=

 

i1

 

 

 

 

t+s =

 

 

it+s

компоненты синдромного вектора:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S0 = v( ) = Y1X1 + : : : + YtXt + Yt+1Xt+1 + : : : + Yt+sXt+s;

 

 

 

 

 

 

:S:1:= e(

2

) =

 

1

 

1

+

 

+

t

 

t

 

+

 

t+1

 

t+1 +

 

+

 

 

t+s

t+s

 

 

 

 

 

 

v

 

Y

X2

: : :

 

Y X2

 

 

Y

 

 

 

 

X2

 

 

: : :

 

 

Y

 

 

X

2

;

 

 

 

 

 

S2t+s e1 = v( 2t+s) = Y1X12t+s + : : : + YtXt2t+s + Yt+1Xt2+1t+s + : : : + Yt+sXt2+t+s s:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запишем

синдромный многочлен в виде:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

j=1 YjXji+1!xi = j=1 YjXj

 

 

 

 

(Xjx)i! =

 

 

 

S(x) =

i=0

 

Sixi =

=0

 

 

 

i=0

 

 

 

 

2t+s 1

 

 

 

 

 

2t+s 1 t+s

 

 

 

 

 

 

 

 

 

 

 

t+s

 

 

 

 

 

 

2t+s 1

 

 

 

 

 

X

 

 

 

 

 

 

Xi

 

X

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

X

 

 

 

 

 

= t+s Y X

 

1 (Xjx)2t+s

=

 

t+s

 

 

 

YjXj

 

 

x2t+s

t+s

 

YjXj2t+s+1

:

 

 

 

 

 

Xj

 

 

 

 

 

 

X

 

 

 

 

 

X

j

 

 

j

1

 

Xjx

 

 

 

 

 

 

 

Xjx

 

 

 

 

 

 

1

 

Xjx

 

 

 

 

j=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=1

 

 

 

 

 

 

 

 

 

 

 

 

j=1

 

 

 

 

 

Полагая:

 

 

 

 

 

 

 

 

 

 

t+s

 

 

 

 

 

 

 

 

 

 

 

 

t+s

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x) = (1

 

 

 

X x) =

 

ixi;

 

= 1;

 

 

 

 

 

 

 

 

t+s

 

 

 

e

 

 

i=1

 

 

 

 

i

 

 

 

 

 

i=0 et+s

 

e0

 

 

 

Y

 

 

 

 

 

 

X

 

 

 

 

Yj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

(1 Xjx);

 

 

 

!(x) =

YiXi

 

 

6

(1 Xjx); (x) =

 

YiXi2t+s+1

 

 

6

 

 

 

e

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 j t+s;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 j t+s;

 

 

 

 

 

 

 

 

 

 

 

=i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j=i

 

 

после приведения всех дробей к общему знаменателю, получим:

S(x) = !e(x)e(x)

x2t+s e(x):e(x)

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

75

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