Читать в оригинале

<< Предыдущая Оглавление Следующая >>


5.7. Коды Рида-Маллера

5.7.1. Задание и декодирование кодов Рида-Маллера

Коды Рида-Маллера относятся к линейным двоичным кодам, имеющим большие кодовые расстояния и исправляющим благодаря этому много ошибок. Они пригодны для каналов с малым отношением сигнал/помеха. Этот класс кодов интересен и потому, что с ним связаны многие другие сигналы, применяемые в радиотехнических системах: ортогональные и биортогональные сигналы, симплексные коды, -последовательности и коды Хэмминга.

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

Данное ограничение означает, что в базис кода не входят произведения двоичных функций, т.е. рассматривается код Рида-Маллера 1-го порядка. Некоторые сведения о кодах Рида-Маллера более высоких порядков имеются в [30].

Кодовое слово длины  обычно рассматривается как булева функция (или ее инверсия), заданная в  точках, т.е. на наборах из  двоичных элементов. Можно многими способами нумеровать позиции кодового слова -разрядными двоичными векторами. Ясно, что, как в случае кодов Хэмминга, такая перестановка не влияет на помехоустойчивость получаемых кодов. Будем нумеровать позиции кодового слова числами в двоичной системе счисления , где  для . Ввиду линейности кодов Рида-Маллера каждый символ кодового слова  представим линейной комбинацией

,

 

или ее инверсией

,

 

где    – известные информационные символы.

В соответствии с определением порождающей матрицы (5.16) и правилом покомпонентного сложения векторов элементы  являются столбцами матрицы . Для  порождающая матрица размера  на  имеет вид:

.

 

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

,

(5.34)

где    1 – последовательность из единиц;  – последовательность состояний последнего (старшего) разряда счетчика;  – последовательность состояний первого (младшего) разряда. Отметим, что перестановка столбцов и строк порождающей матрицы приводит к эквивалентным кодам.

Кодовое слово есть линейная комбинация базисных векторов (строк матрицы ):

.

(5.35)

Вид матрицы (5.34) указывает простой способ формирования базисных векторов и получения кодового слова. Схема кодирующего устройства для  (рис. 5.5) содержит трехразрядный двоичный счетчик, вырабатывающий функции , и комбинационную схему, реализующую булеву функцию (5.35). Естественно, длительность информационных символов, подаваемых в этот кодер, предполагается равной длительности кодового слова, т.е. в данной случае 8 длительностям символов канала.

Двоичный вектор  с компонентами  может быть отображен в вектор  с действительными компонентами . Для этого надо «0» в двоичном векторе заменить на (+1), а «1» – на (–1). Такое отображение можно определить формулами:

, .

(5.36)

В табл. 5.8 приведены все 16 кодируемых информационных последовательностей и соответствующие им кодовые слова. Обратим внимание, что кодовые слова правой половины таблицы являются инверсией слов левой половины.

Тогда операции суммирования двоичных последовательностей будет соответствовать покомпонентное умножение последовательностей с элементами . Можно говорить о том, что аддитивная группа двоичных векторов отображается в мультипликативную группу действительных векторов (см. 5.3.2). Конечно, отображение (5.36) не требует для технического воплощения дополнительного  оборудования,   так  как делается разработчиком аппаратуры

Таблица 5.8. Кодовые слова кода Рида-Маллера

Информационные символы

Кодовое слово

Информационные символы

Кодовое слово

0000

00000000

1000

11111111

0001

01010101

1001

10101010

0010

00110011

1010

11001100

0011

01100110

1011

10011001

0100

00001111

1100

11110000

0101

01011010

1101

10100101

0110

00111100

1110

11000011

0111

01101001

1111

10010110

мысленно и связано с разной трактовкой одних и тех же уровней напряжений (высоких и низких) в технических устройствах.

Если применить отображение (5.36) к строкам матрицы (5.34), по определению получим известные функции Радемахера [10]:

, ,…,.

 

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

.

 

т.е. число позиций, на которых символы последовательностей совпадают, равно числу позиций, на которых последовательности отличаются, и равно поэтому . Из определения расстояния Хэмминга (см. 5.4.1) заключаем, что кодовое расстояние кода Рида-Маллера равно . Отметим, что для пар слов, являющихся инверсией друг друга, расстояние равно .

Таким образом, коды Рида-Маллера имеют длину ,  информационный символ, кодовое расстояние . Отображение двоичных кодовых слов в область действительных чисел  дает множество функций Уолша, включающее  функций Уолша , , и  противоположных функций , . Множество сигналов, составленных из функций Уолша и противоположных им, называется системой биортогональных сигналов. Если в систему не включать противоположные сигналы, то получим систему ортогональных сигналов, которые используются в качестве адресов абонентов в системах множественного доступа с кодовым разделением каналов. Применение ортогональных сигналов в качестве канальных позволяет разделять их в таких системах без взаимных помех [20].

Для кодов Рида-Маллера разработаны достаточно эффективные алгоритмы порогового (мажоритарного) декодирования, изложенные в [30]. Здесь рассмотрим декодирование кодов Рида-Маллера по принципу максимума правдоподобия. Для симметричного канала это совпадает с декодированием по минимуму расстояния между векторами, при котором в качестве оценки переданного вектора  берется слово, ближайшее к принятому вектору .

Имея в виду преобразование (5.36), рассмотрим коэффициент корреляции  между принятым вектором  и функцией Уолша . При

,

 

где    и  принимают значения .

Поскольку при совпадении знаков  и  их произведение равно 1, а при несовпадении – (–1), то

,

 

где    и  – соответственно числа совпадающих и несовпадающих символов в  и , а . При , очевидно, получим

.

 

Таким образом, оптимальный алгоритм декодирования предполагает следующие этапы:

1. Вычисление  коэффициентов корреляции  между  и функциями Уолша , .

2. Поиск максимального по абсолютной величине коэффициента .

3. Принятие решения по правилу: , если , и , если .

Следовательно, данная процедура представляет собой многоканальный корреляционный прием. Ее сложность пропорциональна числу  операций сложения и вычитания. Разработаны быстрые алгоритмы декодирования кодов Рида-Маллера, по своей сути аналогичные алгоритмам быстрого преобразования Фурье [30].

 



<< Предыдущая Оглавление Следующая >>