Передача информации
Особенности векторных пространств над конечным полем GF(2). Линейный групповой код
Одним из подходов к регулярному построению кодов является применение в качестве кодовых множеств линейных подпространств [29], [33], [34]. Одно из преимуществ такого подхода заключается в хорошо изученной структуре подпространств линейных векторных пространств.
Для построения кодов, обнаруживающих и исправляющих ошибки, используются векторные пространства над конечным полем [32]. В этом случае множество (-мерный куб) рассматривается как линейное векторное пространство над конечным полем . Точки из становятся векторами, их можно складывать и умножать на числа из поля .
Специфика некоторых понятий линейной алгебры в векторном пространстве является следствием особенностей поля . Сложение векторов из производится покоординатно с учетом особенностей операции сложения в поле .
Сложение и умножение в поле определяется следующими таблицами.
Сложение в поле (сложение по модулю 2) часто обозначается . Этим же знаком будем обозначать сложение векторов из . Следует отметить справедливое для всех векторов равенство , вытекающее из таблицы сложения. Оно означает, что любой вектор является противоположным себе , а также что при заданных и ( уравнение имеет решение .
Рассмотрим особенности еще некоторых понятий линейной алгебры.
Линейная комбинация в . Учитывая, что рассматривается как векторное пространство над конечным полем , содержащим только два элемента 0 и 1, линейная комбинация в превращается в сумму векторов
Линейная оболочка множества векторов из - это совокупность различных сумм этих векторов. Линейная оболочка векторов будет обозначаться через .
Линейная зависимость векторов из . Векторы линейно зависимы, если существует сумма некоторых из них, равная 0.
Векторы линейно независимы, если любая сумма некоторых из них не равна 0.
Утверждение. Если векторы независимы, то все их линейные комбинации (суммы) различны.
Доказательство. Предположим, что Удалив из левой и правой частей этого равенства одинаковые векторы и перенеся оставшиеся из правой части в левую, получим нулевую сумму векторов. Это противоречит их линейной независимости.
Всего из линейно независимых векторов можно составить
линейных комбинаций, и все они различны.
Из доказанного утверждения следует, что линейная оболочка линейно независимых векторов содержит вектора.
Рассмотрим пример. Пусть имеем два вектора
Их линейная оболочка состоит из четырех векторов На традиционном изображении в виде точек куба образуют плоскость (увеличенные светлые вершины куба на рисунке).
Подпространства в . Подпространством векторного пространства называется подмножество векторов из , замкнутое относительно операций сложения и умножения на число из поля . Линейная оболочка векторов уявляется подпространством пространства .
Например, рассмотренная в предыдущем примере линейная оболочка из четырех векторов является подпространством, а множество векторов
подпространством не является, поскольку оно не замкнуто относительно операции сложения. Например, не входит в это множество векторов.
По аналогии с подпространствами в подпространства в могут задаваться системами линейных уравнений (но над полем ). Именно таким образом далее будет задаваться линейный групповой код.
Нормой вектора называется число единичных координат этого вектора. В кодировании норму вектора называют также весом этого вектора. С помощью нормы вектора и операции сложения векторов в (операции покоординатного сложения по ) выражение для расстояния Хеминга может быть записано в виде
Кодовое расстояние линейного кода может быть вычислено проще, чем кодовое расстояние произвольного кода. Учитывая, что для слов линейного кода справедливо , выполняется следующая цепочка равенств
Определение. Пусть - матрица над полем размера и ранга . Множество решений уравнения называется линейным кодом. - проверочная матрица, - длина кода, - размерность кода. Если матрица имеет вид , где - единичная матрица порядка , то код называется систематическим.
Построение линейного кода по заданной порождающей матрице
Рассмотрим, как можно получить линейный код, зная порождающую матрицу. Для этого решим уравнение и найдем кодовые слова. В матричном виде уравнение для кодовых слов запишется в виде
( 7.1) |
Чтобы найти решение, нужно произвольно задать компонент вектора , а остальные вычислить по формуле (2.6). Таким образом, первые компонент вектора полностью его определяют
( 7.2) |
Матрица называется порождающей. Ее столбцы образуют базис пространства решений системы . Учитывая особенности поля , порождающая матрица имеет вид .
Нетрудно показать, что справедливо равенство , где - матрица из нулевых элементов, имеющая строк и столбцов.
Для того чтобы лучше понять свойства линейных кодов, полезно рассматривать произведение как линейную комбинацию столбцов матрицы с коэффициентами, являющимися компонентами вектора .
Свойства линейных кодов зависят от проверочной матрицы. Эта зависимость описывается следующей леммой [34].
Лемма. Линейный код с проверочной матрицей имеет кодовое расстояние тогда и только тогда, когда любые s столбцов матрицы линейного кода линейно независимы.
Если любые столбцов матрицы линейно независимы, то никакой вектор , имеющий или менее ненулевых (единичных) компонент, не обращает в ноль произведение . Это означает, что нормы всех кодовых слов, то есть слов , для которых справедливо , больше , и следовательно, кодовое расстояние .
Пусть теперь линейный код с проверочной матрицей имеет кодовое расстояние . Для доказательства линейной независимости любых столбцов проверочной матрицы предположим противное, то есть предположим, что существует линейно зависимых столбцов матрицы Это значит, что сумма некоторых из этих столбцов равна нулевому вектору пространства . Эту сумму можно представить как произведение , где - вектор, у которого компоненты с номерами равны 1, а остальные компоненты равны 0. Значит - кодовый вектор с нормой , что противоречит тому, что кодовое расстояние .
Рассмотрим некоторые примеры линейных кодов.
Код с разрядом для проверки на четность является линейным кодом с проверочной матрицей . Действительно, уравнение в этом случае имеет вид
или
то есть четвертый разряд (проверочный), равный сумме трех информационных, делает сумму всех разрядов кодового слова четной. Каждый столбец проверочной матрицы линейно независим, поэтому из доказанной выше леммы следует, что код имеет кодовое расстояние, равное 2, и следовательно, обнаруживает одну ошибку. Ошибка обнаруживается, если число единичных разрядов в принятом слове нечетно (сумма всех разрядов принятого слова по модулю 2 не равна 0). В этом коде 8 кодовых слов.
Код с повторением является линейным кодом с проверочной матрицей
Линейное уравнение, определяющее код, в данном случае имеет вид
а его решения описываются соотношениями . Эти равенства означают, что три проверочных разряда повторяют один информационный разряд. Любые 3 столбца проверочной матрицы являются линейно независимыми (сумма любых трех столбцов не равна нулевому столбцу), поэтому кодовое расстояние, равное 4, обеспечивает исправление одной ошибки и обнаружение трех. Код содержит всего 2 кодовых слова: и . Считается, что слово передано с ошибкой, если не все разряды в нем одинаковы. Исправление одной ошибки производится по принципу голосования. Если в полученном слове больше единичных разрядов, то, очевидно, оно ближе к кодовому слову , чем к кодовому слову , поэтому декодирование производится в слово . По аналогичной причине, когда в принятом слове больше нулевых разрядов, декодирование производится в слово .