- •Глава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.1.5 Пакеты ошибок
Характерной особенностью циклических кодов является способность к распознаванию пакетов ошибок. Под пакетом ошибок понимается группирование ошибок в одной ограниченной области кодового слова (рис. 3.16). Пакет ошибок можно описать многочленом вида
. (3.75)
Е сли длина пакета ошибок не превосходит величины r = п — k, то степень многочлена ошибок меньше r. В этом случае е(Х) не делится на (Х) без остатка и синдром принятого слова всегда отличен от нулевого, следовательно, пакет ошибок длины равной или меньшей r всегда распознается. Из теоремы 3.6.1 следует, что распознается также любой циклический сдвиг многочлена В(Х) степени, меньшей r, т.е. и «концевой» пакет ошибок длины меньшей или равной r (рис. 3.17), всегда распознается.
Теорема 3.7.1. Циклический (п, k)-код способен обнаруживать все пакеты ошибок (в том числе концевые) длины r = п — k и меньше.
Помимо распознавания всех пакетов ошибок длины r и меньше циклические коды обладают способностью обнаруживать большую часть пакетов ошибок, длина которых превосходит r.
Рассмотрим пакет ошибок длины r + 1, начинающийся в j-ой компоненте. Так как первая и последняя компоненты пакета ошибок отличны от нуля, всего имеется 2r-1 возможных конфигураций ошибок. Необнаружимой является только одна из них, многочлен которой В(Х) совпадает с (Х), то есть
. (3.76)
Теорема 3.7.2. Для циклического (п, k)-кода доля необнаружимых пакетов ошибок длины l = r + 1 = п — k+1 равна 2-(r-1).
Рассмотрим пакет ошибок длины l>r+1=n-k+1 начинающийся в j-ой компоненте. Если соответствующий многочлен В(Х) делится на (Х) без остатка, то есть
, (3.77)
то такой пакет не может быть обнаружен.
Пусть коэффициенты многочлена а(Х) степени l - r - 1 имеют вид a0, a1, ..., al-r1. Так как пакет ошибок начинается и заканчивается единицей, a0 = al-r-1. Следовательно, существует 2l-r-2 наборов коэффициентов а(Х), приводящих к необнаружимым ошибкам в (3.77). С другой стороны, существует 2l-2 различных пакетов ошибок длины l и, таким образом, верно следующее утверждение.
Теорема 3.7.3. Для циклического (п, k)-кода доля необнаружимых пакетов ошибок длины l>r + l = n — k + 1 равна 2-r.
Пример: Распознавание ошибок циклическим (7,4)-кодом Хэмминга.
Рассмотрим циклический (7,4)-код Хэмминга из предыдущих примеров с r = п — k = 3. Так как минимальное кодовое расстояние кода Хэмминга dmin = 3, он способен обнаруживать все двойные ошибки или исправлять одиночные. Рассматриваемый (7,4)-код Хэмминга является циклическим кодом и он способен также обнаруживать все пакеты длины r = 3. В частности, любые три следующие друг за другом ошибки всегда обнаруживаются.
Доля необнаружимых ошибок длины r + 1 = 4 равна 2-(3-1) = 1/4. При пакетах ошибок с длиной большей 4, не распознается только 2-3 = 1/8 из них.
Замечание. На практике, как правило, используются циклические коды с довольно большим числом проверочных разрядов, например, r = п — k = 16. Доля необнаружимых пакетов ошибок такими кодами достаточна мала. Так, при r = 16, обнаруживается более чем 99,9969 % пакетов длины 17 и 99,9984 % пакетов длины 18 и выше.