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

3. Контроль паритета

Помехоустойчивое кодирование методом контроля паритета позволяет:

  1. Обнаруживать одиночные ошибки.

  2. Обнаруживать ошибки нечетной кратности (ошибки одновременно в одном, трех, пяти и т.д. битах).

Контроль паритета не позволяет обнаруживать ошибки четной кратности (ошибки одновременно в двух, четырех, шести и т.д. битах).

При контроле паритета передающий узел вычисляет один контрольный бит паритета Р для данных Dn-1Dn-2D1D0 (обычно n = 5, 6, 7, 8 бит). Различают два типа контроля паритета (parity – соответствие, аналогия): по четности и по нечетности.

При контроле по четности сумма единичных битов данного и бита паритета является четным числом. При контроле по нечетности сумма единичных битов данного и бита паритета является нечетным числом.

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

1. Вычисление бита паритета Р для данного Dn-1Dn-2D1D0:

Р = (Dn-1 Dn-2 …  D1 D0) V,

где V определяет вид используемого паритета (V = 0 – контроль по четности; V = 1 – контроль по нечетности).

2. Формирование сообщения, содержащего данное Dn-1Dn-2D1D0 и бит паритета Р.

3. Передача сообщения Dn-1Dn-2D1D0 Р по линии связи.

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

1. Прием сообщения Dn-1Dn-2D1D0 Р.

2. Вычисление поверочного бита S = (Dn-1Dn-2  …  D1D0)  V;

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

- если поверочный бит S = 0, ошибки нет (ошибка не обнаружена);

- если поверочный бит S = 1, ошибка есть.

Бит контроля по четности Рч вычисляется по формуле:

Рч = (Dn-1Dn-2  …  D1D0)  0

Пример контроля по четности (V = 0).

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

1. Вычисление бита паритета Рч для данного = 1101.

Рч = (1  1  0  1)  0 = (0  0  1)  0 = (0  1)  0 = 1  0 = 1.

2. Формирование сообщения, содержащего данное = 1101 и бит паритета Рч =1.

3. Передача сообщения 1101 1 по линии связи.

Прием и проверка данных (вариант 1 без ошибки):

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

2. Вычисление поверочного бита S = (1  1  0  1  1)  0

= (0  0  1  1)  0 = (0  1  1)  0 = (1  1)  0 = 0  0 = 0.

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

- поверочный бит S = 0 - ошибки нет.

Прием и проверка данных (вариант 2 с одной ошибкой):

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

2. Вычисление поверочного бита S = (1  0  0  1  1)  0

= (1  0  1  1)  0 = (1  1  1)  0 = (0  1)  0 = 1  0 = 1.

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

- поверочный бит S = 1 – ошибка есть (одна ошибка обнаружена).

Прием и проверка данных (вариант 3 с двумя ошибками):

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

2. Вычисление поверочного бита S = (1  0  1  1  1)  0

= (1  1  1  1)  0 = (0  1  1)  0 = (1  1)  0 = 1  0 = 0.

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

- поверочный бит S = 0 – ошибка не обнаружена (ошибки четной кратности не обнаруживаются).

Прием и проверка данных (вариант 3 с тремя ошибками):

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

2. Вычисление поверочного бита S = (1  0  1  0  1)  0

= (1  1  0  1)  0 = (0  0  1)  0 = (0  1)  0 = 1  0 = 1.

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

- поверочный бит S = 1 – ошибка обнаружена (ошибки нечетной кратности обнаруживаются).

Бит контроля по нечетности Рн вычисляется по формуле:

Рн = (Dn-1Dn-2  …  D1D0)  1.

Пример контроля по нечетности (V = 0).

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

1. Вычисление бита паритета Рн для данного = 1101.

Рн = (1  1  0  1)  1 = (0  0  1)  1 = (0 1) 1 = 1  1 = 0.

2. Передача данного = 1101 и бита паритета Рн =0 по линии связи.

Прием и проверка данных (вариант 1 без ошибки):

1. Прием данного = 1101 и бита паритета Рн =0.

2. Вычисление поверочного бита S = (1  1 0  1 0)  1

= (0  0  1  0)  1 = (0  1  0)  1 = (1  0)  1 = 1  1 = 0.

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

- поверочный бит S = 0 - ошибки нет.

Прием и проверка данных (вариант 2 с одной ошибкой):

1. данного = 1101 и бита паритета Рн =0.

2. Вычисление поверочного бита S = (1  0  0  1  0)  1

= (1  0  1  0)  1 = (1  1  0)  1 = (0  0)  1 = 0  1 = 1.

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

- поверочный бит S = 1 – ошибка есть (одна ошибка обнаружена).

Прием и проверка данных (вариант 3 с двумя ошибками):

1. данного = 1101 и бита паритета Рн =0.

2. Вычисление поверочного бита S = (1  0  1  1  0)  1

= (1  1  1  0)  1 = (0  1  0)  1 = (1  0)  1 = 1  1 = 0.

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

- поверочный бит S = 0 – ошибка не обнаружена (ошибки четной кратности не обнаруживаются).

Прием и проверка данных (вариант 3 с тремя ошибками):

1. Прием данного = 1101 и бита паритета Рн =0.

2. Вычисление поверочного бита S = (1  0  1  0  0)  1

= (1  1  0  0)  1 = (0  0  0)  1 = (0  0)  1 = 0  1 = 1.

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

- поверочный бит S = 1 – ошибка обнаружена (ошибки нечетной кратности обнаруживаются).

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