Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
007.docx
Скачиваний:
105
Добавлен:
13.03.2016
Размер:
7.55 Mб
Скачать

7.8 Циклічні коди. Згортальні коди.

Циклические коды.

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

Циклические коды удобно описывать многочленами переменной X. При этом показатели степени соответствуют номерам разрядов, а коэффициентами этого многочлена являются 0 и 1 отображаемой кодовой комбинации. Например, комбинацию 1001101 можно записать в виде .

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

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

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

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

Операция суммирования означает приписывание проверочных символов на отведенные для нихпозиций. Полученный многочленсоответствует разрешенной кодовой комбинации, т.е. он делится без остатка на образующий многочлен. Действительно, поскольку, где- частное от деленияна, то справедливо (с учетом замены алгебраического суммирования на суммирование по модулю 2) равенство, что и требовалось доказать.

При таком методе построения коэффициенты при высших степенях являются обозначениями информационных символов, а коэффициенты при степенях порядка и ниже – проверочными.

Пример. Дано ,,иЗакодировать сообщение 1000100101. Для кодирования сообщения 1000100101, соответствующего многочленуразделимна:

В итоге этой операции получим остаток Суммируя произведениес полученным остатком, получим кодовый многочлен

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

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

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

Свойства циклических кодов по обнаружению ошибок

I. Если порождающий многочлен содержит более одного члена, то циклический код обнаруживает все одиночные ошибки.

2. Циклический код с порождающим многочленом обнаруживает все нечетные ошибки.

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

4. Циклический код с многочленом степениобнаруживает все групповые ошибки длительностью вразрядов и менее.

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

Существуют:

1)Укороченные циклические коды.

2) Циклические коды, исправляющие ошибки

2.1)Коды Боуза-Чоудхури-Хоквингема

2.2) Коды Рида-Соломона

2.3) Код Файра

Сверточные коды

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

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

Тогда последовательность символов на выходах кодера будет описываться многочленами: ;

Если сверточный код является систематическим, то один из порождающих многочленов равный 1. Тогда на одном выходе будет формироваться последовательность информационных символов, а на другом проверочных. При подаче на вход кодера 1, на первом выходе кодера получим , а на другом -Если в дискретный канал выдаются символы по очереди из каждою выхода, то суммарная исходная последовательность будет описываться выражением:(сначала выдаются символы из первого выхода), гдеиопределяются многочленамии, в которых каждый член умножается наи определяется местом символа в разрядной сечке. Это выражение определяет первую строку порождающей матрицы сверточного кода. Другие строки этой матрицы имеют такой же вид. но с сдвигом на два разряда (два выхода). Так например, приисправедливые выраженияи. Следовательно,Это выражение определяет первую строку порождающей матрицы. Каждая другая строка будет такой же, но с сдвигом на два разряда.

Для приведенного выше примера порождающая матрица имеет вид:

Относительная скорость передачи информационного символов равен , гдеисоответственно числа информационных символов, поступающих на входе за один такт и выходных символов

Зная порождающие матрицу, выходную последовательность можно определить путем умножения вектора, характеризует входную последовательность на;

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

При декодировании используют алгоритм Витерби.

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