Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 13 - Помехоустойчивое кодирование.doc
Скачиваний:
64
Добавлен:
12.02.2015
Размер:
210.94 Кб
Скачать

13.3 Матричное представление (n, k)-кодов.

Среди блочных кодов широкое распространение получили линейные коды. Для определения линейного кода воспользуемся представлением кодовых комбинаций в виде элементов n-мерного векторного пространства V над полем P. Под полем P понимают символы выходного алфавита (внутреннего алфавита системы), число которых равно m. Линейными m-ичными кодами называются k-мерные подпространства n-мерного пространства V. При этом число n имеет смысл длины кодовой комбинации, число k определяет число информационных разрядов. Линейные коды называют также (n,k)-кодами.

Среди линейных кодов особую роль играют групповые коды, для которых m=2 (двоичные коды). Существуют различные способы задания групповых кодов. Наиболее распространены матричное описание кодов и задание их с помощью порождающих многочленов.

Запишем кодовую комбинацию в виде a1a2akb1b2br. Первые k-разрядов являются информационными, остальные – проверочными. Проверочные символы кодовых комбинаций формируются из информационных символов на основе выражения

(13.3)

Здесь коэффициенты cj1,cj2,…,cjk принимают значения из множества {0,1}.

Любая кодовая комбинация, состоящая из k информационных разрядов, все проверочные разряды которой составлены в соответствие с формулой (13.3), является разрешённой комбинацией (n,k)-кода.

Пусть u и v – две разрешённые комбинации группового (n,k)-кода. Тогда кодовая комбинация w=u+v также является разрешённой комбинацией этого кода. Действительно, пусть

Тогда

,

где

Следовательно, проверочные разряды bj'' кодовой комбинации w формируются в соответствии с выражением (13.3), поэтому кодовая комбинация w также является разрешённой.

Любые k линейно независимых векторов n-мерного линейного векторного пространства порождают k-мерное подпространство, образуя базис этого подпространства. Отсюда следует, что для задания (n,k)-кода достаточно выбрать k любых линейно независимых разрешённых кодовых комбинаций, а остальные разрешённые кодовые комбинации получать как линейные комбинации выбранных базисных векторов.

Обычно для задания (n,k)-кода пользуются этой возможностью, представляя k линейно независимых кодовых комбинаций в форме матрицы. Такая матрица называется порождающей матрицей (n,k)-кода. В общем виде её можно представить следующим образом:

(13.4)

Порождающая матрица Gn,k двоичного кода порождает ровно 2k разрешённых кодовых комбинаций.

В зависимости от выбранного базиса k-мерного подпространства n-мерного кодового пространства кодовое расстояние совокупности 2k векторов будет различным. При проектировании (n,k) кода ставится задача оптимального размещения кодовых векторов в n-мерном кодовом пространстве в соответствии с заданной статистикой ошибок и, в частности, обеспечения максимально возможного кодового расстояния.

Пусть v1,v2,…,vk – кодовые векторы-строки, составляющие порождающую матрицу

Тогда разрешённую кодовую комбинацию (n,k)-кода можно представить в виде линейной комбинации векторов

(13.5)

где g1,g2,…,gk – коэффициенты, принимающие значения из множества {0,1}.

Проверочные разряды b1,…,br кодового вектора v, передаваемого по каналу связи, формируются в соответствии с (13.3). Это же соотношение может быть использовано на приёмном конце канала для проверки правильности кодовой комбинации: равенство (13.3) должно выполняться, если ошибки не произошло. С каждой принятой кодовой комбинацией можно связать систему проверок по числу проверочных разрядов, которая может быть описана следующей системой уравнений:

(13.6)

Здесь . Нули в правых частях равенств истолковываются как отсутствие ошибки в принятой кодовой комбинацииv. Для удобства систему проверок (13.6) записывают в матричной форме, а именно как произведение вектор-строки v, соответствующей принятой кодовой комбинации, на матрицу проверочных коэффициентов:

Матрицу Hn,k называют проверочной матрицей. Система проверок (13.6) может быть записана в виде:

(13.7)

В общем случае результат умножения может быть отличен от нуля

где

Вектор-строка называется синдромом ошибки. Всего может быть 2r–1 различных ненулевых синдромов, разбивающих множество возможных ошибок на 2r–1 класса. Это позволяет по виду синдрома ошибки определять, к какому классу относится ошибка. Часто (n,k)-код проектируется таким образом, что с вероятностью, близкой к единице, каждый из выделенных 2r–1 классов ошибок содержит всего по одному элементу. Такие коды позволяют исправлять ошибки.

Порождающая и проверочная матрица связаны между собой соотношением, что позволяет определять одну из них, если известна другая.

Если к какой-либо строке vi порождающей матрицы Gn,k прибавить линейную комбинацию других строк, то от этого порождающая матрица не изменится в том смысле, что останется порождающей матрицей того же самого (n,k)-кода. Путём такой замены строк матрицу Gn,k можно привести к каноническому виду:

(13.8)

канонический вид порождающей матрицы удобен тем, что существует простая связь между элементами порождающей и проверочной матриц: для определения проверочной матрицы (n,k)-кода, порождаемого матрицей вида (13.8), нужно транспонировать подматрицу проверочных разрядов матрицы Gn,k и приписать справа к полученной матрице единичную матрицу размерности . Следовательно, матрице (13.8) соответствует проверочная матрица: