Лекции / Линейные коды
.docЛекция № .
Линейные коды.
Самый большой класс разделимых блочных кодов составляют систематические или линейные коды.
k r
-
a1
a2
a3
ai
…
ak
b1
b2
bi
br
n
Линейными называются коды, в которых проверочные символы представляют собой линейные комбинации информационных символов.
Для двоичных кодов в качестве линейной операции используются сложение по mod 2.
bj = ai
(основаны на применении мат. аппарата алгебры Жегалкина (
Основное свойство линейного кода: сумма(разность) кодовых комбинаций является также разрешённой кодовой комбинацией.
Пример: [ ] - разрешённая
[ ] - разрешённая
=
[ ] - разрешённая
Отсюда – сумма(разность) произвольного числа разрешённых кодовых комбинаций является разрешённой кодовой комбинацией.
Линейные коды образуют алгебраическую группу по отношению к операции сложения по mod 2. В этом смысле они являются групповыми кодами.
Свойство группового кода: (dmin) Минимальное кодовое расстояние между векторами линейного кода равно линейному весу ненулевых кодовых векторов.
Для построения групповых кодов (т.е. перехода от информационных разрядов к полному кодовому слову, включающему также и проверочные разряды, целесообразно использовать специальные матрицы: n * k = (k + r) * k/
Порождающая матрица может быть представлена в виде 2х матриц И(информационной) и П(проверочной) ||G|| = |[И]| |[П]|
a11 a12 … a1k p11 p12 … p1r
Gn,k = a21 a22 … a2k p21 p22 … p2r k
k ……………… ………………..
ak1 ak2 … akk pk1 pk2 … pkr
k r
n
Получение кодовой комбинации осуществляется путём суммирования элементов ||И|| и параллельного суммирования строк ||П||.
1). На практике установлено, что в качестве информационной матрицы ||И|| удобно брать единичную матрицу в канонической форме:
100…0
Iи = 010…0
………
000…1
2). Строчки образуют матрицы ||C|| = ||И|| ||П|| представляют собой “К” комбинаций(разрешённых) искомого кода. Остальные комбинации кода строятся при помощи образующей матрицы.
Пример
a1 1 1000 111 011 Необходимо закодировать
a2 0 0100 110 101 информационную комбинацию:
a3 1 0010 101 110 1011
a4 1 0001 011 111
Полученное значение проверочных
1011 001 разрядов.
В общем случае: a1, a2, a3, a4 – информационная кодовая комбинация в общем виде:
a1 a2 a3 a4 b1 b2 b3 b1 = a1 a2 a3 Для заданной образующей матрицы
b2 = a1 a2 a4
b3 = a1 a3 a4
В самом общем случае алгоритм образования проверочных символов b1…b2 по известной информационной части a1, a2, … ak может быть записан следующем образом :
k
b1 = p11a1 p21a2 … pk1ak = pi1ai
i=1
k
b2 = p12a1 p22a2 … pk2ak = pi2ai
i=1
----------------------------------------------
k
bj = p1ja1 p2ja2 … pkjak = pijai
i=1
----------------------------------------------
k
br = p1ra1 p2ra2 … pkrak = pirai
i
Рассмотрим теперь метод построения образующей матрицы
Из свойств группового следует, что
W dmin
С другой стороны Wi = Wнi + Wпi dmin
Wп dmin – Wн
Т.к. вес всех сторон ||Н|| : W11=1, то имеем
Wп dmin – 1, dmin t+1 dmin –1 t
Wп dmin – 1 t Wп t
Необходимые и Отсюда: для кодов, обнаруживающих t – кратные ошибки:
достаточные требования Wп (строки) t
для построения проверочной для кодов, исправляющих t – кратные ошибки :
матрицы Wп (строки) 2t
Рассмотрим частные случаи:
1.) Коды, обнаруживающие одиночную ошибку.
dmin = 2 ( N=15, t=1 )
Wп 1
Единая матрица для dmin 2
100…0 1 k k
010…0 1 b1 = aip1i = ai Не что иное, как
001…0 1 i=1 i=1 проверка на четность.
000…1 1
И П
Во всех комбинациях построенного кода – четное.
Для dmin 3 проверочная матрица не может быть представлена в общей (единой) форме, т.к. для dmin 3 r зависит от k.
Построение кодовой комбинации E в матричной форме имеет вид:
образующая матрица
E = IGn,k , где I – вектор длины k, компонентами которой являются
информационные разряды.
кодовый вектор информационный
вектор
Пример
Построить образующую матрицу и кодовую комбинацию для линейного кода, исправляющие одиночные ошибки при передаче собщений.
1. t = 1; N = 16;
2. dmin = 3; Wп = 2; k = [ log15] = 4; 2r > k + r r = 3;
3. Gп,к = G7,4 =
a1 ..a4 b1.b3
1000 011 b1 = a2 a3 a4
0100 101 b2 = a1 a3 a4
0010 110 b3 = a1 a2 a4
-
111
4. E = IGп,к = 0 100.101
Рассмотрим этап депозирования S1, S2 … Sr;
а.) В процессе депозирования осуществляются проверки, идея которых в общем случае может быть представлена следующем образом :
k
Sj = bj pijai Sj = bj bj’; j1r;
i=1
новый старый из канала до передачи
проверочные символы
б.) Sj – называется проверочным синдромом или синдромом ошибок и имеет число разрядов равное: r ( S1, S2 …Sr )
Если w(Sj’) = 0, но нет ошибок;
w(Sj) 0, есть ошибки.
в.) Рассмотрим процедуру исправления ошибки по виду Sj (из предыдущего примера
E = 0101.101)
Групповой код построен по матрице
1000.011
0100.101 = G7,4
0010.110
0001.111
Покажем процесс исправления ошибки в произвольном разряде корректирующего кода.
-
Согласно правилу построения проверочного синдрома
S1’ = (b1,a2,a3,a4)
S2 = (b2,a1,a3,a4)
S3 = (b3,a1,a2,a4)
Определим соответствие между ошибкой в определенном разряде принятой комбинации и видом проверочного синдрома. (Напоминаю, что для удобства полученную кодовую комбинацию будем рассматривать как суперпозицию (данном случае, как сумму по mod2) правильной (разрешенной, передаваемой) кодовой комбинации A и вектора одиночной ошибки e).
2. Пусть информация принята верно, т.е. ни один из разрядов ai, bj не исказился. В этом случае b1= a2 a3 a4 сохранится равенство для всех трех строчек, а следовательно Si = 0. Это подтверждает необходимый и достаточный признак принятия правильной информации.
3. Строем проверочную матрицу H, для которой строки – возможные вектора ошибок, а столбцы – проверочные синдромы соответствующие данной ошибке.
e1 S1
e2 S2
. .
. .
. .
en Sn
1 0 0 0 0 0 0 0 1 1 Корректирующая матрица H:
ошибка 0 1 0 0 0 0 0 1 0 1 iая строка корректирующей
в информационном 0 0 1 0 0 0 0 1 1 0 матрицы H содержит синдром,
разряде 0 0 0 1 0 0 0 1 1 1 = H который соответствует ошибке
в i-ом разряде кодовой
ошибка 0 0 0 0 1 0 0 1 0 0 комбинации.
в проверочном 0 0 0 0 0 1 0 0 1 0
разряде 0 0 0 0 0 0 1 0 0 1
a1a2a3a4 b1b2b3 S1S2S3
Для e1 из выражений для Si находим S1, S2, S3.
Подчеркнуть, что Si=0, если ошибочная комбинация не попадает в систему проверки для Si.
Мы видим, что проверочная матрица H состоит из двух частиц матрицы П и единичной матрицы.
Данная методика построения проверочной матрицы является обобщающей (одинаковой для всех образующих матриц).
Т.о. процесс декодирования кодовых комбинаций (для линейного группового кода) состоит в следующем:
-
Определение проверочного синдрома Si в соответствии с видом проверочной матрицы П.
-
Если Si = 0 – комбинация принята верно, если Si0, произошла ошибка.
-
Построение проверочной матрицы, которая устанавливает соответствие между значением Si и позиций, в которой произошла ошибка.
-
Исправление (коррекция [инверсия]) ошибочной позиции.
Мы рассмотрели групповые линейные коды и процедуры кодирования и декодирования, в основе которых лежит построение порождающей (S) и проверочных матриц (H).
Наряду с решением вопроса построения линейного кода с заданной корректирующей способностью, существенным является вопрос об избыточности и простоте структурной реализации. С этой точки зрения линейные коды разделяются на совершенные (плотно упакованные) и несовершенные линейные коды.
1. Совершенные коды – коды с min количеством избыточных разрядов. [2r = k+r+1]
Пример для кодов, исправляющих одиночные разряды.
(l = 1)
2r > k+r,
k(количество информац.) r(количество проверочн.)
-
3
-
3
-
4 (7,4)
-
4
-
4 «совершенные» min избыточность: r/(k+2)
-
4
-
4
-
4 (15,11)
-
4
-
5
-
5
-
5
-
5
несовершенные коды
2. С точки зрения простой структурной реализации:
экономические коды коды с повышенной
с min количеством проверок на четность корректирующей способностью
При построении проверочной матрицы П , условие Wп 2l.
Wп = min: 2l, 2l +1, 2l +2, … Wп = max: r, r-1, r-2 … Min количество проверок на четность, Наиболее высокие корректирующие
min количество аппаратурных затрат способности.
Представление операции декодирования в матричной форме.
а) ẼH = S – из условия построения проверочного синдрома.
б) ẼH = (E e)H = EH eH = S;
При отсутствие ошибок: Ẽ=E; S=0; отсюда EH=0; eH=S; т.к. E=Gn,k, то Gn,kH=0, и имеем Gn,kH=0, условие построение H по известной Gn,k.
Пример:
1. 1000 011 011
Gn,k= G7,4 = 0100 101 ; H = 101 ,
0010 110 111
0001 111 100
010
001
2. I = 1010 E=IG7,4=1010.101;
e =0010.000;
Ẽ = 1000.101
3. S=ẼH = 110 011
1000011 101 000
GH = 0100101 110 = 000 = 0.
0010110 111 000
0001111 100 000
010
001
Важным вопросом на практике является структурная реализация кодирующих и декодирующих устройств.
Поэтому (для сравнения) рассмотрим коды, Хэмминга, обладающие аналогичной корректирующей способностью, но с точки зрения структурной реализации дающие несколько другие результаты.
Матричное представление кода Хэмминга.
а) а4 а3 а2 а1 b3 b2 b1 a4 a3 a2 b3 a1 b2 b1
1 0 0 0 1 1 1 1 0 0 1 0 1 1
0 1 0 0 1 1 0 G7,4x = 0 1 0 1 0 1 0
0 0 1 0 1 0 1 0 0 1 1 0 0 1
0 0 0 1 0 1 1 0 0 0 0 1 1 1
a1 a2 a3 b1 a4 b2 b3
E = IG7,4 = (0101) G7,4x = 0 1 0 1 1 0 1
a1 a2 a3 b1 a4 b2 b3 S1 S2 S3
1 0 0 0 0 0 0 1 1 1
0 1 0 0 0 0 0 1 1 0
0 0 1 0 0 0 0 1 0 1
0 0 0 1 0 0 0 1 0 0
0 0 0 0 1 0 0 0 1 1
0 0 0 0 0 1 0 0 1 0
0 0 0 0 0 0 1 0 0 1
б) Этап декодирования.
111 Из определения H, в которой каждая строка равна
100 синдрому ошибки.
101
S = ẼH = Ẽ 100
010
010
001
S = 0111.101H = 101.
Структурная реализация линейных кодов и Хэмминга.
а) Кодирование
б) Декодирование
Модифицированный код Хэмминга.
Для исправления одиночной и обнаружения двойной ошибки, кроме проверок по контрольным позициям, следует проводить еще одну проверку на четность.
3 4
Тогда : b4= bi ai ; Код (8, 4)
i=1 i=1 a4a3a2b3a1b2b1b4
S=EH;
4 4
S1= bi ai
i=1 i=1
S |
S1 |
|
0 |
0 |
Нет ошибок |
0 |
1 |
Одиночная ошибка |
0 |
0 |
Двойная ошибка |
? |
1 |
Тройная ошибка |
Заключение:
а) Рассмотрены групповые линейные коды
Дстоинства
б) Достаточно эффективны при малой кратности ошибок (как правило, t=1).
Недостатки
в) При ошибках большей кратности – резкое усложнение кодирующих и (особенно) декодирующих устройств.
г) Более совершенными являются циклические коды.