Алгоритм виправлення одиночних помилок

При спотвореннях окремих розрядів у каналі зв'язку на прийомній стороні замість кодової комбінації циклічного коду виявляється кодова комбінація

 

, (10)

 

де – многочлен помилок, що містить одиниці на тих позиціях, де є спотворення прийнятої комбінації.

У цьому випадку в результаті розподілу спотвореної кодової комбінації на утворюючий поліном одержимо:

 

(11)

 

де – залишок (синдром), обумовлений наявністю спотворень.

Існує декілька варіантів декодування циклічних кодів з виправленням помилок. Розглянемо табличний варіант, який може застосовуватись не лише для виправлення одиночних помилок, а й для всіх, що відповідають корегувальній здатності коду. Він полягає в тому, що для всіх варіантів многочлена помилок , які можуть бути виправлені при коді з утворюючим многочленом , заздалегідь підраховуються залишки (синдроми) . Результати записуються у таблицю, яка зберігається у блоці визначення місця помилки.

Після ділення прийнятої кодової комбінації на по величині синдрому з таблиці визначається многочлен помилок . Далі він додається до прийнятої комбінації, внаслідок чого створюється виправлена кодова комбінація :

 

. (12)

 

При технічній реалізації такого методу виправлення помилок в моменти часу, коли відбувається передача спотвореного розряду із вхідного регістра на вихід, у блоці визначення місця помилки формується коригувальний символ . Він додається по модулю 2 до прийнятого спотвореного розряду, у результаті чого спотворений розряд інвертується.

Приклад. Синдроми всіх одиночних помилок коду (7,4) з утворюючим многочленом = 1101 наведені у таблиці 5.

Нехай прийнята комбінація , тоді залишок

 

Таблиця 5

   
   
   
   
   
   
   

= / 101.

 

З таблиці 5 маємо, що залишку = 101 відповідає вектор помилок 0001000. Отже, виправлена кодова комбінація

 

1000011 0001000 = 1001011.

 

Якщо кількість помилок у прийнятій комбінації перевищує корегувальну здатність коду, то виправлення спотворень стає неможливим, тому що залишки будуть повторюватись. Крім того, якщо кількість помилок перевищує спроможність коду до виявлення помилок, то у деяких випадках многочлен помилок ділиться цілком на утворюючий поліном . Помилки при цьому зовсім не виявляються, а повідомлення сприймається як правильне.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: