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

ridsolomon

.pdf
Скачиваний:
38
Добавлен:
15.03.2015
Размер:
596.55 Кб
Скачать

Tj = s

pi Si+ j = s

pi t

Yl X ll0 +i+ j1 + s

pi s

VmUml0 +i+ j1 =

 

(4.4.9)

it=0

 

is=0

l=1

s

 

i=0 s

m=1

 

t

s

= Yl X ll0 + j1 pi X li + VmUml0

+ j1 piUmi = Yl X ll0 + j1 pi X li ,

 

l=1

 

i=0

 

m=1

i=0

 

 

l=1

i=0

 

гдеиспользованотообстоятельство, что p(Um ) = s

piUmi

= 0 . Врезультате, модифициро-

 

 

 

 

 

 

 

i=0

 

 

 

 

 

ванные компоненты можно записать следующим образом:

 

 

 

 

 

Tj = t

El X ll0 + j1 , El = Yl s

pi X li = Yl p( X l ).

(4.4.10)

 

 

 

 

l=1

 

 

 

 

i=0

 

 

 

Заметим, что величины Tj

определены для значений j =1, 2,..., d s 1 .

 

Теперьзадача заключается в том, чтобы, зная модифицированный синдром

T = (T1 ,T2 ,...,Td s1 ) ,

определить число ошибок t, их локаторы

X1 , X 2 ,..., X t и их

модифицированныевеличины E1 , E2 ,..., Et . Этузадачуможнорешитьспомощьюлюбого

метода декодирования БЧХ-кода, например, с помощью алгоритма Питерсона- Горенстейна-Цирлера или алгоритма Берлекэмпа-Месси, который будет рассмотрен ниже. В результате будут получены локаторы ошибок X1 , X 2 ,..., X t . Для того, чтобы

найти действительные значения ошибок на позициях, соответствующих локаторам, мы можем воспользоваться вторым соотношением в (4.4.10) и получить:

 

 

 

 

 

 

Y

=

 

El

 

 

, l =1, 2,..., t .

 

 

 

 

 

 

 

(4.4.11)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

 

 

