Для
блочного кода с2k кодовыми
словами длиной вnсимволов, если он только не обладает специальной структурой,
аппарат кодирования и декодирования является очень сложным. Поэтому ограничим
свое рассмотрение лишь кодами, которые могут быть реализованы на практике.
Одним
из условий реализуемости блочных кодов при больших k является условие их линейности.
Что такое линейный
код?
Блочный код длиной n
символов, состоящий из2kкодовых слов, называется линейным(n, k)-кодом при условии, что все его
2kкодовых слов образуют k-мерное подпространство
векторного пространства n- последовательностей двоичного
поля GF(2).
Если
сказать проще, тодвоичный код является линейным, если сумма по модулю
2 ( mod2 ) двух кодовых слов также
является кодовым словом этого кода.
Работая с двоичными
кодами, мы постоянно будем сталкиваться с элементами двоичной арифметики,
поэтому определим основные понятия.
Полем называется
множество математических объектов, которые можно складывать, вычитать, умножать
и делить.
Возьмем
простейшее поле, состоящее из двух элементов − нуля - 0 и единицы - 1.
Определим для него операции сложения и умножения:
Определенные
таким образом операции сложения и умножения называются сложением по модулю 2 ( mod2
) и умножением по модулю 2.
Отметим,
что из равенства 1+1 = 0 следует, что -1 = 1 и, соответственно, 1+1=1-1,
а из равенства 1×1=1− что 1:1=1.
Алфавит из двух символов
0 и 1 вместе со сложением и умножением поmod2называется полем из двух элементов и
обозначается как GF(2).К полю GF(2) применимы все методы линейной
алгебры, в том числе матричныеоперации.
Еще раз обратим внимание на то, что все
действия над символамив двоичных кодах
выполняются по модулю 2.
Желательным
качеством линейных блочных кодов является систематичность.
Систематический
код имеет формат, изображенный на рис. 1.1, то есть содержит неизменную информационную часть длиной k символов и избыточную (проверочную) длиной n – k символов.