Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Линейные коды

.doc
Скачиваний:
68
Добавлен:
17.04.2013
Размер:
83.46 Кб
Скачать

Лекция № .

Линейные коды.

Самый большой класс разделимых блочных кодов составляют систематические или линейные коды.

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

  1. 111

4. E = IGп,к = 0 100.101

Рассмотрим этап депозирования  S1, S2 … Sr;

а.) В процессе депозирования осуществляются проверки, идея которых в общем случае может быть представлена следующем образом :

k

Sj = bj  pijai  Sj = bj  bj’; j1r;

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

Покажем процесс исправления ошибки в произвольном разряде корректирующего кода.

  1. Согласно правилу построения проверочного синдрома

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 состоит из двух частиц матрицы П и единичной матрицы.

Данная методика построения проверочной матрицы является обобщающей (одинаковой для всех образующих матриц).

Т.о. процесс декодирования кодовых комбинаций (для линейного группового кода) состоит в следующем:

  1. Определение проверочного синдрома Si в соответствии с видом проверочной матрицы П.

  2. Если Si = 0 – комбинация принята верно, если Si0, произошла ошибка.

  3. Построение проверочной матрицы, которая устанавливает соответствие между значением Si и позиций, в которой произошла ошибка.

  4. Исправление (коррекция [инверсия]) ошибочной позиции.

Мы рассмотрели групповые линейные коды и процедуры кодирования и декодирования, в основе которых лежит построение порождающей (S) и проверочных матриц (H).

Наряду с решением вопроса построения линейного кода с заданной корректирующей способностью, существенным является вопрос об избыточности и простоте структурной реализации. С этой точки зрения линейные коды разделяются на совершенные (плотно упакованные) и несовершенные линейные коды.

1. Совершенные коды – коды с min количеством избыточных разрядов. [2r = k+r+1]

Пример для кодов, исправляющих одиночные разряды.

(l = 1)

2r > k+r,

k(количество информац.) r(количество проверочн.)

  1. 3

  2. 3

  3. 4 (7,4)

  4. 4

  5. 4 «совершенные» min избыточность: r/(k+2)

  6. 4

  7. 4

  8. 4 (15,11)

  9. 4

  10. 5

  11. 5

  12. 5

  13. 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 = EH  eH = S;

При отсутствие ошибок: Ẽ=E; S=0; отсюда EH=0; eH=S; т.к. E=Gn,k, то Gn,kH=0, и имеем Gn,kH=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=IG7,4=1010.101;

e =0010.000;

Ẽ = 1000.101

3. S=ẼH = 110 011

1000011 101 000

GH = 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 = IG7,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.101H = 101.

Структурная реализация линейных кодов и Хэмминга.

а) Кодирование

б) Декодирование

Модифицированный код Хэмминга.

Для исправления одиночной и обнаружения двойной ошибки, кроме проверок по контрольным позициям, следует проводить еще одну проверку на четность.

3 4

Тогда : b4= bi   ai ; Код (8, 4)

i=1 i=1 a4a3a2b3a1b2b1b4

S=EH;

4 4

S1=  bi   ai

i=1 i=1

S

S1

0

0

Нет ошибок

0

1

Одиночная ошибка

0

0

Двойная ошибка

?

1

Тройная ошибка

Заключение:

а) Рассмотрены групповые линейные коды

Дстоинства

б) Достаточно эффективны при малой кратности ошибок (как правило, t=1).

Недостатки

в) При ошибках большей кратности – резкое усложнение кодирующих и (особенно) декодирующих устройств.

г) Более совершенными являются циклические коды.

Соседние файлы в папке Лекции