Способи декодування з виправленням помилок

Декодування циклічного коду в режимі виправлення помилок можна здійснювати різними способами. Нижче наведено два способи, які є найбільш простими. В основу першого способу покладено використання таблиці синдромів (декодування), в якій кожному многочлену або зразком помилок ei (x), відповідає певний синдром Si (x). представляє залишок від ділення прийнятого слова ai (x) і відповідного йому ei (x) на g (x). Процедура декодування наступна. Прийняте слово ai (x) ділиться на g (x). оперделяется Si (x) і відповідний йому многочлен ei (x), а потім ai (x) підсумовується з ei (x). В результаті отримуємо виправлене кодове слово, тобто bi (x) = ai (x) + ei (x).

До складу декодера входять: обчислювач синдрому (ВС), два регістра зсуву R1 і R2 і постійний запам'ятовуючий пристрій (ПЗУ), яке містить слова довжини n. відповідні многочленів помилок ei (x).

В основі другого способу виправлення помилок, що дозволяє значно скоротити обсяг використовуваних табличних синдромів і істотно спростити схему декодера, лежать наступні положення:

1. Синдром Si (x), відповідний прийнятому слову дорівнює залишку від ділення ai (x) на g (x). а також залишку від ділення відповідного многочлена помилок ei (x) на g (x), тобто

2. Якщо Si (x) відповідає ai (x) і ei (x), то xSi (x) є синдромом, який відповідає і чи

3. У разі виправлення помилок використовуються синдроми зразків помилок тільки з ненульовими коефіцієнтами в старшому розряді.

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

Для виправлення помилок, що належать даному класу еквівалентності, потрібно провести n циклічних зрушень.

Декодер циклічного коду з таким виправленням помилок запропонував Меггі.

Приклад. Розглянемо схему і роботу декодера Меггіта циклічного (15,7)-коду, забезпечує виправлення одиночних і подвійних помилок, з g (x) = x 8 + x 7 + x 6 + x 4 +1.

Блок декодерів налаштовується на 15 синдромів, які представлені в таблиці і відповідають класам еквівалентності із зразками помилок в старшому розряді.

Варіант помилки e (x)

Припустимо, що помилки в 3 і 5 розрядах, тобто їм відповідає многочлен помилки e (x) = x 12 + x 10.

При надходженні на вхід декодера спотвореного кодового слова регістр і в обчислювачі формує синдром

Блок декодерів не реагує на цей синдром.

Потім відбувається зрушення кодового слвоам в RG, а в ВС формується новий синдром

Блок декодерів і в цьому випадку не спрацьовує.

При следуеющем зсуві кодового слова в RG перший спотворений розряд займає старшу позицію в RG, а в ВС формується синдром

. від якого спрацьовує блок декодування. В результаті виправляється перша помилка.

Наступний зрушення призводить до формування синдрому

Цей синдром відповідає многочлену помилки e (x) = x 13 + x 0, тому що перший спотворений розряд по зворотного зв'язку повинен займати молодшу позицію RG.

На синдром S (13,0). блок декодерів не реагує.

При наступному зсуві кодового слова в RG другий спотворений розряд займає старшу позицію в RG, а в ВС формується синдром

. від якого спрацьовує блок декодування. В результаті виправляється друга помилка в кодовому слові.