p( X l

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для отыскания величин искажений V1 ,V2 ,...,Vs

на

стертых

позициях,

мы

можем

воспользоваться теперь уже известными величинами {X l ,Yl ,Um

и S j } и найти решение

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U l0

U l0

...

U l0

 

 

V

 

 

 

S

1

(Y X l0

+

... +Y

X l0

)

 

 

 

 

1

 

2

 

s

 

 

 

 

1

 

 

 

 

 

1

1

 

t

t

 

 

 

 

l

+1

l

+1

 

l

+1

 

 

 

 

 

 

l

+1

 

 

l

+1

 

 

 

U10

 

U20

 

...

U s0

 

 

 

V2

 

= S2 (Y1 X10

 

+

... +Yt X t 0

 

)

.

(4.4.12)

.

 

.

 

.

.

 

 

 

...

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

U2l0 +s2

...

Usl0 +s2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U1l0 +s2

 

Vs

 

 

Ss (Y1 X1l0 +s1 +

... +Yt X tl0 +s1 )

 

4.4.4 Метод Форни вычисления величин ошибок и стираний

Какбылопоказановыше, вычислениевеличиношибокистиранийпроисходитпосле того, как определен полином локаторов ошибок на основе знания синдрома или модифицированного синдрома. Если стираний нет, то модифицированные и исходные синдромные компоненты совпадают. Мы видели, что как величины ошибок, так и величины искажений на стертых позициях, находятся посредством решения системы линейныхуравнений. Впервомслучаесистемасостоитиз t уравнений, вовторомслучае

– из s уравнений. Количество операций для решения общей системы линейных уравнений порядка t пропорционально t3 . Оказывается, что число операций можно

уменьшитьпримернодовеличины, пропорциональной t2 , есливоспользоватьсяметодом, предложенным Форни (1965) для алгоритма Питерсона-Горенстейна-Цирлера.

Предположим, чтопринятоесловосодержитошибкиистиранияиобозначимчерез T (x) синдромный полином, T (x) = dj=1s1 Tj x j1 . Определим также полином

(x) = T (x)Λ(x) mod x d s1 , называемый полиномом величин ошибок. Очевидно, что

21

полиномвеличиношибокполучаетсяизобычногопроизведениясиндромного полинома иполиномалокаторовошибок Λ(x) = it=1 (1 xX i ) засчетотбрасываниявсехслагаемых

состепенями d s 1 ивыше. Используяопределениемодифицированныхсиндромных компонент (4.4.10),

 

 

T

j

= E X l0 + j1

+... + E

X l0 + j1

,

 

 

 

 

1 1

 

t

t

 

имеем

 

 

 

 

 

 

 

 

 

 

d s1

t

 

 

 

t

 

 

 

(x) = ∑ ∑El X ll0

+ j1 x j1 (1 xX i ) =

 

 

j=1

l=1

 

 

 

i=1

 

 

 

t

d s1

 

 

 

t

 

 

= El X ll0

(xX l

) j1 (1 xX l )

(1 xX i ) mod xd s1.

l =1

 

j=1

 

 

 

i=1,il

 

Сумму в фигурных скобках можно вычислить, используя следующее равенство для любого поля при α 1

1 +α +α2 +... +αd 2 = 1 αd 1 , 1 α

которое проверяется простым перемножением знаменателя в правой части на сумму в левой. В результате, учитывая, что (x) представляет остаток от деления на xd s1 , получим

t

1 (xX l )

d

s1

t

t

t

(x) = El X ll0

 

 

(1 xX l ) (1 xX i ) = El X ll0

(1 xX i ) mod xd s1.

1 xX l

 

l=1

 

i=1,il

l=1

i=1,il

Здесь произведено сокращение на 1 xX l поскольку переменная х будет в дальнейшем принимать значения отличные от Xl1 . Кроме этого, мы воспользовались тем, что 1 (xX l )d s1 =1mod xd s1 . Заметим, что степень полинома (x) равна t-1, где t (d s 1) / 2 .

t

Рассмотрим значение полинома (x) в точке X k1 . Произведение (1 xX i )

i=1,il

обращается в 0 при подстановке X k1 , если только k l . Поэтому

t

( X k1 ) = Ek X kl0 (1 X k1 X i ) . i=1,ik

С другой стороны, вычисляя формальную производную полинома Λ(x) по x, получим

d

t

t

Λ(x) = −X l (1 xX i ) .

dx

l =1

i=1,il

Отсюда

t

Λ' ( X k1 ) = −X k (1 X k1 X i ) .

i=1,ik

Окончательно мы можем записать для модифицированных величин ошибок следующее соотношение:

Ek = −

( X k1 )

 

.

(4.4.13)

l

1

1

)

 

X k0

 

Λ'( X k

 

 

Наэтапевычисления величиношибокполиномлокаторов Λ(x) =1 + Λ1 x +... + Λt xt уже вычислен, поэтому формальную производную

22

 

 

 

t1

 

 

Λ' (x) = Λ1

+ Λ3 x2 +... + Λt x

 

, t

нечетное,

 

 

Λt1 xt2 ,

t четное,

можно легко вычислить. Кроме этого, можно вычислить полином ошибок как произведение по модулю xd s1 синдромного полинома T (x) и полинома локаторов ошибок. Поэтому соотношение (4.4.13) можно применить для вычисления величин модифицированных ошибок Ek , k =1,..., t .

Если стираний нет, т.е. s = 0 , то модифицированные и обычные величины ошибок совпадают и на этом декодирование заканчивается. Если же стирания присутствуют, то вычислениянужнопродолжитьстем, чтобыопределитьвеличиныстираний V1 ,V2 ,...,Vs .

Это делается следующим образом. Определим новую тройку полиномов:

 

d s1

s

 

 

 

 

R(x) = R j x j1 , P(x) = (1 xUi ) , Θ(x) = R(x)P(x) mod xd s1 ,

(4.4.14)

 

j=1

i=1

 

 

 

 

где

 

R j = s

 

 

 

 

 

 

ViUil0 + j1 .

 

 

 

 

 

i=1

 

 

 

 

Величины Vi еще не определены, однако, коэффициенты Rj

