Линейно групповые коды (ЛГК)
Линейными называются коды, в которых проверочные и информационные символы связаны значениями с законами линейной комбинаторики. Т.е. с помощью определённой линейной комбинации можно построить кодовую комбинацию.
Свойства ЛГК:
1) Сумма (разность) кодовых векторов даёт вектор принадлежащий данному коду.
ЛГК относят к систематическим кодам. Минимальное кодовое расстояние равно минимальному весу ненулевых кодовых векторов. ЛГК обозначается (П, nu) и задаются с помощью производящих матриц. Производящая матрица строится, как результат слияния информационной (И) и проверочной (П) матриц.
![]()
Матрица
имеет nk
– столбцов и
nu
– строк.
В качестве П выбирают комбинации один и ноль. При этом исходят из следующих соображений: чем больше единиц в матрице П, тем оптимальней считается матрица в точке обнаружения вероятности ошибок.
Вес каждой строки матрицы П WП = d0 – 1. Т.о. пораждающая матрица С приводится к следующему виду:

Строки производящей матрицы представляют собой nu комбинации искомого кода. Остальные комбинации кода можно получить двумя способами:
-
Их можно получить как результат сложения строк производящей матицы составленных в различных сочетаниях.
-
ЛГК можно построить по производящей матрице, используя информационную часть кода, путём суммирования строк матрицы П.
П
ример:
Построить производящую матрицу для
ЛГК,
способную исправлять
одиночную ошибку при передачи кода на
16
сообщений.
nu = 4; nk = log(nu + 1 + log(nu + 1)) = 3
d0 = 3; n = 7 – значность кода
![]()
(единичная
матрица)


Пример: Построить образующую матрицу ЛГК, способную передавать 100 сообщений и исправлять одиночную ошибку.
N = 100 =
; nu
= 7; nk
= 4; n = 11;
Строим производящую матрицу:
![]()


Пример: Построить групповой код по заданной производящей матрице

Выписываем информационные части кода:
1) 0000 5) 0010
2) 1000 6) 1010
-
0
100 7)
0110 и т.д. -
1100 8) 1110
К каждой информационной части строим конкретный разряд:
-
000
-
111 – берём первую строку матрицы П
-
110 – 2 – ю
-
111 – складываем первую и вторую строку
110
001
-
101
-
111
101
010 - 1 - я + 3 - я
-
110
101
011 - 2 - я + 3 - я
-
111
110
001
100
Декодирование ЛГК
В процессе декодирования
осуществляется проверки по определённой
схеме. Число проверок равно числу
контрольных разрядов. S(S1,
S2,
…,
)
– строится
проверочный вектор, который называется
синдром. Если вес синдрома равен нулю,
то комбинация принята правильно. Если
какой – либо разряд содержит единицу,
то имеется ошибка. Каждому разряду
соответствует свой синдром. Вид синдрома
определяется с помощью производящей
матрицы. Набор синдромов содержится в
специальной проверочной матрице H,
которая строится из матрицы H
= [ПТInk]
Ink
-
единичная
матрица. Столбцы матрицы представляют
значение синдрома для каждого разряда.
Схема проверок: принятый сигнал vx представляем в виде информационной части
vx = (a1, a2, …,an, P1, P2,…,Pm)
Схема проверок строится:
-
Проверка S1
Суммируется разряд P1 и те разряды из информационной части a1 + …+ an, номера которых совпадают с номерами ненулевых разрядов первого столбца матрицы П.
2) Проверка S2
Суммируется разряд P2 и те разряды информационной части a1 + …+ an, номера которых совпадают с номерами ненулевых разрядов второго столбца матрицы П.
Пример: Задана производящая матрица C7,4 и составим схему проверок





И П
S1 = P1 + a2 + a3 + a4
S2 = P2 + a1 + a3 + a4
S3 = P3 + a1 + a2 + a3
Строим H:


Если разряды синдрома соответствуют одному столбцу матрицы Н, т.е. S1 = 0, S2 = 1, S3 = 1, то ошибка в первом разряде.
Пример: Пусть имеется информационная часть ЛГК, которая исправляет одиночную ошибку. Дана производящая матрица С7,4. Получим корректирующие разряды, для этого сложим первую и вторую строку, следовательно, полный код.
a1a2 a3a4P1P2P3
v1 = 1100110 vx = 1101110
Cхема проверок осталось такой же
Проведём проверки:
S

S2 = 1 + 1 + 0 + 0 = 0
S3 = 0 + 1 + 1 + 0 = 0
П

S1 = 1 + 1 + 0 + 1 = 1
S2 = 1 + 1 + 0 + 1 = 1 - это соответствует ошибке в четвёртому разряду
S3 = 0 + 1 + 1 + 1 = 1
