
- •А.А. Кузьмин
- •1. Энтропия вероятностной схемы
- •1.1.Основные принципы, понятия и определения теории информации
- •1.2.Количество информации в сообщении
- •Энтропия источника сообщений
- •1.3.Условная энтропия
- •Взаимная информация и взаимная энтропия
- •1.7. Скорость создания информации дискретным источником без памяти
- •2. Элементы теории кодирования информации
- •Основные характеристики кодов
- •1.4.Теоремы кодирования Шеннона
- •Скорость передачи информации по каналу связи определяется количеством передаваемой информации и интервалом времени ее передачи:
- •Таким образом, для реализации помехоустойчивого кодирования в канале связи с помехами, способного обеспечить сколь угодно высокую степень верности, необходимо выполнение условия
- •Контрольные вопросы
- •3. Простые (безызбыточные) коды
- •3.4. Примеры неравномерных кодов
- •Построение кодового дерева Шеннона-Фано
- •Общие принципы построения помехоустойчивых кодов
- •Классификация помехоустойчивых кодов
- •Основные характеристики и корректирующие свойства блочных кодов
- •Линейные блочные коды с обобщенными проверками на четность
- •Формирование (n, k) кода с обобщенной проверкой на четность
- •Структурные схемы кодеров и декодеров линейного кода
- •Принцип построения циклического кода
- •Алгоритм декодирования циклических кодов
- •Структурная схема кодера циклического кода
- •Бчх коды
- •Рекуррентные коды. Кодирование с перемежением
- •Принцип построения рекуррентных (сверточных) кодов
- •Декодирование сверточных кодов
- •6. Пропускная способность каналов связи
- •Пропускная способность непрерывного канала связи
- •Пути повышения пропускной способности непрерывных каналов связи
- •1.5.Пропускная способность дискретного канала связи без помех
- •Контрольные вопросы
- •Элементы теории кодирования информации
- •Простые (безызбыточные) коды
- •Помехоустойчивые блочные коды
- •5. Рекуррентные коды. Кодирование с перемежением
- •6. Пропускная способность каналов связи
- •. Пропускная способность дискретного канала связи без помех 98
- •Основы теории информации
Алгоритм декодирования циклических кодов
Порождающий полином участвует в формировании каждой разрешенной комбинации циклического кода, поэтому каждая принятая без ошибки кодовая комбинация должна делиться на порождающий полином без остатка. Наличие же остатка при делении свидетельствует об ошибке в приеме. Это общий подход нахождения ошибок при декодировании циклического кода.
Идея исправления ошибок состоит в следующем. Ошибочная комбинация путем циклических сдвигов «подгоняется» под остаток таким образом, чтобы в сумме с остатком она давала бы исправленную комбинацию.
Остаток при этом представляет разницу между искаженными и правильными символами, а единицы в остатке стоят на местах искаженных разрядов в «подогнанной» циклическими сдвигами комбинации.
Таким образом, для обнаружения и исправления ошибочного разряда производят следующие операции.
Принятую комбинацию делят на образующий полином.
Подсчитывают количество единиц в остатке (находят вес остатка R). Если R tu , где tu - допустимое число исправляемых данным кодом ошибок, то принятую комбинацию складывают по модулю 2 с полученным остатком. Сумма дает исправленную комбинацию.
Если R > tu , то производят циклический сдвиг принятой комбинации влево на разряд. Полученную комбинацию делят на образующий полином. При этом если R tu , то делимое суммируют с остатком.
Производят циклический сдвиг вправо на один разряд комбинации, полученной в результате суммирования последнего делимого с последним остатком. Полученная комбинация уже не содержит ошибок.
Если после первого циклического сдвига и деления R > tu , то повторяют операции 3 до тех пор, пока не получат R tu. Комбинацию, полученную в результате последнего циклического сдвига, суммируют с остатком от деления той комбинации на образующий полином.
Производят циклический сдвиг кодовой комбинации вправо настолько, насколько была сдвинута исходная комбинация. В результате получают исправленную комбинацию.
Пример.
При передаче кодовой комбинации
1 0 0 1 1 1 0 циклического кода, исправляющего
одиночные ошибки (tи = 1),
полученного с помощью образующего
полинома
,
произошла ошибка в 4-м разряде. Принятая комбинация имеет вид 1 0 0 0 1 1 0.
Процесс нахождения и исправления ошибки следующий.
Делим принятую комбинацию на образующий полином (см. рис. 11).
Сравниваем вес полученного остатка ωR = 2 с числом исправляемых ошибок tи = 1. При этом ωR > tи.
Поскольку ωR > tи, то производим циклический сдвиг принятой комбинации на один разряд влево и результат делим снова на образующий полином (рис. 11, б). Замечаем, что вес полученного остатка равен 2. При этом ωR > tи..
Повторяем циклический сдвиг и деление до тех пор, пока не будет выполнено условие ωR ≤ tи (рис. 11, в - д).
На четвертом шаге замечаем, что условие ωR < tи выполняется, поэтому складываем по модулю 2 последнее делимое с последним остатком:
.
Производим циклический сдвиг полученной кодовой комбинации вправо на четыре разряда (именно столько циклических сдвигов было выполнено до этого: 1101001 → 1110100 → 0111010 → 0011101 → 1001110).
Замечаем, что последняя комбинация соответствует переданной кодовой комбинации. Ошибка наблюдалась в 4-м разряде и устранена в процессе выполнения операции декодирования.
Декодеры, выполняющие рассмотренный выше алгоритм, строятся на основе сдвигающих регистров. Отметим, что рассмотренный способ декодирования является общим для всех циклических кодов.