Циклический код

Целью изучения темы «Циклический код» (Ц.К.) является формирование умений не только проектировать, но и технически реализовать Ц.К. Циклический код представляет собой разновидность группового кода и не отличается от него по уровню помехозащищенности, но благодаря простоте технической реализации нашел широкое применение.

Циклические коды незаменимы при необходимости передавать информацию в каналах связи, в которых отсутствует возможность повторной передачи данных. Циклические коды применяются при записи и считывании на HDD, CD и DVD, при использовании USB-портов для обмена информацией, при передаче аудио и видео информации.

В данном проекте изложен только лекционный материал темы "Циклический код".

Вводные замечания

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

Например:

, Циклический код

т.е получили первичную запись.

Коды, у которых строки матрицы удовлетворяют этому условию, называются циклическими.

Любые «k» строк этой матрицы линейно независимы и могут служить основой для получения любой разрешенной кодовой комбинации циклического кода.

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

В циклическом коде кодовые комбинации удобно записывать в виде многочлена (n – 1) степени относительно фиктивной переменной x. Показатель степени при x соответствует номеру разряда, уменьшенному на единицу. Младший разряд соответствует x0 = 1. Коэффициенты при x имеют значения 0 или 1.

Например:

Циклический код,

где – соответствует символическому умножению, правила выполнения которого будут описаны в параграфе 6.2.

Посмотрим, что происходит при циклическом сдвиге:

Циклический код

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

Последняя кодовая комбинация получена путем переноса на крайнее правое место единицы.

Посмотрим, делится ли полученный многочлен на Циклический код, т.е. в результате деления получаем, что:

Циклический код

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

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

Для обнаружения ошибок в циклических кодах принятую кодовую комбинацию делят на образующий многочлен. Если остаток от деления R(x) = 0, то принимается решение, что ошибок нет. Если R(x) ≠ 0, то были ошибки. http://peredacha-informacii.ru/ Вектор ошибок определяется по виду остатка.

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