Когда речь идет о линейных кодах, кодовые комбинации принято называть кодовыми векторами (КВ).
Линейный код обычно обозначают как
, где
– значность КВ,
– число информационных символов. Следовательно, число проверочных (контрольных) символов
.
Построение линейного
начинается с выбора числа информационных разрядов в кодовых векторах. Это число выбирается, исходя из требуемого объема кода
, т.е. максимального числа сообщений, которое требуется передавать.
В случае передачи двоичным кодом величина
должна удовлетворять неравенству:
(2.9)
(единица вычитается из
потому, что нулевая комбинация обычно не используется при передаче, т.к. не изменяет состояния канала).
После выбора
определяется число контрольных разрядов
, необходимое для получения требуемой корректирующей способности кода.
Если требуется исправлять все одиночные ошибки (кодовое расстояние кода
), величина
выбирается из следующих соображений. Под действием помех может быть искажен любой символ в n-значном КВ, т.е. для каждого кодового вектора возможно
исходов передачи (
учитывает правильную передачу). С помощью контрольных символов нужно различать все возможные исходы передачи. Это возможно, если выполняется условие:
, (2.10)
где
– число сочетаний из
по 1.
Уравнение (2.10) является трансцендентным относительно
, поэтому при небольших
величину
определяют простым подбором, принимая минимальное значение
, удовлетворяющие (2.10).
При больших
для определения
при
можно использовать эмпирическое соотношение:
, (2.11)
где
– знак округления до ближайшего большего числа.
Если необходимо исправлять не только все единичные, но и все двойные независимые ошибки, величина
должна выбираться в соответствии с условием:
(2.12)
После определения
составляется образующая матрица, состоящая из
строк и
столбцов. В общем виде образующая матрица имеет вид:
(2.13)
Кодовые векторы, входящие в образующую матрицу, являются исходными разрешенными. Поскольку двоичный линейный код является групповым по сложению, остальные разрешенные КВ получаются путем суммирования по модулю 2 строк образующей матрицы сначала попарно, затем по три, наконец, всех
-строк.
В качестве строк образующей матрицы могут быть взяты любые КВ, отвечающие следующим условиям. Они должны быть:
1) n -значными;
2) отстоящими друг от друга на заданное кодовое расстояние;
3) ненулевыми;
4) иметь вес не менее заданного кодового расстояния кода;
5) линейно-независимыми.
Последним шагом в построении линейного кода является составление проверочной (контрольной) матрицы, имеющей n столбцов и m строк. В общем виде контрольная матрица имеет вид:
(2.14)
Элементы
, составляющие контрольную матрицу, представляют собой элементы КВ, ортогональных любым разрешенным кодовым векторам. Если обозначить через V -разрешенные КВ данного линейного кода, а через U -вектор контрольной матрицы, то условие ортогональности КВ V и U в математической форме записывается так:
, (2.15)
где
и
,
, – соответственно, элементы разрешенных КВ и векторов контрольной матрицы.
Кроме того, что любой вектор контрольной матрицы должен быть ортогонален любому разрешенному КВ, матрица
в целом должна удовлетворять следующему требованию: в контрольной матрице не должно быть нулевых и одинаковых столбцов.
После построения контрольной матрицы линейный код является полностью определенным. На этапе кодирования КВ формируется так, чтобы он был ортогонален каждому из векторов контрольной матрицы, а на этапе декодирования принятый КВ, возможно содержащий ошибки, проверяется на ортогональность векторам матрицы H.
Пример
Построить линейный
-код, позволяющий исправлять все одиночные ошибки, если требуемый объем кода
.
Решение.
1. Определяем требуемое число информационных разрядов. Согласно (2.9) имеем:
,
, откуда
.
2. В соответствии с (2.11) определяем требуемое число контрольных разрядов:
,
.
Следовательно,
, а код имеет формат (7, 4).
3. Составляем образующую матрицу
.
Так как линейный код должен исправлять однократные ошибки, то кодовое расстояние между комбинациями образующей матрицы должно удовлетворять условию (2.8):
. Учитывая, что векторы образующей матрицы (2.13) являются разрешенными, в дальнейшем на основании условия ортогональности векторов V и U подбираются коэффициенты
так, чтобы в контрольной матрице не было нулевых и одинаковых столбцов. В результате выполнения этих действий получена контрольная матрица (2.16). (При выполнении контрольной работы матрица Н будет задана.)
(2.16)






