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

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

Ниже излагается способ, являющейся наиболее простым.

В основу этого способа положено использование таблицы синдромов, в которой каждому многочлену ошибок ei(x), соответствует определенный синдром Si(x), представляющий остаток от деления принятого кодового слова u’(x) и соответствующего ему ei(x) на g(x).

Процесс декодирования: принятое кодовое слово u’(x) делится на g(x), определяется Si(x) и соответствующий ему многочлен ei(x), а затем u’(x) суммируется с ei(x):

В результате получаем исправленное кодовое слово.

Структурная схема декодера, выполняющего рассмотренный алгоритм исправления ошибок, представлена на рисунке 2.6.

 

Рисунок 2.6 - Схема декодера

 

В состав декодера входят: вычислитель синдрома (ВС), два регистра сдвига RG1 и RG2, постоянное запоминающее устройство (ПЗУ), которое содержит слова длины n, соответствующие многочленам ошибок ei(x).

Принятое кодовое слово u’(x) поступает на вход вычислителя синдрома, где осуществляется деление его на g(x) и формирование Si(x), и одновременно на вход RG2, где накапливается u’(x). Синдром Si(x) используется в качестве адреса, по которому из ПЗУ в регистр RG1 записывается ei(x), соответствующий синдрому Si(x). Перечисленные операции завершаются за n тактов. В течение последующих n тактов происходит поэлементное суммирование содержимого RG1 и RG2, т.е реализуется операция - исправление ошибок.

Недостаток этого метода: большой объем фиксируемых в ПЗУ таблиц соответствия синдромов и многочленов ошибок.

Существуют методы основанные на специфических свойствах циклических кодов, которые позволяют уменьшить этот объем.

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

Коды Рида-Соломона

Коды РС являются недвоичными циклическими кодами, символы кодовых слов которых берутся из конечного поля GF(q) где q степень некоторого простого числа, например q=2m.

РС - код построен над полем GF(8), которое является расширением поля GF(2) по модулю примитивного многочлена .

В этом случае символы кодовых слов кода могут быть представлены в виде обозначений, представленных в таблице.

 

Таблица - Таблица элементов поля

Степени примитивного элемента Многочленные представления Двоичные представления Десятичные представления
0 0 000 0
α70=1 1 001 1
α1 z 010 2
α2 z2 100 4
α3 z+1 011 3
α4 z2+z 110 6
α5 z2+z+1 111 7
α6 z2+1 101 5

 

Кодовые слова РС - кода отображаются в виде многочленов:

где N – длина кода, Viq -ичные коэффициенты (символы кодовых слов), которые могут принимать любое значение из GF(q).

Эти коэффициенты как это следует из таблицы, также отображаются многочленами с двоичными коэффициентами:

РС - коды являются максимальными, т.к. при длине кода N и информационной последовательности k они обладают наибольшим кодовым расстоянием:

Порождающим многочленом g(x) РС - кода является делитель двучлена (xN+1) степени меньшей N с коэффициентами из GF(q), корнями которого являются элементы этого поля . a – примитивный элемент.

Выражение для порождающего многочлена РС - кода будет иметь вид:

Степень g(x) равна d-1=N-k=R.

В РС - кодах принадлежность кодовых слов множеству разрешенных комбинаций определяется выполнением (d-1) уравнений в соответствии с выражением:

(*)

где m0=1, Vi – символы-коэффициенты поля GF(q), z0, z1…zN-1 – ненулевые элементы поля GF(q).

Элементы z0, z1…zN-1 называются локаторами, т.к. они указывают на номер позиции символа кодового слова.

Например, указателем i -той позиции является локатор zi, который может быть представлен в виде i -той степени ai примитивного элемента a поля GF(q):

 

Так как все локаторы должны быть различны и ненулевыми, то их число в поле GF(q) равно q-1. Следовательно, такое количество символов должно быть в кодовых словах кода. Поэтому обычно длина РС - кода определяется из выражения:

 

Пример:

Длина РС - кода равна N, кодовое расстояние d=3. В соответствии с (*) проверочными уравнениями будут:

 

Свойства РС - кодов:

1. Циклический сдвиг кодовых слов, символы которых принимают значение из поля GF(q), порождает новые кодовые слова этого же кода.

2. Сумма по mod2 двух и более кодовых слов дает кодовое слово, принадлежащее этому же коду.

3. Кодовое расстояние РС - кода определяется не по двоичным элементам, а по q -ичным символам.

4. В РС - коде, исправляющем tu ошибок, порождающий многочлен определяется из выражения:

Обычно m0=1. Однако, при других значениях m0, иногда можно упростить схему кодера.

5. Корректирующие способности РС - кода определяются его кодовым расстоянием:

где T0 и Tu – длина пакетов, в которых обнаруживаются T0 и исправляются Tu ошибок.

 

Обнаружение ошибок в кодовых словах состоит в проверке условия (*), т.е. определении синдрома S:

Элементы которого определяются из выражения:

(**)

Процедура исправления ошибок в РС – коде является более сложной, чем в двоичном коде, поскольку, наряду с определение номера разряда, в котором допущена ошибка, необходимо определить значение ошибочно принятого символа.

 

Пример:

Сформировать кодовое слово РС – кода, исправляющего одиночные ошибки, над полем GF(23), соответствующее двоичной информационной последовательности a(1,0)=000000011100101.

Так как m=3, то каждый q -ичный символ кода состоит из трех двоичных элементов. Поэтому с учетом таблицы элементов поля:

Параметры кода.

Кодовое слово формируется в соответствии с выражением:

Так как , то .

Нахождение синдромов.

В соответствие с уравнением (**):

Каскадные коды


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



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