Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции / ОПК

.pdf
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
1.35 Mб
Скачать

pm

 

r

mk

( )

 

 

 

 

 

 

 

δqmn’

ck

 

 

 

 

 

 

 

 

 

Рис. 27. Вычисление rmk

 

 

Для вычисления сообщения r

находится набор ребер

N m \ k

двухстороннего

mk

 

 

 

 

графа, входящих в узел pm , при этом исключается ребро, соединяющее битовый узел ck

с проверочным узлом pm . Далее согласно выражениям (3.3.14) и (3.13.15) производится вычисление сообщения rmk от проверочного узла pm к битовому узлу ck . pm

r

 

qmk( )

mk

( )

 

 

ck rk Рис. 28 Вычисление qmk

Аналогичным способом выполняется второй этап вычисления выражений (3.3.11) и

(3.3.12), соответствующий вычислению сообщений от битовых узлов к проверочным (см.

Рис. 28). При этом учитывается априорная информация P rk | ck кодового бита ck ,

полученная на основе принятого символа rk .

Псевдокод алгоритма декодирования кодов с малой плотностью проверки на четность приведен ниже:

51

Инициализация

Переменная qmn инициализируются следующим образом

 

 

1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

rk 1

 

 

 

 

 

 

 

 

 

 

 

exp

 

 

 

,

ck 0

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

2

2

 

 

 

 

 

2

 

 

qmk fk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Ошибка! Текст

 

 

1

 

 

 

 

 

 

rk 1 2

 

 

 

 

 

 

 

 

 

 

 

exp

 

 

 

,

ck 1

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

2 2

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

указанного стиля в документе отсутствует..102)

Вычисление сообщений проверочных узлов

Для каждого ребра исходящего из проверочного узла с индексом m M (k)

вычисляется сообщение

rmk

 

qmi ' ,

(Ошибка! Текст указанного

 

 

i' N m \ k

 

 

 

 

стиля в документе отсутствует..103)

где rmk 0 12 1 rmk , rmk 1 12 1 rmk .

Вычисление сообщений битовых узлов

 

Для каждого ребра, исходящего из битового

узла с индексом k 0,..., n 1 ,

вычисляется внешнее сообщение, исключающее информацию проверочного узла m

qmk 0 mk fk 0

rm'k 0

(Ошибка! Текст

m' M k \ m

 

 

указанного стиля в документе отсутствует..104)

qmk 1 mk fk 1

rm'k 1

(Ошибка! Текст

m' M k \ m

 

 

указанного стиля в документе отсутствует..105)

Постоянные нормировки mk

и mk выбираются таким образом, чтобы выполнялось

условие нормировки вероятности qmk 0 qmk 1 1.

 

Вычисление выражений проверки на четность

Для каждого элемента кодовой последовательности с индексом k 0,..., n 1

вычисляется полная вероятность

52

qk 0 k fk 0

rm'k 0

(Ошибка! Текст указанного

m' M k

 

 

 

стиля в документе отсутствует..106)

qk 1 k fk 1

rm'k 1 .

(Ошибка! Текст указанного

m' M k

 

стиля в документе отсутствует..107)

Постоянные нормировки k и k выбираются таким образом, чтобы выполнялось условие нормировки вероятности qk 0 qk 1 1. На основе вероятностей кодовых узлов

вычисляются решения

 

 

 

0 1/ 2

 

0,

q

k

 

ck

 

1 1/ 2

(Ошибка! Текст указанного

 

 

1,

q

k

 

 

 

 

 

 

 

 

 

стиля в документе отсутствует..108)

Если проверка на четность c HT 0 не выполняется, и число итераций не превысило максимального значения, процедура декодирования повторяется.

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

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

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

53

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

exp( log

 

) ,

 

 

 

 

 

 

 

 

 

 

 

 

ai

 

 

sign(ai )

 

ai

 

 

 

 

 

(Ошибка! Текст

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

указанного стиля в документе отсутствует..109)

Введем функцию

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

exp x 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tanh

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Ошибка! Текст указанного стиля в

 

exp x 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

документе отсутствует..110)

и получим равенство для логарифма отношения апостериорной вероятности

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p rk | ck

0

 

 

 

 

 

 

1

 

qmn' 0 qmn' 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n' N m \ k

 

 

 

 

 

 

 

 

L c

 

| r log

 

 

 

 

 

 

 

 

 

log

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

qmn' 0 qmn' 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p rk | ck 1

 

 

 

 

m M (k ) 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n' N m \ k

 

 

 

 

 

 

 

 

 

 

(Ошибка! Текст указанного стиля в документе отсутствует..111)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

Используя определения q

 

q

 

 

0 q

 

1

и LLR q

 

log

qmn'

, простая

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mn'

 

 

 

mn'

 

 

mn'

 

 

 

 

 

 

 

 

mn'

q

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mn'

 

 

 

 

 

 

 

 

 

 

 

 

 

LLR

q

mn'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

подстановка дает

q

 

 

