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

лекции / ОПК

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

Для турбо кодов параллельное декодирование реализуется с помощью разбиения решетки кода на сегменты длины W и параллельного вычисления внешней информации для систематических бит Le (uk ) в каждом сегменте решетки (см. Рис. 24).

прямая рекурсия αk,1

прямая рекурсия αk,2

прямая рекурсия αk,N/W

обратная рекурсия βk,1

обратная рекурсия βk,2

обратная рекурсия βk,N/W

W

N

 

 

 

Рис. 24. Разбиение решетки кода на cсегменты для параллельного декодирования принятой последовательности

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

а интерливинг строится, таким образом, чтобы избежать одновременного доступа к одному блоку памяти более чем с одного сегмента решетки при записи вычисленных

значений

Пример процедуры интерливинга не имеющего конфликта параллельного доступа к памяти показан на Рис. 25 для четырех сегментов решетки длины W 4 . Из рисунка видно, что для фиксированного индекса бита i внутри каждого сегмента решѐтки запись

производится в память с адресом f i tW (где

f функция интерливера). При этом

индекс блока памяти, определяемый значением

f i tW /W , для каждого сегмента

решетки t всегда оказывается разным.

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

f i vW

f i uW

, 0 v,u N 1,

 

 

 

 

 

 

 

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

 

 

 

W

 

 

W

 

 

 

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

где i 0,...,W 1 индекс систематического бита внутри сегмента решетки.

41

 

0

1

2

3

 

4

5

6

7

 

8

9

10

11

 

12

13

14

15

Запись внешней

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

информации для 1-ого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

бита сегмента решетки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

2

3

 

4

5

6

7

 

8

9

10

11

 

12

13

14

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

2

3

 

4

5

6

7

 

8

9

10

11

 

12

13

14

15

Запись внешней

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

информации для 2-ого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

бита сегмента решетки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

2

3

 

4

5

6

7

 

8

9

10

11

 

12

13

14

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

2

3

 

4

5

6

7

 

8

9

10

11

 

12

13

14

15

Запись внешней

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

информации для 3-ого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

бита сегмента решетки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

2

3

 

4

5

6

7

 

8

9

10

11

 

12

13

14

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

2

3

 

4

5

6

7

 

8

9

10

11

 

12

13

14

15

Запись внешней

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

информации для 4-ого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

бита сегмента решетки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

2

3

 

4

5

6

7

 

8

9

10

11

 

12

13

14

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 25. Пример процедуры интерливинга для параллельной архитектуры кода

Определение: Интерливер обеспечивающий отсутствие конфликта одновременного доступа к памяти для всех возможных значений длин сегментов решетки W (являющегося делителем N) называется интерливером с максимальным отсутствием конфликта одновременного доступа к памяти.

Можно показать, что квадратичный интерливер j f

1

i f

2

i2 mod N удовлетворяет

 

 

 

 

 

 

 

 

 

 

 

условию максимально отсутствия конфликта одновременного доступа к памяти.

Доказательство:

 

 

 

 

 

 

 

 

 

 

Пусть

 

 

 

 

 

 

 

 

 

 

 

 

Q

 

f i vW

,

Q

 

f i uW

 

,

 

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

 

 

 

v

 

 

u

 

 

 

 

 

 

 

 

W

 

 

W

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

тогда

 

 

 

 

 

 

 

 

 

 

 

 

f i vW QvW mod f i vW ,W

 

 

 

 

 

f i uW Q W mod f i uW ,W .

 

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

u

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

42

Необходимо показать, что для любого i 0,...,W 1, Qv Qu для любого u v .

Действительно, предположим что Qv Qu . Тогда используя выражение (2.5.3) получим

Q Q

f i vW f i uW mod f i vW ,W mod f i uW ,W

0 .

