81
a=xG. (4.3.4)
Умножив обе части этого выражения справа на
H
T
и учиты-
вая (4.3.3), получим другое соотношение, определяющее функ-
ции кодера
а H
T
=0, (4.3.5)
т.е. он должен добавлять r проверочных символов таким об-
разом, чтобы любой из получаемых в итоге кодовых векторов
а
удовлетворял соотношению (4.3.5).
Один из способов декодирования принятого вектора
b пре-
дусматривает вычисление r-разрядного исправляющего вектора
(синдрома)
с по правилу
с=bH
T
. (4.3.6)
Из формулы (4.3.5) следует, что значение синдрома опреде-
ляется только вектором ошибки. Если
с
0, делают заключение
о наличии ошибки (обнаружение ошибки). Так как различным
ошибкам кратности q
и
, удовлетворяющей неравенству (4.3.2),
соответствуют различные значения синдрома, то вычисленное
значение синдрома
с однозначно определяет положение сим-
волов, в которых произошли такие ошибки. Эти ошибки ис-
правляются в декодере суммированием принятого вектора
b с
соответствующим вектором ошибок.
Основными элементами кодирующих и декодирующих уст-
ройств для систематических кодов являются сумматоры по мо-
дулю 2 и сдвигающие регистры. Сдвигающим регистром назы-
вают цепочку, состоящую из двоичных ячеек (в дальнейшем они
изображаются прямоугольниками), меняющую свое состояние в
дискретные моменты времени (шагами). На каждом шаге дво-
ичный символ, имеющийся на входе ячейки, перемещается на ее
выход.
Ниже приведены краткие данные наиболее распространен-
ных систематических кодов.
Код Хэмминга имеет кодовое расстояние, равное трем, и
полностью характеризуется числом проверочных символов r.
Общее число символов в кодовом слове равно n=2
r
–1. В качест-
ве столбцов проверочной матрицы
Н выбираются всевозможные
r-разрядные двоичные числа, исключая число нуль.
Код Рида–Малера полностью характеризуется двумя це-
82
лыми положительными числами: m≥З и δ<m. Число δ назы-
вается порядком кода. Остальные параметры кода определяются
из соотношений:
1
2, , 2 .
mim
mêîä
i
nkCd
δ
=
== =
∑
(4.3.7)
Первая строка производящей матрицы
G состоит из единиц.
Следующие m строк (базисные векторы первого порядка) можно
получить, если записать n столбцов, состоящих из m-разрядных
двоичных чисел. Следующие
2
m
C строк (базисные векторы вто-
рого порядка) получают, вычисляя поэлементные произведения
различных пар базисных векторов первого порядка, и т.д. до по-
лучения базисных векторов δ-го порядка.
Циклический код полностью определяется первой строкой
производящей матрицы
G. Остальные строки получают в ре-
зультате циклического сдвига первой строки на 1,2,...,k–1 эле-
ментов. Таким же циклическим свойством обладает и про-
верочная матрица
Н.
Более удобным является общепринятое описание кодовых
комбинаций циклического кода при помощи полиномов. Кодо-
вой комбинации
v=(v
0
,v
1
,…,v
n–1
) соответствует полином
v(x)= v
0
x
0
+ v
1
x
1
+,…,v
n–1
x
n–1
. Способы кодирования и декодирова-
ния для конкретного кода полностью определяются, если задать
производящий полином g(x)=1+g
1
x+ g
2
x
2
+…+ g
r–1
x
r–1
+x
r
.
Фундаментальное свойство циклического кода заключается
в том, что полином, соответствующий любой разрешенной (пе-
редаваемой) кодовой комбинации, делится без остатка на произ-
водящий полином.
РЕШЕНИЕ ТИПОВЫХ, ПРИМЕРОВ
Пример 4.3.1
. Способ кодирования задан кодовой таблицей
a) составить матрицу расстояний
ij
d
(, 1,2,3,4)ij
;
б) найти кодовое расстояние;
в) определить кратности обнаруживаемых
и исправляемых ошибок;
a
1
= 0000000
а
2
= 0110111
а
3
= 1011010
а
4
= 1101100.