Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
136
Добавлен:
22.05.2015
Размер:
255.49 Кб
Скачать

101 (Ошибка в ;

110 (Ошибка в ;

111 (Ошибка в .

Окончательно правило формирования проверочных символов (5.12) принимает вид

;

; (5.13)

.

Формирование систематического кода (7,4) по правилу (5.13) поясняется рис.5.12.

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

Находим проверочные элементы согласно правилу (5.13):

;

;

;

.

Таким образом, разрешенная кодовая комбинация имеет вид

.

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

.

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

;

;

.

Теперь находим синдром

Согласно таблицы 5.1 синдрому 101 соответствует информационный символ . Следовательно, значение принятого символанеобходимо исправить, т. е. 0 заменить 1. Таким образом, ошибка исправлена, а кодовая комбинация принята правильно.

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

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

Сущность циклической перестановки заключается в том, что крайний левый символ кодовой комбинации (символ старшего разряда) занимает место первого, первый – второго и т.д. до тех пор, пока предпоследний символ не займет место последнего. Запишем совокупность кодовых комбинаций, получающихся циклическим сдвигом n-разрядной кодовой комбинации, например пятиразрядной 10011:

10011, 00111, 01110, 11100, 11001.

При работе с циклическими кодами принято кодовые комбинации рассматривать в виде полиномов (многочленов) некоторой степени

,

где x – основание системы счисления; bi – цифры данной системы счисления. Для двоичной системы счисления x=2, а bi равны 0 или 1. Например, двоичную последовательность 010101 можно представить в виде многочлена . Действительно,

;

.

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

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

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

G1(x)= x6+x5+x2+1 иG2(x)= x5+x3получимG(x)= x6+x3+x2+1.

Для рассмотрения принципа построения циклических кодов введем следующие обозначения: G(x)- полином степениk-1, отображающий кодовую комбинацию первичного кода;P(x) - образующий (порождающий) полином степениr=n-k и F(x)- полином степениn-1, отражающий кодовую комбинацию (кодовое слово) циклического кода.

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

Существует два способа получения кодового слова циклического кода.

1. F(x)получается путем прямого перемножения полиномовP(x)иG(x). Однако, при этом образуется неразделимый код, декодирование кодовых комбинаций которого очень сложно (информационные и проверочные знаки неразделимы).

2. Представляем информационную часть кодовой комбинации длиной k в виде полиномаG(x).

Далее:

а) умножаем G(x)на одночленxrи получаемG(x)xr, т. е. производим сдвигk-разрядной кодовой комбинации наrразрядов;

б) делим многочлен G(x)xrна образующий полиномP(x)степень которого равнаr;

в) полученный остаток R(x)(очевидно его наивысшая степень равнаr-1) складываем по модулю два сG(x) xrи получим, таким образом, разрешенную кодовую комбинациюF(x) = G(x) xr R(x).

Пример. Закодируем циклическим кодом длинойn=10 КК 1110001.

Решение

1). r =n – k = 10 – 7 = 3. Из таблицы образующих полиномов выберемP(x) степени 3

P(x) = x3 +x2+1

2). Исходной кодовой комбинации соответствует полином

G(x) =x6 +x5+ x4 + 1.

3). Умножим полином сообщение на x3

G(x)·x3 =x9 +x8 + x7 + x3.

4). Полученное произведение разделим на образующий полином P(x)

x9 + x8 + x7 + x3 x3 + x2 +1

x9 + x8 + x6 ________________

___________________ x6 + x4 +x

x7 + x6+x3

x7 + x6 + x4

_________________

x4 + x3

x4 + x3 +x

_______________

R(x) = x

Ответ:Полином, отображающий комбинацию циклического кода, будет иметь вид

F(x)= G(x)xr + R(x) = x9+x8+x7+x3+x .

Ему соответствует передаваемая в канал КК циклического кода: 1110001 010.

А. Обнаружение ошибок при циклическом кодировании

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

Б. Исправление ошибок

Остаток от деления свидетельствует о наличии ошибки. Для исправления ошибок (обнаружение места ошибки) необходимо обеспечить условие, при котором количество различных ненулевых остатков равно числу комбинаций из n поt(t- количество ошибок исправляемых кодом). Это означает, например, что сn=15 приt=2 следует иметьС215 =105 остатков, что обеспечивается приr = 7 (27-1=127). Следовательно необходимо выбрать образующий полином с r=7 и код (15,7).

Исправление ошибки рассмотрим на конкретном примере.

Пример. Дан (11,7)-код сР(0,1)=1001. (Р(0,1)есть образующий полиномР(х), выраженный в кодовой последовательностью 1 и 0-й). Пусть передается разрешенная комбинация

F(0,1)= 10110111100

Предположим, ошибка произошла в старшем разряде, т.е.

F*(0,1)= 00110111100

Для определения одной ошибки введем многочлен ошибки степени n.

E = 10000000000 (т. е.х10)

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

В случае, если ошибка произошла в середине принимаемого кода, остатки R1 иR2не совпадут. При этом к принимаемой кодовой комбинацииF*(0,1)необходимо справа дописать 0 и получитьR1(т.е. сдвинуть последовательность влево). Такой сдвиг осуществлять до тех пор, покаR1иR2не будут одинаковыми. Число сдвигов плюс 1 покажет разряд, где произошла ошибка (относительно старшего разряда).

Соседние файлы в папке Лекции. СИСТЕМЫ И СЕТИ