(Ошибка!

 

v u

 

W

 

 

 

 

 

 

 

 

 

 

 

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

Поскольку для

квадратичного

интерливера

выполняется

равенство

mod f i vW ,W mod f i uW ,W , то

f i vW f i uW . Данное

равенство

противоречит уникальности функции интерливера f . Отсюда следует, что Qv Qu для любого u v и справедливо для всех индексов i 0,...,W 1.

43

c u G .

Лекция № 5. Коды с малой плотностью проверки на четность

Глава 3. Коды с малой плотностью проверки на четность

3.1. Определение кодов с малой плотностью проверки на четность

Коды с малой плотностью проверки на четность являются подклассом линейных блоковых кодов, рассмотренных в Главе 2. Напомним, что n, k линейный блоковый код можно рассматривать как отображение (с помощью порождающей матрицы G ) k -

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

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

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

Строки порождающей матрицы G задают базис кодового подпространства размерности k , а базисные вектора ортогональные кодовому подпространству задают проверочную матрицу H размерности n k, n . В силу ортогональности подпространств,

для любого кодового слова c выполняется равенство

c HT 0 ,

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

 

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

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

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

Несмотря на то, что эти коды были изобретены в 1963 году Робертом Галлагером, их практическое применение началось относительно недавно.

Далее мы ограничимся рассмотрением двоичных кодов с малой плотностью проверки на четность, заданных над полем GF 2 . Введем некоторые определения. Код с малой плотностью проверки на четность является кодом регулярности t , если вес (число единиц)

каждого столбца проверочной матрицы H является постоянной величиной. В этом случае среднее число единиц в каждой строке проверочной матрицы H равно nt / n k . Если вес каждой строки проверочной матрицы также является постоянной величиной равной s nt / n k , то код называется (s, t) регулярным.

44

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

1

1

1

1

0

0

0

0

0

0

 

 

 

 

 

 

 

 

 

 

1

0

0

0

1

1

1

0

0

0

H 0 1 0

0

1

0

0

1

1

0

 

 

 

 

 

 

 

 

 

 

0

0

1

0

0

1

0

1

0

1

 

0

0

1

0

0

1

0

1

 

0

1

Напомним, что для любого кодового слова c должно выполняться равенство

1 1

1

1

0

0

0

0

0

0 c0

 

 

 

 

 

 

 

 

 

 

 

 

 

1 0

0

0

1

1

1

0

0

0 c1

 

 

0 1

0

0

1

0

0

1

1

0

 

0 .

 

 

 

 

 

 

 

 

 

 

 

0 0

1

0

0

1

0

1

0

1 c8

 

 

 

0

1

0

0

1

0

1

 

 

 

0 0

1 c9

 

 

Выражение (3.1.2) определяет набор уравнений проверок на четность, которые для рассматриваемого примера можно записать следующим образом

p0 c0 c1 c2 c3 p1 c0 c4 c5 c6 p2 c1 c4 c7 c8 p3 c2 c5 c7 c9 p4 c3 c6 c8 c9

Коды с малой плотностью проверки на четность описываются с помощью двухстороннего (двудольного) графа, где нижние (битовые) узлы соответствуют кодовым битам ci , а верхние (проверочные) узлы соответствуют проверочным уравнениям p j .

Битовый узел соединяется с проверочным узлом ребром, если кодовый бит присутствует в уравнении проверки на четность (3.1.2). Пример двустороннего графа для рассматриваемого кода приведен на Рис. 26.

45

p

0

p

1

p

2

p

3

p

4

 

 

 

 

 

c

c

c

2

c

3

c

4

c

c

6

c

c

c

9

0

1

 

 

 

5

 

7

8

 

Рис. 26. Двусторонний граф кода с малой плотностью проверки на четность

Циклом длины в двустороннем графе будем называть замкнутый путь, состоящий из ребер. На Рис. 26 жирной линией выделен цикл длины 6. Цикл минимальной длины называется обхватом кода.

3.2. Примеры построения кодов с малой плотностью проверки на четность

Коды Галлагера

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

H1

 

 

 

 

 

H H 2

 

,

 

 

 

 

 

 

H t

 

 

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

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

где подматрицы H d

имеют следующую структуру. Для любого целого и s больше

единицы, подматрица

H d имеет размерность s , а вес каждой строки и столбца

равен s

и 1 соответственно. Первая подматрица

H1 имеет специальный вид, такой, что

строка i

для i 1,..., содержит все s единиц в

столбцах с индексами от i 1 s 1 до

i s . Остальные подматрицы H d где d 2,..., t могут быть получены путем перестановки столбцов матрицы H1. Очевидно, что код Галлагера является регулярным, а матрица H

имеет размерность t s . Отсутствие циклов длины 4 не гарантируется. Однако, их можно избежать путем соответствующего выбора матрицы H .

46

Коды МакКея

Построение кодов МакКея основывается на случайном поиске матриц. Ниже

приведены основные способы построения кода, предложенные МакКеем:

1.Матрица H создается путем набора векторов весом s

2.Матрица H создается из набора векторов весом s , гарантирующего вес t для каждой строки матрицы. При этом любая пара векторов имеет расстояние Хэмминга не более чем 1.

3.Из множества матриц H , удовлетворяющих построению 2, исключаются матрицы,

имеющие короткие циклы в двустороннем графе.

4. Матрица H удовлетворяет построению 3. При этом H можно представить как

H H1 H2 , где матрица H2 обратима.

3.3. Методы декодирования кодов с малой плотностью проверки на четность

Пусть вектор r r0 , r1, , rn 1 длины n задает принятую последовательность, а

вектор c c0,c1, ,cn 1 кодовую. Для простоты рассмотрения будем читать что -1 и +1

соответствуют 0 и 1 соответственно. Тогда кодовая последовательность ck может

принимать значения -1 или +1 при передаче в канале. Задача декодирования ставится как

оценка

элементов

кодовой

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

на основе наблюдения r .

Декодирование кодовых бит

ck будем

осуществлять

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

отношения апостериорной вероятности на основе наблюдения r

 

 

 

 

P ck 0 | r

 

 

 

L c

k

| r log

 

 

.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P ck 1| r

 

 

 

 

 

 

 

 

 

 

 

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

Если

логарифм

отношения апостериорной вероятности L ck | r 0 , то cˆk 0 . В

противном случае cˆk

1. Напомним, что все n кодовых бит при декодировании должны

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

47

N m

P ck | Sk ,r ,

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

 

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

где событие Sk соответствует выполнению всех уравнений проверки на четность для бита

ck . Используя правило Байеса,

апостериорная вероятность P ck | Sk ,r может быть

преобразована в следующий вид

 

 

P ck | Sk ,r K P rk | ck P Sk | ck ,r .

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

 

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

Первый множитель K в равенстве (3.3.3) является константой и в дальнейшем может

быть опущен из рассмотрения,

т.к. является величиной независящей от ck . Второй

множитель p rk | ck выражения

(3.3.3) может быть

вычислен из наблюдения rk с

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

гауссовским шумом вероятность p rk | ck определяется как

 

 

 

1

 

 

 

2

 

 

p rk | ck

 

 

 

 

rk ck

 

 

 

 

 

 

exp

2 2

.

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

 

 

 

 

 

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

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

Третий множитель в равенстве (3.3.3) задает вероятность выполнения всех проверок

на четность с участием кодового бита ck . Событие Sk может быть представлено как объединение событий S1k , S2k ,..., SLk , где Smk является событием, соответствующим

выполнению проверочного выражения для проверочного узла m , соединенного с битовом узлом k . Пусть M k является набором проверочных узлов соответствующих биту ck , а

множеством битовых узлов соответствующих проверочному узлу m .

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

P Sk | ck b,r p S1k , S2k ,..., SLk | ck

b,r

P Sm k | ck ,r ,

(Ошибка!

 

 

 

 

 

m M k

 

 

 

 

 

 

 

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

где p Smk | ck ,r вероятность, что проверка соответствующая

проверочному узлу

m ,

соединенная

с битом

ck ,

выполняется.

Если

ck 0 ,

то

p Smk | ck ,r

равняется

вероятности

того, что

все

битовые узлы, соединяющие

проверочный узел m

за

исключением узла соответствующего биту ck , имеют четное число единиц. Аналогично,

если ck 1, то для выполнения условия проверки на четность в проверочном узле m ,

число единиц в оставшихся битовых узлах нечетно.

48

Далее предположим, что два бита удовлетворяют уравнению проверки на четность

(т.е. c1 c2 0), а вероятности равны

P c1 0 p1 1 q1,

P c2 0 p2 1 q2 . Тогда

вероятность выполнения проверки на четность для двух бит

 

 

P(c1 c2 0) (1 p1) (1 p2 ) p1 p2

2 p1 p2 1 p1 p2 .

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Преобразуем выражение (3.3.6) в следующий вид

 

 

 

2 P(c1 c2

0) 1 (1 2 p1) (1 2 p2 ) (q1 p1) (q2 p2 ) .

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Обобщим выражение (3.3.7) на случай L

кодовых бит, участвующих в уравнении

проверки на четность zL c1 c2 ... cL

 

 

 

 

 

 

 

 

 

 

1

 

L

 

 

 

 

 

 

 

 

 

 

 

 

 

P(z

 

0)

 

 

1

 

 

q

p

 

 

,

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

L

 

 

 

 

 

 

i

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

2

i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

где pi 1 qi

P ci 0 . Аналогичным образом можно показать, что

 

 

 

 

 

1

 

L

 

 

 

 

 

 

 

 

 

 

 

 

 

P(z

 

1)

 

1

 

q

p

 

.

 

 

 

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

 

 

 

 

 

 

 

 

 

L

 

 

 

 

 

i

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

2

i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Тогда вероятность P Smk | ck ,r

при условии ck 0 равна

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P Smk | ck 0,r

 

 

1

q

 

0 q

1 ,

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

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

mn'

mn'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n' N m \k

 

 

 

 

 

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

где qmn' 0 вероятность, что кодовый бит cn' равен 0, N m \ k множество кодовых узлов за исключением узла k . Заметим, что равенство (3.3.10) включает в себя произведение по

всем ребрам, соединяющими проверочный узел m кодовыми, за исключением узла k .

Таким образом, при вычислении P Smk | ck ,r исключается информация о бите ck , а

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

Объедения, полученные выше выражения

49

 

 

 

1

 

 

L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P(ck 0 | Sk , r) K P rk | ck 0

 

 

 

 

 

1

q

 

0 q

 

1

. (Ошибка!

 

m M k 2

 

mn'

mn'

 

 

 

 

 

n' N m \k

 

 

 

 

 

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

 

 

1

 

 

 

 

L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P(ck 1| Sk , r) K P rk | ck 1

 

 

 

1

 

q

0 q

1

.

(Ошибка!

m M k 2

 

 

 

 

mn'

 

mn'

 

 

 

 

 

 

n' N m \k

 

 

 

 

 

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

Равенства (3.3.11) и (3.3.12) можно рассматривать как последовательное вычисление сообщений от проверочных узлов к битовым узлам и наоборот. Например, для ck 1

вычисление выражения (3.3.12) можно разбить на два этапа

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

 

 

 

 

 

проверочный узел

 

 

 

 

 

 

на основе наблюдений rk

 

 

 

 

 

L

 

 

 

 

 

 

 

 

1

 

 

 

 

 

P r | c

 

1

 

 

1

 

 

(q

 

0 q

1 )

(Ошибка!

k

 

 

k

 

 

 

 

 

 

mn'

 

mn'

 

 

 

 

 

m M k 2

 

 

n' N m \k

 

 

 

 

 

битовый узел

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

Первый этап соответствует вычислению сообщений от проверочных узлов к битовым узлам. Вводя обозначение qmn' qmn' 0 qmn' 1 , выражения, соответствующие первому этапу, задаются следующим образом

 

 

1

 

 

 

 

 

 

 

0

 

 

qmn'

 

 

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

r

 

 

 

1

 

 

 

 

 

 

mk

 

2

 

 

n' N m \ k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

1

 

 

 

 

 

 

 

 

1

 

 

 

qmn'

 

.

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

r

 

 

 

1

 

 

 

 

mk

 

2

 

 

 

n' N m \k

 

 

 

 

 

 

 

 

 

 

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

Графически вычисление rmk проиллюстрировано на Рис. 27.

50