Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сети ЭВМ2 / Сети ЭВМ и Т2 / вариант 9.docx
Скачиваний:
59
Добавлен:
11.04.2015
Размер:
170.06 Кб
Скачать

2.2 Циклические коды (теория)

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

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

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

Обнаружение ошибок в циклическом коде производится делением принятой кодовой комбинации на кодовую комбинацию образующего полинома (вид его должен быть известен на приеме). Остаток от деления R(x) играет роль синдрома. Если R(x)0, то считается, что произошли ошибки.

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

Чтобы получить разделимый циклический код из заданной кодовой комбинации G(x) нужно

  1. Умножить G(x) на xr, где r – число проверочных элементов.

  2. Найти остаток от деления полученного полинома на производящий полином: R(x)=G(x)xr/P(x).

  3. Сложить G(x)xr с полученным остатком. G(x)xr + R(x).

Проверочными элементами в полученной кодовой комбинации будут последние r элементов, а остальные – информационные.

Способ декодирования с обнаружением ошибок был рассмотрен выше. Теперь рассмотрим способ исправления ошибок. Пускай переданная кодовая комбинация F(x) была поражена ошибкой E(x). Получилась комбинация F*(x). На приемном конце данная комбинация делится на P(x).

F*(x)/P(x) = F(x)/P(x) + E(x)/P(x)

Первое слагаемое не даст остатка, так как это циклический код. Весь остаток будет определяться вторым слагаемым, то есть вектором ошибки. Причем если ошибка была на i-м месте, то остаток получим на n+i-1 такте деления. Поэтому декодер с исправлением ошибок для циклического кода будет иметь следующий вид.

2.3 Построение кодера и декодера циклического кода. Формирование кодовой комбинации циклического кода (задачи)

1. Нарисовать кодер циклического кода для которого производящий полином задан числом (5N+1).

Решение:

5*9+1=46 → 101110 → P(x)= X5+X3+X2+X

2. Записать кодовую комбинацию циклического кода для случая, когда производящий полином имеет вид P(x)=x3+x2+1. Кодовая комбинация, поступающая от источника сообщений имеет K=4 элементов и записывается в двоичном виде как число, соответствующее (N+3).

N+2 = 11  1011  x3 + x + 1

x3 (x3 + x + 1)= x6+x4+x3 x3+x2+1

x6+ x5+ x3 x3+x2

x5 + x4

x5+x4+x2

x2

Остаток от деления R(x) = x2;

Это значит, что проверочными элементами для данной кодовой комбинации являются 010.

F(x)= x6+x4+x3+ x2 1011100

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

Кодер:

вход

1011

Соседние файлы в папке Сети ЭВМ и Т2