Лекция: Алекс Лесли

В матричной форме систематическое кодирование задается порождающей матрицей Gk×n, тогда:

B1×n= A1×k Gk×n,

где B1× n= [ ] — вектор-строка кодового слова;

A1× k = [ ] — вектор-строка информационного слова;

Gk×n — порождающая матрица размером (kxn).

 

Порождающую матрицу Gk×n можно представить в виде:

Gk×n= [Ik×k Pk×r],

где Ik×k — единичная матрица по числу информационных символов;

Pk×r — правило формирования проверочных символов.

Заметим, что в матрице Pk×r включаются именно коэффициенты, которые и дают правило формирования проверочных символов.

Для рассмотренного ранее примера порождающая матрица будет иметь вид:

 

G4×7 =
1
1
             

Тогда можно определить любой вектор кодовой комбинации В по заданному вектору А, например:

Для A=[1010], найдем кодовое слово:

 

Напомним правила арифметики по модулю 2:

Сложение Умножение

 

 

B=[1010] =[1010101]

Проверим по правилу формирования проверочных символов:

,

,

.

Для любого систематического кода с порождающей матрицей Gk×n в интересах его декодирования определяет проверочную матрицу

 

Hr×n= [PTk×r Ir×r],

где Ir×r – единичная матрица;

PTk×r — транспонированная матрица правила формирования проверочных символов.

Каждый столбец матрицы Hr×n соответствует синдрому некоторого символа кодовой комбинации:

Первые k-столбцов – синдромам информационных символов, а последние r-столбцов – синдромам проверочных символов.

Единицы в каждой строке проверочной матрицы Hr×n показывают, какие из aj, информационные символы нужно сложить по модулю 2, чтобы получить соответствующие проверочные bi,, т.е. правило их формирования.

Процесс декодирования сводится к выполнению следующей операции:

,

где — вектор-строка размерностью 1 r, называемый синдромом кода;

— вектор-строка размерностью 1 n, характеризующий принятую кодовую комбинацию;

— транспонированная проверочная матрица.

Или

Если в принятой кодовой комбинации отсутствуют ошибки, то

Где 0=[0,0,…,0] – нулевой вектор-строка размерностью 1 r.

В противном случае C≠0.

Таким образом, декодирование систематических кодов основано на матричном умножении по модулю 2, которое осуществляется обычным образом, но с учетом правил умножения и сложения по модулю 2.

Проверочная матрица для рассмотренного ранее кода (7,4) будет иметь вид:

 

Pk×r =; [PTk×r Ir×r]=

 

Проведем декодирование принятой кодовой комбинации

=[1010101] при условии одиночной ошибки в четвертом разряде =[1011101]

Найдем матрицу синдромов для принятой комбинации с ошибкой :

=[1011 101] =[111]

Сопоставляя полученный синдром со столбцами проверочной матрицы или строками транспонированной матрицы, находим его соответствие синдрому четвертого информационного символа и приходим к выводу, что ошибка произошла в символе a4. Следовательно, в принятой ошибочной комбинации надо исправить символ a4 на противоположный, тогда получим кодовую комбинацию с исправленной ошибкой в четвертом разряде

=[101 101]

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

В нашем примере, если символы алфавита a и b расположить [a4a3a2a1b3b2b1], то синдром [111] указывал бы на седьмой разряд (отсчет разрядов ведется справа налево) кодового слова, т.е. на то, чтобы ошибка произошла в символе a4.

Пример: Самостоятельно проверить, что надо изменить в рассмотренном выше примере, чтобы код (7,4) можно было бы назвать кодом Хэмминга. Изменятся ли при этом порождающая и проверочная матрицы?

Таким образом, порождающая Gk×n и проверочная Hr×n матрицы обычно используются для построения кодеков. Поскольку между этими матрицами существует однозначное соответствие

Gk×n= [Ik×k Pk×r] и Hr×n= [PTk×r Ir×r], то в принципе организовать кодирование и декодирование можно с помощью одной из них.

Тогда, при использовании линейных (систематических) кодов, нет необходимости хранить в памяти декодера все разрешенные кодовые комбинации Np=, а это — двоичных символов), и подмножества запрещенных кодовых комбинаций(N-Np) (а это — двоичных символов), для организации декодирования по методу максимального правдоподобия. Достаточно для кодирования и синдромного декодирования запомнить проверочную Hr×n матрицу, которая занимает объем памяти (r×n) ячеек.

 

Алекс Лесли

еще рефераты
Еще работы по истории