Теория групповых кодов
Задача построения группового кода формулируется так же, как и постановка общей задачи кодирования. Ее решение начинается с очевидного этапа: с определения числа избыточных элементов по нижней границе Хемминга (формула 10). Однако построить групповой код с избыточностью, определяемой подобным образом, удается не всегда. Обычно при dmin ≤ 4 можно воспользоваться нижней границей Хемминга. В ряде случаев для достижения dmin = 5 расчетную избыточность, увеличивают на один элемент, а для достижения dmin = 7 – на два элемента.
На втором этапе решается задача записи всех требуемых M = 2m кодовых комбинаций. Можно сразу же записать нулевую кодовую комбинацию
(n = m + k), так как в группе должен быть нулевой элемент. Затем записывается некоторое число q ненулевых комбинаций. Далее, используя эти q комбинаций, построим дополнительные комбинации, применяя операцию G = mod2 к любой паре, тройке и т. д. из комбинаций a1– aq. Процедуру получения дополнительных кодовых комбинаций можно формально представить так:
C1a1 ⊕ C2a2 ⊕ C3a3 ⊕ …⊕ Ciai ⊕ … ⊕ Cqaq, (1)
где Ci = 0 или Ci= 1.
В результате все дополнительные комбинации можно считать рабочими, так как они будут новыми равноправными элементами группы.
Количество дополнительных комбинаций MДОП может быть получено в результате выполнения процедуры (1):
Общее количество рабочих комбинаций равно
Так как по условию надо иметь в коде MРАБ = 2m рабочих комбинаций, то q = m.
Для построения группового кода с параметрами MРАБ = 2m и заданным минимальным кодовым расстоянием dmin достаточно, кроме нулевой комбинации, записать q = m ненулевых, которые будут являться базовыми. Эти ненулевые комбинации a1 – aq, однако, нельзя выбирать произвольно. Базовые комбинации должны удовлетворять следующим условиям.
- Все базовые комбинации должны быть ненулевыми и различными.
- При реализации процедуры (1) не должны получаться исходные комбинации из числа a1– aq, так как это приведет к получению a0 еще раз. То есть
- Так как в число рабочих комбинаций входит нулевая a0, то для получения кода с заданным значением dmin необходимо, чтобы любая базовая комбинация имела вес (вес комбинации – число единиц в ней).
- Число отличающихся разрядов у любой пары базовых комбинаций не должно быть меньше dmin.
C1a1 ⊕ C2a2 ⊕ C3a3 ⊕ …⊕ Ciai ⊕ … ⊕ Cqaq ≠ 0 (2)
при любых значениях коэффициентов, кроме C1 = C2 =C3 =…= Ci =…= Cq = 0. Все базовые комбинации, удовлетворяющие условию (2), называются линейно независимыми.
Базовые кодовые комбинации, удовлетворяющие условиям 1-4, принято называть базисом группового кода и записывать в виде матрицы, строки которой являются базовыми кодовыми комбинациями:
(1) |
Матрицу V называют порождающей (генераторной).
Матрица V порождает несистематический код, в котором нет четкого различения информационных и избыточных элементов, что не очень удобно для практического применения. Однако можно записать порождающую матрицу V для систематического кода, в котором первые левые m элементов будут информационными, а последующие k – избыточными.
В матрице (1) всегда можно переставить столбцы независимо друг от друга так, что на первых m позициях окажутся только информационные элементы. Расстояние dmin при этом не изменится. В итоге получим так называемую каноническую форму порождающей матрицы:
(2) |
Пример
Построить групповой код с параметрами M = 8 и dmin = 3.
Определим сначала необходимое число избыточных элементов.
Код не имеет однозначной записи кодовых комбинаций.
Строки порождающей матрицы удовлетворяют условиям 1-4, и поэтому могут быть базисом кода. Дополнительные кодовые комбинации найдем суммированием по модулю два базисных:
a4 = a1 ⊕ a2 = 010011,
a5 = a1 ⊕ a3 = 011110,
a6 = a2 ⊕ a3 = 001101,
a7 = a1 ⊕ a2 ⊕ a3 = 101011.
Построим порождающую матрицу в каноническом виде (ее можно получить из V перестановкой столбцов):
Основной задачей, которая решается при построении группового кода, является нахождение порождающей матрицы путем подбора. Однако существуют частные разновидности групповых кодов, в которых порождающие матрицы записываются по формализованным алгоритмам. К таким кодам относятся коды Рида-Мюллера, коды на базе матриц Адамара, коды Макдональда и другие. Некоторым недостатком этих кодов является возможность получения только четного минимального кодового расстояния dmin = 2b, b = 1,2,3,….