можно найти из равенств

R j = S j t

Yl X ll0 + j1 , которое следует из формул (4.4.7): S j

= t

Yl X ll0 + j1 + s

ViUil0 + j1 .

l =1

 

 

 

l =1

i=1

 

Далее R(x) будет играет роль синдромного полинома, P(x) - полинома локаторов

стиранийи Θ(x)

- полиномавеличинстираний. Онибудутскомбинированытак, какэто

было сделано выше:

 

 

 

 

 

 

 

 

 

 

d s1

 

 

 

s

 

d s1 s

 

s

Θ(x) = R j x j

1 (1 xUi ) = ∑ ∑VlUll0 + j1 x j1 (1 xUi ) =

 

 

j=1

 

 

 

i=1

 

j=1 l =1

 

i=1

 

 

s

 

 

 

d s1

 

s

 

 

 

= VlUll0

(xUl ) j1

(1 xUl )

(1 xUi ) =

 

 

l=1

 

 

 

j=1

i=1,il

 

s

(xUl )

d

s1

 

 

s

s

 

s

= VlUll0

1

 

 

 

(1 xUl ) (1 xUi ) =VlUll0

(1 xUi ) mod xd s1.

 

1 xUl

 

 

l =1

 

 

 

i=1,il

l=1

i=1,il

 

 

 

 

s

 

 

 

 

Теперь заметим, что (1 xUi ) обращается в нуль при подстановке Ui1 вместо х для

 

 

 

 

i=1,il

 

 

 

 

 

 

 

 

 

 

s

 

 

любого

i, кроме

i = l , поэтому Θ(Uk1 ) =VkUkl0

(1 Uk1Ui ) . Замечая

также, что

 

 

 

 

 

 

i=1,ik

 

 

d

 

s

t

 

 

 

 

 

P(x) = −Ul

(1 xUi ) и, следовательно,

 

 

 

 

 

 

 

 

 

dx

l=1 i=1,il

 

 

 

 

 

 

 

 

 

s

 

 

 

 

 

 

 

P' (Uk1 ) = −Uk (1 Uk1Ui ) ,

 

 

 

 

 

 

i=1,ik

 

 

 

окончательно получим

 

 

 

 

 

 

 

 

Vk = −

Θ(Uk1 )

.

(4.4.15)

 

 

 

 

Ukl0 1P'(Uk1 )

 

 

 

 

 

 

 

Пример 4.4.2. Для иллюстрации приведенных выше вычислений продолжим рассмотрение примера 4.4.1. Напомним, что РС-код этого примера имеет длину 7, минимальноерасстояние5 ипорождающийполином g(x) = = x4 +ε2 x3 +ε5 x2 +ε5 x +ε6 ,

где ε - корень полинома f (x) = x3 + x +1 и задается корнями 1,ε,ε2 ,ε3 . Предположим,

23

что передаваемое слово c(x) = x4 +ε2 x3 +ε5 x2 +ε5 x +ε6 и произошла одна ошибка на шестой позиции и два стирания на нулевой и второй позициях. Стертые символы

заменены на нули. Поэтому теперь принятое слово

 

 

r(x) = εx6 + x4

+ε2 x3 +ε5 x .

Декодирование начинается

с

вычисления

 

синдромных

 

компонент

по формуле

S j = r(βl0 + j1 ) :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S1

= r(1) = ε +1 +ε2

+ε5

= 0,

,

 

 

 

 

 

 

S2 = r(ε) =1 +ε

4

+

ε

5

 

+ε

6

= ε

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S3 = r(ε2 ) = ε6 +ε +ε +1 = ε2 ,

 

 

 

 

 

 

.

 

 

 

 

S4 = r(ε

 

) = ε

 

+ε

 

+ε

 

+ε = ε

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

5

 

 

 

5

 

 

 

 

4

 

 

 

 

2

 

 

 

Локаторыстираний U1

=1,U2 = ε2 , поэтомуполиномлокаторовстираний вычисляется в

соответствии с (4.4.8): p(x) = (x U1 )(x U2 ) = x2

 

+ε6 x +ε2 .

Найдем модифицирован-

