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

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


4.7. Способ списочного декодирования с защитой номера кластера

Списочное декодирование блоковых кодов на основе выделения в кодовой комбинации номера кластера открывает принципиальную возможность сократить объем вычислений в достаточно эффективном алгоритме мягкого декодирования с использованием упорядоченной статистики. Оценим применение метода для кода БЧХ (15,7,5). Использование  такого кода оправдано с точки зрения получения максимального ЭЭ выигрыша, возможной для любого кода при относительной скорости кода, равной 0,5.

4.7.1. Описание алгоритма при отсутствии ошибок

Пусть задан блоковый код   с порождающим полиномом g(x)=7218  и пусть с выхода источника информации на вход кодера поступила комбинация вида

0 1 0 0 1 1 1.

Представим порождающую матрицу кода в систематической форме.    

.              (4.15)

Тогда на выходе кодера образуется вектор вида:

.

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

.

Приемник обрабатывает вектор, устанавливая для каждого символа градацию надежности. В табл. 4.16 в качестве примера представлены оценки надежности, принадлежащие каждому принятому символу.

Табл. 4.16  Соответствие символов и их градаций надежности

0

1

0

0

1

1

1

0

0

1

1

0

0

0

1

ИДС

7

7

7

6

5

7

7

7

7

7

3

7

1

5

7

Если кластер вектора  идентифицирован верно, то возможна эффективная реализация перехода от кода  к укороченному коду . Действительно, номер кластера определяет комбинацию первых строк матрицы . Это означает, что при удалении сочетания символов, отвечающих за подобную комбинацию декодер должен обрабатывать комбинации только кода  , что приводит к сокращению объема вычислений. Следовательно, приняв вектор  декодер проверяет выполнение  четности для символов, определяющих номер кластера, и преобразует порождающую матрицу G в матрицу укороченного (12,4,5) кода . Принцип декодирования систематического кода с использованием номера кластера представлен на рис. 4.18.

Рис. 4.18. Схема перехода к укороченному коду

 

                   .                     (4.16)

Далее в декодере формируется корректирующий вектор  путем умножения номера кластера на первые три строки порождающей матрицы  G .

         =

0

1

0

0

0

0

0

0

1

1

1

0

1

0

0

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

В результате образуется  вектор укороченного кода W, у которого сохранились ИДС, полученные в ходе демодуляции. Результаты преобразований показаны в табл. 4.17. При этом младшему разряду этого вектора искусственно присваивается наиболее низкий индекс достоверности символа (в нашем случае 0).

Табл. 4.17  Процедура получения вектора укороченного кода

0

1

1

1

0

0

1

1

0

0

0

1

0

0

0

0

0

1

1

1

0

1

0

0

W

0

1

1

1

0

1

0

0

0

1

0

1

ИДС

6

5

7

7

7

7

7

3

7

1

5

«0»

 

После выполнения указанных шагов, декодер переходит к основному алгоритму, но в новых условиях все операции списочного декодирования осуществляются только с комбинациями укороченного кода. Выполняется ранжирование вектора по основному алгоритму для W на основании градаций надежности, полученных от демодулятора. 

Последовательность шагов по выполнению подстановки символов показана в табл. 4.18.

Табл. 4.18 Процедура подстановки символов

Порядковая нумерация

1

2

3

4

5

6

7

8

9

10

11

12

W

0

1

1

1

0

1

0

0

0

1

0

1

ИДС

6

5

7

7

7

7

7

3

7

1

5

0

Новая нумерация символов

3

4

5

6

7

9

1

2

11

8

10

12

Значения переставленных символов

1

1

0

1

0

0

0

1

0

0

1

1

 

В результате выполнения указанных операций образовался псевдоинформационный вектор вида 1101.

На основании выполненной подстановки формируется перестановочная матрица М. Путем умножения матрицы М на матрицу Gук декодер  получает предварительный результат преобразования в виде матрицы , структура которой оценивается с точки зрения сохранения свойств нелинейности ее строк.

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

                                 .                 (4.17)

Следует учитывать, что простановка столбцов должна быть адекватно отражена в перестановочной матрице . Последующие преобразования представлены в табл. 4.19 и табл. 4.20.

Табл. 4.19 Процедура подстановки символов (продолжение)

Порядковая нумерация

1

2

3

4

5

6

7

8

9

10

11

12

W

0

1

1

1

0

1

0

0

0

1

0

1

ИДС

6

5

7

7

7

7

7

3

7

1

5

0

Новая нумерация символов

3

4

5

9

7

6

1

2

11

8

10

12

Значения переставленных символов

1

1

0

0

0

1

0

1

0

0

1

1

Выделяя из (4.19) матрицу , и выполнив  , получим обратную матрицу для , которая точно указывает на порядок последующих действий над строками матрицы  для получения порождающей матрицы в систематической форме. Отсюда

     и   .

 

Табл. 4.20 Формирование вектора ошибок

Комбинация эквивалентного кода

1

1

0

0

0

1

0

1

0

0

1

0

Значения переставленных символов

1

1

0

0

0

1

0

1

0

0

1

1

 

Вектор ошибок

 

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

«1»

 

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

 



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