
- •Сибирская Аэрокосмическая Академия
- •Статический метод
- •Энтропия и её свойства
- •Энтропия сложной системы
- •Условная энтропия. Объединение зависимых систем.
- •Полная условная энтропия
- •Теорема сложения энтропий
- •Определение информационных потерь в каналах связи
- •Энтропия и информация
- •Взаимная информация
- •Сумма равна единице
- •Частная информация о системе
- •Частная информация о событии, получаемая в результате сообщения о другом событии.
- •Энтропия и информация для систем с непрерывным множеством состояний
- •Условная энтропия непрерывной системы
- •Количественное определения избыточности
- •Блочное кодирование
- •Избыточность от округления
- •1 Символ – 4 бита
- •Код Хафмана
- •Процедура кодирования
- •Передача информации по дискретным каналам связи
- •Основная теорема Шеннона о кодировании для дискретного канала без помех
- •Дискретный канал с помехами
- •Теорема о кодировании Шеннона для дискретного канала с помехами
- •Корректирующие коды
- •Исправление ошибок с помощью полной кодовой таблицы
- •Разбиение
- •Систематические коды
- •Декодирование систематических кодов
- •Код Хэминга
- •Декодирование кода Хэминга
- •Особенности декодирования.
- •Циклические коды
- •Декодирование циклических кодов
- •Построение декодированного конкретного циклического кода
- •Обнаружение и определение ошибок
- •Коды, обнаруживающие трёхкратные ошибки
Код Хэминга
Код
Хэминга относится к систематическим
кодам. Код позволяет обнаруживать
одиночные и двойные ошибки и исправлять
одиночные ошибки. Для вычисления основных
параметров кода необходимо знать
соответственно количество информационных
разрядов nu
или количество
комбинаций
.
Количество
контрольных разрядов nk
вычисляют из
соотношений
,
n = nu
+ nk
, n
– значность
кода,
Количество контрольных разрядов можно определить по таблице. Номера позиций контрольных символов выбирают по закону 2i, i = 0,1,2… Значения контрольных разрядов выбирают следующим образом.
Алгоритм:
1) Составляется вспомогательная таблица для ряда натуральных чисел в двоичной коде, Число строк в таблице n – значность кода. В каждой i –й строке вспомогательной таблицы ставится в соответствие ai коэффициент, который участвует в проверке, ai – коэффициенты, из которых составлена кодовая комбинация
-
n
Код
Коэффиц-иенты
n
Код
Коэффици-енты
1
0001
а1
7
0111
a7
2
0010
a2
8
1000
a8
3
0011
a3
9
1001
a9
4
0100
a4
10
1010
a10
5
0101
a5
11
1011
a11
6
0110
a6
12
1100
a12
На
основании этой таблицы составляется
схема проверок, которые производятся
суммированием выбранных проверочных
коэффициентов
.
Для каждой поверки выбираются свои
проверочные коэффициенты. В первую
проверку входят коэффициенты, которые
содержат в младших разрядах единицы.
Во вторую проверку входят коэффициенты
содержащие единицу во втором
разряде(a2,a3,a6,…).
В третью проверку входят коэффициенты
содержащие единицу в третьем разряде.
Схему проверок сведём в отдельную таблицу.
-
Nпроверок
Схема
Nконтрольных. символов
1
a1 + a3 + a5 + a7 + a9 + a11
1
2
a2 + a3 + a6 + a7 + a10 + a11
2
3
a4 + a5 + a6 + a7 + a12
3
4
a8 + a9 + a10 + a11 + a12 +…
4
Количество проверок равно количеству разрядов. Контрольные коэффициенты выбираются таким образом, чтобы проверочная сумма была равна нулю. Т.е. если количество единиц чётное, то контрольный разряд нулевой, если нечётнно, то контрольный разряд равен единице.
Пример: Построить код Хэминга по комбинации
0101 nu = 4 nk = 3 nk = log(nu + 1) + log(nu + 1)
1,2,3 k
= 7 2i
= 1,3,4,8
Контрольные
разряды будут занимать позиции 1,2,4.
Код Хэминга
а1a2a3a4a5a6a7
k1k20 k31 0 1 - макет
1) a1 + a3 + a5 + a7 = k1 + 0 + 1 + 1 = 0 k1 = 0
2) a2 + a3 + a6 + a7 = k2 + 0 + 0 + 1 = 0 k2 = 1
3) a4 + a5 + a6 + a7 = k3 + 1 + 0 + 1 = 0 k3 = 0
Код Хэминга будет иметь вид 0100101
Декодирование кода Хэминга
В процессе декодирования производится проверка на чётность по схеме проверок и строится вектор ошибок S(Sk, …,S1). Если проверочная сумма равна нулю, то в вектор ошибки записывается ноль иначе записывается единица. Всего делается nk проверок. В результате первой проверки определяется составляющая S1, последней составляющая Sk. Если принятая кодовая комбинация содержит ошибку, то в векторе S образуется число, которое указывает номер ошибочной позиции.
a1a2a3a4a5a6a7
Пример: Послана комбинация vk = 0100101. Принятая комбинация vx = 0100111, т.е. имеется ошибка в шестом разряде Составим схему проверок.
1) a1 + a3 + a5 + a7 = 0 + 0 + 1 + 1 = 0 S1 = 0
2) a2 + a3 + a6 + a7 = 1 + 0 + 1 + 1 = 1 S2 = 1
3) a1 + a5 + a6 + a7 = 0 + 1 + 1 + 1 = 1 S3 = 1
S = 110 это двоичное число шесть, что соответствует разряду a6, следовательно, ошибка в шестом разряде.
Для исправления одинарной и обнаружение двойной ошибки, кроме проверок по контрольным позициям проводят проверку на чётность для каждого кода. Для этого при формировании кода каждому коду в конце кодовой комбинации добавляется контрольный символ так, чтобы сумма единиц в полученной комбинации всегда была чётной.