ные компоненты синдрома по формуле Tj = s

pi Si+ j :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=0

 

 

 

 

 

 

 

 

 

 

 

 

 

T = p

S + p S

2

+ p

S

3

= ε2

0 +ε6 ε6 +ε2 = ε3 ,

 

1

0

1

1

 

 

 

2

 

 

 

= ε2 ε6

 

+ε6 ε2 +ε2 = ε2 .

 

T = p

S

2

+ p S

3

+ p

 

S

4

 

 

 

2

0

 

1

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Затем нужно решить задачу декодирования БЧХ-кода для заданных синдромных компонент T1 ,T2 . Для этого выполняются следующие шаги.

1.Находитсячислоошибок; tmax =1, M1 = [T1 ], det M1 = T1 0 . Следовательночисло ошибок равно 1.

2.Находится коэффициент Λ1 полинома локаторов ошибок. Для этого решается уравнение T1Λ1 = T2 , откуда Λ1 = T2 / T1 =ε6 .

3.Отыскивается корень полинома Λ(x) = Λ1 x +1. Локатор ошибки это величина, обратнаякорню: X1 = Λ1 =ε6 . Таким образом, позицияошибкиопределена – это шестая позиция.

4.Для вычисления величины ошибки найдем (x) = T (x)Λ(x) mod xd s1 и

Λ' ( x) =

d

(1 + Λ1 x) = Λ1 = ε6 . Имеем T (x) = dj=1s1 Tj x j1 = T1 +T2 x = ε2 x +ε3

dx

 

 

(x) = (ε2 x +ε3 )(ε6 x +1) = εx2 +ε3 = ε3 mod x2 , т.к. d s 1 = 5 2 1 = 2 .

Величина модифицированной ошибки находится из уравнения (см.(4.4.13) :

 

( X

1 ) X

1

 

ε3 ε

6

 

E =

1

 

=

 

= ε3

. Действительная величина ошибки находится

X1l0 Λ' ( X11 )

 

1

 

1 ε6

 

 

и

из

уравнения (4.4.10): Y1 = E1 / p( X1 ) = ε3 /(ε12 +ε6 ε6 +ε2 ) = ε. Таким образом,

величина ошибки на шестой позиции равна ε .

5. Далеевычисляютсяискажениянастертыхпозициях, нанулевойинавторой. Для этогоопределяютсяполиномы, указанныев(4.4.14). Имеем, R j = S j t Yl X ll0 + j1 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

l =1

 

 

следовательно, R = S +Y X l0

= 0 +ε 1 = ε , R

= S

2

+Y X l0 +1 = ε6 +ε ε6 = ε2

и

 

 

1

1

1

1

2

 

1

1

 

 

 

 

 

 

R(x) = R

x + R = ε2 x +ε . Так как локаторы стираний суть U

1

=1,U

2

= ε2 ,

то

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

P(x) = (1 xU1 )(1 xU2 ) = (1 + x)(1 +ε2 x) = ε2 x2

+ε6 x +1 и

P' (x) = ε6 .

Теперь,

перемножая

R(x) и

P(x) ,

получим Θ(x) = R(x)P(x) = mod xd s1

или Θ(x) =

= (ε2 +1)x +ε = ε6 x +ε mod x2 .

Стертые символы определяются с помощью

24

соотношения

(4.4.15):

V = Θ(U 1 ) /U 1P' (U 1 ) = (ε6

+ε) / ε6

= ε5 / ε6 = ε6

и

 

 

 

 

1

1

1

1

 

 

 

V = Θ(U 1 ) /U 1P' (U 1 ) = (ε6ε2

+ε) / ε2ε6 = ε2 / ε4 = ε5 .

 

 

2

2

2

2

 

 

 

 

 

 

 

6.Таким образом, мы получили e(x) = εx6 +ε5 x2 +ε6 . Результат декодирования совпадает с исходным кодовым словом:

r(x) e(x) = εx6 + x4 +ε2 x3 +ε5 x +εx6 +ε5 x2 +ε6 =

=x4 +ε2 x3 +ε5 x2 +ε5 x +ε6 = c(x)

25

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]