12.4  Синдром і виправлення помилок у циклічних кодах

 

Позначимо через u(x) та у(x) поліноми, що відповідають переданому кодовому слову u і прийнятій послідовності у.

Розділивши поліном прийнятого повідомлення у(x) на твірний поліном коду g(x), отримаємо поліноми частки від ділення q(x) і остачі s(x), тобто многочлен прийнятого вектора у(x) можна записати так:

y(x)=q(x)g(x)+s(x).                                             (3.24)

 

Якщо у(x) є кодовим поліномом, то він ділиться на g(x) без остачі, тобто s(x)=0.

Ненульова остача s(x)≠0 від ділення полінома прийнятого вектора у(x) на твірний поліном коду g(x) є ознакою наявності помилки у прийнятій послідовності, тобто кодовим синдромом.

Поліном синдрому s(x) має вигляд

 

s(x)=s0+s1x+…+sn-k-1xn-k-1.                                    (3.25)

 

Покажемо, що многочлен синдрому однозначно зв'язаний з многочленом помилок e(x) і, отже, за допомогою полінома синдрому можна не тільки виявляти, але й виправляти помилки у прийнятих послідовностях.

Нехай e(x)=e0+e1x+…+en-1xn-1 - многочлен вектора помилок. Тоді поліном прийнятої послідовності

 

y(x)=u(x)+e(x).                                     (3.26)

 

Додавши до лівої і правої частин виразу (3.26) кодовий поліном u(x), отримаємо

 

u(x)+y(x)=e(x).                                          (3.27)

 

З урахуванням того, що

       y(x)=q(x)g(x) + s(x),

      u(x)=m(x)g(x),

вираз (3.27) запишемо так:

 

e(x)=[m(x)+q(x)]g(x)+s(x)=f(x)g(x)+s(x),        (3.28)

 

тобто поліном синдрому s(x) – це остача від ділення многочлена помилки e(x) на твірний поліном коду g(x). Звідси випливає, що, знайшовши поліном синдрому, можна однозначно визначити вектор помилок, і отже, виправити помилку.