Способи декодування з виправленням помилок
Декодування циклічного коду в режимі виправлення помилок можна здійснювати різними способами. Нижче наведено два способи, які є найбільш простими. В основу першого способу покладено використання таблиці синдромів (декодування), в якій кожному многочлену або зразком помилок 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, а в ВС формується синдром
. від якого спрацьовує блок декодування. В результаті виправляється друга помилка в кодовому слові.