10.1  Способи задання лінійних кодів. Твірна матриця лінійного блокового коду

 

Найпростіший спосіб задання лінійних кодів – табличний, при якому кожній інформаційній послідовності ставиться у відповідність кодове слово з таблиці кодів. Приклад такого задання коду для послідовностей завдовжки k=3 символи наведений у табл. 3.2.

Таблиця 3.2

000          001          010          011          100          101          110          111

0000        0011        0101        0110        1001        1010        1100        1111

 

Недоліком такого способу подання кодів є те, що при більших k розмір кодової таблиці виявляється дуже великим.

Іншим способом задання лінійних блокових кодів є система перевірних рівнянь, що визначає правила знаходження перевірних символів залежно від інформаційних. Приклад такого задання:

 

де r1, r2, r3, r4  - перевірні (контрольні) символи.

Проте найзручнішим і наочним способом задання лінійного блокового коду є його подання за допомогою твірної  матриці.

 

.                   (3.2)

                                      одинична                  перевірна

                               підматриця Ikxk       підматриця Pkx(n-k)

Визначення.  Лінійний блоковий систематичний (k, n)- код повністю визначається матрицею G розміром kn з двійковими матричними елементами. При цьому кожне кодове слово є лінійною комбінацією рядків матриці G, а кожна лінійна комбінація рядків G - кодовим словом.

Нехай m=(m1, m2, ... , mk) – блок повідомлення. Тоді кодовим словом буде послідовність u=mG, де для i=1, 2, ..., k  ui =mi; для i=k+1, ..., n  ui= m1p1i + m2p2i + ...+ +mkpki; i=1, 2, ..., n-k - номер стовпця перевірної частини Pk(n-k) твірної матриці Gkn.

Приклад 1  Розглянемо найпростіший лінійний блоковий (4, 7)-код, заданий твірною матрицею вигляду

.

Кодові слова даного коду знаходяться так:

u=mG=(m1, m2, m3, m4)=(m1, m2, m3, m4, m1+m3+m4, m1+m2+m3, m2+m3+m4).

Звідси випливає система перевірних рівнянь коду

 

Закодуємо, наприклад, послідовність m=(1011):

(1011)=().