Опубликован: 11.04.2007 | Доступ: свободный | Студентов: 6067 / 2328 | Оценка: 4.37 / 4.24 | Длительность: 11:19:00
Лекция 10:

Групповые коды

< Лекция 9 || Лекция 10: 123 || Лекция 11 >
Аннотация: Объясняется, какой блочный код называется групповым. Математическое обоснование выводов. Упражнения для самопроверки. Совершенные и квазисовершенные коды. Их свойства. Полиномиальные коды. Частный случай полиномиальных кодов – циклические коды. Очень хорошее и доходчивое объяснение материала характерно для данной лекции

Множество всех двоичных слов a=a_1\ldots a_m длины m образует абелеву (коммутативную) группу относительно поразрядного сложения.

Пусть E - кодирующая m\times n -матрица, у которой есть m\times m -подматрица с отличным от нуля определителем, например, единичная. Тогда отображение a\rightarrow aE переводит группу всех двоичных слов длины m в группу кодовых слов длины n.

Предположим, что a=a_1\ldots a_m=a'+a". Тогда для b=b_1\cdots b_n=aE, b'=a'E, b"=a"E, получаем

b_j = a_1e_{1j}+a_2e_{2j}+\cdots+a_me_{mj} =
= (a_1'+a_2')e_{1j}+(a_2'+a_2")e_{2j}+\cdots+(a_m'+a_m")e_{mj}
= b_j'+b_j",
т.е. b=b'+b". Следовательно, взаимно-однозначное отображение группы двоичных слов длины m при помощи заданной матрицы E сохраняет свойства групповой операции, что означает, что кодовые слова образуют группу.

Блочный код называется групповым, если его кодовые слова образуют группу.

Если код является групповым, то наименьшее расстояние между двумя кодовыми словами равно наименьшему весу ненулевого слова.

Это следует из соотношения d(b_i,b_j)=w(b_i+b_j).

В предыдущем примере наименьший вес ненулевого слова равен 3. Следовательно, этот код способен исправлять однократную ошибку или обнаруживать однократную и двойную.

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

Такие строки ошибок переводят одно кодовое слово в другое.

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

В рассмотренном примере вероятность ошибки равна 4p^3q^3+3p^2q^4.

Рассмотрим задачу оптимизации декодирования группового кода с двоичной матрицей кодирования E. Требуется минимизировать вероятность того, что D(T(aE))\ne a.

Схема декодирования состоит из группы G всех слов, которые могут быть приняты ( \#G=2^n ). Так как кодовые слова B образуют нормальную (нормальность следует из коммутативности G ) подгруппу G, то множеству G можно придать структуру таблицы: будем записывать в одну строку те элементы G, которые являются членами одного смежного класса G по B. Первая строка, соответствующая нулевому слову из G, будет тогда всеми кодовыми словами из B, т.е. b_0, b_1, \ldots, b_{2^m-1}. В общем случае, если g_i\in G, то строка, содержащая g_i (смежный класс g_iB ) имеет вид b_0+g_i, b_1+g_i, \ldots, b_{2^m-1}+g_i.

Лидером каждого из таких построенных смежных классов называется слово минимального веса.

Каждый элемент g из G однозначно представляется в виде суммы g_i+b_j, где g_i\in G - лидер соответствующего смежного класса и b_j\in B.

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

Если в рассматриваемой таблице в первом столбце записать лидеры, то полученная таблица называется таблицей декодирования. Она имеет вид:

\centerline{\vbox{\offinterlineskip\halign{&\strut\quad#\hfil\cr
b_0&           b_1&               b_2&     \cdots& b_{2^m-1}\cr
g_1&           g_1+b_1&           g_1+b_2& \cdots& g_1+b_{2^m-1}\cr
\cdots&        \cdots&            \cdots&  \cdots& \cdots\cr
g_{2^{n-m}-1}& g_{2^{n-m}-1}+b_1& g_{2^{n-m}-1}+b_2& \cdots\quad&
   g_{2^{n-m}-1}+b_{2^m-1}.\cr}}}
То, что строк будет 2^{n-m} следует из теоремы Лагранжа11, т.к. 2^{n-m} - это порядок фактор-группы G/B, \#(G/B)=\#(G)/\#(B), \#B=2^m.

Декодирование слова g=b_j+g_i состоит в выборе кодового слова b_j в качестве переданного и последующем применении операции, обратной умножению на E. Такая схема декодирования сможет исправлять ошибки.

Для (3,6) -кода из рассматриваемого примера таблица декодирования будет следующей:

\centerline{\vbox{\offinterlineskip\halign{&#&\strut\hskip7pt#\cr
000000 && 100110 && 010011 && 110101 && 001111 && 101001 && 011100 && 111010\cr
100000 && 000110 && 110011 && 010101 && 101111 && 001001 && 111100 && 011010\cr
010000 && 110110 && 000011 && 100101 && 011111 && 011001 && 001100 && 101010\cr
001000 && 101110 && 011011 && 111101 && 000111 && 100001 && 010100 && 110010\cr
000100 && 100010 && 010111 && 110001 && 001011 && 101101 && 011000 && 111110\cr
000010 && 100100 && 010001 && 110111 && 001101 && 101011 && 011110 && 111000\cr
%}}}
%\centerline{\vbox{\offinterlineskip\halign{&#&\strut\hskip7pt#\cr
000001 && 100111 && 010010 && 110100 && 001110 && 101000 && 011101 && 111011\cr
000101 && 100011 && 010110 && 110000 && 001010 && 101100 && 011001 &&
111111.\cr
}}}

Первая строка в ней - это строка кодовых слов, а первый столбец - это лидеры.

Чтобы декодировать слово b_j+e, следует отыскать его в таблице и выбрать в качестве переданного слово в том же столбце и в первой строке.

Например, если принято слово 110011 (2-я строка, 3-й столбец таблицы), то считается, что было передано слово 010011; аналогично, если принято слово 100101 (3-я строка, 4-й столбец таблицы), переданным считается слово 110101, и т.д.

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

В рассмотренной схеме вероятность правильной передачи слова будет p^6+6p^5q+p^4q^2.

Кодовое слово любого столбца таблицы декодирования является ближайшим кодовым словом ко всем прочим словам данного столбца.

Пусть переданное слово b_i принято как b_i+e, d(b_i,b_i+e)=w(e), т.е. это расстояние равно весу соответствующего лидера. Расстояние от b_i+e до любого другого кодового слова b_j равно весу их поразрядной суммы, т.е. d(b_j,b_i+e)=w(b_j+b_i+e)=d(b_j+b_i,e)=d(b_k,e)=w(b_k+e)\ge
w(e), т.к. e - лидер смежного класса, к которому принадлежат как b_k+e, так и b_i+e.

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

Упражнение 40 Для кодирующих матриц

E_1=\left\lbrack\matrix{
1& 0& 1& 0& 1\cr
0& 1& 1& 1& 0\cr}\right\rbrack
, E_2=\left\lbrack\matrix{
1& 0& 0& 1\cr
0& 1& 0& 1\cr
0& 0& 1& 0\cr}\right\rbrack:

  1. Построить соответственно (2,5) -код и (3,4) -код.
  2. Найти основные характеристики полученных кодов: минимальное расстояние между словами кода; вероятность необнаружения ошибки; максимальную кратность ошибок, до которой включительно они все исправляются или обнаруживаются.
  3. Построить таблицы декодирования.
  4. Уточнить характеристики полученных кодов, при использовании их для исправления ошибок, т.е. найти вероятность правильной передачи и описать ошибки, исправляемые этими кодами.
  5. Во что будут декодированы слова: 10001, 01110, 10101, 1001, 0110, 1101?
< Лекция 9 || Лекция 10: 123 || Лекция 11 >