Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
основы информационных технологий.doc
Скачиваний:
348
Добавлен:
15.02.2016
Размер:
13.76 Mб
Скачать

Построение линейного кода по заданной порождающей матрице

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

( 7.1)

Чтобы найти решение, нужно произвольно задать компонентвектора, а остальные вычислить по формуле (2.6). Таким образом, первыекомпонент вектораполностью его определяют

( 7.2)

Матрица называется порождающей. Ее столбцы образуют базис пространства решений системы. Учитывая особенности поля, порождающая матрица имеет вид.

Нетрудно показать, что справедливо равенство , где- матрица из нулевых элементов, имеющаястрок истолбцов.

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

Свойства линейных кодов зависят от проверочной матрицы. Эта зависимость описывается следующей леммой [34].

Лемма. Линейный кодс проверочной матрицейимеет кодовое расстояниетогда и только тогда, когда любые s столбцов матрицылинейного кодалинейно независимы.

Если любые столбцов матрицылинейно независимы, то никакой вектор, имеющийили менее ненулевых (единичных) компонент, не обращает в ноль произведение. Это означает, что нормы всех кодовых слов, то есть слов, для которых справедливо, больше, и следовательно, кодовое расстояние.

Пусть теперь линейный код с проверочной матрицейимеет кодовое расстояние. Для доказательства линейной независимости любыхстолбцов проверочной матрицыпредположим противное, то есть предположим, что существуетлинейно зависимых столбцов матрицыЭто значит, что сумманекоторых из этих столбцов равна нулевому вектору пространства. Эту сумму можно представить как произведение, где- вектор, у которого компоненты с номерамиравны 1, а остальные компоненты равны 0. Значит- кодовый вектор с нормой, что противоречит тому, что кодовое расстояние.

Рассмотрим некоторые примеры линейных кодов.

Код с разрядом для проверки на четность является линейным кодом с проверочной матрицей . Действительно, уравнениев этом случае имеет вид

или

то есть четвертый разряд (проверочный), равный сумме трех информационных, делает сумму всех разрядов кодового слова четной. Каждый столбец проверочной матрицы линейно независим, поэтому из доказанной выше леммы следует, что код имеет кодовое расстояние, равное 2, и следовательно, обнаруживает одну ошибку. Ошибка обнаруживается, если число единичных разрядов в принятом слове нечетно (сумма всех разрядов принятого слова по модулю 2 не равна 0). В этом коде 8 кодовых слов.

Код с повторением является линейным кодом с проверочной матрицей

Линейное уравнение, определяющее код, в данном случае имеет вид

а его решения описываются соотношениями . Эти равенства означают, что три проверочных разряда повторяют один информационный разряд. Любые 3 столбца проверочной матрицы являются линейно независимыми (сумма любых трех столбцов не равна нулевому столбцу), поэтому кодовое расстояние, равное 4, обеспечивает исправление одной ошибки и обнаружение трех. Код содержит всего 2 кодовых слова:и. Считается, что слово передано с ошибкой, если не все разряды в нем одинаковы. Исправление одной ошибки производится по принципу голосования. Если в полученном слове больше единичных разрядов, то, очевидно, оно ближе к кодовому слову, чем к кодовому слову, поэтому декодирование производится в слово. По аналогичной причине, когда в принятом слове больше нулевых разрядов, декодирование производится в слово.