tanh

 

 

 

 

 

 

 

 

 

. Тогда равенство (3.3.25) можно представить в

mn'

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

следующем виде

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L ck | r 2

rk

 

 

 

 

log

 

1 smk exp Amk

 

,

 

 

 

 

(Ошибка! Текст

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

1 smk exp Amk

 

 

 

 

 

 

 

 

 

2

m M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

указанного стиля в документе отсутствует..112)

где коэффициенты smk

 

и Amk

 

определяются как

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

smk

 

sign qmn'

 

sign LLR qmn' ,

 

(Ошибка! Текст

 

 

 

 

 

n' N m \ k

 

 

 

 

 

 

 

 

 

n' N m \ k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

указанного стиля в документе отсутствует..113)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LLR q

mn'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Amk

 

 

 

 

 

log

tanh

 

 

 

 

 

 

 

 

.

 

 

 

(Ошибка! Текст

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n' N m \ k

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

указанного стиля в документе отсутствует..114)

Легко видеть, что коэффициент smk содержит информацию о знаке сообщения, т.е. «жестком» решении, а коэффициент Amk об абсолютном значении сообщения, т.е.

надежности этого решения.

Равенство (3.3.26) можно упростить

54

L ck | r 2

rk

 

 

 

 

 

Amk

 

 

 

 

 

tanh

 

 

(Ошибка! Текст

 

 

 

2

k

smk log

 

.

 

 

m M

 

 

2

 

 

 

 

указанного стиля в документе отсутствует..115)

 

 

x

 

 

 

 

 

 

 

Вводя обозначение x log

 

tanh

 

 

 

 

, получим

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L ck | r 2

rk

 

 

smk Amk ,

 

 

(Ошибка! Текст

 

2

 

 

 

 

 

 

 

 

 

m M k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

указанного стиля в документе отсутствует..116)

 

 

 

 

 

 

 

LLR qmn'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где A

 

log

 

tanh

 

 

 

LLR q

 

.

График функции x

 

 

 

 

mk

 

 

 

 

 

 

2

 

 

 

 

 

mn'

 

 

 

n' N m \ k

 

 

 

 

 

 

 

 

 

 

n' N m \ k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

представлен на Рис. 29.

(x)

6

5

4

3

2

1

00

1

2

3

4

5

6

 

 

 

x

 

 

 

Рис. 29. График функции x для x 0

Отметим, что функция x является обратной, т.е. 1 x x для x 0.

Псевдокод алгоритма декодирования кодов с малой плотностью проверки на четность в области логарифма вероятности можно записать следующим образом:

Инициализация

Переменная LLR qmk инициализируются следующим образом

55

 

 

 

 

 

 

0

 

 

2rk

 

 

 

 

 

LLR q

 

log

qmk

 

 

 

 

 

(Ошибка! Текст

 

 

 

1

2

 

 

 

 

 

mk

 

q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

указанного стиля в документе отсутствует..117)

Вычисление сообщений проверочных узлов

 

 

 

Для

каждого

ребра

исходящего

из

проверочного узла

с

индексом m M (k)

вычисляется сообщение Rmk smk Amk , где Amk

LLR qmn' .

 

 

 

 

 

 

 

 

 

 

 

 

n' N m \ k

 

 

Вычисление сообщений битовых узлов

 

 

 

 

 

Для

каждого

ребра

исходящего

из

битового

узла с

индексом k 0,..., n 1

вычисляется сообщение,

LLR qmk LLR qk Rmk , где LLR qk

Rmk .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m M k

Вычисление выражений проверки на четность

Для каждого элемента кодовой последовательности с индексом k 0,..., n 1 с

помощью LLR qk вычисляется «жесткое» решение

 

 

0

 

0, LLR q

 

ck 1, LLR q k 0 .

(Ошибка! Текст указанного стиля в

 

k

 

 

 

 

 

документе отсутствует..118)

Если проверка на четность c HT 0 не выполняется, и число итераций не превысило максимального значения, процедура декодирования повторяется.

Заметим, что алгоритм на основе логарифма вероятности является вычислительно устойчивым по сравнению с алгоритмом декодирования в области вероятности. Стоит также отметить, что для декодирования принятой последовательности требуется информация о мощности аддитивного шума 2 .

Упрощение алгоритма декодирования кодов с малой плотностью проверки на четность возможно при использовании различных аппроксимаций функции .

Например, используя простейшую аппроксимацию

56

 

x

 

min x

 

 

 

(Ошибка! Текст указанного стиля в

 

 

i

 

i

i

 

 

i

 

 

 

 

документе отсутствует..119)

можно получить следующее упрощение выражения (3.3.30)

L сk | r 2

rk

 

 

smk

min LLR qmn' .

(Ошибка! Текст

2

 

 

m M

k

n' N m \ k

 

указанного стиля в документе отсутствует..120)

Вэтом случае сообщение исходящее из проверочного соответствует входящему ребру

сминимальным значением LLR qmn' . Поскольку вычисление функции min можно

