Главная Помехоустойчивое кодирование



go • • 0 go

(1.51)

0 0 ...0 0

k~\A

Линейный блоковый код называется циклическим, если циклический сдвиг кодового слова U = (м;, W)t-i •••"!) Д вектор Ui = - .. . , Wb k) также являющийся кодовым словом. Такой код

порождается с помощью матрицы (1.51).

Проверочная матрица как ортогональный базис линейного блокового кода. Всякая матрица Н размера т X п, ортогональная порождающей матрице G размера кХ {т +/:) =кХ п, называется проверочной или контрольной.

Таким образом, по определению, матрица Н - это ортогональный базис к базису (проверочной матрице) G и

(1.52а) (1.526)

GH =0; HG =0.

Умножив слева на вектор Q соотношение (1.52а) или справа - на вектор соотношение (1.526), получим

QGH =0; HGQ =0.

Откуда с учетом зависимостей (1.47) и (1.48) следует

иН = 0;

ни = 0.

(1.53а) (1.536)

Таким образом, линейный блоковый код может быть определен и как множество векторов [u), удовлетворяющих соотношениям (1-53).

Проверочная матрица Н систематического кода находится по последней матрице в формуле (1.49) и представляется в следующей форме:

Н=[А

(1.54)

Проверочная матрица циклического кода имеет вид

«

.ho • •

(1.55)

1610



Линейный блоковый код тогда и только тогда имеет минимальное кодовое расстояние когда любая совокупность из (i - 1 столбцов проверочной матрицы Н линейно независима.

Следовательно, с помощью (л,/:)-кода можно исправить v произвольных ошибок, если его проверочная матрица Н размера {п - к)Хп состоит из 2и линейно независимых столбцов, где учтено неравенство (1.3).

В частности, (л, А;)-код с проверочной матрицей Н размера тХ п, содержащей все ненулевые двоичные векторы длины ш, имеет кодовое расстояние d = Зи называется кодом Хэмминга.

Минимальное кодовое расстояние d любого линейного блокового (л, А;)-кода связано с его параметрами л и А; неравенством:

л-А;+1=т + 1.

(1.56)

Если d = л-А;+1, то такой код называется максимально разделимым или МДР-кодом. Важный подкласс циклических МДР-кодов рассмотрен в гл. 6.

Заключение. Как мы видели, вектор U является кодовым словом, если и только если он удовлетворяет равенству UH = 0. Ддя обнаружения ошибок проверка произведения UH на равенство нулю является достаточной. Исправление ошибок - существенно более сложная задача.

Если кодовое слово U содержит ошибки, то иНФО. Обозначим произведение UH символом S, а вектор ошибок - символом е = = in-i • • • 1» о)» где согласно неравенству (1.3) количество

ненулевых компонент 6,-, / =0, 1, . .., л - 1, т. е. число ошибок должно быть менее половины кодового расстояния d используемого (л, А;)-кода.

Так как код линеен, то

иН = (и-\-е)Я =иН + еН = вЯ =5, (1.57)

Вектор S = {Sq, Sj, .. ., j) называется синдромом и определенным образом характеризует вектор ошибок е - местоположение (локаторы) ошибок и их величину (вес).

Любой вектор можно представить в виде полинома, например S (z) = So + Siz + 2 + ... + 5 iz" -i. Полином a(z), имеющий корни, обратные локаторам ошибок, называется полиномом локаторов, а полином cj(z), корни которого совпадают с весами ошибок, - полиномом весов или просто - полиномом ошибок. Оба полинома связаны соотношением

5(z)a(z) =cj(z), modz

(1.58)

Итак, первая задача декодирования - вычисление синдрома S. Он вычисляется на основании соотношения (1.57) по принятому, возможно с ошибками, кодовому слову U. Если 5 = О, то на основании принципа максимального правдоподобия считаем, что ошибок нет (или их более



0,5с?, но для их исправления данный код не предназначен). В противном случае, при S Ф О, возникает так называемая проблема декодирования.

Как правило, локаторы ошибок и их веса связаны с синдромами системой нелинейных уравнений. Эта система для большого и важного класса линейных кодов может быть сведена к ганкелевой (теплицевой) системе линейных уравнений относительно коэффициентов полинома a(z). Методы сведения подобной системы к одному уравнению - уравнению локаторов - приведены в гл. 2. Для удобства читателей в этой главе рассматриваются матрицы и полиномы не над конечными полями, используемыми в теории помехоустойчивого кодирования, а над полями вещественных чисел. Материал, позволяющий производить операции над конечными полями приведен в гл. 3.

Таким образом, вторая задача декодирования - составление уравнения локаторов по известному (вычисленному по принятому кодовому слову и) синдрому 5.

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

Третья задача декодирования во временной области - решение уравнения локаторов, что позволяет найти местоположение ошибок в кодовом слове; после этого ошибки могут рассматриваться как стирания.

Четвертая задача декодирования состоит в решении системы линейных уравнений относительно величин ошибок (методы решения уравнений над полями Галуа приведены в гл. 5).

Декодирование в частотной области позволяет не вычислять позиции и величины ошибок независимо друг от друга, а найти (путем продолжения синдрома) спектр конфигурации ошибок. Рекуррентные и безрекуррентные методы вычисления продолжения синдрома, как "особого продолжения" ганкелевой (теплицевой) матрицы, изложены в гл. 2.

Следующий шаг частотного декодирования - обратное дискретное преобразование Фурье (ДПФ), позволяющее вычислить вектор ошибок. Заметим, что процесс вычисления синдрома может рассматриваться как усеченное ДПФ и что над конечным полем оно называется преобразованием Фурье - Мэттсона - Соломона (ФМС). Приемы ФМС-преобра-зования, в том числе быстрые алгоритмы, рассмотрены в гл. 4.

Коррекция (вычитание вектора ошибок из кодового слова) завершает декодирование как во временной, так и в частотной областях (конечно, при условии временного кодирования).

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

Читателя, желающего глубже изучить вопросы теории помехоустойчивого кодирования, отсылаем к капитальным трудам [8, 11, 14, 15, 22, 30, 36, 40, 43, 46].



0 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94


0.0191