Циклический код
Целью изучения темы «Циклический код» (Ц.К.) является формирование умений не только проектировать, но и технически реализовать Ц.К. Циклический код представляет собой разновидность группового кода и не отличается от него по уровню помехозащищенности, но благодаря простоте технической реализации нашел широкое применение.
Циклические коды незаменимы при необходимости передавать информацию в каналах связи, в которых отсутствует возможность повторной передачи данных. Циклические коды применяются при записи и считывании на 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/ Вектор ошибок определяется по виду остатка.
Так как циклический код является частным случаем группового кода, то его корректирующие способности не выше группового, однако операции умножения и деления многочленов просто реализуются на регистрах сдвига с обратными связями. Эта техническая простота и послужила причиной их широкого распространения.
|