Загрузил arin-kun

Трифонов_Основы_помехоустойчивого_кодирования

реклама
П.В. Трифонов
ОСНОВЫ ПОМЕХОУСТОЙЧИВОГО
КОДИРОВАНИЯ
0
1
Санкт-Петербург
2022
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ
ФЕДЕРАЦИИ
УНИВЕРСИТЕТ ИТМО
П.В. Трифонов
ОСНОВЫ ПОМЕХОУСТОЙЧИВОГО
КОДИРОВАНИЯ
УЧЕБНОЕ ПОСОБИЕ
РЕКОМЕНДОВАНО К ИСПОЛЬЗОВАНИЮ В УНИВЕРСИТЕТЕ ИТМО
по направлению подготовки 01.03.02, 10.03.01, ] 1.03.02
в качестве учебного пособия для реализации основных профессиональных
образовательных программ высшего образования бакалавриата
УНИВЕРСИТЕТ ИТМО
Санкт-Петербург
2022
Трифонов П.В., Основы помехоустойчивого кодирования- СПб:
Университет ИТМО, 2022. - 231 с.
Рецензент:
Кудряшов Борис Давидович, доктор технических наук, профессор,
профессор (квалификационная категория "профессор-эксперт") факультета
информационных технологий и программирования, Университета ИТМО.
Рассматриваются основные методы помехоустойчивого кодирования,
применяемые в современных системах передачи информации. В частности,
приведено описание кодов БЧХ и Рида-Соломона, турбо-кодов, кодов с малой
плотностью проверок на четность, полярных кодов. Представлены как
теоретические положения, лежащие в основе рассматриваемых конструкций, так
и вопросы их практической реализации. Приведены задачи и практические
задания. Издание ориентировано как на студентов, так и на инженеров,
занимающихся практическое реализацией методов помехоустойчивого
кодирования
УНИВЕРСИТЕТ ИТМО
Университет ИТМО - национальный исследовательский университет,
ведущий вуз России в области информационных, фотонных и биохимических
технологий. Альма-матер победителей международных соревнований по
программированию - ІСРС (единственный в мире семикратный чемпион),
Google Code Jam, Facebook Hacker Cup, Ян деке. Алгоритм, Russian Code Cup,
Topcoder Open и др. Приоритетные направления: IT, фотоника, робототехника,
квантовые коммуникации, трансляционная медицина, Life Sciences,
Art&Science, Science Communication. Входит в ТОП-100 по направлению
«Автоматизация и управление» Шанхайского предметного рейтинга (ARWU) и
занимает 74 место в мире в британском предметном рейтинге QS по
компьютерным наукам (Computer Science and Information Systems). C 2013 no
2020 гг. лидер Проекта 5 100.
© Университет ИТМО, 2022
© Трифонов П.В., 2022
Оглавление
Сокращения, принятые в п о со б и и ........................................................
Введение ....................................................................................................
8
9
I Теоретические основы кодирования
1. Основные п о н я т и я ..............................................................................
1.1. Кодирование в технических с и с т е м а х ..................................
1.1.1. Системы хранения и передачи информации................
1.1.2. Стеганография и защита цифровых материалов . . .
1.1.3. Поисковые системы ........................................................
1.2. Модели каналов передачи и н ф орм ац и и ...............................
1.2.1. Понятие канала ..................................................................
1.2.2. q-ичный стирающий канал ............................................
1.2.3. q-ичный симметричный кан ал .........................................
1.2.4. Аддитивный гауссовский к а н а л ......................................
1.3. Кодирование и декодирование ...............................................
1.3.1. Виды канального кодирования......................................
1.3.2. Критерии декодирования...............................................
1.3.3. М етрики..............................................................................
1.3.4. Параметр Бхаттачарьи.....................................................
1.4. Теоретико-информационные предпосылки............................
1.4.1. Теоремы коди рован и я.....................................................
1.4.2. Пропускная способность некоторых каналов ............
2. Блоковые коды ....................................................................................
2.1. Основные п о н я т и я .....................................................................
2.1.1. Параметры кодов...............................................................
2.1.2. Границы ..............................................................................
2.2. Линейные к о д ы ...........................................................................
2.2.1. Основные п о н я т и я ............................................................
2.2.2. Синдромное декодирование............................................
2.2.3. Границы ..............................................................................
2.3. Анализ корректирующей способности ..................................
2.3.1. Обнаружение ошибок .....................................................
2.3.2. Исправление ош ибок........................................................
3. Универсальные алгоритмы декодирования......................................
12
14
14
14
16
17
17
17
18
19
20
22
22
23
24
25
27
27
30
33
33
33
34
35
35
39
41
44
45
45
48
3
3.1.
Декодирование по информационным совокупностям . . . .
3.1.1. Поиск ближайшего кодового с л о в а ...............................
3.1.2. Поиск кодового слова наименьшего в е с а ......................
3.2. Метод порядковых стати сти к..................................................
3.2.1. А л го р и т м ...........................................................................
3.2.2. Методы у ск о р ен и я............................................................
3.3. Декодирование по обобщенному минимальному расстоянию
3.3.1. Исправление ошибок и сти р ан и й ..................................
3.3.2. Метод Ф о р н и .....................................................................
3.4. Метод Ч е й з а ..............................................................................
48
48
50
52
52
53
54
54
55
56
II Алгебраические методы кодирования
59
4. Конечные п о л я ..................................................................................... 61
4.1. Некоторые алгебраические структуры .................................. 61
4.1.1. Кольца, тела, п о л я ............................................................ 61
4.1.2. Идеалы .............................................................................. 64
4.2. Алгебраические свойства конечных п ол ей ............................ 67
4.2.1. Основные факты о конечных п о л я х ............................ 67
4.2.2. Минимальные многочлены ............................................ 70
4.3. Вычисления в конечных п о л я х ............................................... 74
4.3.1. Л о гар и ф м ы ........................................................................ 74
4.3.2. Стандартный бази с............................................................ 75
5. Коды Боуза-Чоудхури-Хоквингема.................................................. 77
5.1. Циклические к о д ы ..................................................................... 77
5.1.1. Основные п о н я т и я ............................................................ 77
5.1.2. Декодер М е г г и т т а ............................................................ 79
5.1.3. Корни порождающего м ногочлена............................... 80
5.2. Коды Б Ч Х ................................................................................. 83
5.2.1. Свойства и конструкция к о д о в ...................................... 83
5.2.2. Декодирование кодов Б Ч Х ............................................ 85
5.2.3. Спектральное описание декодера кодов Б Ч Х ............ 88
5.2.4. Алгоритм Берлекэмпа-М есси......................................... 90
5.2.5. Алгоритм Сугиямы............................................................ 94
5.2.6. Вопросы реализации........................................................ 97
6. Коды Рида-Соломона и производные от н и х .................................. 99
6.1. Коды Рида-С олом она............................................................... 99
6.1.1. Конструкции кодов............................................................ 99
6.2. Декодирование до половины минимального расстояния . . 101
4
6.2.1. Алгоритм Г а о ........................................................................ 101
6.2.2. Декодирование с помощью многомерной интерполяции 102
6.3. Списочное декодирование............................................................106
6.3.1. Алгоритм Гурусвами-Судана............................................ 106
6.3.2. Быстрая интерполяция ..................................................... 110
6.3.3. Быстрый поиск функциональных к о р н е й ...................... 111
6.4. Альтернантные коды ..................................................................... 112
6.4.1. Конструкция кодов...............................................................112
6.4.2. Коды Гоппы........................................................................... 113
6.4.3. Криптосистема М а к -Э л и с а ............................................... 115
7. Коды Р и да-М аллера.............................................................................. 118
7.1. Конструкция кодов........................................................................ 118
7.1.1. Построение с помощью полиномовЖегалкина . . . . 118
7.1.2. Построение с помощью конструкции Плоткина . . . . 119
7.2. Д екодирование.............................................................................. 119
7.2.1. Жесткое декодирование..................................................... 119
7.2.2. Мягкое декодирование........................................................ 122
8. Полярные коды ..................................................................................... 126
8.1. Поляризация к а н а л а ..................................................................... 126
8.1.1. Основная и д е я ..................................................................... 126
8.1.2. Общий случай ..................................................................... 128
8.2. Декодирование полярных кодов ............................................... 129
8.2.1. Алгоритм последовательного исклю чения...................... 129
8.2.2. Списочный алгоритм Тала-Варди
...............................131
8.2.3. Последовательное декодирование......................................131
8.3. Усовершенствованные конструкции .........................................133
8.3.1. Полярные коды с C R C ........................................................ 133
8.3.2. Полярные подкоды...............................................................134
8.4. Полярные коды с ядром Арикана ............................................ 139
8.4.1. Д екодирование..................................................................... 139
8.4.2. Оценка надежности подканалов ......................................141
8.4.3. Сравнение к о д о в ..................................................................144
III Коды на граф ах
147
9. Сверточные к о д ы .....................................................................................149
9.1. Конструкция кодов......................................................................... 149
9.1.1. Основные п о н я т и я ...............................................................149
9.1.2. Порождающая м а т р и ц а ..................................................... 151
5
9.1.3. Весовые свойства сверточных к о д о в ................................154
9.2. Методы декодирования............................................................... 156
9.2.1. Алгоритм В и тер б и ............................................................ 156
9.2.2. Алгоритм Бала-Коке-Елинека-Равива..........................159
9.2.3. Анализ вероятности ошибки ............................................ 162
10. Коды с малой плотностью проверок на ч е т н о с т ь .......................... 167
10.1. Основные п о н я т и я ........................................................................ 167
10.2. Д екодирование.............................................................................. 169
10.2.1. Алгоритм инвертирования б и т о в ................................... 169
10.2.2. Алгоритм распространения д о в е р и я ............................... 170
10.2.3. Эволюция п лотн остей .......................................................175
10.3. Методы построения к о д о в............................................................180
10.3.1. Конструкция Г ал л агер а..................................................... 180
10.3.2. Прогрессивное наращивание р е б е р .................................. 181
10.3.3. Протографы........................................................................... 181
10.3.4. Повторительно-накопительные к о д ы ............................... 182
10.3.5. Конструкция на базе кодов Рида-Соломона................... 183
10.3.6. Сравнительный анализ ..................................................... 184
11. Коды для стираюшего к ан ал а...............................................................187
11.1. Надежная доставка данных по ненадежным каналам . . . 187
11.1.1. Потери в сетях с коммутацией пакетов............................ 187
11.1.2. Цифровой ф о н т а н ...............................................................188
11.2. Конструкции кодов........................................................................ 189
11.2.1. Преобразование Л у б и ........................................................ 189
11.2.2. Волновые распределения .................................................. 191
11.2.3. Хищные к о д ы ........................................................................ 194
IV Составные коды
195
12. Методы комбинирования к о д о в ......................................................... 197
12.1. Простые преобразования к о д о в .................................................. 197
12.1.1. Укорочение линейных блоковых кодов............................ 197
12.1.2. В ы калы вание........................................................................ 197
12.1.3. Расш ирение........................................................................... 198
12.2. Составные коды ........................................................................... 198
12.2.1. Чередование к о д о в ...............................................................198
12.2.2. Прямая сумма к о д о в ............................................................198
12.2.3. Конструкция П л о т к и н а ..................................................... 199
12.3. Каскадные к о д ы ........................................................................... 200
6
12.3.1. Прямое произведение к о д о в ...............................................200
12.3.2. Каскадные к о д ы ..................................................................201
13. Т урбо-коды ........................................................................................... 203
13.1. К он стр у кц и я................................................................................. 203
13.1.1. Мотивация ........................................................................... 203
13.1.2. Кодирование ........................................................................ 204
13.1.3. Построение перемежителя.................................................. 205
13.2. Д екодирование.............................................................................. 206
13.2.1. Турбо-декодер .....................................................................206
14. Кодовая модуляция............................................................................... 208
14.1. Решетчато-кодовая м од у л яц и я.................................................. 208
14.1.1. Сигнальные м н о ж е с т в а ..................................................... 208
14.1.2. Конструкция У нгербёка..................................................... 210
14.1.3. Хорошие решетчатые к о д ы ...............................................212
14.2. Многоуровневые к о д ы ..................................................................213
14.2.1. Основные п о н я т и я ...............................................................213
14.2.2. Правила выбора компонентных к о д о в ............................ 215
Предметный у к а з а т е л ь .............................................................................. 219
Библиографический список........................................................................223
Задания для курсовой р а б о т ы ..................................................................230
7
Сокращения, принятые в пособии
AM
БКЕР
БЧХ
ДПФ
КАМ
МППЧ
НОД
РКМ
РСЛОС
ФМ
амплитудная модуляция
Бал-Коке-Елинек-Равив
Боуз-Чоудхури-Хоквингем
дискретное преобразоване Фурье
квадратурно-амплитудная модуляция
малая плотность проверок на четность
наибольший общий делитель
решетчато-кодовая модуляция
регистр сдвига с линейной обратной связью
фазовая модуляция
Введение
Проблема надежной передачи информации возникла перед челове­
ком еще в доисторические времена. Она всегда решаласв путем внесения
некоторой избыточности в передаваемые данные. Это делалось не толь­
ко организационными методами (например, посылка нескольких гонцов
с одним и тем же сообщением), но и подсознательно на уровне языка.
Действительно, во многих случаях удается понять смысл предложения,
даже если при его написании были допущены орфографические ошибки.
Сведения о грамматических правилах, допустимых словах, взаимосвязи
обозначаемых ими понятий, а также типовых ошибках при написании
позволяют восстановить замысел автора текста. Вместе с тем, чем боль­
шее число ошибок допущено в документе (или чем сильнее он поврежден
в результате каких-либо внешних воздействий), тем более трудоемким
становится его понимание и тем больше вероятность неправильной его
интерпретации. С ростом объема данных, накопленных человечеством,
и развитием средств вычислительной техники потребность в обмене ин­
формацией многократно возросла. В простейших случаях избыточность
естественного языка может оказаться достаточной и в случае передачи
по техническим каналам связи. Однако такой подход абсолютно непри­
емлем при передаче больших объемов информации, а также в том слу­
чае, когда принятые данные должны интерпретироваться компьютером.
Таким образом, возникла потребность в разработке математических ме­
тодов помехозащиты.
Теория помехоустойчивого кодирования возникла в 1948 г. после
публикации основополагающей работы К. Шеннона [62], в которой бы­
ла показана принципиальная возможность обеспечения сколь угодно на­
дежной передачи данных со скоростью, не превышающей пропускной
способности канала. Однако конкретные методы, которые позволили
бы достичь этого, в работе Шеннона предложены не были. В течение
нескольких лет после ее публикации были предложены некоторые кон­
струкции кодов, исправляющих ошибки, но их характеристики были
чрезвычайно далеки от теоретически достижимых. С другой стороны,
уровень развития вычислительной техники не позволял реализовать да­
же их, что привело к возникновению пессимистических настроений.
9
По мере развития электроники и вычислительной техники ситуа­
ция стала меняться. Одним из первых практических приложений теории
кодирования стала информационная система сопровождения полета пер­
вого искусственного спутника Земли, созданная в СССР. Помехоустойчи­
вое кодирование начало активно внедряться в системы космической свя­
зи. Постепенно, с ростом возможностей микроэлектроники, оно нашло
применение в модемах, обеспечивавших взаимодействие ЭВМ, системах
мобильной связи, накопителях на оптических и магнитных дисках и лен­
тах. Была разработана богатая алгебраическая теория кодирования, ко­
торая, однако, не давала ответа на вопрос о том, как может быть прак­
тически достигнут предел Шеннона. Революция в помехоустойчивом ко­
дировании состоялась в 1993 году, когда была предложена чрезвычайно
простая конструкция турбо-кодов [18], обеспечивавшая близкую к опти­
мальной корректирующую способность. Позднее аналогичные свойства
были обнаружены и у кодов с малой плотностью проверок на четность
[50], которые были предложены еще в 1963 году [36], но не нашли приме­
нения из-за высокой сложности реализации. Наконец, в 2009 году, через
61 год после выхода работы Шеннона, была предложена конструкция
полярных кодов [14], достигающих пропускной способности достаточно
широкого класса каналов. Разработанный за эти годы математический
аппарат нашел свое применение не только в системах хранения и пере­
дачи информации, но и в задачах обработки изображений, биометрике,
биоинформатике и многих других отраслях.
Целью данного учебного пособия является систематическое изло­
жение наиболее важных разделов теории помехоустойчивого кодирова­
ния с точки зрения инженера-разработчика системы передачи информа­
ции, решающего задачи выбора подходящих корректирующих кодов и
реализации соответствующих алгоритмов, а также создания новых ко­
довых методов. В нем представлены конкретные численные результаты,
характеризующие корректирующую способность различных кодов, ко­
торые могут быть полезны как при выборе наиболее подходящей для
конкретного приложения конструкции, так и для оценки корректности
реализации соответствующего алгоритма. Оно призвано также осветить
недавние достижения теории кодирования, которые не отражены в клас­
сических учебниках и монографиях, изданных на русском языке. Пред­
ставленный библиографический список включает статьи, оказавшие наи­
большее влияние на развитие теории и практики помехоустойчивого ко­
дирования. Несмотря на то, что некоторые из них относятся к 1960-ым
ю
годам, представленные в них методы все еще широко исполвзуются в
самых современник системах передачи и хранения информации. Вместе
с тем, в список литературы включены ссвілки на недавние резулвтаты,
которые уже нашли или в ближайшее время найдут практическое приме­
нение. Читателям рекомендуется самостоятельно изучить хотя бы неко­
торые из этих статей для более глубокого понимания рассматриваемых
вопросов. Это может быть полезно при выполнении самостоятельной на­
учной работы.
Данная книга может использоваться в качестве основного учебного
пособия при изучении односеместровго курса “Основы помехоустойчиво­
го кодирования”. Материал разбит на главы, каждая из которых соот­
ветствует одной или двум лекциям и освещает один из разделов теории
кодирования. Типовая структура главы включает описание некоторого
класса корректирующих кодов, их свойств, методов их кодирования и
декодирования. В конце глав представлены задачи, выполнение которых
способствует лучшему усвоению материалов. Предполагается, что эти за­
дачи будут частично разобраны на практических занятиях, а частично
решены обучающимися самостоятельно. Значительная часть этих задач
заимствована из классических и современных учебников и монографий
по теории кодирования [3, 8, 48, 1, 19, 51, 5, 7]. В приложении представ­
лен примерный список тем для курсовой работы. Кроме того, подготовка
устного сообщения по материалам статей, приведенных в списке литера­
туры (на усмотрение преподавателя), включая строгое доказательство
приведенных там утверждений, может быть альтернативой или допол­
нением курсовой работы или теоретического экзамена.
Пособие организовано следующим образом.
В части I изложены предпосылки развития теории кодирования и
представлены её основные понятия и методы. Часть II посвящена алгеб­
раической теории кодирования. В части III представлены результаты,
касающиеся кодов на графах и вероятностных методов декодирования.
Вопросы построения кодовой модуляции рассмотрены в части IV.
Автор глубоко признателен рецензенту Б.Д. Кудряшову за внима­
тельное ознакомление с рукописью и её конструктивную критику. Автор
также выражает благодарность студентам А. Горбунову, А. Маркову, А.
Мишиной, А. Чугрееву за многочисленные сообщения об ошибках и опе­
чатках.
п
Часть I
Теоретические основы кодирования
12
1. Основные понятия
1.1.
1.1.1.
Кодирование в технических системах
Системы хранения и передачи информации
Исторически первым приложением помехоустойчивого кодирова­
ния являются системы хранения и передачи информации. На рис. 1.1
представлена типовая структура такой системы. Первым этапом обра­
ботки информации на передающей стороне является применение неко­
торого алгоритма сжатия данных (кодера источника), за счет которо­
го во многих случаях можно существенно снизить объем реально пе­
редаваемой информации. Это достигается за счет устранения статисти­
ческой избыточности, которая часто встречается в данных, формируе­
мых современными информационными системами. В некоторых случа­
ях на этом этапе производятся необратимые преобразования данных, т.е.
сжатие с потерями, которые, однако, не являются значимыми для по­
лучателя. Принципы кодирования источников изложены, например, в
[6]. Шенноном было показано, что кодирование источника может выпол­
няться независимо от канального кодирования, поэтому в дальнейшем
этот этап рассматриваться не будет. Вместе с тем, будем предполагать,
что статистическая избыточность в передаваемых данных уже устра­
нена, и они представляют последовательность независимых равномерно
распределенных случайных величин из некоторого множества U.
Далее в некоторых случаях может осуществляться шифрование
данных с целью их защиты от несанкционированного доступа. Иногда
эту операцию ошибочно также называют кодированием. Она, однако, не
является предметом изучения теории помехоустойчивого кодирования.
После добавления к передаваемым данным необходимых служеб­
ных сведений, определяемых особенностями конкретной системы (напри­
мер, адреса получателя), они разбиваются на блоки фиксированной дли­
ны. Операция канального кодирования состоит во внесении в эти блоки
некоторой избыточной информации, которая будет позднее использована
для исправления ошибок, возникающих при передаче. Результатом этой
операции являются последовательности символов q , называемые кодо­
выми словами, которые преобразуются модулятором в сигналы, пригод­
ные для передачи по некоторому каналу. Обозначим как С(и) : U —>• X
14
Д е т е р м и н и р о в а н н о е преобр а зова ние
г
______
_А.
К анальный у р ове нь
_____
Случайное
преобр а зова ние
Физ ическ ий у р овень
Рис. 1.1. Структура систем хранения и передачи информации
преобразование, выполняемое над сообщением и канальным кодером и
модулятором. Это преобразование, как и все другие ранее описанные
операции, является детерминированным.
В противоположность этому, канал передачи информации осу­
ществляет стохастическое, т.е. недетерминированное преобразование
данных У( Х) : X —>• Y, состоящее в наложении на них некоторых случай­
ных помех. Он может быть охарактеризован некоторой условной плотно­
стью распределения Ру\х{УІх )і характеризующей многомерное распреде­
ление сигнала на его выходе при условии подачи на его вход последова­
тельности сигналов х. Задачей приемника, состоящего из демодулятора и
канального декодера, является нахождение и : У (С (и)) « у , где у —сиг­
нал, наблюдаемый на выходе канала. Смысл отношения « будет пояснен
в разд. 1.3.2. Демодулятор преобразует .........маемые из канала сигналы
в форму, пригодную для использования декодером. В простейшем случае
это могут быть оценки для каждого из символов щ, а в наиболее общем
— вероятности равенства q всем возможным значениям при условии на­
блюдения части принятого сигнала, соответствующего этому символу. С1
учетом этого под каналом передачи информации иногда, бывает удобно
понимать также и комбинацию модулятора, собственно канала и демо­
дулятора.
15
Канальный декодер осуществляет собственно нахождение и. После
проверки его правильности, обработки и удаления служебной информа­
ции осуществляется дешифрование и декомпрессия данных. В некоторых
случаях приемник и/или передатчик могут анализировать состояние ка­
нала, динамически подстраивая свои параметры. Кроме того, иногда су­
ществует возможность организации канала обратной связи, который, на­
пример, может использоваться для запроса повторной передачи в случае
неудачной попытки нахождения и.
Предметом данной книги являются вопросы построения канальных
кодера и декодера. Задачей теории кодирования является разработка
математических методов внесения избыточности в данные, а также
алгоритмов, использующих эту избыточность с целью восстановле­
ния сообщений, подвергшихся случайным искажениям в результате
передачи по зашумленному каналу.
1.1.2.
Стеганография и защита цифровых материалов
Методы помехоустойчивого кодирования могут быть использова­
ны для сокрытия факта передачи данных, т.е. незаметного внедрения
их в некоторый объект (контейнер), который может быть передан через
открытые каналы, не вызывая при этом подозрений у лиц, заинтере­
сованных в перехвате сообщения. Очевидно, что для реализации такого
внедрения необходимо минимизировать изменения, которым подвергает­
ся контейнер. Синдромное кодирование [26] позволяет решить эту про­
блему путем представления сообщения как синдрома некоторого зашум­
ленного вектора. Результат декодирования этого синдрома в некотором
линейном коде приводит к вектору, показывающему те изменения, кото­
рые необходимо внести в части контейнера, выбранные для внедрения
информации (например, наименее значащие биты пикселов изображе­
ния), чтобы они задавали кодируемые данные, причем количество таких
изменений минимизируется.
Кроме того, методы помехоустойчивого кодирования могут исполь­
зоваться для выявления путей распространения нелегальных копий циф­
ровых материалов. Для этого каждому легальному их приобретателю
должна выдаваться копия, в которую скрытно внедрена метка, иден­
тифицирующая его. Однако несколько недобросовестных приобретате­
лей могут сравнить свои копии, выявить их отличия и, предполагая, что
именно в различающихся позициях содержится идентифицирующая их
информация, изготовить новую копию, в которой соответствующие сим-
іб
волы заменены случайными или средними значениями, вычисленными
по имеющимся копиям. Вообще говоря, это приводит к разрушению ме­
ток и невозможности идентификации авторов построенной таким обра­
зом пиратской копии. Но если внедренные метки являются кодовыми
словами соответствующим образом подобранного кода, возникает воз­
можность алгебраическими методами построить список возможных на­
рушителей авторских прав [32].
1.1.3.
Поисковые системы
Коды, исправляющие ошибки, могут быть использованы для по­
вышения надежности автоматической классификации данных. Для это­
го различным категориям данных могут быть сопоставлены различные
кодовые слова, после чего построены распознаватели, оценивающие каж­
дый символ кодовых слов по известным признакам классифицируемых
объектов. Некоторые из этих оценок могут быть неправильными, но при
надлежащем выборе кодовых слов существует возможность исправления
этих ошибок и повышения точности классификации [80].
1.2.
М одели каналов передачи информации
1.2.1.
Понятие канала
Очевидно, что для решения задачи, сформулированной в разд.
1.1.1, необходимо иметь некоторую модель канала передачи данных.
Всякий канал передачи информации характеризуется своим входным
и выходным алфавитами X и Y, а также условным распределени­
ем Ру™\хп {у\х } (или плотностью распределения Рут\хп(УІх ) в случае
непрерывного алфавита), у E Ym, х Е Хп. Здесь X и Y обозначают слу­
чайные величины на входе и выходе канала, х и у — их значения, т
и п — длины последовательностей. Далее, если не указано иное, будут
рассматриваться каналы без памяти, для которых выполняется
т
Ѵш : Р у т \ х т {Уіі •••) Ут\х 1і • • • i х т } =
| Р у \ Х {Уі\х і} >
і= 1
т.е. прохождение каждого символа по нему осуществляется независимо.
Дискретным каналом называют канал, у которого как X, так и Y яв­
ляются конечными множествами. Более общая модель дискретного по
времени канала характеризуется произвольными входным и выходным
алфавитами, т.е. предполагается лишь, что передаваемое и принимаемое
сообщения могут быть разбиты на некоторые буквы, каждая из которых
17
передается в свой интервал времени. Наибольший практический инте­
рес представляет модель полунепрерывного канала, характеризующаяся
конечным входным алфавитом и Y = K.
В случае дискретных алфавитов распределение Р у\х {у \%} задает­
ся в виде матрицы
переходных вероятностей, в которой строка х и
столбец у содержат Р у\х
Очевидно, что сумма строк матрицы пе­
реходных вероятностей всегда равна вектору, состоящему из всех единиц.
Дискретный канал называется симметричным по входу, если все стро­
ки матрицы переходных вероятностей являются перестановками первой
строки, симметричным по выходу, если все столбцы матрицы переход­
ных вероятностей являются перестановками первого столбца1. Дискрет­
ный канал называется полностью симметричным, если он симметричен
по входу и выходу.
1.2.2.
g-ичный стирающий канал
II
и
К
Простейшей моделью является q-ичный стирающий канал. Его
входным алфавитом является X = {0 , . . . , q —1}, а выходным — Y =
{О,. . . , q —1, с}. Появление символа б, называемого стиранием, на вы­
ходе канала означает безвозвратную потерю соответствующего переда­
вавшегося символа. Матрица переходных вероятностей канала имеет вид
/1 —р
0
0
р\
0
1 —р .
0
р
где р — вероятность стирания.
V
о
о
. • 1 —р р /
Графическая модель канала при q = 2 представлена на рис. 1.2, а.
Данная модель может использоваться для описания IP-сетей, в ко­
торых, как известно, могут происходить потери пакетов. Несложно вклю­
чить в пакеты, передаваемые по сети, их порядковый номер. В этом слу­
чае потеря пакета может быть легко обнаружена и интерпретирована
как стирание. Заметим, что в рамках данной модели символы (например,
пакеты), доставленные получателю, считаются безошибочными. Эта мо­
дель описывает также избыточные массивы жестких дисков (RAID-5,6),
в которых факт отказа любого из дисков может быть легко обнаружен.
Ввиду простоты модели двоичный стирающий канал стал первым,
для которого были предложены коды, достигающие его пропускной спо­
собности [49, 63]. В настоящее время эти коды нашли применение в сисожалению, в литературе иногда симметричный по входу канал называют сим­
метричным по выходу и наоборот.
18
(а)
(b)
(с)
Рис. 1.2. Дискретные симметричные каналы:
а — двоичный стирающий канал; b — двоичный симметричный канал; с
— двоичный симметричный канал со стираниями
стемах мобильной связи стандарта LTE Advanced [76] и цифровом теле­
видении [25].
1.2.3.
g-ичный симметричный канал
Модель q-ичного симметричного канала предполагает X = Y =
{О,. . . , q — 1}, причем строки матрицы переходных вероятностей явля­
ются перестановками друг друга. Это же справедливо и для ее столбцов.
Данная модель характеризует каналы, искажения в которых не зависят
от передаваемых данных. Как правило, рассматривается случай q = рт ,
где р — простое число. В этом случае существует конечное поле ¥ q, и вы­
ход канала может быть представлен как Y = X + Е, где X — передавае­
мый символ, Е — случайная величина, описывающая возможные искаже­
ния. Вероятность р = Р {Е ^ 0} называют вероятностью ошибки. Наи­
больший интерес представляет случай q = 2 (см. рис. 1.2, Ь). Для него
П -р
р \
матрица переходных вероятностей имеет вид
=
V р 1~ р)
В этом случае величину р называют переходной вероятностью канала
или вероятностью ошибки. Данная модель в течение многих лет была
основной в исследованиях по теории кодирования.
Представляет интерес также модель q-ичного симметричного ка­
нала со стираниями. Она характеризуется выходным алфавитом канала
19
Y = XU {б}. Соответствующая матрица переходных вероятностей в случае двоичного входа имеет
s — вероятность стирания. Рис. 1.2, с иллюстрирует случай двоично­
го симметричного канала со стираниями. Стирание может искусствен­
но вводиться приемником в том случае, если соответствующий символ
был принят крайне ненадежно. Эта информация может помочь декоде­
ру исправить ошибки в принятой последовательности, так как ему не
приходится искать местоположение некоторых из них.
1.2.4.
Аддитивный гауссовский канал
Намного большую практическую ценность имеет модель аддитив­
ного гауссовского канала или канала с аддитивным белым гауссовским
шумом. Она характеризуется некоторым, как правило, конечным вход­
ным алфавитом X С 1 и выходным алфавитом Y = К. Принятый сиг­
нал представляется как Y = X + Z, X G Х ,Х
jV(0, а2). Таким об(у—х)^
разом, Р у\х(у\х ) = ^2 2е
' Заметим, что различные реализации
случайной величины Z (отсчеты шумового процесса) предполагаются
независимыми. Принято считать, что Z является вещественной частью
комплекснозначного гауссовского случайного процесса со спектральной
плотностью мощности N q. Из этого вытекает, что а 2 = N q/2. Пусть
E s = М [|Х |2] . Тогда на передачу одного символа в среднем затрачива­
ется энергия2 E s. Таким образом, качество канала может быть охарак­
теризовано отношением сигнал/шум на символ E s/N q.
Зачастую возникает необходимость сопоставления характеристик
различных методов кодирования и модуляции. Очевидно, что чем боль­
шую избыточность вносит передатчик, тем, как правило, большую по­
мехозащищенность имеет система. Предельным случаем является ткратное повторение каждого передаваемого символа. Однако такой под­
ход эквивалентен m-кратному увеличению энергозатрат на передачу
одного символа. Поэтому сравнение обычно производят при фиксированном отношении сигнал/шум на бит -щ = -щ^, где R — сред­
нее количество битов полезной информации, кодируемое одним симво­
лом из X. Отношение сигнал/шум принято выражать в децибелах как
ОСШ = ЮІ^ДДѴоМдБІ.
2Реальные энергозатраты передатчика пропорциональны этой величине и опре­
деляются схемотехническими решениями.
20
Традиционный подход к построению систем передачи информации
предполагает, что демодулятор осуществляет жесткое детектирование
принятого сигнала, т.е. находит наиболее вероятное значение ж E X, со­
ответствующее принятому сигналу у. В разд. 1.3.2 будет показано, что
оптимальным правилом является выбор в качестве х ближайшего к у
элемента X. Предположим, что X = { —
и передавался сим­
вол х = у/~ЁГ8. Тогда детектирование будет ошибочным, если принятый
сигнал у окажется отрицательным. Вероятность этого события равна
Pa w g n
P \ Y < 0\ Х =
{
»оо
PY\x{y\y/Ps)dy
—ос
1
e wody = Q (y/2 E s/No),
( 1. 1)
Іу/щ ѴРЩ
где Q(x) = -k=
e t2/2dt. Аналогичное выражение получается и для
случая х = —л/Щ ,х = y/E~s. Таким образом, аддитивный гауссовский
канал в сочетании с процедурой жесткого детектирования может быть
представлен как двоичный симметричный канал с переходной вероятно­
стью P a w g n • Величины х являются исходными данными для декодера,
который может реализовывать некоторый алгоритм жесткого декоди­
рования.
Недостатком жесткого детектирования является потеря информа­
ции о надежности решений демодулятора. В связи с этим в современных
системах, как правило, используется мягкое детектирование. Оно со­
стоит в вычислении для каждого символа Р { X = х \Y = y}. В случае
канала с АБГШ и Р { X = л/Щ } = Р { X = -y /W s) = 1/2 эти веро­
ятности удобно представить в виде логарифмического отношения прав­
доподобия L = In
РуХ
получим
у\ . Воспользовавшись теоремой Байеса,
VPs уР Уj
L = In
Р г\х{у \у /Щ
4 y/Ws
PY\x(y\ - Ѵ Щ
Ѣ
У-
( 1.2)
Полагая E s = 1,<т2 = Щ/ 2, получим L = ^ у . Алгоритмы декодирова­
ния, способные полностью учитывать эту информацию, носят название
алгоритмов мягкого декодирования.
Построение мягкого детектора и, в особенности, мягкого декоде­
ра, является нетривиальной задачей. Иногда удается построить декодер,
способный лишь исправлять ошибки и стирания. В этом случае можно
преобразовать аддитивный гауссовский канал с X = { ± ѵ х } в двоич­
21
ный симметричный канал со стираниями, заменив ими особо ненадежные
принятые символы, т.е.
1 L >6
X=
б
\L\ < 6 ,
О L < —6
где 6 — некоторый порог.
1.3.
Кодирование и декодирование
1.3.1.
Виды канального кодирования
Основным принципом канального кодирования является отказ от
независимой передачи по каналу символов, порождаемых источником
(информационных символов). Канальный кодер формирует последова­
тельность, каждый элемент которой статистически связан со многими
информационными символами. Для простоты будем считать, что как
информационные, так и закодированные символы принадлежат одному
и тому же алфавиту X. В зависимости от способа построения и свойств
кодовой последовательности выделяют следующие классы кодов:
• Блоковый код С является некоторым подмножеством векторного
пространства Хп, элементы которого называются кодовыми слова­
ми. Операция кодирования состоит в разбиении последовательности
информационных символов на блоки фиксированной длины к , каж­
дому из которых сопоставляется строго определенное кодовое сло­
во. При этом кодирование информационных блоков осуществляется
независимо друг от друга. Под скоростью кода понимается отноше­
ние R = к/п .
• Древовидный код представляет собой множество последовательно­
стей над X бесконечной длины, на которое отображается множество
бесконечных последовательности информационных символов. Кодер
за один интервал времени отображает ко информационных симво­
лов в по закодированных символов, причем результат этой опера­
ции зависит от предыстории. Таким образом, скорость кода равна
R = ко/щ . При практической реализации древовидных кодов ин­
формационная и кодовая последовательности усекаются до конечной
длины, что позволяет их рассматривать и как блоковые коды. Свер­
точные коды являются важнейшим подклассом древовидных кодов.
22
• Бесскоростной или фонтанный код представляет собой множество
последовательностей над X бесконечной длины, которые однознач­
ным образом получаются из векторов информационных символов ко­
нечной длины к.
При практической реализации как древовидных, так и фонтанных кодов
кодовые последовательности некоторым образом усекаются до конечной
длины.
1.3.2.
Критерии декодирования
Напомним, что задачей декодера является нахождение оценки и со­
общения, закодированного кодером и подвергшегося случайным искаже­
ниям в канале. В случае цифровых сообщений естественным критерием
качества декодирования является вероятность ошибки, т.е. несовпаде­
ния оценки и истинного сообщения и. Вероятность такого события рав­
на Рс = J2u^q P u \Y W \ y } = 1 —Pu\Y {Щу}> гДе У ~ последовательность
принятых символов. Очевидно, что минимальная вероятность ошибки
достигается при выборе
и = aigm axP u\Y {и\у} ■
и
'
Данное правило принятия решения носит название критерия идеаль­
ного наблюдателя. Из теоремы Байеса вытекает, что3 Рщу {и \у} =
Ру\и{у\и}Ри{и} ^ з наменатель этой дроби от и не зависит и может не учиты­
ваться при максимизации. Кроме того, при наличии качественно реали­
зованного кодера источника все сообщения могут считаться равноверо­
ятными. В этом случае критерий идеального наблюдателя эквивалентен
критерию максимума правдоподобия
и = argm axPyir/ {у\и} .
и
1
(1.3)
В дальнейшем, если не указано иное, будет рассматриваться именно он.
Вышеуказанные критерии могут применяться не только для оцен­
ки всего сообщения и (поблоковое декодирование), но и отдельных его
символов щ (посимвольное декодирование). В общем случае при этом
оценка всего сообщения и может не совпадать с вектором посимвольных
оценок (щ , .. . ,гф). Иногда возникает необходимость найти надежность
оценок для каждого из символов. В случае U = {0,1} эту информацию
3Заметим, что в случае полунепрерывного канала вероятности получения кон­
кретной последователвности у, как правило, равны нулю. Для разрешения неопре­
деленности необходимо перейти к условным плотностям распределения.
23
удобно представить в виде логарифмических отношений правдоподобия
Р { щ = 1\у} =
J 2 U:ui= 1 Ри\У і и \у}
п Р { щ = 0\у}
П Eu:U
i=oP U\Y {и\у }'
(1.4)
В некоторых случаях может представлять интерес нахождение не
единственной оценки и , максимизирующей Рц\у {и\у}, а всех возможных
и , для которых эта величина является достаточно большой (списочное
декодирование). В дальнейшем можно воспользоваться дополнительной
информацией (например, сведениями о структуре сообщения и) для того,
чтобы выбрать наиболее подходящий элемент этого списка.
1.3.3.
Метрики
Операция кодирования задает взаимно однозначное соответ­
ствие между возможными сообщениями и кодовыми словами ис­
пользуемого кода С. Это позволяет переписать (1.3) как с =
a r g m a x c e c P y n i j f n j j / i , . . . , ^ ^ ! , . . . , ^ } , где { у і , . . . , у п) — последова­
тельность сигналов, возникшая на выходе канала в результате переда­
чи кодового слова (возможно, бесконечного) ( щ , . . . , ^ ) . В случае ка­
нала без памяти это выражение может быть преобразовано далее в 'с =
arg т а х сеС
1 P Y\X ІУі\сі} ■Во многих случаях вычисления с условны­
ми вероятностями оказываются неудобными. Попытаемся свести задачу
декодирования по максимуму правдоподобия к задаче поиска кодового
слова, ближайшего к принятой последовательности в некоторой метрике,
т.е. критерию минимального расстояния.
п?=
Определение 1.1. Функция d (x , y ) : Y n х Y n —> IR+ называется мет­
рикой, если для всех x , y , z G Y n:
1- d{y,y) = 0;
2. d(x,y) = d{y, x);
3. d( x , y ) < d ( x , z ) Jrd( z, y) (неравенство треугольника).
В случае двоичного симметричного канала
= р^ ’с*)(\ —
равно 1, если уі ф сі, и 0 в
противном случае. Если переходная вероятность канала р не превосходит
1/2, получим, что с = arg т т с£С dn(y, с), где dH ( y x ) = Т я= іК У іХ і) расстояние Хэмминга между последовательностями у и с, т.е. число по­
зиций, в которых они отличаются. Критерий минимального расстояния
Хэмминга применяется и в случае щичного симметричного канала при
q > 2. Однако он эквивалентен критерию максимума правдоподобия,
24
только если все возможные ошибки уі —сі распределены равномерно на
множестве Y \ {0}.
В случае аддитивного гауссовского канала Ру\х(Уі\сі)
—
1 _(Уі~сі)
^
f-— we i*2 , откуда вытекает, что критерии максимума правдоподоy/2'ка1
____________
бия эквивалентен с = argmincGCdE (y, с), где dE (y, с) = ^ / Y a =i ІУі ~ сі )2
— расстояние Евклида между у и с.
Алгоритмы, позволяющие всегда найти точное решение оптимиза­
ционной задачи с = argm incecd*(y,c) для некоторой метрики d*, назы­
ваются алгоритмами полного декодирования. Как правило, они имеют
достаточно высокую сложность. В связи с этим на практике часто ис­
пользуют алгоритмы декодирования с ограниченным расстоянием, ко­
торые находят решение этой задачи, только если <і*(у,с) < do для неко­
торого параметра do.
Несложно убедиться в том, что расстояния Хэмминга и Евклида
являются метриками. Из неравенства треугольника вытекает, что если
какие-то два кодовых слова расположены близко друг к другу, то рас­
стояния между ними и принятой последовательностью также примерно
равны. Если одно из них является правильным решением задачи декоди­
рования, это означает, что вероятность ошибки может быть сопоставима
с вероятностью правильного решения. Таким образом, при построении
кодов необходимо обеспечить достаточно большое минимальное рассто­
яние между кодовыми словами.
1.3.4.
Параметр Бхаттачарьи
Рассмотрим канал без памяти с двоичным входом, передачу по
нему равновероятных символов без кодирования и приемник по максиму-
25
О
0.5
1
1.5
2
2.5
3
Рис. 1.3. Аппроксимация индикаторной функции
му правдоподобия. Попытаемся оценить вероятность ошибки. Она равна
1
р е = ^ 2 р { Ф і р у {у} =
Рх м
у£У
ж=0
1 1
= х =0 2 ^ Ру\х
Х
> Ру\х
( ру \ х { у \ х }
= ^ Z \ ^ Z PY \ x { y \ x } x
\ PY \ x { y \ x ]
ж=0 уе¥
Ы х)
х =0
уе¥
Р у \х {у\х } р м у} =
=
Л <
)
р у\х {у\х}
Ру\х {у\х}'
Здесь х(А) ~ индикаторная функция, которая равна 1, если условие А
выполняется, и 0 в противном случае. На рис. 1.3 представлен гра­
фик индикаторной функции события х > 1. Видно, что эту функцию
можно оценить сверху как у/х, что и было использовано при получении
последнего неравенства. Таким образом, Ре < Z (P ), где
Z{p )
=
\JР у |х fa|Q} ру\х {у Ш
y£Y
— параметр Бхаттачарьи канала Р.
26
(I-5)
1.4.
Теоретике-информационные предпосылки
1.4.1.
Теоремы кодирования
Рассмотрим две случайные величины X и Y. Если в результате
испытания оказалось, что Y = у, то это может изменить вероятность
появления X = х от априорного значения Р х {х } до апостериорного
значения Р х\у {х\у}- Меру этой зависимости удобно охарактеризовать
величиной ІХ;у(х-,у) = log2 P% \ X
J } } = log2 pP
x {l}Py{y} = Ъ - М У і Х), ко­
торая равна количеству информации о значении X , даваемому событием
Y = у. Усредняя ее по всем х и у, получим среднюю взаимную инфор­
мацию4
ф ш э
= Е Е
PXY {Х, у} l0g2
=Е Е Р х {х} PY \X {y\x}log2
х € Х у<=Х
PXY {х, у}
Р х {х} Ру {у}
Р у\х ІУ\х}
Т ,х € Х РХ №
Р у\Х {У\х}'
( 1. 6)
Необходимо отметить, что эта величина характеризует случайные ве­
личины, а не их значения. Интуитивно понятно, что чем слабее связан
выход канала передачи информации с его входом, тем меньше шансов
на то, что информацию удастся достоверно передать через него.
Определение 1.2. Пропускной способностью дискретного канала пере­
дачи информации, заданного условным распределением Р у\х ІУ\Х}, на­
зывается величина
С = max І ( Х ; Y).
Рх{х}
Пропускная способность канала измеряется в битах полезной ин­
формации на один символ, передаваемый по каналу. Для случая дис­
кретных по времени каналов связи пропускная способность определяется
аналогичным образом, но при оптимизации по входным распределениям
возникает необходимость наложить дополнительные ограничения на пе­
редаваемый сигнал X в виде М [ /(X )] < т , где f {x) — некоторая функ­
ция. Выбирая f ( x ) = ж2, получим ограничение на среднюю мощность
передаваемого сигнала. Ниже будет показано, что существуют методы
кодирования данных, обеспечивающие надежную связь со скоростью, не
превышающей пропускную способность канала. Для ее достижения, од­
нако, требуется оптимизировать распределение передаваемых символов.
4Для непрерывных случайных величин вероятности заменяются плотностями рас­
пределения, а сумма — интегралом.
27
В тех случаях, когда распределение задано и не подлежит оптимизации,
пропускная способность может быть оценена просто как С = I ( X; Y).
Теорема 1.1 (Обратная теорема кодирования [3]). Пусть дан дискрет­
ный стационарный источник с алфавитом объема |U| = М и энтропи­
ей? Н . При кодировании его блоковым кодом со скоростью R для любо­
го размера информационного блока к и передаче по дискретному каналу
без памяти средняя вероятность ошибки Р^ на один продекодирован­
ный информационный символ удовлетворяет неравенству
P b\og2(M - 1) + Щ Рь) > Я - 7
где Ті{х) = —х log2 х — (1 —х) log2(l —х).
Аналогичное утверждение справедливо и для дискретных по вре­
мени каналов без памяти. Данная теорема показывает невозможность
обеспечения надежной связи со скоростью, превышающей пропускную
способность канала.
Для того, чтобы показать положительный результат для случая
скоростей, меньших пропускных способностей канала, приходится рас­
сматривать всевозможные коды, состоящие из случайно выбранных ко­
довых слов, и усреднять вероятность ошибки декодирования по всем та­
ким кодам.
Теорема 1.2 (Прямая теорема кодирования, [3]). Пусть Р у \ х { у \ х ) ^
переходные вероятности для некоторого дискретного канала без памя­
ти. Рассмотрим ансамбль блоковых кодов С С ХД каждый из кото­
рых содержит М = eRn кодовых слов, причем их символы выбираются
независимо в соответствии с распределением Р х {х}. Тогда для любого
сообщения средняя по всем кодам этого ансамбля вероятность ошибоч­
ного декодирования56 по критерию максимума правдоподобия удовлетво­
ряет неравенству
Pe < e ~ nE^ R\
(1.7)
5Энтропией источника U называется Н = Hindoo HpU), где HpU) =
І Y u&Jk ~Tu {и} log2 Ри {и}, Ри {и} — вероятность порождения им последователь­
ности символов и.
6Сравнивать величины Рь и Ре, вообще говоря, нельзя, так как выбор неправиль­
ного кодового слова может приводить к выбору различного числа неправильных
информационных символов.
28
где E r(R) = maxo<p<i тах ц х (Е0(р, Рх ) - pR) и
1пЕ
Е
р
имфі.{Щ
}
у€Y Ѵжех
Ео(р, Рх)
i +р
5
причем E r( R) > 0 при всех R, О < R < С.
Таким образом, используя достаточно длинные случайные коды,
можно обеспечить в среднем сколь угодно малую вероятность ошибки.
Это, однако, не означает, что произвольно выбранный код обеспечит
надежную помехозащиту. Большинство случайно формируемых кодов
действительно являются хорошими, но некоторые из них могут быть и
плохими, т.е. вероятность ошибки декодирования при их использовании
может быть велика. Средняя по всем кодам вероятность ошибки оказы­
вается достаточно малой (1.7), поэтому можно утверждать, что суще­
ствуют коды, обеспечивающие сколь угодно малую вероятность ошибки
при скорости передачи данных меньшей пропускной способности канала.
Прямая теорема кодирования справедлива также для каналов с памятью
и дискретных по времени каналов.
Заметим, что для получения кодов, достигающих пропускной спо­
собности канала, необходимо производить оптимизацию и по распреде­
лению их символов. В реальных системах связи далеко не всегда удается
реализовать оптимальные распределения.
Выражение (1.7) характеризует вероятность ошибки, которая в
принципе может быть достигнута с помощью некоторых кодов. Суще­
ствует, однако, и фундаментальное ограничение снизу на эту величину.
Т еорем а 1.3 (Граница сферической упаковки [3/). Д ля любого кода дли­
ны п, содержащего М = eRn кодовых слов, вероятность ошибки декоди­
рования по максимуму правдоподобия в дискретном канале без памяти
удовлетворяет неравенству
р е > e - n ( E sp( R -o 1(n))+o2(n)) ^
(Lg)
где
E sp = sup
max Е 0(р, Рх ) ~ pR } ,
р >о \ Р х { х }
(
\
ІИ 8“h IXI ІИ77
/ \
In 8 i
oi(n) = ----- ^
; 02{n) =
переходная вероятность канала.
/"2" 1
J
6^
u
T~>
~ наименьшая ненулевая
29
1.4.2.
Пропускная способность некоторых каналов
Д воичны й стирающий канал
Рассмотрим в качестве примера задачу нахождения пропускной
способности двоичного стирающего канала (binary erasure channel, ВЕС)
с вероятноствю стирания р. Пуств Р х {0} = л = 1 — Р х { 1}. Тогда
I ( X ] Y ) = 7Г(1 - р ) log2 ^ ^
+ (1 -7 г )(1 -р ) log2 (І1^ ^ ) +7ф1 °g2 ^ +
(1 7r)plog2
= ( 1 - р ) (-7Tl0g27T - (1 7г) log2(1 - 7г)) . МаКСИМИзируя это выражение по 7Г, получим л = 1/2 и
С в е с = 1~Р-
(T9)
В данном случае декодирование сводится к попытке найти кодовое
слово, совпадающее с принятой последователвноствю в нестертых пози­
циях. Ошибка может произойти в том случае, если таких кодовых слов
окажется несколвко. Таким образом, теорема кодирования утверждает,
что при кодировании к символов блоковым кодом длины п и передаче
по двоичному стирающему каналу для успешного декодирования необ­
ходимо обеспечитв к < (1 —р)п. В этом случае среднее число нестертых
позиций окажется меньше к.
Д воичны й сим м ет ричный канал
Для двоичного симметричного канала (binary symmetric channel,
BSC) с переходной вероятностью р преобразования, аналогичные выше­
приведенным, приводят к выражению
C b s c = 1 +p\ og2p + (1 - p ) l o g 2(l - р ) .
(1.10)
При этом оптимальным распределением символов на входе канала также
оказывается равномерное.
А ддит ивны й гауссовский канал
Можно показать [3], что пропускная способность канала с адди­
тивным белым гауссовским шумом (additive white Gaussian noise channel,
AWGN)
C a WGN = 2 1°§2
(1.11)
достигается при использовании кодовых слов, символы которых распре­
делены по нормальному закону с нулевым матожиданием и дисперсией
E s, где E s — средняя энергия на символ. Ясно, что при этом X = R. Од­
нако на практике реализовать такое сигнальное множество достаточно
сложно (хотя и возможно получить достаточно хорошее приближение,
зо
4
гауссоік кік' < иі м;і. ім
Рис. 1.4. Пропускная способность аддитивного гауссовского канала
см. [34]). В случае равномерного распределения передаваемых символов
на М-элементном множестве X = {Х/|0 < г < М } из (1.6) получим, что
максимальная достижимая скорость передачи данных равна
(я-А'О2
2J
С(Х)
(x-Xj)2
M e 2а1
dx.
log2
Ц - А '-)2
тг^М—1
2^j=o e
На рис.
1.4 представлены графики зависимости про­
пускной способности от отношения сигнал/шум на символ
для случая М-ичной амплитудно-импульсной модуляции, т.е.
X
=
| ( - М + 1 + 2i)d\i
G
{0, 1, . . . , М - 1} , d = д / т ѵ і & т КР°ме
того, на рисунке представлена кривая пропускной способности двоич­
ного симметричного канала, полученного как комбинация гауссовского
канала и жесткого посимвольного детектора. Видно, что использование
мягкого детектирования и декодирования позволяет значительно повы­
сить пропускную способность в области малых отношений сигнал/шум.
Кроме того, с ростом отношения сигнал/шум увеличивается проигрыш
системы с равномерным распределением дискретных сигналов на входе
по сравнению с оптимальной схемой, осуществляющей передачу с
использованием нормально распределенных сигналов. Впрочем, он
никогда не превосходит тге/6 или 1.53 дБ [34].
31
Упражнения
1. Покажите, что I ( X ; Y ) > 0, причем І(Х \ Y) = 0 тогда и только тогда, когда X
и Y являются независимыми случайными величинами.
2. Выведите формулу (1.11) и обоснуйте необходимость использования нормально
распределенных сигналов для достижения пропускной способности аддитивного
Гауссовского канала.
3. Постройте график, аналогичный рис. 1.4, для случая сигнального множества
М-ичной фазовой и квадратурно-амплитудной модуляции.
32
2. Блоковые коды
2.1.
2.1.1.
Основные понятия
Параметры кодов
Блоковым кодом С называется любое подмножество векторного
пространства Хп. Элементы множества С называются кодовыми слова­
ми. Величина п называется длиной кода. Если код содержит М = \С\
кодовых слов, то с помощью его кодовых слов можно представить log2 М
битов полезной информации.
Как было показано в разд. 1.3.3, вероятность ошибки декодирова­
ния зависит от расстояния между кодовыми словами. Поэтому важней­
шей характеристикой кода является его минимальное расстояние
d = min d(a, b).
a,b£C
афЬ
Предположим, что Y = X, и рассмотрим все элементы Хп, находящие­
ся на расстоянии менее d / 2 от кодовых слов С. Очевидно, что никакие
два шара, построенные таким образом, не пересекаются. Следовательно,
если декодер использует критерий минимального расстояния и приня­
тая последовательность у попала в один из этих шаров, решением зада­
чи декодирования является кодовое слово, находящееся в ее центре. В
случае метрики Хэмминга это означает, что код способен исправить лю­
бую конфигурацию из |_id —1 ) / 2 J ошибок. При этом, однако, некоторые
векторы из Хп могут не попасть ни в один из шаров. Это не является
проблемой для полноценного декодера, использующего критерий мини­
мального расстояния, кроме, естественно, случая равноудаленности у от
нескольких ближайших кодовых слов. К сожалению, многие алгоритмы
декодирования реализуют лишь декодирование с ограниченным рассто­
янием, т.е. способны найти кодовые слова такие, что у находится в ша­
рах радиуса г, описанных вокруг них. В большинстве случаев г < d /2,
вследствие чего таких кодовых слов может быть не более одного. В про­
тивном случае результатом декодирования может быть список кодовых
слов. Если декодеру не удалось найти ни одного кодового слова, доста­
точно близкого к у, фиксируется отказ от декодирования. Но даже если
декодер возвратил единственное кодовое слово, невозможно гарантиро­
вать, что оно совпадает с тем, которое было передано на самом деле.
зз
Декодирование с ограниченным расстоянием не позволяет достичь про­
пускной способности канала.
2.1.2.
Границы
Рассмотрим некоторые фундаментальные ограничения на парамет­
ры блоковых кодов. Везде далее будет рассматриваться метрика Хэммин­
га и предполагаться q = | X |.
Теорема 2.1 (граница Хэмминга). Д ля любого q-ичного кода длины n
с минимальным расстоянием d = 2 t + 1 число кодовых слов удовлетво­
ряет неравенству
A q(n, d) <
qn
E l o СШ
1)«
(2.1)
Доказательство. Код с минимальным расстоянием d = 2 t + 1 способен
исправить любую конфигурацию из t ошибок, что означает возможность
построения непересекающихся шаров радиуса t с центрами в кодовых
словах. Каждый такой шар содержит V = ^ ^ =0 ОП(q —1 ) q-ичных век­
торов. При этом общее число векторов в Xn не может быть меньше числа
векторов, попавших в эти шарві, т.е. A q(n,d)V.
□
Коды, для которых (2.1) выполняется с равенством, называются
совершенными. Совершенный код при декодировании по минимально­
му расстоянию Хэмминга способен исправить любую конфигурацию из
t ошибок и ни одной конфигурации большего веса. К сожалению, можно
показать, что множество совершенных кодов исчерпывается примитивнвіми кодами Хэмминга (t = 1,п =
наД ^ ) , двоичнвіми кодами с
повторениями (n = 21 + 1), двоичным (n = 23, t = 3, 212 кодовых слов) и
троичным (t = 2, n = 1 1 , 36 кодовых слов) кодами Голея.
Оценим правую часть (2.1) при больших n. Для этого запиа /
і\
(2п
(22"
п
_ 2”1_(гі—1)/2]\{п—|_(гі—1)/2])!
шем A 2{n,d) <
L(d_1)/2j
<
\_{d- i)/2j
П!
z^i=0 Cn
Cn
Воспользовавшись аппроксимацией Стирлинга n! = 2n log2 n+o(1),
получим А 2(пД)
~
2nH ~^°S2~ Kn 2“)l°g2 (n —)—nlog2n
_
2 n (i+ ^ l°g 2^ + ( 1- ^ ) l ° g 2(1- ^ ) ) >т аким образом,
R
log2 M (n ,d ) < x _ n f_d_
n
~
V2 n
(2.2)
Теорема 2.2 (граница Варшамова-Гилберта). Существует q-ичный
код длины n с минимальным расстоянием d, число кодовых слов в ко­
34
тором удовлетворяет условию
A q(n ,d ) >
(2.3)
Доказательство. В качестве доказательства попытаемся построить код
С, удовлетворяющий условию теоремы. Заметим, что если код имеет
максимально возможную мощность, то для любого х ^ С существует
с G С : сін(х , с) < d — 1, так как в противном случае такой вектор х мож­
но было бы добавить в код без ущерба для его минимального расстояния.
Введем множество возможных кодовых слов А и положим А = X, С = 0.
Будем выбирать по одному элементу с из А, добавлять его в С и исклю­
чать из А шар радиуса d — 1 с центром в с до тех пор, пока в Л не оста­
нется ни одного элемента. Видно, что на каждом шаге этой процедуры
из А исключается не более Хд=о ^ пІЯ ~ 1)* векторов (некоторые из них
попадают сразу в несколько таких шаров). Таким образом, минимальное
число шагов, после которого алгоритм останавливается, удовлетворяет
(2.3).
□
Теорема 2.3 (граница Синглтона). Число кодовых слов в q-ичном коде
длины п с минимальным расстоянием d удовлетворяет
A q(n,d) < q n~d+1.
(2.4)
Доказательство. Рассмотрим множество д-ичных векторов, отличаю­
щихся друг от друга не менее, чем в d позициях. Выберем какие-нибудь
d —1 координат и удалим их из всех этих векторов. Они останутся раз­
личными, поэтому их число не может превосходить qn~^d~l\
□
2.2.
2.2.1.
Линейные коды
Основные понятия
Основной проблемой, возникающей при реализации кодера и деко­
дера блоковых кодов, является необходимость хранить весь список кодо­
вых слов, количество которых растет экспоненциально с ростом размера
информационного блока. От этого недостатка свободны линейные блоко­
вые коды.
Определение 2.1. Линейным блоковым кодом С называется /с-мерное
линейное подпространство n -мерного векторного пространства Хп, где
X = F — некоторое поле.
35
Как известно, всякое линейное пространство имеет базис, т.е. та­
кой линейно независимый набор элементов, что любой элемент этого
пространства представим в виде линейной комбинации элементов бази­
са. Запишем элементы какого-либо базиса в виде строк к х п порож­
дающей матрицы G. Тогда линейный код может быть представлен как
С=
= uG\u £ F fc| . Таким образом, для задания кода достаточно ука­
зать лишь его порождающую матрицу, а операция кодирования сводится
к умножению на нее, что радикально упрощает реализацию кодера.
Величина к называется размерностью кода. Скоростью кода назы­
вают величину R = к /п . Основные параметры (длину, размерность, ми­
нимальное расстояние) линейных блоковых кодов принято указывать в
виде тройки (n, k,d). В тех случаях, когда минимальное расстояние неиз­
вестно или не представляет интереса, используют запись (п, к). Очевид­
но, что число кодовых слов в линейном коде равно qk, q = | F |. Заметим,
что d = minа,ЬеС^я(^,&) = т іп а^ец wt(a —6), где wt(c) — вес ХэмминафЪ
афЪ
га вектора с, т.е. число ненулевых элементов в нем. В силу линейности
кода а — Ъ £ С. Это означает, что минимальное расстояние кода равно
наименьшему из весов его ненулевых кодовых слов.
Из линейной алгебры известно, что всякому линейному векторно­
му подпространству С С F” соответствует некоторое двойственное под­
пространство С С F” такое, что скалярное произведение любых векто­
ров Ѵс £ С, с £ С равно нулю. Выберем некоторый базис двойствен­
ного подпространства линейного блокового кода и запишем его эле­
менты в виде строк (п — к) х п проверочной матрицы Н. Это позво­
ляет описать тот же самый линейный блоковый код как ее ядро, т.е.
С = ker Н = {с £ Fn IНсТ = О}. Из этого также вытекает, что порожда­
ющая и проверочная матрицы связаны соотношением
H G T = 0.
Заметим, что в дальнейшем иногда будет удобно рассматривать “избы­
точные” проверочные матрицы с числом строк, большим п — к, часть
из которых при этом являются линейно зависимыми. Кроме того, будут
использоваться также проверочные матрицы, содержащие элементы из
некоторого расширения исходного поля F. При этом будет неявно пред­
полагаться, что код задан как кет Н П Fn.
Теорема 2.4. Если Н — проверочная матрица кода длины п, то код
имеет размерность к тогда и только тогда, когда существуют п —
36
к линейно независимых столбцов матрицы Н , а любые п — к + 1 ее
столбцов являются линейно зависимыми.
Доказательство. Утверждение теоремы эквивалентно тому, что ранг
матрицы Н равен п — к. Его справедливость вытекает из теоремы о
структуре множества решений системы линейных однородных алгебра­
ических уравнений.
□
Теорема 2.5. Линейный блоковый код имеет минимальное расстояние
d тогда и только тогда, когда любые d — 1 столбцов его проверочной
матрицы линейно независимы, но при этом существуют d линейно
зависимых столбцов.
Доказательство. Вектор с является кодовым словом тогда и только то­
гда, когда НсТ = 0, или ^ • Н_ {.щ. = 0, где Н_ [ обозначает I-ый столбец матрицы Н , и сумма берется по всем ij : Cij ^ 0. Таким образом,
всякое ненулевое кодовое слово задает некоторую совокупность линейно
зависимых столбцов матрицы Н.
□
Известно, что всякое линейное пространство имеет множество раз­
личных базисов. Из этого вытекает, что порождающая и проверочная
матрицы не единственны. Все такие матрицы связаны друг с другом со­
отношениями G' = UG я H ' = V Н , где U и V — обратимые матрицы,
задающие преобразования базисов. Очевидно, что свойства и корректи­
рующая способность кода никак не зависят от выбора порождающей и
проверочной матрицы. Вместе с тем, рассматриваемые далее алгорит­
мы декодирования могут существенно опираться на свойства конкрет­
ной матрицы (обычно проверочной), использованной для его задания. С
другой стороны, преобразование G" = G W в общем случае приводит к
совершенно иному линейному блоковому коду с трудно предсказуемы­
ми свойствами. Если матрица W содержит ровно по одному ненулевому
элементу в каждой строке и каждом столбце (в двоичном случае — если
W является перестановочной матрицей), код, порождаемый G", имеет
точно такую же корректирующую способность, как и исходный код, и
называется эквивалентным ему. При этом в общем случае кодовые сло­
ва эквивалентного кода могут не являться кодовыми словами исходного
кода.
С практической точки зрения представляет ценность такая реа­
лизация операции кодирования, которая позволяет получить кодовые
слова, содержащие как подвектор закодированную информационную по­
37
следовательность. Соответствующий кодер носит название систематиче­
ского. Для того, чтобы его построить, достаточно найти (например, с
помощью метода Гаусса) обратимое линейное преобразование, задавае­
мое матрицей V , приводящее порождающую матрицу1 к виду G = VG =
(І\А), где I — единичная матрица. Очевидно, что тогда с = uG = (и\иА).
Первые к символов такого кодового слова с называются информацион­
ными, а последние (п — к) — проверочными. Соответствующая форма
порождающей матрицы называется канонической. Она позволяет легко
найти одну из проверочных матриц кода как Н = (—А Т \І). Несложно
~ ~ ГТ1
убедиться в том, что GH = 0. Еще раз отметим, что вероятность выбо­
ра неправильного кодового слова декодером не зависит2 от того, какая
порождающая матрица была использована кодером. Вместе с тем, для
извлечения полезной информации из кодового слова, безусловно, знание
порождающей матрицы необходимо. Кроме того, вероятность ошибки на
информационный бит может зависеть от вида используемой порождаю­
щей матрицы.
Пример 2.1. Рассмотрим
/1 1 1 о о
цей G = I 1 1 0 1 1
\0 1 1 0 1
(6,3,3) код над F 2 , задаваемый порождающей матри0\
0 1. Применяя к ней метод Гаусса, получим следую1/
щую цепочку порождающих матриц этого же кода: G —
'1
1 1 0 0 0\
0
1
ф
1
0
1
0 1 1 1 0/
/1
1
-
0
\0
1 0 1
1 0\
1
0
0
0 1 1
1
1
1 0/
/1 0
-
0 0
0 1 0 1
\0
Последняя из
0 1 1
нихявляется канонической и позволяет получить проверочнуюматрицу как Н =
'0
1 1 1 0 0\
1 0 1 0 1 0 I . В этой матрицеотсутствуют одинаковыестолбцы, носуммы
Ч1
10 0 0 1/
некоторых троек столбцов дают ноль. Таким образом, в силу теоремы 2.5, мини­
мальное расстояние этого кода равно 3.
Проверочную матрицу линейного кода С можно рассматривать так­
же как порождающую матрицу некоторого другого кода С, называемого
дуальным. Очевидно, что С = ker G и Vc G С, с G С : с • с = 0.
1Зачастую для получения матрицы указанного вида необходимо выполнить также
некоторую перестановку столбцов, т.е. перейти к эквивалентному коду. Для упроще­
ния обозначений этот случай здесь не рассматривается.
2Это свойство оказывается крайне полезным при отладке программной реализа­
ции алгоритмов декодирования.
38
Как будет показано ниже, при анализе корректирующей способно­
сти линейного кода необходимо знать не только его минимальное рас­
стояние, но и весовой спектр (Ад,. . . , А п), где А і равно числу кодовых
слов веса г. В общем случае нахождение весового спектра кода требу­
ет перебора всех его кодовых слов, т.е. имеет сложность 0[qkn). Если
п — к < к, эту процедуру можно упростить, вычислив весовой спектр
дуального кода и воспользовавшись следующей теоремой.
Теорема 2.6 {Ма%-Вильямс [8]). Пусть дан двоичный линейный (п ,к )
код. Определим его весовую функцию как W c[x,y) = ^я=о А{Хп~1у1.
Тогда
w c (x m
2.2.2.
) = 7p;Wc[x + y , x - y ) .
Синдромное декодирование
Пусть кодовые слова линейного кода над
передаются по qичному симметричному каналу. Его выход может быть описан как
у = uG + е,
(2.5)
где G — порождающая матрица кода и е — вектор ошибки. Рассмотрим
задачу декодирования вектора у по критерию минимального расстояния
Хэмминга, т.е. поиск вектора е наименьшего веса, допускающего пред­
ставление в виде (2.5).
Смежным классом линейного кода С, задаваемым вектором z, на­
зывается множество С + z = {с + z\c G С}. Смежные классы кода или
не пересекаются, или совпадают. Действительно, если у G С + z\ и
у G С + Z2, то у = с\ + z\ = С2 + 22 , ci ,C2 G С, откуда следует, что
Z2 = [с\ — С2 ) + z\ G С + z\, т.е. С + Z2 С С + z\. Аналогичным образом
показывается и обратное включение. С другой стороны, всякий вектор
из Fn может быть отнесен к какому-либо смежному классу кода С, т.е.
семейство его смежных классов образует разбиение Fn. Заметим, что все
элементы фиксированного смежного класса С + z характеризуются од­
ним и тем же значением синдрома S = (с + z)H T = zH T . Выпишем
все возможные векторы z G ¥ п в виде таблицы, размещая на одной
строке элементы с одинаковым значением синдрома (т.е. элементы од­
ного смежного класса). Будем считать, что первая строка соответствует
S = 0, т.е. содержит исключительно кодовые слова рассматриваемого ко­
да. Отсортируем все строки по весу. Будем называть лидером смежного
класса с синдромом S вектор наименьшего веса в соответствующей стро­
39
ке таблицы. Полученная таблица носит название таблицы стандартной
расстановки.
Пусть S = уН т = еН т — синдром принятой последовательности.
Заметим, что он зависит только от вектора ошибки е и не зависит от
переденного кодового слова. Этот синдром может соответствовать любо­
му вектору, находящемуся в соответствующем смежном классе кода С.
Так как рассматривается задача декодирования по минимуму расстоя­
ния Хэмминга, в качестве оценки 'е может быть взят подходящий вектор
наименьшего возможного веса, т.е. лидер смежного класса, соответству­
ющего S. Заметим, что для некоторых векторов S может существовать
несколько потенциальных лидеров смежного класса с наименьшим ве­
сом. Такого рода неопределенность может быть разрешена случайным
образом, но, очевидно, с большой вероятностью последовательности с
этими значениями синдрома будут декодироваться неправильно. Более
целесообразно в таких случаях сообщать об отказе от декодирования.
Коды, каждый смежный класс которых содержит единственный вектор
наименьшего веса, называются совершенными.
Таким образом, декодирование линейных блоковых кодов сводится
к построению таблицы соответствия синдромов и соответствующих им
лидеров смежных классов и поиску в этой таблице синдрома принято­
го вектора. Для кода с минимальным расстоянием d = 2t + 1 размер L
такой таблицы удовлетворяет3 E L =0 C ln {q — 1У < L < qn к. Для низ­
коскоростных кодов более эффективной стратегией может быть сравне­
ние принятого вектора со всеми qk кодовыми словами. Однако с ростом
длины кода в общем случае сложность или затраты памяти для обоих
методов растут экспоненциально, что приводит к необходимости поиска
более эффективных алгоритмов.
Существует, однако, класс кодов, для которых процедура синдром­
ного декодирования оказывается самой простой из возможных. Двоич­
ный код Хэмминга определяется как линейный блоковый (2 т —1 , 2 т —
1 —т , 3) код, столбцы проверочной матрицы которого представляют со­
бой все различные двоичные векторы длины тп. Действительно, в этом
случае всякий столбец равен сумме двух других столбцов, и, в силу тео­
ремы 2.5, минимальное расстояние кода равно 3. При реализации удоб­
но рассматривать столбцы проверочной матрицы как двоичную запись
некоторых целых чисел и упорядочить их в порядке возрастания. Тогда,
если произошла одна ошибка, синдром S = Н ет равен номеру (в двоич­
3Исправимыми могут быть и некоторые конфигурации ошибок веса более /,.
40
ной системе счисления) той позиции, которая была искажена. Непосред­
ственной проверкой можно убедиться, что построенный таким образом
код удовлетворяет границе Хэмминга (2.1) с равенством, т.е. является
совершенным.
Пример 2.2. Проверочная матрица (7,4, 3) кода Хэмминга имеет вид
/ 1 0 1 0 1 0 1\
Я=|0
1 1 0 0
11].
(2.6)
\0 0 0 1 1 1 1 /
Синдром вектора y = ( l l l 0 1 1 l )
равен S = (0 0 і), т.е. ошиб­
ка произошла в четвертой позиции. Исправленное кодовое слово равно с =
(1 1 1 1 1 1 1 ).
2.2.3.
Границы
Может возникнуть подозрение, что упрощение реализации кодиро­
вания, обеспечиваемое при использовании линейных кодов, достигается
за счет ухудшения их характеристик. К счастью, как будет показано в
этом разделе, это не так.
Оказывается, что идея метода построения кода, использованного
при доказательстве границы Варшамова-Гилберта для произвольных ко­
дов, может быть адаптирована для линейных кодов и привести к лучшим
результатам.
Теорема 2.7 (Граница Варшамова-Гилберта). Существует линейный
(n, k, d) код, для которого
П
_q__
(2.7)
qk >
A q(n,d)
П ‘'“о СУя 1 )'
Доказательство. Попытаемся построить проверочную матрицу кода
максимально возможной длины с минимальным расстоянием d n r прове­
рочными символами. Первый ее столбец может быть выбран как произ­
вольный ненулевой вектор. Если уже выбрано j столбцов, то, в соответ­
ствии с теоремой 2.5, в качестве очередного столбца нельзя использовать
никакие линейные комбинации из d —2 или менее ранее выбранных столбцов, которых насчитывается
Cj(q — 1)г. Если эта величина пре­
вышает общее число возможных столбцов qr , наращивание длины кода
невозможно. Таким образом, если выполняется qr > Хц=о С Щ О - И ,
то существует д-ичный (п = к + г, к, d) линейный код. Будем выполнять
вышеописанные действия до тех пор, пока это неравенство не нарушится,
т.е. не останется допустимых вариантов для столбца п + 1. Построенная
41
к этому моменту (п — к) х п проверочная матрица задает код с числом
слов, удовлетворяющим (2.7).
□
Заметим, что выражения (2.7) и (2.3) отличаются одним слагае­
мым в знаменателе, причем последнее гарантирует существование кода
с большим числом кодовых слов, чем это удалось показать для случая
произвольных кодов. Таким образом, существуют линейные коды с па­
раметрами ничуть не хуже, чем у аналогичных нелинейных кодов.
Аналогично тому, как это было сделано в случае границы Хэм­
минга, можно получить асимптотическое выражение для границы
Варшамова-Г илберта:
п
К линейным кодам применимы все те границы, которые были полу­
чены для произвольных блоковых кодов. Запись некоторых из них может
быть упрощена. В частности, граница Синглтона может быть записана
как
к < п — d + 1.
(2.9)
В данном случае это неравенство вытекает также из теоремы 2.5, так
как ранг проверочной матрицы не может быть меньше d — 1. Коды, удо­
влетворяющие (2.9) с равенством, называются кодами с максимальным
достижимым расстоянием.
Следующая теорема дает намного более точную оценку для пара­
метров двоичных линейных кодов.
Теорема 2.8 (граница Грайсмера). Пустъ N( k, d) — наименьшая длина
линейного кода над Fq с размерностью к и минимальным расстоянием
d. Тогда N( k, d) > d + N( k — l , \ d/ q\ ) .
Доказательство. Доказательство приведем для случая q = 2. Предпо­
ложим, что существует линейный (N ( k , d), k , d) код. Одна из его порож­
дающих матриц содержит кодовое слово веса d на одной из строк. По­
этому, не ограничивая общности, будем считать, что
G
00 ... О 1 1 ... 1
Gi
G2
ч
где G\ и G2 — некоторые матрицы размерности (k — 1) х (N(k, d) — d) и
( к - 1 ) х d. Ранг матрицы G\ равен к — 1. Действительно, в противном
случае с помощью операций над строками матрицы G ее можно было
42
бы привести к виду, в котором первая строка G\ была бы нулевой. То­
гда сумма первых двух строк преобразованной матрицы G имела бы вес,
менвший (I. Таким образом, G\ может рассматриваться как порождаю­
щая матрица некоторого линейного (N (k,d) —d ,k —l,d i) кода. Для того,
чтобы оценить его минимальное расстояние <Д, заметим, что если вектор
(и\ѵ),и 0 , принадлежит исходному коду, то (м|(1 , . . . , 1 )+г>) также при­
надлежит ему. При этом wt(w)+wt(T) > d и wt(u) + d —wt(T) > d. Таким
образом, 2 w t(и) > d и d\ > \d / 2 ], т.е. из существования (N ( k ,d ) ,k ,d )
кода вытекает существование (N (k, d) —d, к —1, \d/2\) кода. Возможно,
что существуют и более короткие коды с размерностью к — І и мини­
мальным расстоянием \d/2], поэтому N (k — 1, \d/2\) < N (k ,d ) — d. □
Таким образом, граница Грайсмера может быть записана как
к—1 г 7п
d
( 2 . 10)
N(k,d)>Y_I
і=О
Для двоичных кодов наиболее точные результаты дают границы
Мак- Элиса-Родемича-Рамсея-Велча, которая имеет вид [8]
R< 4
1
2
— ( 1 —— J ) , 0 < d < п / 2 ,
п \
п/
Бассалыго-Элайеса (см. [5])
R < 1
Ч
1 — уД —2 d /n
2
5
а также граница линейного программирования [8], для которой в общем
случае нет замкнутой формулы.
На рис. 2.1 представлены кривые асимптотических форм вышерас­
смотренных границ. Напомним, что граница Варшамова-Гилберта явля­
ется нижней, т.е. постулирует существование кода со скоростью не ни­
же указанной. Все остальные границы являются верхними, т.е. не суще­
ствует кодов со скоростью, превышающей наименьшую из этих величин.
Вопрос о существовании кодов, параметры которых лежат в заштрихо­
ванной области, остается открытым4.
4В работе [42] граница Варшамова-Гилберта была несколько улучшена. Вместе
с тем, существуют алгебро-геометрические коды с параметрами, превосходящими
границу Варшамова-Гилберта.
43
Рис. 2.1. Границы достижимой скорости двоичных линейных кодов
2.3.
Анализ корректирующей способности
Всякий блоковый код и алгоритм его декодирования могут быть
охарактеризованы следующими величинами:
1. Вероятностью ошибочного декодирования Рс (вероятность ошибки
на блок, codeword error rate, frame error rate), т.е. вероятностью то­
го, что информационное сообщение, восстановленное декодером, не
совпадает с переданным.
2. Вероятностью битовой ошибки Рь (вероятность ошибки на бит, bit
error rate), т.е. вероятностью того, что произвольно выбранный бит
сообщения, восстановленного декодером, не совпадает с истинным
значением. Необходимо отметить, что в случае ошибочного декоди­
рования сообщения число искаженных информационных битов мо­
жет быть самым разнообразным, причем события неправильного
восстановления отдельных битов сообщения являются зависимыми.
3. Вероятностью обнаружения ошибки Р^, т.е. вероятностью выявле­
ния декодером факта несовпадения принятой и переданной последо­
вательностей (без попытки их исправления).
4. Вероятностью необнаружения ошибки Pu, т.е. вероятностью того,
что ошибки не только не будут исправлены, но даже не будет вы­
явлен факт их наличия в принятом сообщении.
44
5. Вероятностью отказа от декодирования Ру, т.е. вероятностью обна­
ружения декодером конфигурации ошибок, которую он не способен
исправить, и сигнализации об этом.
2.3.1.
О бнаружение ошибок
Рассмотрим передачу кодовых слов некоторого двоичного линей­
ного блокового (п, к , d) кода по двоичному симметричному каналу с пе­
реходной вероятностью р. Как было показано выше, принятый вектор
может быть представлен как у = uG + е. Для обнаружения ошибок вы­
числим значение синдрома S = уН т = еН т. Если эта величина отлична
от нуля, ошибки точно имели место. Но даже если S = 0 , нельзя исклю­
чать того, что ненулевой вектор ошибки совпал с одним из кодовых слов.
Вероятность такого события равна
п
ри =
п
Y 1 ^ { е = с} = ^ Л р і( 1 - р ) п- << ^ С Ц і( 1 - р ) " - і,
с€С\{0}
г=1
i=d
где А і — коэффициенты весового спектра кода, и последнее неравенство
получено в силу того, что не всякий вектор веса г может быть кодовым
словом, т.е. А і < С гп . Вероятность обнаружения ошибки равна разности
вероятности искажения сообщения в канале и вероятности необнаружения ошибки, т.е.
п
Pi = Y .
i= i
- Ру = 1 - Г - P f - Рп2.3.2.
Исправление ошибок
Д в о и ч н ы й си м м ет р и ч н ы й канал
Как было показано выше, имеется взаимно однозначное соответ­
ствие между исправимыми конфигурациями ошибок и лидерами смеж­
ных классов кода. Таким образом, декодер, реализующий критерий ми­
нимального расстояния, ошибается, если вектор ошибки не является ли­
дером смежного класса, т.е.
п
Рс = 1 -
~ Р )П~К
3= о
где aj — число лидеров смежных классов веса j . Однако на практи­
ке чаще используются алгоритмы, исправляющие не более \_(d — 1 ) / 2 J
45
ошибок. Можно показать [51], что в этом случае
п
l(d-l)/2\
pc = J 2 Ai
j=d
E
1=0
У
(2-u )
где Pj* = Y lr= o^j~ r(^n-jP^~l+2r(^ —р)п~з+1~2г — вероятность того, что
принятый вектор отличается в I позициях от некоторого кодового слова
веса j. Вероятность отказа от декодирования равна
L(d-1)/2J
Р/ = 1 -
Е
3=
с у (I - Ѵ)п~і - рс.
О
А ддит ивны й гауссовский канал и мягкое декодирование
Рассмотрим передачу символов кодовых слов двоичного линейного
блокового кода по аддитивному гауссовскому каналу с использованием
сигнального множества X = { —y/Ws,
Будем считать, что переда­
ваемые символы формируются как ад = л/Щ (2 сі - 1 ) е І , 1 < і < п , где
с = uG G С С Еф Пусть С — множество векторов, которые могут быть
получены таким образом. Принятые сигналы могут быть представлены
как уі = од + гц, гц ~ Л/"(0, N q/2). Как было показано выше, декодирова­
ние по максимуму правдоподобия в этом случае эквивалентно декодиро­
ванию в метрике Евклида, т.е. поиску х = a r g m a x ^ ^ д/ E j —і(?/г — зд)2 =
a r g m a x ^ E L i у2 + Y a =i X1 ~ 2 Y a = i Угх і- Учитывая, что x 2 = E s, и
исключая слагаемые, не зависящие от х, получим эквивалентную фор­
та
мулировку х = а ^ т а х жѳу ^ ^ 2дад. Ошибка декодирования происходит
і= 1
L(y,x)
в тех случаях, когда корреляция Ь(у, х') для какого-либо неправильного
слова х' оказывается больше, чем для переданного на самом деле х, т.е.
L (y ,x ') ~ L (y ,x ) = Е і:х^хгУі(Хі ~ Хі) = ^ г :х ’гф хМ іХ'г~х2г + ^ Х'г~Хі)) >
0. Учитывая, что од, ж' E X, причем од d х[, получим, что ошибка про­
исходит, если Е Й д С’С^ г > 2du{c,cf)Es, где с, с' — соответствующие
кодовые слова С, щ = Уу(ху —x'j) ~ Л/"(0, 2Е8Щ) и ф — номер г-й разли­
чающейся позиции кодовых слов. Левая часть неравенства распределена
по закону ЛС(0, 2дн{с, E )E sN q). Таким образом, переходная вероятность
равна Р{с,Р) = Q(y^2dH(c, d )E s/No). Однако существует множество
различных неправильных кодовых слов с', причем может оказаться так,
что одновременно для нескольких из них выполняется L { y ,d ) > L(y,c).
46
Кроме того, величины L(y, d) вычисляются с использованием одних и
тех же значений уі и потому являются статистически зависимыми. Точ­
ный учет этих зависимостей является крайне сложной задачей. Тем не
менее, можно получить оценку сверху для вероятности ошибки как (объ­
единенная верхняя граница)
Рс = р \
U
{L(v,d)>L{y,c)}\<
J
[с'еС\{с}
=
У
J2
с'еС\{с}
=£> «
Щ
р (с',с) =
.
(2.12)
Данная граница является точной только в области больших отношений
сигнал/шум, когда вероятность того, что правильное решение оказыва­
ется хуже сразу нескольких неправильных, пренебрежимо мала. В боль­
шинстве случаев при вычислениях достаточно ограничиться лишь одним
или двумя первыми ненулевыми слагаемыми. Более точные оценки кор­
ректирующей способности можно получить с помощью, например, каса­
тельной сферической границы Полтырева [56].
Упражнения
1. Постройте порождающую матрицу для кода с проверочной матрицей
/1
0
0
\о
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1\
1
1
V
2. Код, совпадающий с дуальным к нему, называется самодуалъным. Докажите,
что код является самодуалъным тогда и только тогда, когда его проверочная
матрица равна (с точностью до перестановки столбцов) Н = (—Р\І), где Р Р Т =
L
3.
4.
5.
6.
Вычислите весовой спектр кода Хэмминга (7,4,3).
Какова минимальная длина двоичного кода с к = 7, d = 7?
Докажите теорему 2.8 для произвольного q.
Преобразованием Адамара отображения / :
—> F 2 называется функция
f(u) =
»(—I Д о к а ж и т е , что для двоичного линейного кода спра­
ведливо Е „ ес / Ы = щ Е „ ес /(«)•
7. Воспользуйтесь вышедоказанным свойством преобразования Адамара для до­
казательства теоремы 2.6.
8. Докажите выражение (2.11).
47
3. Универсальные алгоритмы декодирования
3.1.
Декодирование по информационным совокупностям
3.1.1.
Поиск ближайшего кодового слова
Рассмотрим задачу декодирования линейного кода в метрике Хэм­
минга, т.е. нахождения кодового слова с = argm inc:c#T =0 фц(с, у), где Н
— проверочная матрица кода. В общем случае данная задача является
NP-полной [15]. Непосредственный метод ее решения состоит в переборе
всех кодовых слов и сравнении их с принятым вектором у , что требует
0 (q kn ) операций. В разд. 2.2.2 был описан альтернативный подход, со­
стоящий в предварительном построении таблицы соответствия синдро­
мов и лидеров смежных классов, имеющей размер 0 (q n~k). Эта таб­
лица позволяет произвести декодирование путем вычисления синдрома
ГТ1
S = уН и нахождения соответствующей записи в таблице, что требует
0 (п к ) операций. Попытаемся построить алгоритм с меньшей сложно­
стью и потребностями в памяти.
Определение 3.1. Информационной совокупностью для линейного
(n, k , d) кода С C F J называется множество у = {П, . . . , ф} С { 1 , . . . , п}
такое, что для любого z £ ¥ к существует единственное кодовое слово
с G С такое, что с ц = Zj , 1 < j < к .
Если у — информационная совокупность, то множество ф =
{1, . . . , п } \ 7 называется проверочной совокупностью. Заметим, что под­
матрица G(7 ) порождающей матрицы G, содержащая столбцы с номера­
ми из 7 , является обратимой. Если бы это было не так, то существовали
бы ненулевые векторы и : uG( 7 ) = 0 , и для любого кодового слова с мож­
но было бы найти другие кодовые слова с' = с + uG , которые совпадали
бы с ним на информационной совокупности. Таким образом, зная значе­
ния символов кодового слова на информационной совокупности, можно
восстановить все слово как с = z(G (ry))~1G. С вычислительной точки
зрения операцию нахождения G 7 = {G{y))~lG удобно реализовать пу­
тем приведения матрицы G к единичной (например, с помощью метода
Гаусса) на позициях 7 . Так как не все к х к подматрицы порождающей
матрицы обязательно являются обратимыми, далеко не любой набор из
к позиций образует информационную совокупность.
48
Пусть у = с + е — принятая зашумленная последовательность.
Информационная совокупность 7 называется свободной от ошибок, ес­
ли е* = 0 для всех ij e 7 . Если ее удалось найти, то кодовое слово
может быть восстановлено как с = (7 7 , . . . , y%k)G7. Это позволяет сфор­
мулировать следующий алгоритм декодирования по информационным
совокупностям:
1 . Пусть Ф= 0 .
2. Выбрать новую информационную совокупность 7 = { ф , . . . , іД .
3. С помощью операций над строками матрицы G построить матрицу
G7, содержащую единичную подматрицу на позициях 7 .
4. Вычислить с7 = (yil, . . . , y ik)G7. Если д н { д ,у ) < Фя(Ф,2/), присво­
ить Ф= с7.
5. Если еще остаются непроверенные информационные совокупности,
перейти к шагу 2 .
6. Возвратить Ф.
Очевидно, что после нахождении Ф: д н (с ,у ) < d / 2 , вычисления можно
прекратить.
Теорема 3.1. Алгоритм декодирования по информационным совокуп­
ностям является алгоритмом полного декодирования.
Доказательство. Необходимо доказать, что для всякого исправимого
вектора ошибок найдется информационная совокупность, свободная от
ошибок. Пусть с — единственное истинное решение задачи декодиро­
вания, E = supp(e) — множество ненулевых позиций вектора ошибок
е = у —с, причем \Е\ < п —к. Предположим, что множество {1, . . . , п } \ Е
не содержит информационных совокупностей. Это означает, что суще­
ствуют кодовые слова, отличающиеся друг от друга исключительно в
позициях Е, что противоречит предположению о единственности с. □
Вышеописанный алгоритм находит решение задачи декодирова­
ния, как только ему попадается информационная совокупность, свобод­
ная от ошибок, или, эквивалентно, проверочная совокупность, покрыва­
ющая все искаженные позиции.
Определение 3.2. (n, г, t)-покрытием называется набор F из подмно­
жеств фі мощности г множества N n = {1, . . . , п } таких, что всякое tэлементное подмножество N n содержится хотя бы в одном из фі G F.
Если допустима замена полного декодирования на декодирование
с исправлением не более чем t ошибок, достаточно лишь построить
49
(n, n — к, £)-покрытие F и рассматривать информационные совокупно­
сти, соответствующие проверочным совокупностям фі E F. Необходимо
отметить, что далеко не всякое покрытие таково, что все его элементы
являются допустимыми проверочными совокупностями конкретного ко­
да. Это связано с тем, что не всякая к х к подматрица порождающей
матрицы имеет ранг к, как того требует шаг 3 вышеприведенного алго­
ритма.
Пример 3.1. Рассмотрим декодирование вектора у = (О 1 1 0 1 0 0) в(7, 4, 3) /1 1 1 0 0 0 0\
„
„
I 1 О О 11 о о
коде с порождающей матрицей G =
0 1 0 1 0 1 0 ’ ^ ля этого П0СТР0ИМ
\1 1 о
1 0 0 1/
(7, 3,1)-покрытие F = {{1, 2, 4} , {5, 6, 7} , {3, 4, 5}} . Видно, что все конфигурации
ошибок веса 1 покрываются хотя бві одним из его элементов. Приводя порождающую
матрицу к единичной на информационнвіх совокупностях у* = {1,..., 7} \фі, полу­
i
1
0
0
0
0 \
1
0
0
1
1
0
0
0
1
0
1
0
1
0
Vi
1
0
1
0
0
1
/1
чим G{3 ,5 ,6 ,7 } —
о
о
0\
0
0
\0
V
/1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
ѴО
0
0
1
1
1
1/
/1
> бг{1,2,3,4} —
1\
>бці,2,6,7}
Выделяя подвекторы у, задаваемые этими информацион­
ными совокупностями, и умножая их на матрицы G-fi, получим кодовые слова
фздбЩ = С{1 ,2 ,6 ,7 } = (о 1 1 1 1 0
о) , С { 1 ;2Д 4 } = (о 1 1 0 0 1 і). Таким об­
разом, ближайшее к вектору у кодовое слово равно <Д1,2 ,6 ,7 ц и единственная ошибка
расположена в четвертой позиции. Заметим, что оно было получено по двум различ­
ным информационным совокупностям.
Для коротких кодов соответствующее покрытие содержит неболь­
шое число элементов и может быть построено заранее, причем сложность
алгоритма декодирования по информационным совокупностям может
быть существенно меньше, чем у других методов. Для длинных кодов
предпочтительным является перебор информационных совокупностей в
таком порядке, который позволял бы максимально переиспользовать ре­
зультаты диагонализации порождающей матрицы, избегая обращения к
трудоемкому методу Гаусса на каждом шаге. Подробнее этот подход бу­
дет рассмотрен в следующем разделе.
3.1.2.
Поиск кодового слова наименьшего веса
Задача декодирования линейного (п, к , с?)-кода в метрике Хэммин­
га может быть сформулирована как поиск вектора е наименьшего веса,
50
такого что у = uG' + е для некоторого и. Если 0 < wt(e) < d, то эта
проблема эквивалентна поиску ненулевого кодового слова наименьшего
веса в линейном
Впрочем,
последняя задача представляет самостоятельный интерес и возникает,
например, при анализе свойств построенных кодов. Один из наиболее
эффективных алгоритмов ее решения является обобщением метода де­
кодирования по информационным совокупностям [20].
Основная идея алгоритма Канто-Шабада состоит в целенаправ­
ленном поиске кодовых слов, которые имели бы небольшой вес на од­
ном подмножестве символов 7 и нулевой вес на другом подмножестве
символов и : |<т| = s. Для простоты, ограничимся случаем двоичных
линейных кодов. Более конкретно, пусть дана некоторая информацион­
ная совокупность 7 . Построим соответствующую порождающую матри­
цу G j = MrjG, где G — порождающая матрица рассматриваемого кода
и М 7 — подходящая обратимая матрица. Выделим некоторое подмноже­
ство а С N n \ 7 . Разобъем множество строк матрицы бф на два непересекающихся подмножества примерно одинакового размера и для каждого
из них рассмотрим все линейные комбинации не более чем t строк матри­
цы G Для каждой такой линейной комбинации, задаваемой вектором щ
или U2, вычислим символы соответствующих кодовых слов на позициях,
входящих в <т. При этом важно не производить вычисление всех симво­
лов этих кодовых слов. Пусть У (А) — множество линейных комбинаций
строк из первого подмножества, приводящих к подвектору А на позици­
ях сг. Если линейная комбинация строк из второго подмножества также
приводит к подвектору А, то линейная комбинация, задаваемая щ + щ
(т.е. использующая строки из обоих подмножеств), приводит к кодовому
слову, имеющему не более 2 1 единиц на 7 и нулевые символы на позициях
<7 , т.е. его вес сравнительно невелик. В этом случае имеет смысл вычис­
лить все символы этого кодового слова и найти его вес. Таким образом,
из рассмотрения автоматически исключаются кодовые слова, имеющие
априори большой вес. После проверки всех кодовых слов, порождаемых
этой процедурой для информационной совокупности 7 , необходимо пе­
рейти к другой информационной совокупности и повторить описанные
действия.
Наиболее трудоемким этапом этой процедуры, как и вышеописан­
ного алгоритма декодирования по информационным совокупностям, яв­
ляется приведение порождающей матрицы к диагональному виду. Эту
51
операцию можно упростить, если рассматривать последовательность ин­
формационных совокупностей л = (7 , - 1 \ / ) U / ' , / G 7 г - ь / ' Ф Ъ -іВ этом случае матрица G^ . является “почти диагональной” на множе­
стве столбцов 7 f для приведения ее к полностью диагональному виду
достаточно лишь обработать столбец j " . Необходимо отметить, что для
получения информационной совокупности 7 і необходимо обеспечить об­
ратимость соответствующей подматрицы. Это достигается путем выбора
j " 7 такого что матрица G j. содержит единицу в столбце j" в той же
строке, в которой она присутствует в столбце j ' .
Параметрами этого алгоритма являются величины s и t. При усло­
вии оптимального их выбора асимптотическая сложность алгоритма со­
ставляет (3 (20’12п^(^/ п+ 0,озі)+іо^
3.2.
М етод порядковых статистик
3.2.1.
Алгоритм
Обобщение метода декодирования по информационным совокупно­
стям на случай метрики Евклида приводит к одному из наиболее эффек­
тивных универсальных алгоритмов мягкого декодирования двоичных
линейных блоковых кодов, известному как метод порядковых стати­
стик [35]. Пусть даны логарифмические отношения правдоподобия при­
нятых символов1 Lj = In ^ХІѴ\Сі~п\Уі] , 1 < i < n. Их абсолютная величина
характеризует надежность соответствующих символов. Построим вектор
жестких решений у = (1 {L \ > 0} , . . . , 1 {L n > 0}), где 1 {А} — индика­
торная функция, равная 1 тогда и только тогда, когда выполняется усло­
вие А, и 0 в противном случае. Упорядочим символы в порядке убывания
их надежности, т.е. найдем перестановку ( П, ... ,in) : |L* | > |L* |. Ве­
личина \Li \ носит название j -ой порядковой статистики. Попытаемся
привести порождающую матрицу кода к диагональному виду на пози­
циях іь . . . , ф . Возможно, они не образуют информационную совокуп­
ность, т.е. на каком-то из шагов (например, f ) метода Гаусса не удаст­
ся получить единичное значение на диагонали матрицы. В этом слу­
чае поменяем местами элементы іу и іу/, где j" — наименьшее целое
число, большее j ' (т.е. надежность соответствующего символа являет­
ся наибольшей) такое, что становится возможным продолжение работы
ХВ случае аддитивного гауссовского канала Щ
Так как в дальнейшем
эти величины будут только суммироваться и сравниваться друг с другом, множитель
C
l\[W sj(72 можно опустить.
52
метода Гаусса. Таким образом, формируется наиболее надежная инфор­
мационная совокупность у и соответствующая матрица G j. Однако 7
может быть не свободна от ошибок, хотя, так как в информационную
совокупность входят достаточно надежные символы, их число, скорее
всего, невелико. Для их исправления организуем перебор по всем проб­
ным векторам ошибки е = ( еі , . . . , е к ) : 0 < wt(e) < t на найденной ин­
формационной совокупности. По каждому из рассмотренных векторов
z = (yj1 + e i , . . . , yjk + ек) восстановим кодовое слово с = zG 7, построим
соответствующий вектор сигналов х : х% = ДТД(2 сі —1 ) и сравним его с
принятой последовательностью. В качестве окончательного решения вы­
берем то кодовое слово, которое является ближайшим к ней в метрике
Евклида. Очевидно, что сложность непосредственной реализации этого
метода составляет 0(Ym=o С гкп ) операций.
3.2.2.
Методы ускорения
Сложность метода порядковых статистик может быть снижена за
счет отсечения заведомо плохих пробных конфигураций ошибок [77].
Ограничимся рассмотрением случая каналов без памяти. Введем эллип­
соидный вес кодового слова с как Е (с ,у ) = Yli-c ^y- І-МЛемма 3.1. Вероятность того, что подовое слово с является решени­
ем задачи декодирования, убывает с ростом Е (с,у).
Доказательство. Из определения логарифмического отношения прав­
доподобия вытекает, что Px \y {ЦУі} = 177 x7 и Рх \у Щ уі} = рщщ-, т.е.
(2ci —\ ) L i / 2
Рх\Y {сі\Уі} — т-Дгтв
l+el
Вероятность того, что было передано кодовое слово с при усло­
вии того, что на выходе канала без памяти наблюдаются сигналы у ,
равна Р { с \ у } = П ”=і p x \ Y Ы уі} = Щ =і eL'/2f ^ )L'12, Отсюда вид­
но, что вероятность того, что с является решением задачи декодиро­
вания, возрастает с ростом корреляции L {c,y) = Y'n \ (2<7 — 1)Д =
E і:сг=уг \Li\ - E i:CiM \Li\ = E ”=1 \Li\ - 2E {g v )- Первое слагаемое не
зависит от с, откуда и вытекает утверждение леммы.
□
Таким образом, декодирование сводится к поиску кодового сло­
ва с наименьшим эллипсоидальным весом. Целесообразно упорядочить
пробные векторы ошибок в порядке возрастания Е (е ,у ) = E r e Щ) ІАдІДля векторов фиксированного веса это может быть сделано путем их
сортировки (или генерации) в обратном лексикографическом порядке.
Тогда можно останавливать перебор, если все последующие пробные
53
векторы удовлетворяют Е (е,у) > Е(с, у ), где с
текущее наилуч­
шее кодовое слово. Кроме того, если уже найдено некоторое кодовое
слово с, то все остальные кодовые слова с отличаются от него не ме­
нее чем в d позициях, где d — минимальное расстояние кода. Так как
<і#(с, у) + d#(c, у) > d n{c,c) > d, dn(c, у) > d — Д я(с, 2/)- Если кодовое
слово с отличается от у в j позициях на наиболее надежной информа­
ционной совокупности у (пусть е равно разности этих векторов на 7 ),
число различий на проверочной совокупности не может быть меньше,
чем d —djj(c, у) —j- Так как Уіф Сі в д в о и ч н о м случае означает щ = q ,
получим, что Е (с, у) > Е(е, у) + R[d — d n (c ,y ) —wt(e)], где R[l\ — сум­
ма I наименьших значений |Ly| таких, что су = уу. Если правая часть
этого неравенства превосходит Е (с ,у ), пробный вектор е может быть
исключен из рассмотрения.
Очевидно, что корректирующая способность метода порядковых
статистик возрастает с увеличением £, что сопровождается быстрым ро­
стом сложности. Существует возможность размена числа арифметиче­
ских операций на объем используемой оперативной памяти. Для этого
следует дополнить наиболее надежную информационную совокупность s
следующими по надежности символами и рассмотреть все конфигурации
ошибок веса не более 21 на этом множестве. При этом такие конфигу­
рации могут получаться как суммы пробных векторов веса не более t
(алгоритм Box and Match [77]).
3.3.
Декодирование по обобщенному минимальному
расстоянию
3.3.1.
Исправление ошибок и стираний
Напомним, что стиранием называется особый вид ошибки, место­
положение которой точно известно. Стирание s символов эквивалентно
их выкалыванию при передаче (см. разд. 12.1.2). При этом минимальное
расстояние Хэмминга кода становится равным d' > d — s. Укороченный
код способен исправить t <
ошибок. Таким образом, код с минималь­
ным расстоянием Хэмминга d способен исправить t ошибок и s стираний,
если выполняется неравенство
2 £ + s + 1 7: d.
(3-1)
Для некоторых кодов известны эффективные алгоритмы, способ­
ные одновременно исправлять ошибки и стирания. Если такой алгоритм
недоступен, в случае двоичных кодов можно воспользоваться следую­
54
щим подходом. Пусть у E (F 2 U {б})п — декодируемый вектор. Построим
вспомогательные векторы у' и у", в которых символы стирания заме­
нены на 0 и 1, соответственно. Продекодируем эти векторы с помощью
алгоритма, исправляющего только ошибки. Пусть с', с" — кодовые сло­
ва, возвращенные этим декодером. Выберем в качестве решения задачи
декодирования то из них, которое является ближайшим к у (стертые по­
зиции при вычислении расстояния Хэмминга не учитываются). Данный
метод позволяет достичь границы (3.1). Действительно, если в результа­
те описанных действий в у' были внесены т дополнительных ошибок, то
их число в у" равно s —т. Декодирование с исправлением только оши­
бок является успешным, если выполняются неравенства 2(t + т) < d и
2{t + s —т) < d, соответственно. Видно, что если одно из них нарушается,
но при этом верно (3.1), то другое выполняется автоматически.
3.3.2.
М етод Форни
Существенным недостатком метода порядковых статистик явля­
ется его высокая вычислительная сложность. В тех случаях, когда рас­
сматриваемый код обладает некоторой алгебраической структурой, дела­
ющей возможным использование эффективных алгоритмов декодирова­
ния в метрике Хэмминга, мягкое декодирование может быть реализовано
с помощью сравнительно простой надстройки над такими алгоритмами
жесткого декодирования.
Пусть дан двоичный ( n ,k ,d )~код над ¥ q. Предположим, что
существует алгоритм декодирования этого кода в метрике Хэммин­
га, исправляющий ошибки и стирания, т.е. способный для любого
{ z i , . . . , Z n ) E (Fg и { c } ) n находить с = argm inceC | { i \ z i ± e , Z i ± q } |.
Пусть ( z i , , z n ) e F ” и (7*1 , . . . , rn) E R" — вектора жестких решений и
их надежности. Например, в случае q = 2 z\ = 1 {Li > 0} и г* = |Іф , где
Li — логарифмические отношения правдоподобия принятых символов.
Алгоритм декодирования по обобщенному минимальному расстоянию
имеет следующий вид:
1. Упорядочить принятые символы в порядке возрастания их надеж­
ности, т.е. найти перестановку jц : rj. < rj , 1 < i < п.
2. Пусть s = 1 —(d mod 2), с = 0.
3. Объявить стертыми s наименее надежных символов, т.е. Zj. = б, 1 <
і < s.
55
4. Пусть d — результат декодирования z с помощью декодера, исправ­
ляющего ошибки и стирания. Если d более правдоподобен, чем ф
присвоить с = с'.
5. Присвоить s = s + 2. Если s < d, перейти к шагу 3.
Данный алгоритм применим для достаточно широкого класса возмож­
ных определений понятий “надежность” и “правдоподобность”, поэтому
при его описании был принят неформальный стиль. Анализ области де­
кодирования этого метода представлен в [33, 1].
3.4.
М етод Ч ейза
Еще одним простым способом построения мягкого декодера на базе
жесткого является метод Чейза [2 1 ]. Существуют следующие три типа
декодера Чейза:
1. Сформируем вектор жестких решений ( щ , . . . , zn), а также все воз­
можные пробные векторы, отличающиеся от него не более чем в d —1
позиций. Продекодируем эти векторы с помощью декодера, исправ­
ляющего ошибки в метрике Хэмминга, и выберем наиболее правдо­
подобное из получившихся кодовых слов. Высокая сложность делает
этот подход практически неприменимым.
2. Сформируем вектор жестких решений ( щ , . . . , zn), а также все воз­
можные пробные векторы, отличающиеся от него не более чем в т
наименее надежных позициях. Продекодируем эти векторы с помо­
щью декодера, исправляющего ошибки в метрике Хэмминга, и вы­
берем наиболее правдоподобное из получившихся кодовых слов. В
некоторых случаях при этом удается многократно переиспользовать
результаты промежуточных вычислений, что позволяет получить де­
кодер с достаточно малой сложностью [16, 82]. Классический декодер
Чейза предполагает т = |Д/2_|, но ничто не мешает выбрать большее
значение т, улучшив таким образом корректирующую способность
за счет увеличения сложности.
3. Этот тип применим к двоичным кодам. Сформируем вектор жестких
решений ( z i , ... ,z n): а также пробные векторы, полученные путем
инвертирования so = 1 —(d mod 2), so + 2, so + 4 , . . . , d —1 наименее
надежных символов. Продекодируем эти векторы с помощью декоде­
ра, исправляющего ошибки в метрике Хэмминга, и выберем наиболее
правдоподобное из получившихся кодовых слов. Данный метод схож
с декодированием по обобщенному минимальному расстоянию.
56
10°
10'1
10'2
ІО' 3
О
н“
10'4
ІО'5
(63,35,12) Box-and-match 2
(6 3 .3 5 .1 2 ) C h a s e -2 6
(6 3 .3 5 .1 2 ) C h a s e -2 8
(6 3 ,3 5 ,1 2 ) P o lty re v b o u n d
(6 3 ,3 5 ,1 2 ) u n io n b o u n d
(2 5 6 ,2 3 9 ,6 ) B o x - a n d - m a tc h 2
(2 5 6 ,2 3 9 ,6 ) C h a s e -2 6
(2 5 6 ,2 3 9 ,6 ) P o lty re v b o u n d
(2 5 6 ,2 3 9 ,6 ) u n io n b o u n d
Eh!No, дБ
Рис. 3.1. Корректирующая способность кодов БЧХ (63,35,12) и
(256,239,6)
Для высокоскоростных кодов метод Чейза обеспечивает декодирование
почти по максимуму правдоподобия и при этом весьма прост.
На рис. 3.1 представлены результаты статистического моделиро­
вания, иллюстрирующие корректирующую способность декодеров Чей­
за типа 2 с т = 6 , 8 и Box-and-Match с t = 2 для случая кодов БЧХ
(63,35,12) и (256, 239,6). Кроме того, на графике представлены объеди­
ненная верхняя граница (2.12) и верхняя граница Полтырева для вероят­
ности ошибки декодирования по максимуму правдоподобия. Видно, что
алгоритм Box-and-Match обеспечивает декодирование почти по макси­
муму правдоподобия. С помощью метода Чейза можно получить весьма
хорошее приближение к декодеру по максимуму правдоподобия. Объеди­
ненная верхняя граница дает приемлемую точность только на высоких
отношениях сигнал/шум, в то время как граница Полтырева дает на­
много более информативные результаты.
Упражнения
1. Пусть
дан
код
/ 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1
0
1 1 1 1 0 0 0 0 1
1 1 0 0 1 1 0 0 1
V1 0 1 0 1 0 1 0 1
с
порождающей
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1\
0
0
0
0 )
матрицей
G
Продекодируйте
в
нем
57
вектор y
Хемминга.
58
=
( O O O I I I O I I I O I I O O I )
в
метрике
Часть II
Алгебраические методы кодирования
59
4. Конечные поля
При построении и декодировании многих корректирующих кодов
используется аппарат полей Галуа.
4.1.
Некоторые алгебраические структуры
4.1.1.
Кольца, тела, поля
Определение 4.1. Кольцом называется алгебра
п = (Л, +, *, 0 , 1 ),
сигнатура которой состоит из двух бинарных и двух нульарных опера­
ций, для которых выполняются равенства (аксиомы кольца):
1. cl -Г (Ь
с) = ( й -Ь 6) -Ь с]
2 . CL"Г Ъ = Ъ CL]
3. й -Ь 0 = сц
4. Ѵй G Л : З й' : а + а' = 0 ;
5. й • (6 • с) = (й • Ь) • с;
6. й • 1 = 1 -й = й ;
7. а • (6 + с) = й • b + й • с
8. (6 + с) • й = b • й + с • й.
Операции + и • называются сложением и умножением, 0 и 1 —
нулем и единицей кольца. Можно заметить, что алгебра (R , 0, +) явля­
ется абелевой группой, называемой аддитивной группой кольца 7Z. При
этом обратный элемент а' : а + а' = 0 обозначают как —а, а операцию
сложения с ним называют вычитанием а + (—6) = а — Ь. С другой сто­
роны, алгебра (R , 1 , •) является мультипликативным моноидом кольца.
Связь между сложением кольца и умножением кольца устанавливается
аксиомой дистрибутивности. Кольцо называется коммутативным, если
его операция умножения коммутативна.
Пример 4.1. Алгебра (Z, +,-,0,1) является коммутативным кольцом. При этом
(No, +, •, 0,1) кольцом не является, т.к. (No, +) — коммутативный моноид, но не груп­
па.
Пример 4.2. Множество всех квадратных матриц фиксированного порядка с опера­
циями сложения и умножения является некоммутативным кольцом.
Теорема 4.1 . В любом кольце выполняются следующие тождества:
1. 0 й = а • 0 = 0
бі
2. (—а) • b = —(а ■b) = а ■(—b)
3. (а — b) • с = а • с — b • с, с • (а —Ъ) = с • а — с • b
Доказательство. 1. а + 0 -а = 1 -а + О -а = (1 + 0) • а = 1 -а = а =Ф
О -а = а —а = 0 . Равенство а • О = О доказывается аналогично.
2 . а • (—6) + а • b = а • ((—6) + 6) = а- 0 = 0 =>а - (—6) = —(а • 6)
3. а • (Ь — с) = а • (6 + (—с)) = а-Ъ + а - (—с) = а • b — а • с.
□
Ненулеввіе элементві а, b кольца называются делителями нуля, если а • b = 0 Vb ■а = 0. Примерами кольца с делителями нуля являют­
ся кольцо вычетов целых чисел по модулю составного числа ( 2 * 3 =
0 mod 6) и кольцо квадратных матриц порядка не ниже 2. Коммутатив­
ное кольцо без делителей нуля называется областью целостности.
Пример 4.3. Областями целостности являются множества целых чисел Z, многочле­
нов с вещественнвіми коэффициентами М[ж] и Гауссовы целые (комплекснвіе числа с
целочисленнвіми компонентами).
Ненулевой элемент кольца и называется обратимым, если для него
существует обратный элемент ѵ : иѵ = 1. Элемент и кольца называется
неразложимым или неприводимым, если он не может быть представлен
в виде произведения двух или более нетривиальных (т.е. отличных от
1 и других обратимых) элементов. Неразложимыми являются простые
числа в кольце целых чисел и неприводимые многочлены.
Пусть задана некоторая область целостности D. Будем говорить
что элемент а G D делит другой элемент b G D (или b является кратным
а, а является делителем Ь, а\Ь), если существует q <Е D : b = qa. В силу ак­
сиомы ассоциативности, если а\Ь и Ь\с, то а\с. Если а\Ь, то Vc e D : a\(cb).
Если а\Ь А а\с, то а\(Ь + с), а\(Ь — с). Обратимые элементы являются де­
лителями всех элементов кольца, т.к. Ѵ6 : b = b • 1 = (b ■а -1 ) • а. Если
a\b и Ь\а, то элементы а и b называются ассоциированными. Элемен­
ты являются ассоциированными тогда и только тогда, когда существует
обратимый элемент и : аи = Ь. Например, в кольце многочленов с веще­
ственными коэффициентами обратимыми являются все элементы вида
f ( x ) = а, а G М\{0}, а многочленом, ассоциированным с некоторым
/(ж), является a f ( x ) , a ^ 0 .
О пределение 4.2. Полукольцом называется алгебра
S
= (S , +, •, 0 , 1 ),
такая, что для произвольных элементов а, b, с множества S выполняются
следующие равенства (аксиомы полукольца):
62
1 . а + (b + с) = (а + b) + с;
2. <2 Т b = b 4- aj
3. (2 Т 0 = CL]
4.
5.
6.
7.
8.
а • (6 • с) = (а • Ь) ■с;
а ■1 = 1 -а = а;
а ■(Ь + с) = а • b + а • с;
(6 + с) • а = b • а + с • а;
а • 0 = 0 -а = 0;
Видно, что кольцо — частный случай полукольца. Если кольцо яв­
ляется абелевой группой по сложению, то полукольцо — лишь коммута­
тивный моноид.
Пример 4.4. Алгебра логики ({0,1}, V, Л) является полукольцом.
Поставим вопрос: в каких случаях кольцо образует группу относи­
тельно операции умножения? Ясно, что все элементы кольца, в котором
0 ^ 1 , не могут образовывать группу по умножению, т.к. О не имеет обратного. Действительно, если существует 0 : 0 • 0 , то 0 = 0 • 0 = 1 .
Таким образом, нулевой элемент не может входить в мультипликатив­
ную группу. Если в кольце имеются делители нуля, то подмножество
ненулевых элементов не может быть группой по умножению, т.к. оно не
замкнуто.
Определение 4.3. Кольцо, в котором множество всех ненулевых эле­
ментов образует группу по умножению, называется телом. Коммутатив­
ное тело называется полем. Группа ненулевых элементов тела (поля) по
умножению называется мультипликативной группой тела (поля).
Таким образом, в любом поле F выполняются следующие тожде­
ства:
1. о, Т (b Т с) = (о, Т 6) Т с]
2 . а + Ъ = Ъ+ а;
3. CL Т 0 = CL]
4. Ѵа G F : За' : а + а' = 0;
5. а • (Ь • с) = (а • Ь) • с;
Q. а • b = b ■а; в случае тела имеет место лишь а ■1 = 1 -а = а;
7. а • (Ь + с) = а • b + а • с, (Ь + с) • а = b • а + с • а;
8. Ѵа Ф 0 За - 1 : а • а - 1 = а - 1 • а = 1 .
Пример 4.5. Алгебра (Q,-,+,0,1) называется полем рациональных чисел. Алгебра
(К, - , + , 0 ,1) называется полем вещественных чисел.
63
Теорема 4.2. Если А — конечное множество и / : А —>• А — инъекция,
то она также является сюръекцией и, следовательно, биекцией.
Доказательство. Предположим, что / не является сюръективным, т.е.
существует такой элемент а G А : $х G А : f ( x ) = а. Пусть х \ , . . . , х п
— последовательность различных элементов А, где п = \А\. Рассмотрим
последовательность f ( x \ ) , .. . , f ( x n). Эта последовательность не может
содержать элемент а, т.е. в ней имеется не более п — 1 различных эле­
ментов. Это означает, что в ней имеются повторяющиеся элементы, т.е.
З іД ■i j£ j Л f(xi) = f ( x j ), что противоречит предположению об инъек­
тивности отображения.
□
Теорема 4.3. Конечная область целостности является полем.
Доказательство. Т.к. область целостности F по определению является
коммутативным кольцом, достаточно только показать наличие мульти­
пликативно обратных у всех ее ненулевых элементов, т.е. что Ух G F :
х ф 0 : Зх~1 : х х ~1 = 1.
Построим отображение f a(%) = а • х , а , х Ф 0. Ясно, что f a(x) :
F \{0} —> F \{ 0 } . Это отображение является инъекцией, т.к. из а • х =
а • у следует а • (х — у) = 0. В силу отсутствия делителей нуля, это
означает, что х = у. В силу конечности F из теоремы 4.2 вытекает, что
f a(x) является сюръекцией, а следовательно, и биекцией. Следовательно,
Му G F \{0} : 3\х : у = ах. В частности, при у = 1 соответствующий х
является элементом, обратным к а.
□
4.1.2.
Идеалы
Определение 4.4. Подмножество I кольца R (в общем случае неком­
мутативного) называется правым идеалом, если
1. (/,{ + } ) является подгруппой (R, {+})
2. Уг E R,\/x <Е I : хг <ЕI.
Если последнее условие заменить на Vr G Л, Ѵт G / : г т G /, то множе­
ство I называется левым идеалом. Если I является и левым, и правым
идеалом, оно называется двусторонним идеалом или просто идеалом.
Ясно, что в коммутативных кольцах все идеалы являются двусто­
ронними. Для простоты будем далее рассматривать именно этот случай.
Если А с R, то идеалом, порождаемым А , называется наименьший
идеал, содержащий А, который обозначается < А >. Этот идеал состоит
из всех элементов вида
riai, щ G А, r% G R. Идеал I называется конеч­
но порожденным, если существует конечное множество А : I = < А >.
64
Пример 4.6. 1. Множество четных чисел является идеалом в кольце Z, порожден­
ным элементом 2.
2. Множество многочленов с вещественными коэффициентами, делящихся на х 2 +
1, является идеалом в R [;г].
3. Множество квадратных матриц, у которых последний столбец является нуле­
вым, является левым идеалом в кольце квадратных матриц, но не является
правым идеалом.
4. Кольцо непрерывных функций вещественного аргумента C'(R) содержит идеал
непрерывных функций, таких что /(1) = 0.
5. {0} и Нявляю тся идеалами в любом кольце R.
6. < х, у > является идеалом, содержащим все многочлены от двух переменных с
нулевым свободным членом.
Идеал называется главным, если он порождается единственным
элементом. Область целостности, в которой все идеалы являются глав­
ными, называется кольцом главных идеалов.
Определение 4.5. Идеал I кольца R называется максимальным, если
I ^ R и всякий идеал J, содержащий его, равен или /, или R.
Другими словами, идеал называется максимальным, если он отли­
чен от своего кольца и не содержится ни в каком ином идеале. Заметим,
что если / і , / 2 , • • •, f n ~ система образующих максимального идеала /,
то добавление в нее /о ^ / приведет к < / о , . . . , f n > = R.
Пример 4.7. Идеал < 7 >С Z является максимальным, т.к. числа, кратные 7, невоз­
можно получить иначе как умножением 7 на целые числа.
Определение 4.6. Пусть дана полугруппа Q = (G , •). Бинарное отноше­
ние ~ с G2 называется отношением конгруэнтности, если оно является
эквивалентностью на G и Va, b,c £ G : (а ~ Ь) => а ■с ~ b ■с.
Пример 4.8. Множество целых чисел является коммутативным моноидом по умно­
жению. Заданное на нем бинарное отношение сравнимости по модулю другого целого
числа является отношением конгруэнтности (сравнимости). Действительно, это отно­
шение является отношением эквивалентности. Если а = Ъmod d, то (а = pd+r) Л(Ь =
qd + г) и Ѵс G Z : (ас = г с m od d) A (be = rc mod d), откуда в силу транзитивности
следует ас = be m od d.
Пусть дано кольцо R и идеал I С R. Определим бинарное отно­
шение ~ = {(а, Ъ) G R 2\b — а £ /}. Ясно, что оно является отношением
конгруэнтности. Если а ~ 6, то говорят, что а и b конгруэнтны (сравни­
мы) по модулю I. Данное бинарное отношение задает разбиение кольца
на классы эквивалентности [а] = а + I = a mod I = { a + r\r £ /}. Мно­
жество этих классов эквивалентности называется факторкольцом или
кольцом вычетов R по модулю /, и обозначается R / I . Факторкольцо
65
действительно является кольцом, если на нем определить операции сле­
дующим образом:
1. (а + I) + (Ь + I) = {а + Ъ) + /
2. —(а + I) — (—а) + I
3. (а + I)(b + I) = {ab) +1
4. Нулевой элемент 0 + / = I
5. Единичный элемент 1 + /.
П рим е р 4.9. Рассмотрим идеал целых чисел, кратны х 3, т.е. < 3 > . Ф акторколь­
цо Z / < 3 > представляет собой множество из трех классов эквивалентности
Аналогичнвім образом можно построить кольцо вычетов R[x\ по модулю неко­
торого многочлена f{x).
Если R — кольцо главных идеалов, и < а >Е R, то соответствующее
факторкольцо обозначают R/aR.
Теорема 4.4. Если I С R является максимальным идеалом, то R / I
является полем.
Доказательство. То, что факторкольцо является кольцом, очевидно.
Необходимо только показать, что для всякого ненулевого а G R / I су­
ществует мультипликативно обратный элемент b : ab = 1. Если а ф О,
то а £ I. Рассмотрим идеал J = {ах + т\х G R , m G /}. Это множе­
ство действительно является идеалом, т.к. {ах\ + т \) ± {ах2 + m 2 ) =
а ( ж і ± Ж2 ) + ( m i ± m 2 ), ( ж і ± Х 2 ) G Л , ( m i ± m 2 ) G / и (аж + т ) г / =
а{ху) + (m y ),xy G R , m y е / при любом у G Л. Полагая ж = 0, можно
получить все элементы исходного идеала /, откуда следует, что / с J.
В то же время а Е J,a ^ I . Т.к. / — максимальный идеал, это означает,
что J = R, т.е. 1 G J. Таким образом, для всякого ненулевого а найдутся
Ь,т : 1 = ab + т, откуда ab — 1 G /, т.е. в факторкольце справедливо
ab = 1. Таким образом, для каждого ненулевого элемента факторкольца
по модулю максимального идеала существует обратный элемент, т.е. оно
является полем.
□
Пример 4.10. Идеал < х , у >С R[x,y\ является максимальным. Следовательно,
R[x,y\/ < х, у > является полем.
Теорема 4.5. Пусть R — кольцо главных идеалов u p — его неприво­
димый элемент. Тогда факторкольцо R / p R является полем.
Доказательство. Докажем, что идеал I = < р > является максималь­
ным. Предположим, что существует идеал J ^ R : I С J. Т.к.
66
R — кольцо главных идеалов, этот идеал также является главным и
3q e R : J = < q >. Если q — обратимый элемент кольца, то J = R.
В противном случае получим, что т.к. р e J, найдется s e R : р = qs.
Но по предположению р является неприводимым элементом, откуда s
является обратимым элементом кольца. Но тогда s-1 G R и q = s~lp,
т.е. J С /, откуда I = J. Таким образом, идеал < р >= p R является
максимальным и R / p R является полем.
□
В дальнейшем подобные поля будут обозначаться просто R/p.
Пример 4.11. Пусть р — простое число. Ниже будет показано, что кольцо целых
чисел Z является кольцом главных идеалов. Тогда Z/р является полем и обознача­
ется GF(p). Действительно, сравнение вида ах = 1 mod р, 0 < а < р всегда имеет
единственное решение.
Пример 4.12. Многочлен ж2+ 1 является неприводимым над полем вещественных чи­
сел К. Как будет показано ниже, кольцо R|r/;| является кольцом главных идеалов. Сле­
довательно, факторкольцо М[ж]/(ж2+ 1) является полем. На самом деле оно совпадает
сполем комплексных чисел С. Действительно, (a+bx)(c+dx) = ас + (ad+ be)х + bdx2 =
(ac —bd) + (ad+bc)x mod (x2 I I), что соответствует произведению комплексных чисел
а + i b и с + i d. Обозначая і = [ж]=^2+і, получим i • i = x 2 = —1 mod (x2 + 1).
Пример 4.13. Рассмотрим многочлен x 2 + x + 1, неприводимый над полем GF(2).
Кольцо GF{2)[x\ является кольцом главных идеалов. Следовательно, GF(2)/(x2 +
х + 1) является полем и обозначается GF{22) или GF(4). Элементами этого поля
являются классы многочленов 0 ,1 ,т ,т + 1 по модулю х 2 + х + 1. Все операции в
этом поле выполняются по модулю х 2 + х + 1. Например, х ■(х + 1) = х 2 + х =
1 mod {х2 + х + 1). Аналогично случаю комплексных чисел, можно ввести элемент
/3 G GF(22), такой что /З2 + /3 + 1 = 0.
Таким образом, расширенные поля образуются присоединением к
исходному полю мнимого корня некоторого неприводимого многочлена.
4.2.
Алгебраические свойства конечных полей
4.2.1.
Основные факты о конечных полях
Напомним, что в соответствии с теоремой 4.5, если R является
кольцом главных идеалов и р — его неприводимым элементом, то фак­
торкольцо R / p R является полем. В зависимости от свойств кольца R ,
это поле может содержать конечное или бесконечное число элементов.
Поле, содержащее конечное число элементов q, называется конечным и
обозначается GF{q). Конечные поля называются также полями Галуа.
Конечное поле является областью целостности, т.к. если допустить, что
За, b Ф 0 : ab = 0, то 0 = (((аЪ)Ъ~1)а~х) = 1.
67
Если поле конечно, то не могут быть различными все элемен­
ты 1,1 + 1,1 + 1 + 1, .... Следовательно, существует наименьшее число
р : 1 + 1 + ... + 1 = 0. Оно называется характеристикой поля. Чиср раз
ло р является простым, т.к. если допустить, что р = st и s ,t > 1,
то обозначая S = 1 + 1 + ... + 1, Т = 1 + 1 + ... + 1, получим 0 =
4
ѵ
^
4
s раз
t раз
1 + 1 + ... + 1 = S' + S + ... + S = S (1 + 1 + ... + 1) = S T , откуда елер раз
t раз
t раз
дует, что S = ОV Т = 0, что противоречит предположению о минималь­
ности р. Бесконечные поля называют полями характеристики нуль.
Заметим, что если р(х) — неприводимый многочлен степени то над
полем GF(q), то с помощью него можно построить поле GF(q)[x]/p(x),
состоящее из всех классов полиномиальных вычетов по модулю р(х).
Ясно, что таковых имеется qm штук.
Теорема 4.6. Пусть F — поле из q элементов. Тогда q = рт, где р —
простое, a m — натуральное число.
Доказательство. Как было показано выше, элемент 1 образует адди­
тивную циклическую подгруппу исходного поля, причем эта подгруппа
имеет простой порядок р. Из аксиом поля вытекает, что все его элементы
также образуют аддитивную группу из q элементов, откуда в силу тео­
ремы Лагранжа следует p\q. Кроме того, элементы подгруппы, порож­
даемой 1, изоморфны кольцу целых чисел по модулю р. Следовательно,
F содержит подполе, изоморфное GF(p).
Будем называть элементы а д , . . . , а т линейно независимыми с ко­
эффициентами из GF(p), если1 {(ац, ^2, • • •, %т) £
0} = {(0, . .. , 0)}. Среди всех линейно независимых подмножеств F вы­
делим подмножество {ац,. . . , а т} с максимальным числом элементов.
Следовательно, Ѵ/3 G F множество {/3, а ц , . . . , а т} линейно зависимо, т.е.
Зад, . . . , х т G GF{p) : /3 = Y a =i x FM- В силу линейной независимости
элементов сц различные значения ац приведут к различным значениям
/3. Всего различных значений ац существует р штук, т.е. число различных
элементов поля равно рт.
□
Следствие 4.1. Поле GF(qm) образует т-мерное линейное простран­
ство над полем GF(q).
: He следует путать m-мерное векторное пространство GF(p)m и конечное поле
GF{jpm). Их взаимосвязь будет исследована ниже.
68
Замечание 4.1. Описанный выше способ построения поля G F (q m) с помощью непри­
водимого над
G F (q )
многочлена применим как в случае простого
q,
так и в случае
q — р1.
Замечание 4.2. Необходимо понимать, что конечное поле GF(pm) ,m > 1 не имеет
ничего общего с кольцом Ър™ целых чисел по модулю р т , которое полем не является.
Поля, содержащие простое число элементов, называются просты­
ми. Поля вида GF{pm), где т > 1 и р — простое, называются расширен­
ными.
Лемма 4.1. Пусть Q = (G, •) — конечная группа и элементы g,h G G
имеют порядок г, s соответственно, причем (г, s) = 1. Тогда элемент
gh имеет порядок rs.
Доказательство. То, что (gh)rs = 1, очевидно. Следователвно, истин­
ный порядок р элемента gh должен бвітв делителем числа rs. Пуств
p\(rs) и (gh)p = 1. Тогда (gh)pr = hpr = 1. Из этого следует, что s\(pr)7
откуда s\p. Аналогично можно показатв, что г\р. Т.к. (г, s) = 1, получаем
(rs)\p, что означает р = rs.
□
Теорема 4.7. Множество ненулевых элементов конечного поля GF(q)
образует конечную циклическую группу по умножению.
Доказательство. То, что ненулевые элементы образуют конечную груп­
пу по умножению, следует из аксиом поля. Выберем в этой группе эле­
мент а с максимально возможным порядком г. Пусть I — порядок некото­
рого другого элемента /3 Ф 0. Пусть 7г — простое число, такое что г = n ar'
и I = 7rbl' и (г', 7г) =
= 1. Тогда элемент сПа имеет порядок г', а (З1'
имеет порядок яА Из леммы 4.1 следует, что порядок у = с А (З1' равен
7гѴ'. Т.к. г — максимально возможный порядок, получим irbr' < тѵаг' и
b < а. Это справедливо для всех простых 7г. Таким образом, если некото­
рая степень простого числа является делителем I, то она является и дели­
телем г. Следовательно, 1\г. Таким образом, получаем, что все элементы
конечного поля удовлетворяют соотношению х г —1 = 0. Многочлен x r —1
принадлежит Евклидову кольцу GF(q)[x\ и разлагается на множители
единственным образом. Следовательно, \/[3 G G F (q )\{0} : (х—(3)\{xr—1),
откуда г > q — 1. Но порядок элемента в группе не может превышать
порядка самой группы, откуда г = q — 1. Таким образом, в группе нену­
левых элементов поля существует образующий элемент, т.е. она является
циклической.
□
69
Образующий элемент а, существование которого было установлено
в предыдущей теореме, называется примитивным. В случае простого q
этот элемент равен первообразному корню по модулю q.
Следствие 4.2. Д л я всякого ненулевого /3 G GF(q) выполняется
(3q~l = 1.
Следствие 4.3. Все элементы поля GF{q) удовлетворяют уравнению
x q —х = 0.
Доказательство. Ненулевые элементы удовлетворяют уравнению x q~l —
1 = 0, а следовательно и x ( x q~l —1) = 0. Ясно, что последнему уравне­
нию удовлетворяет и нулевой элемент.
□
Следствие 4.4. Порядок любого ненулевого (3 G GF(q) делит q —1.
Следствие 4.5. Всякий ненулевой элемент поля (3 образует некоторую
циклическую подгруппу по умножению, порядок которой совпадает с
порядком [3.
Теорема 4.8. В поле характеристики р > 1 справедливо
(х + у)р = хр + ур
Доказательство. Воспользуемся соотношением
р
(х + у)р =
р—і
СрХр~гуг = хр + ур +
і=о
Заметим, что Ср =
4.2.2.
СрХр~гуг.
і=1
= о mod р, 0 < г < р.
□
Минимальные многочлены
Как было показано выше, все элементы конечного поля GF(pm)
удовлетворяют уравнению хр —х = 0. Они, однако, могут быть корнями
и многочленов меньшей степени.
Определение 4.7. Минимальным многочленом элемента /3 G GF(pm)
над GF(p) называется нормированный многочлен М (х) G GF(p)[x] наи­
меньшей возможной степени, такой что М(/3) = 0.
Пусть М (х) — минимальный многочлен некоторого /3 G GF{pm).
Теорема 4.9. М (х) неприводим над GF(p).
70
Доказательство. Если М (х)
=
M i(x )M 2(x),degMi(x)
<
d eg М( х ) , М і (х ) G GF{p)[x\ и М{(3) = 0, то Мі(/3) = 0 или М2Д ) = О,
откуда следует, что степень М{х) не минимальна.
□
Теорема 4.10. Если f ( x ) G GF(p)[x\ и f{(3) = 0, то M (x )\f(x ).
Доказательство. Разделив f ( x ) на М{х) с остатком, получим f ( x ) =
q(x)M(x) + r(x),degr(x) < degM(x), 0 = f{(3) = q(/3)0 + r{(3). Если
r{x) Ф 0, то оказалось бы, что степень r{x) e GF(p)[x\, имеющего корень
(3, меньше степени минимального многочлена (3. Следовательно, г(х) =
0.
□
Теорема 4.11. М{х)\(хрт —х)
Доказательство. Утверждение непосредственно вытекает из предыду­
щей теоремы.
□
Теорема 4.12. deg М{х) < т
Доказательство. GF(pm) образует некоторое ш-мерное линейное про­
странство над GF(p). Следовательно, любые т + 1 элементов GF(pm) ли­
нейно зависимы над GF(p). В частности, \//3 : Зао,аі, . . . ,ат G GF{p) :
Y^iLoai@l = 0- Таким образом, М (х) =
оа^ е GF(p)[x\ имеет эле­
мент /3 своим корнем. Возможно, этот многочлен можно разложить на
сомножители меньшей степени.
□
Теорема 4.13. Если а — примитивный элемент GF{pm), то степень
его минимального многочлена равна т.
Доказательство. Пусть 7т(х) — минимальный многочлен примитив­
ного элемента а. Его степень d не превосходит га. Заметим, что
\GF( p )[x ]/ tt(x )\ = pd. Т.к. іт(х) неприводим, он порождает поле GF(pd).
Но это поле содержит также элемент а : тт(а) = 0, а, значит, и все поле
GF(pm). Следовательно, d > га, откуда d = га.
□
Минимальный многочлен примитивного элемента поля называется
примитивным. Не все неприводимые многочлены являются примитив­
ными.
Теорема 4.14. Все конечные поля GF(pm) изоморфны.
Доказательство. Пусть F и G — поля порядка рт и пусть а — прими­
тивный элемент поля F с минимальным многочленом іг(х ). Из теоремы
4.11 следует, что іг(х)\(хрт —х). Следовательно, 3/3 G G : іг(/3) = 0. Те­
перь F можно рассматривать как множество многочленов от а степени
71
не более т — 1, а G — как множество многочленов от /3 степени не более
т — 1. Тогда соответствие а -и- /3 задает изоморфизм полей F и G.
□
Пример 4.14. Рассмотрим два способа задания поля GF{23)._____
Через многочлен ж3 + ж + 1 Через многочлен ж3 + ж2 + 1
(000) = 0
(000) = 0
(001) = 1 = 7°
(001) = 1 = о°
(010) = 7
(010) = а
(100) = 72
(100) = а 2
(101) = 73 = 72 + 1
(ОН) = а 3 = а + 1
(111) = 74 = 72 + 7 + 1
(ПО) = а 4 = а 2 + а
(011) = 75 = 7 + 1
(111) = а 5 = а 2 + а + 1
(101) = о 6 = а 2 + 1
(ПО) = 76 = 72 + 7
Заметим, что c F + a + l = 0 и (7 3)3+ 7 3+ 1 = 72+73+ 1 = 0, т.е. п { а ) = 7г(73) = О,
где 7г(ж) = ж3+ ж+ 1. Таким образом, соответствие а Н 7 3 задает изоморфизм между
этими двумя полями.
Пример 4.15. Многочлен 7г(ж) = ж4+ж3+ж2+ж+1 неприводим над полем G F { 2), но не
является примитивным, т.к. выполняется сравнение ж5 = 1 mod (ж4 + ж3 + ж2 + ж + 1).
Тем не менее, факторкольцо G F (2 )[ x \ / tt(x ) является полем G F ( 24). Примитивным
элементом этого поля является многочлен а = х + 1 (т.е. класс многочленов, срав­
нимых с ним по модулю 7г(ж)).
Л ем м а 4.2. Если n, г, s G Z : п > 2, г > 1, s > 1, mo (ns — 1)|(nr — 1)
тогда и только тогда, когда s\r
Доказательство. Пусть г = Qs + Я, 0 < R < s. Тогда
= r,K\ s I i +
n Qs _ ^ всегд а делится на n s — 1.
—1 делится на n s —1 только
при R = 0.
□
Теорема 4.15. GF(pr) содержит подполе GF(ps) тогда и только то­
гда, когда s|r.
Доказательство. Если s|r, то рг — 1 делится на ps — 1 и многочлен Л*г —
ж делится на x pS — х. Т.к. GF(pr)[x\ является областью однозначного
разложения на множители, а все его элементы являются корнями х рГ—х ,
этот многочлен не имеет кратных корней. Следовательно, таковых нет и
у xpS — х. Покажем, что корни последнего образуют поле.
Действительно, 0, ± 1 являются его корнями. Если а,Ь — кор­
ни этого многочлена, то а + b и ab также является таковыми, т.к.
(■а+Ъ)р3-{а + Ь ) = apS-a+bPs- b = 0 и {аЪ)р3- a b = {apS-а )( Ѵ ? -b)+bapSab + abPs —ab = 0. Таким образом, множество корней хр —х замкнуто по
умножению и сложению. Свойства коммутативности и ассоциативности
выполняются в силу того, что эти корни принадлежат также GF(pr).
Если аа~1 = 1, то (a-1 )pS — а -1 = (ар8)_1 — a~l = a~l — аГ1 = 0,
72
т.е. для всех ненулевых корней существует обратный элемент, также яв­
ляющийся корнем. Следовательно, корни рассматриваемого многочлена
образуют поле GF(ps)
Если (3 — примитивный элемент GF(ps) с GF(pr ), то f3pS~l =
1, (ЗрГ~1 = 1, откуда (ps —1)| ( j/ —1), что возможно только при s\r. □
Пример
4.16. Поле
GF{212)
содержит
подполя
GF(2),GF(22),GF(24),GF(23),GF(26). GF{ 24) не является подполем GF( 26).
Однако GF(22) является подполем GF(26).
Конечные поля могут быть построены для любого простого чис­
ла р и любого т > 0. В силу вышедоказанной теоремы, расширенные
поля могут строиться итеративно, т.е. на основе поля GF(pm) можно
построить поле GF(pn).
Теорема 4.16. Минимальные многочлены элементов [3 G GF{pm) и (З'р
совпадают.
Доказательство. Если 0 = М((3) =
£ Й М(Ж)о | / ^ Т.к. М (х)
тельно, 0 = М{(3Ѵ).
G
GF(p)[x\, щ
то 0 = М((3)р =
G
GF(p) и
= щ. Следова­
□
Таким образом, множество ненулевых корней минимального мно­
гочлена имеет вид /3^, где j пробегает все элементы некоторого цикло­
томического класса относительно умножения на р по модулю рт —1
{s, sp, sp2, . . . , spms-1}, spms = s mod (pm —1),
причем число m s выбирается наименьшим возможным.
Пример 4.17. Циклотомические классы относителвно умножения на 2 по модулю 15
имеют вид
Со
Сі
Сз
С5
С7
=
=
=
=
=
{0}
{1,2,4,8}
{3,6,12,9}
{5,10}
{7,14,13,11}
Элементы, являющиеся корнями одного и того же минимального
многочлена, называются сопряженными. Таким образом, все минималь­
ные многочлены по модулю рт —1 (кроме х ) могут быть получены как
M s{x) =
j€Cs
73
где а — примитивный элемент GF(pm). Кроме того, из теоремы 4.11
следует, что неприводимые над GF(p) сомножители в разложении многочлена хупт — х также являются минимальными многочленами.
Теорема 4.17. Многочлен хрт—х равен произведению всех нормирован­
ных неприводимых над GF(p) многочленов, степени которых делят т.
Доказательство этой теоремы оставляется читателю в качестве
упражнения.
4.3.
Вычисления в конечных полях
При использовании конечных полей в приложениях необходимо ре­
ализовать, как минимум, операции сложения, вычитания, умножения и
деления. В зависимости от характеристики поля, степени его расшире­
ния, доступных аппаратных возможностей и специфики решаемой зада­
чи могут использоваться различные методы или их комбинации.
В случае простых полей вычисления могут производиться как
с обычными целыми числами по модулю простого числа. Реализация
арифметики расширенных полей может быть менее тривиальной. В об­
щем случае расширенные поля могут рассматриваться как факторкольца многочленов, т.е. все операции могут производиться по правилам ра­
боты с многочленами с последующим приведением по модулю неприво­
димого многочлена. Однако этот способ в большинстве случаев оказы­
вается крайне неэффективным.
4.3.1.
Логарифмы
Как было показано выше, все ненулевые элементы конечного поля
GF(pm) представимы как (3 = а г, где а — примитивный элемент поля.
Следовательно, умножение и деление двух ненулевых элементов может
быть выполнено как а г • сР = а г+і и (-F = a l~J . При практической реа­
лизации целесообразно не допускать неограниченного роста показателей
степеней, поэтому их приходится приводить по модулю рт — 1. Таким
образом, ненулевые элементы конечного поля могут быть представлены
в виде их логарифмов (или индексов) г = inda (5. При этом предпола­
гается іпсі(О) = —exi. Однако данный метод не позволяет эффективно
реализовать сложение и вычитание.
Проблема сложений может быть решена с помощью логарифмов
Зеча, определяемых уравнением 1 + а п = a z(pl\ В этом случае элементы
также можно хранить в виде их обычных логарифмов, а для сложения
использовать тождество а т+ ап = а т(1+ап~т) = a m+z (n- m). При этом
74
для вычитания придется вычислять —а і = о т^а~1а \ т.е. необходимо
заранее найти inda (—1). Однако в практически наиболее важном случае
полей характеристики 2 имеет место 1 = —1 и сложение совпадает с
вычитанием.
4.3.2.
Стандартный базис
Конечное поле GF(pm) может рассматриваться как линейное про­
странство GF(p)m. Каждое конечномерное линейное пространство обла­
дает базисом. Некоторые базисы конечных полей представляют особый
практический и теоретический интерес.
Как было показано выше, во всяком конечном поле GF(pm) суще­
ствует примитивный элемент а , являющийся корнем некоторого прими­
тивного многочлена тг(х) E GF(p)[x\ степени т. Это означает, что на­
бор элементов аР,. . . , а т ~ 1 линейно независим над GF(p), а значит все
элементы GF(pm) могут быть представлены как линейные комбинации
а \ і = 0..т —1 с коэффициентами из GF(p). Таким образом, элементы
а г,і = 0..т — 1 образуют базис, называемый стандартным. Каждый
элемент /3 E GF(pm) : /3 = Y^d=o
однозначно представляется в виде
вектора (Ьо, ■■■, Ът- 1 ). Тогда сложение и вычитание могут выполняться
по правилам векторной алгебры в поле GF(p). На практике в большин­
стве случаев т мало и р = 2 , так что каждый элемент GF(2m) может
быть представлен в виде одного машинного слова, что позволяет реали­
зовать сложение в виде одной операции XOR.
Умножение может осуществляться как 13 -у = Хцщ)1
Заме­
тим, что элемент а г7 может быть получен сдвигом векторного представ­
ления 7 на і позиций с последующим приведением по модулю примитив­
ного многочлена тг(х ). Часто операции сдвига и приведения по модулю
совмещают в регистрах сдвига с линейной обратной связью.
Однако на практике более эффективным приемом оказывается ис­
пользование таблиц логарифмов и антилогарифмов, которые по задан­
ному вектору (Ьо, .. •, bm- i ) позволяют найти %= indа (3, а также вы­
полнить обратное преобразование. В этом случае умножение сводится
к нахождению по таблице логарифмов перемножаемых элементов, их
сложению по модулю рт — 1 и восстановлению с помощью таблицы ан­
тилогарифмов векторного представления произведения.
75
Упражнения
1. Построить поле GF( 24), задаваемое примитивным многочленом х 4 + х + 1, и
вычислить —
где а — примитивный элемент поля.
2. Вычислить ff293+^n 13— , где /3 — примитивный корень многочлена Т 10+ Т 8+ Т 6+
Т 4 + Т 2 + Т + 1 по модулю 2.
3. Найти многочлен, неприводимый над полем GF(22), и построить с помощью
него поле GF( 24).
-2
76
5. Коды Боуза-Чоудхури-Хоквингема
Использование линейных кодов позволяет значительно упростить
реализацию операции кодирования. Однако сложность универсальных
алгоритмов декодирования линейных блоковых кодов, рассмотренных
выше, в большинстве случаев оказывается слишком высокой для практи­
ческого использования. С другой стороны, процедура построения хоро­
ших линейных кодов, приведенная в доказательстве теоремы 2.7, также
имеет слишком большую сложность. Как будет показано в этой и после­
дующих главах, наложение дополнительных ограничений на структуру
кода позволяет не только легко строить коды с заданными параметрами,
но и эффективно их декодировать.
5.1.
5.1.1.
Циклические коды
Основные понятия
Определение 5.1. Блоковый код называется циклическим, если он ли­
неен и всякий циклический сдвиг любого его кодового слова дает другое
кодовое слово этого же кода.
Кодовые слова (со,. . . , с^-і) циклических кодов удобно представ­
лять в виде многочленов с(х) =
Q x \ где х — формальная перемен­
ная. Такая запись позволяет описать операцию циклического сдвига на
одну позицию как хс(х) = сп- \ + сох + с\х2 + ... + сп- 2Хп~1 mod х п —1.
Таким образом, вводится соответствие между кодовыми словами и остат­
ками от деления многочленов на х п —1. Множество последних образует
факторкольцо ¥[х\/(хп —1). В дальнейшем будут одновременно исполь­
зоваться и векторное, и многочленное представления кодовых слов, при­
чем понятие кодового многочлена будет использоваться наравне с поня­
тием кодового слова.
Теорема 5.1. Подмножество С С ¥[х\/(хп —1) образует циклический
код тогда и только тогда, когда С образует группу по сложению и
Уа(х) G ¥[х\/(хп — 1) : с(х) G С
а(х)с(х) G С.
Доказательство. Предположим, что С обладает указанными свойства­
ми. Первое из них означает, что С является линейным подпространством
¥ п (т.е. линейным кодом), а второе означает, в частности, что всякий
77
циклический сдвиг кодового слова (т.е. а(х) = х г) также является кодовым словом.
Обратно, всякий линейнвій код образует группу по сложению. Опе­
рацию умножения с(х) на а(х) можно представитв как взвешенную сум­
му различнвіх циклических сдвигов кодового слова, задаваемого с(х),
которая также является кодоввім словом в силу линейности кода.
□
Выберем ненулевой многочлен д(х) Е С наименвшей возможной
степени г такой, что дг = 1. Он является единственнвім и называется
порождающим многочленом кода. Все с(х) Е С делятся на него. Дей­
ствительно, если предположить противное, т.е. существование с(х) Е С ,
такого что с(х) = а{х)д{х) + г (х), deg г (х) < deg д(х),г(х) Ф 0, то полу­
чим, что г(х) также принадлежит С. Это противоречит условию мини­
мальности степени д(х).
Так как С содержит многочлены степени не более п —1, операцию
кодирования можно определить как с(х) = и(х)д(х), где и(х) — инфор­
мационный многочлен такой, что deg и(х) < п —г. Таким образом, раз­
мерность циклического кода равна к = п —degg(:c). Соответствующая
порождающая матрица имеет вид
G=
(%
9і
• • • 9 п -к
0
9о
9і
‘‘‘
9п— к
0
0
0
до
9і
■■■
9 п -к
0
0
9о
'''
^0
0
о
о \
о
о
:
9п—к—1 9п—к )
Теорема 5.2. Циклический код длины п с порождающим многочленом
д(х) существует тогда и только тогда, когда д(х)\(хп — 1).
Доказательство. Рассмотрим циклический код с порождающим мно­
гочленом д{х) и разделим х п — 1 на д(х) с остатком, т.е. предста­
вим х п — 1 = q{x)g{x) + r(x),degr(x) < degд(х). Многочлен а(х) =
q(x)g(x) mod х п —1 является кодовым, так как получен из кодового мно­
гочлена д(х). Но в этом случае г(х) = —а(х) mod х п — 1, т.е. г(х) также
является кодовым многочленом. Это возможно, только если г(х) = 0.
Обратно, можно построить циклический код как множество с(х) =
а(х)д(х) для какого-нибудь делителя х п — 1.
□
Таким образом, существует такой h{x), что х п —1 = h(x)g(x). Мно­
гочлен h(x) называется проверочным, так как для любого с(х) Е С спра­
ведливо c(x)h(x) = a(x)g(x)h(x) = 0 mod х п — 1. Это сравнение можно
78
переписать как c(x)h(x) = a(x)(xn — 1). Так как deg a(x) < к, в мно­
гочлене c(x)h(x) коэффициенты при х к, . . . , х п~1 равны нулю. Таким
образом, кодовые слова циклического кода удовлетворяют проверочным
уравнениям
к
hiCi_i = 0, к < I < п —1.
і=О
Это позволяет записать проверочную матрицу кода в виде
ho
( hk hk-1
0
h
hk-1
н =
0
0
hk hk-i
0
1°
0
0 ... о
ho 0 •••
h0 0
°\
0
hk ••• h
ho)
На практике желательно иметь систематический кодер. Потребуем,
чтобы информационные символы размещались в позициях п —к . . . , п —1
кодового слова, т.е. будем строить кодовый многочлен как
с(х) = а(х) + х п~ки{х).
(5.1)
Многочлен а(х), соответствующий проверочным символам, должен быть
подобран таким образом, чтобы с(х) делился на д(х). Очевидное решение
состоит в выборе а(х) = —х п~ки{х) mod д(х), где и(х) — многочлен,
задающий кодируемую информационную последовательность. Заметим,
что dega(T) < п — к = degg(:r).
Существуют и другие методы кодирования циклических кодов, со­
ответствующие иным формам порождающей матрицы. Однако коррек­
тирующая способность и алгоритмы исправления ошибок не зависят от
выбора метода кодирования.
5.1.2.
Д екодер Меггитта
Рассмотрим декодирование циклического кода в метрике Хэммин­
га. Принятая последовательность может быть представлена как
у(х) = и(х)д(х) + е(х),
где е(х) — многочлен, соответствующий вектору ошибок. Введем син­
дромный многочлен S(x) = у(х) = е(х) mod д(х). Рассмотрим произ­
вольный циклический сдвиг вектора ошибки, который можно предста­
вить как е'(х) = а(х)(хп — 1) + х ге(х), где а(х) — некоторый многочлен.
79
В силу свойств сравнений и теоремы 5.2 получим, что е'{х) = х ге(х) =
x lS ( x ) mod д(х). Таким образом, синдромы циклических сдвигов век­
тора ошибки тесно связанві между собой. За счет этого можно уменьшитв размер таблицві, исполвзуемой синдромным декодером (см. разд.
2.2.2). Из нее можно удалитв все записи [ S ^ ( x ) , e ^ \ x ) ] , соответствую­
щие лидерам смежнвіх классов е ^ ( х ) , которые являются циклически­
ми сдвигами друг друга. Процедура декодирования состоит в вычисле­
нии S(x) и поиске в таблице записи, первая компонента которой бвіла
бві равна S ^ \ x ) = xJS{x) mod g(x), 0 < j < n. Вектор ошибки равен
e(x) = x n~i°e^ (x ) mod x n —1, где jo — то значение j, на котором поиск
завершился успешно.
Пример 5.1. Рассмотрим декодирование циклического (15,11,3) кода с порождаю­
щим многочленом д(х) = ж4 + х + 1. Код способен исправлять одну ошибку, т.е. об­
щее число исправимых векторов ошибки равно 15. Используя вышеописанный под­
ход, достаточно построить лишь таблицу с одной записью, например [ж3 + I, г/;141
(так как х 3 + 1 = ж14 mod д{х)). Предположим, что принятый многочлен имеет вид
у{х) = ж14 + х 2 + 1. Синдромный многочлен равен S(x) = у(х) = х 3 + х 2 mod д(ж).
Рассматривая все возможные многочлены х 3S ( x ) mod д(х), обнаружим, что ж"3 I I =
x 8S(x) mod д(х), откуда е{х) = х 7 ■х 14 = х 6 mod ж15 — 1, т.е. исправленный кодовый
многочлен равен с(х) = у(х ) —е(х) = ж14 + х 6 + х 2 + 1.
5.1.3.
Корни порождающего многочлена
Как бвіло показано выше, все кодовые многочлены циклического
кода над
делятся на порождающий многочлен д(х), который, в свою
очередь, является делителем х п —1. Ограничимся рассмотрением случая,
когда многочлен хп —1 свободен от квадратов, т.е. в разложении х п —1 =
Пщі/г(ж), где f i ( x ) — неприводимые над F^ многочлены, отсутствуют
повторяющиеся элементы. Многочлен д(х) может быть представлен как
произведение некоторых из этих многочленов, откуда вытекает, что всего
существует 21 — 2 нетривиальных циклических кодов длины п.
Циклический код длины п над F^ называют примитивным, если
п = qm — 1 для некоторого т. Известно, что в этом случае x q™~1 —1 =
Пі=і (х ~ Pj), гДе Pj — различные ненулевые элементы конечного поля
F qm: а неприводимые многочлены fi(x) G F^[ж] являются минимальны­
ми многочленами соответствующих элементов из F^m, т.е. многочлена­
ми наименьшей возможной степени с коэффициентами из ¥ q, имеющими
эти элементы своими корнями. Несложно убедиться в том, что каждый
80
такой многочлен имеет вид
ГПі- i
fi(x) =
Y [ (x ~ i 3 f ) i
( 5 -2 )
3 =0
nmi
где nrii — наименьшее положительное число такое, что /Д = /Д . С
другой стороны, все ненулевые элементы конечного поля могут быть
представлены как степени некоторого примитивного элемента а. Тогда
fi(x) = YljGcSx ~ a j ^ где Ci = {s*’Siq’ Siq2’ • • • ’ siqnii~1} — Циклотоми­
ческий класс над
по модулю п, причем Siqmi = s%mod п. Элементы
конечного поля, минимальные многочлены которых совпадают, называ­
ются сопряженными.
Вышеописанный подход может быть использован и в тех случаях,
когда циклический код не является примитивным.
Теорема 5.3. Пусть дано конечное поле F ?. Если п и q взаимно про­
сты, то существует т такое, что (х п — l)|(aFm_1 — 1) и многочлен
х п —1 имеет п различных корней в F qm.
Доказательство. Докажем вначале существование т : n\(qm —1). Деля
ql на п с остатком, получим ql = Qpn + s%, 1 < г < п + 1,0 < Si < п.
Найдется по крайней мере одна пара (i,j) : %> j, такая что Si = Sj. Тогда
qi^q^i — 1) = (Qi — Qj)n. Так как (q,n) = 1, получим, что n\(qm — 1),
где т = і —j.
Таким образом, возможно разложение x q™~1 —1 = x nr — 1 — (х п —
1)(1 + х п + х 2п + ... + аДД-1)), где г = q Д 1-. В силу свойств конечного
поля Fgm, все корни многочлена аТ™-1 —1 различны.
□
Если /Д, . . . , (3n-k G F qm — корни порождающего многочлена g(x) G
Fg [ж], то эти элементы являются также и корнями всех кодовых много­
членов циклического кода. Таким образом, все кодовые слова удовлетво­
ряют системе линейных уравнений
п —1
У " PjCi = 0,1 < j < n - k .
(5.3)
i= 0
Это позволяет определить проверочную матрицу кода над расширенным
д°
н =
$
01
@2
■. .
/Щ Ч
..
/ f - 1
Ph-k
• ••
рп
)
81
В силу того, что порождающий многочлен циклического кода равен
произведению некоторых минимальных многочленов, для его задания
достаточно лишь указать по одному корню /% каждого из этих много­
членов; все их сопряженные элементы /3? окажутся его корнями авто­
матически в силу (5.2). Это позволяет исключить некоторое число строк
из вышеприведенной проверочной матрицы. Вместе с тем, для эффек­
тивной работы рассматриваемых ниже алгоритмов декодирования может
быть необходимо использование полной проверочной матрицы. Необхо­
димо отметить, что эта матрица содержит элементы из некоторого рас­
ширенного конечного поля F ?т, хотя рассматривается код С над ¥ q. В
принципе, она задает также некоторый код С над F^™, причем исходный
код С является ограничением кода C' на подполе F ?, т.е. представляет
собой множество таких кодовых слов С', все элементы которых принад­
лежат F q.
Пусть дан некоторый базис 70 , • • • , 7 т - і конечного поля F qm. Раз­
ложим по этому базису все элементы /3j = Х^!=о ^ijHhbiji G ¥ q. Тогда
система (5.3) может быть переписана как Хдм) bijiQ = 0. Элементы
Ъф 1 < j < п — k,0 < і < п ,0 < I < т также образуют (п — к)т х п
проверочную матрицу кода С. Зачастую эта матрица содержит линейно
зависимые строки. Тем не менее, ее можно использовать для того, что­
бы получить оценку для размерности циклического кода. Последняя не
может быть меньше, чем п — (п — к)т.
Пример 5.2. Рассмотрим циклический (7,4,3) код с порождающим многочленом
д{х) = х 3 + х + 1. Его корнями являются элементы а, а 2, а 4 £ F8, где а — при­
митивный элемент1 этого поля. Таким образом, проверочная матрица этого кода над
/ а 0 а 1 а 2 а 3 а 4 а 5 а 6\
= J а 0 а 2 а 4 а 6 а 1 а 3 а 5 . Раскладывая
расширенным полем имеет вид
\ а 0 а 4 а 1 а 5 а 2 а 6 оі3)
ее элементы по стандартному базису (о;0, Q1, Ск2), получим еще одну проверочную
/і 0 0 1 0 1 Л
0 1 0 1 1 1 0
0 0 1 0 1 1 i
1 0 0 1 0 1 i
матрицу этого кода H' = 0 0 1 0 1 1 i . Несложно убедиться в том, что ее
0 1 1 1 0 0 i
1 0 0 1 0 1 i
0 1 1 1 0 0 i
1 0 1 1 1 V
я
1Многочлен
ния F23.
82
д(х)
оказался примитивным и может быть использован для построе­
строки 4 - 9 являются линейными комбинациями строк 1 - 3, а потому могут быть
исключены. Это свидетельствует об избыточности строк 2-3 матрицы Н, которые
соответствуют сопряженным корням д(х). Столбцы, образованные элементами пер­
вых трех строк матрицы H ' , представляют собой все различные двоичные векторы
длины 3. Таким образом, этот код эквивалентен коду Хэмминга.
5.2.
5.2.1.
К оды Б Ч Х
С войства и кон струкци я кодов
Т еорем а 5.4 (Граница Боуза-Чоудхури-Хоквингема). Пусть дан
(n,k,d) циклический код над
с порождающим многочленом д(х).
Пусть Wqm — наименьшее расширение поля, содержащее все корни д(х),
и (5 G Wqm — образующий элемент мультипликативной циклической
группы порядка п. Если для некоторого b корнями д(х) являются эле­
менты (Зь, (Зь+1. . . , (3b+s~2, то d > 5.
Доказательство. Все кодовые слова рассматриваемого кода удовлетво­
ряют системе линейных уравнений
((3°
/3°
nb
(3{b+i)
.
_
pb(n-l)
\
д(Ь + 1 )(п -1 )
CT
y*°
p ( b + 5 —2)
(5.4)
= 0.
p(b+ 6-2)(n -l)
я
Предположим, что существует ненулевое кодовое слово веса w < 6 — 1.
Пусть
, iw номера позиций его ненулевых элементов. Их значения
могут быть найдены как решение системы
/
(3^
p(P+l)ii
/3bi2
/3(Ь+1)І2
/3b%w \
p(b+l)iw
yfgib+S-2)ч р{Ъ+5-2)і2
p(b+5-2)iwJ
(°гЛ
Ci2
= 0.
(5.5)
\C iJ
Рассмотрим подматрицу H' этой системы, составленную из первых ее w
строк. Ее определитель равен
(
d e t(# ') = Pilb+~ +i”bdet
1
(3^
\(3h(w-l)
1
1
Plw
\
jyiw{w-1) у
83
Последний определитель известен как определитель Вандермонда. Он
отличен от нуля, если все /3lj различны. Это свойство обеспечивается за
счет того, что порядок /3 равен п и 0 < %\ < І2 < ■. . < iw < п. Следова­
тельно, матрица H' обратима и единственным решением системы (5.5)
является сц = ... = Ciw = 0, т.е. код не содержит слов веса меньше 5. □
Полученную границу можно использовать для построения кодов с
заданным минимальным расстоянием.
О пределение 5.2. Кодом Б Ч Х над полем ¥ q длины п с конструктив­
ным расстоянием д называется наибольший д-ичный циклический код,
корни порождающего многочлена которого включают (Зь, . . . , /3b+s~2, где
/3 G Fqm — элемент порядка n, n\(qm —1).
Коды, полученные при 5 = 1, называются кодами БЧ Х в уз­
ком смысле. Коды, полученные при т = 1, называются кодами РидаСоломона. Величины /Зь+\ 0 < і < 5 — 2, называются нулями кода.
Таким образом, построение кода БЧХ сводится к нахождению по­
рождающего многочлена g{x) G F J a ;], имеющего корни (Зъ+г G F qm. С
учетом результатов разд. 5.1.3, можно записать
д(х) = LCM(fpb(x),fpb+i ( x ) ,...,fp b +6-2(x)),
(5.6)
где / 7(ж) — минимальный многочлен элемента а над ¥ q, и ЬСМ(-) —
наименьшее общее кратное многочленов. Фактически оно равно произ­
ведению всех различных указанных многочленов.
Разложим все элементы проверочной матрицы Н над F
(см.
(5.4)) в каком-нибудь его базисе. Это приведет к ((6 — 1)т) х п мат­
рице H ’, содержащей элементы ¥ q. Таким образом, размерность кода
БЧХ может быть оценена как к > п — т(6 — 1). В случае двоичных
кодов для любого с(х) G F 2 [ж] из равенства c(j3^b+i^) = 0 всегда выте­
кает с(@2(ь+г^) = 0. Поэтому при 0 < 5 < 1 не менее половины строк
матрицы H f можно исключить как линейно зависимые. Это приводит к
уточненной оценке для размерности кода к > п —т |_^-J . Известна точ­
ная формула для размерности кодов БЧХ в узком смысле [8], которая,
однако, достаточно сложна для практического использования. Практи­
чески более полезными оказываются вышеприведенные простые оценки,
а также таблицы кодов БЧХ [9], содержащие не только значения (п, к , d),
но и готовые порождающие многочлены. Впрочем, современные систе­
мы компьютерной алгебры позволяют достаточно легко построить такие
многочлены, руководствуясь лишь правилом (5.6).
84
В некоторых случаях истинное минимальное расстояние кодов
БЧХ может несколько превышать конструктивное. Однако рассматри­
ваемые ниже алгоритмы декодирования не способны непосредственно
использовать этот факт для увеличения числа исправляемых ошибок,
вследствие чего на практике такую возможность обычно игнорируют. С
другой стороны, известно, что не существует ансамблей двоичных при­
митивных кодов БЧХ, для которых одновременно выполнялись бы усло­
вия Ііігщ^оо d /n > 0 и Ііігщ-^оо к / п > 0. Поэтому коды БЧХ являются
асимптотически плохими [8]. Вместе с тем, на небольших длинах (до
нескольких сотен) они относятся к числу наилучших известных.
Пример 5.3. Рассмотрим построение (15, 7, 5) примитивного кода БЧХ в узком смыс­
ле. Пусть а — примитивный элемент поля F24, являющийся корнем примитивного
многочлена ж4 + ж + 1. Выберем [3 = а. Корнями порождающего многочлена должны
быть величины /3, [З2, /З3, /З4. Тогда f p (x) = / уД ) = f ^ ( x ) = f p { x ) = x 4 + x + 1,
= ГТщіН —/33'2J) = x 4 + x 3 + x 2 + x + 1. Таким образом, g{x) = x 8 + x 7 + x &+ x 4 + 1.
Так как порождающий многочлен кода соответствует также одному из кодовых слов,
видно, что минимальное расстояние этого кода в точности равно 5.
fa
5.2.2.
Декодирование кодов Б Ч Х
Рассмотрим задачу декодирования кодов БЧХ в метрике Хэм­
минга. Пусть у(х) = а(х)д(х)+е(х) — многочлен, соответствующий
с(х)
принятому зашумленному кодовому слову. Построим вектор синдрома
(So,. . . , S^_2 ), где
Si = у(РШ ) = е(Рш ),
(5.7)
и 5 — конструктивное расстояние кода. Предположим, что ошибки про­
изошли в позициях
т.е. e^ Ф 0. Это означает, что S% =
ЕГ=іЩ(і,+і)Ч Пусть Х х = Д — локатор соответствующей ошибки,
и Y\ = ejt — ее значение. Тогда получим
W
^=
(5-8)
1= 1
Решение этой нелинейной системы 5 — 1 уравнений с 2w неизвестными
Yi,X\ позволяет найти как местоположение искаженных символов, так
и их значения. Однако непосредственно решить ее достаточно сложно.
Введем многочлен локаторов ошибок
W
W
Л(ж) = ]^[(1 - Хіх) = 1 + ^ 2 Л№1•
і=і
1=1
(5-9)
85
Корнями его являются величины, обратные к локаторам ошибок, т.е.
имеет место A(X^_1) = 1 + X]J=i
J = 0,1 < I < w. Домножая эти
тождества на У/Х^+г+ад, 0 < %< 6 —2, получим
W
О = YtX ^ +i+w + Yi Y ^ Aj X ^ +i+w~j .
з=1
Суммирование их по I приводит с учетом (5.8) к системе уравнений
W
Si+w = У ^ ^.jSi+w—j 1
з=1
2
w.
(5.10)
Таким образом, вместо нелинейной системы уравнений (5.8) можно ре­
шить систему линейных неоднородных алгебраических уравнений (5.10)
относительно коэффициентов многочлена Л(ж), найти его корни Х ф 1
(нелинейная операция!) и решить систему (5.8), которая является ли­
нейной относительно 1). Некоторые затруднения вызывает лишь то, что
неизвестна размерность w системы (5.10).
Т еорем а 5.5. Матрица М ^ =
So
Я
S2
Si
s2
S3
W -l su
ма, если р = w, и вырождена, если р > w.
S2
S3
54
• • • S„M \
S„
• ..
. ■■ S„+1
S/J.+1
• • S2fi-2/
обрати
Доказательство. Каждый элемент этой матрицы с учетом (5.8) мо­
жет быть представлен как
= Si+j = Yli=i YiX^+i+^ =
T'?=1X ' Y lx ! x j = (A B A T)ij, где
( 1
1 .. .
1
Хх
Х2
...
Х„
=
0,w
< I < р, А
=
, В = d i ag(l iX^, . . . , Y^X^). Матрица А яв-1
ляется матрицей Вандермонда, которая обратима, если все Хі различны.
Матрица В обратима, если все Хі ф 0. Произведение нескольких квад­
ратных матриц М М = А В А Т вырождено тогда и только тогда, когда
вырожден хотя бы один из его сомножителей.
□
Эта теорема позволяет сформулировать алгоритм ПитерсонаГоренстайна-Цирлера декодирования кодов БЧХ:
86
1.
2.
3.
4.
5.
6.
Вычислить компоненты вектора синдрома Si в соответствии с (5.7).
Если So = ... = S §_2 = 0; завершить работу.
Положить w
[ ( 5 - 1)/2J .
Проверить обратимость матрицы М ^ У
Если М(№) вырождена, положить w <— w — 1, перейти к и. 4.
Найти коэффициенты многочлена локаторов ошибок как решение
системы
м М ( Л , Ѵ і " • Лі)т = (—Sw - S w+1 .. . - S b v - i f .
7. Найти корни АД1, 1 < l < w, многочлена A(x).
8. Найти значения ошибок как решение системы (5.8) относительно Уд
9. Если Хі = Дф вычесть У) из yjr
Заметим, что этап нахождения значений ошибок не нужен в случае дво­
ичных кодов.
Ясно, что максимальное число ошибок, которое может быть ис­
правлено с помощью этого метода, не превосходит [(£ —1)/2_|. Если ис­
тинное минимальное расстояние кода превышает 6, принципиально воз­
можно исправление и большего числа ошибок. Для некоторых кодов
известны “надстройки” над вышеописанным алгоритмом, позволяющие
сделать это, но универсальные методы декодирования циклических ко­
дов и, в частности, кодов БЧХ до их истинного минимального рассто­
яния, которые обладали бы при этом приемлемой сложностью, пока не
известны.
Число операций, выполняемых на шаге 4 в случае его реализации
с помощью алгоритма Гаусса, составляет 0(ш 3), что делает его наиболее
трудоемким этапом этого алгоритма. Ниже будут приведены чрезвычай­
но эффективные алгоритмы, позволяющие выполнить шаги 3-6 со слож­
ностью 0 ( w 2). Этап нахождения значений ошибок также может быть
упрощен. Для этого введем синдромный многочлен S(x) = Хц=о ^ іХ% =
Т а =і ¥ іХ і Т^5
і=о(Х іх У- Заметим, что (1 ~ Х іх ) ^ і¥ о (Х іх У = 1 “
(.Х і х )^_1 = l m o d a ^ - 1 . Таким образом, S(x) = Y m L i (і-Х;ж)• Введем
многочлен значений ошибок
w
w Yi X b
ГЦ ) = £ YtXf П ( 1 - Xpx) = Л Ь ) £ Ш - І - .
1=1
v+l
1=1
1
Видно, что выполняется сравнение
Г(ж) = A(x)S(x) mod х 5~г, degT(^) < degA(:r) < |_Д —1)/2J .
(5.11)
87
Оно называется ключевым уравнением декодирования кодов БЧХ. Зная
А(х), с помощью него можно найти Г(ж). Впрочем, в разд. 5.2.5 будет
описан метод, позволяющий одновременно найти из этого сравнения А(х)
и Г(т). Из определения многочлена значений ошибок и условия (5.11)
вытекает, что правильное решение задачи декодирования удовлетворяет
Гj = Y^i=o^iSj-i = 0, га < j < 6 — 2, т.е. (5.10) является следствием
ключевого уравнения.
Непосредственной проверкой легко убедиться, что значения оши­
бок могут быть найдены как (алгоритм Форни)
Ѵ п * , - 1)
Yi
(5.12)
Г Щ Д - Х Д У 1)'
Видно, что сложность алгоритма Форни равна 0 ( w 2).
5.2.3.
Спектральное описание декодера кодов Б Ч Х
Несколько более простое описание (а в некоторых случаях и ве­
дущее к более эффективной реализации) алгоритма декодирования ко­
дов БЧХ можно получить, воспользовавшись спектральными методами
[1]. Напомним, что дискретным преобразованием Фурье (ДПФ) векто­
ра (/ о, . . . , f n - i ) (или многочлена f ( x ) =
/ г ^ ) называется вектор
іф -і), где Fj = f ( f t ) = Y a =o
причем элемент /3 (ядро
ДПФ) должен иметь порядок п. Отметим, что в конечных полях такой
элемент удается найти далеко не для всех п. Известно множество эф­
фективных алгоритмов вычисления ДПФ [1, 11, 12, 22]. Обратное дис­
кретное преобразование Фурье определяется как Д = ^ Y^=o
Важнейшим свойством ДПФ является
Теорема 5.6 (о свертке). Предположим, что существует ДПФ длины
п и е%= figi, 0 < і < п. Тогда
п —1
щ
i
^ ^ Fj—k mod vf^ki 0 Д j < Tl.
п
k=0
Пусть y(x) = a{x)g{x) + e(x) — многочлен, соответствующий при­
нятому зашумленному кодовому слову. Вычисляя его ДПФ порядка п,
получим
¥і = у(/Зг) = АіСі + Е і , 0 < і < п .
Заметим, что из конструкции кодов БЧХ вытекает, что G% = д{Д) =
0,Ъ < i < b + 5 — 2. Таким образом, некоторые компоненты вектора Yi
88
зависят исключительно от вектора ошибки, г-ая компонента обратного
ДПФ многочлена локаторов ошибок (5.9) А* = А(/3~г) равна нулю тогда и
только тогда, когда е%Ф 0. Таким образом, справедливо равенство е\\\ =
0,0 < г < п. В силу теоремы о свертке, это тождество можно переписать
как Е р о У ^ = о,о < і < п. Учитывая, что Ло = l,degA(x) = w,
получим
t
Ei = -
0 < i < n.
(5.13)
з=1
Система уравнений (5.10) вытекает из этих тождеств в силу того, что
Si = Yb+i = Eb+i, 0 < i < 6 — 2. Заметим, что после того, как найдены
коэффициенты Лj, можно подставить компоненты вектора синдрома в
(5.13) и рекуррентно вычислить все £), после чего найти вектор ошибки
как их обратное ДПФ. В некоторых случаях такой подход может ока­
заться несколько проще, чем описанный в разд. 5.2.2 метод, основанный
на поиске корней многочлена локаторов ошибок и нахождении их значе­
ний с помощью алгоритма Форни.
Спектральная интерпретация позволяет просто получить обобще­
ние алгоритма декодирования на случай исправления ошибок и стира­
ний. Напомним, что стиранием называется искажение, местоположе­
ние которого известно, а значение — нет. Введем многочлен локато­
ров стираний Ф(ж) = ]Ді= і (1 — (3lix) =
где к А < i < s
— номера стертых символов в принятой последовательности. Заменим
символы стирания в ней произвольным (например, нулевым) элемен­
том ¥ д. Тогда она может быть представлена как yj = cj + ej + Vj, где
v ( x ) = Хц=і vkxli и vk соответствуют истинным значениям стертых сим­
волов. Заметим, что компоненты <ф = ^Ф(/3~х) обратного ДПФ много­
члена локаторов стираний равны нулю тогда и только тогда, когда j = іі
для некоторого і. Таким образом, у' = у^ф;) = с^ф) + ощ/ц = с' + е',
причем е' отличны от нуля на тех и только на тех позициях, на ко­
торых ej ф 0. Рассуждения, аналогичные тем, которые были проведе­
ны для случая исправления только ошибок, приводят к системе урав­
нений ЕЩЧЩ, = о,о < г < п, где Aj — коэффициенты много­
члена локаторов ошибок. Заметим, что ДПФ последовательности o' в
многочленном виде имеет вид С'(х) = С(х)Ф(х) mod х п — 1, причем
<57^ = 0,6 < г <
—2. Следовательно, С[ = 0, b + s < г < b + 5 —2,
т.е. Щ =
b + s < i < b + 5 — 2. Таким образом, получена система
89
Рис. 5.1. Регистр сдвига с линейной обратной связью
уравнений
w
—Si+w = ^ ^ Л Si+w—j , s — rL
' — 6 — 2 —w ,
j =1
(5-14)
где S' = j =о ФjSi- j и Si — синдром, вычисленный по последовательно­
сти y j . Для однозначной разрешимости этой системы необходимо, чтобы
уравнений в ней 6 — 1 —w — s было не меньше, чем число неизвестных
w, т.е. должно выполняться условие 2w + s + 1 — 6, которое совпада­
ет с ограничением на число ошибок и стираний, исправимых кодом с
минимальным расстоянием 6.
5.2.4.
Алгоритм Берлекэмпа-М есси
В данном разделе будет представлен эффективный алгоритм реше­
ния системы уравнений (5.10). Снижение сложности достигается за счет
того, что ее матрица является сильно структурированной. Идея алгорит­
ма Берлекэмпа-Месси основана на том наблюдении, что если коэффи­
циенты многочлена Л(х) известны, то некоторые компоненты вектора
синдрома могут быть рекуррентно выражены через предшествующие,
т-е. Sj = —EW=i ЛiSj—i,w — j — 6 — 2. Эту зависимость можно реализо­
вать с помощью регистра сдвига с линейной обратной связью (РСЛОС),
представленного на рис. 5.1. Таким образом, задачу нахождения коэф­
фициентов многочлена локаторов ошибок можно сформулировать как
поиск РСЛОС, порождающего заданную последовательность Sj по ее
начальной части So,. . . , Sw—i . Вообще говоря, существует множество та­
ких РСЛОС. Интерес представляет кратчайший из них, соответствую­
щий многочлену Л(х) наименьшей степени. Будем говорить, что фильтр
90
(L, Л<">(x) = 1 + Y , t i Л^ж*) порождает последовательность Eg 1, если
L
S k = ~ Y l k t ) s k-u L < k < n - 1.
(5.15)
г=1
Параметры L и Л ^(ж ) называются длиной фильтра (PCJIOC) и
многочленом связей, соответственно. Заметим, что в общем случае
d eg A ^ a?) < Е
Л ем м а 5.1. Пусть фильтры (Ln- i , А^п~1\ х ) ) и (Ln,A^n\ x ) ) по­
рождают последовательности Ед-2 и Ед-1 соответственно, причем
(Ln- i , А^п~1\ х ) ) не порождает Ед-1 , и величины Ln- \ и Ln являются
наименьшими возможными. Тогда
Ln > max(Ln_ i , n - L „ _ i ) .
(5.16)
Доказательство. Фильтр, порождающий Ед-1 , обязан порождать и
Ед-2 , поэтому Ln > Ln- 1 . Покажем, что если фильтр (Ln- \ , А^п_1)(ж))
порождает Ед _2, но не порождает Ед_1, то Ln > n —Ln- Предположим,
что это не так. Тогда
-^п—
i
Ln—
i
Ln
Sn-l
7^-Е
г=1
=і=1
Е Л‘"_1)fc=l
E ЕЧ-1-*-,
Последний переход возможен в силу того, что для всех і выполняется
Тп < п — L n- 1 —1 < п —1 —і < п — 2, т.е. все величины Еп_іщ могут
быть порождены с помощью (Ln, А^п\ х ) ) в соответствии с (5.15). Меняя
порядок суммирования, получим
Ln
Ln_i
Ijn
Sn-i ф E
Л
Р
E
A ’^Sn-i-k-i = - ^ 2 Д з п-і-к = s„-1
.
fc=l
г=1
fc=l
Из полученного противоречия вытекает, что Ln > п —Ln- \ .
□
Алгоритм Берлекэмпа-Месси итеративно строит последователь­
ность РСЛОС, каждый элемент которой способен порождать все бо­
лее длинную последовательность величин Ед Покажем, что если теку­
щий РСЛОС оказывается неспособен породить очередное значение Еп,
то его можно скорректировать, воспользовавшись другим РСЛОС, ко­
торый пришлось корректировать ранее, когда с помощью него также не
удалось породить один из предшествующих элементов последовательно­
сти. Будем считать, что длина фильтра является наименьшей, если (5.16)
выполняется с равенством.
91
Т еорем а 5.7. Предположим, что РСЛОС (7д,Л®(ж)) порождает
S'q-1 , 1 < г < г — 1, причем величины Li являются наименьшими воз­
можными. Тогда РСЛОС с многочленом связей
если ASj ^ = О
лМ(ж)
Л ^ - 1) ( х ) -
§ ^ х г~тА
^
(я ),
порождает S q 1 и имеет наименьшую
если АгГ~1’>ф О (5Л7)
длину.
Здесь
=
А ^ S r - i - j ~~ невязка2, т — наибольшее число, меньшее г такое, что L m- \ < L m, « Дд = 1 .
Доказательство. Утверждение теоремы фактически задает итератив­
ный алгоритм нахождения требуемых РСЛОС. Будем считать, что при
г = 0 Л(°)(ж) = 1, и покажем, что на каждом шаге правило коррек­
ции (5.17) приводит к РСЛОС наименьшей длины. Очевидно, что при
Аг = 0 в изменении фильтра нет необходимости и, в соответствии с
(5.16), свойство минимальности выполняется. Проверим теперь, что из­
менения, выполняемые в противном случае, приводят к корректному ре­
зультату. Из факта изменения длины РСЛОС на шаге т вытекает, что
L r- 1 = L m = т — L m- 1 и L m- i < L r- \ . Видно, что d e g A ^ (^ ) <
max(degA(r-1)(:r), г — т + degA(m_1)(:c)) < max(Lr_i, г — т + Lm_i) =
max(Lr_i, г —Lr_i). Таким образом, степень многочлена А^г\ х ) позволя­
ет рассматривать его как многочлен связей для РСЛОС с оптимальной
длиной L r = max(Lr_ i ,г —L r-\). Невязка, соответствующая модифици­
рованному РСЛОС, равна
\{Г-1)
дМ
=
г-І-з
* (m—1)
т
3=0
і =о
а
=
А
Lm - 1
r — l — j — ( r — m)
д ( т - і) _ 0
д (т -1 )
т
Таким образом, модифицированный фильтр действительно порожда­
ет SV-1 . Он порождает также и необходимые предшествующие элементы, так как А р - Д Д , л ‘г' Ч - | - , - Е Д , 1Л/' ' A - i - j Д£ i v L ^ 1A(m-i)*
J д Н | _ Д Н ) ; м _ 0, L r—i +
д(т-1) z ^ j= 0
IYj
°k-l-j-(r-m )
д (т -і) ^ k - r + m
2Видно, что ДФ равна разности истинного значения /Д._і и значения, вычислен­
ного с помощью (Lv,
(х))
92
BerlekampMassey(5o, . .., S$- 2 )
1 Л(ж) i— 1, r i— 1, m i—0, L i—0, B(x} i— 1
2 while r < 6 — 1
3 do Д^* i — 'Thj 0 A j S r - l - j
4
if A r ^4 0
5
then T ( x ) <(—Л(ж) —A rx r~ m B ( x )
6
if 2L < r - 1
7
then В (x) G- д р л ц )
Л(а') <—T ( x )
8
9
L g- r — L
10
m g- r
11
else Л(ж) G- T ( x )
12
r i—г + 1
13 return (L , A ( x ))
Рис. 5.2. Алгоритм Берлекэмпа-Месси
1 < L r + l < к < r —1. Последнее равенство вытекает из того, что PC Л ОС
(Lr- 1 , Л(г-1)(ж)) порождает S q- 2, т.е. Д^г ^ = 0, Lr_ 1 + l < f c < r — 1,
и (Lm_i, Л(т_1)(ж)) порождает S™-2 , т.е. Д|.т_1 = 0, Lm_i + 1 < к <
m — 1.
□
На рис. 5.2 представлен псевдокод данного алгоритма. Для упро­
щения обозначений, а также ввиду того, что в действительности необходимо хранить лишь одну пару значении [А?
,Д „
), верхние ин­
дексы в нем не указаны. Его аргументами является синдромный век­
тор (So,. . . , S s - 2), Si Е F qm. Алгоритм возвращает длину найденно­
го РСЛОС, порождающего последовательность компонент синдромно­
го вектора, и соответствующий многочлен связей. Не всякий результат
работы алгоритма Берлекэмпа-Месси задает правильное решение зада­
чи декодирования. Если оказалось, что L ^ degA(ir) или число корней
А(х) в F дш не равно degA(ir), то можно утверждать, что предположение
w < |_(5 —l)/2j было нарушено, и данная конфигурация ошибок с по­
мощью методов, рассматриваемых в этом разделе, исправлена быть не
может.
Видно, что на шаге г алгоритма выполняется О(Ь) операций, свя­
занных с вычислением невязки и коррекцией многочлена связей, причем
93
Таблица 5.1
Пример работы алгоритма Берлекэмпа-М есси
Г
Д
L
1 11 1
2 9 1
3 6 2
4 0 2
5 12 3
6 6 3
А(х)
1 + 2х
1
1 + Зх2
1 + Зх2
1 + х2
1 + 6х + х 2 + 5 х 3
В(х)
6
6
11
11
12 +
12 +
10х2
10х2
L < г / 2. Следовательно, сложность алгоритма может быть оценена как
O (fi).
Пример 5.4. Рассмотрим декодирование (12, 6, 7) кода БЧХ (Рида-Соломона) над F13
с порождающим многочленом д{х) = П і=з (;г —/Т), где /3 = 2 — примитивный элемент
поля Fi 3 . Пусть принята зашумленная последовательность у = (6 1 7 8 7 6 8 0 9 1 1 3 1 ) .
Соответствующий вектор синдрома равен (110 6 0 76). Последовательность промежу­
точных результатов, получаемых при обработке S алгоритмом Берлекэмпа-Месси,
представлена в табл. 5.1. Отметим, что на второй итерации длина регистра сдвига
оказалась больше степени многочлена связей, что является вполне нормальным яв­
лением. Последний найденный А(х) является многочленом локаторов ошибок. Непо­
средственной проверкой можно убедиться, что его корнями являются 1, 7,10. Следо­
вательно, локаторы ошибок равны 2°, 1/7 = 21 mod 13,1/10 = 22 mod 13, т.е. ошибки
имели место в позициях 0,1,2. Из (5.11) ползшим, что многочлен значений ошибок
равен Г(;г) = 4;г2 + х + 11. Согласно (5.12), значения ошибок равны 1, 5 и 4, соот­
ветственно. Многочлен, соответствующий исправленному кодовому слову, имеет вид
с(х) = X й + Зх10 + 11т9 + 9х8 + 8х6 + 6х5 + 7х4 + 8х3 + Зх2 + 9х + 5.
В случае исправления ошибок и стираний можно пропустить
несколько начальных шагов алгоритма Берлекэмпа-Месси, произведя
инициализацию А(ж) = В ( х ) = Ф(ж).
5.2.5.
Алгоритм Сугиямы
Рассмотрим метод декодирования кодов БЧХ, основанный на непо­
средственном поиске решения ключевого уравнения (5.11). Для этого
вначале рассмотрим основы теории аппроксимации Паде.
Классическим методом нахождения наибольшего общего делите­
ля двух многочленов а(х) и Ъ(х) с коэффициентами из некоторого поля
является алгоритм Евклида. Он представляет собой процедуру нахож­
дения последовательности остатков от деления
П -і(х) = qi(x)ri(x) -hri+1(x),degri+1(x) < degг{(х),
94
где го (ж) = а (х ),г-і(х ) = b(x). Наибольший общий делитель находится
как последний ненулевой остаток гДж). Действия, выполняемые на каж­
дом шаге алгоритма Евклида, можно записать в матричном виде как
AW
(5.18)
Алгоритм Евклида, дополненный операциями, необходимыми для вы­
числения матриц В ^ \ называется расширенным алгоритмом Евклида.
Из (5.18) вытекает, что на каждом его шаге выполняется тождество
п{х) = щ(х)а(х) + ѵі {х )Ь{:г), где щ{х) =
= В ^ 1\ ѵі (х ) = В $ =
в [2 1\ или Гі (х ) = щ(х)а(х) mod b(x). Это сравнение весьма похоже на
(5.11).
Л ем м а 5.2. Пусть R(x),U(x) — многочлены такие, что R(x) =
U(x)a(x) + Ѵ(х)Ь(х), причем degR(x) + degU(x) < degb(x). Тогда су­
ществует j такое, что
degVj(x) < degR(x) < d egrj-i(x),
(5.19)
и R(x) = w(x)rj(x),U(x) = w (x)uj(x),V (x) = w(x)vj(x), где
rj(x),Uj(x),Vj(x) — промежуточные результаты, найденные в ходе об­
работки многочленов а(х) и Ь(х) с помощью расширенного алгоритма
Евклида.
Доказательство. Отметим, что на каждом шаге расширенного алгорит­
ма Евклида выполняются условия degri-i(x) = deg qi(x) + deg г Дж),
щ+і(х) = —qi(x)ui(x) + Щ-і(ж), причем щ (х) = l,U -\(x ) = 0. Таким
образом, degщ(х) =
= d eg r-Дж) - degr*_i(:r), т.е. по­
следовательности degщ(х) и degгДж),г > 0, являются, соответственно,
строго возрастающей и строго убывающей. Из этого вытекает достижи­
мость условия (5.19).
Покажем, что щ{х)Ѵ{х) = U(x)vj(x). Предположим, что это не
так. Тогда система уравнений
fuj(x) Vj(x)\ fa(x)\ = frj(x)\
\U(x) V(x)J yb(x)J yR(x)J
95
может быть однозначно разрешена. В соответствии с правилом Крамера,
А , ( иМ )
^ .
\U(x)
R(x)J
^ e t ( u j ( x ) Vj ( x ) \
\U(x)
Uj(x)R(x) — r j( x ) U ( x )
Uj(x)V(x) - Vj(x)U(x)'
V(x)J
Степень
правой
части
не
превосходит
max(degWj(:r) +
degR(x), degrj(x) + deg U(x))
<
m ax(degb(x) — degrj -i (x) +
deg R(x), degR(x) + deg U(x)) < deg b(x). Из полученного противо­
речия вытекает, что Uj(x)V(x) = U(x)vj(x).
Заметим, что для всех i det
= —1, откуда det
= (—1)г+1 =
^11^22 ~ ^12^21 = иі+і(х )ѵііх ) — ѵі+і(х)щ(х). Это означает, что
НОД(гіфт),Ѵі (х )) = 1. Следовательно, Uj(x)\U(x),Vj(x)\V(x), откуда и
вытекает утверждение леммы.
□
Т еорем а 5.8. Пусть дано сравнение R(x) = U(x)a(x) mod b(x). Д л я
любого к : 0 < к < degb(x) расширенный алгоритм Евклида находит
его решение R(x), U(x) такое, что degR(x) < k , de g U( x ) < degb(x) —
k, причем степени многочленов R(x), U( x) являются наименьшими
возможными.
Доказательство. Применим расширенный алгоритм Евклида к много­
членам а(х) и Ь(х) и положим R{x) = rj(x), U(x) = Uj(x), где j — наи­
меньшее натуральное число такое, что degrj(x) < к (т.е. degrj -i (x) >
к). Тогда degUj(x) = degb{x) —degrj -i (x) < n —к. Ясно, что данная
пара многочленов действительно является решением рассматриваемого
сравнения. В силу леммы 5.2, любое другое его решение удовлетворяет
R'(x) = w( x ) R( x ) , Uf(x) = w(x)U(x), т.е. имеет не меньшую степень. □
В случае Ь(х) = х п данная теорема позволяет восстановить ра­
циональную функцию
по первым п членам (представленным в ви­
де многочлена а(х)) ее разложения в ряд Тейлора в окрестности нуля
(аппроксимация Паде). В частности, полагая а(х) = S(x),b(x) = ж^-1 ,
получим, что решение ключевого уравнения декодирования кодов БЧХ
также может быть найдено с помощью расширенного алгоритма Ев­
клида. Данный подход носит название алгоритма Сугиямы. Он про­
иллюстрирован на рис. 5.3. В описании алгоритма используется функ­
ция Divide(b(x), а(х)), которая возвращает пару многочленов q(x),r(x
таких, что Ь(х) = q(x)a(x) + r(x), degr(x) < dega(x). Алгоритм возвра­
щает пару (Г(х), Л(х)), являющуюся решением уравнения (5.11).
96
S u g i y a m a ( S ( x ), 6)
1 u(x) a- 1 ,uf(x) -a- 0 ,b(x) а- x5~l ,a{x)
2 while dega(rr) >
3 do (q(x), r(x)) A- DlVlDE(b(x), a(x))
4
v{x) i------ q{x)u{x) + u\ x)
5
u'(x) a- u(x), u(x) a- v(x)
6
b(x) a- a(x),a(x) a - r(x)
7 return (a(x),u(x))
и-
S(x)
Рис. 5.3. Алгоритм Сугиямы
Таблица 5.2
Пример работы алгоритма Сугиямы
Ь(х)
а(х)
11 + 6х2 + 7х4 + 6х5
х 4 + 12х3 + 12х2 + 9х + 9
х4 + 12х3 + 12х2 + 9х + 9
6х3 + 4х2 + 11х + 11
6х3 + 4х2 + 11х + 11
12х2 + Зх + 7
и(х)
и'(х)
2х + 2
1
2х + 2
X2 + X + 1
2х3 + Зх2 + 5х + 3 х2 + х + 1
Пример 5.5. Продолжим рассмотрение примера 5.4. Последовательность промежу­
точных результатов, вычисляемых алгоритмом Сугиямы при обработке синдромного
многочлена S ( x ) = 11 + 6.x2 + 7л4 + 6.x5, представлена в табл. 5.2. Заметим, что мно­
гочлены Л (,х) = 2.x3 + 3.x2 I 5.x Т 3 и Г(л) = 12л2 + Зл + 7 отличаются от полученных
ранее с помощью алгоритма Берлекэмпа-Месси домножением на константу 3, что
должно быть учтено на этапе поиска значений ошибок.
5.2.6.
Вопросы реализации
При условии использования представленных выше эффективных
алгоритмов решения уравнений (5.10) и (5.11), наиболее трудоемкими
этапами декодирования оказываются вычисление компонент синдрома
Si и нахождение корней многочлена локаторов ошибок. В соответствии с
теоремой Абеля [2], корни многочленов степени выше четвертой в общем
случае не могут быть выражены через суммы, произведения, частные и
корни их коэффициентов. Таким образом, остаются только алгоритмиче­
ские способы поиска Аф Известны алгоритмы факторизации многочле­
нов над конечным полем, которые позволяют построить разложение (5.9)
с полиномиальной сложностью [78]. Однако для практически значимых
параметров кодов более эффективным оказывается подход, состоящий
97
в подстановке всех возможных f t в Л(ж) и проверке на равенство нулю
полученного значения (процедура Ченя) A (ft) =
Эффектив­
ные алгоритмы решения этой задачи были описаны в [30, 31]. Возможно
также использование алгоритмов быстрого преобразования Фурье.
Задача вычисления Si может быть сформулирована как вычис­
ление неполного дискретного преобразования Фурье принятого векто­
ра. Одним из простейших способов решения этой задачи является ис­
пользование алгоритма Герцеля. Он основан на том, что если г(х) =
у(х) mod ffji(x), то Si = у (ft) = г (ft), где f p ( x ) — минимальный много­
член f t . Ускорение достигается за счет того, что один и тот же минималь­
ный многочлен может соответствовать нескольким различным f t G
а также того, что коэффициенты многочленов / р ( х ) принадлежат под­
полю Fg с F^m, что упрощает деление на них. Заметим, что все исполь­
зуемые при данном подходе многочлены являются делителями порож­
дающего многочлена кода (см. (5.6)). Методы дальнейшего снижения
сложности этого этапа описаны в [24].
Упражнения
1. Покажите, что многочлен (ж3 + ж+ I)2 порождает циклический (14,8, 3) код над
F 2 . Какой двоичный циклический код порождает многочлен (ж3 + ж + І)2*?
2. Пусть дан (15,7,5) циклический код над F2 с порождающим многочленом
д(х) = 1 + ж4 + х 6 + х 7 + ж8. Закодируйте в нем систематическим образом инфор­
мационный вектор (1001011).
3. Продекодируйте в вышеуказанном коде вектор у = (100110101111011).
4. Постройте примитивный двоичный код БЧХ длины 31с минимальным рассто­
янием 7. Какова его размерность?
5. Покажите, что если конструктивное расстояние 8 = 2t + 1 двоичного кода БЧХ в
узком смысле делит его длину п, то оно равно минимальному расстоянию этого
кода.
6. Продекодируйте с помощью алгоритмов Берлекэмпа-Месси и Сугиямы в коде,
построенном в предыдущем упражнении, любой вектор веса 28.
7. Докажите, что при декодировании двоичных кодов БЧХ в узком смысле на чет­
ных итерациях алгоритма Берлекэмпа-Месси всегда получается нулевая невязка
Дг.
8. Докажите, что обратное ДПФ от вектора, полученного как ДПФ /
(/о ,. • •, /п -і), равно исходному вектору / .
9. Докажите теорему о свертке.
98
=
6. Коды Рида-Соломона и производные от них
6.1.
6.1.1.
Коды Рида-Соломона
Конструкции кодов
Как было указано выше, коды БЧХ над ¥ q длины n\(q —1) назы­
ваются кодами Рида-Соломона. Из границы БЧХ вытекает, что мини­
мальное расстояние (п, к)-кода Рида-Соломона не может быть меньше
п —к + 1, но граница Синглтона исключает существование кодов с боль­
шим минимальным расстоянием. Таким образом, оно в точности равно
п — к + 1.
Однако существует и иной (в общем случае неэквивалентный) спо­
соб определить эти коды.
Теорема 6.1. Существует взаимно однозначное соответствие между
кодовыми словами (n, к ,п — к + 1) кода Рида-Соломона в узком смыс­
ле с порождающим многочленом д(х) =
~ f t ) и множеством
векторов вида F = (/(/3 ° ),..., /(Д п_1)), где f ( x ) = Yli=o
G
— некоторый многочлен и /3 — элемент порядка п.
Доказательство. Проверим, что вектор указанного вида действитель­
но является кодовым словом. Для этого построим соответствую­
щий ему многочлен с(х) = ELo1f i f t V - Видно, что с(/Р) =
ЕЙ Е й
М ‘(,+Л = ЕЙ1/ - І mod „ Е й 1
= 1 -у Последний
переход справедлив в силу того, что (3 является элементом порядка п
и 0 = [Згп — 1 = (/Зг — 1) (Е щ о 1 f t 1) • Если г ф 0 mod п, то первый
сомножитель не может быть равен нулю, т.е. нулю должна быть равна
вторая сумма. Так как deg f ( x ) < к, с(Д?) = 0 , 1 < j < n —к, т.е. все
корни порождающего многочлена д(х) = П] =і ( х ~ f t ) являются кор­
нями с(х). Таким образом, каждый вектор F является кодовым словом
кода Рида-Соломона. Число различных векторов F указанного в условии
теоремы вида совпадает с числом кодовых слов кода Рида-Соломона. □
Доказанная теорема позволяет сформулировать еще одно опреде­
ление кодов Рида-Соломона, которое оказывается полезным при описа­
нии многих рассматриваемых далее алгоритмов декодирования.
99
Определение 6.1. (п, к, п — к + 1) кодом Рида-Соломона над F^ назы­
вается множество
к- 1
( / ( а і ) , .. . J ( a n))\f(x) = 5 ~2fiXl ,fi,ai G F^a* различны
г=0
Необходимо отметить, что определенные таким образом коды не
обязательно являются кодами БЧХ и даже циклическими. С другой сто­
роны, коды Рида-Соломона в широком смысле (см. разд. 5.2.1) не со­
ответствуют определению 6.1. Небольшое изменение конструкции кодов
позволяет унифицировать терминологию.
Определение 6.2. Обобщенным кодом Рида-Соломона над F^ называ­
ется множество
{
k- 1
( f ( a i ) v i , . . . , f ( a n)vn)\f(x) = ^ 2 f i x \ f
i= о
( 6 . 1)
где a = ( a i , . . . , an), a% G ¥ q — р а з л и ч н ы е
торами кода.
величин ы , н азы ваем ы е
лока­
Очевидно, что домножение всех символов кодовых слов кода РидаСоломона на фиксированные ненулевые элементы ѵі не влияет на их вес.
Таким образом, минимальное расстояние обобщенного (п, к) кода РидаСоломона также равно п —к + 1.
Выбор щ редко оказывает значимое влияние на свойства кода. Так
как математический аппарат циклических кодов предоставляет такое
значимое преимущество, как простую процедуру систематического ко­
дирования (см. (5.1)), на практике удобно рассматривать коды РидаСоломона как коды БЧХ, а при необходимости использования алгорит­
мов, основанных на определениях 6.1 или 6.2 — подбирать подходящие
параметры в последнем (см. упражнение 3).
Теорема 6.2. Кодом, дуальным к обобщенному коду Рида-Соломона
GRS^ia^v), также является обобщенный код Рида-Соломона
G R Sn_k(a,u) с некоторым весовым вектором ѵ'.
Доказательство. Рассмотрим вначале случай к = п —1. Очевидно, что
дуальный код имеет размерность 1 и его порождающая матрица может
быть представлена как Н = ( щ , . . . , ип). Вектор Н может быть найден
как ненулевое решение системы линейных однородных алгебраических
юо
лтч
уравнений 0 = GH , которую можно переписать как
/
0=
1
1
...
а\
а\
<22
'''
•• •
«!
1 \
ап
а2
\ « Г 2 « у 2 ■■■ < ~ 2;
/ ѵ іи Л
V2U2
( 6.2)
\VnUn/
где G — порождающая матрица GRSjt (a,v), соответствующая (6. 1 ).
Предположим, что некоторый щ (например, щ) равен нулю. Тогда мож­
но удалить соответствующий ему столбец матрицы этой системы, по­
сле чего она станет квадратной матрицей Вандермонда. По построе­
нию все щ различны, поэтому решением этой системы является вектор
ѴіЩ = 0,2 < і < п. Так как щ ф 0,1 < і < п, получим, что Н = 0,
что противоречит предположению о том, что он является проверочной
матрицей дуального кода. Таким образом, щ ф 0,1 < г < п.
При к < п — 1 величины щ могут быть найдены из условия
G<HJ = где Gi , Hj — соответствующие строки порождающих матриц
GRSk{a,v) и GR S n-jt (a,u), которое приводит к системе уравнений
п
0=
п
ajviajui =
1=1
а ^ ѵ іщ , 0 < г < к — 1,0 < j < п — к — 1 .
і=і
Эта система совпадает с (6.2 ), для которой существование полностью
ненулевого решения (щ , . . . , ип) было установлено выше.
□
6.2.
Декодирование до половины минимального расстояния
Декодирование кодов Рида-Соломона, являющихся кодами БЧХ,
может быть выполнено с помощью любого из алгоритмов, описанных
в разд. 5.2. В этом разделе будут представлены методы кодов РидаСоломона в смысле определения 6. 1 , которые концептуально существен­
но отличаются от рассмотренных ранее.
6.2.1.
Алгоритм Гао
Рассмотрим проблему декодирования кодов Рида-Соломона в мет­
рике Хэмминга с числом исправляемых ошибок w < |_(п — к)/2\. Пусть
( у і , .. . ,уп) G F ” - принятая зашумленная последовательность. Резуль­
татом декодирования должно стать кодовое слово или соответствующий
ему многочлен f ( x ) такой, что /(а*) = уі в т = п — w неискаженных по­
101
зициях г. Введем многочлен ошибок1 такой, что сг(щ) = 0 тогда и только
тогда, когда /(а*) Ф у%. Таким образом, справедлива система уравнений
f(ai)(7(ai) = y i ( j ( a i ) , l < i < n .
(6.3)
Пусть ф{х) = ПГ=і(ж —аі) и Т(х) : Т(щ) = ур Тогда эта система экви­
валентна сравнению
р(х) = f(x)<j(x) = Т(х)и(х) mod ф(х),
(6.4)
причем degа(х) = w < \_{п — k ) / 2J, degp(:r) < к + w < Цп + к ) /2J. В
соответствии с теоремой 5.8, решение (р(х), сг(х)) этого сравнения может
быть найдено с помощью расширенного алгоритма Евклида, после чего
многочлен, задающий кодовое слово, может быть найден как f ( x ) =
Данный подход носит название алгоритма Гао. Очевидно, что концеп­
туально он намного проще рассмотренных в разд. 5.2 подходов, основан­
ных на вычислении синдрома, поиске многочлена локаторов ошибок, его
корней и значений ошибок. Однако необходимость работы с многочле­
нами Т(х), f (x), имеющими сравнительно большую степень, во многих
случаях делает его менее эффективным.
6.2.2.
Декодирование с помощью многомерной интерполяции
Рассмотрим интерпретацию алгоритма Гао, которая позволит в
дальнейшем обобщить его на случай списочного декодирования. Система
уравнений (6.3) может быть переписана как
Q(m,yi) = 0,1 < і < п,
(6.5)
где Q(x, у) = р{х) - а(х)у = X^=o+W; QOj<xj + J2j=o Qijx j V ~ неизвестный
многочлен от двух переменных. Ее можно интерпретировать как систему
линейных однородных алгебраических уравнений. Если удалось найти ее
ненулевое решение, то задающий кодовое слово многочлен f ( x ) может
быть найден из условия Q( x , f ( x ) ) = 0. Задача нахождения Q( x , y ) яв­
ляется частным случаем задачи многомерной интерполяции. Решив ее,
можно найти многочлен f ( x) от одной переменной, проходящий через
некоторые из интерполяционных точек (х і ,Уі ). Таким образом, получен
алгоритм решения задачи интерполяции по зашумленным данным.
Принцип декодирования по минимальному расстоянию требует ми­
нимизировать w, т.е. найти многочлен Q(x,y) = qo{%) + qi(x)y, для ко­
торого степени qo(x) и qi(x) были бы минимально возможными. Для
1Многочлен локаторов ошибок Л(ж), задаваемый (5.9), связан с ним соотношением
Л(ж) = x wa(x~1), т.е. его коэффициенты записаны в обратном порядке.
102
того, чтобы формализовать это требование, придется ввести некоторые
понятия из коммутативной алгебры [4].
(а, Ь)-взвешенной степенью одночлена схгур, с Ф 0 , называет­
ся величина wdeg(a ^ {сх1%р) = ai + bj. Взвешенная степень может
быть использована для упорядочения членов многочлена от несколь­
ких переменных. Определим (а, Ь)-взвешенное мономиальное упорядо­
чение как схгуі -<(а>6) dxuyv о (wdeg(0>6)(сж У ) < wdeg^ b){dxuyv)) V
(wdeg(a>6)(ca;V) = wdeg(a>6)(d a;V )) Л (cxlyi -<iex dxuyv). Здесь для
разрешения неопределенности в случае равенства взвешенных степеней
используется лексикографическое мономиальное упорядочение, которое
определяется как 2* схгуі -<іех dxuyv -Ф4> (j < v) V (j = v) Л (i < и ).
Старшим членом многочлена Q( x , y ) называется ненулевой его член,
наибольший в смысле некоторого фиксированного мономиального упо­
рядочения, и обозначаемый как LT Q(x,y). (а, 6)-взвешенной степенью
многочлена Q(x,y) называется (а, 6)-взвешенная степень его старшего
члена относительно -<(а,Ь)Пример 6.1. Старшим членом многочлена Q(x, у) ху I у I х4 I х I I относитель­
но лексикографического упорядочения является ху. При выборе (1, 2)-взвешенного
лексикографического упорядочения старшим членом становится ж4.
Сформулированный выше метод декодирования предполагает на­
хождение многочлена Q( x , y ) = qo{x) + q\{x)y, такого что degqo{x) —
degqi(x) < k — 1 , и степени qo(x),qi(x) — наименьшие возможные.
Эти условия можно сформулировать как поиск Q(x, у) с наименьшей
(1, к —1)-взвешенной степенью, такого что LT Q(x, у) = axwy , а Ф 0.
Определение 6.3. Модулем М над кольцом R называется абелева
группа (М ,+), на которой задана операция • : R х М —)►М такая,
что для всех r, s G R, х, у G М выполняются условия
1 . г • (х + у) = г • х + г • у]
2. (г + s) • х = г • х + s • х;
3. (r s ) • х = г • (s • х);
4. 1r • х = х.
Понятие модуля является обобщением концепции линейного век­
торного пространства. Отличие состоит в том, что компонентами векто­
ров линейного пространства должны быть элементы некоторого поля, в
то время как в случае модуля достаточно лишь, чтобы они принадле­
2В рассматриваемых ниже алгоритмах удобнее вначале сравнивать степени одно­
членов при у , а затем — при х.
103
жали некоторому кольцу. В данном случае в качестве кольца R будет
рассматриваться множество
многочленов от одной переменной, а в
качестве модуля — множество М = Wq[x,y\ многочленов от двух пере­
менных вида Yl*j=oQj(x )y^ (пока будем полагать р = 1 ). Заметим, что
множество многочленов, удовлетворяющих (6.5), образует модуль.
Аналогично случаю линейного пространства, можно ввести поня­
тие базиса модуля к а к набора элементов т і , ... ,ті G М, с помощью
которого можно породить любой его элемент как т =
G
R. Рассматриваемый модуль М ці многочленов, удовлетворяющих (6.5),
имеет базис [ф(х),у — Т(х)], где ф(х) = П щ і(ж — аі) и Т ( х ) '■
Т{сц) = уі. Действительно, произвольный многочлен Q ( x , y ) = qo(x) +
qi(x)y G Мці может быть представлен как Q(x,y) = qi(x)(y — Т(х)) +
ф(х) ^ х)+Яі(х)т(х) _ Числитель последней дроби делится нацело на ее зна­
менатель, так как, по предположению, Q{a%^yi) = qo(c4) + qi(cH)yi = 0 и
Т(щ) = уі, т.е. все щ являются корнями числителя. С другой стороны,
они же являются простыми корнями знаменателя.
Особый интерес представляет базис Грёбнера В , который опреде­
ляется как базис модуля М такой, что
Ѵга
<Е M 3Q G
В : L TQ |LTm .
Данное условие означает, что базис Грёбнера содержит в некотором
смысле “маленькие” элементы модуля. В частности, можно показать,
что наименьший в смысле заданного упорядочения интерполяционный
полином, удовлетворяющий (6.5), всегда содержится в базисе Грёбнера
соответствующего модуля [61]. Таким образом, необходимо найти базис
Грёбнера модуля Мці относительно (1 ,к — 1)-взвешенного лексикогра­
фического упорядочения.
Газличным мономиальным упорядочениям соответствуют различ­
ные базисы Грёбнера. Более того, даже для фиксированного мономи­
ального упорядочения можно построить множество различных бази­
сов Грёбнера. Для того, чтобы некоторый базис {Qo( x, y) , ... , Qp(x,y)}
модуля был его базисом Грёбнера, достаточно, чтобы все величины
ydegQi(x,y) были различны, где ydegQ(x, y) = j
L T Q(x,y) =
ax’lyJ , а 7^ 0. Действительно, если это не так, и, например, ydeg Qi(x, у) =
ydegQ2(x,y) (будем считать для определенности, что L TQ\ ( x , y ) Щ
L T Q 2(x,y)), то многочлен
- Q2(x,y) имеет стар­
ший член, меньший, чем L T Q\ (x, y) и UTQ2(x,y). Эти рассужде­
ния приводят к следующему очевидному способу нахождения базиса
104
R ed u c e ([So(>,?/),. . . , Si - i {x, y) \ , P{x, y) )
1 Si(x, y)
P(x, y)
2 w hile 3j : (0 < j < i) Л (ydegSj(ff, y) = ydegSi(x,y))
3 do if LT Si(x, y) \ LTSj ( x, y)
4
th e n W( x , y ) ^ S j ( x , y ) - ^ Щ ^ Б і { х , у )
5
Sj (x, y)
Si(x, y)
6
Si(x,y) <^ W( x , y )
7
else Si(x, y)
Si(x, у) Sj(x, y)
8 ifS 'i(a;,y) = 0
9
th e n i i—i —1
10
re tu rn [Sq(x , y
y)]
Рис. 6.1. Многомерный алгоритм Евклида
Грёбнера модуля: можно взять произвольный его базис и применять
к нему обратимые преобразования, приводящие к сокращению стар­
ших членов, до тех пор, пока это возможно. Данный алгоритм удоб­
но сформулировать следующим образом: пусть уже построен базис
Грёбнера [So(x,y),. . . , Si -i (x,y)\ некоторого подмодуля M' такой, что
LT Sj (х,у) = j. Тогда для того, чтобы построить базис Грёбнера мо­
дуля М = {Q(x,y) + а(х)Р(х, y)\Q(x, у) G М' , а ( х ) 6 Щж]}, достаточно
произвести сокращения между старшими членами S j ( x , y ) и членами
Р(х,у), пока это возможно. На рис. 6.1 представлен алгоритм, реализу­
ющий этот подход. Можно заметить, что выполняемые этим алгоритмом
действия очень похожи на те, которые осуществляются расширенным ал­
горитмом Евклида. Поэтому будем называть его многомерным алгорит­
мом Евклида. Искомый базис Грёбнера АДд может быть найден как
[qoo(x) + qioy,qoi(x) + qny] = Reduce([(f)(x%y - T(x)). Эту операцию
можно представить как
4--------- ѵ-------Q{x)
где Ui — матрицы, описывающие преобразования, выполняемые много­
мерным алгоритмом Евклида. Видно, что det Щ = ± 1 , а потому
det Q(x) = qoo{x)qu(x) - qoi(x)qw(x) = det Q'(x) = ±ф(х).
(6.6)
105
В силу того, что результатом применения Reduce является базис Грёбнера относительно (1 ,к — 1 )-взвешенного лексикографического упорядо­
чения, можно считать, что degqn(x) + k —1 > <701(2;), deg <710(2;) + /с —1 <
degqoo(x). Отсюда degqn(x) —deg <710(x) > degqoi(x) - degqoo(x). Тогда
в силу (6.6) получим, что deg <700(ж) + deg <711(2;) = п. С другой сторо­
ны, искомый многочлен qio(x) + yqn(x) является наименьшим тогда и
только тогда, когда degqn(x) + к — 1 < deg <700(2;) = п — deg<711(2;),
т.е. deg <711(2;) <
Таким образом, если число произошедших ошибок
w не превосходит (п — к ) / 2 , то описанный алгоритм найдет многочлен
qio{x) + qu{x)y = р{х) - (т{х)у.
Пример 6.2. Рассмотрим декодирование (4,2,3) кода Рида-Соломона над F 5. Пусть
сіі = і, 1 < * < 4 , и принятая последовательность равна у = (1,2,3,0). Ей со­
ответствует интерполяционный многочлен Т (х ) = х3 + 4х2 + 2х + 4 mod 5. Зада­
ча декодирования сводится к поиску многочлена f (x) степени 1, значения кото­
рого в точках щ отличались бы от у не более чем в одной позиции. Для это­
го необходимо найти многочлен Q (x,y) наименьшей (1,1)-взвешенной степени та­
кой, что Q(a,i,yi) = 0. Такой многочлен присутствует в базисе Грёбнера модуля
М\р = {Q(x,y)\Q(a,i,yi) = 0}. Воспользуемся для его построения многомерным алго­
ритмом Евклида. Начальным приближением к искомому базису является [0(х)], где
ф(х) = (х —1)(х —2)(х —3)(х —4) = х4 + 4. При вызове Reduce([(j>(x)], у —Т(х)) будут
выполнены следующие действия:
1. S0(x,y) = х 4 + 4, Si(x,y) = у + 4х3 + х 2 + Зх + 1.
2. Так как LTS0(x,y) = х4, 1/Г S\(x,y) = 4х3, старший член S0(x,y) можно сокра­
тить путем сложения S0(x,y) с x.S'i(:/;, у), что приводит к S0(x,y)
ху I х3 I
Зх2 + х + 4.
3. Так как LTSo(x,y) = x3,L T S\(x,y) = 4х3, старший член So(x,y) можно сокра­
тить путем сложения Sq(x , у) с .S'i(x, у), что приводит к >Зо(х, у) - (х+1)у + 4х2 I
4х. Теперь у deg >3,0(х, у) = 1, поэтому вычисления прекращаются.
Решение задачи декодирования получается из S0(x,y ) как /(х ) = —ф + ф = х, т.е.
исправленное кодовое слово имеет вид (1, 2, 3,4).
6.3. Списочное декодирование
6.3.1.
Алгоритм Гурусвами-Судана
Попытаемся обобщить идею метода декодирования с помощью ин­
терполяции, описанного в разд. 6.2 .2 , на случай исправления большего
числа ошибок. Если радиус декодирования t превышает [(d —1)/2J , мо­
жет существовать несколько решений задачи декодирования. Если пы­
таться найти все такие решения в виде
х) : Q(x,
то оче­
видно, что степень многочлена Q( x , y ) относительно у должна быть не
меньше, чем число I кодовых слов, находящихся на расстоянии t от
произвольного вектора. В этом случае должно выполняться равенство
106
Рис. 6.2. Пример работы алгоритма Гурусвами-Судана
Я(х,у) = {у - f ^ \ x ) ) { y - / (2)(ж)) ■■■{у- f {l4 x ) )Qf(x,y). Однако с ро­
стом t и I растет вероятность совпадения некоторых символов несколь­
ких кодовых слов, т.е. того, что уі —
= 0 сразу для нескольких
j. Это означает, что кратность корня (х і ,Уі ) многочлена Q(x,y) должна
быть достаточно большой, что необходимо предусмотреть на этапе его
построения.
Этот подход реализует алгоритм Гурусвами-Судана списочно­
го декодирования кодов Рида-Соломона.
На рис. 6.2 представ­
лен пример его использования для декодирования вектора у =
(—25,3, —3, —1, 3,11, —7) в (7,3,5)-коде Рида-Соломона над К. с векто­
ром локаторов а = (—3, —2, —1,0,1, 2,3). Был построен некоторый мно­
гочлен Q(xpy) такой, что точки (ч/. //,) являлись его корнями кратности
4. Этот многочлен задает некоторую кривую, заданную в неявном виде,
которая показана тонкими линиями. Декодирование сводится к поиску
парабол (так как код имеет размерность 3), которыми можно было бы
покрыть различные ветви этой кривой. В данном случае нашлись две
такие параболы (показаны толстыми линиями), которые соответствуют
кодовым словам (—25, —12, —3, 2, 3,0, —7) и (13,3, —1, —1,3,11, 23).
Наличие у многочлена корня (щ,Уг) кратности г означает, что в
разложении многочлена в окрестности этой точки в ряд Тейлора отсут­
ствуют члены порядка, меньшего г, т.е.
Q{x,y)=
^ 2
Я [п,П\ ан У і ) { х - аі)н {у ~Уі)Ь -
(6.7)
jl+j2>T
107
Коэффициенты Q^u^ ( a i , уі) в этом разложении носят название частных
производных Хассе Q ( x , y ) порядка j \ по ж и порядка j 2 по у в точке
(аі ,Уі ). Производные Хассе связаны с обычными производными соотно­
шением Q [jl’h](ai,yi) = - щ ^ Ф иІ2){щ,уі). Необходимость их использова­
ния обусловлена тем, что последние в случае конечных полей могут об­
ращаться в ноль, даже если точка не является корнем соответствующей
Л
кратности. Например, очевидно, что многочлен х имеет единственный
нулевой корень кратности 2. Однако обычная производная (х 2/ = 2х
сравнима с нулем в любом поле характеристики 2 для любых х. Выра­
жение (6.7) показывает, что производные Хассе возникают из формулы
Тейлора намного более естественным образом, чем обычные производ­
ные. Из формулы бинома Ньютона несложно получить следующее вы­
ражение для производных Хассе многочлена Q(x,y) = Хц j>o QijxlyJ:
Ф^(а„Уі) =
X X
,32й г
Ді J 2' -32
Уі
( 6.8)
j[>ji 32>h
Алгоритм Гурусвами-Судана списочного декодирования вектора
( у і , , уп) в ( п , к , п — к + 1) коде Рида-Соломона с вектором локаторов
(<2 і , . . . , ап) включает следующие шаги:
1. (Интерполяция) Построение многочлена Q ( x , y ) = 'Y2j=QQj(x)yJ :
Я ^ Щ а ьУі) = о , j i + j *2 < С такого что его (1 , к — 1 )-взвешенная
степень не превосходит I.
2. (Факторизация) Поиск всех f ^ \ x ) : Q ( x , f ( j \ x ) ) = 0, deg f ( x ) < к.
3. Выбор тех f ( i \ x ) , для которых
= уі не менее чем для т =
п — t позиций і.
Корректность этого алгоритма и взаимосвязь его параметров р, г, / , т бу­
дут обоснованы в следующих леммах.
Лемма 6.1. Если Q ^l^2\a,i,yi) = 0 , j i + j 2 < г и /(а*) = уі, то {х —
ai)r \ Q{xJ{x)).
Доказательство. Если /(а*) = уі, то f ( x ) — уі = (х —щ)д(х). Из (6.7)
вытекает, что Q ( x J ( x ) ) = Х ^ 2>г
- ai)j l (f (x) ~УіУ2 =
^ j i + 32>r Q [jl,h](ai,yi)(x - (цУ1+ЬдЬ(х) = (x - щ)гЬ(х).
□
Лемма 6.2. Если многочлен Q( x , y ) = Х^-
удовлетворяет усло­
виям Q [jl’h \a i,y i) = 0, j i + J 2 < r , l < i < n, w d e g Q(x,y) <
rr, то для любого многочлена f ( x) , такого что deg f ( x ) < к и
I
= Уі } I > г, выполняется Q( x , f ( x) ) = 0.
108
Доказательство. В соответствии с леммой 6.1, многочлен Y\i-f(a )=y (x ~
аі)г, степень которого по условию леммы не меньше тг, является делите­
лем Q( x , f ( x ) ) = ^2j>Qqj(x)P(x). Степень этого многочлена не превос­
ходит wdeg(i^_i) Q(x, у) < гг. Многочлен большей степени может быть
делителем многочлена меньшей степени, только если последний тожде­
ственно равен нулю.
□
Т еорем а 6.3. Если
I
k - 1
+ 1 ] [ I+ 1 —
к- 1
I
к - 1
> п
г (г + 1 )
то алгоритм Гуру свами-Судана обеспечивает списочное декодирование
кодов Рида-Соломона с числом исправляемых ошибок
t < п — у / п ( к — 1).
Доказательство. Как видно из (6.8), построение многочлена Q(x, у) сво­
дится к решению системы линейных однородных алгебраических урав­
нений Qb'i^](a і , Уі ) = 0 ,jT + J 2 < Ч 1 < i < n. Общее число таких
уравнений равно п —
Число неизвестных равно числу одночленов в
этом полиноме, ( 1 , к —1 )-взвешенная степень которых не превосходит I.
Очевидно, что можно положить р = \ j jt i \ ■Тогда число таких одночле­
нов равно N(l) = J2P
j =0{l + 1 — {к — 1 )j) = (р + 1)(/ + 1) —(к —
=
( |_£ДдJ + і) (/ + 1 —
L ^ i J ) • Если число неизвестных превосходит
число уравнений, то такая система имеет ненулевое решение, которое со­
ответствует искомому многочлену. Это условие может быть записано как
2)
ЩІ) —
> V
([;i k -I1 “К і) (/ “К i 1/ 2) > 2( k—l) > n r^rt 1^. Выбирая l = rr —1,
получим n(k —1 )r.22 + n(k —1 )r < r 2r
2^2
сительно г, получим
r >
1. Решая это неравенство отно-
п(к —1) + \ / п 2(к — I )2 + 4(т 2 —п(к — 1))
2 (т 2 —п(к — 1 ))
’
(б'9)
причем знаменатель этой дроби должен быть неотрицателен, откуда п —
t = т > л/п (к —1 ).
□
Необходимо отметить, что оценка (6.9) является сильно завышен­
ной, что приводит к бесполезным вычислительным затратам. Их можно
значительно сократить, если первоначально выбрать г на основе (6.9), а
затем постепенно его уменьшать до тех пор, пока не нарушится условие
Щгт - 1) > п'Л+И.
109
I t e r a t i v e I n t e r p o l a t i o n (n, { ( щ , г ц) , 1 < i < n } , r , p )
1
2
3
4
5
6
7
8
9
10
11
for І i— 0 to p —1
do Q i ( x , y ) <- y u,
for І i— 1 to n
do for /3 <— 0 to r — 1
do for i —0 to T — /3 — 1
do A j <- Q f ,/3] (ai, уі), 0 < j < p - 1
m <— arg min Q j ( x , y )
г-Д^о
for j ф m
do Q j ( x , y ) ^ Q j ( x , y ) - ^ Q jo( x , y )
ol
Q m ( x , y ) <- Q m ( x , y ) ( x - a/)
return ( Q o ( x , y ) , . . . , Q p- i ( x , y ) )
Рис. 6.3. Итеративный интерполяционный алгоритм
6.3.2.
Быстрая интерполяция
Непосредственное решение системы линейных уравнений
Q [juh](ai,yi) = 0 ,ji + J 2 < т,1 < г < по, помощью метода Гаусса
требует порядка 0 (п 3г6) операций, что недопустимо много для практи­
ческой реализации. В связи с этим возникает необходимость построения
более эффективной реализации интерполяционного шага. Это может
быть реализовано с помощью итеративного интерполяционного ал­
горитма [46, 52], представленного на рис. 6.3. Основная идея этого
алгоритма состоит в построении нескольких многочленов, удовлетворя­
ющих интерполяционным условиям, причем на каждом шаге алгоритма
выполняется условие LT Qj (x, y) = x tjyJ для наименьшего возможного
значения tj + (к — 1)j. Интерполяционные условия обрабатываются
последовательно, так что на каждом шаге многочлены Q j ( x , y ) удо­
влетворяют всем уже обработанным условиям. Можно заметить, что
преобразования, выполняемые на шагах 9 и 10 алгоритма, подобраны
таким образом, чтобы обнулить очередную производную Хассе.
На каждом шаге алгоритма число членов в полиномах примерно
равно числу уже обработанных интерполяционных условий. Сложность
вычисления производных Хассе и коррекции многочленов пропорцио­
нальна числу членов в них, поэтому сложность алгоритма можно оце­
нить как 0 (п 2рг4) = 0 (п 2г 5). Существуют, однако, и более эффективные
методы решения этой задачи [69].
по
у), к , і , Ф)
Найти наибольшее г : x ~rQ(x,y) является полиномом
М( х , у ) <— x~rQ(x,y)
Найти корни yi e F ,i = 1..щ многочлена М(0, у)
for j <— 1 to v
do Ф[і ] <— 7j
if г = к — 1
then P rintС 5 = 0 фЫж;")
else M( x , y ) ^ M ( x , y + y j )
M( x , y )
M( x , x y )
Reconstruct(M(^, y ) , k , i - \ - 1, Ф)
R E C 0 N S T R U C T ((5 (£ ,
1
2
3
4
5
6
7
8
9
10
Рис. 6.4. Поиск f ( x ) : Q(x, f ( x) ) = 0
6.3.3.
Быстрый поиск функциональных корней
Этап факторизации, или поиска функциональных корней f ( x ) та­
ких, что Q( x , f ( x ) ) = 0 в алгоритме Гурусвами-Судана может быть
выполнен с помощью алгоритма Рота-Рукенштейн, который основан
на следующей идее. Поделим вначале Q( x , y ) на наибольшую возмож­
ную степень х. Если Q( x , f ( x ) ) = 0, то справедливо и равенство 0 =
Q( 0 , / ( 0)) = <5 (0 , /о), которое является уравнением с одним неизвест­
ным. Оно может быть разрешено, например, с помощью процедуры Че­
ня. Для каждого найденного таким образом значения /о справедливо
равенство 0 = Q { x J 0 + xf' {x)) = Q' ( x , f { x ) ) , где f ( x ) = /о + x f { x )
и Q'(x,y) = Q(x, f o + xy). Таким образом, задача поиска f {x) свелась
к аналогичной задаче поиска /'(ж ), для решения которой можно рекуррентно воспользоваться этим же методом. На рис. 6.4 представлен ал­
горитм, реализующий этот подход [58]. Можно показать, что он имеет
сложность 0 ((plog 2 р)к(п + plogq)).
і и
6.4.
Альтернантные коды
6.4.1.
Конструкция кодов
Определение 6.4. Альтернантным кодом над F^ называется код с
проверочной матрицей
Н =
/ aj
а\
«2
U
а2г —1
-1
где щ
G
а\
• •
«п \
аи п1
diag(ixi,H2, . . . , и п
■ < гѴ
F q™— различные элементы, щ G F^m \ {0} .
Величины щ называются локаторами кода. Из этого определения
видно, что алвтернантный код состоит из всех кодоввіх слов обобщенного
кода Рида-Соломона G R Sn- r(a, ѵ) над ¥ qm с подходящими параметрами,
все символві которых принадлежат ¥ q, т.е. он является ограничением на
подполе F q кода GR S n- r(a,v). Связь величин и и ѵ была исследована в
доказательстве теоремы 6.2 .
Минимальное расстояние альтернантного кода не может быть
меньше минимального расстояния соответствующего обобщенного кода
Рида-Соломона, т.е. d > г + 1. Аналогично случаю кодов БЧХ, размер­
ность может быть оценена как к > п — тг. В отличие от кодов БЧХ,
которые асимптотически плохи, существуют хорошие длинные альтер­
нантные коды.
Теорема 6.4. Пусть т\(п — h). Существует альтернантный (п , к >
h , d > д) код над F ? такой, что
6-1
Y^{q - 1 fci < (qm - 1 )("-л)/™
(6.10)
i= 1
Доказательство. В ходе доказательства будем предполагать, что вектор
локаторов (од,. . . , ап) фиксирован.
Пусть у G F” — произвольный ненулевой вектор. Оценим число
обобщенных кодов Рида-Соломона, содержащих его. Вектор принадле­
жит GRSfj^a^v) тогда и только тогда, когда Уі / ѵі = / ( а *),1 < г <
n , d e g f ( x ) < к'. Выберем значения щ, 1 < і < к', произвольным об­
разом и построим по точкам
< і < к', интерполяционный
полином f (x), после чего найдем оставшиеся щ как ѵ%= jppy? к! < %< п .
112
Таким образом, получим описание некоторого обобщенного кода РидаСоломона, содержащего кодовое слово у. При этом иногда может ока­
заться так, что уі Ф 0 = f(di) или уі = 0 ф /(щ ). В этом случае бу­
дем считать выбор начальных значений щ неудачным. Так как число
возможных вариантов выбора каждого из начальных значений щ равно
qm — 1, общее число обобщенных кодов Рида-Соломона, содержащих у,
не превосходит (qm — 1)к .
Рассмотрим далее альтернантные коды, полученные как ограни­
чение на F q GRSki{a,v),k' = п — (п — h)/m. Их размерность к > h.
Число различных таких альтернантных кодов, содержащих фиксирован­
ный вектор у , не превосходит число соответствующих обобщенных кодов
Рида-Соломона, т.е. (g”1 —l) n_(n_/i)/m. щаким образом, число альтернант­
ных кодов, имеющих минимальное расстояние менее 5, не превосходит
(qm —1^n-(n-h)/m Y^i=1(q —
Общее число обобщенных кодов РидаСоломона равно числу различных векторов ѵ, т.е. (qm — Г)п. Если оно
превосходит число плохих кодов, т.е.
(qm - 1 )»-(n-fc)/m Y ^ (q - 1 у с і < (qm - 1 )",
І= 1
то код с требуемыми параметрами существует.
□
Сопоставляя (6.10) и границу Варшамова-Гилберта (2.7), можно
увидеть, что существуют альтернантные коды, лежащие на границе
Варшамова-Гилберта. Однако доказанная теорема не дает конкретных
способов их отыскания.
6.4.2.
К оды Гоппы
Одним из наиболее интересных классов альтернантных кодов яв­
ляются коды Гоппы.
О пределение 6.5. Пусть заданы вектор (оц,. . . , ап) и многочлен Гоппы
G(x) = Ym=o9ixt £ IV 1 [ж] : G(di) Ф 0,1 < і < п. Код Гоппы состоит из
всех векторов (с\,... ,Сп) e F” таких, что
Е
О mod G(x),
( 6 . 11)
где щ — локаторы кода.
Для того, чтобы показать принадлежность кодов Гоппы к числу
альтернантных кодов, заметим, что многочлен х —щ обратим по модулю
из
G(x), причем
° { x ) - G (ai \ G- i {a.
x —Щ
x — ai) 1 =
+ x r~2di + ... + <Д_1) + gr-\{ x r —2 +
••• + al ) + • • • + 92 (x + щ) + g\. Группируя члены при степе­
нях ж, (6. 1 1 ) можно переписать как 0 =
—
di
G{jii ‘ G^ X~—G^
Видно, что
=
9r(xr~l
ЕГ=і c f e Е Д о gr- k +jai, 0 < к < г. Таким образом, проверочная мат­
рица кода имеет вид
/ 9г
H' =
9 f —i
V91
0 ...
9т
•••
0\
0
9г/
92
/ al
dr
бц
dr
r —1
\d 1
«n \
d1
Un
r —1
d,
diag
G(«a) ’
’ G{an)
d,nr —1/
Первая матрица в этом произведении является обратимой, поэтому ее
можно исключить из рассмотрения. Оставшиеся два сомножителя обра­
зуют проверочную матрицу альтернантного кода. Таким образом, раз­
мерность и минимальное расстояние кода Гоппы могут быть оценены
как к > п — mdegG( x) и d > deg (Дж) + 1 .
Ограничимся далее случаем двоичных кодов. Пусть ненулевые сим­
волы некоторого кодового слова расположены в позициях 1\,... ,lw. Вве­
дем многочлен f ( x ) = YYi=i(x ~ ak)- Тогда
п
о =
w
1
' У — ?— = V
/ j xПГ. —
— di
П:
/ j x —щ.
і= 1
i= 1
№ ) mod G(x),
f(x)
где f ' (x) — формальная производная многочлена f ( x ) по х. В силу
того, что многочлены f ( x ) и G(x) взаимно просты, это означает, что
G(x)\f'(x). В поле характеристики 2 f { x ) содержит только четные сте­
пени, а значит, является полным квадратом, т.е. f ' (x) = и2(х). Пусть
Q(x) — полный квадрат наименьшей степени, делящийся на G(x). Тогда
Q(x)\f'(x). Следовательно, использование Q(x) вместо G(x) в (6. 1 1 ) ни­
как не повлияет на множество задаваемых кодовых слов. Таким образом,
можно улучшить оценку минимального расстояния до d > deg (Дж) + 1 .
Очевидно, что если исходный многочлен Гоппы свободен от квадратов,
то (Дж) = G2(х) и d > 2 deg G(x) + 1. Такие коды называются сепара­
бельными кодами Гоппы.
Для декодирования кодов Гоппы могут использоваться любые
алгоритмы, пригодные для декодирования обобщенных кодов Рида-
114
Соломона. В случае сепарабельных кодов Гоппы при этом следует ис­
пользовать проверочную матрицу, соответствующую многочлену Q(x) =
G2(x ), так как она содержит вдвое большее число строк, чем матрица,
соответствующая G(x), и позволяет получить число компонентов векто­
ра синдрома, достаточное для исправления degG(x) ошибок в метрике
Хэмминга.
Можно показать [8], что существуют коды Гоппы, лежащие на гра­
нице Варшамова-Гилберта.
6.4.3.
Криптосистема М ак-Элиса
Существование большого числа альтернантных кодов и, в частно­
сти, кодов Гоппы, делает возможным использование их в криптографии.
Рассмотрим сценарий передачи сообщения от стороны А к стороне
Б по открытым каналам связи. Для защиты от несанкционированно­
го доступа необходимо зашифровать это сообщение некоторым образом.
Симметричные криптосистемы, использующий один и тот же ключ для
шифрования и дешифрования данных, не позволяют решить эту задачу,
так как их использование фактически сводит ее к проблеме безопасной
передачи ключа шифрования. Использование несимметричных крипто­
систем, известных также как системы шифрования с открытым ключом,
позволяет преодолеть эту трудность. Эти системы предполагают исполь­
зование общеизвестного публичного ключа Р для шифрования сообще­
ния и. Расшифровать его может только владелец секретного ключа А,
который не должен разглашаться. Криптосистема может быть описана в
виде функций шифрования Е ( и , Р ) и дешифрования D(C, S ) таких, что
D(E(u, Р ), S) = М. Безопасность данной схемы достигается в том слу­
чае, если зная С и Р, вычислительно крайне сложно решить уравнение
С = Е{ и , Р ) относительно и (или, тем более, восстановить S).
Так как задача декодирования произвольного линейного кода в
метрике Хэмминга является NP-полной, она является привлекательной
для использования при построении криптосистем с открытым ключом.
Предположим, что задан некоторый (n, k , d > 2£+1) код с порождающей
матрицей G = ( / |А), для которого известен эффективный алгоритм де­
кодирования с исправлением t ошибок. Построим публичный ключ как
Р = VGF, где V — произвольная к х к обратимая матрица, F — переста­
новочная матрица. Шифрование сообщения и , представляющего собой
вектор длины к , можно произвести как
С = Е(и, Р ) = и Р + е,
115
где e — произвольный (случайный) вектор веса t. Секретный ключ состо­
ит из матриц F - 1 и У -1 , а также данных, необходимых для использова­
ния эффективного алгоритма декодирования. Процедура дешифрования
сводится к вычислению C' = C F _1 = M V G + e F _1 и декодированию
этого вектора. Заметим, что w t(eF _1) = t , т.е. модифицированный век­
тор ошибки может быть однозначно найден с помощью декодера. По­
сле его нахождения можно извлечь вектор иѴ как первые к символов
С —e F _1, и воспользоваться У - 1 для нахождения и.
Для того, чтобы восстановить сообщение, не зная секретного клю­
ча, необходимо решить задачу декодирования по критерию минималь­
ного расстояния Хэмминга. Для этого можно воспользоваться методом
декодирования по информационным совокупностям, описанным в разд.
3.1. Поиск информационной совокупности, свободной от ошибок, может
быть существенно упрощен, если удалось перехватить криптограммы
уі = и Р + еi и у2 = и Р + е2 , соответствующие одному и тому же сообще­
нию и. В этом случае ненулевые элементы вектора у = у\ + у2 = е\ + &2
расположены на тех позициях, в которых е\ или б2 отличны от нуля.
Вместе с тем, небольшое число нулевых элементов вектора у может со­
ответствовать случаю наличия ошибок одновременно в соответствующих
символах еі и е^- Таким образом, можно существенно сократить число
перебираемых информационных совокупностей.
Восстановление секретного ключа по публичному в случае кодов
Гоппы требует перебора всех возможных многочленов G(x) и векторов
локаторов (од,... ,ап). До настоящего времени найти эффективные ал­
горитмы решения этой задачи не удалось. Однако аналогичные струк­
турные атаки против вариантов криптосистемы Мак-Элиса, основанной
на других кодах, оказались вполне успешными.
Существенным недостатком криптосистемы Мак-Элиса являет­
ся необходимость использования достаточно длинных (например, п =
2048, к = 1751, d = 55 [17]) кодов, что приводит к большому размеру
публичного ключа.
Упражнения
1. Постройте порождающий многочлен (10,5,6) кода Рида-Соломона над Fu.
2. Докажите, что коды Рида-Соломона в смысле определения 6.1 действительно
имеют минимальное расстояние п — к + 1 .
3. Опишите код Рида-Соломона с порождающим многочленом д{х) = (х — (Зь)(х —
Рь+1) ■■■(х — /F+n-fc-1)) в терминах определения 6 .2 .
116
4. Покажите, что циклический (2т — 1, к, d) код Рида-Соломона над F2m содержит
подкод, являющийся кодом БЧХ с конструктивным расстоянием d.
5. Найдите все кодовые слова (5,2,4) кода Рида-Соломона над F 5 с вектором ло­
каторов (0,1,2, 3, 4), отличающиеся от вектора (1, 2, 0, 0, 0) не более чем в двух
позициях.
117
7. Коды Рида-Маллера
7.1.
7.1.1.
Конструкция кодов
Построение с помощью полиномов Ж егалкина
Определение 7.1. Кодом Рида-Маллера R M ( r , m ) порядка г и длины
2т называется множество векторов, полученнвіх путем вычисления значении многочленов
а(Ѵ\ ,. • •, Ѵт) =
ѵт ЩІ? • • ■Нт ^ {0 ?1 }
••iг°тѴІ1-1
Y1
Іі +...+Іт<Г
во всех точках ( щ,.. ■,vm) e ¥ f .
Полиномві, лежащие в основе этой конструкции, носят название
многочленов Жегалкина. Ясно, что кодві Рида-Маллера являются линейнвши и имеют размерности к = Х ц=о^т- Кроме того, коды РидаМаллера являются вложеннвши, т.е. R M( 0 , m) С R M ( l , m ) С . . . С
R M ( m , m ) . Перввій код в этой цепочке является кодом (2т , 1,2т ) с по­
вторениями, в то время как последний — тривиальным (2 m, 2 т , 1 ) кодом.
Пример 7.1. Порождающие матрицы кодов Рида-Маллера длины 8 образованы сле­
дующими векторами, полученными путем подстановки р = Ѵі соответствующие
одночлены:
в
1
1
1
1
0
1
0
0
0
0
0
1
ѴЖз
ѴЖз
0
0
0
РЖ Рз
0
«(0,0,0)
« (1,0,0)
«(0,1,0)
«(0,0,1)
« (1,1,0)
«(0,1,1)
« (1,0,1)
« (1,1,1)
Рі
р2
Рз
ѵж
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
В дальнейшем будем помечать столбцы порождающей матрицы
и символы кодовых слов соответствующими векторами ( щ , . . . , ѵт) G
GF{ 2 )m.
Теорема 7.1. Кодом, дуальным к RM( r , m) , является R M ( m — г —
1 , т).
Доказательство. Степень любого полинома Жегалкина, соответствую­
щего кодовому слову R M ( r , т ), не превосходит г. Степень любого поли­
нома Жегалкина, соответствующего кодовому слову R M ( m —г — 1,т),
118
не превосходит т — г — 1. Скалярное произведение с = с' • с", c' G
R M ( r , га), с" G R M ( m —г —1,га) может быть представлено как вектор
значений многочлена Жегалкина, равного произведению многочленов,
соответствующих d и с", во всех точках F™. Степень такого многочлена
не превосходит га —1. Каждый одночлен П ” д Vj3d j ^ {0 ) такой, что
некоторые Д = 0 , принимает ненулевое значение в четном числе пози­
ций. Эти позиции соответствуют различным значениям тех переменных,
для которых ij = 0. Следовательно, с имеет четный вес, т.е. d и d' всегда
ортогональны.
□
7.1.2.
Построение с помощью конструкции Плоткина
Коды Рида-Маллера могут быть также получены с помощью кон­
струкции Плоткина (Сц, С\ + СД (см. разд. 12.2.3). Действительно, вся­
кий полином Жегалкина может быть представлен как а { \ і , . . . , ѴД+і) =
Ъ{\i , . . . , Ѵт) + Km+ic(Vi,. . . , Ѵт). Упорядочим лексикографически все
двоичные векторы ( щ , ... , нт +і) длины га + 1 вначале по переменной
ѵт+1 , затем по ѵт и т.д. Тогда при вычислении значений а ( щ , ... ,нт +і)
последовательность Ь(ѵі , . . . , % ) повторится два раза, а вклад второ­
го слагаемого на первой половине точек окажется равен нулю. Таким
образом, если G(r, га) — порождающая матрица кода RM( r , m) , то
(
.
( G(r + 1,га) G(r + 1,га)\
G(r + 1 ,то + 1) = (
0
С (г> т) 1.
Теорема 7.2. Минимальное расстояние кода R M ( r , m ) равно D ( r , m ) =
2т —г
Доказательство. Для г = 0 и г = га это утверждение очевидно. Пред­
положим, что оно верно для всех г, га : га < га' и 0 < г < га. Тогда в силу
теоремы 12.1, D (r,m ' + 1) = min(2D(r, га'), D (r —1 ,га')) = 2 m +1-r. □
7.2.
7.2.1.
Декодирование
Ж есткое декодирование
Рассмотрим декодирование кодов Рида-Маллера в метрике Хэм­
минга. Принятый сигнал представим как
Уѵ\...ѵт = Д щ , • • •,
ѵт) +
e Vl.„Vm, deg я ( щ , . . . ,
нт ) <
т,
&ѵі...ѵт
£ ^2
•
(7 -2)
Будем искать многочлен а(ѵ\,. . . , ѵт)7значения которого отличались бы
от величин уѴі„.Ѵт не более чем в Dd ^ ) 1 позициях.
119
Свойство вложенности кодов Рида-Маллера позволяет организо­
вать их поэтапное декодирование. Будем считать, что информационные
символы задаются коэффициентами
іт полинома Жегалкина, за­
шумленный вектор значений которого поступил на вход декодера.
Вначале попытаемся найти коэффициенты при членах, имеющих
степень г. Если бы ошибок не было, их можно было бы вычислить как
аІі...,Іт =
52
v^Xj (ii
Уѵі
(7-3)
где суммирование производится по модулю 2 и
. . . , іт) — множество из 2 wi(T b--Cm)) булевских векторов, принимающих все возмож­
ные значения в позициях к : Д = 1 , и с фиксированными значениями,
определяемыми номером j, в других позициях. Таких тождеств можно
выписать 2т~г штук. Для того, чтобы показать справедливость (7.3),
заметим, что
52
Уѵ =
52
52
52
(
ч ѵі і - " ѵт =
52
aPVl • • • Vm ) m0d2-
/3:wt(/3)<r У<ЕХ,(гь ...,гт )
J
"----------------- v----------------- '
Ж(Х,(гь ...,гто),/?)
Величина N ( X j ( i \ , ... , im), (3) равна числу элементов в множестве
X j ( i i , . . . , іт) (т.е. столбцов порождающей матрицы), имеющих 1 во
всех позициях, помеченных единицами в векторе /3. При вычислении
N ( X j ( i \ , . . . , іт), (3) перебираются векторы ѵ, принимающие все возмож­
ные значения в позициях к : Д = 1. При (3 = ( Д , . . . , г т ) только один
из них содержит единицы на всех ненулевых позициях /3. Следователь­
но,
= 1. Если /3 ф (Д, . . . , Дг), число таких
элементов четное и N ( X j ( i \ , . . . , іт),/3) = 0 mod 2.
Однако в реальности величины уѵ могут быть искажены ошиб­
ками. В этом случае можно воспользоваться тем, что тождества (7.3),
соответствующие различным j, используют непересекающиеся наборы
символов уѵ, т.е. одна ошибка в принятой последовательности оказы­
вает влияние ровно на одну вычисленную таким образом оценку. Это
дает возможность построить 2т~г независимых оценок для <2ц..щто и вы­
брать в качестве окончательного решения значение
встречаю­
щееся чаще всего среди вычисленных оценок (метод голосования). Ес­
120
ли имело место менее 2m_r_1 ошибок, это решение окажется правиль­
ным. После этого можно вычесть из принятого вектора вектор значений
^2p-wtfi=r ^ /^ f 1 **' vrn-> гДе
— найденные информационные символы,
и продолжить декодирование в коде R M{ r —1, га).
Пример 7.2. Код R M ( 2,4) имеет порождающую матрицу
( 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 \
G=
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
®0000
«1000
«0100
«0010
«0001
«1100
1
1
«1010
«1001
«оно
«0101
1 )
«ООП
Этот код способен исправить одну ошибку. Рассмотрим декодирование вектора
у = (1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,0 ,0 ,1 ,1 ,0 ,1 ) в этом коде. Выпишем тождества для коэф­
фициентов при членах второго порядка полинома Жегалкина1, соответствующих
правильным кодовым словам:
Оцоо
ОІОЮ
31001
О0110
О0101
О0011
= Уо + VI + V2 + Уз
= Уі + УЬ + Ув + У7
= У8 + У9 + УіО + Уіі = У12 + УіЗ + У14 + У15
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
УО
УО
УО
УО
УО
+
+
+
+
+
Уі
Уі
У2
У2
У4
+
+
+
+
+
У4
У8
У4
У8
У8
+
+
+
+
+
У5
У9
Уб
УІО
У12
У2
У2
Уі
Уі
Уі
+
+
+
+
+
УЗ
УЗ
УЗ
УЗ
У5
+
+
+
+
+
Уб + У7
УІО + Уіі
У5 + У7
У9 + Уіі
У9 + УіЗ
У8
У4
У8
У4
У2
+
+
+
+
+
У9 + У12 + УіЗ
У5 + У12 + УіЗ
УіО + У12 + У14
Уб + У12 + У14
Уб + УіО + У14
=
=
=
=
=
УіО + Уіі + У14 + У15
Уб + У7 + У14 + У15
У9 + Уіі + УіЗ + У15
У5 + У7 + УіЗ + У15
УЗ + У7 + Уіі + У15
В декодируемом векторе присутствует ошибка, поэтому не все выражения из каждой
строки дают один и тот же результат. После голосования получим йцоо = 0, Фо іо =
0, йіооі = 0, йопо = 0, йо101 = 0, йооп = 1. Вычтем из вектора у линейную комбинацию
последних шести строк порождающей матрицы с вышеуказанными коэффициентами
(т.е. только одиннадцатую строку). Получим у' = (1,1,1,1,1,1,1,1, 0, 0, 0, 0, 0, 0,1,0).
Этот вектор необходимо продекодировать в коде R M [ 1,4).
Выпишем набор тождеств для коэффициентов при членах первого порядка
полинома Жегалкина:
Оіооо =
Уо +
зоіоо =
Уо + Уз = УІ
У о + Уі = Уі
Уо + У& = Уі
зоою
=
30001 =
УІ =
У2 +
Ув + Ve = Уіо + У і і = У І 2
Ув + Уіо = Уо + Уіі = УіЗ
Ув + У І 2 = У д + У і з = У і о
Уз =
У4 +
Уб
=
Уб +
УІ
=
+
Уз =
У4 +
Уе
=
УІ, +
УІ
=
+
УІ =
Уз
Уе
=
Уз +
УІ
=
+
Уд =
Уг +
Уіо =
Уз +
Уіі = Уз +
+
УІ2 =
Уб +
Уіз
=
Уб +
+
УІ з =
Уі4 +
+
УІ4 =
Уіз +
УІ5
+
УІ4 =
Уіі +
УІ5
УІ4
=
УІ
УІ5
+ Уіз
Декодируемый вектор по-прежнему содержит ошибку, поэтому снова не все тож­
дества дают одинаковый результат. Проведя голосование, получим йюоо = 0,йоіоо =
0, 6.0010 = 0,йоооі = 1- Вычитая из вектора у1 пятую строку порождающей матрицы,
получим у11 = (1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 , 1 , 1 , 1 ,1,0,1). Этот вектор необходимо продеко­
дировать в коде і?М(0,4).
1
Символы кодового слова нумеруются десятичными числами в интервале с 0 по
15.
121
Данный код является (16,1,16)-кодом с повторениями и описанная процедура
декодирования сводится к ввібору наиболее часто встречающегося символа декоди­
руемого вектора. Таким образом, doooo = 1. Исходное кодовое слово RM (2,4) кода
равно ( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 ).
Таким образом, жесткое декодирование вектора г в коде RM(r, т )
включает в себя следующие шаги:
1. Выписать тождества (7.3) для коэффициентов полинома Жегалкина
при членах порядка г .
2. Для каждого коэффициента выбрать в качестве окончательного ре­
шения значение ащ.щт , встречающееся чаще всего среди оценок, вы­
численных с помощью найденных тождеств.
3. Если г = 0, декодирование окончено. В противном случае вычислить
у' : у'ѵі...ѵт = Уѵх...ѵт - E / 3 : w t P=r a p i v i 1 • • • V%?) mod 2 и продекодировать вектор у' в коде R M ( r —1, m) аналогичным образом.
Описанная процедура обеспечивает исправление всех ошибок до полови­
ны минимального расстояния кода.
7.2.2.
Мягкое декодирование
Рассмотренный алгоритм жесткого декодирования может быть
обобщен на случай мягкого декодирования, т.е. на тот случай, когда из­
вестны вероятности того, что символы переданного кодового слова рав­
ны 0 или 1 [28]. Эти вероятности удобно представить в виде логариф|a(vi,...,vTO)=0}
— In
lr. рр {уѵі...
{Уѵі> Vm\a(vu
мических отношений
uinuiuciururi правдоподобия
и р ш з д ш ш ^ п л 2 Lv ѵ = ^
...,vm)=l}Будем предполагать, что передача осуществляется по каналу без памяти.
Оценим апостериорную вероятность того, что коэффициент по­
рядка г полинома Жегалкина равен 1. Для этого предположим, что
величины уі, входящие в различные тождества (7.3) для рассмат­
риваемого коэффициента
независимы. Это, конечно, невер­
но, так как они являются зашумленными символами одного ко­
дового слова, а смысл операции кодирования состоит в том, что­
бы сделать передаваемые по каналу символы статистически зави­
симыми. Тем не менее, этот подход позволяет получить прибли.п-ІЛ
женную оценку Р { щ 1__Лт =
Р{аи
і
= 1}
Р(Уо,-,Уп)
П
p(Vktk
_
‘} =
e
Р(Уо~1\аіѵ-іт=1)Р{агѵ ..іт= 1 }
РІУоХ
. . . , Іт)\а і1...іг
i)
^
=
2В разд. 9.2.2 логарифмическое отношение правдоподобия было определено как
Ь( сі) = In р|^|еТо| • Изменение определения позволяет несколько упростить преобра­
зования.
122
Р{а, i...im=l} 1-Г2ш*«іі--Іт)) {P{aiv..im=l\yk,keXj (i1,...,im)}p(yk,k£Xj (i1,...,im) ) \
л_
к»?-1) 1 ь = і
i
р{ач..,т =и
;• Ана_
логичные выражения можно получить для апостериорной вероятности
равенства Щ1..лт нулю. Предполагая, что Р{а^..лт = 1} = Р{а^..лт = 0},
получим
In
Р { ач..лт =
1} _ "
Р{ач...іт = ЦУо Н
Е
^
= Qlz/fc, fc 6
, im)}
= % ь & e Х; (гь . . . , г т )}'
ln
з=1
(7.4)
Л ем м а 7.1. Пусть величины Хі принимают значения 1 и 0 с вероят­
ностями рі и 1 —рі соответственно. Тогда
1 т
1
Р {ад + .. . + х т = 0 mod 2 } = - + -
1 - 2pi).
i= 1
Доказательство. При т
=
1 утверждение очевидно. Пред­
положим, что оно верно для т — 1 переменной. Тогда
Р {х\ + ... + х т = 0 mod 2} = Р {х\ + ... + х т- \ = 0 mod 2, х т = 0} +
Р Д і + ... + х т- і = 1 mod 2, х т = 1 } =
й
(g + Ш Е И ~ 2р*)) ( 1 -
) + ( 5 - Ш ™ Т 1( 1 - 2 й ) ) й .
□
Несложно заметить, что еслиро+Рі = 1, то выполняется тождество
tanh g In (p o/pi)) = ехр(!п(ро/рі)) + ! = » - Рі = 1 - 2рь
(7.5)
Следовательно,
\
/
tanh
1 1п Р { а г 1...іт = 0| Ук, k e X j ( i 1 , . . . , і т ) }
2
П
tanh ( - Li
IdzXj (i i v••;^m)
= 1|Ук , ке Xj{i
V
/
Вводя обозначения щ = s g n = |Lj|,0(aj) = - lntanh(:r/2) и учитывая, что ф(х) = 0 _ 1 (т), получим
П
“ г)
-А( E
№i)
I.
(7.6)
123
Необходимо отметить, что в данном выражении перемножаются величи­
ны щ = ±1, что соответствует операции “исключающее или”. Непосред­
ственное вычисление функции ф(х) в области малых и больших аргу­
ментов может привести к значительным ошибкам округления.
Как только найдены апостериорные логарифмические отношения
правдоподобия коэффициентов <2ц.щто при членах порядка г, можно при­
нять решения относительно значений этих коэффициентов и вычислить
соответствующую линейную комбинацию у строк порождающей матри­
цы. В случае жесткого декодирования эта линейная комбинация вычи­
талась из принятого вектора. В данном случае принятый вектор пред­
ставлен в виде вектора логарифмических отношений правдоподобия, по­
этому вычитание заменяется изменением знака тех величин /д, которым
соответствуют единицы в векторе у. После этого необходимо продолжить
декодирование в коде R M ( r —1 ,т).
Таким образом, мягкое декодирование кода Рида-Маллера
R M ( r , т) может быть произведено следующим образом:
1. Выписать тождества (7.3) для коэффициентов полинома Жегалкина
при членах порядка г .
2. Вычислить логарифмические отношения правдоподобия Ьі символов
кодового слова.
3. Для каждого коэффициента при члене порядка г полинома Ж егал­
кина и для каждого соответствующего ему тождества j вычислить
(7.6).
4. Найти апостериорное логарифмическое отношение правдоподобия
для каждого коэффициента при члене порядка г полинома Ж егал­
кина в соответствии с (7.4). Принять решение
относительно
этих коэффициентов.
5. Вычислить линейную комбинацию у' строк порождающей матрицы,
соответствующих найденным коэффициентам щ1_лт- Изменить знак
у величин Ь[ ■у i = 1 .
6. Продолжить декодирование в коде RM{ r — 1,т).
Для оценки корректирующей способности кодов Рида-Маллера можно
воспользоваться объединенной верхней границей (2.12). При этом можно
ограничиться первым ненулевым членом (т.е. соответствующим г = d =
2m_r) этой суммы. При этом известно, что
т ~ r~ 1 от —і _ i
А z2т-г = 2Г 1П1
і= О
124
-------2т—г—г:----_ .
Еь/No,
дБ
Рис. 7.1. Вероятность ошибки декодирования кодов Рида-Маллера для
случая канала с АБГШ
На рис. 7.1 представлены графики зависимости вероятности ошибки
декодирования некоторых кодов Рида-Маллера с помощью описанного
метода, полученные с помощью имитационного моделирования, а также
верхняя граница для вероятности ошибки декодирования по максимуму
правдоподобия. Видно, что вероятность ошибки, достигаемая рассмот­
ренным методом, приближается к вероятности ошибки декодирования
по максимуму правдоподобия только для кода R M ( 1,3). Для других
рассмотренных кодов проигрыш составляет от 0,5 до 1 дБ.
Упражнения
1. Продекодируйте в коде Рида-Маллера R M (2,5) любой вектор веса 29 с помощью
мажоритарного метода.
2. Продекодируйте в коде Рида-Маллера R M ( 2,5) с помощью декодера Плоткина
(см. разд. 12.2.3) любой вектор веса 29.
125
8. Полярные коды
8.1.
Поляризация канала
8.1.1.
Основная идея
Рассмотрим преобразование (co,ci) = (uo,ui)
1 0
. Предполо­
жим, что символы Ci передаются по двоичному стирающему каналу с
вероятностью стирания Z , как показано на рис. 8.1. Пусть yo, yi — сим­
волы, наблюдаемые на выходе канала. Используя эти символы, можно
попытаться восстановить значение uo. Действительно, если оба они не
стерты, т.е. равны co,ci, справедливо равенство uo = Co + ci = yo + yi.
Таким образом, символ uo не может быть восстановлен, если хотя бы
один из yi стерт, вероятность чего равна Zi,o = 2Z —Z 2 > Z . Предполо­
жим теперь, что на стороне приемника известно истинное значение uo, и
рассмотрим нахождение ui. Видно, что ui = Co+ uo = ci. Таким обарзом,
символ ui не может быть восстановлен, если оба символа yo, yi стерты.
Вероятность этого равна Zi,i = Z 2 < Z . Таким образом, исходный дво­
ичный стирающий канал как бы расщепляется на два подканала, один
из которых чуть лучше, а второй — чуть хуже, чем исходный канал. Это
преобразование можно проделать многократно, как показано на рис. 8.2.
Видно, что в результате получились подканалы с вероятностями
стирания близкими к 0 и 1. Для того, чтобы организовать надежную
передачу информации, естественным решением является задействовать
подканалы с низкой вероятностью стирания, а по плохим подканалам пе­
редавать некоторые предопределенные значения. Соответствующие сим­
волы u i будем называть замороженными. Такая схема преобразования
данных на стороне передатчика может быть описана как
cj i = u j 1A m, щ = 0, i e F ,
Рис. 8.1. Элементарное поляризующее преобразование
126
(8.1)
Рис. 8.2. Поляризация двоичного стирающего канала с вероятностью
стирания Z = 0.5
где aj =
1 , . . . , a j ), A m = K ®m, F — множество номеров замо­
роженных символов (множество замораживания), K — l х l матрица,
называемая ядром поляризующего преобразования, и Cm обозначает mкратное произведение Кронекера матрицы с самой собой. Произведением
Кронекера матрицы A размерности m х n и матрицы B размерности p х q
называется матрица размерности (mp) х (nq) вида
AСB
/ a0,0B
ai,o B
ao,i B
a 1 ,1 B
\ am—1,0B am -1,1B
a0,n—1B \
a1,n-1B
am-1,n-1B
В рассмотренных выше примерах использовалось ядро Арикана K 2 =
1 0
^ . Схема, задаваемая (8.1), соответствует кодированию данных ли­
1 1
нейным блоковым кодом (n = lm,lm — | F | ) , порождающая матрица G
которого образована строками матрицы Am, номера которых не содер­
жатся в множестве F . Такой код называется полярным.
127
П рим ер 8.1. Д л я Т = { 0 ,1, 2, 4}, т = 3 и яд р а А рикана получим
/1
1
0
0
0
0
0
0
i
0
0
0
0
0
°\
0
1
0
1
0
0
0
0
0
1
i
1
1
0
0
0
0
V
1
0
0
0
1
0
0
0
1
i
0
0
1
1
0
0
1
0
1
0
1
0
1
0
i
1
1
1
1
1
1/
,G =
/1
1
1
1
0
0
0
°\
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
V
1
1
1
1
1
1
1/
т.е. полярный код совпадает с (8,4,4) кодом Рида-М аллера первого порядка.
8.1.2.
Общий случай
Явление поляризации наблюдается не только для двоичного сти­
рающего канала. Пусть дан некоторый симметричный по входу ка­
нал без памяти1 с функцией переходных вероятностей2 W(y\x) =
Ру\х { у \ х } х £ X = {0,1} , у G Y. Определим синтетические битовые
подканалы с функциями переходных вероятностей
1
п —1
L
П W (yj\(Uo~l A m)j),Ui e X .
и ^ е х п-*-1з=о
Выходным алфавитом і-ого подканала является множество Yn х Х^_1,
т.е. выходом считается выход реального канала, соответствующий п = Іт
переданным символам, а также сведения о символах Uj,j < г,, передан­
ных по подканалам 0 , . . . , г —1. Конечно, в реальном приемнике точная
информация об этих символах недоступна. Но ниже будет показано, что
это не является проблемой.
Можно показать, что если матрица К обратима, и никакая пере­
становка ее столбцов не приводит к верхнетреугольной матрице, то па­
раметры Бхаттачарьи битовых подканалов удовлетворяют [14, 47]
У/3 :0 < /3 < Е (К ) Him inf p f z ( W $ ) <
m —>oo
l
J
= C (W )
У/3 > E ( K ) Him inf p { z ( W $ ) > 2 - /w/4 = 1.
m-> oo
l
J
Известны также обобщения полярных кодов на случай каналов с памятью и
несимметричных каналов.
2Для простоты мы ограничимся здесь рассмотрением каналов с дискретным вы­
ходным алфавитом Y. Все представленные результаты могут быть обобщены на слу­
чай непрерывного Y
128
Здесь C (W ) — пропускная способность канала W, Е ( К ) — скорость по­
ляризации ядра К . Кроме того,
Ѵй > 0 : шlim
Р
—>оо
{ C (w !£ > )
I
е ( 6 ,1 - <5)|J =0
п —1
Ѵш > 0 :
C {W $) = nC (W )
i= 0
Вероятности в этих выражениях следует интерпретировать как долю чи­
сел і : 0 < і < п, для которых выполняется соответствующее условие.
Таким образом, при увеличении числа слоев т поляризующего преобра­
зования почти все битовые подканалы сходятся или к почти бесшумным,
или почти полностью зашумленным, причем доля почти бесшумных под­
каналов равна пропускной способности исходного канала W.
Скорость поляризации ядра может быть вычислена как
E (K ) = j j 2 h g i D h
(8.2)
1 і= О
где Di = <ін(Кі, (К і+i , . . . , К\_і)) — частичные расстояния ядра К , iQ
— строка г матрицы К. г-ое частичное расстояние равно минимальному
расстоянию Хемминга от К і до всевозможных линейных комбинаций ни­
жележащих строк ядра. В частности, для ядра Арикана Do = 1, D\ = 2
и Е ( К 2) = 0.5.
Рекурсивная структура матрицы А т позволяет выполнить умно­
жение на нее, т.е. произвести кодирование полярного кода, со сложно­
стью 0 ( п log п). Например, в случае ядра Арикана видно, что А т =
^ j. Следовательно, вычисление (с', с") = (и', и")Ат своАт—1 А т—1J
дится к нахождению ѵ' = и'Ат- 1 , ѵ" = и"Ат- \ и с' = ѵ' + ѵ" , d' = v" .
Сложность такого алгоритма равна Т ( п ) = 2T(n/2) + n /2 = |l o g 2n.
8.2.
8.2.1.
Декодирование полярных кодов
Алгоритм последовательного исключения
Декодирование полярных кодов может быть выполнено с помощью
алгоритма последовательного исключения, который последовательно
для і = 0 , 1 , . . . ,Іт — 1 формирует оценки
Щ
0
i e Т
argm axn.
г£ Т .
129
Здесь W ^w jls/o Г) = W{f w ( ^ - 1)Ui)■
Если оценки Wq_1 я вл яю тся правильными, то вычисляемые при
этом вероятности в точности равны соответствующим переходным ве­
роятностям битовых подканалов. Если хотя бы одно из решений щ ока­
зывается неправильным, то происходит ошибка декодирования. В этом
случае уже не имеет значения то, что на последующих фазах і вероят­
ности вычисляются неправильно.
Необходимо отметить, что оценки щ, формируемые алгоритмом
последовательного исключения, не являются оптимальными, так как не
учитывают условия замораживания Uj = 0 , j > i , j Е Т. Тем не менее,
полярные коды достаточно большой длины при декодировании методом
последовательного исключения позволяют обеспечить сколь угодно ма­
лую вероятность ошибки на любой скорости, меньшей C(W), т.е. дости­
гают пропускной способности канала [14, 47].
В силу рекурсивной структуры матрицы А т можно заметить, что
l-l
( l i + s) (
W,т
l i+ S \ „ .n —l \
U
Уо
_
Е
П
и+І-1 j=Q
(О
11 m —1
ul(t+1)
1K ) , 0 < t < i \ y n 1
4t
U li+s + 1 J
(8.3)
где W ^ \ x \ y ) = Px \ y ( x \ y ) , y ^ 1 = (y j , y j + i , - - - , y j + n - l ), 0 < 5 < /,
0 < i < j . Вычисление значений этого выражения носит название обра­
ботки или маргинализации ядра. Непосредственное вычисление значе­
ний (8.3) требует 0 (2 11) операций. Более эффективные алгоритмы рас­
смотрены в [75, 73]. Для практически наиболее важного случая ядра
Арикана вычисление этого выражения подробно рассмотрено в разделе
8.4.
Можно заметить, что при s > 0 выражение (8.3) включает в себя
U) что и при s = 0. Эти значения могут быть
те же самые значения
вычислены однократно и затем использованы для различных s. При этом
к (8.3) на слое т придется обратиться п раз, на слое га —1 эта формула
будет задействована для вычисления I блоков по п/1 вероятностей, и т.д.
Таким образом, общее число операций обработки ядра, выполняемых
алгоритмом последовательного исключения, составляет nlog^n.
130
Вероятность ошибки декодирования методом последовательного
исключения может быть оценена как
(8.4)
ifF
8.2.2.
Списочный алгоритм Тала-Варди
Как было отмечено выше, алгоритм последовательного исключе­
ния при формировании решений относительно информационных сим­
волов щ , і
Т , не учитывает ограничения, наложенные на символы
Uj,j > і. Из-за этого его корректирующая способность на кодах с прак­
тически значимыми длинами оказывается неудовлетворительной. Она
может быть существенно улучшена путем рассмотрения в декодере не
более L векторов гф_1, называемых путями. На фазе г для каждого из
путей строятся его возможные продолжения йг0. Если i e J , значения
щ определяются однозначно и число путей не меняется. В противном
случае оно удваивается. Из получившихся путей выбираются L с наи­
большими значениями вероятностей Wm (й$\Vq~1)- После получения пу­
тей длины п из них выбирается тот путь, который имеет наибольшую
вероятность Wm
или удовлетворяет некоторым дополни­
тельным условиям. Реализация этого алгоритма требует использования
структур данных, которые позволяли бы переиспользовать промежуточ­
ные результаты вычислений для различных путей. Эти структуры опи­
саны в [66]. Их использование позволяет реализовать декодирование со
сложностью 0 ( L n log п). Уже при небольших значениях L данный под­
ход позволяет реализовать декодирование почти по максимуму правдо­
подобия.
При недостаточном размере списка L декодер Тала-Варди может
допускать ошибки, обусловленные удалением правильного пути на одной
из фаз.
8.2.3.
Последовательное декодирование
Существенным недостатком алгоритма Тала-Варди является то,
что он строит L кодовых слов, из которых не более чем одно может
являться правильным, т.е. большая часть вычислений выполняется впу­
стую. Для преодоления этой проблемы может использоваться последова­
тельное декодирование [83]. Ключевым элементом последовательного де­
кодера является приоритетная очередь3 (ПО), хранящая пары (М, Hq-1 ),
3В литературе ее иногда называют стеком.
131
где М = M (v q Х, уц х) — вес пути
1, и предоставляющая эффектив­
ные алгоритмві для следующих операций [41]:
• поместитв пару в ПО;
• извлечв пару (М,ѵ q-1 ) (и л и толвко Dq-1 ) с наиболвшим значением
М;
• удалить заданную пару из ПО.
Будем считать, что ПО способна хранить не более Ѳ элементов. В кон­
тексте полярных кодов стековый алгоритм декодирования работает сле­
дующим образом:
1. Поместить в ПО путь нулевой длины с весом 0. Пусть t^~l = 0. В
дальнейшем вектор t^~l используется для числа проходов декодера
через различные фазы.
2. Извлечь из ПО путь ѵ^~1 с наибольшим весом. Пусть
+ 1.
3. Если ф = п, возвратить кодовое слово Vq~1А т и завершить работу.
4. Если число допустимых потомков узла Vq 1 превышает количество
свободных ячеек в ПО, удалить из нее элемент с наименьшим весом.
5. Вычислить веса M ( hq,?/q_1) допустимых потомков
извлеченного
узла и поместить их в ПО.
6. Если іф > L, удалить из ПО все узлы
7. Перейти к шагу 2.
В дальнейшем под итерацией будет пониматься один проход этого алго­
ритма по шагам 2-7.
С точки зрения корректирующей способности параметр L имеет
тот же смысл, что и размер списка в списочном алгоритме Тала-Варди,
т.к. это значение является верхней границей для числа путей
рассмат­
риваемых декодером на каждй фазе ф. Шаг 6 гарантирует, что алгоритм
завершит свою работу за не более чем Ln итераций. Это является также
верхней границей для числа элементов, которые могут быть помещены
в ПО. Однако эксперименты показывают, что алгоритм может вполне
успешно работать и с намного меньшим размером Ѳ ПО. Шаг 4 гаран­
тирует, что ПО никогда не переполнится.
Существует множество различных подходов к определению весо­
вой функции для последовательного декодирования. В общем случае
она должна обеспечивать осмысленное сравнение путей
1 различных
длин ф. В [71] было предложено определить вес пути как
ѵ п -1
М ( ѵ І - 1) = Н(ѵф
0 - \ у % - 1) ~ Ш у Г і Щ и р 1 1 0
132
(8 .5 )
где
Ѣ ’І ~ \ уГ 1) = ma? i 4 r 1)K "-1|!/; r 1),
Ѵф
матожидание в (8.5) берется по случайным величинам, соответствующим
77—1
выходу канала, и щ
— вектор, использованный кодером.
В лучшем случае сложность такого алгоритма составляет
O (nlogn), в худшем случае — O (Lnlogn). Было [71] показано, что такой
подход позволяет значительно снизить среднюю сложность по сравне­
нию со списочным декодером Тала-Варди при незначительном ухудше­
нии корректирующей способности.
Недостатком этого метода является увеличение задержки декоди­
рования, которая к тому же оказывается случайной величиной.
8.3.
Усовершенствованные конструкции
Существенным недостатком полярных кодов является их низкое
минимальное расстояние. В частности, для кодов с ядром Арикана оно
составляет d = 0{л/п). В результате даже при декодировании по макси­
муму правдоподобия полярные коды уступают многим известным кодам
МППЧ и турбо-кодам.
8.3.1.
Полярные коды с CRC
Простым способом улучшить дистантные свойства полярных ко­
дов является добавление к данным перед кодированием их полярным
кодом некоторой контрольной суммы. В качестве таковой можно ис­
пользовать проверочные символы циклического кода, обнаруживающего
ошибки (cyclic redundancy check). Приемник, использующий списочный
декодер Тала-Варди, должен исключить из полученного списка кодовых
слов те слова, которые не удовлетворяют соответствующим проверочным
соотношениям [66]. Получаемые таким образом коды имеют корректиру­
ющую способность, сопоставимую с известными LDPC кодами.
Идея этого подхода основана на том наблюдении, что полярный
код содержит небольшое число ненулевых кодовых слов малого веса d.
Большая их часть не удовлетворяет проверочным соотношениям CRC.
При удачном выборе параметров все такие слова исключаются этими
дополнительными проверочными соотношениями, что приводит к коду
с большим минимальным расстоянием.
133
8.3.2.
Полярные подкоды
Д инам ически замороэюенные символы
Конструкцию полярных кодов можно обобщить, положив заморо­
женные символы равными не нулю, а каким-то линейным комбинациям
предшествующих символов, т.е.
к- 1
Щ. = ^ 2 UsVhs' 0 < i < n - k , j i e Т ,
(8.6)
s=О
где V — (п —к) х п матрица ограничений, причем ji — номер столбца,
содержащего последний ненулевой элемент г-ой строки. Предполагается,
что все ji различны. Символы с ненулевой правой частью в (8.6) на­
зываются динамически замороженными. Полярные коды с динамически
замороженными символами могут быть продекодированы с помощью ал­
горитма последовательного исключения и его аналогов, описанных вы­
ше. Единственное отличие состоит в процедуре обработки замороженных
символов, т.е.
^ _ ( Y2s=0 UsVtif
|a rg m a x u.
(иг^ 1
І£?
Ц Т,
где t{ — номер строки, последний ненулевой элемент которой содержится
в столбце г Е Т .
Рассмотрим (п = lm, k,d) код С с проверочной матрицей Н. Пусть
Ат = К
— матрица п х п поляризующего преобразования. Т.к. А т
обратима, любой вектор длины п может быть получен как результат
Cq-1 = Wq-1 A to применения поляризующего преобразования к подходя­
щему вектору Wq- 1. Изучим ограничения, которые должны быть нало­
жены на Wq- 1, чтобы результат его применения принадлежал коду С.
Эти ограничения задаются уравнением
= 0. Путем эле­
ментарных преобразований строк можно получить матрицу ограничений
V = QHAT
m , где Q — такая обратимая матрица, что последние ненулевые
элементы всех строк V расположены в различных столбцах, т.е. значе­
ния ji = max {t\Vij 7^0},0 < i < п —к, различны. Это дает возможность
декодировать произвольные линейные блоковые коды с использованием
методов декодирования, предложенных изначально для полярных кодов
[74]. Однако в общем случае корректирующая способность при этом ока­
зывается неудовлетворительной, т.к. размороженными оказываются мно­
гочисленные символы, передаваемые по ненадежным подканалам. Мож­
но показать, что расширенные примитивные коды БЧХ в узком смысле
134
в меньшей степени подвержены недостатку. На малых длинах они могут
быть весьма эффективно продекодированы с помощью вышеописанного
последовательного алгоритма.
Необходимо понимать, что перестановка столбцов проверочной
матрицы Н (т.е. переход к эквивалентному коду) может существенно
изменить матрицу ограничений V, в т.ч. множество замораживания. В
[74] описана структура перестановок столбцов проверочной матрицы ко­
дов БЧХ, обеспечивающая структуру множества замораживания с до­
статочно малой вероятностью ошибки декодирования методом последо­
вательного исключения. Более конкретно, в случае поляризующего пре­
образования на основе ядра Арикана проверочная матрица расширенно­
го примитивного (п = 2т, к , d) кода БЧХ в узком смысле должна быть
представлена в виде
=
1
.
to1
н
JТUо-у
у»
JсU
4су>1
х0
Кх о ~ 2
где п = 2т ,
хі
=
. . 4_Д
су»1
.
• хІ~ Ь
ijPj, (А), • • •, Р т - і ) — некоторый базис поля
GF(2m) и і = Y^=o
~ Разложение числа і по степеням 2. Для
получения матрицы ограничений необходимо представить элементы этой
матрицы в виде двоичных векторов-столбцов, домножить получившуюся
матрицу на А ^ и исключить линейно зависимые строки.
Пример 8.2. Рассмотрим расширенный примитивный (16,7,6) код БЧХ в узком
смвісле. Его проверочная матрица имеет вид
( 1
0
0
0
V0
1
1
1
1
1
1 1 1 1 1
2 3 4 5 6
4 9 3 2 7
8 27 12 10 1
3 2 9 4 6
1 1 1 1 1 1 1 1 1 \
7 8 9 10 11 12 13 14 15
6 12 13 8 9 27 14 11 10
1 18 15 15 12 8 10 8 12
7 27 14 12 13 10 11 9 8 )
Здесь элементы поля GF{24) представлены в виде целых чисел, которые получаются
подстановкой числа 2 вместо примитивного элемента п :о !4 + О! + 1 = 0.В частности,
число 3 следует интерпретировать как а + 1. Представив эту матрицу в двоичном
(I (X
виде, домножив на А х , где /Ц = (
)
, и исключив линейно зависимые строки,
135
Рис. 8.3. Декодирование полярных кодов и кодов БЧХ списочным
алгоритмом Тала-Варди
получим
0
0
0
0
0
0
0
1
0
1
( 0
0
0
0
0
ѵ =
0
0
0
I
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
Таким образом, замороженными
{12,10,9,8,6,4,2,1,0}.
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
оказались
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
символы
0
0
0
0
0
0
0
0
0
из
0
0
0
0
0
0
0
0
0
0 ^
0
0
0
0
0
0
0
ч
множества
Т
На рис. 8.3 представлены резулвтатві моделирования для полярнвіх
кодов и кодов БЧХ длины 64. Использовалось поляризующее преобра­
зование с ядром Арикана Видно, что при размере списка 1 (т.е. в случае
алгоритма последовательного исключения) полярные коды обеспечива­
ют наименьшую вероятность ошибки. Декодирование полярных кодов по
максимуму правдоподобия (ML) обеспечивается уже при L = 4. Но ес­
ли дополнительно увеличить размер списка, декодер Тала-Варди может
обеспечить декодирование кодов БЧХ почти по максимуму правдоподо­
бия. При этом их корректирующая способность в силу большего мини­
136
мального расстояния оказывается намного лучше, чем у полярных кодов
Арикана.
Полярные подкоды в узком смысле
Можно целенаправленно построить матрицу ограничений V, ко­
торая задавала бы код с достаточно большим минимальным расстоя­
нием и при этом избегала бы размораживания ненадежных символов.
Полярный (n , k , d ) подкод в узком смысле задается матрицей ограниче( Ѵ '\
ний V = ( у г, J , где V' — матрица ограничений некоторого (п, К , d) кода
С", называемого далее протокодом, V" — матрица, содержащая К — к
различных строк веса 1, причем единицы в ее строках расположены в
столбцах, соответствующих наименее надежным незамороженным сим­
волам4 кода С'. В качестве протокодов С ' в [74] предложено использовать
расширенные примитивные коды БЧХ в узком смысле.
Необходимо понимать, что при использовании алгоритма последо­
вательного исключения вероятность ошибки декодирования полярных
подкодов не может быть меньше по сравнению с полярным кодов с та­
кими же параметрами, построенным для того же канала. Однако при
использовании списочного и последовательного алгоритмов декодирова­
ния полярные подкоды обеспечивают значительное улучшение коррек­
тирующей способности.
Пример 8.3. Рассмотрим построение (16,6,6) полярного подкода кода БЧХ, пред­
ставленного в примере 8.2. В случае двоичного стирающего канала с вероятностью
стирания 0.5 параметры Бхаттачарьи (вероятности стирания) битовых подканалов
поляризующего преобразования Арикана равны Z w = (0.999. 0.992, 0.985,0.77,0.96,
0.65, 0.53, 0.1, 0 9 , ML, СХ35, 3.7-К Г 2, 023,1.5 • К Г 2, 7.8 • ІО-3, 1.5• ІО”5). Здесь подчерк­
нуты значения, соответствующие замороженным символам. Видно, что символ из не
заморожен и соответствует наибольшему значению параметра Бхаттачарьи. Таким
образом, для получения полярного подкода необходимо наложить дополнительное
условие из = 0.
Полярные подкоды в широком смысле
Полярный (п, к) подкод в широком смысле задается матрицей огра­
ничений V = f ^ j , где V — матрица ограничений классического (п, К)
полярного кода С с множеством замораживания Т и V — (К — к) х п
матрица ограничений, обеспечивающая исключение из С кодовых слов
малого веса. Можно показать, что в случае ядра Арикана и некото4Под надежностью символа здесь понимается надежность соответствующего под­
канала.
137
рых других ядер [13] все ненулевые кодовые слова минимального веса
Cq- 1 =
: wt(cQ-1 ) = d имеют по крайней мере один символ
щ = 1, причем вес соответствующей строки матрицы А т также равен
d. Для исключения таких слов необходимо наложить линейные огра­
ничения, которые включали бы все (или почти все) такие символы щ.
Эти ограничения динамического замораживания должны быть наложе­
ны на символы с наименьшими возможными номерами, чтобы списочный/последовательный декодер могли их учесть на ранних этапах деко­
дирования, снижая таким образом вероятность потери правильного пу­
ти. В связи с этим в [70] было предложено налагать ограничения динами­
ческого замораживания на t < К —к символов щ, г ф J 7, с наибольшими
возможными значениями г, такими что вес соответствующих строк мат­
рицы А т равен d. При отсутствии достаточного числа таких строк могут
быть взяты строки большего веса. Собственно коэффициенты в уравне­
ниях (8.6) динамического замораживания могут быть выбраны как дво­
ичные равновероятные (псевдо)случайные значения. Соответствующие
замороженные символы называются динамически замороженными сим­
волами типа А.
Кроме того, динамически замороженными могут быть выбраны
s = К — к — t наименее надежных символов, не входящих в Т и не
использованных в качестве динамически замороженных символов типа
А. Соответствующие коэффициенты ограничений динамического замо­
раживания также могут быть выбраны (псевдо)случайным образом. Та­
ким символы называются динамически замороженными символами типа
Б. Их использование позволяет уменьшить среднюю вероятность непра­
вильных путей в списочном декодере Тала-Варди, что снижает вероят­
ность потери декодером правильного пути. Данная конструкция поло­
жена в основу процедуры кодирования в стандарте мобильной связи 5G.
Пример 8.4. Рассмотрим построение (16,6) полярного подкода в широком смысле с
ядром Арикана. Пусть F = {0,1,2,4,8}. Незамороженные символы соответствуют
строкам матрицы А\ веса не менее 4. Пусть t = 4. Тогда в качестве динамически
замороженных символов типа А следует выбрать символы с номерами 12,10,9,6.
Используя значения параметров Бхаттачарьи, приведенные в примере 8.3, получим,
что в качестве символа типа Б следует выбрать щ. В результате множество замора­
живания для полученного кода совпадает с таковым для полярного подкода в узком
смысле, приведенного в примере 8.3. Однако коэффициенты в ограничениях дина­
мического замораживания в данном случае могут быть выбраны псевдослучайным
образом.
138
Хотя минимальное расстояние получаемых таким образом кодов
может быть хуже, чем в случае полярных подкодов в узком смысле, на
практике полярные подкоды в щироком смысле демонстрируют лучшую
корректирующую способность, по крайней мере в области малых отноше­
ний сигнал/шум. Более того, существует возможность целенаправленно
подбирать коэффициенты в ограничениях динамического заморажива­
ния с целью явной минимизации числа кодовых слов малого веса в по­
лучаемом таким образом коде [72].
8.4.
Полярные коды с ядром Арикана
Наибольшее изученным классом полярных кодов являются коды с
ядром Арикана. Рассмотрим более подробно методы их декодирования
и построения.
8.4.1.
Декодирование
Точные выраэюения
В случае ядра Арикана выражение (8.3) может быть переписано
как
щ
W
> о і%
)= X
< Л ( А е + < +1і2/02;е- 1) < Л ( < +1іА о '1)
«2*+1=0
г(г)
.2і
2г+1і ,2а—Ъ
2г+11 2А—Ъ '(0
f “Ѵ ПАА
+<+1іАА)иУЛКЛ!/оГ)
где 0 < Л < га,
еи
0 обозначают, соответственно, подвектора а q с
четными и нечетными индексами. Удобно ввести логарифмические от­
ношения правдоподобия
-1 ,гф-1 ) = In Wx ^u° ’°^°— - Видно, что
- 1)
4 2<+1)(і/о2Л- 1. А ) =
2г—1
2г—1
2А—1' А)
2г—1
2 1
w \ - i ( uo , e ' + v% o ^ u2i + o\y£e М Щ Д К р .о іг /о ,» 0
= log
2г—1
2г—1
2А—1' Д) ,2і—1
2Х- Ъ
іг А К У
+
+ і І г С е Щ Щ Ц Д І Щ , і І г / о А 1)
2г—1'
.2А—1 7/2г—І
= ( - ь ^ іл - і Оо
Ѵ 1' ^ : 1 + < о ‘ ) + і л - і « о ’ “ О,о )• (8-7)
.
—
'
139
Преобразования, аналогичные тем, которые были использованы в п.
7.2.2, приводят к
0х-1 и°^ х) = 2tanh 1 tanh
4 2i)(y0
tanh
0 —1 и 0і—1 + и 0і-1
0,o
0,e
(У0,е
2 Л-1
Мб
?/2г-1 , 0і-1
:
2 ь Л-1(у0,е , u0,e + u 0,o
(8.8)
Д екодер м и н и м ум -сум м а
Описанные выше вычисления с использованием вероятностей или
нелинейных функций подвержены численным проблемам и сложны в ре­
ализации. В связи с этим получил распространение следующий прибли­
женный подход, использование которого приводит к незначительному
ухудшению корректирующей способности.
Пусть
R \ 1)(v0 1, уГ - l ) = max W л(v^ 1\y‘0X 1).
v.2х-1
Определим модифицированные логарифмические отношения правдопо­
добия
S(i)(vi-1 iM -1) = об)(vi-1 0 У0х-1 ) об)(vi-1 i у0х-1 )
(v0 \У0 ) = R (v0 ,0 ,У0 ) - R (v0 , М 0
).
ьл
(8.9)
Можно заметить, что
RA)(v0>У°Х *) = R \
1)(v0 1. уГ *) + Т(S7 (vo 1ІУ°Л 1)>t'i)'
(8Л0)
где функция штрафа определена как
Т(S ,v)
0,
если sgn(S) = ( - 1)v
—\S \,
иначе.
Видно, что
П \ г\ѵо,Уо
(i) v0i+1 n.N- 1
1) = m a x ( R % l 1 (v%+1 @vll+1,y$ 1 + R Л1
u0,o
’ ’ УК
2
v2i+1
4 2,+1)(*’02,+1|%N
140
б + 4 - 1 б ’о б 1’^ X
1I 5
2
где ІѴ = 2л, 0 < Л < т , и начальные значения для рекурсии задаются
R {o \ b , y j ) = b g W0(0) {% j}, b £ {0,1}. Из (8 .9) получим
S {? \ v *
l \ y f г) = m ax(J(0) + К(0), J ( l) + -K'(l))—
m ax (J(l) + K ( 0), J ( 0) + K ( 1))
= max( J(0) —J( 1) + K ( 0) — K{ 1), 0) —
max(AT(0) —K{ 1), J ( 0) —J ( 1))
S 'f+1)(«gi |y?-1) =Д«2>) + K(0) - J(«2i +1) - K(1)
2 Л~ 1— 1
2г-1'
2г—1
где J (c) = 4 -1 « ® . 0,e
), к (с) =
Ѳ ц0,о
' 1%
Заметим, что
I
ДО) - .7(1) = а =
2г—1
2г—1
0,е ѳ д0,о
1 2Л—1
,(
Н у0,о х 2/2л- і
)
И
К (0 ) -
К (1 ) =
ь = 5®
,( ^ - 4 ^ - 1 )
Рассматривая всевозможные комбинации знаков величин а, 6, получим
^л2г)(ѵог-1І2/оЛ_1) =Q(a,b) = sgn(a)sgn(6)min(|a|,|fc|),
(8.11)
^л2 Ш )К 2гІ2/о2Л_1) = Р Ы і ^ Ь ) = ( - 1 Г а + 6.
(8.12)
Начальные значения для этой рекурсии задаются Sg0\ y i ) = log
Величины _й(г^>, Уо_1) = Рт (ѵоіУо™-1 ) могут использоваться для выбора
наилучших путей в описанном выше списочном алгоритме Тала-Варди.
Эти же величины используются и в последовательном алгоритме деко­
дирования.
Выражение (8.11) можно интерпретировать как нахождение наи­
менее надежного из символов, комбинируемых отдельно взятым ядром
Арикана. Выражение (8.12) схоже с правилом разнесенного приема, т.е.
комбинированием нескольких независимых оценок одного и того же сим­
вола.
8.4.2.
Оценка надеж ности подканалов
Напомним, что классическая конструкция полярных кодов предпо­
лагает построение множества замораживания Т , включающего в себя но­
мера ненадежных подканалов поляризующего преобразования. Надеж­
ность подканалов может быть охарактеризована их параметрами Бхаттачарьи, вероятностями ошибки на бит или пропускными способностями.
141
Ниже представлены некоторые методы расчета этих величин. От­
метим, что при использовании всех описанных ниже методов сложность
расчета надежности подканалов составляет О(п) операций.
Параметры Б хат т ачаръи
Ариканом доказано, что параметры Бхаттачарьи Z m^ = Z ( W m )
битовых подканалов удовлетворяют
Zm,2i ^.‘ZZm—i j
Z,m ,2 i+ l
Z m_ i ^
=zl
(8.13)
(8.14)
причем равенство в (8.13) имеет место только в случае двоичного сти­
рающего канала. Эти выражения могут быть использованы для постро­
ения полярных кодов, оптимальных для двоичного стирающего канала.
Однако для иных каналов эти выражения крайне неточны.
Оценки для ухудш енны х и улучш енны х каналов
Главной сложностью на пути точного расчета параметров бито­
вых подканлов является то, что мощность их выходных алфавитов
Y х {0,1} , 0 < %< 2 , растет дважды экспоненциально с числом сло­
ев А поляризующего преобразования. В связи с этим в [65] было пред­
ложено для каждого такого подканала рассмотреть его “ухудшенную” и
“улучшенную” версии с выходным алфавитом фиксированной мощности
/і . Соответствующие функции переходных вероятностей могут быть по­
строены со сложностью 0 (/і 2 log /і ), что позволяет получить верхние и
нижние оценки для пропускной способности, параметра Бхаттачарьи и
вероятности ошибки битовых подканалов.
Гауссовская аппроксимация
Полярные коды являются линейными. При использовании симмет­
ричного по входу канала вероятность ошибки декодирования линейного
кода не зависит от передаваемых кодовых слов. В связи с этим для целей
анализа можно ограничиться случаем нулевого кодового слова. Можно
предположить, что логарифмические отношения правдоподобия, задава­
емые (8.7)—(8.8), распределены по нормальному закону, причем их дис­
персия равна удвоенному матожиданию. Это предположение справедли­
во для L ^ \ y ) в случае канала с аддитивным белым гауссовским шумом.
В общем случае распределение Ь ^ \ о , у ^ -1 ) весьма далеко от нормаль­
ного. Но несмотря на это, такая аппроксимация дает удивительно точные
результаты.
142
С учетом указанных допущений, получим, что матожидания
М у'2а - 1 L f ( 0 , Y ^ )
1Л
доподобия равны
г (2і) _
=
, 0 < і < 2Л 1 логарифмических отношений прав-
= МС 0 \ = ф - і
Л -1
(г)
СЛ
= 2£ Л-1’
.(0)
2
где М L (о) =
= 2 /^ и
(2 Ш )
ф(х) =
л/4тгж
(-(
- р - П
(8.15)
4-1
(8.16)
ГОО
•/—о ta n h ^ e ( 4Ж) du,
О О
2
’
Ж> О
ж = 0.
Можно заметить, что функция 'Е(х) является достаточно гладкой. С по­
мощью метода наименьших квадратов была найдена аппроксимация
0.9861ІЖ —2.31515
х > 12
ж(9.0047 • 10~6х + 0.76943) - 0.95068,
3.5 < ж < 12
ж(0.062883ж + 0.36784) - 0.16267
1 < ж < 3.5
ж(0.22024ж + 0.06448)
иначе.
1 - 3
І(ж)
<
(8.17)
Вероятность ошибки в каждом подканале может быть вычислена как
P .^ Q N
d i i / 2 ) , 0 < i < 2“ - 1.
(8.18)
Распределение Л О П П для декодера м и н и м ум -сум м а
Можно показать, что при передаче нулевого кодового слова по ка­
налу без памяти модифицированные логарифмические отношения прав­
доподобия S '^ O j Yq2 -1 ), задаваемые (8.11)—(8.12), имеют функции рас­
пределения F ^ \ x ) , задаваемые
2 ^Ф)і ((„\(л
Ж) ( 1 - сФ)
^ і (( - Ж)),
Л2і)(т)_
\Х) -
1 п Лі ) / ч
,Лі) /
ччО
х <0
х >0
(8.19)
’°°
F f i+1)[x) =
F t i d - y)d F td v),
—
(8.20)
О О
где Fq° \ x ) — функция распределения ЛОПП на выходе канала [44]. Ис­
пользование этих формул требует дискретизации множества значений
ЛОПП, причем требуемое число уровней дискретизации растет с длиной
кода.
143
Рис. 8.4. Сравнение полярных и МППЧ кодов
8.4.3.
С равнение кодов
На рис. 8.4 представлены результаты моделирования для полярных
подкодов и кодов с малой плотностью проверок на четность (МППЧ,
LDPC) из стандарта мобильной связи 5G со скоростью 1/2 и длина­
ми около 2048. Видно, что на малых отношениях сигнал/шум поляр­
ный подкод в широком смысле обеспечивает лучшую корректирующую
способность по сравнению с полярным кодом с CRC и полярным под­
кодом в узком смысле. Последний при d = 32, L = 2048 демонстрирует
эффект “полки”, состоящий в значительном замедлении скорости убы­
вания вероятности ошибки. Однако при L = 2048 “полка” проявляется
уже у полярного подкода в широком смысле ввиду его недостаточного
минимального расстояния. При L = 2048, E^/N q > 1.8 дБ наилучшую
корректирующую способность обеспечивает полярный подкод в узком
смысле с d = 48. При L = 32 полярный подкод в широком смысле по­
казывает примерно такую же вероятность ошибки, как и код МППЧ,
декодер которого выполняет не более 20 итераций. Дальнейшее увели­
чение числа итераций (т.е. сложности) в декодере кода МППЧ приво­
дит к крайне незначительному улучшению корректирующей способно­
сти. При этом увеличение размера списка L в случае полярного подкода
приводит к значительному снижению вероятности ошибки декодирова­
ния. Результаты для некоторых других длин представлены на рис. 10.8.
144
У ш Ч Т ч
мг 114 G ВСл2 (8256.4 224) £20 итѳр
мг пч G ВС 2 (8256.4 224 £40 итер
мг пч G ВСл2 (8256.4 224) £60 итѳр
п« лярнЬІЙПСдкод вш рокомсм ысле (81£2,40Э6), t=13.
п< І:І|Ч ІИ111-1КОД вш рок. мсм к:«к .«V 2 40 96) 1 14
Поі І|'НІ и IlliІКОД )ШИ и ,„ >:мі СМИ .414 4096) t=14 I
ІИ
:и
(а)
(b)
Рис. 8.5. Сложность декодирования полярных и МППЧ кодов:
а — п « 2048; b — п « 8192
Видно, что на малых длинах полярные подкоды демонстрируют значи­
тельно лучшую корректирующую способность по сравнению с кодами
МППЧ, однако на больших длинах на больших отношениях сигнал; шум
коды МППЧ имеют значительное преимущество. При достаточно боль­
шом размере списка списочный и последовательный декодеры полярных
кодов обеспечивают декодирование почти по максимуму правдоподобия.
При недостаточном минимальном расстоянии возможно возникновение
эффекта “полки”, который может быть устранен увеличением конструк­
тивного расстояния полярного подкода в узком смысле или параметра
t полярного подкода в широком смысле. Это, однако, может потребо­
вать увеличения L на стороне декодера, что влечет за собой увеличение
сложности и объема памяти декодера.
На рис. 8.5, а представлена средняя сложность последовательно­
го декодирования полярных подкодов [71], а также средняя сложность
алгоритма распространения доверия декодирования кода МППЧ. Эти
результаты были получены для тех же кодов, что и на рис. 8.4. Видно,
что на больших отношениях сигнал/ шум полярные подкоды имеют мень­
шую сложность декодирования и лучшую корректирующую способность
по сравнению с кодом МППЧ. Как видно из рис. 8.5, b и 10.8, Ь, при
увеличении длины кода при сопоставимой корректирующей способности
декодирование кодов МППЧ оказывается заметно проще по сравнению
с полярными подкодами.
Необходимо также учитывать, что задержка последовательного де­
кодирования значительно превышает таковую для случая алгоритма рас­
145
пространения доверия. Несколько меньшую задержку имеет списочный
алгоритм Тала-Варди, однако его сложность равна 0 (L n lo g 2n). В на­
стоящее время практически приемлемыми считаются значения L < 32.
У пражнения
1. Постройте полярный код (32,16) для двоичного стирающего канала с вероятно­
стью стирания 0.5.
2. Продекодируйте методом последовательного исключения в построенном выше
коде произвольный двоичный вектор веса 5, считая, что он получен на выходе
двоичного симметричного канала.
3. Докажите формулы (8.19)-(8.20).
146
Часть III
Коды на графах
147
9. Сверточные коды
9.1.
9.1.1.
Конструкция кодов
Основные понятия
Сверточные коды нашли широкое применение в телекоммуникаци­
онных системах благодаря простоте своей реализации. Однако в настоя­
щее время они постепенно вытесняются другими методами помехоустой­
чивого кодирования, обладающими большей корректирующей способно­
стью.
Древовидным (щ, ко)-кодом называется отображение на себя мно­
жества полубесконечных последовательностей элементов из ¥ q такое, что
если для любого М первые Мко элементов двух полубесконечных после­
довательностей совпадают, то первые М щ элементов отображений этих
последовательностей также совпадают [1, 10]. Кодер древовидного кода
может хранить в своей оперативной памяти W последних информаци­
онных символов. Эта величина, т.е. объем памяти кодера, называется
длиной кодового ограничения. Частные случаи древовидных кодов ха­
рактеризуются наличием различных комбинаций следующих свойств:
1. Конечность длины кодового ограничения.
2. Постоянство во времени. Если две различные входные последова­
тельности совпадают во всем, за исключением некоторого временно­
го сдвига на целое число кадров, то соответствующие им выходные
последовательности также совпадают во всем, за исключением вре­
менного сдвига на то же число кадров.
3. Линейность. Если C{d\) и C(d2) — кодовые последовательности, со­
ответствующие информационным последовательностям d\ и d2, то
Ѵа, (3 e Fq : С {adi + Pd2) = aC{di) + (3C(d2).
4. Систематичность. Систематическим древовидным кодом называется
код, в котором каждый кадр информационной последовательности
составляет первые ко символов первого из тех кадров кодовой после­
довательности, на которые влияет данный информационный кадр.
Определение 9.1. Линейный постоянный во времени древовидный
(по, ко)-код с конечной длиной кодового ограничения называется свер­
точным кодом.
149
Рис. 9.1. Кодеры сверточного кода:
а — несистематический; b — рекурсивный систематический
Сверточный код может быть порожден с помощью линейных регистров
сдвига (фильтров с конечным импульсным откликом), как это показано
на рис. 9.1, а.
Кодер сверточного кода является конечным автоматом и может
быть описан с помощью графа переходов, пример которого приведен на
рис. 9.2, а. Заметим, что состояния помечены векторами символов, хра­
нящихся в ячейке регистра сдвига, т.е. поданных на вход сверточного
кодера за последние т тактов. Однако при реализации декодера намно­
го удобнее использовать решетчатую диаграмму, которая представляет
собой временную развертку диаграммы переходов. Пример ее приведен
на рис. 9.2, Ь. Ребра, соединенные с узлом решетки и находящиеся слева
от него, называются входящими, а находящиеся справа — исходящими.
Для каждого ребра решетки указан кадр, появляющийся на выходе коде­
ра при срабатывании соответствующего перехода. Узлы решетки будем
нумеровать парами (s,i), где s — состояние кодера и і — номер кадра.
При рассмотрении сверточных кодов конечной длины решетка должна
быть усечена по временной оси. При этом, если кодер после обработки
информационной последовательности переводится в нулевое состояние,
из решетки должны быть удалены все ребра, ведущие в недостижимые
состояния (сравните рис. 9.4 и 9.2, Ь). Таким образом, всякое кодовое сло­
во сверточного кода представляет собой путь в решетке, начинающийся
в нулевом состоянии в нулевой момент времени и оканчивающийся так­
же в нулевом состоянии в момент времени, соответствующий окончанию
обработки кодируемой последовательности.
150
0 /0 0
(a)
(b)
Рис. 9.2. Описание сверточного кода с G (D ) = (D 2 + D + 1, D 2 + 1):
а — граф переходов; b — решетка
9.1.2.
П орождаю щ ая матрица
В общем случае операцию кодирования, реализуемую регистром
сдвига, можно описать как c(D) = u(D)G(D), где u(D) — вектор размер­
ности Ад, элементами которого являются формальные степенные ряды
(при практической реализации — многочлены), коэффициентами кото­
рых являются кодируемые символы из ¥ q, G(D) — Ад х щ порождающая
матрица, содержащая передаточные функции (многочлены) фильтров.
При этом длина кодового ограничения определяется как12
W =
max degGji(D).
J
1< г < « о
В реальных системах связи данные передаются в виде блоков ко­
нечной длины, т.е. сверточный код рассматривается как линейный бло­
ковый. Для упрощения декодирования и снижения вероятности ошибки
целесообразно обеспечить приведение кодера в нулевое состояние после
окончания передачи блока данных2. Для этого в несистематический ко­
дер необходимо подать Ад maxdeg£...(£>) нулевых битов, а в рекурсивный
систематический кодер — столько же битов, равных выходу цепи обрат­
ной связи кодера. В этом случае выход фильтра с конечным импульсным
откликом может быть представлен как линейная свертка входной после1Некоторыми авторами она определяется как максимальное число символов кодо­
вой последовательности, которые могут измениться при изменении одного символа
информационной последовательности, что эквивалентно W = 1 + т а х г:/-deg Gr,{D).
2Иногда это сделать невозможно в силу каких-либо внешних ограничений. Все
описываемые далее алгоритмы применимы и в этом случае после тривиальных мо­
дификаций.
151
L/00
'0/10
0/00
Рис. 9.3. Диаграмма переходов катастрофического кодера
довательности и импульсного отклика (передаточной функции) филь­
тра, что и объясняет название кодов.
Также как и в случае линейных блоковых кодов, существует мно­
жество различных порождающих матриц одного и того же сверточного
кода. Они связаны друг с другом соотношением G'(D) = T (D )G (D ),
где T(D) — обратимая над полем рациональных функций FJ[D]] матри­
ца. В частности, порождающая матрица может быть приведена к виду
G'(D) = (I\A(D)), где I — единичная матрица и A(D) — матрица рацио­
нальных функций. Такое представление позволяет построить системати­
ческий кодер сверточного кода. Его реализация требует использования
фильтров с бесконечным импульсным откликом, как показано на рис.
9.1, b (G'(D) = (1, IP+1D+1))- Иногда такие коды называют рекурсивны­
ми систематическими сверточными кодами. Такое название не вполне
корректно, так как точно такое же множество кодовых последователь­
ностей может быть получено и с помощью несистематического кодера.
Пример 9.1. Рассмотрим сверточный код с порождающей матрицей G(D) = (D2 +
D + 1, D2 + 1). Домножим ее слева на обратимую матрицу T(D) = (D + 1). Это
приведет к G'(D) = (D3 I I, D3 + D2 + D + 1). Видно, что длина кодового ограниче­
ния увеличилась до 3. Однако если на вход такого кодера подать полубесконечную
последовательность, задаваемую рядом u(D) = YGiLoD1 = руту, на выходе коде­
ра появится лишь последовательность конечного веса, которую можно описать как
(D 2+ D-\-1, D 2-\ I). Отметим, что эта же последовательность появилась бы на выходе
кодера исходного кода при подаче на вход последовательности u'(D) = 1 + 0D + . . . .
На рис. 9.3 представлена диаграмма переходов модифицированного кодера. Видно,
что около состояния “111” присутствует цикл (петля), характеризующийся нулевым
весом выходной последовательности при ненулевом весе входной последовательно­
сти.
Поведение кодера, при котором некоторые входные последователь­
ности бесконечного веса отображаются на кодовые последовательности
конечного веса, является крайне нежелательным с практической точки
152
зрения, так как при передаче по зашумленному каналу единственная
ошибка декодера в оценке последовательности переходов может приве­
сти к бесконечному числу ошибок в оценке информационной последова­
тельности. Поэтому такие коды (правильнее сказать, кодеры или порож­
дающие матрицы) носят название катастрофических. Они в некотором
смысле противоположны рекурсивным систематическим кодерам, кото­
рые отображают информационные последовательности конечного веса
на кодовые последовательности бесконечного веса. Такое поведение, на­
против, оказывается полезным с практической точки зрения (см. главу
13).
Для того, чтобы понять природу катастрофических кодов, введем
понятие правой обратной матрицы G~1(D) : G(D)G~1(D) = I. Правая
обратная матрица существует, если исходная матрица G(D ) является
матрицей полного ранга. Отметим, что правая обратная матрица совпа­
дает с обратной, если G(D) является квадратной обратимой матрицей.
В общем случае G~1(D) является прямоугольной матрицей.
Если c(D) соответствует кодовой последовательности сверточного
кода с порождающей матрицей G(D ), то в отсутствии ошибок инфор­
мационная последовательность может быть восстановлена как u (D ) =
c(D)G~1(D) = u(D)G(D)G~1(D). Отсюда видно, что c(D) может иметь
конечный вес, a u{D) — бесконечный, только если G~1(D) содержит ра­
циональные элементы. Таким образом, доказана
Т еорем а 9.1. Порождающая матрица G(D) не является катастро­
фической тогда и только тогда, когда ее правая обратная G~1(D) со­
держит только многочленные элементы.
Для (2 ,1)-сверточных кодов это условие сводится к требованию
взаимной простоты порождающих многочленов. Как показывает пример
9.1, неудачное преобразование G(D) = T(D)G(D) некатастрофическо­
го кодера может привести к катастрофическому кодеру. Очевидно, что
(T (D )G (D ))~1 = G~1(D )T~1(D). Если G(D) соответствует некатастро­
фическому кодеру и T(D) — обратимая квадратная матрица, то для
того, чтобы исключить появление рациональных элементов в G~l {D),
достаточно исключить их наличие в T ~ 1(D). В соответствии с правилом
Крамера, это достигается, если detT (D ) e F 9\{0}. Поэтому сверточ­
ные кодеры, соответствующие порождающим матрицам G(D) и G(D ),
называются эквивалентными, если G(D) = T(D)G(D) и detT (D ) = 1.
153
9.1.3.
Весовые свойства сверточных кодов
Для оценки корректирующей способности сверточных кодов необ­
ходимо оценить число кодовых последовательностей различного веса.
Будем считать, что всякая кодовая последовательность соответствует по­
следовательности переходов кодера, начинающейся и заканчивающейся
в нулевом состоянии.
Каждый переход между состояниями кодера сопровождается по­
рождением по кодовых символов. Всякое состояние г кодера можно оха­
рактеризовать многочленом
= X ^ ( D ) = J 2 j x ijDi, Где Ху равно
числу путей с выходной последовательностью веса j, ведущих в это со­
стояние из начального состояния. Так как нас интересуют пути, начи­
нающиеся и заканчивающиеся в нулевом состоянии кодера, необходимо
расщепить это нулевое состояние на два подсостояния, одно из которых
(с номером 0) будет начальным (т.е. возможны переходы из него, но не
в него), а другое (с номером qw : где W — длина кодового ограничения)
— конечным (т.е. возможны переходы только в него). Петля, соответ­
ствующая переходу из начального состояния в него же, должна быть
отброшена. Это позволяет исключить из рассмотрения как последова­
тельности, начинающие отличаться от нулевой не в начальном кадре,
так и последовательности, образованные конкатенацией нескольких ко­
довых последовательностей. Имеет место равенство
(9.1)
keSi
где Si — множество состояний, из которых возможен переход в состо­
яние і, и wj-i — вес последовательности, порождаемой при переходе из
состояния к в состояние г. Система уравнений (9.1) может быть разре­
шена в поле рациональных функций с помощью стандартных методов
линейной алгебры. При этом удобно выразить ее решение через пере­
менную
Передаточная функция сверточного кода определяется как
T(D) = —
^ {0) . Коэффициенты ее разложения в ряд Тейлора в окрест­
ности нуля задают количество кодовых последовательностей различного
веса. Степень младшего члена этого ряда называется свободным рассто­
янием dCB сверточного кода.
154
Пример 9.2. Рассмотрим код с диаграммой переходов, представленной на рис. 9.2, а.
Имеет место система уравнений
_у(10) = D2X (°°) + D ° X ^
Х (11) =
Х (01) =
j^ (1 0 0 )
_
D X {10) +£>Х(11)
D X {10)+ D X {U)
j j 2 j^ (0 1 )
Для удобства номера состояний здесв приведены в двоичной системе счисления.
Состояние 00, обозначенное как началвное на исходной диаграмме переходов, было расщеплено на два состояния, одно из которых (100) является конечнвш (по­
глощающим). Заметим, что переход из состояния 00 в него же, имевший место на
исходной диаграмме, здесв не учтен. Решая эту систему методом Гаусса, получим
х (іоо) = _ g _ X (°°), те T(D) =
= D5 + 2D6 + 4D 7 + 8D8 + .... Таким образом,
существует единственная последователвноств переходов, дающая кодовую последо­
вательность веса 5, две последовательности, дающие кодовые последовательности
веса 6 и т.д. Визуальный анализ решетки на рис. 9.2, b подтверждает этот вывод.
Однако для анализа вероятности ошибки декодирования требует­
ся более детальная информация о коде. Помимо сведений о количестве
кодовых последовательностей различного веса, необходимо также знать
веса соответствующих им информационных последовательностей. Для
этого перепишем (9.1) как
X® =
X ^ D WkiN Vki,i = 1..qw ,
(9.2)
kGSi
где Ум — вес информационной последовательности, вызывающей пере­
ход из состояния к в состояние г. Проделав далее те же действия, полу­
чим ряд T ( N , D ), коэффициенты которого задают количество кодовых
последовательностей различного веса, порождаемых информационными
последовательностями различного веса. Заметим, что исходная переда­
точная функция получается как T{D) = T(1,D).
Пример 9.3. Продолжим рассмотрение предыдущего примера. Модифицированная
система уравнений имеет вид
Х (10) = N D 2X m + N D ° X m
Х (11) = N D X {10) + N D X {n)
Х т = D X m + D X {n)
j^ (1 0 0 )
_
j j 2 j^ (0 1 )
Передаточная функция имеет вид T( N, D) =
= ^ D 5 + 2N 2D 6 + 4N 3D 7 +
8N 4D8 + .... Визуальный анализ решетки показывает, что кодовая последователь­
ность веса 5 действительно получается при подаче на вход кодера единственного
ненулевого бита.
155
Таблица 9.1
П орождаю щ ие многочлены сверточных кодов со скоростью
1/2
Кодовое ограничение W
2
3
4
5
6
7
8
9
10
11
12
13
я (Г)
5
15
23
53
133
247
561
1167
2335
4335
10533
21675
92(D)
7
17
35
75
171
371
753
1545
3661
5723
17661
27123
dcB
5
6
7
8
10
10
12
12
14
15
16
16
В противоположность кодам БЧХ, для которых существуют про­
стые методы построения, обеспечивающие гарантированное минималь­
ное расстояние, практически все известные хорошие сверточные коды
были найдены переборными методами на ЭВМ. В табл. 9.1 представ­
лены порождающие многочлены некоторых сверточных кодов со скоро­
стью 1/2 [10]. Многочлены представлены в виде восьмеричной битовой
маски, т.е., например, 15 соответствует 1 + D 2 + D 3.
9.2.
Методы декодирования
При рассмотрении методов декодирования ограничимся случаем
кодов со скоростью R = 1/по, хотя все рассматриваемые ниже методы
применимы и в более общем случае. При описании алгоритмов декоди­
рования будем обозначать как Xi(s', s), 0 < i < щ , і-ый кодовый символ,
порождаемый кодером при переходе из состояния s' в s.
9.2.1.
Алгоритм Витерби
Рассмотрим задачу декодирования сверточных кодов. Она может
быть сформулирована как поиск кодовой последовательности (или со­
ответствующей ей информационной последовательности), являющейся
наиболее правдоподобной для принятой последовательности сигналов
[1, ю].
156
принятая последовательность:
00
01
10
00
00
00
Рис. 9.4. Пример работы алгоритма Витерби в метрике Хэмминга
Предположим, что принятый сигнал представим как
Уіпо i j = сіщ + j 4“ б'ШгГі j , 0 < j <
tlq,
0 < i < L,
где сі — переданный сигнал, e% — ошибка. Эта модель применима как
в случае двоичного симметричного канала (тогда гц,С{,е{ G G F (2)) с
переходной вероятностью р < 1/2, так и в случае аддитивного Гаус­
совского канала с двоичной амплитудной модуляцией (в этом случае
сі G { —\fWSi VKs} , e?; ~ J\f(0, <72)). Декодирование по максимуму прав­
доподобия состоит в поиске кодового слова, ближайшего к принятой по­
следовательности в метрике Хэмминга или Евклида. Эту задачу можно
переформулировать как поиск в решетке пути с минимальной метрикой,
начинающегося в нулевом состоянии в начальный момент времени, за­
канчивающегося в нем же в конечный момент времени L. Каждый путь
можно также охарактеризовать последовательностью переходов между
состояниями кодера S = (so, s i , . . . , s l ). П од метрикой пути понимается
расстояние между кодовым словом, соответствующим данному пути, и
принятой последовательностью, т.е.
t-1
Q l (S) = y i d ( i , S i , s i+i),
г=0
где L — число кадров, образующих кодовое слово, d(-) — используемая
функция расстояния, и d(i,s',s) =
1 d{rino+j,Xj(s',s)) — метрика
і-го ребра решетки на данном пути, соединяющего узлы (s', г) и (s, г + 1).
Видно, что Qt+i(S) = Qt(S) + d(t + 1, st , st+1 )
В решетке существует множество путей, причем эти пути могут
расходиться и сходиться. Ясно, что если имеются два пути (с'|с) и (с"\с)
157
с общим хвостом, оптимальным может быть только тот из этих путей,
который имеет меньшую метрику первой части. Это дает возможность
воспользоваться принципом динамического программирования, который
лежит в основе алгоритма Витерби. Под метрикой Qst узла (s, t) решет­
ки будем понимать наименьшую из накопленных за t переходов метрик
путей, начинающихся в узле (0,0) и входящих в узел (s, t). Все пути, кро­
ме имеющего минимальную метрику, не могут быть решениями задачи
декодирования и потому должны быть отброшены. Оставшийся путь на­
зывается выжившим. Таким образом, в каждый узел решетки входит
не более чем один выживший путь. Этот выживший путь может далее
разветвляться на пути, ведущие в другие состояния. Декодирование за­
канчивается вычислением метрики Qод конечного состояния (0,L). Ре­
шением задачи декодирования является единственный выживший путь,
входящий в это состояние. Заметим, что на каждом шаге этого алго­
ритма хранится информация о 2W путях, из которых 2 ^ _1) объявля­
ются выжившими. Для хранения выживших путей каждому узлу (s,t)
решетки необходимо приписать число s', указывающее на предыдущее
состояние в выжившем пути. Однако длина хранимых выживших путей
постоянно возрастает, что может быть неудобно при реализации. Поэто­
му, как правило, хранят информацию только о P W последних переходах
на каждом из путей, где Р равно 5 или 6. Величина P W носит название
ограничения длины при декодировании. При этом на г-ом шаге алгорит­
ма Витерби, кроме P W начальных, принимается окончательное реше­
ние относительно символов кодового слова, образующих кадр %— PW .
В качестве таковых должны быть выбраны символы пути с наименьшей
текущей накопленной метрикой.
Таким образом, алгоритм Витерби включает в себя следующие ша­
ги:
Г0, s = о
1. Пусть j = 0 ,Q S)o = <
.
I оо, s ф О
2. Для
каждого
состояния
s
вычислить
Qs,j+1
=
mins/:(s/,s)eT (Qs',j + d(j, s', s ) ) , где T — множество возможных
переходов. Объявить путь ( 0 , . . . , s', s), на котором достигнут ми­
нимум, выжившим. При наличии нескольких путей с одинаковой
минимальной текущей накопленной метрикой выбрать любой из
них.
3. j = j + Т Если j < L , перейти к шагу 2.
158
4. Возвратить символы, соответствующие выжившему пути, заканчи­
вающемуся в нулевом состоянии.
Пример его работы приведен на рис. 9.4. Заметим, что для реализации
алгоритма достаточно наличия таблицы переходов кодера Т и массива
объемом 2w P W для хранения выживших путей.
В случае метрики Евклида заметим, что d(q, q ) = r\ —
+ cf.
Для двоичного кода q £ {—у/Щ, л/Ё 7\ и cf = E s. Следовательно, мет­
рики узлов равны
{ff ~ 2 q q + c |). Для всех состояний величины
УТ (г? + с%) одинаковы, а потому могут быть исключены из рассмотре­
ния. Следовательно, метрику ребра можно определить как корреляцию
dj,s,s' = Y!k=irjno+kCjn0+k, где Cjn0+k = x k(s,s') — символы, порождае­
мые кодером при переходе из состояния s в s', а минимизацию на втором
шаге алгоритма заменить максимизацией. Этот подход применим и в тех
случаях, когда вместо величин q на вход декодера подаются логариф­
мические отношения правдоподобия для отдельных символов кодового
слова.
9.2.2.
Алгоритм Бала-Коке-Елинека-Равива
Рассмотрим другой подход к декодированию, состоящий в поиске
наиболее правдоподобного (вероятного) значения каждого информаци­
онного бита3 щ, 0 < i < L, для заданной последовательности приня­
тых сигналов у ^ п°~1 = ( щ , . . . , у ь п 0- і ) [55, 59]. алгоритм Бала-КокеЕлинека-Равива (БКЕР) был первоначально предложен для декодиро­
вания линейных блоковых кодов, которые могут быть описаны с помо­
щью переменной во времени решетчатой диаграммы. Усеченные кодовые
последовательности сверточных кодов фиксированной длины образуют
линейный блоковый код с регулярной решеткой (см. рис. 9.2, Ь). Это зна­
чительно упрощает реализацию алгоритма БКЕР, который в настоящее
время чаще всего используется для декодирования именно сверточных
кодов.
Также как и в случае алгоритма Витерби, будем предполагать,
что передача осуществлялась по каналу без памяти. Вычислим логариф­
мическое отношение правдоподобия L k = In
для каждого
информационного бита. Исходными данными для этой задачи являют3Здесь под информационными битами понимаются в том числе и служебные биты,
используемые для приведения кодера в нулевое состояние после передачи полезных
данных.
159
ся логарифмические отношения правдоподобия символов кодового слова
т(гЛ = In рЫ сі=1)
1
р(Уі \сі=0)'
Искомая величина может быть найдена как
p(sk = s', sk+1 = s, Уц n° l )/p{%0Ln0—1
Y
^
= 1 п Р к = і і ф ° - ; > = 1 п (8- ,)£5
P { u k = ОфоП° г}
p(sk = s', sk+1 = s,yQn° l )/p{%Ln0—1\ ’
Y
{ s ' ,s ) ( z S
q
где S\ и So — множества пар состояний, переход между которыми осу­
ществляется при подаче информационного бита, равного соответственно
1 и 0, р(уо”0-1) — совместная плотность распределения принятых сигна­
лов, p(sk = s ',s k+1 = s ,y ^ n°~l ) — совместная плотность распределения
принятых сигналов и состояний кодера на шагах к и к + 1. Так как
поведение кодера при обработке к-го информационного бита определя­
ется только его состоянием s' на предыдущем шаге и канал не имеет
памяти, эту плотность можно записать как p(sk = s', sk+\ = s, у$п°~1) =
P(sk = s',yln°~l )p(sk+i = s , y {kY )n°~l \sk = s ^ p i y ^ Y n o ls*+i = s ) ■ Из
V
a k(s')
Pk+ps)
7fc+i(s',s)
формулы Байеса вытекает, что
a k{s) = Y
s g
a k-i(s )y k(s ,s )
S
И
M s) = ^ 7
seS
w
(m № + i ( 4
где S — множество состояний кодера. Таким образом, совместные
плотности распределения состояний кодера и фрагментов приня­
той последовательности рекурсивно выражаются через аналогичные
плотности на предыдущем и последующем шагах соответственно.
Непосредственное вычисление этих величин приводит к значительным
ошибкам округления, поэтому приходится ввести вспомогательные велиПоделив p(sk = s', sk+i =
# М 1М 1
чины“ІМ= ЦЩДи^(s) = Л
s , y P ~ l на
Р ( У о П°
*)
(fc+l)n0 - l x
р(ѵ.kriQ
-l\_^Ln0—l (k+l)n0- l ),
р(УоП° 1)р(У(к+іуп о1^0
160
) р ( У І ш ) п Я к+ 1)щ Р
получим
p(sk
=
=
Ф о ^ > ( £ : 1)П0 X) = a,k(s,bk+i{s',s)P'k+1(s). При этом
L k = ln
Е (У
(s',s ) g S i o;i ( s ' ) 7 i +
i(s '.s )f t+ i(« )
E(»',»)€Sb «U s')7i+l(s', s)/?t+i(«)'
(9.3)
Qfc(g)
Учитывая, что p(y q 1) —
a:/3-s ). получим аЦ з) _ ^2s'es
ak(s')
E s~P,Sttfc-l(sbfc (s,s) ту. Поделив числитель и знаменатель этого выражеY^s'es
ния на
1')n° *), получим
Оіи\ S ) —
Начальными
мулы
£ i € S “ * -l(sb k (* .S
E S'e s E s € S “ lf e - i( * b k ( * . s ') '
условиями
являются
«o(s)
для
=
этой
cao(s
(9.4)
рекуррентной
фор1, s = О
ДаО, в ф 0'
L n 0—1 \ к щ —1
/ Lno-l| (fc+l)n0- l4 p(yofc+1)"°~1)
РІУІкп0 I^0
РУУкщ Ш
) р(укопо-1)
L tiq —
п(ѵЬп°~1 |7/(*+1)«о-1\
(fc+l)n0- l
pfaffiinji/r0”0' 1:
PU/(fc+ l ) n n lyO__________ / 7
кпг\ — 1 \
■ р(у(
Д / ”0”1)
a fc+llsJ
РФо
Lfio—1
К % 7 і) п о І ^ +1)ПО ^ E s e s E s 'e S ^ H T f c + i ^ s ) - Отсюда вытекает, что
лее,
1
4 (5 ) =
E s€<s 7 f c + i( M f t+1(s)
(9.5)
E mes E » '€s o 4 (s'b * + l(s' ' s) ’
Начальными условиями для этой рекуррентной формулы являются
1, s = 0
, где L — число кадров в принятой по4 » = ^ l (s ) =
0, s Ф О'
следовательности. Это условие было получено в предположении, что
после обработки всех информационных битов кодер был переведен в
нулевое состояние, т.е. L = Ь о + max deg G i j ( D ) , где L o — истинное
число информационных символов. Осталось заметить, что 7fc+i(s/, s) =
P{Sk+l = ^ У к п ^ Щ~1\8к = s' ) = P i sk+1 = Ф к = S'}P(ykn0l)n°~l \Sk =
s ',s k+1 = s) = P { u k = x(s',s)}p{y(^ o1)n°~1\sk = s ',s k+1 = s). Веро­
ятность P { s k+1 = s\sk = s'} = P { u k = x(s', s)} представляет собой
априорную вероятность перехода из состояния s' в состояние s при ко­
дировании к-го информационного бита, т.е. вероятность того, что этот
бит равен конкретному значению ж(У, s). Если рассматриваемый декодер
используется как часть итеративного декодера каскадного кода (напри­
мер, турбо-кода, рассматриваемого ниже), эта вероятность может быть
161
найдена из апостериорных логарифмических отношений правдоподобия
4Jk4 вычисленных другим декодером, как Р { и к = 1} = ехр(4 е)) откуl+exp(L^e))
да следует, что
Р { и к = а}
е х р (4 е)/2)
-------------— Г Г е х Р
(2а
1 + e x p (4 ej)
В противном случае все символы можно считать равновероятны­
ми, что эквивалентно
= 0. Условная плотность распределения
Р^Укп^П°
= s' ■
>sk+i = s ) определяется символами Xj(sf,s), 0 < j <
по, порождаемыми кодером при переходе из состояния s' в s. В силу
предположения об отсутствии памяти у канала имеем р\укп
\Sk =
s ',s k+i = s) = YlfJo1PY\x(ykn0+j\xj ( s' >s ))- Если исходные данные для
декодера представлены в форме логарифмических отношений правдопо­
добия, pY \x{ykn0+j\x j ( s^ s)) ~ exp ^2Жд'(з2’з)~1L(cfcno+ i))- Учитывая, что
величины yk+i(s',s) фигурируют как в числителе, так и в знаменателе
выражений (9.3),(9.4), (9.5), коэффициенты пропорциональности в вы­
ражениях для у (У, s) можно отбросить, получив
lk+i (s',s) = exp
(2x(sf, s) - 1 ) 4 е) +
s ) - l )L (cn0k+j)
(9.6)
Таким образом, алгоритм БКЕР для кодов со скоростью 1/по включает
в себя следующие шаги:
1. Нахождение логарифмических отношений правдоподобия отдельных
символов кодового слова L (q), %= O..Lno —1.
2. Вычисление величин yk{ s \s ) согласно (9.6).
3. Вычисление a^(s) (прямая рекурсия) согласно (9.4).
4. Вычисление Pk{s) (обратная рекурсия) согласно (9.5).
5. Вычисление апостериорных логарифмических отношений правдопо­
добия І/щО < к < L, информационных битов согласно (9.3).
6. Принятие решения относительно каждого из информационных би­
тов.
9.2.3.
Анализ вероятности ошибки
Попытаемся оценить вероятность ошибки декодирования сверточ­
ного кода с помощью алгоритма Витерби [10]. Ясно, что она определя­
ется расстоянием между различными кодовыми последовательностями,
162
которое в свою очередь зависит от диаграммы переходов кодера. Так как
сверточный код является линейным, достаточно оценить только количе­
ство ненулевых кодовых последовательностей различного веса. При этом
ограничимся рассмотрением только таких последовательностей, которые
отличаются от нулевой кодовой последовательности в первом же кадре.
Кроме того, будем предполагать, что код имеет бесконечную длину. В
большинстве практических случаев длина передаваемых блоков данных
достаточно велика, что позволяет пренебречь эффектами, связанными с
конечностью длины кода.
Сведения о весовой структуре сверточного кода могут быть ис­
пользованы для нахождения вероятности ошибочного декодирования.
Ограничимся случаем двоичных кодов. Предположим, что через ад­
дитивный гауссовский канал передавалась кодовая последовательность
из всех нулей и декодер Витерби использует корреляционную метри­
ку. Ошибка декодирования происходит в том случае, если при сли­
янии ненулевого и нулевого путей, происходящем в некотором кадре
В , оказывается, что метрика Q\ ненулевого пути превосходит метри­
ку Qo нулевого пути4. Таким образом, необходимо найти вероятность
P{Qi — Qo > 0} = P{Y2i=о ^2j=о rin0+j(cin0+j + 1) > 0]ч где сіщ+і —
кодовые символы, соответствующие ненулевой последовательности. За­
cino+j
метим, ЧТО Cin0+j + 1
2,
. Таким образом, достаточно
(‘і,п{] i j
рассмотреть вероятность ГЧХлес/П > 0}, где U — множество позиций
ненулевых символов рассматриваемого ошибочного пути. Принятые сиг­
налы rj являются независимыми Гауссовскими случайными величинами
с матожиданием —у/Щ и дисперсией N q/2. Следовательно, эта вероят­
ность равнаP { Q i - Q o > 0} = P2(d) = Q
= Q
гДе
R — скорость кода и d = \U\. Однако имеется много путей с различными
весами d, сливающихся с нулевым. Ошибка произойдет в случае, если
метрика Qi любого из этих путей окажется больше метрики нулевого
пути Q q. К сожалению, кодовые последовательности, соответствующие
этим путям, могут иметь ненулевые символы на одних и тех же позициях.
В результате случайные величины Qi оказываются зависимыми. Поэто­
му удается выписать лишь верхнюю границу для вероятности ошибки в
4Так как сверточный код имеет бесконечную длину и повторяющуюся структуру,
за одно декодирование может произойти несколько ошибок. Поэтому здесь рассмат­
ривается вероятность ошибочного декодирования только первого кадра.
163
первом кадре
оо
Р <
(9.7)
adQ
d
dCB
где ad — коэффициенты ряда T( D) = ^2 d adPd- С практической точки
зрения больший интерес представляет вероятность ошибки декодирова­
ния на информационный бит. Каждый из ошибочных путей характери­
зуется весом w соответствующей ему информационной последовательно­
сти. Вероятность ошибки, соответствующая пути с весом кодовой после­
довательности d, может быть найдена как ^ P2(d). Передаточная функ­
ция T ( N , D ) может быть представлена как T ( N , D) = Е ю d awdNwD d,
где awd — количество кодовых последовательностей веса d, порождаемых
информационными последовательностями веса w. Для получения верх­
ней границы вероятности ошибки на бит необходимо просуммировать ве­
личины j^rP2 (d) по всем возможным путям, задаваемым параметрами w
и d. Заметим, что t(D) =
N=1
Таким образом,
P b <
Ed
D d
(Ею
2W0Rd
awdw)
=
Ed
bd D d .
(9 .8 )
Вероятность ошибки на кодовое слово конечной длины, полученное пу­
тем усечения кодовой последовательности сверточного кода, пропорцио­
нальна Pf) и длине слова. Это делает сверточные коды малопригодными
для передачи пакетов данных большой длины.
На рис. 9.5 представлены графики зависимости вероятности ошиб­
ки декодирования различных несистематических сверточных кодов со
скоростью 1/2 в канале с АБГШ с помощью алгоритма Витерби, полу­
ченные с помощью статистического моделирования, а также соответству­
ющие теоретические оценки. Порождающие многочлены кодов указаны
в восьмеричном виде. Заметим, что при малых отношениях сигнал/шум
граница (9.8) практически бесполезна. Это связано с тем, что в этой обла­
сти вероятность одновременного появления нескольких событий С% > Со
достаточно велика, что не было должным образом учтено при анализе.
Но при отношении сигнал/шум более 4 дБ результаты анализа практи­
чески не отличаются от результатов моделирования. При вероятностях
ошибки менее ІО-7 получение сколько-нибудь достоверных результатов
методом статистического моделирования требует чрезмерно больших за­
трат вычислительного времени, что делает выражение (9.8) единствен-
164
Еь/N o , д Б
Рис. 9.5. Вероятность ошибки декодирования сверточных кодов в
аддитивном Гауссовском канале
ным средством сравнения различных кодов. Кроме того, видно, что при
малых отношениях сигнал/шум алгоритм БКЕР обеспечивает несколь­
ко меньшую вероятность ошибки по сравнению с алгоритмом Витерби.
Это связано с тем, что алгоритм БКЕР производит побитовое декодиро­
вание, т.е. пытается найти наиболее вероятное значение каждого бита,
в то время как алгоритм Витерби пытается найти наиболее вероятную
их последовательность. При малых отношениях сигнал/шум часто ока­
зывается, что есть несколько путей в решетке с близкими метриками.
Алгоритм Витерби выбирает ровно один из них, и такой выбор зачастую
оказывается ошибочным. Алгоритм БКЕР имеет возможность возвра­
щать последовательности, соответствующие участкам различных путей
в решетке, что и обеспечивает небольшой выигрыш по вероятности ошиб­
ки на бит.
Важной особенностью сверточных кодов является то, что ошиб­
ки декодера, как правило, приводят к возникновению нескольких близ­
ко расположенных неправильно оцененных информационных символов.
Длина таких пакетов ошибок пропорциональна минимальному свобод­
ному расстоянию кода. Это необходимо учитывать при построении кас­
кадных конструкций, основанных на сверточных кодах.
165
Упражнения
1. Изобразите кодер для сверточного кода с порождающей матрицей G =
(і + ж2 + ж3 1 + ж + ж3) , а также его рекурсивного систематического варианта.
Постройте соответствующие решеточные диаграммы.
2. Найдите передаточную функцию для вышеуказанного кода.
3. Покажите, что обратимые операции над строками порождающей матрицы свер­
точного кода не влияют на его минимальное свободное расстояние.
166
10. Коды с малой плотностью проверок на четность
Коды с малой плотностью проверок на четность (МППЧ) были
предложены в 1963 г. Галлагером [36]. Однако недостаточные возможно­
сти микроэлектроники не позволили в то время оценить их практические
преимущества, и они были забыты более чем на 30 лет. В 1999 г. они бы­
ли повторно открыты Мак-Кеем [50], который обнаружил, что эти коды
позволяют приблизиться к пределу Шеннона, после чего они начали ак­
тивно внедряться в самые разнообразные системы хранения и передачи
информации.
10.1.
Основные понятия
Кодом с малой плотностью проверок на четность называется ли­
нейный блоковый код с разреженной проверочной матрицей. Понятие
разреженной матрицы во многом является расплывчатым. С практиче­
ской точки зрения, к таковым можно отнести матрицы, доля ненулевых
элементов которых не превышает 10%. С точки зрения анализа ансам­
блей кодов, матрицы, принадлежащие некоторому семейству, можно от­
нести к категории разреженных, если доля ненулевых элементов в них
при длине кода, стремящейся к бесконечности, стремится к нулю. Необ­
ходимо понимать, что свойство разреженности относится только к одной
из проверочных матриц кода; обратимыми линейными преобразования­
ми она всегда может быть приведена к плотному виду.
Как и в случае турбо-кодов, принадлежность кода к числу низко­
плотностных определяется в основном применимостью алгоритмов де­
кодирования, описанных в разд. 10.2. Как будет показано ниже, с уве­
личением плотности проверочной матрицы предположения, лежащие в
их основе, становятся все менее близкими к реальности, что приводит к
снижению точности промежуточных вычислений и понижению коррек­
тирующей способности.
Ограничимся рассмотрением двоичных кодов МППЧ. т х п про­
верочную матрицу Н кода МППЧ удобно представлять в виде графа
Таннера. Он представляет собой двудольный1 неориентированный граф,
Двудольным графом называется граф, множество вершин которого разбито на
два непересекающихся подмножества, причем вершины каждого из подмножеств
друг с другом не соединены ребрами.
167
имеющий п символьных и т проверочных узлов (вершин), г-ый прове­
рочный узел соединен ребром с j -ът символьным узлом тогда и только
тогда, когда Нц = 1. Степенью узла называется число ребер, входящих
в него. Очевидно, что степени символьных и проверочных узлов равны
числу ненулевых элементов в соответствующих столбцах и строках про­
верочной матрицы. Граф Таннера (и соответствующий код, хотя это не
совсем корректно, так как код обладает множеством различных прове­
рочных матриц, соответствующих различным графам Таннера) называ­
ется (dv, dc)~ регулярным, если степени всех символьных и проверочных
узлов равны dv и dc соответственно. В более общем случае нерегулярный
граф может быть охарактеризован распределениями степеней символь­
ных и проверочных узлов
Х(х) =
ХіХг 1 p(x) = ^ 2 p j X J 1
і>i
i>i
Здесь A* (pi) — доля ребер в графе Таннера, соединенных с символьны­
ми (проверочными) узлами степени г. Очевидно, что А(1) = р( 1) = 1.
Необходимо отметить, что эти распределения не позволяют однозначно
задать граф Таннера.
Иногда бывает удобно выразить эти распределения в терминах уз­
лов. Пусть Е — число ребер в графе Таннера. Тогда число символьных и
проверочных узлов степени і равно Ѵ%= ЕД и С{ =
соответственно.
Отсюда доля символьных и проверочных узлов степени г равна, соответ­
ственно,
д
\Е /і
_
Xj/i
E j> i ^ j E / j
X(x)dx
и
p =
pj E/ i
E j> i Pj E / j
=
pi/i
J q p(x)dx
Отсюда можно выразить относительную размерность проверочной мат­
рицы как
т
п
Еі>1 Сі
E j > i Ej
/p Р І Ф х
( 10. 1)
J* X(x)dx
При этом скорость кода может быть больше 1 —т /п , если проверочная
матрица содержит линейно зависимые строки.
168
Проверочные узлы
Проверочные узлы
(Ъ)
Рис. 10.1. Графы Таннера:
а — Регулярный; b — Нерегулярный
Пример 10.1. Рассмотрим проверочную матрицу
Н
/1
1
0
0
\0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0\
0
0
1
1/
Соответствующий ей регулярный (2,4)-граф Таннера представлен на рис. 10.1, а.
Складывая вторую строку с пятой и исключая первую строку, получим другую про­
верочную матрицу этого же кода. Соответствующий ей нерегулярный граф представ­
лен на рис. 10.1, Ь. Его распределения степеней имеют вид Л(ж) = ^ х° +
+ jgX2
и р{х) = y§£3 +
10.2.
10.2.1.
Декодирование
Алгоритм инвертирования битов
Декодирование кодов МППЧ в метрике Хэмминга может быть вы­
полнено с помощью следующего простейшего алгоритма. Для каждого
символьного узла графа Таннера рассмотрим соединенные с ним про­
верочные узлы. Проверим, выполняются ли соответствующие им прове­
рочные соотношения. Если число невыполненных проверочных соотно­
шений превышает некоторый порог (например, половину от их числа),
предположим, что соответствующий символ принятой последовательно­
сти искажен и попытаемся исправить ошибку, проинвертировав его. Бу­
дем продолжать эти действия до тех пор, пока не будут выполнены все
проверочные соотношения, или не будет превышено максимальное число
итераций.
В основе этого алгоритма лежит предположение о том, что прове­
рочные узлы соединены с достаточно малым числом символьных узлов
169
(т.е. проверочная матрица разрежена), так что почти на каждое про­
верочное соотношение оказывает влияние не более чем одна ошибка. В
этом случае каждая операция коррекции, как правило, уменвшает число
ошибок в принятой последователвности и декодер сходится.
10.2.2.
Алгоритм распространения доверия
Прежде чем рассматриватв алгоритм декодирования для произволвного канала без памяти, рассмотрим процесс восстановления кодо­
вого слова кода МППЧ, переданного по двоичному стирающему каналу.
Проверочная матрица задает набор соотношений вида Хдеѵ- сі = 0,1 <
j < т , где сі — символы кодового слова. В принятой последователвности
некоторые из них могут бытв стертві, т.е. неизвестны. В силу разрежен­
ной структуры проверочной матрицві с болвшой вероятностью в доста­
точно большом числе этих соотношений окажется не больше чем один
неизвестный символ. Этот символ может быть выражен из них через
остальные известные символы, после чего некоторые из таких уравнений,
в которых было несколько неизвестных, могут превратиться в уравнения
с одним неизвестным, давая таким образом возможность найти значения
еще нескольких стертых символов. Этот процесс можно интерпретиро­
вать как передачу сообщений от символьных узлов, соответствующих
нестертым или восстановленным символам, к проверочным, которые вы­
числяют значения стертых символов и пересылают их по назначению.
Описанный алгоритм декодирования представляет собой процеду­
ру решения системы линейных уравнений методом подстановок, из кото­
рого исключен этап ее преобразования к подходящему (верхнетреуголь­
ному) виду. В связи с этим некоторые конфигурации стираний, кото­
рые могут быть исправлены декодером (например, основанным на мето­
де Гаусса решения систем линейных уравнений), реализующим критерий
максимума правдоподобия, данным алгоритмом исправлены быть не мо­
гут. Это компенсируется исключительной простотой реализации.
Пример 1 0 .2 . Система проверочных соотношений, соответствующая матрице, при­
веденной в примере 1 0 .1 , имеет вид
+ С2 + Сз + С4
=
0
Сі + С5 + Сб + С7
=
0
С2 + С5 + Се + Сд
=
0
С\
<
с3 + с6 + с8 + с10 = 0
_ С4 + С7 + Сд + Сю
0
=
Предположим, что стертыми оказались символы С , с4, Сгп с(і. Из четвертого уравне­
ния можно восстановить Сб = Сз + с%+ Сю, а из пятого — с4 = Cj сд + Сю- После
2
170
Рис. 10.2. Дерево Таннера
этого появляется возможность вы разить из второго уравнения с$ = с\ + с§ + c j и из
первого С\ = С2 + Сз + с4.
Рассмотрим более общий случай произвольного канала без памяти.
Попытаемся оценить вероятность того, что і-ый символ кодового слова
равен 1 или 0 при условии того, что наблюдается принятая последова­
тельность у \ = (г/і,.. . ,уп) и выполнены все проверки на четность. Для
того, чтобы упростить задачу, будем считать, что граф Таннера пред­
ставляет собой дерево и і-ый символьный узел является его корнем (см.
рис. 10.2). Таким образом, множество символьных узлов разбивается на
несколько уровней в зависимости от их расстояния в дереве от корня,
который считается узлом нулевого уровня.
Введем обозначения Q = {j\Hji = l } , l < і < п, и \Д =
{i\Hji = 1} , 1 < j < т. Найдем вероятность дД6) того, что символ
расположенный на нулевом уровне в дереве Таннера, равен b Е {0,1},
при условии того, что выполнены все проверки на четность. Пусть Cj
— событие, означающее выполнение j -ой проверки на четность. Пусть
Т(і) — множество проверочных узлов, находящихся в поддереве графа
Таннера, корнем которого является символьный узел і. Тогда
Р {<4 — Ь,Уі, Пj £ T ( i ) ^ j }
171
= Р{а
f ] C j \ a = b,yl
Цуі]р
ieC i
П
Cj
Р{П }< гщ С№ )
'------------ v------------ '
jeT(i)\Ci
A
= А Р { сі = Ь\уі}
P < Y ci’ = ° H = ь>У1>п з'(=т(1)\с>с з' > •
jGC,
i'£V,
J
(10-2)
rji(b)
Предпоследний переход возможен в силу того, что никакие другие про­
верки на четность, кроме учтенных в СД не содержат символ q . Норми­
ровочная константа А может быть найдена из условия q(0) + q ( 1) = 1.
Последний переход возможен в силу того, что проверки на четность, вхо­
дящие в С і , не имеют никаких общих символов, кроме q , вследствие чего
события их выполнения являются независимыми.
С учетом леммы 7.1, вероятность
rji{b) = Р
Y j Ci' ~ % і ’ ^Г^т{1)\срз'
і'еѵДШ
может быть найдена как
rj i W
=
rji{ 0) =
(10.3)
0)
1
2
1 +
П
( l - 2 Р {q/ -
l \ y i , r \j'£ T ( i) \C iC j'} )
і'еѴМі}
_ 1
" 2
/
1+
\
Y\. (l - 2P { сі' — 1|y i ’n f&T(i')\{j}Cj'})
*'€ѴД{І}
(10.4)
Последний переход возможен в силу того, что здесь из рассмотрения
исключаются все проверочные соотношения, в которых участвует сим­
вол г. Поэтому далее можно рассматривать только те проверочные узлы,
которые находятся в поддереве графа Таннера с корнем в узле і'. Пре­
образования, аналогичные (10.2), приводят к
Qij(b) =
Р { сі = % і , n f £ T ( i ) \ { j } C j ’} =
= А ' Р { сі = Ъ\уі }
r
і'еСДШ
172
(10.5)
Таким образом, получены рекуррентные уравнения, которые позволяют
выразить qi(b) для узла г, являющегося корнем дерева Таннера, через
= А ' Р { сі' = Ь\у[}, где г' — символьные узлы, являющиеся его
листьями. К сожалению, можно показать, что коды с проверочной мат­
рицей, граф Таннера которой имеет вид дерева, имеют минимальное рас­
стояние не более 2 при скорости R > 1/2 или могут быть получены из
таковых путем повторения некоторых символов при R < 1 /2 [29]. Ясно,
что они не могут обеспечить сколь-нибудь приемлемую корректирующую
способность. Тем не менее, описанный метод может быть использован и
в случае графов Таннера, содержащих циклы. В этом случае события
выполнения различных проверочных соотношений оказываются зависи­
мыми, что делает представленные выше формулы для qi(b),rji(b),qij(b)
приближенными. Однако, практика показывает, что при обхвате (т.е.
длине кратчайшего цикла) графа Таннера не менее 6, связанные с этим
погрешности пренебрежимо малы.
Непосредственное использование приведенных выше выражений
сопряжено с необходимостью перемножения и вычитания величин, близ­
ких к 1, что приводит к значительным ошибкам округления. Для того,
чтобы избежать их, введем логарифмические отношения правдоподобия
гО) _ in Qui о) г (с)
№ = 1п|
щи _ І І Ч ( 1)’Ья = ІПЙТТТ' зг(I)' БУДем считать, что исходные данные для декодера также представлены в виде логарифмических
отношений правдоподобия2 Д = 1п ДТт_21М Заметим, что имеет место
Р{сі=МѴі}’
тождество
1
tanh
2
In
1 —р
Р
е1п((1-р)/р)-1
еН ( і - р ) /р ) + і ~ 1
Переписав (10.4) как
1 -2 гД 1 )=
П
(1 -2 ® Щ )),
г'еѴДИ
получим, что
tanh
1г(с)
2L p
П
tanh
г< Ѵ Д {г}
2Ранее они были определены как Ьг — In / [ / =%Д• Изменение обозначений позво­
ляет несколько упростить полученные выражения.
173
Пусть b\Vj = ai'jbi'j, где b^j =
= sgn(L^j). Учитывая, что
гиперболический тангенс является нечетной функцией, получим
2
CLi>j tanh 1
ta n h f^ L ^
i'GVMi]
^ѴДД}
'
Таким образом, алгоритм распространения доверия может быть
записан как
Li
-
^+ЕФ
т(ѵ)
=
u +
т(ѵ)
T (c)
Lji
y
T (c)
L j'i
\
(
=
1
Ѵ 'е Ѵ Д р }
(10.6)
a-i'j
r
/
(10.7)
E
\г 'е У Д { г }
\
ф ( ьр
>
(10.8)
/
где ф{х) = —lntanh(ir/2). Несложно показать, что ф(ф{х)) = ж, что и
было использовано при получении (10.8).
Эти тождества могут быть использованы для декодирования сле­
дующим образом:
1. Положить ь{с) = 0.
J1
2. Вычислить
в соответствии с (10.6).
3. Построить вектор с = (щ ,. . . , сп) оценок символов кодового слова,
где с% = 1 -Ф4>
< 0. Если НсТ = 0, завершить декодирование и
возвратить кодовое слово с.
4. Вычислить
в соответствии с (10.7).
5. Вычислить
в соответствии с (10.8).
6. Перейти к шагу 2.
Перемножение величин
фактически сводится к подсчету чет­
ности числа их отрицательных значений, т.е. операции “исключающее
или”. Таким образом, наиболее трудоемкой частью этого метода оказы­
вается вычисление функции ф(х), график которой представлен на рис.
10.3. При непосредственном ее вычислении возможно возникновение
значительных ошибок округления в области больших и малых х. Для
избежания этой проблемы может быть целесообразно построить подходя­
щие аппроксимации, точность вычисления которых с помощью машин­
ной арифметики может оказаться выше, чем в случае исходной функ­
ции. Другим способом избежания этих проблем и снижения сложности
174
0
1
2
3
4
5
Рис. 10.3. Функция ф{х)
является использование заранее вычисленной таблицы ее значений. Еще
одним методом снижения сложности вычислений является аппроксима­
ция суммы в (10.4) наибольшим из слагаемых. Так как функция ф{х)
является монотонно убывающей, это приводит к выражению
(С )
min bi'j.
г'еѵдр}
Л
Интерпретируя фу как меру надежности символа i' с учетом уже обра­
ботанных проверок на четность, получим, что
представляет собой
оценку і-ого символа, выраженную из j -ого проверочного соотношения,
причем ее надежность определяется надежностью наихудшего из прочих
символов, участвующих в этом соотношении. Исходная формула (10.8)
фактически представляет собой более точное выражение этой идеи, ле­
жащей в основе алгоритма распространения доверия. Существуют и дру­
гие методы ускорения алгоритма распространения доверия [60].
10.2.3.
Эволюция плотностей
При анализе корректирующей способности ограничимся случа­
ем симметричных по выходу каналов, т.е. будем предполагать, что
Py \x {v \^) = Рѵ\хі~У\ —1)- В
случае корректирующая способность
линейного кода и алгоритма распространения доверия не зависят от то­
э т о м
175
го, какое из кодовых слов передавалось. Для удобства предположим, что
передавалось нулевое кодовое слово. В этом случае величины Д име­
ют одно и то же распределение, которое может быть легко вычислено.
Например, в случае аддитивного гауссовского канала с дисперсией шу­
ма <72 и использования модулятором отображения 0 —>• 1,1 —> —1 из
(1.2) вытекает, что Д = ^г, т.е. Д ~ jV(2/(j2, 4/сг2). Будем обозначать
соответствующую плотность распределения как рь(х). Преобразования
(10.7)—(10.8) являются детерминированными. Это позволяет рекурсивно
вычислить плотности распределения величин Lff). Lff) на каждой итераѵ
Зг
ции алгоритма распространения доверия. Ошибка декодирования имеет
место, если среди сообщений, циркулирующих по сети, задаваемой гра­
фом Таннера, присутствуют отрицательные величины. Вероятность та­
кого события можно оценить, проинтегрировав соответствующую плот­
ность распределения от —ос до 0.
Предположим, что длина кода стремится к бесконечности, и вхо­
дящие сообщения каждого узла являются независимыми случайными
величинами. Дальнейший анализ будет проводиться не для конкретного
графа Таннера, а для ансамбля графов с заданными распределениями
степеней символьных и проверочных узлов, т.е. его результаты должны
рассматриваться как средние по всем соответствующим кодам.
Известно, что плотность распределения суммы независимых слу­
чайных величин X и Y может быть выражена через их плотности рас­
пределения рх(%) и р у (у) как их свертка, т.е.
/
оо
P x (z - y)py(y)dy.
-оо
Предполагая, что все сообщения, входящие в символьный узел степени
d на итерации /, имеют одну и ту же плотность распределения p c ^ f x ) ,
получим, что плотность распределения случайных
величин
_ <g>(d-l)
P L <8> р с
'
1-1
т (ѵ)
равна
5
где Pq ^ ^ обозначает свертку d — 1 функций p c ^ f x ) с собой. Так как
в графе Таннера присутствуют символьные узлы различных степеней,
необходимо произвести усреднение по ним. Величины i f f ) параметри­
зуются фактически номером ребра (однозначно задается парой (г, j)),
поэтому справедливо равенство
Р Ѵ , = Р Ь ® ^ XW c t T ] = PL® H p q .J г>1
176
Здесь под \ip Q _ J понимается результат “подстановки” плотности рас­
пределения РСі-± в многочлен, задающий распределение степеней сим­
вольных узлов, причем операция возведения в степень г заменяется (і)кратной сверткой.
Перепишем (10.8) как L j f
=
Г 1
r (L| y )) > гДе
r (L iVj) = (1 lh <0, 0(|т[,^|)), 1 х ~ индикаторная функция, приг3
нимающая значение 1 при выполнении условия X и 0 в против­
ном случае. Суммирование выполняется покомпонентно, причем сло­
жение первых (двоичных) компонент выполняется по модулю 2. Та­
ким образом, функция распределения T (L ^ ) имеет вид G ( s ,x ) =
Ь =0Р { ф ) > 0 , Ц | ф )|) < .т }
+ Ь = і Р { ф < 0 ,ф (-Ь $ ) <ж}
j.
С) / _ Д(т) Дифференцируя ее по х,
^(x)} + l s=1p { LГi'j
<
получим плотность распределения g(s, x) = l s=offo(x)+ls=iffi(x). Сумма
двумерных случайных величин T(G) и T(F) с плотностями распределе­
ния g(s, х) и f(s , х) такого вида имеет плотность распределения
Ь =0Р { 4 Д
h(s,x) = g (s ,x )® f ( s , x ) = l s=oho(x) + l s=ihi(x) =
= l s=o (90 (x) 0 /o (x) + gi (x) 0 / i (x)) +
+ls=i(gi(x) 0 fo(x) + go(x) 0 fi(x)),
т.е. также представляется как свертка. Зная ее, можно восстановить
плотность распределения одномерной случайной величины Г_1(Г(С) +
r(F )) . Злоупотребляя обозначениями, будем обозначать операции пре­
образования плотностей распределения, соответствующие применению
отображения Т(х), как Г(р). Таким образом, плотность распределения
случайных величин Ь^с) может быть найдена как
-1)
PQ = r_1 ( 5 > ( ГЫ ) ® (І
.
Г-Ѵ (Г (рц)).
І>1
Таким образом, плотность распределения сообщений на итерации I равна
Pvt = P L ®
Л(Г-1р(Г(р^_1)))).
(10.9)
Вероятность наличия в сети ошибочных сообщений на итерации I равна
/
о
pyt (x)dx.
(10.10)
-оо
177
Можно показать [57], что pjp -^і_>.00= 0 тогда и только тогда, когда по­
следовательность плотностей распределения рц сходится к 5(х —оо), где
6(х) — дельта-функция Дирака. Под сходимостью последовательности
f l ( x ) к предельной функции f ( x ) здесь понимается, что для всех х по­
следовательность значений функции распределения Fi(x) = Г ос M y ) dv
сходится к f(x).
Кроме того, при достаточно слабых ограничениях имеют место сле­
дующие факты:
• Если A'(0)p'(l) > ег, то существует такое £ = £(А(х), p (x ), p l ) > О,
что для всех I G N, Р ^ > £.
• Если А'(0)р'(1) < ег, то существует такое £ = £(А(х), p (x ), p l ) > О,
что если для некоторого I G N Р ^ < £, то при выполнении дальней(1/\
ших итераций (т.е. при I' —>• оо) Ре ' стремится к нулю.
• Последовательность плотностей распределения (10.9) сходится к
некоторой неподвижной точке, которая зависит исключительно от
начального распределения рі.
Здесь
Эта величина является некоторой метрикой качества канала. Этот ре­
зультат показывает, что если характеристики рассматриваемого ансам­
бля недостаточно хороши для канала с заданным качеством, то веро­
ятность ошибки декодирования всегда ограничена снизу некоторой по­
ложительной величиной. В противном случае, если в начале процесса
декодирования удалось “добиться некоторого прогресса” в исправлении
ошибок, то при последующих итерациях все ошибки будут исправлены.
На рис. 10.4 представлены примеры эволюции плотностей распре­
деления сообщений для двух рассмотренных случаев. Видно, что при
<т > «то плотность распределения сообщений практически не меняется
(рис. 10.4, Ь). В противном случае их среднее значение быстро возрас­
тает. Одновременно с ним возрастает и дисперсия, поэтому сходимость
последовательности плотностей распределения к 5-функции из графика
неочевидна. Однако из графика видно, что с увеличением I возрастает и
наименьшее значение ж, при превышении которого плотность распреде­
ления Рѵ{{%) становится существенно больше нуля. За счет этого после­
довательность значений функции распределения в любой точке х < оо
действительно сходится к нулю, а при х = сю — к бесконечности.
178
Рис. 10.4. Эволюция плотностей распределения:
а ст < do; b — ст > од
Успешность декодирования определяется тем, соответствует ли
неподвижная точка эволюции плотностей распределению с положитель­
ной или нулевой вероятностью ошибки. Предположим, что качество ка­
нала (т.е. плотность распределения р і) однозначно описывается одним
параметром ст (например, в случае аддитивного гауссовского канала та­
ковым параметром является среднеквадратическое отклонение шума).
Тогда существует некоторое пороговое значение сто такое, что при а < сто
вероятность ошибки стремится к нулю с ростом числа итераций, и огра­
ничена снизу некоторой положительной величиной в противном случае.
Это значение называется порогом итеративного декодирования. Более
точно, для всех е > 0 и ст < сто существуют п = п(б, ст) и I = 1(е, а) такие,
что почти для всех3 кодов длины не менее п, которым соответствуют
графы Таннера из ансамбля (Л(ж),р(ж)), вероятность ошибки декодиро­
вания после выполнения I итераций алгоритма распространения доверия
не превосходит е. С другой стороны, при ст > сто вероятность ошибки всех
кодов данного ансамбля ограничена снизу некоторой величиной, завися­
щей от ст и не зависящей от числа итераций. Это утверждение весьма
похоже на прямую и обратную теоремы кодирования.
Необходимо понимать, что данный анализ был выполнен в предпо­
ложении о независимости сообщений, циркулирующих по сети, задавае­
мой графом Таннера. Из этих утверждений не вытекает, что конкретный
код из заданного ансамбля сможет обеспечить сколь угодно малую ве­
3Доля кодов, для которых это не выполняется, убывает к нулю экспоненциально
быстро с ростом п.
179
роятность ошибки при заданном качестве канала а < од. Тем не менее,
эти результаты могут быть использованы при построении хороших ко­
дов МППЧ. Для этого заметим, что выражения (10.9)—(10.10) позволяют
оценить вероятность ошибки на I-ой итерации. Если она оказалась доста­
точно малой, можно считать, что в дальнейшем она сойдется к нулю. Та­
ким образом, существует численный алгоритм, позволяющий проверить,
достигается ли для заданного качества канала сколь угодно малая веро­
ятность ошибки при использовании ансамбля (А(ж), р(х)). Воспользовав­
шись методом дихотомии, можно найти собственно порог сто, однозначно
связанный с распределениями (А(ж), р{х)). Это дает возможность произ­
вести его максимизацию по параметрам этих распределений, при которой
необходимо учесть условия А(1) = р( 1) = 1, R > 1 —ji,
, где R — треJо ^{XjClX
буемая скорость кода. Данная оптимизационная задача имеет множество
локальных минимумов, но использование механизмов глобальной макси­
мизации (например, метода отжига) позволяет получить достаточно хо­
рошие результаты. Подробно вопросы эффективной реализации данной
оптимизационной процедуры рассмотрены в работах [57, 54].
10.3.
Методы построения кодов
В данном разделе представлено краткое описание некоторых кон­
струкций кодов МППЧ. К настоящему времени их общее число составля­
ет несколько десятков и продолжает расти, поэтому сколь-нибудь пол­
ный обзор этой области теории кодирования может составить предмет
отдельной книги (см., например, [60]).
10.3.1.
Конструкция Галлагера
В оригинальной работе Галлагера [36] был исследован класс кодов
/ я д
МППЧ с проверочной матрицей вида Н =
Я2
, где Н\ — т х п
\Щ /
матрица, содержащая единицы в позициях і г ... (г + 1)г — 1 в каждой
строке г, 0 < і < т — 1, а прочие матрицы получаются из нее путем
перестановки столбцов. Им было показано, что при д > 3 минимальное
расстояние таких кодов может быть достаточно хорошим. Однако эти
коды являются регулярными и требуют подбора перестановок столбцов,
не приводящих к возникновению циклов длины 4 в графе Таннера.
180
10.3.2.
Прогрессивное наращивание ребер
Одним из простейших способов построения кодов с малой плотноствю проверок на четность с произвольным распределением степеней
символьных узлов является итеративное наращивание ребер в графе
Таннера [38]. Данный метод предполагает, что все проверочные узлы
имеют почти одинаковую степень4, и итеративно строит граф Таннера,
содержащий заданное число символьных узлов заданных степеней. При
этом накладывается требование максимизации обхвата графа. Первона­
чально граф не содержит ни одного ребра. Все символьные узлы обра­
батываются в порядке возрастания их планируемой степени. На каждом
шаге алгоритма текущий символьный узел соединяется ребром с прове­
рочным узлом, который выбирается таким образом, чтобы максимизиро­
вать длину кратчайшего из создаваемых при этом циклов. Неопределен­
ность при этом разрешается в пользу проверочного узла с наименьшей
текущей степенью. После того, как степень текущего символьного узла
достигнет требуемой, осуществляется переход к следующему символьно­
му узлу.
Основным преимуществом этого метода является возможность по­
строения графов Таннера с любым распределением степеней символьных
узлов и достаточно большим обхватом. Впрочем, практика показывает,
что увеличение обхвата графа свыше 6 не оказывает значимого влияния
на качество декодирования. Главным недостатком описанной конструк­
ции является отсутствие какой-либо структуры у получаемых таким об­
разом кодов, что значительно осложняет аппаратную реализацию кодера
и декодера, а также достаточно небольшое их минимальное расстояние.
10.3.3.
Протографы
Хорошие нерегулярные структурированные коды МППЧ могут
быть получены путем построения некоторого протографа с небольшим
числом узлов и последующего его “масштабирования” до требуемых па­
раметров. Процедура масштабирования сводится к созданию Q копий
этого протографа и “переключению” ребер, соединяющих узлы с одина­
ковыми номерами, между этими копиями. В терминах проверочной мат­
рицы эта процедура сводится к замене единиц в проверочной матрице,
задающей протограф, различными Q х Q перестановочными матрица4Большинство распределений р(х), получаемых как результат оптимизационной
процедуры, описанной в разд. 10.2.3, имеют вид р(х) = xd, поэтому данное ограни­
чение не является существенным.
181
символьные узлы
символьны е узлы
проверочные узлы
(а)
(Ь)
Рис. 10.5. Построение графа Таннера из протографа:
а — Протограф; b — Результат масштабирования
-►
повторитель
перемежитель
-►©—►СН
Рис. 10.6. Кодер повторительно-накопительного кода
ми и нулей — нулевыми матрицами той же размерности. Как правило,
при этом используются перестановочные матрицы циклического сдвига
на Іц позиций, причем параметры 1^ масштабируются пропорционально
Q [39].
Пример 10.3. На рис. 10.5 представлен пример протографа, соответствующего мат-
/1 1 1 о о 0\
тт
рице И =
0
1
0
0
1
1
0
1/
1
Ѵ0
щего матрице H'
/ 1 0
0 1
0 0
0 0
0 1
1 0
0
1 0
10.3.4.
0
0
, и полученного из него графа іаннера, соответствую-
0 1 1
1 0 0
1 0 0
0 1 0
0 0 1
0
0
0
0
0
0
0
0
0
0 0
1 0
0 0
0 0
0
0
0
0
1
0 0 0 0 \
0 0 0 0
1 0 1 0
0 1 0 1
0 0
0 0 0 0
1 1 0 0 0 0 0
0 1 0 1 0 0 1
0 0 1 0 1 1 0 /
Повторительно-накопительные коды
Повторительно-накопительные коды [27, 43], устройство кодера
для которых представлено на рис. 10.6, относятся к числу кодов МППЧ
с хорошим минимальным расстоянием. При кодировании каждый сим­
вол данных повторяется несколько раз (для регулярных кодов — фик­
сированное, для нерегулярных — переменное число раз в соответствии
с заданным распределением), полученные символы переставляются и
пропускаются через устройство-интегратор, которое суммирует символ
182
со значением, полученным на предыдущем шаге. К полученным таким
образом кодовым символам дописываются информационные. Таким об­
разом, порождающая матрица этих кодов имеет вид G = (RPA\I ),
где R — матрица, описывающая повторитель, Р — перестановочная
матрица, А
• о
/1
1
1
•• о
\о
телю. Отсюда
0
/1
1 1
н = 0 1
можно
0 . ..
0 . ..
1 . ..
.
• Л
. . 1
матрица, соответствующая накопи­
• У
получить выражение для проверочной матрицы
0 0
\
0 0
0 0 PTRT , которая, очевидно, является раз
\ 0 0 0 . .. 1 1
)
реженной. Распределение степеней символьных узлов соответствующего
графа Таннера определяется матрицей R , т.е. повторителем.
10.3.5.
Конструкция на базе кодов Рида-Соломона
Двоичные высокоскоростные регулярные коды МППЧ с большим
минимальным расстоянием могут быть построены на базе (ІѴ, 2, N — 1)
кодов Рида-Соломона над некоторым полем ¥ q [23]. Очевидно, что лю­
бые два кодовых слова кода Рида-Соломона с такими параметрами име­
ют не более чем один общий символ. Его кодовыми словами являют­
ся векторы, полученные путем вычисления значений многочленов вида
f ( x ) = f i x —/о в различных элементах a G F g\{0}. Пронумеруем все
элементы т G
натуральными числами и сопоставим каждому из них
вектор ет длины q, содержащий единицу в позиции т и нули в прочих
позициях. Выберем М различных значений / і и для каждого из них
выпишем все q кодовых слов (/(о ц ),... , f ( a n)), соответствующих раз­
личным /о, после чего заменим их элементы векторами
и запишем
их в виде (M q ) х (Nq) матрицы Н. Очевидно, что при фиксированном / і
значения /ісц —/о пробегают вместе с /о все возможные элементы ¥ q, по­
этому матрица Н получится блочно-перестановочной. Соответствующий
ей граф Таннера свободен от циклов длины 4, так как если допустить
их существование, то это означало бы наличие двух кодовых слов кода
Рида-Соломона, совпадающих в двух позициях.
183
Еь/ N о,
дБ
Рис. 10.7. Вероятность ошибки декодирования некоторых кодов МППЧ
В обширной литературе по МППЧ кодам можно встретить описа­
ние многих похожих конструкций. В работе [67] они были проанализи­
рованы с единых позиций.
10.3.6.
Сравнительный анализ
На рис. 10.7 представлены результаты статистического моделиро­
вания для некоторых кодов МППЧ, полученных с помощью вышеопи­
санных конструкций. Регулярные коды (2048,1723) и (2048,1517) были
получены с помощью конструкции, основанной на кодах Рида-Соломона
с параметрами q = 64, N = 32, М = 6 и М = 14 соответственно. Кри­
вые с меткой WiMAX соответствуют нерегулярным кодам, построенным
на основе протографов в соответствии со спецификацией IEEE 802.1 бе
[39]. Кроме того, были рассмотрены регулярный (2048,1724) и нерегу­
лярный (2304,1152) коды, построенные методом прогрессивного нара­
щивания рёбер (PEG). Во всех случаях нерегулярные коды строились с
использованием оптимизированных распределений степеней символьных
узлов.
Из представленных результатов видно, что для незначительного
снижения скорости регулярных кодов из семейства RS требуется значи­
тельное увеличение параметра М, т.е. числа строк в проверочной мат-
184
Полярный подкол (8192.4096), t
" Полярный подкол (8192.4096), t=13, L=2“
Полярный подкод (8192,4096), 1=13, L=2'
(а)
(b)
Рис. 10.8. Вероятность ошибки декодирования некоторых кодов МППЧ:
а — Длина « 1024; b — Длина зз 8192
рице5, которое определяет сложность декодирования. При этом, одна­
ко, корректирующая способность увеличивается незначительно. Намно­
го лучшие результаты демонстрирует нерегулярный (2016,1512) код, по­
строенный на основе протографа. Для кодов со скоростью 1/2 случай­
ный PEG-код демонстрирует заметно большую корректирующую спо­
собность по сравнению с кодом WiMAX, построенном с помощью про­
тографовой конструкции, при вероятности ошибки более ІО-5 , однако
при дальнейшем увеличении отношения сигнал/шум скорость убывания
вероятности ошибки декодирования этого кода резко падает, что может
быть объяснено слишком малым его минимальным расстоянием. Анало­
гичное поведение демонстрирует и PEG код (2048,1724).
На рис. 10.8 представлены результаты статистического моделиро­
вания для кодов МППЧ из стандарта 5G. Эти коды строятся на основе
протографов, причем для коротких и длинных кодов стандартом преду­
смотрены различные протографы. Для сравнения приведены результаты
для полярных подкодов в узком смысле с близкими параметрами.
Видно, что на длине около 1024 полярные подкоды обеспечивают
значительно лучшую корректирующую способность по сравнению с ко­
дом МППЧ. Однако с увеличением длины корректирующая способность
кодов МППЧ улучшается значительно быстрее по сравнению с полярным
подкодами. Увеличение максимального числа итераций сверх 20 не при­
водит к существенному снижению вероятности ошибки, хотя даже при 60
итерациях алгоритм распространения доверия еще не реализует декоди­
’Следует отметить, что многие из них являются линейно зависимыми.
185
рование по максимуму правдоподобия рассмотренного кода. Код МППЧ
с п = 8256, построенный с использованием иного базового графа, требует
большего числа итераций для достижения близкой к предельной коррек­
тирующей способности по сравнению с коротким кодом. Для получения
сопоставимой корректирующей способности полярный код требует зна­
чительного увеличения размера списка L в списочном/последовательном
декодере. Стоит также отметить, что, как видно из рис. 10.8, Ь, среднее
число итераций при декодировании кода МППЧ почти не зависит от
максимального числа итераций при E^/N q > 1 дБ. Это означает, что
вероятность того, что декодеру потребуется большое число итераций,
весьма мала. В то же время, средняя сложность декодирования поляр­
ного подкода существенно зависит от L, что свидетельствует о высокой
вероятности того, что последовательному декодеру потребуется много
итераций. Эти особенности декодеров должны учитываться при органи­
зации буферизации обрабатываемых данных в приемнике.
Упражнения
1. Пусть Н — проверочная матрица, состоящая из всех возможных строк веса 2.
Каково минимальное расстояние кода, определяемого ею?
2. Пусть дан многочлен h{x) = 1 I х f :/;3 I г/;7. Построим 15 х 15 проверочную
матрицу Н , строки которой представляют собой все возможные циклические
сдвиги вектора его коэффициентов. Какой код определяется этой матрицей?
Постройте граф Таннера, соответствующий ей, и найдите его обхват.
186
11. Коды для стираюшего канала
11.1.
Н адеж ная доставка данных по ненадежны м каналам
11.1.1.
Потери в сетях с коммутацией пакетов
Большинство современных компьютерных сетей строится на ба­
зе технологий IP (Internet Protocol). Фундаментальным свойством это­
го протокола является отсутствие гарантий надежной доставки пакетов
от отправителя к получателю. Среди причин потери пакетов можно от­
метить перегрузку промежуточных узлов, неисправимые (но почти все­
гда обнаружимые) искажения данных на физическом уровне, изменение
таблиц маршрутизации, сбои оборудования, переполнение буферов опе­
рационной системы на узле-получателе и т.д. Исторически первые две
причины, обусловленные слишком высокой скоростью генерации паке­
тов отправителем, являлись доминирующими. В связи с этим были раз­
работаны протоколы, одновременно обеспечивающие надежную достав­
ку данных и управление скоростью их передачи. Наиболее известным
таким протоколом является TCP (Transmission Control Protocol). Прин­
цип его работы состоит в разбиении передаваемого потока данных на
последовательность сегментов, их передаче, ожидании подтверждения
и, при необходимости, повторной передаче. Получатель имеет возмож­
ность подтвердить получение только непрерывного блока данных с на­
чала до і-ого байта, даже если уже получены байты с г + 5' по г + 6".
Передатчик может отправить W байт данных, не дожидаясь получения
подтверждения. Если по истечении заданного интервала времени отпра­
витель не получает подтверждения для переданных данных, все они,
начиная с первого неподтвержденного, считаются утраченными и пере­
даются заново (впрочем, этот процесс может быть остановлен своевре­
менным получением подтверждения). Такая ситуация интерпретируется
как следствие перегрузки одного из узлов сети, участвующего в пере­
даче данных, и предпринимаются меры к быстрому снижению частоты
отправки сегментов. Это является абсолютно бесполезным, если поте­
ря пакета произошла вследствие ошибок на физическом уровне. Кроме
того, для каналов с большим значением R d , где R — максимальная ско­
рость передачи данных по каналу и d — время прохождения пакета от
отправителя к получателю, величина W, необходимая для обеспечения
187
непрерывной передачи, может оказаться слишком большой. Ввиду огра­
ничений на объем памяти узла-отправителя ее приходится устанавливать
многократно заниженной, что приводит к неэффективному использова­
нию канала. В результате реальная скорость передачи данных с помо­
щью протокола TCP зачастую оказывается многократно ниже R.
Проблема надежной доставки оказывается еще более сложной при
необходимости организации мультикаста, т.е. передачи от одного источ­
ника к нескольким получателям. В этом случае пакеты, потерянные раз­
личными получателями, в большинстве случаев оказываются разными.
В связи с этим при использовании протоколов с повтором передачи воз­
никает необходимость или повторно (зачастую — многократно) произ­
вести отправку всего блока данных (этот метод носит названия карусе­
ли данных), или организовать иерархию промежуточных узлов, каждый
из которых обеспечивает надежную доставку пакетов к непосредственно
связанным с ним узлам. Очевидно, что оба эти способа крайне сложны
в реализации и неэффективно используют ресурсы сети.
11.1.2.
Цифровой фонтан
Сеть с коммутацией пакетов можно рассматривать как 2т -ичный
стирающий канал, где т — размер пакета. Действительно, для того, что­
бы обнаружить потерю пакета, достаточно лишь последовательно нуме­
ровать их при передаче. Это позволяет воспользоваться результатами
теории информации и теории кодирования для решения проблемы на­
дежной доставки данных в условиях потерь пакетов. Однако для удоб­
ства реализации удобно считать, что каждый пакет состоит из единствен­
ного бита, предполагая, что операции, выполняемые при кодировании и
декодировании, применяются одновременно ко всем битам, входящим в
пакет. Тогда сеть может рассматриваться как двоичный стирающий ка­
нал.
Пусть р — вероятность потери пакета, т.е. стирания символа при пе­
редаче. Согласно (1.9), если к пакетов данных (символов) перед отправ­
кой были закодированы оптимальным образом, для их восстановления
получателю достаточно принять лишь к{ 1 + б) пакетов, причем е стре­
мится к нулю с ростом к. При этом не предполагается наличие какоголибо канала обратной связи и повторов утерянных пакетов. При размере
алфавита q, стремящемся к бесконечности, этот подход может быть ре­
ализован с помощью (п, к :п — к + 1)-кода Рида-Соломона над Fg. Как
было показано выше, любые к символов его кодового слова образуют ин­
188
формационную совокупность, и восстановление кодового слова сводится
к задаче интерполяции. Однако с ростом размера алфавита возрастает
сложность этой операции. Кроме того, величина р заранее неизвестна,
что не позволяет подобрать длину кода п < q. Если q и п недостаточ­
но велики, нестертых символов может не хватить для восстановления
кодового слова; повтор ранее переданных символов не гарантирует воз­
можности восстановления по любым к принятым пакетам.
В связи с этим возникает необходимость использования бесскоростных или фонтанных кодов. Модель цифрового фонтана предпо­
лагает, что отправитель преобразует имеющийся у него блок данных ко­
нечного размера в бесконечный поток кодовых символов, которые пере­
даются по сети. Получатель или получатели могут воспользоваться лю­
быми дошедшими до них пакетами (символами), рассматривая их как
капли воды, которые они набирают в “подставленные в струю стаканы”.
Как только их “стаканы” наполнятся до краев (т.е. будет получено доста­
точно большое число нестертых символов), они могут воспользоваться
известной процедурой декодирования и восстановить все данные. При
этом желательно, чтобы процедуры кодирования и декодирования были
вычислительно простыми. Фонтанные коды представляют собой множе­
ство потенциально бесконечных кодовых последовательностей. Однако
при практической реализации предусматривается некоторая процедура
(истечение тайм-аута, получение уведомления от принимающей сторо­
ны и т.п.), которая останавливает процесс порождения новых кодовых
символов.
11.2.
11.2.1.
Конструкции кодов
Преобразование Луби
Рассмотрим следующий метод кодирования вектора1 данных и =
( щ , ... ,щ ), известный как преобразование Луби:
1. Выбрать натуральное число d в соответствии с некоторым распреде­
лением p(d).
2. Выбрать произвольные d символов данных, сложить их по модулю
2 и отправить получателю. Вместе с данными необходимо тем или
иным способом передать номера тех символов, которые использова­
лись на данном этапе.
3. Если это еще необходимо, перейти к шагу 1.
к а ж д ы й элемент и может представлять собой вектор из I байт.
189
Множество полубесконечных последовательностей, которые могут быть
порождены таким образом для фиксированного распределения p(d), на­
зывается LT-кодом. Декодирование может быть выполнено путем реше­
ния системы линейных уравнений
иА = у ,
(11.1)
где А — двоичная матрица такая, что Aij = 1, если слагаемое щ было
использовано при построении Дого принятого символа, и у — вектор, со­
ставленный из принятых символов. Декодирование является успешным,
если эта система имеет единственное решение. Далеко не любая двоич­
ная квадратная матрица является обратимой. Действительно, для того,
чтобы k х к матрица была обратимой, ее первая строка не должна быть
нулевой, вторая строка не должна быть нулевой и не должна совпадать
с первой, і-я строка не должна быть линейной комбинацией предыдущих
і — 1 строк. Таким образом, если считать, что все значения Aij равно­
вероятны, получим, что вероятность обратимости квадратной матрицы
равна
к
к
Р{к) = J | ( l = J | ( l - 2- *).
2=1
2= 1
При достаточно больших к эта величина приближенно равна 0,288. Есте­
ственно, что по мере увеличения числа столбцов (т.е. приема дополни­
тельных кодовых символов) ранг матрицы А стремится к к, обеспечивая
таким образом разрешимость системы уравнений. Однако для достиже­
ния пропускной способности двоичного стирающего канала необходимо
минимизировать число избыточных символов, необходимых для гаран­
тированного восстановления сообщения. В случае преобразования Луби
минимизация должна проводиться по всем возможным распределениям
p(d). С точки зрения минимизации сложности вычислений на этапе коди­
рования и декодирования желательно найти такое распределение, чтобы
большая часть кодовых символов имела небольшую степень.
Для того, чтобы решить эту задачу, рассмотрим субоптимальный
метод решения системы (11.1), похожий на алгоритм распространения
доверия, который был рассмотрен в разд. 10.2.2. Если удастся найти рас­
пределение, при котором этот алгоритм сможет восстанавливать данные
по к + А принятым символам с небольшим запасом А, то декодер мак­
симального правдоподобия (т.е. метод Гаусса решения системы (11.1))
тем более справится с этим. Впрочем, рассматриваемый далее алгоритм
190
символы данных
Рис. 11.1. Граф LT-кода
декодирования представляет самостоятельную ценность ввиду исключи­
тельной своей простоты.
Будем называть степенью принятого символа число слагаемых, ис­
пользованных при его вычислении. Символ степени 1 ни в каких преоб­
разованиях не нуждается, так как является символом данных, и при
его получении может незамедлительно передаваться конечному потре­
бителю. Но кроме того, его можно вычесть из других кодовых символов
большей степени, при получении которых использовался этот же сим­
вол данных. В результате степень этих кодовых символов понижается, и
у некоторых из них падает до единицы. Таким образом, возникает воз­
можность восстановления все новых и новых символов данных. Но если
на некотором шаге этого алгоритма не обнаруживаются кодовые симво­
лы степени 1, декодирование останавливается, хотя система уравнений
(11.1) может быть разрешимой с точки зрения линейной алгебры. Будем
называть волной декодирования множество кодовых символов степени
1, а сами такие символы — активными.
Пример 11.1. Рассмотрим LT-код с к = 3. Предположим, что получены четыре ко­
довых символа г/і = щ , у 2 = щ + и2 + Щ,Уз = и2 + Щ.у^ = гц + и2. В графическом
виде их взаимосвязь с символами данных можно представить так, как это показано
на рис. 11.1. Первоначально волна декодирования включает только у\ . Символ щ
может быть получен непосредственно как у\. После его нахождения его можно вы­
честь из у 2 и у и исключить из волны декодирования. Теперь у 2 = и2 + щ , у ± = и2 и
волна содержит у4. Найдя и2, его можно вычесть из у 2 и у3, которые заменяют его в
волне декодирования. Таким образом, получены сразу две копии символа г/з.
4
11.2.2.
Волновые распределения
Для того, чтобы выбрать оптимальное распределение p(d), заме­
тим, что если потери пакетов происходят независимо друг от друга, то
распределения степеней принятых и переданных кодовых символов оди-
191
наковы. Распределение должно быть подобрано таким образом, чтобы
волна декодирования не уменьшилась до нуля, так как это приведет к
остановке процесса декодирования и может свидетельствовать о вырожденности матрицы А в (11.1). С другой стороны, волна не должна чрез­
мерно разрастаться, так как это приведет к тому, что после успешного
окончания декодирования останется много бесполезных кодовых симво­
лов. Таким образом, новые кодовые символы должны входить в волну
декодирования с той же скоростью, с которой символы, использованные
для восстановления данных, из нее выбывают.
Попытаемся построить идеальное волновое распределение, кото­
рое удовлетворяло бы этому требованию, причем средний размер волны
декодирования был бы равен единице. Это условие позволит миними­
зировать число избыточных символов. Однако если среднее случайной
величины равно т, то она может принимать значения как большие, так
и меньшие т. В данном случае это означает, что она может быть равной
нулю. К сожалению, это происходит с вероятностью, близкой к единице,
что делает идеальное распределение практически бесполезным. Однако
методы, используемые при его анализе, позволят далее получить более
работоспособное решение.
Будем считать одной итерацией декодера действия, необходимые
для восстановления ровно одного символа данных. Тогда номер итера­
ции t равен числу уже восстановленных символов данных. Пусть ht(d)
— среднее число кодовых символов степени d на шаге t. Среднее число
кодовых символов степени d, которые уменьшают свою степень до d — 1
за одну итерацию, равно среднему числу ребер в графе (см. рис. 11.1),
соединяющих узлы, соответствующие кодовым символам степени d, и
еще не восстановленные символы данных, т.е. h't (d) = ht(d)d/(k —t ). Так
как необходимо обеспечить, чтобы среднее число кодовых символов сте­
пени 1 было равно 1 на каждой итерации, должны выполняться условия
М 1) = 1, Лі(1) = h'0(2) = ho{2)2/k = 1, h2{1) = h[(2) = /ц (2)2/(/с-1) =
1 и т.д. Из этих соотношений можно получить идеальное волновое рас­
пределение
p{d)
Iк ’
dа -— 11
d(d-l) ’
1< d
d
Убедимся в том, что оно действительно удовлетворяет вышесформулированным требованиям. Вероятность того, что кодовый символ станет
активным на шаге к — L, когда остались непродекодированными L сим­
192
волов даннвіх, равна r(L) = Хл=і P(i)Q(h L), где q (i,L ) — аналогичная
вероятности для кодового символа, изначально имевшего степень г. По
определению активного узла д(1 , к ) = 1. При 2 < і < к , к —г + 1 > L > 1
q(i, L ) равна вероятности того, что і —2 символа данных, использован­
ных кодером при порождении этого кодового символа (они соответству­
ют смежным узлам в графе), находятся среди к —L — 1 ранее восстанов­
ленных символов, еще один такой символ восстанавливается на текущем
шаге, и еще один остается среди невосстановленных символов данных,
т.е.
2
iH ) tn S j( K t- i- j)
b k - L - 1И
q(i,L)
q
п д ід -л
Во всех остальных случаях q(i,L) = 0. Таким образом, г (к) = | , а при
L < к получим
г{1)
Е
b n іфД_________
to (fc -i-i-j)
П)r= ^ - j)
г=2
к
L
( і—3
Л-1
1-j)Y[{k~j)
;=г
г=2 у=0
з=о
k -L + l
-/с!ы У
^
г=2
( k - i ) \ ( k - L - 1)!
( k - L - i + 1)!
v
'
L ! ( k - L - 1)1 L
k\
Cfc- 1
L_ x
1
F
Z ^ ° b - i+ j
i=0
Таким образом, если число принятых символов равно к, на каждом шаге
в среднем будет активироваться ровно r(L )k = 1 кодовый символ. Так
как на начальном этапе среднее значение размера волны равно р(1)к = 1,
в среднем ее размер останется далее равен этой величине.
Для того, чтобы с достаточно большой вероятностью 1 —5 размер
волны декодирования не упал до нуля, необходимо создать достаточно
большой запас кодовых символов степени 1. Это реализуется с помощью
устойчивого волнового распределения fi(d) =
Где
fc!
( R/ ( dk) ,
r ( d ) = < R \n {R /6 )/k ,
[o,
l < d < k / R —l
d = k /R
k /R
+ 1 <
d
<
k,
193
тельство которой приведено в [49], утверждает, что использование этого
распределения позволяет с вероятностью 1 —5 произвести восстановле­
ние данных по любому множеству К > к принятых пакетов, и
К -к
к
In2(к/6)
( 11.2)
При этом среднее число арифметических операций, требуемых для ко­
дирования и декодирования данных, составляет 0 (к \п (к /6 )). Таким об­
разом, LT-коды позволяют достичь пропускной способности двоичного
стирающего канала.
11.2.3.
Хищные коды
К сожалению, для сравнительно небольших значений к и малых
вероятностей отказа 6 избыточность LT-кодов, задаваемая (11.2), ока­
зывается слишком большой. Для преодоления этой проблемы в работе
[63] были предложены хищные коды (raptor codes, raptor - сокращение
от Rapid Tornado, торнадо-коды являются другим классом кодов, ис­
правляющих стирания). Основная идея этого подхода состоит в том, что
если сначала закодировать данные каким-либо линейным блоковым ко­
дом (например, БЧХ или МППЧ), способным исправлять достаточно
большое число стираний, а затем подвергнуть кодовое слово этого кода
преобразованию Луби, то декодер внутреннего LT-кода может отказать­
ся от восстановления некоторого числа символов данных. Эти символы
могут быть восстановлены с помощью декодера внешнего кода. Впро­
чем, на практике приходится использовать декодирование по максиму­
му правдоподобия, так как LT-декодер не способен восстановить многие
исправимые конфигурации стираний. Оно сводится к решению системы
уравнений uGA = у, где G — порождающая матрица внешнего кода и А
— матрица преобразования Луби. При этом особую важность приобрета­
ет построение быстрых алгоритмов решения этой системы. Существует
возможность построить реализацию алгоритма Гаусса, которая исполь­
зовала бы разреженную структуру матрицы А для ускорения вычисле­
ний [45].
194
Часть IV
Составные коды
195
12. Методы комбинирования кодов
Задача построения хороших длинных кодов, вообще говоря, явля­
ется достаточно нетривиальной. Ее можно решать, комбинируя и мо­
дифицируя уже построенные хорошие коды. Многие известные на сего­
дняшний день оптимальные конструкции получены с помощью методов,
рассматриваемых в данном разделе.
12.1.
12.1.1.
Простые преобразования кодов
Укорочение линейных блоковых кодов
При использовании линейного (n, k, d) кода необязательно кодиро­
вать ровно к символов передаваемых данных. Если необходимо передать
меньшее их количество, недостающие символы можно положить равны­
ми нулю. Как было показано в разд. 2.2.1, для всякого линейного кода
можно получить порождающую матрицу (возможно, с переставленны­
ми столбцами) вида G = (І\А). Если часть кодируемых символов всегда
равна нулю, то при использовании такой порождающей матрицы неко­
торые символы кодового слова также всегда будут равны нулю. Так как
они не несут никакой полезной информации, при передаче их можно про­
пустить. Это эквивалентно использованию кода с порождающей матри­
цей, полученной путем вычеркивания части строк и соответствующих
им столбцов матрицы G. Ясно, что такое преобразование приводит к
(п —д, к — 6, d) коду, где 6 — количество вычеркиваемых строк.
Пример 12.1. Рассмотрим двоичный (7 ,4 ,3 ) код эквивалентный коду Хэмминга, с
порождающей матрицей
/1
0
0
\о
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1\
1
0
V
Вычеркивая последние две строки, обнаружим, что третий и четвертый столбцы по­
лученной матрицы равны нулю и потому тоже могут быть вычеркнуты. В результате
г,
Л ^0 ^1 О
Л
,, 0 ^
^ Ш, порождающую (5, 2, 3)
получим матрицу G — Ш
12.1.2.
код.
Выкалывание
Часть символов кодового слова при передаче может быть пропу­
щена. Это приведет к уменьшению длины кода на т и минимального
197
расстояния не более чем на т, где т — число выкалываемых симво­
лов. В случае линейных блоковых кодов с проверочной матрицей ви­
да Н = (А\І) это преобразование может быть описано как удаление т
столбцов единичной подматрицы и соответствующих им (т.е. содержа­
щих единицы в удаленных столбцах) строк. При декодировании выколо­
тые символы должны рассматриваться как стертые.
12.1.3.
Расширение
Если минимальное расстояние d двоичного линейного блокового ко­
да нечетно, то оно может быть увеличено на единицу путем добавления к
каждому кодовому слову одного символа, равного сумме всех остальных
(символ проверки на четность). Действительно, в этом случае все кодо­
вые слова веса d увеличат свой вес на единицу, т.е. минимальное расстоя­
ние кода станет равным d+ 1. Соответствующая порождающая матрица
получается путем дописывания к каждой строке исходной порождающей
матрицы символа проверки на четность, а проверочная матрица получа­
ется путем добавления одной строки, содержащей все единицы, и одного
столбца, содержащего нули во всех позициях, кроме той, которая соот­
ветствует вновь добавленной строке.
Пример 12.2. Проделав описанные преобразования с проверочной матрицей кода
Хэмминга (2.6), получим проверочную матрицу расширенного (8, 4, 4) кода Хэмминга
/0
0
0
\1
1 0 1 0 1 0 1\
01 1 0 0 1 1
00 0 1 1 1 1
1 1 1 1 1 1 1/
12.2. Составные коды
12.2.1.
Чередование кодов
Пусть даны два блоковых кода С\ и
с параметрами
(ni, k \,d i), (п 2 , k2,d 2) над одним и тем же алфавитом. Их чередованием
называется код С = { (c i,C 2 )|c i E Сі,С 2 E С2 }. Параметры полученного
кода имеют вид (щ + П2 , Ад + &2, min(di, cfc)), порождающая и проверочная матрицы могут быть записаны как G =
12.2.2.
Прямая сумма кодов
Пусть даны два блоковых кода С\ и С2 одинаковой длины над
одним и тем же алфавитом. Их прямой суммой называется код С =
{с\ + С2 ІС1 E Сі, С E С2 } - В случае линейных кодов параметры получен­
2
198
ного кода имеют вид (п ,к \ + k2,d < min(<ii, <і2)), а порождающая мат­
Gi
рица равна G
Точное значение минимального расстояния и
G2
структура проверочной матрицы зависят от конкретных используемых
кодов.
12.2.3.
Конструкция Плоткина
Пусть даны линейные коды
с параметрами (n ,k \,d \) и
(п , &2, d2). Построим новый код как С = {(и, и + n)|w € Сц, ѵ G C2}. Оче­
видно, что он также является линейным, его длина равна 2п, а раз­
мерность — Ад + &2- Такой метод построения известен как конструкция
Плоткина или конструкция (и\и + ѵ). Порождающая матрица получен'G i <?Л
ного таким образом кода имеет вид G =
о gJ -
Теорема 12.1. Минимальное расстояние кода С, полученного с помо­
щью конструкции Плоткина из кодов Ci(n,k\,d\) и C2(n, &2, d2), равно
mm(2di,d,2).
Доказательство. Отметим, что код С содержит слова (щ и) и (0,н), где
<+ — ненулевые слова минимального веса кодов С*, г = 1,2, поэтому его
минимальное расстояние не может быть больше min(2c?i, ^ ) - Пусть q ,c '
— ненулевые слова кодов С{ такие, что (и, и + ѵ) Ф (и', и' + v'). Тогда
D = с?#((гц и + ѵ), (V, и’ + ѵ')) = dn{u, uf) + dpp(u + щ и' + г/). Если
ѵ = ѵ', то D = 2dH (u,ur) > 2d\. В противном случае, воспользовав­
шись неравенством треугольника в форме dpp(a, с) > dpp(a, &) —Фя(с>&),
получим D > dpp(u,u!) + dn(u + ѵ ,и + v') — фя(Ѵ + v ',u + 1/) =
dn(u, u ') + dn(v, v ') — dn( uf, и ) = dn(v, v') > d2.
□
П рим ер 12.3. Попытаемся построить двоичный (10,3,5) код. Он является опти­
мальным, так как в силу границы Грайсмера N ( 3 , 5 ) > 5 + 3 + 2 = 10. Вос­
пользуемся (7,4,3) кодом эквивалентным коду Хэмминга (см. (12.1)), укоротив его
до кода С і(6,3,3), а такж е кодом с повторениями С2( 6 ,1,6). Комбинируя их с по­
мощью конструкции Плоткина, получим код 17(12,4,6) с порождающей матрицей
/ 1 0 0 1 0 1 1 0 0 1 0 1 \
G' =
0 1 0 1 1 1 0 1 0 1 1 1
0 0 1 1 1 0 0 0 1 1 1 0
\ 0 0 0 0 0 0 1 1 1 1 1 1 /
В ы калы вая один символ (последний)
получим код С (11, 4, 5). Укорачивая его на один символ (первый), получим искомый
1 0 1 1 1 0 1 0 1 1\
код С(10, 3, 5) с порождающей матрицей G
0 1 1 1 0 0 0 1 1 1
0 00 0 0 1 1 1 1 1
.
/
199
Пусть (уі, у2) = (и ,и + ѵ) + (еі,б 2 ) — вектор, соответствующий
кодовому слову кода С С Fqn, переданному по g-ичному симметричному
каналу. Предположим, что известны алгоритмы декодирования кодов С%
в метрике Хэмминга, способные исправлять [(di — 1)/2J ошибок. Тогда
декодирование кода С может быть выполнено следующим образом:
1. Вычислить у'2 = У2 — Уі = ѵ + е2 — е\.
2. Продекодировать у'2 в коде Съ- Пусть ѵ — кодовое слово, найден­
ное при этом. Если число произошедших ошибок t не превосходит
|_(d — 1)/2J , где d = min(2rfi, гіг) < efe, декодер кода C2 сможет ис­
править вектор ошибки е2 — е\ в силу того, что w tя (e 2 — е\) <
w ttf(ei) + w tH(e2) = t.
3. Вычислить у[ = у2 —ѵ = щ + б2 (последнее равенство верно только
в том случае, если декодирование на предыдущем шаге было успеш­
ным). Продекодировать у\ и у[ в коде С\. Пусть и1, и" — найденные
при этом кодовые слова. В качестве окончательного решения и выби­
рается то из этих кодовых слов, для которого dtf((u, и), (уі, у2 — ѵ))
является минимальным. Если число произошедших ошибок t не пре­
восходит [(d —1)/2J < [(2di —1)/2J , по крайней мере одна из этих
попыток декодирования будет успешной, так как если w t#(ei) >
(di - 1)/2, то w t# (e 2 ) = t — w tя(el) < [(2d\ — 1)/2J - (d\ - l)/2 <
L(di)/2j.
12.3.
12.3.1.
Каскадные коды
Прямое произведение кодов
Пусть даны коды Сц(пі,
d\), £ 2 (^ 2 , ^2 , <^2) над ¥ q. Закодируем к2
блоков данных размером по к \ символов кодом С\ и расположим полу­
ченные кодовые слова в виде строк к2 х п\ матрицы. Закодируем далее
каждый ее столбец кодом С2 и выпишем все элементы матрицы в ви­
де одного вектора. Множество С получаемых таким образом векторов
длины П1П2 называется прямым произведением кодов С\ и С2. Очевид­
но, что С является линейным блоковым кодом с размерностью к\к2- Его
порождающая матрица может быть получена как кронекеровское произ­
ведение1 порождающих матриц компонентных кодов. В силу линейности
не имеет значения, в каком порядке производится кодирование: вначале
по строчкам, а затем по столбцам, или наоборот.
1Кронекеровским произведением матриц Аж В называют блочную матрицу А х В,
полученную заменой всех элементов Ац на матрицы А ^В .
200
суперканал
Рис. 12.1. Каскадный код
Т еорем а 12.2. Минимальное расстояние прямого произведения С кодов
C lin u k u d !) и C2 (n 2 , &2 , cfc) равно d\d2Доказательство. Рассмотрим два различных кодовых слова С, пред­
ставленных в виде П2 х щ матриц. Те строки, в которых они не совпада­
ют, отличаются друг от друга не менее чем в d\ позициях, т.е. в матрице
имеется не менее чем d\ различных столбцов. Но столбцы являются ко­
довыми словами кода С2 и различаются не менее чем в <І2 позициях, т.е.
общее число несовпадающих символов не может быть меньше d\d2С другой стороны, для того, чтобы построить кодовое слово веса
d\d27 можно взять кодовые слова с ^ G Сі веса di,i = 1,2, и построить
матрицу с элементами crs = cr cs , 1 < г < 112, 1 < s < щ , которая
является кодовым словом кода-произведения.
□
Декодирование прямого произведения кодов является доста­
точно нетривиальной задачей. Отметим лишь, что непосредствен­
ное применение декодеров компонентных кодов, способных исправ­
лять [(di —1)/2J ошибок в строчках и столбцах позволяет исправить
лишь [(d\ —l)/2 j |_(й?2 —1)/2J ошибок во всем кодовом слове, что мно­
го меньше [(d\d2 —1)/2J , радиуса однозначного декодирования кодапроизведения.
12.3.2.
К аск ад н ы е коды
Пусть даны (N, К , D ) код С\ над F qk и (п, k , d) код С2 над ¥ q. Рас­
смотрим кодирование блока символов длиной К к. Сгруппируем вна­
чале символы в подблоки (и ц , . . . , Щк), 1 < г < К, и представим их
в виде элементов щ = Y ^ = i uijPj поля ¥ qk, где
— некото­
рый его базис. Закодируем далее символы щ кодом С\. Символы полу­
ченного кодового слова ( Сі , . . . , СД) разложим по этому же базису как
Q = E U Cij(3j. Блоки символов (С ц, . . . , Сц.) закодируем кодом С2
(см. рис. 12.1). Таким образом, будет получен (Nn, Кк, Dd) код. С\ и
С2 называют, соответственно, внешним и внутренним кодами. Короткий
201
код С2 обычно не представляет труда продекодировать по максимуму
правдоподобия, несколько понизив таким образом вероятность ошибки
по сравнению с изначально наблюдаемой в канале. Это создает более
благоприятные условия для работы декодера внешнего кода, в качестве
которого обычно используют код Рида-Соломона или его аналоги, деко­
дирование которых по максимуму правдоподобия является практически
неразрешимой задачей.
Иногда в качестве внутреннего кода используется сверточный код,
причем все символы Сц обрабатываются как единый поток. В случае
ошибки при его декодировании может появиться достаточно длинная
последовательность неправильных оценок Сц, которая превратится в
несколько неправильных Су Несколько таких событий может привести
к тому, что число неправильных С% превысит корректирующую способ­
ность внешнего кода, и произойдет ошибка его декодирования. Для борь­
бы с этим явлением может использоваться перемежение. Более конкрет­
но, на этапе кодирования накапливается несколько кодовых слов внешне­
го кода, их символы некоторым предопределенным образом перемешива­
ются, после чего кодируются внутренним кодом. В этом случае ошибки,
порожденные декодером внутреннего кода, оказываются рассредоточе­
ны по нескольким кодовым словам внешнего кода, что повышает веро­
ятность успешного декодирования каждого из них.
202
13. Турбо-коды
13.1.
13.1.1.
Конструкция
Мотивация
Методы решения задачи надежной передачи информации, рассмат­
ривавшиеся во всех предшествующих главах, сводились к построению
некоторого кода с определенными алгебраическими свойствами, для ко­
торого затем формулировались различные алгоритмы декодирования,
использующие эти свойства. При этом ставилась задача максимизиро­
вать минимальное расстояние полученного кода, а также обеспечить ис­
правление гарантированного числа ошибок в метрике Хэмминга. Приве­
денные результаты статистического моделирования свидетельствуют о
том, что большинство таких алгоритмов не обеспечивает декодирование
по максимуму правдоподобия, а вероятность ошибки при декодировании
по максимуму правдоподобия весьма далека от оптимальной.
В 1993 году произошла революция в теории помехоустойчивого ко­
дирования. В работе [18] был предложен противоположный подход к ре­
шению этой задачи: на основе идей, давно нашедших свое применение
в теории и практике систем автоматического управления, многомерной
оптимизации и статистической физике, был сформулирован алгоритм де­
кодирования с использованием обратной связи (турбо-декодирование), а
также предложены коды, которые могут быть продекодированы с помо­
щью этого алгоритма. В отличие от рассмотренных выше строгих алгеб­
раических методов, конструкция турбо-кодов носит во многом эвристи­
ческий характер. Несмотря на это, ее использование впервые позволило
приблизиться к пределу Шеннона, хотя с точки зрения классической
теории кодирования эти коды оказываются весьма плохими. Тем не ме­
нее, последняя особенность ограничивает использование турбо-кодов и
их аналогов в системах, требующих особо надежной помехозащиты, так
как приближение к пределу Шеннона достигается только в области ма­
лых отношений сигнал/шум (до вероятности ошибки на кодовое слово
порядка ІО-5 ), в то время как дальнейшее его увеличение приводит к
крайне медленному снижению вероятности ошибки декодирования.
203
Рис. 13.1. Пример турбо-кодера
13.1.2.
К оди ровани е
Структура классического кодера турбо-кода представлена на рис.
13.1. Он состоит из двух кодеров рекурсивных систематических сверточ­
ных кодов и перемежителя. Отметим, что здесь под кодером сверточ­
ного кода понимается только его часть, связанная с регистром сдвига
(сравните с рис. 9.1, Ь), в то время как выход, дублирующий информа­
ционные символы, вынесен отдельно. Перемежитель представляет собой
устройство, которое некоторым предопределенным образом переставля­
ет символы в поданном на его вход блоке данных. Таким образом, в
отличие от сверточных кодов, которые в принципе могут порождать ко­
довые последовательности произвольной длины, турбо-код является бло­
ковым кодом. Приведенная на рисунке структура является примерной;
допускается использование большего числа компонентных сверточных
кодеров, причем их порождающие многочлены могут быть различными.
Могут использоваться и (по, &о)-свеРточные коды с ко > 1. Очевидно,
что турбо-коды являются линейными.
Как было отмечено в разд. 9.1.1, для снижения вероятности ошибки
декодирования целесообразно после обработки всех кодируемых симво­
лов перевести кодер сверточного кода в нулевое состояние, что требует
подачи на его вход некоторой последовательности фиктивных информа­
ционных символов. В случае рекурсивного систематического сверточно­
го кода эта последовательность равна выходу регистра сдвига с линей­
204
ной обратной связью. В силу того, что информационные последователь­
ности, обрабатываемые компонентными кодерами, входящими в состав
турбо-кодера, различаются (пусть и на фиксированную перестановку),
невозможно подобрать такую последовательность информационных сим­
волов, которая приводила бы в нулевое состояние оба сверточных коде­
ра. Поэтому обычно обнуление регистра сдвига производится только для
одного из них, а конечные состояния прочих полагаются при декодиро­
вании равновероятными.
Использование рекурсивных систематических сверточных кодеров
обусловлено тем, что они отображают многие информационные последо­
вательности конечного веса на кодовые последовательности бесконечно­
го (на практике — большого) веса. При это благодаря наличию переме­
жителя с большой вероятностью информационная последовательность,
которая все же была преобразована одним из кодеров в кодовую после­
довательность конечного и малого веса, после перестановки символов и
кодирования другим сверточным кодером отобразится в последователь­
ность большого веса.
При декодировании декодеры компонентных кодов обмениваются
друг с другом информацией, представляющей собой оценки информаци­
онных символов. При этом, как было показано в разд. 9.2.3, ошибка деко­
дирования сверточного кода приводит к возникновению пакета ошибок
на выходе декодера. Таким образом, чем больше минимальное свободное
расстояние компонентных кодов, тем больше неправильных “подсказок”
может передать один декодер другому. В связи с этим при построении
турбо-кодов используются сверточные коды с небольшой длиной кодово­
го ограничения. При этом использование перемежителя позволяет при
декодировании разнести ошибочные “подсказки”, возникшие вследствие
отдельно взятой ошибки декодирования, по всей длине кодового слова,
снижая таким образом вероятность того, что они приведут к ошибке де­
кодирования другого компонентного кода.
13.1.3.
Построение перемежителя
Задачей перемежителя является перестановка символов в блоке
данных, поданном на его вход. При этом символы, находящиеся изна­
чально в близко расположенных позициях, должны перемещаться в мак­
симально удаленные друг от друга позиции. Это можно формально за­
писать как
О < \і — j\ < d => \тѵ(і) —7г(j ) I > S,
(13.1)
205
где 7г — перестановка, реализуемая перемежителем. Помимо параметров
d и S, с практической точки зрения представляют важность такие харак­
теристики, как объем оперативной памяти и задержка, требуемые для
реализации перестановки.
Простейший подход к построению перемежителя состоит в случай­
ной генерации перестановок с отбрасыванием тех из них, которые не
удовлетворяют (13.1) при заданных d и S. Недостатком такого подхода
является большой объем памяти, требуемый для хранения полученной
перестановки.
Табличный перемежитель исключительно прост в реализации и
приводит к турбо-кодам с хорошими характеристиками. Для реализа­
ции соответствующей перестановки используется d х d таблица, к = d2
информационных символов записываются в нее построчно слева направо
сверху вниз, после чего считываются по столбцам, причем считывание
ведется снизу вверх слева направо. Можно показать, что при этом до­
стигается S = d.
Наилучшие из известных турбо-кодов были получены с помощью
перемежителя, реализующего отображение Q (i) —>• Q(i + 1) mod к, 0 <
і < к, где Q(x) — перестановочный многочлен, т.е. такой полином, что
ѴіД/ : і = Q(j) mod к. В качестве такого многочлена может быть выбран
Q{x) = / ж(ж+1) то с і Где I — нечетное число [64].
13.2.
13.2.1.
Декодирование
Турбо-декодер
Основной идеей турбо-декодирования является поочередное деко­
дирование компонентных сверточных кодов, причем результаты деко­
дирования одного кода являются “подсказками” для другого декодера.
Этот процесс повторяется несколько раз и при удачном стечении обсто­
ятельств приводит к кодовому слову турбо-кода, являющемуся наиболее
вероятным для данной принятой последовательности. Впрочем, иногда
декодер сходится к некоторой последовательности, не являющейся кодо­
вым словом, или входит в колебательный режим. Существенным недо­
статком описанного алгоритма турбо-декодирования является сложность
обнаружения таких событий1. Тем не менее, в большинстве случаев этот
1Напомним, что описанные выше алгоритмы декодирования кодов БЧХ фиксиру­
ют отказ от декодирования в том случае, если число различных корней многочлена
локаторов ошибок меньше его степени, а итеративный алгоритм декодирования кодов
206
Рис. 13.2. Структура турбо-декодера
алгоритм обеспечивает декодирование почти по максимуму правдоподо­
бия.
Структурная схема алгоритма декодирования приведена на рис.
13.2. Исходивши данными декодера являются логарифмические отно­
шения правдоподобия Ьц = In
, 1 < i < к + W, 1 < j < 3,
всех символов принятой последовательности. Для определенности будем
считать, что декодирование компонентных кодов осуществляется с по­
мощью алгоритма Бала-Коке-Елинека-Равива. Напомним, что он имеет
возможность (см. (9.6)) учитывать априорную информацию о вероят­
ности того, что информационные символы щ равны нулю или едини­
це. Первоначально величины Д о, Д і обрабатываются декодером первого
компонентного кода, причем Ье(щ) в (9.6) полагается равным нулю. Ве­
личины L(uj), вычисленные в соответствии с (9.3), суммируются*2 с До
и после перестановки обрабатываются декодером второго компонентного
кода совместно с Д 2 . Вычисленные им величины Ь'{иж(^) подвергаются
обратной перестановке и рассматриваются в качестве Ье(щ). Эти дей­
ствия выполняются несколько раз (обычно 5-6), после чего принимаются
решения относительно каждого из информационных символов щ.
МППЧ включает проверку на равенство нулю синдрома восстановленного кодового
слова.
2Для упрощения описания восполвзуемся тем, что все компонентнвіе коды явля­
ются рекурсивнвіми систематическими. Это позволяет сгруппироватв Ье(щ) с соот­
ветствующим Li0.
207
14. Кодовая модуляция
14.1.
Реш етчато-кодовая модуляция
14.1.1.
Сигнальные множества
Для обеспечения высокой спектральной эффективности систем пе­
редачи информации необходимо использовать большие сигнальные мно­
жества X. Если не используется помехоустойчивое кодирование, один
символ М-ичного сигнального множества позволяет представить log2 М
битов полезной информации. Если время передачи одного символа оста­
ется фиксированным, это позволяет в log2 М раз увеличить скорость
передачи данных по сравнению с простейшей двоичной модуляцией
(X = { —\fW s, л/Д?}), рассмотренной в разд. 1.2.4. Наибольшее распро­
странение получили следующие методы цифровой модуляции:
1. Амплитудно-импульсная модуляция (рис. 14.1, а). Сигнальное мно­
жество имеет вид
X =
{щ
=
(2і
+
1 - M )d
G R
\i
G
{ 0 ,1 , . . . , M
-
1}} .
Средняя энергия сигнала M -AM равна
,2 М—1
,2
X
+ і=0
Е ‘ = Ѣ
1
М )2
=Т
-^
<м 2
Вероятность ошибки на символ при передаче данных без кодирова­
ния по аддитивному гауссовскому каналу может быть найдена как
Р м -А М
2М -2
М
Q
6Es/No
М2- 1
2(М —1
М
Q
6 log2 М Е ъ
М 2 - 1 Nq
2. Фазовая модуляция (рис. 14.1, Ь). Сигнальное множество имеет вид
X =
= ез2жм G
С|г
G
{0, 1, . . . , М —1 } | .
Средняя энергия сигнала М-ФМ равна E s = 1. Вероятность ошибки
на символ при передаче данных без кодирования по аддитивному
гауссовскому каналу может быть найдена как
Р;М-ФМ
"7г/М
— 7Г
208
—E s/N 0 sin2 Ѳ
—
e
= 1
/M
roc
--------
-------- / и е - ^ - ^ ^ ^ с І г и І Ѳ
IT
'0
о
11 •
- К
,
и о
k -
in
101
001
i
i
j
о
о-
r
К
ь
2
000
001
OIL
010
011
t
)
t
>
- К
i
- ?K
(Ь)
(а)
10
Рис. 14.1. Пространственные диаграммы сигналов различных методов
модуляции:
а — амплитудно-импульсная модуляция; b — фазовая модуляция; с —
квадратурно-амплитудная модуляция
3. Квадратурно-амплитудная модуляция (рис. 14.1, с). Если М явля­
ется полным квадратом, то сигнальное множество имеет вид
X = I щ + <ij} G С|щ = (2і + 1 —л/М )ф i E |o, 1 , ..., л[М —1 j j .
Средняя энергия сигнала M- К AM равна E s = 2 у ( М 2 —1). Вероят­
ность ошибки на символ при передаче данных без кодирования по
аддитивному гауссовскому каналу может быть найдена как
р“ ”' “
' ~ ( ' ~
ч
1 ~ Ц
і ю
У
т
Ц
т
) )
Отметим, что вещественная и мнимая компоненты сигнала
квадратурно-амплитудной модуляции фактически представляют со­
бой сигналы амплитудно-импульсной модуляции.
Как правило, параметр d вышеприведенных сигнальных множеств вы­
бирается таким образом, чтобы обеспечить фиксированную (обычно —
209
равную 1) среднюю энергию сигнала E s. Повышения спектральной эф­
фективности системы связи, т.е. увеличение числа битов полезной ин­
формации, передаваемых за один символьный интервал, требует исполь­
зования сигнальных множеств большей размерности М . Заметим, что
при фиксированном E s увеличение М приводит к уменьшению рассто­
яния Евклида между элементами сигнального множества. Это приво­
дит к быстрому увеличению вероятности ошибки декодирования. Для
предотвращения этого можно закодировать данные каким-либо коррек­
тирующим кодом, описанным в предыдущих главах. При этом придется
обеспечить передачу дополнительных проверочных символов, что при
фиксированной скорости передачи полезных данных может быть реа­
лизовано или за счет уменьшения длительности символьного интервала
(т.е. времени, в течение которого осуществляется передача одного сим­
вола), или дополнительного увеличения сигнального множества. Умень­
шение длительности символьного интервала приводит к снижению отно­
шения сигнал/шум и увеличению полосы частот, занимаемых системой,
что зачастую недопустимо. Увеличение сигнального множества может
привести к еще большему росту вероятности ошибки, которое не всегда
может быть скомпенсировано за счет использования корректирующих
кодов. Таким образом, разработка методов помехоустойчивого кодирова­
ния для данного класса систем, называемых ограниченными по полосе,
является нетривиальной задачей, которая может быть сформулирована
как построение кодов в метрике Евклида. Все коды, рассматривавшиеся
выше, изначально строились в предположении о том, что декодирование
осуществляется в метрике Хэмминга, даже если это явно не было указа­
но. Как будет показано далее, на их основе могут быть созданы коды для
случая метрики Евклида. Соответствующие конструкции носят название
методов кодовой модуляции.
14.1.2.
Конструкция Унгербёка
В основе конструкции решетчато-кодовой модуляции (РКМ) ле­
жит некоторый двоичный (к + 1,к) сверточный код и сигнальное мно­
жество X, содержащее М =
элементов, которое разбито на 2к+1
подмножеств X* одинакового размера. На рис. 14.2 представлена схема
кодера решетчато-кодовой модуляции. Поток данных разбивается на
блоки по к + т символов, к символов каждого блока преобразуются ко­
дером сверточного кода в к + 1 символов. Каждый такой блок использу­
ется для того, чтобы выбрать одно из подмножеств
сигнального мно-
210
Рис. 14.2. решетчато-кодовая модуляция
жества. Конкретнвій передаваемвій сигнал определяется оставшимися
т символами даннвіх. Множество последователвностей, которые могут
бвітв порожденві таким кодером, может бвітв представлено в виде путей
в решетке, аналогично тому, как это бвіло сделано в случае сверточных
кодов. Структура решетки повторяет структуру решетки используемого
сверточного кода, однако вместо одного ребра, соединяющего смежные
ее узлы, в решетке РКМ присутствуют 2т параллельных ребер, которые
соответствуют различным элементам подмножества Х і , определяемого
блоком символов, порождаемых кодером при переходе между соответ­
ствующими состояниями. Декодирование также может быть выполнено
с помощью алгоритма Витерби. Напомним, что он строит набор путей в
решетке, ближайших к принятой последовательности. Отбраковка мало­
правдоподобных путей происходит в тот момент, когда несколько путей
сходятся в одном узле решетки. Очевидно, что из множества параллель­
ных ребер, соединяющих фиксированную пару узлов решетки, достаточ­
но рассмотреть только одно, соответствующее элементу подмножества
Х і (г определяется начальным и конечным состояниями), ближайшему к
принятой последовательности. При этом для минимизации вероятности
ошибки желательно, чтобы расстояние Евклида между этими сигналами
было как можно большим. Это необходимо обеспечить при построении
разбиения X = [_ф=1 Хц причем индекс г в двоичном представлении ис­
пользуется для выбора используемого подмножества в зависимости от
того, какой блок символов был порожден сверточным кодером. Подхо­
дящее разбиение может быть построено рекурсивно. Для этого на каж­
дом уровне рекурсии будем разбивать сигнальное множество на два под­
множества так, чтобы минимальное расстояние между их элементами
увеличивалось. Пример такого разбиения представлен на рис. 14.3. Как
и в случае сверточных кодов, данная сигнально-кодовая конструкция
211
•о # о « о « о
• О О О І О О О
Хо
о # о « о « о «
О О І О О О І О
Хі
0
* 0 0 0 * 0 0
Х2
0
0
0
* 0 0 0 *
Хз
Рис. 14.3. Разбиение Унгербёка сигнального множества 8-АМ
может быть охарактеризована своим минимальным свободным рассто­
янием Евклида.
Качество различных схем кодовой модуляции может быть охарак­
теризовано в терминах энергетического выигрыша, который определя­
ется как
7д Б = 10 log10
где E SjC и d% — средняя энергия на символ и квадрат минимального сво­
бодного расстояния в системе с кодированием, и E s^u — средняя энер­
гия на символ в системе без кодирования. Эта величина показывает,
на сколько децибел можно уменьшить отношение сигнал/шум в систе­
ме с РКМ по сравнению с системой без кодирования, обеспечивая при
этом одну и ту же достаточно малую вероятность ошибки на бит и ско­
рость (бит/символ). Необходимо отметить, что в области сравнительно
больших вероятностей ошибки корректирующая способность РКМ мо­
жет оказаться хуже, чем в системах без кодирования.
14.1.3.
Хорошие решетчатые коды
Как и в случае сверточных кодов, задача подбора параметров РКМ
решается переборными методами с помощью ЭВМ. В данном разделе
представлены таблицы с некоторыми хорошими решетчатыми кодами.
Эти таблицы предполагают использование рекурсивного систематиче­
ского сверточного кода с порождающей матрицей вида
G=
/9і(х)/до(х) 1 0
9 2{х)/до{х) О 1
••• о>
.. . О
\9к(х)/до(х) О 0
... Оу
где д%{х) =
— порождающие полиномы. Структурная схема
соответствующего кодера представлена на рис. 14.4. В таблицах 14.1,
14.2 и 14.3 представлены порождающие многочлены (в восьмеричной за­
писи) для фазовой, амплитудно-импульсной и квадратурно-амплитудной
модуляции [51], а также соответствующий асимптотический энергетиче-
212
Рис. 14.4. Кодер рекурсивного систематического сверточного кода со
скоростью R = к/ ( к + 1).
Рис. 14.5. Многоуровневое кодирование и многошаговое декодирование
ский выигрыш по сравнению с аналогичными методами модуляции без
кодирования.
14.2.
Многоуровневые коды
14.2.1.
Основные понятия
Конструкция многоуровневых кодов является обобщением
решетчато-кодовой модуляции и позволяет построить код длины п
над некоторым алфавитом А на базе нескольких компонентных (обычно
двоичных) кодов той же длины [40].
Пусть дано некоторое сигнальное множество X, содержащее 21 эле­
ментов. Предположим, что оно разбито на два подмножества одинако­
вой мощности х ( ° ) , х ^ , которые в свою очередь разбиты на равномощ-
213
Таблица 14.1
Порождающие многочлены фазовой решетчато-кодовой
модуляции
Число состояний
4
8
16
32
64
128
256
512
до
5
11
23
45
103
277
435
1525
ді
2
2
4
16
30
54
72
462
д2
4
15
34
66
122
130
360
7дв 8-ФМ/4-ФМ
3.0
3.6
4.1
4.6
5.0
5.2
5.8
5.8
Таблица 14.2
Порождающие многочлены амплитудно-импульсной
решетчато-кодовой модуляции
Число состояний
4
8
16
32
64
128
256
до
5
13
23
45
103
235
515
ді
2
4
4
10
24
126
362
7дБ 4-АМ/2-АМ
2.55
3.01
3.42
4.15
4.47
5.05
-
7дБ 8-АМ/4-АМ
3.31
3.77
4.18
4.91
5.23
5.81
5.81
ные подмножества х(0’0), х (°д), х ( 1’°), х ( 1д) И Т.Д.. Пусть (сц, . . . , С\п)
— результат кодирования к\ битов данных (n, ki , di ) кодом C\. По­
строим последовательность Х ^ 11^,. . . , X*'Cln'* множеств возможных зна­
чений для каждого из п символов формируемого кодового слова
(жі,. . . , х п) Е Хп. Закодируем еще к^ битов данных (n, к ^ (І2) кодом С2
и сузим множество возможных значений для каждого из символов оу до
Х(сі1’с2 і) ,...,х ( сі - С2«). После I таких шагов кодовое слово многоуровне­
вого кода может быть составлено из единственных элементов множеств
■^іси,с2і,...,сн)' Разбиение сигнального множества на подмножества может
выполняться различными способами; наиболее распространенным явля­
ется метод Унгербёка (см. рис. 14.3).
214
Таблица 14.3
П орож даю щ ие многочлены квадратурно-амплитудной
реш етчато-кодовой модуляции
Число состоя­
ний
4
8
16
32
64
128
256
512
до
9і
92
7дБ 16-КАМ/
8-ФМ
5
11
23
41
101
203
401
1001
2
2
4
6
16
14
56
346
4
16
10
64
42
304
510
4.4
5.3
6.1
6.1
6.8
7.4
7.4
7.4
7дБ
КАМ/16КАМ
3.0
4.0
4.8
4.8
5.4
6.0
6.0
6.0
32-
7дб
КАМ/32КАМ
2.8
3.8
4.6
4.6
5.2
5.8
5.8
5.8
64-
Декодирование многоуровневых кодов может быть выполнено сле­
дующим образом. Вычислим логарифмические отношения правдоподо­
бия для символов кодового слова первого кода как
=
Ъ
P{ci,j = 1\Уг} =
Р {Сі,і = 0|Уі }
P X Y {Xj = А У і }
PXY {%і = х \ у і }
и передадим их декодеру первого кода. Результатом его работы является
оценка соответствующего кодового слова с\ = ( с ц , ... ,сіп). Эта оценка
позволяет снизить неопределенность относительно того, какой из сим­
волов множества X использовался при порождении каждого из передан­
ных символов ащ Это позволяет вычислить логарифмические отношения
правдоподобия второго уровня как
£
_
1
P xY { хі = x\yi}
Х!жех(г^ 0) Px y { хі = х\уі}
Х ^<=Х (гііД)
На их основе может быть найдена оценка 02, и т.д. Данный метод носит
название алгоритма многошагового декодирования. Структурная схема
многоуровневого кодера и многошагового декодера представлена на рис.
14.5.
14.2.2.
Правила выбора компонентных кодов
Выбор компонентных кодов Сі оказывает существенное влияние на
корректирующую способность всего многоуровневого кода. В работе [79]
215
Рис. 14.6. Пропускные способности эквивалентных подканалов 8-АМ
бвіли предложены правила построения многоуровневвіх кодов, некото­
рые из которых приведенві ниже.
П равило п р о п ускны х способност ей
Совокупность устройства выбора подмножества сигнального мно­
жества и реального канала передачи данных может рассматриваться как
некоторый эквивалентный канал, который может быть охарактеризован
своей пропускной способностью. Если существует возможность исполь­
зовать коды, достигающие пропускной способности канала, их скорости
к і/п должны приближаться к пропускным способностям эквивалентных
подканалов. Использование этого правила приводит к многоуровневым
кодам, также достигающим пропускной способности рассматриваемого
канала.
Она в общем случае меньше, чем пропускная способность анало­
гичного канала с двоичным входом, так как один и тот же символ ко­
дового слова кода (д может передаваться с использованием различных
символов из X в зависимости от внешних факторов (символов кодовых
слов (д+ь • • • 5Сі). Это создает дополнительную неопределенность, ко­
торая не способствует повышению надежности принятия решения де­
кодером. Для того, чтобы найти пропускную способность г-ого экви­
валентного канала, предположим, что декодирование С д , . . . , ( д - і вы­
полнено безошибочно. В этом случае статистические свойства эквива­
лентного канала полностью определяются значениями случайных вели­
216
чин X i , . . . ,
т е 1,
а
=
i, соответствующих символам кодовых слов С\ , . . . , Сщі,
I{Y-Xi\X1, . . . , X i. 1)
7 ( У ; Х і+і , . . . , Х , | Х і , . . . , Х , ) .
=
В еличина
/ (У ; X j , . . .
, X t\Xu ... , Х ^ )
представляет собой пропускную способность, достигаемую при исполь­
зовании сигнального множества
где Xj — значение случай­
ной величины Xj . Для различных Xj пропускная способность такого
множества может быть разной, поэтому необходимо произвести усред­
нение по ним. Таким образом, пропускная способность г-ого эквива­
лентного канала равна С% = МЖь...)а;._1[/(У; Аф . . . , Х[\ х\ , . . . , х%-\)\ —
Л 4 ь...)Ж.[/(У ;Х т , . . . ,Х /|ж і, . . . , х і )\. На рис. 14.6 представлены графи­
ки зависимости пропускной способности эквивалентных подканалов 8АМ с разбиением Унгербёка. Для сравнения там же приведен график
пропускной способности системы с 2-АМ с расстоянием между симво­
лами, равным расстоянию между символами в первом эквивалентном
подканале. Видно, что возможность представления одного и того же сим­
вола кодового слова С\ приводит к значительному снижению пропускной
способности.
Основным недостатком правила пропускных способностей являет­
ся необходимость использования кодов С{, достигающих пропускной спо­
собности подканалов. До настоящего времени построить такие коды с
практически приемлемыми параметрами не удалось.
Правило кодовых экспонент
Предположим, что в качестве кодов Д используются случайные ко­
ды. В этом случае целесообразно подобрать их параметры таким обра­
зом, чтобы вероятность ошибки их декодирования (или экспонента слу­
чайного кодирования (1.7)) была одинаковой, т.е. скорость Щ = Д /п
кода Сі должна быть получена как решение уравнения
max (Еі(р) - pRi) = - - ^ lo g 2Ре,
0<р<1
іѵ
где
ре
—
требуемая
M Xu^ Xi_x [ - log2 Ei(p, xh . . . ,
вероятность
х і - i)] и
ошибки,
ЕДр)
1+p
Ei(p,x1} . . . , X i )
^ 2 P x {Хі }Ру\ х(УІЖі’ • • • , Xi- b Xi
.Xi=0
dy.
1Оптимизация распределения символов на входе канала здесь не производится,
так как при использовании почти всех практически значимых кодов оно оказывается
р авномерным.
217
Недостатком данного правила является отсутствие гарантий того, что
требуемая вероятность ошибки будет обеспечена с помощью конкретных
кодов.
Правило равных вероят ност ей ошибки
Если дано конкретное семейство кодов С, для которого существу­
ет возможность оценки вероятности ошибки в каждом из эквивалентных
подканалов в зависимости от скорости кода, то параметры кодов Сі могут
быть подобраны таким образом, чтобы эти вероятности были примерно
одинаковы. К сожалению, эту задачу редко удается решить аналитиче­
ски.
Правило сбалансированных м иним альны х расстояний
Каждое подмножество А^Хъ- ,Хі^ сигнального множества характе­
ризуется квадратом минимального расстояния Евклида <^+і между свои­
ми элементами. При использовании двоичного кода Сщщ с минимальным
расстоянием Хэмминга di+\ квадрат минимального расстояния Евклида
между кодовыми словами оказывается равен
Параметры кодов
могут быть подобраны таким образом, чтобы эти величины были при­
мерно одинаковы для всех і. Это приводит к многоуровневым кодам с
большим минимальным расстоянием, однако скорости некоторых компо­
нентных кодов при этом часто оказываются превышающими пропускную
способность эквивалентных подканалов. Это проявляется в чрезвычайно
большом числе кодовых слов наименьшего веса, что приводит к слишком
большой вероятности ошибки декодирования при небольших отношениях
сигнал/шум. В результате многоуровневые коды, построенные по такому
принципу, сильно проигрывают иным конструкциям.
218
Предметный указатель
алгоритм
Бала-Коке-Елинека-Равива, 159
Берлекэмпа-Месси, 90
Витерби, 158
Гао, 102
Герцеля, 98
Гурусвами-Судана, 107
декодирования
Box and Match, 54
многошагового, 215
по информационным совокуп­
ностям, 49
полного, 25
последовательного исключе­
ния, 129
последовательный, 131
с ограниченным расстоянием,
25
с помощью порядковых стати­
стик, 52
Евклида, 94
расширенный, 95
итеративный
интерполяцион­
ный, 110
Канто-Шабада, 51
Питерсона-ГоренстайнаЦирлера, 86
Рота-Рукенштейн, 111
распространения доверия, 174
Сугиямы, 96
Форни, 88
базис
линейного пространства, 36
модуля, 104
Грёбнера, 104
стандартный, 75
граница
Бассалыго-Элайеса, 43
Боуза-Чоудхури-Хоквингема,
83
Варшамова-Гилберта, 34
для линейных кодов, 41
Грайсмера, 42
Мак-Элиса-Родемича-РамсеяВелча, 43
объединенная верхняя, 47
Полтырева, 47
Синглтона, 35, 42
сферической упаковки, 29
Хэмминга, 34
граф
переходов, 150
Таннера, 167
нерегулярный, 168
регулярный, 168
группа
мультипликативная, 63
декодер
по обобщенному минимальному
расстоянию, 55
Чейза, 56
декодирование
жесткое, 21
мягкое, 21
поблоковое, 23
посимвольное, 23
списочное, 24
делители нуля, 62
детектирование
219
жесткое, 21
мягкое, 21
идеал, 64
главный, 65
двусторонний, 64
конечно порожденный, 64
левый, 64
максимальный, 65
правый, 64
канал
щичный симметричный, 19
со стираниями, 19
аддитивный гауссовский, 20
без памяти, 17
дискретный, 17
дискретный по времени, 17
передачи информации, 15, 17
полунепрерывный, 18
симметричный
по входу, 18
по выходу, 18
полностью, 18
стирающий д-ичный , 18
класс
смежный, 39
циклотомический, 73, 81
код
LT, 190
альтернантный, 112
БЧХ, 84
в узком смысле, 84
бесскоростной, 22, 189
блоковый, 22, 33
линейный, 35
Гоппы, 113
сепарабельный, 114
древовидный, 22, 149
220
дуальный, 38
многоуровневый, 213
полярный, 127
Рида-Маллера, 118
Рида-Соломона, 84, 99
обобщенный, 100
с максимальным достижимым
расстоянием, 42
с малой плотностью проверок на
четность, 167
самодуальный, 47
сверточный, 22, 149
катастрофический, 153
рекурсивный
систематиче­
ский, 152
совершенный, 34, 40
турбо, 204
фонтанный, 23, 189
Хэмминга, 40
расширенный, 198
хищный, 194
циклический, 77
примитивный, 80
эквивалентный, 37
кольцо, 61
вычетов, 65
главных идеалов, 65
критерий
декодирования с ограниченным
расстоянием, 33
идеального наблюдателя, 23
максимума правдоподобия, 23
минимального расстояния, 24
логарифм
Зеча, 74
локатор
кода, 100, ИЗ
ошибки, 85
матрица
обратная
правая, 153
ограничений,134
порождающая, 36
проверочная, 36
метрика, 24
Евклида, 25
Хэмминга, 24
многочлен
ошибок, 102
Гоппы, 113
Жегалкина, 118
значений ошибок, 87
локаторов
ошибок, 85
стираний, 89
минимальный, 70, 80
порождающий, 78
примитивный, 71
проверочный, 78
модуль, 103
модуляция
амплитудно-импульсная, 208
квадратурно-амплитудная, 209
кодовая, 210
решетчато-кодовая, 210
фазовая, 208
область
целостности, 62
ограничение
длины при декодировании, 158
кода на подполе, 82
кодовое, 149
отношение
конгруэнтности, 65
правдоподобия
логарифмическое, 21, 24
сигнал/шум
на бит, 20
на символ, 20
параметр
Бхаттачарьи, 26
покрытие, 49
поле, 63
конечное, 67
полукольцо, 62
порог
итеративного
декодирования,
179
преобразование
Луби, 189
Фурье
дискретное, 88
пропускная способность, 27
процедура
Ченя, 98
распределение
волновое
идеальное, 192
устойчивое, 193
степеней узлов, 168
расстояние
минимальное
свободное, 212
свободное, 154
синдром,39
скорость
кода, 22
совокупность
информационная, 48
проверочная, 48
221
степень
одночлена взвешенная, 103
узла, 168
стирание, 18, 54, 89
тело, 63
теорема
Луби, 194
Мак-Вильямс, 39
о свертке, 88
упорядочение мономиальное
взвешенное
лексикографиче­
ское, 103
лексикографическое, 103
уравнение
ключевое декодирования кодов
БЧХ, 88
факторкольцо, 65
характеристика поля, 68
член
старший, 103
элемент
неприводимый, 62
неразложимый, 62
примитивный, 70
сопряженный, 73
элементы
ассоциированные, 62
222
Библиографический список
1. Блейхут Р. Теория и практика кодов, контролирующих
ошибки. —М. : Мир, 1986.
2. ван дер Варден Б. Л. Алгебра. —М. : Наука, 1976.
3. Галлагер Р. Теория информации и надежная связь. —М. :
Советское радио, 1974.
4. Кокс Д., Литтл Д., О’Ши Д. Идеалы, многообразия и ал­
горитмы. —М. : Мир, 2000.
5. Колесник В. Д. Кодирование при передаче и хранении ин­
формации (алгебраическая теория блоковых кодов). —М. : Высшая
школа, 2009.—С. 550.
6. Кудряшов Б. Теория информации. —СПб : Питер, 2009.
7. Кудряшов Б. Основы теории кодирования. — СПб : БХВ,
2016.
8. Мак-Вильямс Ф. Д., Слоэн Н. Д. А. Теория кодов, исправ­
ляющих ошибки. —М. : Связь, 1979.
9. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки. —
М. : Мир, 1976.
10. Прокис Д. Цифровая связь. М. : Радио и связь, 2000.
И. Трифонов П. В., Федоренко С. В. Метод быстрого вычис­
ления преобразования Фурье над конечным полем / / Проблемы пе­
редачи информации. —2003. —Т. 39, К2 3. —С. 3-10.
12. Федоренко С. Метод вычисления дискретного преобразова­
ния Фурье над конечным полем / / Проблемы передачи инфорации. —
2006.- Т . 42, Ѣ 2.- С . 81-93.
13. Algebraic Properties of Polar Codes From a New Polynomial
Formalism / Bardet M., Dragoi V., Otmani A., and Tillich J.-P. / / Pro­
ceedings of IEEE International Symposium on Information Theory. —
2016.
14. Arikan E. Channel Polarization: A Method for Construct­
ing Capacity-Achieving Codes for Symmetric Binary-Input Memory­
less Channels / / IEEE Transactions on Information Theory. — 2009. —
July. — Vol. 55, no. 7. P. 3051-3073.
15. Barg A. Complexity Issues in Coding Theory / / Electronic
Colloquium on Computational Complexity (ECCC). — 1997. — Vol. 4,
223
по. 046.
16. Bellorado J., Kavcic A. Low-Complexity Soft-Decoding Al­
gorithms for Reed-Solomon Codes-Part I: An Algebraic Soft-In HardOut Chase Decoder / / IEEE Transactions on Information Theory. —
2010, — March. — Vol. 56, no. 3. P. 945-959.
17. Bernstein D., Lange T., Peters C. Attacking and Defending
the McEliece Cryptosystem / / Post-Quantum Cryptography / Ed. by
Buchmann J., Ding J. — Springer Berlin Heidelberg, 2008. — Vol. 5299
of Lecture Notes in Computer Science. — P. 31-46.
18. Berrou C., Glavieux A., Thitimajshima P. Near Shannonlimit error-correcting coding and decoding: Turbo codes / / Proceed­
ings of IEEE International Communications Conference. — 1993. —
P. 1064-1070.
19. Bossert M. Channel coding for telecommunications. — Wiley,
1999.
20. Canteaut A., Chabaud F. A New Algorithm for Finding
Minimum-Weight Words in a Linear Code: Application to McEliece’s
Cryptosystem and to Narrow-Sense BCH Codes of Length 511 / / IEEE
Transactions on Information Theory. — 1998. — January. — Vol. 44,
no. 1. — P. 367-378.
21. Chase D. A class of algorithms for decoding block codes with
channel measurement information / / IEEE Transactions on Informa­
tion Theory. — 1972. — January. — Vol. 18, no. 1. — P. 164-172.
22. Chen N., Yan Z. Cyclotomic FFTs with Reduced Additive
Complexities Based on a Novel Common Subexpression Elimination Al­
gorithm / / IEEE Transactions on Signal Processing. — 2009. — Vol. 57,
no. 3. — P. 1010-1020.
23. A Class of Low-Density Parity-Check Codes Constructed
Based on Reed-Solomon Codes W ith Two Information Symbols / Djurdjevic L, Xu J., Abdel-Ghaffar K., and Lin S. / / IEEE Communications
Letters. — 2003. — July. — Vol. 7, no. 7.
24. Costa E., Fedorenko S., Trifonov P. Efficient algorithm for
computing syndrome polynomial in Reed-Solomon decoder / / Proceed­
ings of 5th International ITG Conference on Source and Channel Cod­
ing (SCC).
2004. Vol. 181, — P. 179-183.
25. Digital Video Broadcasting (DVB); Frame structure channel
coding and modulation for a second generation digital terrestrial tele­
vision broadcasting system (DVB-T2). — ETSI EN 302 755 V I.1.1.—
224
2009.
26. Digital Watermarking and Steganography / Сох I. J.,
Miller M. L., Bloom J. A., Fridrich J., and Kalker T. — 2nd e d .—
Morgan Kaufmann Publishers, 2008.
27. Divsalar D., Jin H., McEliece R. Coding Theorems for TurboLike Codes / / Proceedings of the 36th Annual Allerton Conference on
Communication, Control, and Computing. — 1998. — September. —
P. 201 210.
28. Dumer I., Krichevskiy R. Soft-Decision Majority Decoding
of Reed-Muller Codes / / IEEE Transactions on Information Theory. —
2000. — January. — Vol. 46, no. 1.
29. Etzion T., Trachtenberg A., Vardy A. Which Codes Have
Cycle-Free Tanner Graphs? / / IEEE Transactions on Information The­
ory. — 1999. — September. — Vol. 45, no. 6.
30. Fedorenko S. V., Trifonov P. V. Finding roots of polynomials
over finite fields / / IEEE Transactions on Communications. — 2002. —
Vol. 50, no. 11. P. 1709 1711.
31. Fedorenko S. V., Trifonov P. V., Costa E. Improved hy­
brid algorithm for Ending roots of error-locator polynomials / / Euro­
pean Transactions on Telecommunications. — 2003. — Vol. 14, no. 5. —
P. 411-416.
32. Fernandez M., Moreira J., Soriano M. Identifying Traitors
Using the Koetter-Vardy Algorithm / / IEEE Transactions on Informa­
tion Theory. — 2011. — February. — Vol. 57, no. 2.
33. Forney G. D. Generalized minimum distance decoding / /
IEEE Transactions on Information Theory. — 1966. — April. — Vol. 12,
no. 4. — P. 125-131.
34. Forney G. D. Trellis shaping / / IEEE Transactions on Infor­
mation Theory. — 1992. — March. — Vol. 38, no. 2. — P. 281-300.
35. Fossorier M. P., Lin S. Soft-Decision Decoding of Linear
Block Codes Based on Ordered Statistics / / IEEE Transactions on
Information Theory. — 1995. — 9. — Vol. 41, no. 5. — P. 1379-1396.
36. Gallager R. Low-density Parity-Check codes : Ph. D. thesis ;
MIT. — 1963.
37. Guruswami V., Sudan M. Improved Decoding of ReedSolomon and Algebraic-Geometric Codes / / IEEE Transactions on In­
formation Theory.— 1999. — September. — Vol. 45, no. 6. — P. 1757—
1767.
225
38. Hu X.-Y., Eleftheriou E., Arnold D.-M. Regular and Irregu­
lar Progressive Edge-Growth Tanner Graphs / / IEEE Transactions on
Information Theory. — 2005. — January. — Vol. 51, no. 1.
39. IEEE 802.16e. IEEE Standard for Local and metropolitan
area networks. Part 16: Air Interface for Fixed and Mobile Broadband
Wireless Access Systems. Amendment 2: Physical and Medium Access
Control Layers for Combined Fixed and Mobile Operation in Licensed
Bands. — 2005.
40. Imai H., Hirakawa S. A new multilevel coding method using
error correcting codes / / IEEE Transactions on Information Theory. —
1977. — May. — Vol. 23, no. 3. P. 371-377.
41. Introduction to Algorithms / Cormen T. H., Leiserson С. E.,
Rivest R. L., and Stein C. — 2 ed. — The MIT Press, 2001.
42. Jiang T., Vardy A. Asymptotic Improvement of the GilbertVarshamov Bound on the Size of Binary Codes / / IEEE Transactions
on Information Theory. — 2004. — August. — Vol. 50, no. 8.
43. Jin H., Khandekar A., McEliece R. Irregular repeataccumulate codes / / Proceedings of the 2nd International Symposium
on Turbo Codes and Related Topics. — 2000. — September. — P. 1-8.
44. Kern D., Vorkoper S., Kuhn V. A New Code Construction for
Polar Codes Using Min-Sum Density / / Proceedings of International
Symposium on Turbo Codes and Iterative Information Processing. —
2014, — P. 228-232.
45. Kim S., Lee S., Chung S.-Y. An Efficient Algorithm for ML
Decoding of Raptor Codes over the Binary Erasure Channel / / IEEE
Communications Letters. — 2008. — August. — Vol. 12, no. 8.
46. Koetter R. Fast Generalized Minimum-Distance Decoding of
Algebraic-Geometry and Reed-Solomon Codes / / IEEE Transactions
on Information Theory. — 1996. — May. — Vol. 42, no. 3.
47. Korada S. B., Sasoglu E., Urbanke R. Polar Codes: Charac­
terization of Exponent, Bounds, and Constructions / / IEEE Trans­
actions on Information Theory. — 2010. — December. — Vol. 56,
no. 12. — P. 6253-6264.
48. Lin S., Costello D. J. Error Control Coding: Fundamentals
and applications. — Prentice-Hall, 1983.
49. Luby M. LT Codes / / Proceedings of 43rd IEEE Interna­
tional Symposium on Foundations of Computer Science. — 2002. —
November. — P. 271-280.
226
50. MacKay D. Good error correcting codes based on very sparse
matrices / / IEEE Transactions on Information Theory. — 1999. —
March. — P. 399-431.
51. Moon T. K. Error Correction Coding. Mathematical Meth­
ods and Algorithms. — Hoboken, NJ, USA : Wiley, 2005.
52. Nielsen R. R., Hoholdt T. Decoding Reed-Solomon codes be­
yond half the minimum distance / / Proceedings of the International
Conference on Coding Theory and Cryptography. — Mexico : SpringerVerlag. — 1998, — P. 221-236.
53. Nielsen R. R., Hoholdt T. Decoding Reed-Solomon codes be­
yond half the minimum distance / / Coding theory, Cryptography and
Related Areas. — Springer-Verlag. — 2000. — P. 221-236.
54. On the design of low-density parity-check codes within 0.0045
dB of the Shannon limit / Chung S.-Y., Forney G. D., Richardson T. J.,
and Urbanke R. / / IEEE Communications Letters. — 2001. — Febru­
ary. — Vol. 5, no. 2.
55. Optimal decoding of linear codes for minimizing symbol error
rate / Bahl L., Cocke J., Jelinek F., and Raviv J. / / IEEE Transactions
on Information Theory. — 1974. — P. 284-287.
56. Poltyrev G. Bounds on the Decoding Error Probability of
Binary Linear Codes Via Their Spectra / / IEEE Transactions on In­
formation Theory. — 1994. — July. — Vol. 40, no. 4.
57. Richardson T., Shokrollahi M. A., Urbanke R. L. Design of
Capacity-Approaching Irregular Low-Density Parity-Check Codes / /
IEEE Transactions on Information Theory. — 2001. — February. —
Vol. 47, no. 2. — P. 619 637.
58. Roth R., Ruckenstein G. Efficient decoding of Reed-Solomon
codes beyond half the minimum distance / / IEEE Transactions on
Information Theory. — 2000. — Vol. 46, no. 1. — P. 246-257.
59. Ryan W. A turbo code tutorial / / Proceedings of Globecom’97.
1997.
60. Ryan W., Lin S. Channel Codes: Classical and m odern.—
Cambridge University Press, 2009.
61. Sauer T. Polynomial interpolation of minimal degree and
Grobner bases / / Grobner Bases and Applications (Proceedings of
the International Conference “33 Years of Grobner Bases”) / ed. by
Buchberger B., Winkler F. — Cambridge University Press. — 1998. —
Vol. 251 of London Mathematical Society Lecture Notes. — P. 483-494.
227
62. Shannon C. A Mathematical Theory of Communication / /
Bell System Technical Journal. — 1948. — July, October. — Vol. 27.—
P. 379-423, 623-656.
63. Shokrollahi M. A. Raptor Codes / / IEEE Transactions on
Information Theory. — 2006. — June. — Vol. 52, no. 6.
64. Sun J., Takeshita O. Y. Interleavers for Turbo Codes Using
Permutation Polynomials Over Integer Rings / / IEEE Transactions on
Information Theory. — 2005. — January. — Vol. 51, no. 1.
65. Tal L, Vardy A. How to Construct Polar Codes / / IEEE
Transactions on Information Theory. — 2013. — October. — Vol. 59,
no. 10, — P. 6562-6582.
66. Tal I., Vardy A. List Decoding of Polar Codes / / IEEE Trans­
actions On Information Theory. — 2015. — May. — Vol. 61, no. 5. —
P. 2213-2226.
67. A Transform Approach for Computing the Ranks of ParityCheck Matrices of Quasi-Cyclic LDPC Codes / Diao Q., Huang Q.,
Lin S., and Abdel-Ghaffar K. A. / / Proceedings of IEEE International
Symposium on Information Theory. — 2011.
68. A Trellis-Based Recursive Maximum-Likelihood Decoding
Algorithm for Binary Linear Block Codes / Fujiwara T., Yamamoto H.,
Kasami T., and Lin S. / / IEEE Transactions On Information Theory. —
1998. — March. — Vol. 44, no. 2.
69. Trifonov P. Efficient interpolation in the Guruswami-Sudan
algorithm / / IEEE Transactions on Information Theory. — 2010. —
September. — Vol. 56, no. 9. — P. 4341-4349.
70. Trifonov P. Randomized chained polar subcodes / / Proceed­
ings of IEEE Wireless Communications and Networking Conference
Workshops. — Barcelona, Spain : IEEE. — 2018. — P. 292-297.
71. Trifonov P. A score function for sequential decoding of polar
codes / / Proceedings of IEEE International Symposium on Information
Theory. — Vail, USA. — 2018.
72. Trifonov P. Randomized Polar Subcodes with Optimized Er­
ror Coefficient / / IEEE Transactions on Communications. — 2020. —
November. — Vol. 68, no. 11. — P. 6714-6722.
73. Trifonov P. Recursive Trellis Processing of Large Polarization
Kernels / / Proceedings of IEEE International Symposium on Informa­
tion Theory. — 2021.
74. Trifonov P., Miloslavskaya V. Polar subcodes / / IEEE Jour­
228
nal on Selected Areas in Communications. — 2016. — February. —
Vol. 34, no. 2. — P. 254-266.
75. Trofimiuk G., Trifonov P. Window Processing of Binary
Polarization Kernels / / IEEE Transactions on Communications. —
2021. — July. Vol. 69, no. 7. — P. 4294 4305.
76. TS 26.346 V7.1.0.
Technical Specification Group Ser­
vices and System Aspects; Multimedia Broadcast/M ulticast Service
(MBMS); Protocols and codecs : Rep. / 3GPP : 2006. — September.
77. Valembois A., Fossorier M. Box and Match Techniques Ap­
plied to Soft-Decision Decoding / / IEEE Transactions on Information
Theory. — 2004. — 5. — Vol. 50, no. 5. — P. 796-810.
78. von zur Gathen J., Gerhard J. Modern Computer Algebra. —
Cambridge University Press, 1999.
79. Wachsmann U., Fischer R. F. H., Huber J. B. Multi­
level Codes: Theoretical Concepts and Practical Design Rules / /
IEEE Transactions on Information Theory. — 1999. — July. — Vol. 45,
no. 5. — P. 1361 1391.
80. W itten I. H., Eibe F., Hall M. A. D ata mining : practical
machine learning tools and techniques. — 3rd ed. — Morgan Kaufmann
Publishers, 2011.
81. Wu Y. New List Decoding Algorithms for Reed-Solomon and
BCH Codes / / IEEE Transactions on Information Theory. — 2008. —
August. — Vol. 54, no. 8.
82. Wu Y. Fast Chase Decoding Algorithms and Architectures
for Reed-Solomon Codes / / IEEE Transactions On Information The­
ory.— 2012. — January. — Vol. 58, no. 1.
83. Zigangirov K. S. Some sequential decoding procedures / /
Problems of Information Transmission. — 1966. — Vol. 2, no. 4. — P. 110. — In Russian.
229
Приложение Задания для курсовой работы
В качестве курсовой работы предлагается выполнитв программную
реализацию одного из нижеперечисленнвіх алгоритмов декодирования,
соответствующий алгоритм кодирования и исследоватв их поведение в
некотором канале передачи даннвіх (например, двоичном симметричном,
аддитивном гауссовском) методом статистического моделирования. Полученнвіе резулвтатві (вероятноств ошибки, сложности декодирования)
необходимо сравнитв с известивши теоретическими оценками, приведен­
ными в соответствующих статвях.
1. Алгоритм Витерби мягкого декодирования линейнвіх блоковвіх ко­
дов [7].
2. Алгоритм Витерби мягкого декодирования сверточнвіх кодов [7].
3. Алгоритм рекурсивного мягкого декодирования по решеткам линей­
нвіх блоковвіх кодов [68].
4. Алгоритм box match мягкого декодирования линейнвіх блоковвіх ко­
дов [77].
5. Алгоритм Берлекэмпа-Месси декодирования двоичнвіх кодов БЧХ
[7 ]
.
6. Алгоритм Берлекэмпа-Месси декодирования кодов Рида-Соломона
Д
7. Алгоритм Берлекэмпа-Месси декодирования двоичнвіх кодов Гоппві
[7. 8].
8. Алгоритм Сугиямві (Евклида) декодирования двоичнвіх кодов БЧХ
[8] .
9. Алгоритм Сугиямві (Евклида) декодирования кодов Рида-Соломона
[8].
10. Алгоритм Сугиямві (Евклида) декодирования двоичнвіх кодов Гоп­
пві [8].
11. Алгоритм распространения доверия декодирования LDPC кодов [7].
12. Итеративное декодирование турбо-кодов [7].
13. Алгоритм Гурусвами-Судана списочного декодирования кодов РидаСоломона [37, 53, 58].
14. Алгоритм Бу списочного декодирования кодов Рида-Соломона [37,
53, 58, 81].
15. Списочное декодирование полярнвіх кодов [66].
230
16. Последовательное декодирование полярных кодов [66, 71].
231
Трифонов Петр Владимирович
Основы помехоустойчивого кодирования
Учебное пособие
В авторской редакции
Редакционно-издательский отдел Университета ИТМО
Зав. РИО
Н.Ф. Гусарова
Подписано к печати
Заказ №
Тираж
Отпечатано на ризографе
Редакционно-издательский отдел
Университета ИТМО
197101, Санкт-Петербург, Кронверкский пр., 49, литер А
Скачать