Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная СГВМ / Контрольная_СГВМ_ПугачВ.doc
Скачиваний:
60
Добавлен:
01.04.2014
Размер:
185.34 Кб
Скачать

Эквивалентность линейных кодов.

Если V – пространство строк матрицы G, то код V’ эквивалентен коду V тогда и только тогда, когда V’ – пространство строк матрицы G’, полученной из матрицы G перестановкой столбцов.

Любая порождающая матрица G комбинаторно-эквивалентна (если одна матрица может быть получена из другой путем комбинации элементарных операций над строками и перестановок столбцов, то эти две матрицы называются комбинаторно-эквивалентыми) некоторой матрице G’, имеющей ступенчатую каноническую форму.

Матрица G’ может быть получена из матрицы G следующим образом: начиная с первой строки с каждой из k строк матрицы G произведем следующие операции:

В i-ой строке найдется по меньшей мере один ненулевой элемент, поскольку строки линейно независимы. Предположим, что первый отличный от нуля элемент находится в j-ом столбце. Разделим каждый элемент i-ой строки на aij. В результате новый элемент матрицы aij’ станет равен единице.

К каждой l-ой строке (l!=i) прибавим i строку, умноженную на (-alj). В результате в j-ом столбце i-ая строка будет содержать единицу, а все остальные строки - нули.

После того, как эти операции будут проделаны над каждой строкой матрицы, получится матрица G’, содержащая k столбцов, каждый из которых содержит единицу и k-1 нулей, причем единица появится обязательно в каждой строке.

Поскольку G’ может быть получена из G с помощью операций над строками, то они порождают один и тот же код. Далее перестановкой столбцов можно сгруппировать слева k столбцов, содержащих единицы в качестве первых ненулевых элементов, в результате чего получается матрица G’’ следующего вида:

Пусть v=(a1,a2,…,ak) – произвольный набор длины k. Рассмотрим вектор u, являющийся линейной комбинацией строк матрицы G’’ с элементом ai в качестве i-го коэффициента: u=vG’’=(a1,a2,…,ak,c1,c2,…,cn-k), где

.

Таким образом, первые k компонент кодового вектора могут быть произвольно выбранными информационными символами, а каждая из последних n-k компонент является линейной комбинацией первых k компонент. Благодаря этому кодирование значительно упрощается. Код такого типа называется систематическим; первые k компонент называются информационными символами, а последние n-k компонент называются избыточными или проверочными символами. Каждый линейный код эквивалентен систематическому коду.

Между матрицами G и H существует связь, которая может быть сформирована следующей теоремой.

Теорема 2. Если V – пространство строк матрицы G=[IkP], где Ik – единичная матрица размерности k x k, а P – матрица размерности k x (n-k), то V является нулевым пространством матрицы H=[-PTIn-k], где In-k – единичная матрица размерности (n-k) x (n-k).

Декодирование линейных кодов.

Пусть V – линейный (n,k)-код, h – нулевой вектор и h2,h3,…,hqk – остальные кодовые векторы. Тогда таблица декодирования можно составить следующим образом. Кодовые векторы располагаются в виде строки с нулевым вектором слева. Затем один из наборов, не содержащийся в этой строке и имеющий разрядность n, например q1 помещается под вектором. Далее строка заполняется так, чтобы под каждым кодовым вектором hi помещался вектор g1+hi. Аналогично в первый столбец очередной строки помещается вектор g2 и строка заполняется таким же способом. Процесс продолжается до тех пор, пока каждый возможный набор длины n не появится где-нибудь в таблице. Данная таблица называется стандартным расположением и совпадает с таблицей смежных классов.

Теорема 3. Если стандартное расположение используется как таблица декодирования для блокового кода, то по полученному вектору v будет правильно декодирован переданный вектор u тогда и только тогда, когда набор ошибок v-u является образующим смежного класса.

Доказательство: Если v-u=gi, где gi – образующий i-го смежного класса, то вектор v=gi+u должен находиться в стандартом расположении в i-м смежном классе под кодовым словом u и поэтому будет правильно декодирован. Если же вектор v-u не является образующим смежного класса, то вектор v должен находиться в некотором классе j с образующим gj. Тогда вектор v расположен в j-й строке, но не под вектором u, потому что v!=gj+u.

Другим важным случаем декодирования линейных кодов является синдромное декодирование.

Соседние файлы в папке Контрольная СГВМ