Тогда:
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 |
