8.1. ЛИНЕЙНЫЕ БЛОКОВЫЕ КОДЫБлоковый код состоит из набора векторов фиксированной длины, называемых кодовыми словами. Длина кодового слова – это число элементов в векторах, и оно обозначается . Элементы кодового слова выбираются из алфавита с элементами. Если алфавит содержит два элемента 0 и 1, код называется двоичным, а элементы любого кодового слова называют битами (двоичными символами). Если элементы кодового слова выбираются из алфавита, имеющего элементов , код называют не двоичным. Интересно отметить, что если является степенью 2, т.е. , где - положительное целое число, каждый -й элемент имеет эквивалентное двоичное представление, состоящее из битов и, таким образом, недвоичные коды длины можно отобразить в двоичный код с блоковой длиной . В двоичном блоковом коде длиной можно образовать кодовых слов. Из этих кодовых слов мы можем выбрать кодовых слов , чтобы сформировать код. Таким образом, блок из информационных бит отображается в кодовое слово длины , выбираемое из набора кодовых слов. Мы обозначим результирующий блоковый код, как код, а отношение определим как скорость кода. В более общем случае, если код имеет элементов, можно образовать кодовых слов. Подмножество из кодовых слов можно выбрать для передачи битовых информационных блоков. Кроме параметра скорости кода , важным параметром кодового слова является его вес, который равен числу ненулевых элементов, слова. В общем, каждое кодовое слово имеет свой собственный вес. Набор всех весов кода образует распределение весов кода. Когда все кодовых слов имеет одинаковый вес, код называется кодом с фиксированным весом или кодом с постоянным весом. Функции кодирования и декодирования включают арифметические операции суммирования и умножения, выполненные над кодовыми словами. Эти арифметические операции выполняются в соответствии с соотношениями, правилами для алгебраического поля, которое имеет своими элементами символы, содержащиеся в алфавите кода. Для примера, символы в двоичном алфавите равны 0 и 1; следовательно, поле имеет два элемента. В общем, поле состоит из набора элементов, над которыми выполняются две арифметические операции, именно, операции сложения и умножения, которые удовлетворяют следующим свойствам (аксиомам): Сложение 1. Набор замкнут относительно сложения, т.е. если , тогда . 2. Сложение ассоциативно, т.е. если и - элементы , тогда . 3. Сложение коммутативно, т.е. . 4. Набор содержит элемент, называемый нулевым, который удовлетворяет условию . 5. Каждый элемент множества имеет свой собственный отрицательный элемент. Следовательно если - элемент, то его отрицательный элемент обозначается . Вычитание двух элементов, такие как определено как . Умножение 1. Набор замкнут относительно умножения, т.е. если , то тогда . 2. Умножение ассоциативно, т.е. если и - элементы , тогда . 3. Умножение коммутативно, т.е. . 4. Умножение дистрибутивно со сложением, т.е.. 5. Набор содержит элемент, называемый единичным, который удовлетворяет уcловию для любого элемента . 6. Каждый элемент , исключая нулевой, имеет обратный элемент. Следовательно, если , тогда его обратный элемент определён как и. Деление двух элементов, обозначаемое как или , определено как . Мы очень свободно обращаемся с полями из вещественных чисел и полями из комплексных чисел. Эти поля могут иметь неограниченное число элементов. Однако, как было указано выше, коды строятся из полей с ограниченным числом элементов. Ограниченное поле с элементами обычно называют полем Галуа и обозначают . Каждое поле должно иметь нулевой элемент и единичный элемент – следовательно, простейшее поле – это . В общем, если является простым числом, мы можем построить ограниченное поле , состоящие из элементов . Операции суммирования и умножения над элементами из осуществляются по модулю и обозначается так . Например, таблицы сложения и умножения для таковы: Подобным образом, поле содержит набор, состоящий из элементов . Таблицы сложения и умножения для : В общем, ограниченное поле можно построить, только если - простое число или степень простого числа. Если - простое число, умножение и сложение базируются на арифметике по модулю , как сказано выше. Если , где - простое число, а - какое-либо целое, возможно расширить поле до поля . Последнее называется расширенным полем . Умножение и сложение элементов в расширенном поле базируется на арифметике по модулю . С этим кратким введением в арифметику операций, которые можно осуществлять над элементами кодовых слов, рассмотрим теперь некоторые базовые характеристики блоковых кодов. Предположим, что и - какие либо два кодовых слова в кодовом блоке. Мера разницы между кодовыми словами - число соответствующих элементов или позиций, в которых они различаются. Эта мера называется расстоянием Хемминга между двумя кодовыми словами и обозначается . Ясно, что при удовлетворяет условию. Наименьшее значение из набора для кодовых слов называется минимальным расстоянием кода и обозначается . Поскольку хеммингово расстояние является мерой различия между парами кодовых слов, оно, разумеется, имеет отношение к коэффициенту корреляции между соответствующими парами сигналов, генерируемыми кодовыми словами. Эта связь обсуждается в разделе 8.1.4. Помимо классификации кодов на двоичные и недвоичные можно также их классифицировать на линейные и нелинейные. Возьмем и - два кодовых слова в блоковом коде и , - какие-либо два скалярных элемента из определённого алфавита. Тогда код называют линейным, если и только если тоже является кодовым словом. Это определение подразумевает, что линейный код должен содержать кодовое слово из одних нулей. Как следствие, код с постоянным весом нелинейный. Предположим, что мы имеем двоичный линейный блоковый код, и пусть , , где - число кодовых слов. Для удобства пусть означает кодовое слово из одних нулей, т.е. и пусть означает вес -го кодового слова. Отсюда следует, что является хемминговым расстоянием между кодовыми словами и . Т.е. расстояние. В общем, расстояние между парой кодовых слов и просто равно весу кодового слова, сформулированного разностью между и . Поскольку код линейный, разность (что эквивалентно взятию суммы по двоичных кодовых слов) между и также является кодовым словом с весом, включенным в набор . Следовательно, распределение весов линейного кода полностью характеризует дистанционные свойства кода. Минимальное расстояние кода равно . (8.1.1) Определённое число элементарных понятий из линейной алгебры особенно полезны, когда имеем дело с линейными блоковыми кодами. В частности, набор из всех векторов с элементами формирует векторное пространство . Если мы выберем набор из линейно независимых векторов из и из них сформируем набор из всех линейных комбинаций этих векторов, то результирующий набор образует подпространство в , назовем его размерности . Любой набор из линейно независимых векторов в пространстве образует базис. Теперь рассмотрим набор из векторов , которые ортогональны к каждому вектору базиса (и, следовательно, они ортогональны ко всем векторам в ). Этот набор векторов также является подпространством и он называется нуль-пространством или ортогональным пространством к . Если размерность пространства равна , то размерность нуль-пространства равна . Если пользоваться терминами, предназначенными для двоичных блоковых кодов, векторное пространство состоит из двоичных векторов с элементами. Линейный код является ансамблем векторов с элементами, называемыми кодовыми словами, которые формируют подпространство в поле из двух элементов. Поскольку имеется кодовых слов в , базис для имеет кодовых слов. Это значит, что для конструирования линейных комбинаций требуется линейно независимых кодовых слов, которые формируют весь код. Нуль-пространство для образует другой линейный код, который состоит из кодовых слов блока длиной с информационными битами. Его размерность равна . В разделе (8.1.1) мы рассмотрим эти соотношения с большими подробностями.
|