Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gruppovye_kody_pravlenny.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
163.21 Кб
Скачать

Исследование кодового расстояния

Для каждого фиксированного кодового слова уравнение (2) означает, что сумма некоторого подмножества столбцов матрицы равна 0. Например, последовательность (1 0 0 1 0 1) является кодовым словом (6,3) -кода из предыдущего примера. При матричном умножении согласно (2) ненулевые элементы этой последовательности «отсеивают» первый, четвертый и шестой столбцы Н, т. е.

.

Поскольку аналогичное соотношение должно выполняться для любого кодового слова, можно заметить следующее. Если минимальный вес, т. е. кодовое расстояние кода, равно d, то должно существовать по крайней мере одно подмножество, состоящее из d столбцов матрицы Н, сумма которых равна 0. С другой стороны, не может существовать ни одного подмножества из d – 1 или менее столбцов, сумма которых равна 0. Если рассматривать столбцы матрицы Н как векторы, то можно сказать, что для кода с кодовым расстоянием d все подмножества из d – 1 столбцов Н должны быть линейно независимы. Это утверждение составляет одну из фундаментальных теорем о групповых кодах. Оно позволяет находить кодовое расстояние группового кода, заданного матрицей Н, а также строить матрицы Н, приводящие к кодам с гарантированным кодовым расстоянием. Вновь рассматривая в качестве примера (6,3)-код, видим, что все столбцы различны, так что сумма двух столбцов никогда не равна 0. С другой стороны, существует по крайней мере одно множество из трех столбцов, на­пример, состоящее из столбцов 1, 2 и 5, сумма которых равна 0. Таким образом, кодовое расстояние этого кода равно 3.

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

\2i'

качестве первых двух столбцов матрицы Н произвольные век­торы, состоящие из нулей и единиц. Единственное налагаемое на них ограничение заключается в том, что они должны быть различными. Выберем третий вектор так, чтобы он не являлся линейной комбинацией первых двух. Продолжая таким же образом, будем выбирать каждый следующий столбец так, чтобы он не был линейной комбинацией никаких d2 или меньшего числа уже выбранных столбцов. Новые столбцы можно добавлять до тех пор, пока линейные комбинации d2 или меньшего числа уже выбран­ных столбцов не исчерпают всех возможных столбцов. В наихудшем случае все эти линейные комбинации являются различными ненулевыми векторами. Тогда перед последним шагом должно вы­полняться неравенство

,

позволяющее добавить к матрице Н еще один столбец.

Коды Хемминга

Теперь может возникнуть вопрос: насколько длинным при заданном числе проверочных символов может быть код, имеющий гарантированное кодовое расстояние 3? Поскольку для получения кодового расстояния 3 все множества из двух столбцов должны быть линейно независимыми, достаточно, чтобы все столбцы были различными и ненулевыми. Таким образом, для трех проверочных символов имеется семь различных ненулевых троек, для четырех – пятнадцать различных ненулевых четверок и т. д. Это дает семейство кодов с параметрами (п, k) вида , где . Такие коды называются кодами Хемминга; впервые они были описаны Хеммингом в 1950 г.

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

=

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

,

где – число кодовых слов веса i. Тогда для кода Хемминга с d = 3 и имеем

. (3)

Коды Хемминга с кодовым расстоянием 3 можно превратить в коды Хемминга с расстоянием 4, добавив дополнительный проверочный символ, равный сумме всех остальных символов. Этот дополнительный проверочный символ переводит все кодовые слова веса 3 в слова веса 4, слова веса 5 в слова веса 6 и т. д. Если, например, применить эту процедуру к (7,4)-коду Хемминга, то получится следующая дополненная проверочная матрица:

. (4)

Левая верхняя часть этой матрицы (ограниченная штриховыми линиями) совпадает с первоначальной проверочной матрицей и состоит из различных троек. Эти новые коды с кодовым расстоянием 4, полученные добавлением одного проверочного символа к кодам Хемминга, иногда называют расширенными кодами Хемминга. Их параметры имеют вид .

Можно заметить, что дополненная матрица H в последнем примере уже не имеет канонической формы, т. е. правая участь этой матрицы уже не является единичной матрицей, что не позволяет определить каждый проверочный символ только по ин­формационным символам. Этот недостаток можно исправить, прибавив каждую из первых трех строк матрицы к последней. В результате получим матрицу вида

.

Можно показать, что последняя строка полученной матрицы по-прежнему задает проверку на четность. Для этого вычислим ее действие на кодовый вектор. Если h1, h2, h3, h4четыре строки матрицы H, то произведение последней строки Н1 на кодовый вектор с имеет вид

,

поскольку для всех

В общем случае строки проверочной матрицы являются линейно независимыми. Это становится очевидным, если матрица записана в канонической форме, поскольку наличие единичной матрицы делает невозможным существование линейной комбинации с нулевой суммой. Из приведенного здесь примера должно быть ясно, что существует много допустимых способов выбора строк матрицы Н. Любая линейная комбинация строк может служить проверочным уравнением, и любое множество из п – k полученных таким способом линейно независимых уравнений может быть использовано для образования матрицы Н. Позже будем использовать это свойство для построения простых алгоритмов декодирования групповых кодов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]