- •Глава3 4
- •Часть 1 введение 4
- •Часть 2 коды хемминга, голея и рида-маллера 39
- •Часть 3 двоичные циклические коды и коды бчх 54
- •Часть 4 недвоичные бчх коды -коды рида-соломона 105
- •Глава3 часть 1 введение
- •1.1. Кодирование для исправления ошибок: Основные положения
- •1.1.1. Блоковые и сверточные коды
- •1.1.2. Хеммингово расстояние, Хемминговы сферы и корректирующая способность
- •1.2. Линейные блоковые коды
- •1.2.1. Порождающая и проверочная матрицы
- •1.2.2. Вес как расстояние
- •1.3. Кодирование и декодирование линейных блоковых кодов
- •1.3.1. Кодирование с помощью матриц g и н
- •1.3.2. Декодирование по стандартной таблице
- •1.3.3. Хемминговы сферы, области декодирования и стандартная таблица
- •1.4. Распределение весов и вероятность ошибки
- •1.4.1. Распределение весов и вероятность необнаруженной ошибки в дск.
- •1.4.2. Границы вероятности ошибки в дск, каналах с абгш и с замираниями
- •1.5 Общая структура жесткого декодера для линейных кодов
- •Часть 2 коды хемминга, голея и рида-маллера
- •2.1. Коды Хемминга
- •2.1.1. Процедуры кодирования и декодирования
- •2.2. Двоичный код Голея
- •2.2.1 Кодирование
- •2.2.2. Декодирование
- •2.2.3. Арифметическое декодирование расширенного (24,12,8) кода Голея.
- •2.3. Двоичные коды Рида-Маллера
- •2.3.1. Булевы полиномы и рм коды
- •2.3.2. Конечные геометрии и мажоритарное декодирование.
- •Часть 3 двоичные циклические коды и коды бчх
- •3.1. Двоичные циклические коды.
- •3.1.1. Порождающий и проверочный полиномы.
- •3.1.2. Порождающий многочлен
- •3.1.3. Кодирование и декодирование двоичных циклических кодов.
- •3.1.4. Проверочный полином.
- •3.1.5. Укороченные циклические коды и crc коды
- •3.2. Общий алгоритм декодирования циклических кодов
- •3.1.5 Пакеты ошибок
- •3.2.1. Арифметика gf(q)
- •3.3. Двоичные коды бчх
- •3.4. Полиномиальные коды
- •3.5. Декодирование двоичных бчх кодов
- •2. Евклидов алгоритм (еа)
- •3.5.1. Общий метод декодирования для бчх кодов
- •3.5.2. Алгоритм Берлекемпа-Мэсси (вма)
- •3.5.3. Декодер pgz
- •3.5.4. Евклидов алгоритм (еа)
- •3.5.5. Метод Ченя и исправление ошибок
- •3.5.6. Исправление стираний и ошибок
- •3.6. Распределение весов и границы вероятности ошибки
- •3.6.1. Оценка вероятности ошибки
- •Часть 4 недвоичные бчх коды -коды рида-соломона
- •4.1. Коды pc как полиномиальные коды
- •4.2. От двоичных кодов бчх к pc кодам
- •4.3. Декодирование кодов pc
- •4.3.1. Комментарий к алгоритмам декодирования
- •4.3.2. Исправление ошибок и стираний
- •4.4. Распределение весов
- •Глоссарий
- •Литература
3.5. Декодирование двоичных бчх кодов
Главной идеей в декодировании БЧХ кодов является использование элементов конечного поля для нумерации позиций кодового слова (или, эквивалентно, в порядке коэффициентов ассоциированного многочлена). Такая нумерация показана на Рисунке 20 для вектора r = (r0, r1 ,..., rn-1), соответствующего многочлену r(x).
Позиции ошибок могут быть найдены из решения системы уравнений в поле GF(2m). Эти уравнения можно получить, вводя многочлен ошибок е(х) и учитывая нули кода а j для b ≤ j < b + 2td - 1, как показано ниже.
Пусть r(x) = v(x) + е(х) представляет полином, ассоциированный с принятым словом, где многочлен ошибок определен как
(3.14)
где v ≤ td число ошибок в принятом слове. Множества
и
называют значениями ошибок и локаторами ошибок, соответственно, где ej {0, 1} для двоичных БЧХ5 кодов и GF(2m).
Рис. 20. Нумерация позиций кодового слова элементами поля GF(2m)
Синдромы определены как значения принятого полинома r(х) в нулях кода:
Это определение эквивалентно s = Нr , где проверочная матрица Н определена в (3.13).
Введем многочлен локаторов ошибок
(3.15)
корни которого равны обратным величинам локаторов ошибок. Тогда справедливо следующее соотношение между коэффициентами многочлена локаторов ошибок и синдромами:
(3.16)
Решение ключевого уравнения, представленного в (3.16), требует довольно интенсивных вычислений в процедуре декодирования БЧХ кодов. Известны следующие методы решения ключевого уравнения:
1. Алгоритм Берлекемпа-Мэсси (ВМА) Этот алгоритм был предложен Берлекемпом и Мэсси. По числу операций в конечном поле этот алгоритм обладает высокой эффективностью. ВМА обычно используется для программной реализации или моделирования кодов БЧХ и PC.
2. Евклидов алгоритм (еа)
Из-за высокой регулярности структуры этого алгоритма его широко используют для аппаратной реализации декодеров БЧХ и PC кодов.
3. Прямое решение
Этот алгоритм, предложенный Питерсоном, находит коэффициенты многочлена локаторов ошибок прямым решением системы (3.16) как системы линейных уравнений. В литературе часто используется термин PGZ (Питерсон-Горенштейн-Цирлер) декодер. В действительности, так как сложность обращения матрицы растет как куб корректирующей способности кода, прямой алгоритм может быть использован только для малых значений td.
3.5.1. Общий метод декодирования для бчх кодов
На Рисунке 21 показана блок-схема декодера БЧХ кодов (как двоичных, так и недвоичных). Декодер состоит из логических схем и обрабатывающих блоков, реализующих следующие задачи:
-
Вычислить синдромы, вычисляя значения принятого полинома в нулях кода
(3.17)
-
Найти коэффициенты многочлена локаторов ошибок σ(х).
Рис. 21 Архитектура БЧХ декодера
Рис. 22. Пример схемы вычисления синдрома.
-
Найти обратные величины корней σ(х), т.е. позиции ошибок j1, j2, …, j;
-
Найти значения ошибок (этап ненужный для двоичных кодов);
-
Исправить принятое слово на вычисленных позициях для вычисленных значений ошибок.
Одним из преимуществ использования арифметики над конечным полем GF(2m) является возможность применения относительно простых логических схем и вычислительных блоков. Например, на Рисунке 22 показана схема вычисления синдромов Sj. Умножение в поле GF(2m) также реализуется относительно простой логической схемой.