Кодовый вектор – последовательность 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 – столбцы
Комбинации Результат комбинации
|
|
|
|
|
|
Можно было бы построить 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
Достоинство метода: его универсальность, возможность применять различные стратегии.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.