проводить с точностью до постоянного множителя, постоянный множитель мощности шума 2 можно опустить при инициализации LLR qmk . Это дает дополнительное

упрощение алгоритма декодирования кодов с малой плотностью проверки на четность,

т.к. не требует оценки 2 на приемнике.

3.4. Методы эффективного кодирования кодов с малой плотностью проверки на

четность

В этом разделе рассматривается вычислительно эффективный алгоритм кодирования кодов с малой плотностью проверки на четность. Сокращение сложности кодирования достигается за счет использования разреженности проверочной матрицы кода. Пусть

проверочная матрица кода размерности m n задается матрицей H.

По определению

линейного блокового кода,

любая кодовая последовательность

с удовлетворяет

следующему равенству

 

 

T 0 .

(Ошибка! Текст указанного стиля в

 

документе отсутствует..121)

На первом этапе с помощью алгоритма последовательного исключения система уравнений приводится к равносильной системе с проверочной матрицей треугольного вида, представленной на Рис. 30.

57

n-mm

1

1 1

0

m

1 1

1 1 1

n

Рис. 30 Эквивалентная проверочная матрица кода треугольного вида

Пусть

кодовая

последовательность

задается объединением

систематического

u u0 ,u1,...,uk 1 и

проверочного

p p0 , p1,..., pn k 1

векторов

с s,p . Тогда

проверочная

последовательность p

длины

m n k

бит может

быть получена из

уравнения (3.4.2) последовательно с помощью метода обратной подстановки

 

 

k 1

l 1

 

 

 

 

 

pl Hl , ju j Hl, j k p j

 

 

(Ошибка! Текст

 

 

j 0

j 0

 

 

 

 

указанного стиля в документе отсутствует..122)

Сложность процедуры кодирования, главным образом определяется преобразованием проверочной матрицы к треугольному виду, что требует порядка O n3 операций и обратной подстановкой для получения проверочных бит, что требует порядка O n2

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

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

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

A

B

T

,

(Ошибка! Текст указанного

H

 

 

C

D

E

 

 

 

 

 

 

стиля в документе отсутствует..123)

где размеры матриц A, B,

T, C, D и E равны m g n m, m g g , m g m g ,

g n m , g g и m g g соответственно (см. Рис. 31).

58

n-m

g

m-g

 

 

1 1

1 1 1

0

A

B

m-g

m

T

 

1

 

 

C

D

E

g

 

 

n

 

 

Рис. 31 Эквивалентная проверочная матрица кода приблизительно треугольного вида

Умножая матрицу H слева на матрицу

 

I

 

0

,

 

 

 

 

 

 

(Ошибка! Текст указанного стиля в

 

 

1

 

 

 

 

 

 

 

ET

 

I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

документе отсутствует..124)

можно получить

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

B

T

 

 

 

 

 

 

1

A C

ET

1

 

.

(Ошибка! Текст

 

 

ET

 

B D 0

 

 

указанного стиля в документе отсутствует..125)

Пусть с s,p1,p2 кодовая последовательность состоящая из систематической части

s и двух проверочных частей p1 и p2 длиной g и m g

соответственно. Тогда из

равенств (3.4.1) и (3.4.5) можно получить систему из двух уравнений

AsT BpT

TpT

0

 

1

2

.

(Ошибка! Текст

 

 

ET 1A C sT ET 1B D pT 0

 

 

 

1

 

указанного стиля в документе отсутствует..126)

Пусть Φ ET 1B D является невырожденной, тогда из выражения (3.4.6) можно получить первую проверочную последовательность

59

 

pT Φ 1 ET 1A C sT .

(Ошибка! Текст указанного

 

1

 

 

 

стиля в документе отсутствует..127)

Поскольку матрица Φ 1 ET 1A C

может быть вычислена заранее, значение

вектора pT

может быть получено с помощью O g k операций.

1

 

 

Сложность вычисления p1T можно сократить с помощью поэтапного вычисления

вектора p1T . На первом этапе данного метода вычисляется произведение AsT , требующее

O n операций в силу разрежѐнности матрицы A . На втором этапе, полученный вектор

умножают на матрицу T 1 . Поскольку T треугольная матрица и T 1AsT yT

эквивалентно решению системы уравнений AsT TyT , вектор yT может быть получен с помощью обратной подстановки с помощью O n операций. Произведение CsT может быть также получено за O n операций в силу разрежѐнности матрицы С . На последнем этапе вычисляется произведение Φ 1 ET 1AsT CsT , что требует порядка O g 2

операций из-за общего (не разреженного) вида матрицы Φ 1 . Таким образом. Общее

число операций требуемых для вычисления

pT

равно O n g 2 . Аналогичным образом

 

 

 

1

 

можно получить значения второго проверочного вектора p2 с помощью выражения

pT

1

,

 

(Ошибка! Текст указанного

T 1 AsT BpT

 

2

1

 

 

 

стиля в документе отсутствует..128)

требующее порядка O n операций.

60