Информация, язык, общество. Измерение информации. Энтропия и её свойства. Определение информационных потерь в каналах связи. Передача информации по дискретным каналам связи. Код Хэминга, страница 14

Кодовый вектор – последовательность 0-й и 1-й кодовой комбинации.

Вес кодового вектора – число единиц в кодовой комбинации.

Нулевой вектор – кодовая комбинация, состоящая из одних нулей.

n – значность кода (из скольки символов состоит кодовая комбинация);

nu – число информационных разрядов;

nk – число контрольных разрядов;

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

Код(n, nu)                 Код (5,3)

Построение систематических кодов производится следующим образом: в качестве первого берется нулевой вектор, затем составляется производящая матрица. Она имеет nи – строк, n – столбцов. В качестве строк производящей матрицы берутся любые линейно независимые n-значные векторы, отстоящие друг от друга не менее, чем на заданное кодовое расстояние. Строки матрицы G – являются кодовыми векторами. Первый вектор - нулевой.

Линейно независимыми называются векторы, для которых выполняется условие:

v1, v2,...,vк

v1 + v2 + ...+ vк ≠ 0

Остальные кодовые векторы определяются количеством:

 где

 - всего (общее число кодовых векторов);

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

1 –нулевой вектор.

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

Для обнаружения ошибок составляется множество проверочных векторов, ортогональных векторам кода. Т.е. если кодовый вектор v образован символами а1, а2,…, аn, а ортогональный вектор u образован символами – b1, b2,..., bn, то

Из векторов u составляется проверочная матрица Н. Она имеет nк – строк, n-столбцов. Строками матрицы Н являются любые линейно-независимые векторы u.

Пример: Пусть строится код (5,3) с минимальным кодовым расстоянием d0=2. Он позволяет обнаруживать все одиночные ошибки. Составим производящую матрицу G:

                        Три строки, т.к. nu = 3, n = 5 – столбцы

                                                                Комбинации                        Результат комбинации

1 + 3

 

1 + 2 + 3

 

2 + 3

 

1 + 2

 

Строки матрицы

G

 

Нулевой вектор

 
                                                            

Можно было бы построить G из любой другой тройки векторов, кроме сочетаний v2v3v5, v2v4,v1 и т.д. (семь штук), т.к. эти сочетания линейно зависимы, т.е. v2 + v4 + v7 ≠0.

Построим ортогональные векторы u (проверочные).

 Составим для векторов v2, v3, v8. Эти вектора имеют минимальное количество единиц.

v2    0 × b1 + 0 × b2 + 0 × b3 + 1 × b4 + 1 × b5 = 0

       b4 + b5 = 0

v3    b2 + b3 + b5 = 0

v8    b1 + b3 = 0

Для любого вектора u должно выполняться

Перебирая все удовлетворяющие этим условия сочетания, получили:

u1 = 00000

u2 = 01011

u3 = 10111

u4 = 11100

Из этих векторов необходимо составить проверочную матрицу Н

    - т.к. они линейно независимы

Декодирование систематических кодов

1. Декодирование с помощью полной кодовой таблицы. Рассчитаем параметры этой таблицы

N = 25 = 32 – код пяти значений

N0 = 23 = 8 – разрешённая комбинаяция

N - N0=32-8=24 – запрещённая коибинация ( кодовых исправлений 24 ошибки )

Строим полную кодовую таблицу. В качестве первой строки используем разрешенные комбинации v1 – v8

00000

00011

01101

11010   01110   10111   11001   10100

00001

00100

01000

00010

00111

01011

01100

01001

00101

Общий метод декодирования состоит в следующем: Приняв некий вектор vx, содержащий ошибку, его отыскивают в полной кодовой таблице и соотносят с тем кодовым вектором, который стоит в верхней строке этого столбца.

Пример: vx=00111, находим в таблице и соотносят с 01 строкой, т.е. v = 00011

Достоинство метода: его универсальность, возможность применять различные стратегии.