Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП Кодирование ТЕОРИЯ 2012-весна.doc
Скачиваний:
17
Добавлен:
04.09.2019
Размер:
1.37 Mб
Скачать
  1. Циклические коды crc

Циклический избыточный контроль CRC (Cyclic redundancy check) - это метод обнаружения ошибок с использованием полиномиального кода. Полиномы представляют собой альтернативную запись чисел в двоичной системе. Например, двоичному числу 1100 соответствует полином .

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

Правила полиномиального арифметического сложения без переноса:

0  0 = 0; 0 + 1 = 1; 1 + 0 = 1; 1 + 1 = 0.

Правила полиномиального арифметического вычитания без переноса:

0 - 0 = 0; 0 - 1 = 1; 1 - 0 = 1; 1 - 1 = 0.

Полиномиальные арифметическое сложение и вычитания соответствуют логической операции сумма по модулю два: 0  0=0; 0  1=1; 1  0=1; 1  1=0.

Правила полиномиального арифметического умножения выполняются по обычным правилам арифметического умножения:

0 0 = 0; 0 1 = 0; 1 0 = 0; 1 1 = 1.

Сложение промежуточных результатов умножения выполняется по правилам полиномиального арифметического сложения без переноса (сумма по модулю два).

При умножении полиномов степени складываются:

Правила полиномиального арифметического деления выполняются по обычным правилам арифметического деления. Вычитание промежуточных результатов деления выполняется по правилам полиномиального арифметического вычитания без переноса (сумма по модулю два).

Алгоритм вычисления CRC основан на свойствах деления с остатком двоичных полиномов (многочленов).

Циклические коды задаются с помощью порождающих полиномов:

,

где = {0,1}; x = 2.

Полином исходного сообщения имеет вид:

.

Полином кодированного сообщения имеет вид:

.

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

Таблица Соответствие между двоичными числами и полиномом

Номер бита

7

6

5

4

3

2

1

0

Значение бита

0

1

0

1

0

0

1

1

Переменная полинома

Двоичное число 01010011 переводится в полиномиальную форму следующим образом:

01010011 = 0∙ + 1∙ + 0∙ + 1∙ + 0∙ + 0∙ + 1∙ + 1∙ =

= 0 + + 0 + + 0 + 0 + + = + + + = + + + 1.

Получаем 01010011 = + + + 1.

Порядок кодирования и декодирования данных методом CRC.

Кодирование данных и передача по линии связи :

  1. Выбор исходного полинома:

.

  1. Умножение исходного полинома на фиксированное двоичное число :

.

  1. Деление на порождающий полином

:

.

Результатом является:

- - полином (частное от деления);

- - полином (остаток) с максимальной степенью (r - 1).

  1. Кодированное сообщение представляется в виде:

=

= .

  1. Передача сообщения .

Прием и проверка данных:

  1. Прием сообщения .

  2. Деление сообщения на порождающий полином :

.

Результатом является - полином (частное от деления); - полином (остаток) с максимальной степенью (r - 1).

  1. Проверка на наличие ошибок:

- если остаток равен нулю, то ошибки нет;

- если остаток равен не нулю, то ошибка есть.

Пример. Передать исходный полином с CRC - кодированием циклического кода (7,4,3).

Кодирование данных и передача по линии связи : Рассмотрим последовательность кодирования:

- исходный полином = ;

- порождающий полином = ;

- множитель .

1. Умножение исходного полинома на фиксированное двоичное число :

.

2. Деление полинома на порождающий полином и вычисление остатка :

1

=

=

Получаем остаток , равный х.

  1. Формирование сообщения:

= .

5. Передача сообщения

Прием и проверка данных:

  1. Прием сообщения .

  2. Деление сообщения на порождающий полином :

1

=

0

=

  1. Проверка на наличие ошибок:

- остаток равен нулю, ошибки нет.

Пример. Передать исходный полином с CRC - кодированием циклического кода (7,4,3) в двоичных кодах.

Кодирование данных и передача по линии связи : Рассмотрим последовательность кодирования:

- исходный полином = = 0111;

- порождающий полином = = 1011;

- множитель = 1000.

1. Умножение исходного полинома = 111 на фиксированное двоичное число = 1000:

= (0111)∙ 1000 = 0111000.

2. Деление полинома = 111000 на порождающий полином = 1011:

1

1

1

0

0

0

1

0

1

1

1

0

1

1

1

0

1

0

1

0

1

1

1

0

=

Остаток = 10.

3. Формирование сообщения:

= .

4. Передача сообщения 0111 010.

Прием и проверка данных:

  1. Прием сообщения 0111 010.

  2. Деление сообщения = 0111 010 на порождающий полином

= 1011:

1

1

1

0

1

0

1

0

1

1

1

0

1

1

1

0

1

1

1

0

1

1

0

0

=

  1. Проверка на наличие ошибок:

- остаток равен нулю, ошибки нет.

Цифровое кодирование дискретной информации

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

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

Импульсные коды представляют двоичные данные импульсами определенной полярности или перепадом потенциала определенного направления.

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

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

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

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

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

Код NRZ

Код NRZ (Non Return to Zero - без возврата к нулю) - это код, представляющий собой обычный цифровой сигнал.

Характеристика кода:

- логический ноль: низкий уровень в битовом интервале t;

- логическая единица: высокий уровень в битовом интервале t.

Рис. - Код NRZ:

А. Двоичный код 00h; Б. Двоичный код FFh; В. Двоичный код AAh.

Достоинства:

- простая техническая реализация;

- минимальная требуемая пропускная способность линии связи.

Недостатки:

- необходимость стартового бита или второй линии для синхронизации;

- временная привязка только к началу блока;

- возможна потеря синхронизации;

- малая длина блока данных (до 8 бит);

- отсутствие переходов при передаче нулей (000…00) и единиц (111…11).

Код RZ

Код RZ (Return to Zero - с возвратом к нулю) –трехуровневый код, в котором после значащего уровня сигнала в первой половине передаваемого бита информации следует возврат к среднему уровню (нулевому потенциалу) в середине бита.

Рис. - Код RZ:

А. Код 00h; Б. Код FFh; В. Код AAh.

Характеристика кода:

- логический ноль: положительный переход к +U в начале бита t;

- логическая единица: отрицательный переход к -U в начале бита t;

- синхроимпульс: обязательный переход к нулевому уровню в середине бита t.

Достоинство:

- самосинхронизирующийся код;

- временная привязка к каждому отдельному биту;

- отсутствие потери синхронизации при любой длине пакета;

- возможность определения целостности линии при использовании в оптоволоконных сетях.

Недостаток:

- требуется вдвое большая полоса пропускания канала при той же скорости передачи по сравнению с NRZ.