- •Назначение и типы компьютерных сетей
- •Топология кс
- •Оборудование кс
- •Передача информации в кс
- •Эталонная модель osi
- •Стандартные сетевые протоколы
- •Стандартные компьютерные сети
- •Кодирование информации в локальных сетях
- •Контроль достоверности передачи информации в кс
- •1. Дублирование информации
- •2. Контрольная сумма
- •3. Контроль паритета
- •4. Двухмерный контроль паритета
- •5. Код Хемминга
- •Циклические коды crc
- •Код Манчестер-II
- •Код Манчестер II (дифференциальный)
- •Самосинхронизирующийся код 4в/5в.
5. Код Хемминга
Помехоустойчивое кодирование методом Хемминга позволяет:
- обнаруживать одиночные ошибки;
- исправлять одиночные ошибки.
Метод основан на перекрестном вычислении битов паритета.
Основными свойствами кода Хемминга являются:
- расстояние по Хеммингу;
- минимальное расстояние по Хеммингу;
- вес Хемминга.
Расстоянием по Хеммингу d(x,y) называется число позиций, в которых различаются два n-разрядных кода.
Минимальным расстоянием d* называется наименьшее из всех расстояний по Хеммингу между различными парами всех n-разрядных кодов.
Весом Хемминга w(x) называется число ненулевых компонент n-разрядного кода.
Пример. Определить расстояние по Хеммингу d(x,y) для кодов х = 0110 и y = 1011:
-
0110
Код х
Сумма по модулю два
1011
Код y
1101
Результат
В результате 1101 единицы отражают число позиций, в которых различаются коды 0110 и 1011. Количество единиц равно 1 + 1 + 0 + 1 = 3.
Ответ. Расстояние по Хеммингу d(0110, 1011) = 3.
Пример. Определить минимальное расстояние d* для кодов 0110, 1011, 1101:
d(0110, 1011) = 3;
d(1011, 1101) = 2;
d(0110, 1101) = 2.
Ответ. Минимальное расстояние d* = 2.
Пример. Определить вес Хемминга w(x) для кода х = 0110.
Ответ. Вес Хемминга w(0110) = 0 + 1 + 1 + 0 = 2.
Помехоустойчивые коды характеризуется выражениями:
(n, k, d) или (n, k),
где n – общее число разрядов в передаваемом сообщении; k – число информационных разрядов (k = n - r); r – число проверочных разрядов; d* – минимальное кодовое расстояние между разрешенными кодовыми комбинациями.
Дополнительным показателями избыточности являются:
- относительная избыточность ;
- относительная скорость передачи .
Рассмотрим работу метода на примере кода Хемминга (7,4) для данного D3D2D1D0 (n =7, k = 4).
Кодирование данных и передача по линии связи :
1. Вычисление для данного D3D2D1D0 поверочных битов Р2Р1Р0 по формулам:
Р0 = D2 D1 D0;
Р1 = D3 D1 D0;
Р2 = D3 D2 D0.
2. Переда сообщения D3D2D1D0Р2Р1Р0 по линии связи.
Прием и проверка данных:
Прием сообщения D3D2D1D0Р2Р1Р0.
Вычисление синдромов по формулам:
S0 = D2 D1 D0 Р0;
S1 = D3 D1 D0 Р1;
S2 = D3 D2 D0 Р2.
Трёхразрядный код называется синдромом.
Синдром представляет собой сочетание результатов проверки на чётность соответствующих символов кодовой группы и характеризует определённую конфигурацию ошибок (шумовой вектор).
3. Проверка на наличие ошибок:
- получение идентификаторов ошибки для синдромов (восемь идентификаторов ошибки), приведенных в таблице.
Таблица Идентификаторы ошибок
-
№
Синдромы
Идентификатор
ошибки
S2
S1
S0
0
0
0
0
Ошибки нет
1
0
0
1
Ошибка в P0
2
0
1
0
Ошибка в P1
3
0
1
1
Ошибка в D1
4
1
0
0
Ошибка в Р2
5
1
0
1
Ошибка в D2
6
1
1
0
Ошибка в D3
7
1
1
1
Ошибка в D0
Пример. Передать четырехразрядное данное D3D2D1D0 = 0000 с контролем достоверности по Хеммингу.
Кодирование данных и передача по линии связи :
Вычисление для данного D3D2D1D0 = 0000 поверочных битов Р2Р1Р0 по формулам:
Р0 = D2 D1 D0 = 0 0 0 = 0;
Р1 = D3 D1 D0 = 0 0 0 = 0;
Р2 = D3 D2 D0 = 0 0 0 = 0.
Поверочные биты Р2Р1Р0 равны 000.
2. Передача сообщения D3D2D1D0Р2Р1Р0 = 0000 000.
Прием и проверка данных:
Прием сообщения D3D2D1D0Р2Р1Р0 = 0000 000.
Вычисление синдромов :
S0 = D2 D1 D0 Р0 = 0 0 0 0 = 0;
S1 = D3 D1 D0 Р1 = 0 0 0 0 = 0;
S2 = D3 D2 D0 Р2 = 0 0 0 0 = 0.
Синдромы равны 000.
Проверка на наличие ошибок:
- из таблицы идентификаторов получаем, что для синдромов = 0000 ошибки нет.
Пример. Выполнить верификацию принятого сообщения 0100000, использующее кодирование методом Хемминга (7,4).
Прием и проверка данных:
Прием сообщения D3D2D1D0Р2Р1Р0 = 0100 000.
2. Анализ принятого сообщения:
Данное |
Код Хемминга |
|||||
D3 |
D2 |
D1 |
D0 |
Р2 |
Р1 |
Р0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
Вычисление синдромов :
S0 = D2 D1 D0 Р0 = 1 0 0 0 = 1 0 0 = 1 0 = 1;
S1 = D3 D1 D0 Р1 = 0 0 0 0 = 0 0 0 = 0 0 = 0;
S2 = D3 D2 D0 Р2 = 0 1 0 0 = 1 0 0 = 1 0 = 1.
Проверка на наличие ошибок:
- для синдромов = 101 из таблицы синдромов извлекаем сообщение: «Ошибка в D2».
4. Исправление ошибки:
- исправление ошибки с помощью логической операции инверсии (второго разряда) = 0000.
Ответ. Передавалось данное 0000.