Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СДЭС_Уч_метод_пос_кодирование2.doc
Скачиваний:
97
Добавлен:
03.12.2018
Размер:
1.89 Mб
Скачать

1.2. Линейные блоковые коды

Как уже упоминалось выше, построение хорошего кода означает поиск в V2 подмножества элементов в наибольшей степени удаленных друг от друга. Это очень трудная задача. Более того, если даже это сделано, то остается неясным как назначить кодовые слова информационным сообщениям.

Линейный код (т.е. множество кодовых слов) является векторным подпространством в пространстве V2. Это означает, что операция кодирования может быть представлена умножением на матрицу. В терминах цифровой электроники простое кодирующее устройство может быть построено на элементах «исключающее ИЛИ», «И» и триггерах типа D. В этой части операциями сложения и умножения в двоичном векторном пространстве являются «исключающее ИЛИ» (сложение по модулю 2) и «И», соответственно. Таблицы сложения и умножения двоичных элементов имеют следующий вид:

а

b

a+b

ab

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

1.2.1. Порождающая и проверочная матрицы

Пусть С двоичный линейный (п, к, dmin) код. Так как С есть k-мерное подпространство, то оно имеет базис, например, (v0, v1,…, vk-1) такой, что любое кодовое слово v С может быть записано как линейная комбинация элементов этого базиса:

(1.9)

где ui {0, 1}, 0 ≤ i < k. Уравнение (1.9) может быть записано в матричной форме через порождающую матрицу G и вектор-сообщение и = 0, u1, …, uk-1):

v=uG (1.10)

где

(1-11)

Так как С является k- мерным векторным пространством в V2, то существует (n-k)-мерное дуальное пространство (dual space) С┴, которое порождается строками матрицы Н, называемой проверочной матрицей (parity-check matrix), такой, что GHT=0, где через НT обозначена транспонированная матрица Н. Заметим, в частности, что любое кодовое слово v С удовлетворяет условию

vHT=0 (1.12)

Как будет показано в разделе 1.3.2 уравнение (1.12) является фундаментальным для декодирования линейных кодов.

Линейный код С┴, который генерируется матрицей Н, является двоичным линейным (п, п - k, dmin) кодом, который называют обычно дуальным коду С.

1.2.2. Вес как расстояние

Как упоминалось в разделе 1.1.2, линейные коды отличаются тем, что для определения минимального расстояния кода достаточно знать минимум Хеммингова веса ненулевых кодовых слов. Ниже этот факт будет доказан. Определим вес Хемминга wtH (x) вектора х V2, как число ненулевых элементов в х. Из определения Хеммингова расстояния ясно, что wtH(x) = dH(x, 0). Для двоичного линейного кода С получаем

(1-13)

Наконец, из свойства линейности кода имеем v1+v2 C. Отсюда следует, что минимальное расстояние кода С равно и может быть вычислено как минимальный вес по всем 2к1 ненулевым кодовым словам. Эта задача существенно проще, чем полный перебор по всем парам кодовых слов, хотя и остается очень сложной даже для кодов среднего размера (или размерности к).