Диссертация - Санкт-Петербургский государственный

Федеральное государственное автономное образовательное учреждение
высшего образования
«Санкт-Петербургский государственный электротехнический
университет «ЛЭТИ» им. В.И. Ульянова (Ленина)»
На правах рукописи
Данг Ким Нгок
ИССЛЕДОВАНИЕ МЕТОДОВ ПОИСКА ОПТИМАЛЬНЫХ
СВЕРТОЧНЫХ И ПЕРФОРИРОВАННЫХ СВЕРТОЧНЫХ КОДОВ
Специальность: 05.12.04 – Радиотехника, в том числе системы и устройства
телевидения
ДИССЕРТАЦИЯ
на соискание ученой степени
кандидата технических наук
Научный руководитель
Кандидат технических наук, доцент,
Смирнов. В. Н.
Санкт-Петербург – 2014
2
СОДЕРЖАНИЕ
СПИСОК УСЛОВНЫХ СОКРАЩЕНИЙ И СИМВОЛОВ ................................ 5
ВВЕДЕНИЕ .............................................................................................................. 7
ГЛАВА 1. ОБЗОР МЕТОДОВ КАНАЛЬНОГО КОДИРОВАНИЯ ................. 10
1.1. Система цифровой связи ........................................................................... 10
1.2. Виды канального кодирования ................................................................. 14
1.2.1. Канальный код ..................................................................................... 14
1.2.2. Классификация помехоустойчивых кодов ........................................ 15
1.3. Сверточный код .......................................................................................... 18
1.3.1. Параметры сверточного кода .......................................................... 18
1.3.2. Способы задания сверточного кода ................................................. 20
1.3.3. Передаточная функция ...................................................................... 26
1.3.4. Катастрофический код ..................................................................... 30
1.4. Перфорированный сверточный код (ПСК) ............................................. 31
1.4.1. Параметры перфорированных сверточных кодов .......................... 33
1.4.2. Структура перфорированных сверточных кодов ........................... 36
1.4.3. Передаточная функция перфорированных сверточных кодов ...... 42
1.5. Алгоритмы декодирования сверточного кода......................................... 42
1.5.1. Оптимальное декодирование сверточных кодов - алгоритм
Витерби .......................................................................................................... 43
1.5.2. Другие алгоритмы декодирования сверточных кодов .................... 46
1.6. Граница вероятности битовой ошибки сверточных кодов .................... 50
1.7. Применение сверточных кодов................................................................. 52
Выводы к первой главе ..................................................................................... 53
ГЛАВА 2. КРИТЕРИИ ПОИСКА ОПТИМАЛЬНЫХ СВЕРТОЧНЫХ
КОДОВ ................................................................................................................... 54
2.1. Критерии поиска хороших сверточных кодов ........................................ 54
3
2.1.1. Критерий поиска по максимальному свободному расстоянию
(МСР) .............................................................................................................. 54
2.1.2. Критерий поиска по профилю оптимального расстояния (ПОР) 57
2.1.3. Критерий поиска по спектру оптимального расстояния (СОР) .. 59
2.2. Сравнение эффективности сверточных кодов, выбранных по
критериям МСР, ПОР и СОР ........................................................................... 65
2.3. Поиск оптимальных перфорированных сверточных кодов ................... 70
2.3.1. Поиск ПСК из материнских кодов, обладающих максимальным
свободным расстоянием .............................................................................. 71
2.3.2. Поиск ПСК из разных материнских кодов ....................................... 74
2.3.3. Поиск совместимых по скорости ПСК ............................................ 76
2.4. Оценка сверточных кодов по критерию СОР ......................................... 77
Выводы ко второй главе ................................................................................... 82
ГЛАВА 3. АЛГОРИТМЫ И ПРОГРАММЫ ПОИСКА ОПТИМАЛЬНЫХ
СВЕРТОЧНЫХ КОДОВ И ПСК.......................................................................... 83
3.1. Алгоритмы поиска оптимальных сверточных кодов и ПСК ................. 83
3.2. Программы поиска оптимальных сверточных кодов по величине
вероятности битовой ошибки с помощью симуляции .................................. 85
3.3. Программы поиска оптимальных сверточных кодов по верхней
границе вероятности битовой ошибки ............................................................ 86
3.4. Программы поиска оптимальных ПСК методом машинного
моделирования ................................................................................................... 87
3.5. База данных ................................................................................................. 88
3.6. Ускорение программы поиска оптимальных кодов ............................... 90
Выводы к третьей главе .................................................................................... 92
ГЛАВА 4. РЕЗУЛЬТАТЫ ПОИСКА ОПТИМАЛЬНЫХ СВЕРТОЧНЫХ
КОДОВ И ПСК ...................................................................................................... 93
4.1. Результат поиска оптимальных сверточных кодов ................................ 93
4
4.1.1. Оптимальные сверточные коды, найденные с помощью симуляции
......................................................................................................................... 93
4.1.2. Результат поиска оптимальных сверточных кодов по верхней
границе вероятности битовой ошибки ...................................................... 96
4.2. Результат поиска оптимальных ПСК, найденных с помощью
симуляции ........................................................................................................ 100
Выводы к четвертой главе .............................................................................. 107
ЗАКЛЮЧЕНИЕ ................................................................................................... 108
СПИСОК ЛИТЕРАТУРЫ................................................................................... 110
ПРИЛОЖЕНИЕ ................................................................................................... 116
5
Список условных сокращений и символов
Перечень сокращений
АБГШ
ДСК
ФПВ
МСР
Аддитивный белый гауссовский шум
Двоичный симметричный канал
Функция плотности вероятности
Максимальное свободное расстояние
ПОР
Профиль оптимального расстояния
ПСК
Перфорированный сверточный код
СОР
Спектр оптимального расстояния
ОСШ
Отношение сигнал-шум
ПКСК Последовательный каскадный сверточный код
ARQ
Автоматический запрос на повторение (Automatic Repeat request)
ATSC Комитет по перспективным телевизионным системам (Advanced
Television Systems Committee standards)
DVB
FEC
LTE
MLD
MAP
Стандарт цифрового телевидения (Digital Video Broadcasting)
Прямое исправление ошибок (Forward Error Correction)
Долгосрочное развитие (Long Term Evolution standard)
Максимальное правдоподобие (Maximum Likekihood Detection)
Максимальная апостериорная вероятность (Maximum A Posteriori
Probability)
RCPC
VSAT
Совместимый по скорости перфорированный сверточный код
(Rate-Compatible Punctured Convolutional Code)
Tерминал с очень малой апертурой (Very Small Aperture Terminal)
UMTS Универсальная система мобильной телекоммуникации (Universal
Mobile Telecommunications System)
6
Перечень основных символов
Lус
Равно по определению
Множество действительных чисел
Вероятность битовой ошибки
Свободное расстояние кода
Отношение энергии бита к спектральной плотности мощности шума
Учитываемые слагаемые передаточной функции
 x 
Округление числа до целого в меньшую сторону.


Pb
dCB
Eb N0
 x  - это наибольшее целое число, меньшее или равное х.


MФ
Сложение по модулю два (исключающее ИЛИ - XOR)
Метрика Хемминга
Метрика Фано
7
ВВЕДЕНИЕ
Актуальность работы. Помехоустойчивое кодирование является
очень важной функцией цифровых систем связи. Высокое качество передачи
информации обеспечивается за счет коррекции ошибок, возникающих в канале связи из-за помех. Сверточные коды обладают высокой помехоустойчивостью и быстрым декодированием. Они широко используются в мобильных
системах связи, в системах спутниковой связи, в цифровом телевидении DVB
и т.д. Поэтому поиск оптимальных сверточных кодов является потребностью
практики.
В зависимости от требуемой эффективности коррекции ошибок применяются сверточные коды с разными скоростями и кодовыми ограничениями. Существует несколько методов поиска сверточных кодов по разным критериям МСР, ПОР, СОР и вероятности битовой ошибки. Для сравнения и
оценки качества сверточных кодов используется вероятность битовой ошибки. Эффективность кода тем выше, чем меньше эта вероятность. Актуальным
является исследование методов поиска оптимальных сверточных и перфорированных сверточных кодов.
Методы исследования: теоретические исследования осуществлялись с
использованием методов машинного моделирования алгоритмов декодирования.
Целью диссертационной работы является поиск оптимальных сверточных и перфорированных сверточных кодов, обладающих высокой помехоустойчивостью. Для достижения заявленной цели в работе решаются следующие задачи:
- анализ существующих методов поиска оптимальных сверточных и
перфорированных сверточных кодов;
- построение алгоритмов и программ поиска оптимальных сверточных
и перфорированных сверточных кодов;
8
- поиск оптимальных сверточных кодов по вероятности битовой ошибки, определяемой с помощью симуляции;
- поиск оптимальных сверточных кодов по верхней границе вероятности битовой ошибки на основе усечѐнной передаточной функции;
- поиск оптимальных перфорированных сверточных кодов с помощью
симуляции.
Научная новизна работы заключается в следующем:
Найдены новые оптимальные сверточные и перфорированные сверточные коды, обладающие высокой помехоустойчивостью. Определены диапазоны отношения сигнал/шум, в которых новые коды превосходят известные.
Практическая значимость:
1. Расширен список оптимальных сверточных и перфорированных
сверточных кодов, что позволит строить цифровые системы связи, адаптируемые к условиям передачи.
2. Созданы и отлажены программы оценки эффективности производных сверточных и перфорированных сверточных кодов.
Научные положения, выносимые на защиту:
1. Оценка вероятности битовой ошибки является основным инструментом при поиске оптимальных сверточных и перфорированных сверточных
кодов.
2. Верхняя граница вероятности битовой ошибки позволяет с высокой
достоверностью определять помехоустойчивость сверточных кодов.
Апробация работы. Результаты работы докладывались и обсуждались
на 67-69-й научных сессиях, посвященных Дню радио (СПб, 2012, 2013,
2014); на 67-й конференции профессорско-преподавательского состава
СПбГЭТУ «ЛЭТИ» (СПб, 2014); на научно-технической школе-семенаре
«Инфокоммуникационные технологии в цифровом мире» СПбГЭТУ «ЛЭТИ»
(СПб, 2012).
9
Достоверность результатов исследования. Достоверность результатов диссертационной работы подтверждается применением машинного моделирования при достаточно больших объѐмах выборок.
Публикации. Основные теоретические и практические результаты
диссертации опубликованы в 8-ми работах, из которых 3 работы – в ведущих
рецензируемых изданиях, рекомендуемых в действующем Перечне ВАК, 5
работ – в материалах научно-технических конференций.
Структура и объем диссертации. Диссертация состоит из введения,
четырех глав с выводами по каждой из них, заключения, списка литературы,
включающего 51 наименование. Основная часть работы изложена на 124
страницах машинописного текста. Работа содержит 38 рисунков, 41 таблицу
и приложение общим объемом 9 страниц.
10
Глава 1. ОБЗОР МЕТОДОВ КАНАЛЬНОГО КОДИРОВАНИЯ
Системы цифровой связи широко распространены, так как обеспечивают высокое качество передачи. Незаменимая часть любой системы цифровой связи являются канальным кодером. Цель канального кодирования состоит в противодействии помехам, которые вызывают ошибки при передаче
информации в канале.
1.1. Система цифровой связи
Место канального кодирования в блок-схеме типичной системы цифровой связи [1], [4], [13], [14] показано на рисунке 1.1.
Источник
информации
Канальный
кодер
Модулятор
Канал
Полученная
информация
Декодер
Демодулятор
Рисунок 1.1 - Блок-схема типичной системы цифровой связи
Битовый поток от источника информации кодируется кодером, создающим последовательность, после модулятора поступает в канал. В результате воздействия шума, помех на входы демодулятора поступает искаженный
кодированный битовый поток. На приемной стороне сигнал демодулируется,
и данные поступают в декодер. Через корректирование, полученные данные
изменяются по сравнению оригинальных данных. Отметим, что модуляция и
демодуляция являются линейными и идеальными. Соединяем модуляцию,
11
демодуляцию и физический канал в дискретный канал. Следовательно,
ошибка зависит не только от кода, метода декодирования, но и от помех. Рассмотрим модели дискретного канала, обычно используемого в исследованиях.
Дискретный канал является частным случаем более общего канала с
дискретным входом и дискретным выходом. Он характеризуется входным
набором q-ичных символов V  v j   v1 , v2 ,..., vq  , выходным набором Q-ичные
символы Z  zi   z1 , z2 ,..., zQ  где j  1, 2,...q , i  1, 2,...Q , Q  2q . Матрицей переходных вероятностей канала P, P   p ji  , p ji  P  zi v j  является условной вероятностью получения zi при условии, что передавался vj. Такой канал называются дискретным каналом без памяти, тогда условные вероятности описываются [31]:


P Z  zi V  v j  P( zi v j ) .
(1.1)
На рисунке 1.2 показан граф дискретного канала без памяти.
v1
z1
v2
z2

vq



zQ
Рисунок 1.2 - Граф дискретного канала без памяти
12
Отрезок со стрелкой показывает преобразование входного символа в
выходной с соответствующей условной вероятностью. Если входом является
последовательность из n символов v1 j , v2 j ,..., vnj , выбираемых из алфавита V , и
соответствующим выходом является последовательность z1 j , z2 j ,..., znj символов из алфавита Z , то совместные условные вероятности определяются так
[31]:


n
P Z1  z1i , Z 2  z2i ,..., Z n  zni V1  v1 j ,V2  v2 j ,...,Vn  vnj   P( Z  zki V  v kj ) .
(1.2)
k 1
Модель двоичного симметричного канала (ДСК) является самой простой. Рассмотрим канал с аддитивным шумом, и пусть модулятор, демодулятор включены, как части канала. Если модулятор применяет двоичные сигналы и демодулятор делает жесткие решения, то двоичный симметричный канал характеризуется набором V  0,1 возможных входных символов, набором Z  0,1 выходных и набором условных вероятностей.
Матрица переходных вероятностей будет иметь вид
 p11
P
 p 21
p12 
.
p 22 
(1.3)
Если канальный шум и другие нарушения вызывают независимые
ошибки с вероятностью p, тогда:
p12  p21  P( Z  0 | V  1)  P( Z  1| V  0)  p,
p11  p22  P( Z  1| V  1)  P( Z  0 | V  0)  1  p.
Граф двоичного симметричного канала показан на рисунке 1.3.
1-p
0
Вход
1
0
p
p
1-p
Выход
1
Рисунок 1.3 - Граф двоичного симметричного канала
(1.4)
13
Модель дискретного канала особенно ДСК, очень удобна, чтобы оценить качество канального кода.
Предполагается, что
Z V  E ,
(1.5)
где E  (e1 , e2 , e3 ,..., en ) - вектор искажения, вектор ошибок, компоненты ei - независимые случайные величины.
Модель канала (1.5) используется для построения и исследования помехоустойчивых кодов. Для этой модели легко вычисляется вероятность появления в канале ошибки веса t [1], [13]:
Pb  Cnt pt (1  p)nt ,
(1.6)
где Cnt - число сочетаний из n по t.
Формула (1.5) показывает, что в ДСК наиболее вероятны ошибки E
малого веса (кратности). Это свойство ДСК учитывается при построении помехоустойчивых кодов. Коды строятся так, чтобы в первую очередь обнаруживать и исправлять ошибки малой кратности. Так как ошибка, случайно
совпавшая с ненулевым кодовым словом, не может быть обнаружена, то желательно, чтобы в коде было немного слов малого веса.
Для модели канала с мягким решением (8 уровней квантования), набор
входных символов V  0,1 , набор выходных символов Z  0,1, 2,3, 4,5,6,7 ,
соответствующих набору двоичных значений {000, 001, 010, 011, 100, 101,
110, 111}. Тогда граф канала имеет вид, показанный на рисунке 1.4.
Эта модель мягкого решения восьмиуровневого квантования используется в разделе «Алгоритмы декодирования сверточного кода», в разделе
«Граница вероятности битовой ошибки сверточных кодов» и в модели симуляции.
14
0
0
1
1

6

7
Рисунок 1.4 - Граф дискретного канала с мягким
решением (8 уровней квантования)
1.2. Виды канального кодирования
1.2.1. Канальный код
Когда передается последовательность информации в канале с шумом,
что приводит к ошибкам и потерям информации. Чтобы противодействовать
этим влияниям вводится избыточность способом, который называется канальным кодированием или помехоустойчивым кодированием. Благодаря избыточности можно обнаруживать и исправлять ошибки.
Отметим, что вводим избыточность в двоичную последовательность из
k бит. В этом случае информационная последовательность k бит отображается последовательностью n бит. Кодер является устройством, реализующим
это отображение.
Две главных стратегии используются при декодировании. Первая стратегия является обнаружением ошибки. Этот метод решает две задачи: обнаружение ошибок или автоматический запрос на повторение (ARQ). В случае
обнаружения ошибок, декодер снабжает указание ситуации ошибок, зависимый от качества декодированной последовательности. В случае ARQ, выно-
15
сит запрос для передатчика передать этот блок данных повторно, когда декодер обнаруживает ошибки, превышающих предел. Вторая стратегия называется прямым исправлением ошибок (FEC). Коды, использующие метод FEC,
могут исправлять ошибки, возникающие при передаче информации. Однако
этому методу нужно больше избыточность и сложнее алгоритм декодирования. Кроме того, в практике применяется метод гибрида FEC/ARQ. Какая
выборная стратегия зависит от просьбы применения сложности система. В
данной работе рассматривается стратегия FEC, чтобы оценить, найти хорошие коды и повысить эффективность при передаче информаций. Рассмотрим
типы помехоустойчивых кодов.
1.2.2. Классификация помехоустойчивых кодов
В теории кодирования помехоустойчивые коды разделяются на линейные и нелинейные коды (рисунок 1.5). Однако на практике нелинейные коды
почти не используются, поэтому рассмотрим линейные коды. Множество
слов линейного кода образует линейное подпространство, в котором линейные комбинации кодовых слов создают кодовое слово [1], [34].
Линейные коды состоят из блоковых и непрерывных или древовидных
кодов [2], [3], [13], [14], [26]. В данной работе рассматриваются непрерывные
коды. По структуре построения, функциональному назначению и алгоритмам
кодирования и декодирования в непрерывных кодах можно выделить сверточные, турбокоды (два параллельных каскадных сверточных кода с перемежителем), ПКСК (два последовательных каскадных сверточных кода с перемежителем) [2], [3], [6], [13], [14], [26]. Кроме того, сверточные коды могут
быть неперфорированными и перфорированными.
16
Помехоустойчивые коды
Линейные
коды
Непрерывные
Сверточные
Не
перфорированные
Турбокоды
Нелинейные
коды
Блоковые
ПКСК
Перфорированные
Рисунок 1.5 - Классификация помехоустойчивых кодов
Кроме этой классификации помехоустойчивые коды также можно разбить на коды, исправляющие случайные или независимые ошибки, и коды,
исправляющие пакеты ошибок. На практике в основном применяются коды,
исправляющие случайные ошибки, поскольку для исправления пакетов ошибок часто оказывается легче использовать коды для исправления независимых ошибок вместе с устройствами перемежения и деперемежения. Первое
из них осуществляет перемешивание порядка символов в закодированной
последовательности перед передачей в канал, а второе - восстановление исходного порядка символов после приема. При правильном проектировании
17
данных устройств можно считать, что образующиеся в канале пакеты ошибок
перед декодированием будут преобразованы в случайные ошибки [15].
В настоящее время известно большое число помехоустойчивых кодов,
которые можно классифицировать как по конструкции, так и по задачам, для
решения которых они применяются. Основной задачей, для которой применяются помехоустойчивые коды, является обеспечение требуемой достоверности связи.
При проектировании цифровых систем связи разработчики стремятся к
достижению следующих целей:
- увеличению скорости передачи информации до максимально возможной;
- минимизации вероятности ошибки на бит Pb ;
- минимизации потребляемой мощности;
- минимизации ширины полосы пропускания;
- снижению сложности реализации и себестоимости системы.
Достижение всех этих целей одновременно практически невозможно,
так они являются взаимосвязанными и противоречащими друг другу. При
реализации конкретной системы связи необходимо выбирать компромисс
между необходимой скоростью передачи информации при заданной полосе
частот, допустимой вероятностью ошибки на бит при данном соотношении
сигнал/шум и приемлемой сложностью реализации системы.
Кроме этого, необходимо учитывать теоретические ограничения, которые неизбежно влекут за собой компромиссы в любых системных требованиях:
- пропускную способность канала связи, определяемую теоремой Шеннона [23];
- технологические ограничения (например, состояние современной
элементной базы и комплектующих устройств).
18
В теории кодирования известно большое число корректирующих кодов
и соответствующих им алгоритмов декодирования. Однако при попытке реализации таких кодов в каналах с высокой вероятностью ошибки часто оказывается, что сложность кодека сводит на нет преимущества высокой исправляющей способности кода. Иными словами, они не позволяют достичь достаточной близости к пределу Шеннона и имеют ряд недостатков.
Как следует из теории информации, для наилучшего приближения к
пропускной способности канала необходим случайный выбор кодовых комбинаций при их достаточно большой длине. Практической целью является
поиск кодов с большой эквивалентной длиной блока и структурой, допускающей приемлемую физическую реализацию декодера. Поставленным условиям во многом удовлетворяет метод каскадного кодирования, обеспечивающий необходимый компромисс между исправляющей способностью и
сложностью декодера.
В следующем разделе рассматриваются сверточные коды, основные
представители непрерывных кодов.
1.3. Сверточный код
1.3.1. Параметры сверточного кода
Слово сверточного кода создается при прохождении передаваемой информационной последовательности через линейный сдвигающий регистр с
конечным числом разрядов. В общем случае регистр сдвига состоит из K ячеек (каждая ячейка состоит из k разрядов) и линейного преобразователя, состоящего из n вычислителей алгебраических функций (рисунок 1.6).
19
1-ые ячейки
1
2
…
…
2-ые ячейки
k
1
2
…
…
k
K-ые ячейки
1
2
…
k
Информационные
биты
…
…
1
2
n
Кодовое слово
Рисунок 1.6 - Сверточный кодер
Входные данные продвигаются к кодеру по k битов каждый раз. Число
выходных битов для каждой k битовой входной последовательности равно n.
k
n
Следовательно, кодовая скорость R  . Параметр K называется кодовым ограничением сверточного кода. Обычно используются k  1 , и n  2 , n  3 ,
n  4 . То г д а с к о р о с т ь с ве р то ч н о г о к о д а R 
1
1
1
, R и R .
3
2
4
С ве р то ч н ы й к о д задается порождающими полиномами  G1 , G2 ...Gn  в
полиномиальном представлении, в двоичном представлении или в восьмеричном представлении. Например, на рисунке 1.7. представлен кодер несистематического сверточного кода с порождающей матрицей 1  X 2 ,1  X  X 2  в
полиномиальном представлении или C (101,111) в двоичном представлении и
C (5, 7) в восьмеричном представлении. Входная информационная последова-
тельность
U  u1 , u2 ,, ui ,
и
выходная
последовательность
V  v11 , v12 , v21 , v22 , vi1 , vi 2 , вычисляется кодером, скорость сверточного кода
R  1/ 2 , кодовое ограничение K  3 .
20
Входная
последовательность
U  u1 , u2 , ui ,
D
Выходная
последовательность
D
V  v11 , v12 , v21 , v22 , vi1 , vi 2 ,
Рисунок 1.7 - Схема кодера сверточного кода C(5,7)
Свободное расстояние сверточного кода - dCB одно из важного параметра сверточного кода определяется минимальным расстоянием Хемминга между двумя кодовыми словами. Свободное расстояние характеризует способность кода исправлять ошибки определенной кратности. Так, если dCB  5 , то
1
кратность исправляемых ошибок [14]: t   CB   2 . Так как сверточный код
 2 
d
линеен, расстояние Хемминга между двумя кодовыми словами определяется
весом их суммы по модулю 2. Передаточной функции или кодовой решеткой
определяется свободное расстояние, рассматриваемое в следующих разделах.
1.3.2. Способы задания сверточного кода
Способы задания сверточного кода есть способы задания линейного
подпространства. Чаще всего используются порождающая матрица и графические способы задания.
Кодовое слово (выходная последовательность) кодера сверточного кода может высчитываться по формуле [1], [14]:
V  UG ,
(1.7)
где G - порождающая матрица сверточного кода, U - информационная входная последовательность. В случае сверточного кода со скоростью 1/n порождающая матрица [14]:
21
G  [G1 , G2 ,..., Gn ] ,
где
Gj
порождающий
-
многочлен
с
(1.8)
двоичными
коэффициентами
g j1 , g j 2 ,..., g jK , K - кодовое ограничение. Элементы выходной последовательно-
сти vij вычисляются:
vij  ui g j1  ui 1 g j 2  ...  ui K g jK .
(1.9)
В общем случае, сверточный код со скоростью k n имеет порождающую матрицу
 G11 G12  G1n 
G
G22  G2 n 
21

G
,
 


 


Gk1 Gk 2  Gkn 
(1.10)
где Grj  [ grj1, grj 2 ,..., grjK ] - порождающая подматрица r  1...k , j  1...n ,
grj1, grj 2 ,..., grjK - значения «0» или «1». Элементы выходной последовательности
vij вычисляются [14]:
vij  ui g1 j1  ui  k 1 g1 j 2  ...  ui  K  k 1 g1 jK 
 ui 1 g 2 j1  ui k 2 g 2 j 2  ...  ui  K k 2 g1 jK 
(1.11)
...
 ui k g kj1  ui  2 k g 2 j 2  ...  ui  K  2 k g1 jK .
Например, сверточный код C(5,7) имеет G =[101,111]. Тогда G1  101 ,
G2  111 или g11  1 , g12  0 , g13  1 , g 21  1 , g 22  1 , g 23  1 . Допустим, что входная
последовательность 1010…. Тогда из (1.9) символы кодового слова
v11  u1 g11  u0 g12  u1 g13  1
и v12  u1 g21  u0 g22  u1g23  1 . Для входных битов
ui  1010... , выходная последовательность vij равна 11010001…
Выходная последовательность может быть вычислена по полиному.
Сверточный код C(5,7) имеет G1 ( X )  1  X 2 и G2 ( X )  1  X  X 2 . Допустим, что
входная последовательность U  10100 , тогда U ( X )  1  X 2 . Элементы выходной
последовательности
V2 ( X )  U ( X )G2 ( X ) . Итак
V (X )
вычисляются
V1 ( X )  U ( X )G1 ( X )
и
22
V1 ( X )  (1  X 2 )(1  X 2 )  1  X 4 ,
V2 ( X )  (1  X 2 )(1  X  X 2 )  1  X  X 3  X 4 или
V1 ( X )  1  0 X  0 X 2  0 X 3  X 4
V2 ( X )  1  X  0 X 2  X 3  X 4 .
Таким образом
V ( X )  (1,1)  (0,1) X  (0,0) X 2  (0,1) X 3  (1,1) X 4
V1101000111.
Следовательно, выходная последовательность V 1101000111.

Граф сверточного кода похож на дерево. Поэтому сверточный код называется древовидным кодом. Дерево сверточного кода С (5, 7) показано на
рисунке 1.8. Самый левый узел является корнем. Из этого узла есть 2 пути,
соответствующие входным символом вверх «0» и вниз «1». Каждая ветвь
обозначена двумя двоичными символами, соответствующими выходам кодера. Последовательность 1010…по графу кодируется в 11010001…
23
00
00
00
11
11
01
10
01
11
00
00
11
10
10
01
0
1
11
00
11
01
00
01
10
11
10
11
00
10
01
10
01
Рисунок 1.8 - Граф кода C(5,7)
Сверточный кодер, как автомат с конечным числом состояний, может
быть описан диаграммой состояний. Диаграмма представляет собой направленный граф и описывает все возможные переходы кодера из одного состояния в другое. Текущее состояние и следующее состояние определяются однозначно предыдущим состоянием и текущим входным битом. Кодер из каждого состояния переходит в другое состояние при поступлении бита на его
24
вход. Диаграмма состояний вместе с текущими входными данными показана
на рисунке 1.9. Диаграмма состояний кодера позволяет определить данные на
его выходе.
1/01
S3
11
0/10
1/10
0/01
S2
S1
10
01
1/00
1/11
0/11
S0
00
0/00
Рисунок 1.9 - Диаграмма состояний
Состояниями кодера являются S0  00 , S1  10 , S2  01 и S3  11 . Из каждого состояния выходят два пути перехода в другое состояние, соответствующие двум возможным значениям входного бита и четырѐм возможным
значениям выходных битов:
0/00
S0 
 S0 ,
1/11
S0 
S1 ,
0/10
S1 

 S2 ,
1/01
S1 
S3 ,
0/11
S2 
S0 ,
1/01
S2 
S1 ,
0/01
1/10
S3 

 S2 , S3 
S3 ,
u /v v
где  
 обозначает переход из состояния  в состояние , ui v1i v2i i
1i 2 i
соответствуют возможным значениям входного бита ui , выходные биты v1iv2i
кодера.
25
Разверткой диаграммы состояний во времени является решетчатая диаграмма, которая была введена Форни [18]. Пример решетчатой диаграммы
для кода C(5,7) показан на рисунке 1.10. Решетчатая диаграмма дает наглядное представление всех разрешенных путей, по которым может продвигаться
кодер при кодировании.
Узлы диаграммы отображают состояния кодера, а ребра (или ветви),
соединяющие узлы, переходы между состояниями. Кодовое слово соответствует пути по кодовой решетке и наоборот. Поэтому в дальнейшем эти термины (слово и путь) используются как синонимы.
Построение решетки производится на основе диаграммы состояний.
Если исходное состояние S0 кодера 00, то с поступлением очередного символа 0 или 1 возможны переходы в состояния 00 или 10. Обозначение 00 или 11
ребер, соединяющих начальное состояние 00 с последующими (00 или 10),
являются элементарными блоками кодового слова. Следует отметить, что через три шага очередной фрагмент решетки будет повторяться.
S0 00
00
00
00
00
00
11
S1 10
11
00
01
S2 01
10
S3 11
10
01
Рисунок 1.10 - Решетчатая диаграмма сверточного кода
Кодовая решетка для рассматриваемого примера и путь, соответствующий входной последовательности 11001... (жирная линия), показаны на
рисунке 1.10. Кодовое слово получается путем считывания обозначений ре-
26
бер, входящих в путь. Так, входным битам 11001... соответствует кодовое
слово 1110101111...
Используя решетчатую диаграмму, можно определить свободное расстояние сверточного кода dCB как минимальное расстояние между двумя различными путями по кодовой решетке, начинающимися и заканчивающимися
в нулевом состоянии,
dCB  min d H V ,V  ,
(1.12)
V V 
где dH - расстояние Хемминга между кодовыми словами V и V’.
Например, из рисунка 1.11. следует, что свободное расстояние рассматриваемого кода равно 5, так как в самый короткий путь с переходами из
состояния 00 до состояния 00 (V и V’): 00  10  01  00 входят ребра, соответствующие слову 110111, вес равно 5.
00
00
11
10
V
00
00
00
00
V’
11
00
01
01
10
10
01
11
Рисунок 1.11 - Решетчатая диаграмма сверточного кода
1.3.3. Передаточная функция
Для сверточного кода, ветви из состояния нуля, сначала входят в диаграмму состояния заканчиваются состояние нуль, устраняемую петлю в состоянии, определенные дистанционный спектр сверточного кода. Это изображение называется «весовой перечислитель» (enumerator) или передаточной функцией [47], [13]. Посмотрим подробно случай сверточного кода
27
С (5, 7) , со скоростью 1/2 и диаграммой, изображенной на рисунке 1.9. Собст-
венные петли у узла нуля можно исключить, поскольку они ничего не вносят
в дистанционные свойства кодовой последовательности относительно кодовой последовательности из одних нулей. Дальше, узел нуля расщепляется на
два узла, один из них представляет вход, а другой выход диаграммы состояний. Пометим ветви на диаграмме состояний как D0  1 , D или D2, где D обозначает выходную последовательность, показатель у D соответствует весу
ветви. Тогда диаграмма состояний кодера показана на рисунке 1.12.
D
11
2
D
D
D2
00
D
10
D2
01
1
1
00
3
Рисунок 1.12 - Диаграмма состояний кодера C(5,7)
Обозначаем T(D) - функция весов. T(D) также называется весовым перечислением или передаточной функцией. Используем эту диаграмму легче
создать систему уравнений состояния.
Отметим, что 1 ,2 и 3 являются промежуточными множителями, изображающие веса всех ветвей из состояния входа до состояния выхода на рисунке 1.12. Тогда есть линейная система уравнений:
1  3  D 2
 2  D1  D 2
3  D1  D 2
и
T ( D)  D23 .
(1.13)
(1.14)
28
Систему уравнений (1.13) можно переписать в другой форме:
0
1 1   D 2 
 1

   
  D 1  D 0   2    0  .
  D  D 1     0 

 3   
(1.15)
Используя правило Крамера, получим:
 1
0

det   D 1  D
 D D

D2 

0 
0 
3 

0
1
 1


det   D 1  D 0 
 D D
1 

 D 3 1  2 D  .
(1.16)
Подставляя (1.16) в (1.14), получим передаточную функцию:
D5
T ( D) 

1  2D
 D 5  2 D 6  4 D 7    2k D 5 k .

(1.17)
Первое слагаемое в выражении (1.17) указывает на свободное расстояние
dCB  5 , другие слагаемые 2, 4, 8, . Это значит, что код С (5, 7) имеет одно ко-
довое слово с весом 5, 2 кодовых слов с весом 6, 4 кодовых слов с весом 7...
Другому слову код С (5, 7) имеет один путь с расстоянием Хемминга 5 от нулевого пути, 2 пути с расстоянием 6, 4 пути с расстоянием 7 и т.д.
В общем случае передаточную функцию можно представить в виде

T ( D) 
aD
d  dCB
d
d
,
(1.18)
где ad - число путей с расстоянием d.
Передаточную функцию можно использовать для получения более детальной информации, чем только расстояния различных путей. Введѐм множитель N для всех переходов ветвей, вызванных входным битом 1. Тогда, поскольку каждая ветвь пересекается, совокупный показатель N увеличивается
29
на единицу только тогда, когда переход ветви обусловлен входным битом 1.
Далее вводим множитель L для каждой ветви диаграммы состояний так, что
показатель L будет служить счѐтной величиной, указывающей число ветвей
для любого данного пути от узла входа к узлу выхода. Для свѐрточного кода
со скоростью 1/2 в нашем примере расширенная диаграмма состояний, которая объединяет суммируемые множители L и N, показана на рисунке 1.13.
DLN
11
DLN
DL
DL
D2LN
00
2
10
1
D2L
01
LN
00
3
Рисунок 1.13 - Диаграмма расширенного состояния кодера C(5,7)
Из диаграммы можно написать линейную систему уравнения:
0
 1

  DLN 1  DLN
  DL
 DL

 LN  1   D 2 LN 

  
0   2    0 
 

1 
 3   0 
T ( D, L, N )  D2 L3 .
и
(1.19)
(1.20)
Решаем (1.19) и заменяем (1.20). Тогда расширенная передаточная
функция кода C  5, 7 
D5 LN
T ( D , L, N ) 

1  DL(1  L) N
 D5 L3 N  D 6 L4 (1  L) N 2  D 7 L5 (1  L )2 N 3  ... 
 D5 k L3 k (1  L) k N 1 k  ...
(1.21)
30
Расширенная передаточная функция не только зависит от свободного
расстояния, других дистанционных характеристик кода, но и от входных информационных весов. Поэтому расширенная передаточная функция отражает
свойства сверточного кода полнее, чем передаточная функция. Основываясь
на расширенной передаточной функции можно определить верхнюю границу
вероятности битовой ошибки сверточного кода, которая обсуждается во второй главе.
1.3.4. Катастрофический код
Сверточный код, например C(5,7) имеет передаточную функцию (1.17),
тогда и только тогда 2D  1 или D  1/ 2 . Однако это не всегда правильно для
всех сверточных кодов. Рассмотрим особенный пример сверточного кода
C(5,6) схема кодера которого показана на рисунке 1.14, а на рисунке 1.15 диаграмма состояний.
Входная
послеовательность
U  u1 , u2 , ui ,
vi1
D
D
Выходная
последовательность
V  v11 , v12 , v21 , v22 , vi1 , vi 2 ,
vi 2
Рисунок 1.14 - Схема кодера сверточного кода C(5,6)
31
00
d=11
11
10
10
11
a=00
b=10
10
c=01
e=00
01
Рисунок 1.15 - Диаграмма состояний кодера C(5,6)
Из диаграммы состояния кодера видно, что петля в состоянии d=11 не
увеличивает расстояние. Поэтому путь abddd…ddce имеет расстояние 6 от
нулевого пути, которое не зависит от числа петель в состоянии d=11. Это совершено может происходить в канал. Итак, только несколько канальной
ошибки учиняет число всякой большой ошибки после декодирования. Этот
код называется катастрофическим кодом.
Сверточный код является катастрофическим тогда и только тогда, когда у петли в диаграмме состояния есть выходной вес нуль [37]. Следовательно, сверточный код C (G1 , G2 , Gn ) не является катастрофическим кодом,
когда он не обладает сам петлей в ненулевом состоянии, имеющей ненулевые
выходные биты. Перечень катастрофических кодов приведен в [32].
1.4. Перфорированный сверточный код (ПСК)
Перфорированные сверточные коды были введены Каин и Кларк (Cain
and Clark) в 1979 году [26]. Перфорирование позволяет создать высокоскоростные сверточные коды, которые не усложняют декодирования.
Перфорирование сверточных кодов позволяет оптимизировать устройства кодирования и декодирования. Например, можно использовать только
32
один кодер и решетку декодирования для перфорированных сверточных кодов всех скоростей вместо многих кодеров и решеток декодирования для
сверточных кодов со скоростью
k
. В этом случае сложность, размер устройn
ства и стоимость его является большими. Поэтому на практике не используют сверточные коды с высокой скоростью, а переходят к перфорированию.
В 1984 году Ютака Ясуда (Yutaka Yasuda) и другие представили перфорированные сверточные коды с высокими скоростями от 2/3 до 13/14, полученные из материнских сверточных кодов со скоростью 1/2 и максимальными свободными расстояниями [50]. В 1988 году Иоахим (Joachim Hagenauer) [49] нашел совместимые по скорости перфорированные сверточные коды
(RCPC). В этой диссертации рассмотрим перфорированные сверточные коды
с высокими скоростями, полученные из материнских кодов с низкой скоростью 1 n .
Во второй главе обсуждаются критерии оценивания хороших перфорированных сверточных кодов. Сначала рассмотрим создание перфорированного сверточного кода. Перфорированный сверточный код является кодом, полученным удалением несколько битов из слов материнского сверточного кода. Обычно сверточные коды для перфорирования являются хорошими кодами с низкими скоростями, например 1/2, 1/3 или 1/4. Разными векторами
перфорирования создаются перфорированный сверточный код со скоростями, например 2/3, 3/4... 7/8. На рисунке 1.16 показано получение перфорированного сверточного кода из материнского со скоростью 1/2. Выходные биты
сверточного кода vi1 , vi 2 подвергаются перфорированию с помощью двоичного вектора перфорирования B. Если символ вектора B равен «0», то выходной
бит удаляется, а при «1» выходной бит остаѐтся [26], [50], [5], [8]. Вектор B
является одним из объектов исследования перфорированных сверточных кодов.
33
Перфорированный сверточный код
Входные
биты ui
Кодер
сверточного кода
со скоростью 1/2
vi1
Выходные
биты
Перфорирование
vi2
l
Входные
биты ui
u1
Выходные
биты кодера
Вектор
перфорирования B
Выходные биты
u2
u3 …
ul-1
ul
ul+1
v11 v12 v21 v22 v31 v32 … v(l-1)1 v(l-1)2 vl1 vl2
1
1
v11 v12
0 1
1 0 … 1
0
1
1
 v22 v31  … v(l-1)1  vl1 vl2
…
v(l+1)1 v(l+1)2 …
1: оставить
0: удалить
передаваемые биты
 : удалѐнные биты
v(l+1)1 v(l+1)2 … vi1, vi2:
Рисунок 1.16 - Создание перфорированного сверточного кода
Следовательно, для получения хорошего перфорированного сверточного кода необходимо выбрать хороший материнский сверточный код и вектор
перфорирования. Сначала рассмотрим параметры перфорированных сверточных кодов.
1.4.1. Параметры перфорированных сверточных кодов
Перфорированный сверточный код характеризуется параметрами, например порождающими полиномами сверточного кода, скоростью кодирования, кодовым ограничением, свободным расстоянием и т.д. Известно, что самый хороший материнский сверточный код не всегда создаѐт лучшие перфорированные сверточные коды с разными скоростями [10], [50]. Эффективность перфорированных сверточных кодов зависит не только от порождающих полиномов материнских кодов, но и от вектора перфорирования. На
практике поиск лучших перфорированных сверточных кодов с высокими
34
скоростями и большими кодовыми ограничениями является трудной задачей.
Поэтому перфорированные сверточные коды найдены в рамках сверточных
кодов с максимальным расстоянием [50].
Свободное расстояние является одной из важных характеристик не
только сверточных кодов, но и перфорированных сверточных кодов. Свободного расстояние перфорированного сверточного кода dCB равно минимальному расстоянию Хемминга между двумя словами.
Рассмотрим перфорированный сверточный код C(5,7) со скоростью 2/3
и вектором перфорирования 1101. Кодовая решетка этого кода изображена на
рисунке 1.17. Из каждого состояния исходят 2 ветви - верхняя ветвь и нижняя
ветвь, соответствующие входным битам «0» и «1». Выходные биты отображаются на ребрах решетки, где «×» обозначает перфорированный бит.
Состояние
00
×0
00
×1
11
Состояние
10
Состояние
01
Состояние
11
01
00
×1
01
10
10
×1
11
×0
00
×1
11
×1
11
×0
00
×0
×0
×1
×0
×1
01
10
10
01
×0
×0
×1
Рисунок 1.17 - Решетка перфорированного сверточного кода C(5,7) со
скоростью 2/3
Рассмотрим переходы состояний решетки, соответствующие каждым
двум входным битам. Тогда после перфорирования выходные биты на ребрах
описываются тремя битами. Например, два входных бита 00 генерируют кодовые символы 0000 или выходные биты 000 после перфорирования. Для
входных бит 01, состояние кодера 00 изменяется на состояние 10. После перфорирования получаются выходные биты 001. Аналогично для входных бит
10 или 11, кодер из состояния 00 переходит в состояние 01 или 11. После
35
перфорирования получаются выходные биты 111 или 110. Диаграмма кодовой решетки показана на рисунке 1.18. при исключении перфорированных
бит.
Состояние
00
000
V
000
001
111
110
001
V’
Состояние 011
010
10
100
011
010
100
101
110
Состояние
01
101
110
111
001
000
111
001
000
101 100
Состояние
11
111
110
101 100
010
011
010
011
Рисунок 1.18 - Диаграмма эквивалентной решетки
перфорированного сверточного кода C(5,7) со скоростью 2/3
Свободное расстояние определяется dCB  min
dH V ,V ' , где d H V ,V ' V V '
расстояние Хемминга между двумя любыми словами V ,V ' . На рисунке 1.18
жирными линями выделены пути 000 000 и 001 011. Откуда видно, что для
данного примера dCB  3 . Следовательно, свободное расстояние перфорированного сверточного кода может определяться через диаграмму эквивалентной решетки кода. Свободное расстояние перфорированного сверточного кода меньше, чем свободное расстояние материнского сверточного кода. Иными словами, помехоустойчивость перфорированных сверточных кодов ниже
помехоустойчивости материнских кодов.
36
Свободное расстояние перфорированных сверточных кодов можно определить для других кодов с любым вектором перфорирования. Однако в
случае перфорированных сверточных кодов, имеющих одинаковые свободные расстояния, нужно оценить другие слагаемые передаточной функции,
как показано в разделе 1.4.3. Первоначально рассмотрим структуру перфорированных сверточных кодов по полиномиальной порождающей матрице.
1.4.2. Структура перфорированных сверточных кодов
Решетка перфорированного сверточного кода C(5,7) со скоростью 2/3
вектором перфорирования 1101, показанная на рисунке 1.17 и рисунке 1.18,
совпадает решеткой сверточного кода со скоростью 2/3, кодовым ограничением K  3 , имеющего полиномиальную порождающую матрицу G(X) [26]:
1 
1  X 1  X
G( X )  
,
X
1  X 
 0
(1.22)
где X - формальная переменная, имеющая смысл задержки.
Схема кодера сверточного кода с матрицей (1.22) показана на рисунке
1.19.
vi1
u i1
D
vi 2
ui 2
D
vi 3
Рисунок 1.19 - Кодер сверточного кода со скоростью 2/3
Сверточный код с полиномиальной порождающей матрицей G(X) (1.22)
имеет кодовую решетку, аналогичную показанной на рисунке 1.18. Каждые
два входных бита генерируют три выходных бита. Это же справедливо для
37
сверточного кода C(5,7) с порождающими полиномами G1 ( X )  1  X 2 ,
G2 ( X )  1  X  X 2 и со скоростью 2/3.
Если входная последовательность ui1ui 2  1001... вдвигается в кодер, то
получается выходная последовательность vi1vi 2vi 3  111111 .
Вообще, для перфорированного сверточного кода C (G1 ( X ), G2 ( X )) со
скоростью 2/3 и вектором перфорирования 1101 может быть построен эквивалентный сверточный код со скоростью 2/3 [26]:
 G ( X)
G( X )   1e
 X G1o ( X )
G2e ( X )
X G2o ( X )
X
,
G2e ( X ) 
G2o ( X )
(1.23)
где G1e , G2e - одночлены с четными степенями, G1o , G2o - одночлены с нечетными степенями соответствующих порождающих полиномов.
Итак, строение полиномиальной порождающей матрицы позволит оценить перфорированные сверточные коды через эти сверточные коды. Однако
в [26] рассмотрен только случай перфорированных сверточных кодов со скоростью 2/3.
Рассмотрим в общем случае вычисление полиномиальной порождающей матрицы перфорированного сверточного кода G* ( X ) . Сверточный код со
скоростью 1 n перфорируется в код любой скорости
m
, где a - число бит
nm  a
перфорирования, m - любое натуральное число.
Пусть полиномиальная порождающая матрица материнского сверточного кода [51]
G( X )  [G1 ( X ), G2 ( X ),..., Gn ( X )] .
(1.24)
Полиномиальная порождающая матрица J(X) когда со скоростью
вычисляется по формуле [51]:
m
,
nm
38
 J1,1 ( X ) J1,2 ( X )  J1,n ( X ) J1,(i 1) n 1 ( X )  J1,in ( X )  J1, mn ( X ) 
 











J ( X )   J j ,1 ( X ) J j ,2 ( X )  J j ,n ( X ) J j ,(i 1) n 1 ( X )  J j ,in ( X )  J j ,mn ( X )  ,










 

 J m,1 ( X ) J m,2 ( X )  J m,n ( X ) J m,(i 1) n 1 ( X )  J m,in ( X )  J m,mn ( X ) 


(1.25)
где i, j  1, 2,..., m;
J j ,(i 1) n s ( X )  X
j i
m
1
Gs ,h ( X m ),
(1.26)
где h  m  i  j mod m, s  1, 2,..., n ;
Gs,h(X) - часть Gs(X), которая вычисляется по формуле

Gs ,0 ( X )  Gs ,1 ( X )  ...  Gs ,m1 ( X )    g s ,0  g s ,1 X  ...  g s ,m1 X m1  X tm .
t 0
Формула (1.26) доказывается в 3 шага [51].
Шаг 1. (Связь входов двух кодеров)
Пусть входные последовательности сверточного кодера со скоростью
дер
1
(коn
1
m
m
) и сверточного кодера со скоростью
(кодер
) описываются мноn
nm
nm
гочленами U ( X ) и U * ( X )  U1* ( X ),U 2* ( X ),...,U m* ( X )  . Когда одинаковая входная
последовательность кодируется кодерами, m информационных битов кодера
m
1
соответствуют одному информационному биту кодера . Тогда
nm
n
U ( X )  U1* ( X m )  XU 2* ( X m )  ...  X m1U m* ( X m ) .
Шаг 2: (Связь выходов двух кодеров)
Обозначим выход кодера
1
m
V ( X )  V1 ( X ),V2 ( X ),...,Vn ( X ) , а выход кодера
n
nm
V * ( X )  [V1* ( X ), V2* ( X ),..., Vn* ( X ), Vn*1 ( X ), Vn* 2 ( X ),..., V2*n ( X ),
*
V(*m1) n1 ( X ),V(*m1) n 2 ( X ),...,Vnm
( X )].
39
Итак, n последовательных закодированных информационных бит кодера
соответствуют nm бит кодера
1
n
m
. Следовательно,
nm
V1 ( X )  V1* ( X N )  XVn*1 ( X m )  ...  X m1U (*m1) n1 ( X m ) ,
V2 ( X )  V2* ( X m )  XVn*2 ( X m )  ...  X m1U (*m1) n2 ( X m ) ,
…
Vn ( X )  Vn* ( X m )  XV2*n ( X m )  ...  X m1U n*m ( X m ) .
Шаг 3: (связь между G(X) и J(X))
Поскольку V ( X )  U ( X )G( X ) , то
Vs ( X )  U ( X )Gs ( X ) , где s  1, 2,...n для кодера
1
.
n
Аналогично
V *( X )  U *( X )J ( X ) ,
Vi* ( X )  U1* ( X ) J1,i ( X )  ...  U m* ( X ) J m,i ( X ) , где i  1, 2,...nm для кодера
m
. Следоваnm
тельно, V1(X) изображается:
(U i* ( X m )  XU 2* ( X m )  ...  X m 1U m* ( X l ))G1 ( X ) 
 V1* ( X m )  XVn*1 ( X m )  ...  X m 1V(*m 1) n 1 ( X m ) 
 U1* ( X m ) J1,1 ( X m )  U 2* ( X m ) J 2,1 ( X m )  ...  U m* ( X m ) J m,1 ( X m ) 
 XU1* ( X m ) J1,n 1 ( X m )  XU 2* ( X m ) J 2,n 1 ( X m )  ...  XU m* ( X m ) J m,n 1 ( X m )  ... 
 X m 1U1* ( X m ) J1,( m 1) n 1 ( X m )  X m 1U 2* ( X m ) J 2,( m 1) n 1 ( X m )  ... 
 X m 1U m* ( X m ) J m,( m 1) n 1 ( X m ).
Тогда
G1 ( X )  J1,1 ( X m )  XJ1,n1 ( X m )  ...  X m1 J1,( m1) n1 ( X m ) ,
XG1 ( X )  J 2,1 ( X m )  XJ 2,n1 ( X m )  ...  X m1 J 2,( m1) n1 ( X m ) ,
…
X m1G1 ( X )  J m,1 ( X m )  XJ m,n1 ( X m )  ...  X m1J m,( m1) n1 ( X m ) .
Поэтому:
G1,0 ( X )  G1,1 ( X )  ...  G1,m1 ( X )  J1,1 ( X m )  XJ1,n1 ( X m )  ...  X m1J1,( m1) n1 ( X m ) ,
40
X [G1,0 ( X )  G1,1 ( X )  ...  G1,m1 ( X )]  J 2,1 ( X m )  XJ 2,n1 ( X m )  ...  X m1J 2,( m1) n1 ( X m ) ,
…
X n1[G1,0 ( X )  G1,1 ( X )  ...  G1,m1 ( X )]  J m,1 ( X m )  XJ m,n1 ( X m )  ...  X m1J m,( m1) n1 ( X m ) .
Следовательно
1
J1,1 ( X )  G1,0 ( X m ) ,
J1,n1 ( X )  X

1
m
1
G1,1 ( X m ) ,
…
J1,( m1) n1 ( X )  X

m 1
m
1
G1,m1 ( X m ) ,
1
1
J 2,1 ( X )  X m G1,m1 ( X m ) ,
1
J 2,m1 ( X )  G1,0 ( X m ) ,
…
J 2,( m1) n1 ( X )  X

m2
m
1
G1,m2 ( X m ) ,
…
J m,1 ( X )  X
m 1
m
J m,n1 ( X )  X
1
G1,1 ( X m ) ,
m2
m
1
G1,2 ( X m ) ,
…
1
J m,( m1) n1 ( X )  G1,0 ( X m ) .
В общем виде i, j  1, 2,...m и h  m  i  j mod m , вышеназванные формулы перепишутся:
J j ,(i 1) n 1 ( X )  X
J j ,(i 1) n 2 ( X )  X
j i
m
1
m
G1,h ( X ) ,
j i
m
1
m
G2,h ( X ) ,
…
J j ,in ( X )  X
j i
m
1
m
Gn,h ( X ) ,
41
j i
m
1
m
или J j ,(i 1) n s ( X )  X Gs ,h ( X ),
где s  1, 2,...n .
Чтобы определить полиномиальную порождающую матрицу G* ( X )
перфорированного сверточного кода со скоростью
m
, перфорируют a
nm  a
столбцов матрицы J ( X ) , соответствующих нулям вектора перфорирования
материнского сверточного кода.
Для примера возьмем сверточный код C(57,175,53) [51]. Тогда полиномиальная порождающая матрица G( X ) в полиномиальном представлении:
G( X )  1  X  X 2  X 3  X 5 ,1
  X 2  X 3  X 4  X 5  X 6 ,1
  X  X 3  X 5  .
Допустим, что нужно определить полиномиальную порождающую
матрицу G* ( X ) перфорированного сверточного кода со скоростью 3/4 и вектором перфорирования B  101001010 . Сначала определяется объѐм полиномиальной порождающей матрицы J ( X ) c m  3 и n  3 , что дает 3 строки и 9
столбцов. Затем по (1.25), (1.26) вычисляется полиномиальная порождающая
матрица J ( X )
 1 X 1 X  X 2 1 X

J(X )  X  X 2
X  X2
X2
 X
X2
X

1
X
1
1 X
1 X
X 

2
1 X 1 X  X 1 X
1
X
1 .
X  X2
X  X2
X 2 1  X 1  X  X 2 1  X 
Перфорируются столбцы J ( X ) , соответствующие нулям вектора перфорирования B  101001010 . Получается полиномиальная порождающая матрица G* ( X ) сверточного кода со скоростью 3/4, сверточным кодом:
1
1 X 
 1 X 1 X

.
2
2
G (X )  X  X
X
1 X
X

 X
X
X 2 1  X  X 2 
*
В случае скорости 2/3 эти производные коды доказали эквивалентно с
перфорированными сверточными кодами [26]. В четвертой главе оцениваются результаты по этому методу.
42
Следовательно, исследование перфорированного сверточного кода
можно заменить оценкой эффективности эквивалентного сверточного кода.
Применение критерий поиска для сверточных кодов позволяет найти хорошие перфорированные сверточные коды.
1.4.3. Передаточная функция перфорированных сверточных кодов
Передаточная функция перфорированного сверточного кода имеет вид
[25], [19], аналогичный формуле (1.18) для сверточного кода:
T ( D) 

aD
d  dCB
d
d
,
(1.27)
где dCB - свободное расстояние кода; d - расстояние Хемминга рассматриваемого пути от нулевого пути; ad - число путей с расстоянием d от нулевого
пути; D - выходная последовательность.
Исследование передаточной и расширенной передаточной функции
перфорированных сверточных кодов позволяет оценить эффективность кода.
1.5. Алгоритмы декодирования сверточного кода
Существуют три основных семейства алгоритмов декодирования сверточных кодов: последовательный алгоритм, алгоритм Витерби и алгоритм
максимальной апостериорной вероятности (MAP) [13], [14].
В 1961 Возенкрафт (Wozencraft) и Рейффен (Reiffen) описали первый
практический алгоритм декодирования сверточных кодов [49]. Алгоритм основывался на последовательном декодировании. Этот алгоритм является субоптимальным [7]. Несколько других алгоритмов были разработаны в работах Возенкрафта и Рейффена. В 1963 году Фано (Fano) ввел метрику Фано
[22]. Метрика Фано стала типичной метрикой пути в последовательном декодировании. Первоначально метрика Фано использовалась в его последовательном алгоритме декодирования на кодовом дереве [22]. В 1965 Зигангировым (Zigangirov) был предложен стек алгоритм, который ищет в кодовое дерево кодовые слова.
43
В 1967 Витерби описал алгоритм декодирования, который носит его
имя [48]. Вскоре Форни (Forney) доказал, что алгоритм Витерби - алгоритм
максимального правдоподобия декодирования для сверточных кодов [18]. В
1989 г. Йоахим X. и Петр X. (Joachim Hagenauer и Peter Hoeher) [28] предложили модифицированный алгоритм Витерби с целью получения апостериорной вероятности на выходе, соответствующей каждому переходу состояний.
Этот алгоритм известен как алгоритм Витерби с мягким выходом (алгоритм
SOVA) и разработан для повышения достоверности вычисления апостериорной вероятности [28].
В 1973 Баль (Bahl) и другие [33] предложил алгоритм декодирования
по максимальной апостериорной вероятности - MAP. По сравнению с Витерби MAP обеспечивает маленькую вероятность битовой ошибки. Эти небольшие различия в производительности требуют примерно удвоения сложности
алгоритма Витерби, делая MAP непривлекательным для практического декодирования сверточных кодов. Однако декодирование MAP крайне важно для
декодирования турбокодов итерационной процедурой, чтобы вычислять априорные вероятности. Применения декодирования MAP к турбокодам, рассмотрены Берроу и Бенедетто в статьях [17], [42].
Рассмотрим самый эффективный алгоритм декодирования сверточных
кодов - алгоритм Витерби.
1.5.1. Оптимальное декодирование сверточных кодов - алгоритм Витерби
Рассмотрим декодирование по методу максимального правдоподобия.
Если все входные последовательности равновероятны, то минимальная вероятность ошибки получается при поиске максимальной условной вероятности.
Условные вероятности называют функциями правдоподобия P(Z V ) , где Z это принятая кодовая последовательность, V - одна из возможных передан-
44
ных последовательностей, V  - последовательность, удовлетворяющая уравнению принципа максимального правдоподобия (1.28) [14], [15], [41]
P(Z V )

max P(Z V ) .
повсемV

(1.28)
Это формализация способа принятия решений, основанного на здравом
смысле, когда имеются статистические данные о вероятностях. При рассмотрении двоичной демодуляции, предполагается передача только двух равновероятных сигналов s1 (t ) , s2 (t ) . Следовательно, принятие двоичного решения
на основе принципа максимального правдоподобия, касающееся данного полученного сигнала, означает, что в качестве переданного сигнала выбирается
s1 (t ) , если p( z s1 (t ))  p( z s2 (t )) .
Таким образом, применение принципа максимального правдоподобия
при декодировании бит данных, закодированных сверточным кодом, осуществляется в контексте выбора наиболее вероятной последовательности, как
показано в уравнении (1.28). Обычно имеется множество возможных переданных последовательностей двоичных символов. Что касается двоичного
кода, то последовательность из L двоичных символов является членом набора
из 2L возможных последовательностей. Следовательно, в контексте максимального правдоподобия можно сказать, что в качестве переданной последовательности выбирается V  , если правдоподобие P(Z V ) больше правдоподобия всех остальных возможно переданных последовательностей. Такой оптимальный декодер, минимизирующий вероятность ошибки (когда все переданные последовательности равновероятны), известен как декодер, работающий по принципу максимального правдоподобия.
Предположим, что канал без памяти - аддитивный белый гауссовский
шум с нулевым средним, т.е. шум влияет на каждый символ кода независимо
от остальных символов. При скорости кодирования сверточного кода равной
1 n , правдоподобие можно выразить следующим образом [14]:
45

n
i 1
j 1
P( Z V )   P( zij vij ) ,
(1.29)
где zij - ij-й принятый кодовый символ, vij - ij-й переданный кодовый символ.
Задача декодирования заключается в выборе пути сквозь решетку, таким образом, чтобы произведение

n
i 1
j 1
 P( z
ij
vij ) было максимальным [14].
(1.30)
Как правило, при вычислениях удобнее пользоваться логарифмом
функции правдоподобия, поскольку это позволяет произведение заменить
суммой. Таким преобразованием можно пользоваться, поскольку логарифм
является монотонно возрастающей функцией и, следовательно, не внесет изменений в выбор окончательного кодового слова. Логарифмическую функцию правдоподобия можно определить следующим образом [14]:

n
  lg P( Z V )   lgP( zij v ij ) .
i 1 j 1
(1.31)
Теперь задача декодирования заключается в выборе пути вдоль решетки. Таким образом, чтобы  было максимальным. Декодирование на основе
принципа максимального правдоподобия эквивалентно декодированию по
минимуму расстояния Хемминга для двоичного симметричного канала.
Алгоритм Витерби в случае жесткого решения направлен на поиск пути в решетке, имеющего минимальную метрику расстояния Хемминга.
Принцип поиска состоит в том, чтобы для каждого узла в кодовой решетке
сохранить только один путь с наименьшей метрикой. Все остальные пути исключаются из рассмотрения, так как они не влияют на выбор решения, следовательно, на качество декодирования. Сохраняемый путь называют выжившим.
Решение об оценке последовательности выносится в последний момент
времени td  T . Если минимальная метрика Хемминга  соответствует выжившему пути.
46
Алгоритм Витерби включает следующие шаги:
1. Установка исходных данных: td  0 ; состояние декодера S0  0 ; значения метрики  S 0  0 ;  S 0  0 (начальное значение).
0
0
2. Увеличение значения td на единицу и затем:
2.1. Вычисление метрик ветвей, входящих в каждый узел в момент td .
2.2. Вычисление метрик путей, входящих в каждый узел в момент td ,
путем суммирования метрики этой ветви с метрикой выжившего пути в момент td  1 .
2.3. Сравнение метрик всех путей, входящих в этот узел, и поиск выжившего пути для каждого узла; сохранение выжившего пути и его метрики
для каждого узла.
3. Повторение п. 2 когда td  T .
4. Выживший путь в узле td  T с минимальной метрикой  является
максимально правдоподобным.
Алгоритм Витерби в случае мягкого решения не отличается от алгоритма Витерби в случае жесткого решения. Однако вместо метрики Хемминга используется евклидовое расстояние.
Алгоритма Витерби для перфорированного сверточного кода реализуется сходно. Декодер Витерби для перфорированного сверточного кода реализуется путем вставки нуля на позиции перфорирования полученной последовательности. Шаги алгоритма Витерби повторяют вычисления с п1 до п4,
однако не вычисляют метрики в позициях вставки нулей.
1.5.2. Другие алгоритмы декодирования сверточных кодов
Из других алгоритмов декодирования сверточного кода следует отметить последовательные алгоритмы и пороговое декодирование. Однако алгоритм порогового декодирования на практике не используется. Рассмотрим
алгоритм последовательного декодирования - алгоритм Фано.
47
Последовательный алгоритм декодирования Фано ищет наиболее правдоподобный путь по дереву или решѐтке путѐм проверки каждый раз одного
пути. Приращение, добавляемое к метрике вдоль ветви пропорционально вероятности принимаемого сигнала для этой ветви, как в алгоритме Витерби, за
исключением того, что к метрике каждой ветви добавляется, отрицательная
константа. Величина этой константы выбирается так, что бы метрика правильного пути в среднем бы увеличивалась, в то время как метрика для любого неправильного пути в среднем увеличивалась. Путѐм сравнения метрики претендующего пути с меняющимся порогом алгоритм Фано обнаруживает и отвергает неправильные пути.
Для большей конкретности рассмотрим канал без памяти.
Метрика Фано для пути по дереву или решѐтке от первой ветви до  -й
ветви можно выразить так [13]:

n
M Ф   M ij ,
(1.32)
i 1 j 1
где
M ij  log 2
p  zij | vij 
p  zij 
 M0 ,
(1.33)
где zij - ij-й принятый кодовый символ, vij - ij-й переданный кодовый символ,
M 0 - положительная константа, M 0 выбирается так, что неправильные пути
будут иметь уменьшающиеся метрики, в то время как правильный путь в
среднем увеличивает метрику.
Метрика (1.33) используется при декодировании жестких и мягких решений. Она может быть упрощена при жестком декодировании. В частном
случае ДСК с вероятностью искажения p метрика, согласующая с формулой
(1.33), определяется так [13]:

log 2  2 1  p    R
M ij  

 log 2 2 p  R
где R - скорость кода.
при
zij  vij
при
zij  vij
,
(1.34)
48
Например, для передачи информации по ДСК с вероятностью ошибки
p  0,1 используется сверточный код со скоростью R  1 3 . Тогда по формуле
(1.34):
 0.52
M ij  
2.65
при
zij  vij ,
при
zij  vij .
Для упрощения расчетов метрику M ij можно нормировать. Нормированная метрика для рассматриваемого примера
1
M ij  
5
zij  vij ,
zij  vij .
Первоначально декодер можно заставить выбирать правильную траекторию путѐм передачи данных. Тогда он продвигается вперед от узла к узлу,
выбирая наиболее вероятную (с большей метрикой) ветвь в каждом узле и
увеличивая порог так, что его изменение никогда не превышает некоторую
заранее выбранную величину  . Воздействие шума в канале заставляет декодер выбирать неверный путь.
Поскольку метрика неверного пути в среднем уменьшается, то наступит момент, когда метрика упадет ниже текущего порога, скажем  0 . Если
это случится, декодер возвращается обратно и берет альтернативный путь по
дереву с меньшей метрикой ветви. Если приходит удача в альтернативном
пути, это продолжается вдоль пути все время, и выбирается наиболее правдоподобная ветвь в каждом узле. С другой стороны, если не существует пути,
который превышает порог  0 , порог уменьшается на величину  и декодер
возвращается к первоначальному пути. Если первоначальный путь не находится выше нового порога, декодер начинает обратный поиск других путей.
Эта процедура повторяется с уменьшением порога  при каждом повторении. Упрощѐнная структура алгоритма Фано показана на рисунке 1.20 [13].
49
Старт
L0
 0
Уменьшить порог на 
Хуже
Проверка более
правдоподобной
ветви
Проверка
предыдущего
узла
Хуже
Лучше
Лучше
Хуже
Лучше
Проверь
Эту ветвь
Шаг назад
Шаг вперѐд
Нет
Первый
раз у этого
узла?
Да
Нет
Имеется
ли здесь более
правдоподобная
ветвь?
Да
Увеличить
порог на 
Рисунок 1.20 - Упрошѐнная структура алгоритма Фано
Алгоритм Фано также общие последовательные алгоритмы только используется в большом кодовом ограничении K  10 . В практике используется
алгоритм Витерби кодов с ограничениями K  10 .
50
1.6. Граница вероятности битовой ошибки сверточных кодов
Вероятность битовой ошибки Pb является очень важным параметром
системы связи и применяется для оценки качества кода. Эта вероятность может вычисляться с помощью машинного моделирования алгоритмов декодирования, что требует значительного времени особенно при определении малых вероятностях Pb и больших кодовых ограничениях. Чтобы оценить эффективность кода можно использовать верхнюю границу вероятности битовой ошибки [14], [31].
В общем случае можно представить формулу (1.21) передаточной
функции сверточного кода в виде когда L  1 [13]:
T  D, N  

aN
d  dCB
d
fd
Dd ,
(1.35)
где f d - вес входной последовательности, соответствующей кодовому слову с
расстоянием d.
С функцией T  D, N  связана верхняя граница вероятности битовой
ошибки [13], [14], [31]
Pb 

dT  D, N 
  cd D d
dN
d  dCB
N 1
E
R b
D  e N0
,
(1.36)
где cd – число битовых ошибок для путей с расстоянием d; R - скорость кодирования; Eb – энергия бита; N 0 – спектральная плотность мощности шума.
Верхняя граница характеризует эффективность сверточного кода. Однако ее точное вычисление требует больших временных затрат. Поэтому рассмотрим расчет верхней границы по усеченной передаточной функции сверточного кода при учете путей с расстояниями d  dCB , dCB  1, …, dCB  Lyc . При
этом выражения (1.35), (1.36) преобразуются к виду:
T  D 
dCB  Lyc

d  dCB
ad D d ;
(1.37)
51
Pb 
dCB  Lyc

cd D d
d  dCB
E
R b
D  e N0
.
(1.38)
Известны другие методы вычисления границы вероятности - граница
Ван Де Мееберг [37], [46], [35]; граница Бхаттачариа [36]. Например, граница
вероятности Ван Де Мееберга для канала ДСК вычисляется по формуле [37],
[46]
D
1

Pb   T  D   T   D    T  D   T   D   
2
2

1 D
 1 D


T  D 
T   D   D  2 p1 p  
2
 2


1  2 p 1  p 
2


T 2 p 1  p  
D  2 p 1 p 
1  2 p 1  p 
2

(1.39)


T 2 p 1  p  .
Граница Ван Де Мееберга, Бхаттачариа точнее, чем верхняя граница
(1.38) [37], [46], [35], [36]. Однако она очень сложна для вычисления вероятности битовой ошибки. Поэтому эта граница не используется для поиска хороших кодов.
Для примера на рисунке 1.21. показаны границы вероятности ошибки
на бит Pb для шести известных кодов со скоростью 1/2 и кодовым ограничением K от 2 до 7 [44].
Pb
Pb
Рисунок 1.21 - Границы вероятности ошибок битов
(a) мягкое решение, (b) жесткое решение.
52
Следовательно, граница вероятности битовой ошибки определяет эффективность сверточного кода. Она используется, чтобы оценить, сравнить
новые сверточные коды.
1.7. Применение сверточных кодов
Сверточные коды обладают лучшими достоинствами исправления
ошибок, поэтому они используются широко в практики, особенно в принципе FEC или гибрид FEC/ARQ (стандарты VSAT). Кроме этого, благодаря
простому алгоритму декодирования, FEC часто пользуется сверточными кодами, имеющими лучшие характеристики по исправлению относительно
блоковых кодов при одинаковой сложности. Например, они используются в
цифровом вещательном телевидении (стандарты DVB, ATSC), спутниковых
системах (Intelsat, Inmarsat, Globalstar…), цифровых микроволновых системах, волоконно-оптической линии связи, и т. д. Хорошие сверточные коды
были найдены разными методами, обладающими эффективностью хорошей
помехоустойчивости. В соответствии с требованиями качества и сложности в
каждой системе используются сверточные коды с различными кодовыми ограничениями. Например, в системах мобильной связи GSM 900, GSM 1800
применяется код C(23,35) со скоростью 1/2, кодовым ограничением K  5 .
Код C(133,171) со скоростью 1/2, кодовым ограничением K  7 , также
его перфорированные коды со скоростями 2/3, 3/4, 5/6 и 7/8 широко применяются во многих высококачественных системах связи цифрового телевизионного вещания DVB, мобильной связи CDMA 2000, WCDMA, спутниковой
цифровой связи, космической связи.
Кроме того, имеется несколько сверточных кодов с меньшей скоростью
и большим кодовым ограничением, используемых в системах связи высокой
достоверности. Например, в системе связи третьего поколения - 3GPP используются коды C(561,753) и C(557,663,711), K  9 и долгосрочной эволюции - LTE или четвертого поколения C(133,171,165), K  7 [16], [21].
53
Наибольшее распространение для декодирований сверточных кодов
получил алгоритм Витерби, предложенный в 70-х годах. В отличие от блоковых алгебраических кодов, декодирование сверточных кодов с мягкими решениями не вызывает затруднений. Это позволяет получить выигрыш около
2 дБ по сравнению с использованием жестких решений для требуемой величины Pb менее 10-5 [4].
Выводы к первой главе

Выполненный обзор методов канального кодирования показал, что
требуемую помехоустойчивость систем связи обеспечивают сверточные коды.

Перфорирование сверточного кода является основным способом уве-
личения скорости кода при приемлемой сложности декодирования.

При небольших кодовых ограничениях декодирование сверточных ко-
дов производится по алгоритму Витерби с мягким решением.

Сверточные коды находят широкое применение в современных цифро-
вых системах связи.

Поиск оптимальных сверточных, в том числе и перфорированных ко-
дов является по-прежнему актуальной задачей.
54
Глава 2. КРИТЕРИИ ПОИСКА ОПТИМАЛЬНЫХ
СВЕРТОЧНЫХ КОДОВ
Общепринято сравнивать сверточные коды по вероятности битовой
ошибки [12], [13]. Эффективность кода тем больше, чем меньше вероятность
битовой ошибки Pb . Эта вероятность может вычисляться с помощью алгоритмов машинного моделирования, что требует больших временных затрат,
особенно при определении малых Pb и больших кодовых ограничениях. Поэтому для поиска хороших сверточных кодов используются критерия - поиск
по максимальному свободному расстоянию (МСР) [38], [32], поиск по профилю оптимального расстояния (ПОР) [30], поиск по спектру оптимального
расстояния (СОР) [39] и поиск по вероятности битовой ошибки. Рассмотрим
эти критерии.
2.1. Критерии поиска хороших сверточных кодов
2.1.1. Критерий поиска по максимальному свободному расстоянию
(МСР)
Свободное расстояние dCB является важным параметром сверточного
d 1
кода, который характеризует кратность исправляемых ошибок t   CB  .
 2 
Свободное расстояния является параметром передаточной функции T ( D)
(раздел 1.3.3):
T  D 

aD
d  dCB
d
d
,
(2.1)
где ad - число путей с расстоянием d от нулевого пути, D - выходная последовательность. Например, для кода C(5,7) функция T ( D) в форме (1.17) определяет свободное расстояние dCB  5 .
Хорошие сверточные коды имеют максимальное свободное расстояние,
следовательно, максимальную кратность исправляемых ошибок t. Среди раз-
55
ных сверточных кодов с одинаковым кодовым ограничением может быть кодом с наибольшим свободным расстоянием, который считается оптимальным. Оденвальдер [38], К. Дж. Ларсен [32] нашли хорошие сверточные коды
по этому критерию, которые представлены в таблицах 2.1, 2.2 и 2.3.
Таблица 2.1 - Хорошие коды с максимальным свободным расстоянием,
скоростью 1/2
K
3
4
5
6
7
8
9
10
11
12
13
14
Код
C(5,7)
C(15,17)
C(23,35)
C(53,75)
C(133,171)
C(247,371)
C(561,753)
C(1167,1545)
C(2335,3661)
C(4335,5723)
C(10533,17661)
C(21675,27123)
dCB
5
6
7
8
10
10
12
12
14
15
16
16
Таблица 2.2 - Хорошие коды с максимальным свободным расстоянием,
скоростью 1/3
K
3
4
5
6
7
8
9
10
11
12
13
14
Код
C(5,7,7)
C(13,15,17)
C(25,33,37)
C(47,53,75)
C(133,145,175)
C(225,331,367)
C(557,663,711)
C(1117,1365,1633)
C(2353,2671,3175)
C(4767,5723,6265)
C(10533,10675,17661)
C(21645,35661,37133)
dCB
8
10
12
13
15
16
18
20
22
24
24
26
56
Таблица 2.3 - Хорошие коды с максимальным свободным расстоянием,
скоростью 1/4
K
3
4
5
6
7
8
9
10
11
12
13
14
Код
C(5,7,7,7)
C(13,15,15,17)
C(25,27,33,37)
C(53,67,71,75)
C(135,135,147,163)
C(235,275 313,357)
C(463,535,733, 745)
C(1117,1365,1633,1653)
C(2387,2353,2671,3175)
C(4767,5723,6265,7455)
C(11145,12477,15573,16727)
C(21113,23175,35527,35537)
dCB
10
13
16
18
20
22
24
27
29
32
33
26
Недостаток этого критерия поиска в том, что он не бракует катастрофические коды, имеющие максимальные свободные расстояния [32]. Например,
катастрофические
сверточные
коды
C(27,35),
C(5237,6731)
и
C(21645,37133) с соответствующим максимальным свободным расстоянием
dCB  8,16,17 и с кодовым ограничением K  5,12,14 по этому критерию могут
считаться лучшим.
- Второй недостаток этого критерия состоит в том, что при больших
ограничениях существует много кодов, имеющих одинаковое максимальное
свободное расстояние, например коды в таблице 2.4 [25].
Таблица 2.4 - Другие коды с максимальным свободным расстоянием,
скоростью 1/2
K
5
5
5
6
6
7
7
7
Код
C(23,27)
C(21,33)
C(27,37)
C(51,67)
C(55,67)
C(155,177)
C(113,145)
C(125,147)
dCB
7
7
7
8
8
10
10
10
57
Код
C(117,155)
C(135,173)
C(247,323)
C(257,335)
C(515,657)
C(517,773)
K
7
7
8
8
9
9
dCB
10
10
11
11
12
12
Из-за этих недостатков необходимо использовать другие параметры
или критерии, чтобы найти лучшие сверточные коды. В следующем разделе
рассмотрим критерий поиска хороших сверточных кодов по профилю оптимального расстояния.
2.1.2. Критерий поиска по профилю оптимального расстояния (ПОР)
Рассмотрим сверточные коды со скоростью 1 n . Последовательность
входных информационных символов u1 , u2 ,ui  кодируются в выходную последовательность по паре: v11 , v12 ..., v1n , v21 , v22 ,..., v2n ,, vi1, vi 2 vin ... . Обозначим v1,i
выходную последовательность, соответствующую входной последовательности длиной 1i ,
v1,i  v11 , v12 ,...v1n , v21 , v22 ,...v2 n ,, vi1 , vi 2 ,...vin .
(2.2)
Пусть d j - расстояние Хемминга последовательности v1, j  от нулевой, j  1...i . Тогда профиль расстояния d по определению [30]:
d  d1 , d2 ,, d j ,... .
(2.3)
По критерию профиля оптимального расстояния сверточный код
C (G1 , G2 ...Gn ) с профилем расстояния d  d1 , d2 ,, d j ,... лучше сверточного ко-
да C(G1, G2 ...Gn ) с профилем расстояния d '  d '1 , d '2 ,, d ' j ,... , если d j и d j '
удовлетворяют условию [30]:
 d j , j  1, , i  1
dj 
.
 d j  j  i
(2.4)
Для примера рисунок 2.1. поясняет вычисление профиля расстояния
сверточного кода C(13,17) с j  5 [30].
58
000
000
2
2
001
0
011
dH
100
S j 1
Sj
1
S j , S j 1 - состояния кодера
dH - вес выходной
последовательности ветви
1
110
d1  2
d2  3
d4  4
d3  4
d5  6
Рисунок 2.1 - Вычисление профиля расстояния d   d1 , d2 , d3 , d4 , d5 
Это путь соответствует входной последовательности 11000, выходной
последовательности 1101010011. По рисунку 2.1. определяется профиль расстояния d   2,3, 4, 4,6 .
В случае j  1...K , где K - кодовое ограничение, профиль оптимального
расстояния d   d1 , d2 ,, d K  называется минимумом профиля расстояния кода.
Хорошие сверточные коды по критерию поиска ПОР с d   d1 , d2 ,, d K  ,
со скоростью 1/2 представлены в таблице 2.5, а в таблице 2.6 - хорошие сверточные коды со скоростью 1/3 [37], [30]:
Таблица 2.5 - Хорошие коды со скоростью 1/2 по критерию ПОР
K
3
4
5
Код
C(5,7)
C(13,17)
C(25,35)
dK
3
4
4
dCB
5
6
6
59
K
6
7
8
9
10
11
12
13
Код
C(51,71)
C(55,75)
C(121,161)
C(123,163)
C(261,361)
C(457,755)
C(1301,1701)
C(1037,1707)
C(2603,3603)
C(2611,3611)
C(5421,7421)
C(5435,7435)
C(13011,17011)
dK
5
5
5
5
6
6
6
6
7
7
7
7
8
dCB
7
8
7
8
9
9
9
10
10
11
11
12
11
Таблица 2.6 - Хорошие коды со скоростью 1/3 по критерию ПОР
K
3
4
5
6
7
8
Код
C(5,7,7)
C(13,15,17)
C(25,33,37)
C(47,53,75)
C(117,133,175)
C(247,265,327)
dK
5
6
7
8
9
10
dCB
8
10
12
13
15
16
Из таблиц 2.5, 2.6 видно, что при кодовых ограничениях K  5,6,7... коды, например C(51,71), C(121,161),… имеют лучшие профили расстояний, не
похожие коды, найденные по критерию максимального свободного расстояния в таблицах 2.1, 2.2.
Рассмотрим еще поиск хороших сверточных кодов по спектру оптимального расстояния.
2.1.3. Критерий поиска по спектру оптимального расстояния (СОР)
В общем случае передаточная функция определяется из формулы (1.35)
T  D, N  

aN
d  dCB
d
fd
Dd ,
(2.5)
где f d - вес входной последовательности, соответствующей кодовому слову с
расстоянием d. Известно, что значение информационного веса играет важную
60
роль для оценки эффективности кода [27]. Беря производную по переменной
N, получаем:

dT  D, N 
  cd D d ,
dN
d  dCB
N 1
(2.6)
где cd – число битовых ошибок для путей с расстоянием d.
Таким образом, спектр расстояния кода изображается двумя функциями (2.5) и (2.6), где множители ad  - число кодовых слов, имеющих расстояние d, а множители cd  - число ошибочных битов для кодовых слов (ошибки
информационного веса), имеющих расстояние d. Множители dCB , ad  и cd 
определяют спектр расстояний сверточных кодов. Например, спектры расстояний кодов C(5,7), C(13,17), C(15,17), C(133,171) приведены в таблице 2.7,
где символы «( )» и «[ ]» обозначают множители ad  и cd  [27], [39].
Таблица 2.7 - Спектр расстояния кодов
Код
dCB
C(5,7)
5
C(13,17)
6
C(15,17)
6
C(133,171)
10
(ad, d= dCB, dCB +1, …, dCB +10, …)
[cd, d= dCB, dCB +1, …, dCB +10, …]
(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, …)
[1, 4, 12, 32, 80, 192, 448, 1024, 2304, 5120, …]
(1, 3, 5, 11, 25, 55, 121, 267, 589, 1299, …)
[2, 7, 18, 49, 130, 333, 836, 2069, 5060, 12255, …]
(1, 3, 5, 11, 25, 55, 121, 267, 589, 1299, …)
[2, 7, 18, 49, 130, 333, 836, 2069, 5060, 12255, …]
(11, 0, 38, 0, 193, 0, 1331, 0, 7275, 0, …)
[36, 0, 211, 0, 1404, 0, 11633, 0, 774330, …]
Критерий поиска хороших сверточных кодов по спектру оптимального
расстояния (СОР) [39] построен для кодов с одинаковыми скоростями и кодовым ограничением K.
Определение
лучшего
спектра
расстояния.
Сверточный
код
C (G1 , G2 ,...Gn ) с параметрами dCB , cd лучше другого кода C (G1 , G 2 ,..., G n ) с пара-
метрами dCB , cd , если его спектр удовлетворяет условиям [39]:
1. dCB  dCB или
61
2. dCB  dCB и cd  cd при d  dCB или cd  cd при изменении расстояния от
d  dCB до d  dCB    1 и cd  cd в d  dCB   , где целое число   0 .
Сверточные коды со скоростями 1/2, 1/3 и 1/4, лучшие по критерию
СОР [39], приведены в таблицах 2.8, 2.9, 2.10.
Таблица 2.8 - Хорошие коды со скоростью 1/2 по критерию СОР
K
3
Код
C(5,7)
dCB
5
4
C(15,17)
6
5
C(23,35)
7
6
C(53,75)
8
7
C(133,171)
10
8
C(247,371)
10
9
C(561,753)
12
(ad, d= dCB, dCB +1, …, dCB +18)
[cd, d= dCB, dCB +1, …, dCB +18]
(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192,
16384, 32768, 65536, 131072, 262144)
[1, 4, 12, 32, 80, 192, 448, 1024, 2304, 5120, 11264, 24576,
53248, 114688, 245760, 524288, 1114112, 2359296, 4980736]
(1, 3, 5, 11, 25, 55, 121, 267, 589, 1299, 2865, 6319, 13937,
30739, 67797, 149531, 329801, 727399, 1604329)
[2, 7, 18, 49, 130, 333, 836, 2069, 5060, 12255, 29444, 70267,
166726, 393635, 925334, 2166925, 5057286, 11767305,
27305864]
(2, 3, 4, 16, 37, 68, 176, 432, 925, 2156, 5153, 11696, 26868,
62885, 145085, 334024, 774966, 1793363, 4140001)
[4, 12, 20,72, 225, 500, 1324, 3680, 8967, 22270, 57403,
142234, 348830, 867106, 2134239, 5205290, 12724352,
31022962, 75250693]
(1, 8, 7, 12, 48, 95, 281, 605, 1272, 3334, 7615, 18131, 43197,
99210, 237248, 559238, 1312675, 3108350, 7299487)
[2, 36, 32, 62, 332, 701, 2342, 5503, 12506, 36234, 88576,
225685, 574994, 1400192, 3554210, 8845154, 21841106,
54350946, 133703018]
(11, 0, 38, 0, 193, 0, 1331, 0, 7275, 0, 40406, 0, 234969, 0,
1337714, 0, 7594819, 0, 43375588)
[36, 0, 211, 0, 1404, 0, 11633, 0, 77433, 0, 502690, 0, 3322763,
0, 21292910, 0, 134365911, 0, 843425871]
(1, 6, 12, 26, 52, 132, 317, 730, 1823, 4446, 10739, 25358,
60773, 146396, 350399, 842174, 2021290, 4853474, 11648661)
[2, 22, 60, 148, 340, 1008, 2642, 6748, 18312, 48478, 126364,
320062, 821350, 2102864, 5335734, 13549068, 34254388,
86441848, 217480314]
(11, 0, 50, 0, 286, 0, 1630, 0, 9639, 0, 55152, 0, 320782, 0,
1859184, 0, 10777264, 0, 62423710)
[33, 0, 281, 0, 2179, 0, 15035, 0, 105166, 0, 692330, 0, 4580007,
0, 29692894, 0, 190453145, 0, 1298999091]
62
K
Код
dCB
10
C(1151,1753)
12
11
C(3345,3613)
14
12
C(5261,7173)
15
13
C(12767,16461)
16
14
C(27251,37363)
16
15
C(63057,44735)
18
(ad, d= dCB, dCB +1, …, dCB +18)
[cd, d= dCB, dCB +1, …, dCB +18]
(1, 7, 19, 28, 69, 185, 411, 1010, 2492, 5963, 14192, 34584,
83567, 200343, 483393, 1165406, 2809777, 6773483,
16324253)
[2, 21, 100, 186, 474, 1419, 3542, 9774, 25950, 66831, 171594,
447372, 1152976, 2938087, 7497956, 19072552, 48400420,
122452387, 309085546]
(14, 0, 92, 0, 426, 0, 2595, 0, 15221, 0, 87694, 0, 509876, 0,
2975097, 0, 17303477, 0, 100650003)
[56, 0, 656, 0, 3708, 0, 27503, 0, 185997, 0, 1220645, 0,
7966761, 0, 51581661, 0, 329655865, 0, 2089605350]
(14, 21, 34, 101, 249, 597, 1373, 3317, 8014, 19559, 47302,
113723, 274266, 662666, 1600334, 3857052, 9308986,
22473832, 54226452)
[66, 98, 220, 788, 2083, 5424, 13771, 35966, 93970, 246720,
635694, 1623432, 4149988, 10599534, 26964102, 68271886,
172723512, 436205306, 1098861232]
(14, 38, 35, 108, 342, 724, 1604, 4020, 9825, 23899, 57724,
138584, 335272, 808236, 1952588, 4714596, 11375389,
27462352, 66275890)
[60, 188, 288, 952, 2754, 6628, 16606, 44640, 116712, 304987,
785180, 2002076, 5132496, 13067080, 33236580, 84264272,
213035502, 537722506, 1354359096]
(1, 17, 38, 69, 158, 414, 944, 2210, 5482, 13372, 32126, 77013,
186780, 451004, 1088003, 2626155, 6340407, 15310321,
36949108)
[2, 99, 243, 513, 1316, 3890, 9642, 24478, 65474, 169616,
434586, 1111869, 2857296, 7276470, 18478630, 46851729,
118546608, 299327559, 753952508]
(26, 0, 165, 0, 845, 0, 4844, 0, 28513, 0, 166583, 0, 968884, 0,
5648611, 0, 32907744, 0, 191817801)
[133, 0, 1321, 0, 7901, 0, 54864, 0, 370057, 0, 2450650, 0,
15893608, 0, 102303161, 0, 652188187, 0, 4129076656]
Таблица 2.9 - Хорошие коды со скоростью 1/3 по критерию СОР
K
Код
dCB
3
C(5,7,7)
8
4
C(13,15,17)
10
(ad, d= dCB, dCB +1, …, dCB +18)
[cd, d= dCB, dCB +1, …, dCB +18]
(2, 0, 5, 0, 13, 0, 34, 0, 89, 0, 233, 0, 610, 0, 1597, 0, 4181,
0, 10946)
[3, 0, 15, 0, 58, 0, 201, 0, 655, 0, 2052, 0, 6255, 0, 18687, 0,
54974, 0, 159765]
(3, 0, 2, 0, 15, 0, 24, 0, 87, 0, 188, 0, 557, 0, 1354, 0, 3713,
0, 9448)
[6, 0, 6, 0, 58, 0, 201, 0, 655, 0, 2052, 0, 6255, 0, 18687, 0,
63
Код
K
dCB
5
C(25,33,37)
12
6
C(47,53,75)
13
7
C(133,165,171)
15
8
C(225,331,367)
16
9
C(575,623,727)
18
10
C(1233,1375,1671)
20
11
C(2335,2531,3477)
22
12
C(5745,6471,7553)
24
13
C(13261,15167,17451)
24
(ad, d= dCB, dCB +1, …, dCB +18)
[cd, d= dCB, dCB +1, …, dCB +18]
54974, 0, 159765]
(5, 0, 3, 0, 13, 0, 62, 0, 108, 0, 328, 0, 1051, 0, 2544, 0,
7197, 0, 20658)
[12, 0, 12, 0, 56, 0, 320, 0, 693, 0, 2324, 0, 8380, 0, 23009,
0, 71016, 0, 222592]
(1, 3, 6, 4, 5, 12, 14, 33, 66, 106, 179, 317, 513, 766, 1297,
2251, 3964, 6721, 10969)
[1, 8, 26, 20, 19, 62, 86, 204, 420, 710, 1345, 2606, 4343,
6790, 12305, 22356, 41090, 72820, 123901]
(3, 3, 6, 9, 4, 18, 35, 45, 77, 153, 263, 436, 764, 1209, 2046,
3550, 5899, 10002, 16870)
[7, 8, 22, 44, 22, 94, 219, 282, 531, 1104, 1939, 3460, 6538,
11006, 19478, 35738, 61865, 109308, 193128]
(1, 0, 8, 0, 24, 0, 51, 0, 133, 0, 405, 0, 1129, 0, 3532, 0,
9754, 0, 28746)
[1, 0, 24, 0, 113, 0, 287, 0, 898, 0, 3020, 0, 9436, 0, 32644,
0, 98472, 0, 318914]
(1, 4, 10, 9, 17, 14, 39, 56, 85, 207, 258, 484, 917, 1390,
2572, 4362, 7330, 12484, 21293)
[2, 10, 50, 37, 92, 92, 274, 402, 600, 1579, 2130, 4120,
8306, 13108, 25524, 45034, 79896, 141080, 250146]
(3, 6, 14, 14, 27, 24, 51, 91, 178, 270, 470, 812, 1465, 2374,
4203, 6798, 11859, 19926, 34150)
[6, 16, 72, 68, 170, 162, 340, 629, 1410, 2090, 3938, 7046,
13736, 23242, 43234, 71630, 132118, 229788, 409930]
(7, 0, 27, 0, 55, 0, 161, 0, 413, 0, 1200, 0, 3809, 0, 10521, 0,
30860, 0, 89356)
[17, 0, 122, 0, 345, 0, 1102, 0, 3214, 0, 10215, 0, 36004, 0,
109166, 0, 347103, 0, 1087117]
(13, 0, 32, 0, 78, 0, 202, 0, 614, 0, 1808, 0, 4971, 0, 15006,
0, 42921, 0, 124908)
[43, 0, 162, 0, 507, 0, 1420, 0, 4857, 0, 16023, 0, 48501, 0,
160167, 0, 160167, 0, 496268, 0, 1553592]
(1, 0, 21, 0, 48, 0, 113, 0, 280, 0, 952, 0, 2647, 0, 7685, 0,
22336, 0, 64435)
[1, 0, 85, 0, 257, 0, 737, 0, 2106, 0, 7970, 0, 24486, 0,
77468, 0, 245926, 0, 767956]
Таблица 2.10 - Хорошие коды со скоростью 1/4 по критерию СОР
K
Код
dCB
(ad, d= dCB, dCB +1, …, dCB +18)
[cd, d= dCB, dCB +1, …, dCB +18]
3
C(5,5,7,7)
10
(1, 0, 2, 0, 4, 0, 8, 0, 16, 0, 32, 0, 64, 0, 128, 0, 256, 0,
512)
64
K
Код
dCB
4
C(13,15,15,17)
13
5
C(25,27,33,37)
16
6
C(51,55,67,77)
18
7
C(117,127,155, 171)
20
8
C(231,273,327,375)
22
9
C(473,513,671,765)
24
10
C(1173,1325,1467,1751)
27
11
C(2565,2747,3311,3723)
29
(ad, d= dCB, dCB +1, …, dCB +18)
[cd, d= dCB, dCB +1, …, dCB +18]
[1, 0, 4, 0, 12, 0, 32, 0, 80, 0, 192, 0, 448, 0, 1024, 0,
2304, 0, 5120]
(2, 1, 0, 3, 1, 4, 8, 4, 15, 16, 18, 45, 40, 73, 119, 122,
244, 313, 415)
[4, 2, 0, 10, 3, 16, 34, 18, 77, 84, 106, 280, 256, 514,
865, 934, 1988, 2620, 3685]
(4, 0, 2, 0, 4, 0, 15, 0, 30, 0, 54, 0, 115, 0, 252, 0, 511, 0,
1052)
[8, 0, 7, 0, 17, 0, 60, 0, 140, 0, 301, 0, 707, 0, 1675, 0,
3739, 0, 8402]
(3, 0, 3, 0, 9, 0, 13, 0, 26, 0, 66, 0, 127, 0, 311, 0, 608, 0,
1290)
[5, 0, 9, 0, 34, 0, 59, 0, 142, 0, 341, 0, 775, 0, 2042, 0,
4452, 0, 10369]
(2, 0, 6, 0, 7, 15, 0, 25, 0, 62, 0, 138, 0, 294, 0, 687, 0,
1348)
[3, 0, 17, 0, 32, 0, 66, 0, 130, 0, 364, 0, 889, 0, 1975, 0,
5168, 0, 11113]
(1, 2, 2, 2, 5, 8, 10, 14, 14, 18, 32, 50, 74, 107, 159, 240,
328, 504, 747)
[2, 4, 4, 6, 18, 32, 50, 78, 82, 92, 186, 302, 478, 759,
1132, 1756, 2502, 4006, 6130]
(1, 0, 6, 0, 8, 0, 23, 0, 37, 0, 77, 0, 157, 0, 339, 0, 790, 0,
1689)
[1, 0, 15, 0, 33, 0, 111, 0, 210, 0, 459, 0, 1030, 0, 2502,
0, 6239, 0, 14432]
(3, 4, 0, 5, 12, 12, 10, 17, 26, 46, 69, 70, 120, 199, 271,
391, 540, 880, 1371)
[7, 10, 0, 28, 54, 58, 54, 88, 148, 290, 427, 472, 848,
1490, 2077, 3114, 4474, 7544, 12307]
(3, 3, 1, 4, 13, 17, 9, 15, 42, 51, 56, 104, 152, 202, 289,
431, 634, 997, 1465)
[7, 8, 3, 16, 61, 84, 49, 88, 242, 312, 382, 724, 1096,
1526, 2257, 3496, 5328, 8756, 13245]
Видно, что при кодовых ограничениях K  3, 4,5,...,9 сверточные коды со
скоростью 1/2 по критерию СОР (в таблице 2.8) совпадают с кодами по критерию МСР (таблица 2.1). А при кодовых ограничениях K  10,11
 сверточные
коды со скоростью 1/2 по критерию СОР не похожие коды по критерию МСР
Хорошие коды по критерию СОР показаны лучше, чем коды по критерию максимального свободного расстояния потому что, кроме свободного
65
расстояния, оценивается число ошибочных битов (информационного веса).
Однако это критерий не учитывает влияние свободного расстояния, членов
других спектров расстояния и отношения Eb N0 для вероятности битовой
ошибки кода.
Чтобы оценить качество рассматриваемых критериев, сравним эффективность найденных кодов.
2.2. Сравнение эффективности сверточных кодов, выбранных по критериям МСР, ПОР и СОР
Из опубликованных сверточных кодов в таблицах 2.1 - 2.3, 2.5 - 2.6 и
2.8 - 2.10 видно, что существует несколько оптимальных кодов с одинаковыми кодовыми ограничениями. Поэтому для сравнения этих кодов по вероятности битовой ошибки используется моделирование алгоритмов декодирования и расчет верхней границы вероятности битовой ошибки.
Сначала сравним коды, выбранные по критериям МСР, ПОР и СОР по
верхней границе вероятности битовой ошибки. Однако ее точное вычисление
требует больших временных затрат. Поэтому верхняя граница вычисляется
по усеченной передаточной функции сверточного кода при учете путей с
расстояниями d  dCB , dCB  1, …, dCB  Lyc в формулах (1.37), (1.38).
Рассмотрим влияние степени усечения Lyc на границу вероятности
сверточного кода. Для примера возьмем сверточный код C(23,35), применяемый в системах мобильной связи стандарта GSM. Результаты расчета вероятности ошибок битов сверточного кода C(23,35) показаны в таблице 2.11. и
на
рисунке
2.2.
Кривые
1,
2,
3,
4,
5
соответствуют
усечению
Lyc  5, 10, 15, 20, 25 .
Таблица 2.11 - Вероятности ошибок битов сверточного кода C(23,35)
Pb
Lус =5
Pb
Lус =10
Pb
Lус =15
Pb
Lус =20
Pb
Lус =25
Eb/N0
(дБ)
66
Pb
Lус =5
1.59×10-3
5.20×10-4
1.55×10-4
4.18×10-5
1.01×10-5
2.14×10-6
3.96×10-7
6.19×10-8
8.02×10-9
8.36×10-10
6.81×10-11
4.19×10-12
1.87×10-13
5.83×10-15
1.21×10-16
1.58×10-18
1.24×10-20
5.38×10-23
1.22×10-25
Pb
Lус =10
2.68×10-3
7.14×10-4
1.84×10-4
4.54×10-5
1.04×10-5
2.17×10-6
3.97×10-7
6.20×10-8
8.02×10-9
8.37×10-10
6.81×10-11
4.19×10-12
1.87×10-13
5.83×10-15
1.21×10-16
1.58×10-18
1.24×10-20
5.38×10-23
1.22×10-25
Pb
Lус =15
3.34×10-3
7.79×10-4
1.89×10-4
4.57×10-5
1.05×10-5
2.17×10-6
3.97×10-7
6.20×10-8
8.02×10-9
8.37×10-10
6.81×10-11
4.19×10-12
1.87×10-13
5.83×10-15
1.21×10-16
1.58×10-18
1.24×10-20
5.38×10-23
1.22×10-25
Pb
Lус =20
3.69×10-3
7.98×10-4
1.90×10-4
4.57×10-5
1.05×10-5
2.17×10-6
3.97×10-7
6.20×10-8
8.02×10-9
8.37×10-10
6.81×10-11
4.19×10-12
1.87×10-13
5.83×10-15
1.21×10-16
1.58×10-18
1.24×10-20
5.38×10-23
1.22×10-25
Pb
Lус =25
3.88×10-3
8.03×10-4
1.90×10-4
4.57×10-5
1.05×10-5
2.17×10-6
3.97×10-7
6.20×10-8
8.02×10-9
8.37×10-10
6.81×10-11
4.19×10-12
1.87×10-13
5.83×10-15
1.21×10-16
1.58×10-18
1.24×10-20
5.38×10-23
1.22×10-25
Eb/N0
(дБ)
3
3,5
4
4,5
5
5,5
6
6,5
7
7,5
8
8,5
9
9,5
10
10,5
11
11,5
12
Рисунок 2.2 - Граница вероятности битовой ошибки сверточного кода
C(23,35)
67
Из приведенных расчетов следует, что слабая зависимость Pb  Lyc  проявляется лишь при малых значениях Eb N0 , а с их ростом эта зависимость
сходит на нет. Следовательно, влияние слагаемых высоких степеней передаточной функции на значения Pb при высоком отношении Eb N0 незначительно. Таким образом, можно принять Lyc  10 , что значительно уменьшит объем
вычислений.
Сравним относительное изменение вероятности битовой ошибки двух
сверточных кодов C(51,77) [12] и C(53,75) [39] при кодовом ограничении
K  6 (таблица 2.12).
Таблица 2.12 - Вероятности Pb сверточных кодов C(51,77) и C(53,75)
C(51,77)
Lус =10
1.14×10-3
2.62×10-4
5.69×10-5
1.16×10-5
2.18×10-6
3.65×10-7
5.26×10-8
6.34×10-9
6.19×10-10
4.72×10-11
2.72×10-12
1.14×10-13
3.30×10-15
6.33×10-17
7.62×10-19
5.43×10-21
2.14×10-23
C(53,75)
Lус =10
1.45×10-3
3.40×10-4
7.53×10-5
1.55×10-5
2.86×10-6
4.59×10-7
6.22×10-8
6.89×10-9
6.06×10-10
4.13×10-11
2.12×10-12
7.90×10-14
2.08×10-15
3.68×10-17
4.18×10-19
2.85×10-21
1.10×10-23
C(51,77)
Lус =15
1.48×10-3
2.91×10-4
5.88×10-5
1.17×10-5
2.19×10-6
3.65×10-7
5.26×10-8
6.34×10-9
6.19×10-10
4.72×10-11
2.72×10-12
1.14×10-13
3.30×10-15
6.33×10-17
7.62×10-19
5.43×10-21
2.14×10-23
C(53,75)
Lус =15
1.83×10-3
3.73×10-4
7.75×10-5
1.56×10-5
2.86×10-6
4.59×10-7
6.22×10-8
6.89×10-9
6.06×10-10
4.13×10-11
2.12×10-12
7.90×10-14
2.08×10-15
3.68×10-17
4.18×10-19
2.85×10-21
1.10×10-23
C(51,77)
Lус =20
1.69×10-3
3.00×10-4
5.91×10-5
1.17×10-5
2.19×10-6
3.65×10-7
5.26×10-8
6.34×10-9
6.19×10-10
4.72×10-11
2.72×10-12
1.14×10-13
3.30×10-15
6.33×10-17
7.62×10-19
5.43×10-21
2.14×10-23
C(53,75)
Lус =20
2.05×10-3
3.83×10-4
7.78×10-5
1.56×10-5
2.86×10-6
4.59×10-7
6.22×10-8
6.89×10-9
6.06×10-10
4.13×10-11
2.12×10-12
7.90×10-14
2.08×10-15
3.68×10-17
4.18×10-19
2.85×10-21
1.10×10-23
Eb/No
(дБ)
3
3,5
4
4,5
5
5,5
6
6,5
7
7,5
8
8,5
9
9,5
10
10,5
11
Видно, что при Eb N0 < 5,5 дБ вероятности битовой ошибки сверточных
кодов C(51,77) и C(53,75) повышаются, когда Lyc увеличивается от 10, 15 до
20. Вероятность Pb кода C(51,77) всегда меньше Pb кода C(53,75).
68
Используем границу вероятности битовой ошибки для оценки разных
кодов выбранных по критериям МСР, ПОР, СОР. В таблице 2.13 сравниваются хорошие коды по критериям МСР и СОР.
Таблица 2.13 - Сравнение Pb сверточных кодов по критерию МСР и СОР при
Lyc  10
C(1167,1545) C(1151,1753) C(2335,3661) C(3345,3613) C(133,145,175) C(133,165,171) Eb/No
K=10, МСР
K=10, СОР K=11, МСР K=11, СОР
K=7, МСР
K=7, СОР
(дБ)
1.61×10-3
2.86×10-4
4.53×10-5
6.50×10-6
8.40×10-7
9.60×10-8
9.37×10-9
7.48×10-10
4.67×10-11
2.19×10-12
7.34×10-14
1.68×10-15
2.49×10-17
2.26×10-19
1.17×10-21
1.42×10-3
2.45×10-4
3.70×10-5
4.90×10-6
5.70×10-7
5.71×10-8
4.79×10-9
3.24×10-10
1.71×10-11
6.77×10-13
1.93×10-14
3.82×10-16
4.99×10-18
4.08×10-20
1.96×10-22
9.62×10-4
1.49×10-4
2.02×10-5
2.43×10-6
2.57×10-7
2.32×10-8
1.72×10-9
9.98×10-11
4.29×10-12
1.30×10-13
2.65×10-15
3.41×10-17
2.62×10-19
1.13×10-21
2.51×10-24
9.72×10-4
1.48×10-4
1.95×10-5
2.23×10-6
2.22×10-7
1.87×10-8
1.29×10-9
7.00×10-11
2.85×10-12
8.31×10-14
1.64×10-15
2.08×10-17
1.58×10-19
6.74×10-22
1.50×10-24
2.51×10-3
6.99×10-4
1.75×10-4
3.94×10-5
7.84×10-6
1.36×10-6
2.01×10-7
2.46×10-8
2.42×10-9
1.86×10-10
1.07×10-11
4.48×10-13
1.30×10-14
2.51×10-16
3.04×10-18
2.17×10-3
5.91×10-4
1.44×10-4
3.14×10-5
6.03×10-6
1.01×10-6
1.43×10-7
1.69×10-8
1.62×10-9
1.21×10-10
6.89×10-12
2.84×10-13
8.21×10-15
1.58×10-16
1.91×10-18
2
2,5
3
3,5
4
4,5
5
5,5
6
6,5
7
7,5
8
8,5
9
Из таблицы 2.13. следует, что сверточные коды по критерию СОР лучше, чем сверточные коды по критерию МСР.
В таблице 2.14 приведено сравнение Pb сверточных кодов по критерию
ПОР и СОР, например с кодовыми ограничениями K  6,7 и скоростями 1/2 и
1/3. Видно, что сверточные коды, выбранные по критерию СОР, лучше сверточных кодов по критерию ПОР.
Таблица 2.14 - Сравнение Pb сверточных кодов по критерию ПОР и СОР при
Lус  10
C(51,71) C(53,75) C(121,161) C(133,171) C(117,133,175) C(133,165,171) Eb/N0
K=6, ПОР K=6, СОР K=7, ПОР K=7, СОР
K=7, ПОР
K=7, СОР
(дБ)
-2
-2
-2
-2
-3
-3
2.11×10
2.20×10
1.49×10
1.07×10
1.84×10
2.17×10 2
69
C(51,71) C(53,75)
K=6, ПОР K=6, СОР
5.96×10-3 5.84×10-3
1.57×10-3 1.45×10-3
3.88×10-4 3.40×10-4
9.10×10-5 7.53×10-5
2.02×10-5 1.55×10-5
4.15×10-6 2.86×10-6
7.79×10-7 4.59×10-7
1.30×10-7 6.22×10-8
1.88×10-8 6.89×10-9
2.29×10-9 6.06×10-10
2.28×10-10 4.13×10-11
1.80×10-11 2.12×10-12
1.08×10-12 7.90×10-14
4.78×10-14 2.08×10-15
C(121,161) C(133,171) C(117,133,175) C(133,165,171) Eb/N0
K=7, ПОР K=7, СОР
K=7, ПОР
K=7, СОР
(дБ)
4.26×10-3 2.43×10-3
5.34×10-4
5.91×10-4 2,5
1.14×10-3 5.09×10-4
1.39×10-4
1.44×10-4 3
-4
-5
-5
2.93×10
9.94×10
3.20×10
3.14×10-5 3,5
7.19×10-5 1.81×10-5
6.50×10-6
6.03×10-6 4
-5
-6
-6
1.68×10
3.01×10
1.14×10
1.01×10-6 4,5
3.63×10-6 4.42×10-7
1.72×10-7
1.43×10-7 5
7.10×10-7 5.51×10-8
2.17×10-8
1.69×10-8 5,5
-7
-9
-9
1.22×10
5.61×10
2.25×10
1.62×10-9 6
1.81×10-8 4.48×10-10
1.85×10-10
1.21×10-10 6,5
-9
-11
-11
2.24×10
2.70×10
1.19×10
6.89×10-12 7
2.26×10-10 1.18×10-12
5.73×10-13
2.84×10-13 7,5
-11
-14
-14
1.79×10
3.58×10
2.00×10
8.21×10-15 8
1.08×10-12 7.17×10-16
4.86×10-16
1.58×10-16 8,5
4.77×10-14 9.00×10-18
7.77×10-18
1.91×10-18 9
Проведенные расчеты показали что, критерий СОР преобладает других
критерии.
Кроме, того можем сравнить коды по вероятности битовой ошибки,
полученной симуляцией. Рассмотрим сравнивание вероятности битовой
ошибки кода C(1167,1545) по критерию МСР и кода C(1151,1753) по критерию СОР с ограничением K  10 ; кода C(2335,3661) по критерию МСР и кода
C(3345,3613) по критерию СОР с ограничением K  11 (рисунок 2.3).
Рисунок 2.3 - Сравнение вероятности битовой ошибки сверточных кодов по
критериям МСР и СОР, полученной симуляцией
70
На рисунке 2.4 приведены зависимости вероятности битовой ошибки
кода C(51,71), оптимального по критерию ПОР, кода C(53,75) по критерию
СОР с K  6 , и также кодов C(121,161) и C(133,171) с K  7 .
Рисунок 2.4 - Сравнение вероятности битовой ошибки сверточных кодов по
критериям ПОР и СОР, полученной симуляцией
Сравнения этих зависимостей показывает, что коды удовлетворяющие
критерию СОР являются лучшими среди рассматриваемых.
2.3. Поиск оптимальных перфорированных сверточных кодов
Критерий СОР, как показано в разделе 2.2, является одним из лучших
критериев для оценки сверточных кодов. Поэтому этот критерий используем
для поиска перфорированных сверточных кодов.
Известно, что самый хороший материнский сверточный код не всегда
создает лучшие перфорированные коды с разными скоростями [26],[5]. Следовательно, на практике поиск оптимальных перфорированных сверточных
кодов ведется по трем направлениям: поиск перфорированных сверточных
кодов с высокими скоростями из материнских кодов, имеющих максимальное свободное расстояние [50], поиск перфорированных сверточных кодов с
71
высокими скоростями из разных материнских кодов [24] и поиск совместимых по скорости перфорированных сверточных кодов (RCPC) [29].
2.3.1. Поиск ПСК из материнских кодов, обладающих максимальным
свободным расстоянием
ПСК с высокими скоростями R создаются из одного материнского
сверточного кода. Они широко применяются в разных системах, например
DVB, VSAT, UMTS…
Рассмотрим ПСК, создающиеся из одного материнского сверточного
кода со скоростью 1/2, как показано на рисунке 1.16. Оценка и выбор хороших ПСК основывается на dCB , cd и c d границы вероятности битовой ошибки
Pb [50].
Pb 

1 
c
P

c d Pk ,
 d k d
l d dCB
 dCB
(2.7)
где dCB - свободное расстояние кода; d - расстояние Хемминга рассматриваемого пути от нулевого пути; cd - число весовой ошибки для путей с расстоянием d; l - объѐм блока входных данных соответствующий вектору перфорирования B; Pk - вероятность выбора ошибочного пути при декодировании Витерби.
Результат поиска ПСК показан в таблицах 2.15, 2.16 по критерию СОР.
Таблица 2.15 - ПСК из материнского сверточного кода, обладающего
максимальным свободным расстоянием, K  3, 4,5,6 [50]
K
3
R
1/2
2/3
3/4
4/5
1(5)
1(7)
10
11
101
110
1011
4
1(15)
1(17)
11
10
110
101
1011
5
1(23)
1(35)
11
10
101
110
1010
6
1(53)
1(75)
10
11
100
111
1000
72
K
R
5/6
6/7
7/8
8/9
9/10
10/11
11/12
12/13
13/14
3
4
1100
10111
11000
101111
110000
1011111
1100000
10111111
11000000
101111111
110000000
1011111111
1100000000
10111111111
11000000000
101111111111
110000000000
1011111111111
1100000000000
5
1100
10100
11011
100011
111100
1000010
1111101
10000011
11111100
101000000
110111111
1000000011
1111111100
10000000010
11111111101
10000000011
11111111100
101000000000
110111111111
6
1101
10111
11000
101010
110101
1010011
1101100
10100011
11011100
111110011
100001100
1000000101
1111111010
10101101101
11010010010
101101111011
110010000100
1110110110111
1001001001000
1111
10000
11111
110110
101001
1011101
1100010
11100010
10011101
100001111
111110000
1001110100
1110001011
10001110100
11110001011
110100110110
101011001001
1100011000100
1011100111011
Таблица 2.16 - ПСК из материнского сверточного кода, обладающего максимальным свободным расстоянием, K  7,8,9 [50]
K
R
1(133)
1(171)
11
2/3
10
110
3/4
101
1111
4/5
1000
11010
5/6
10101
111010
6/7
100101
1111010
7/8
1000101
11110100
8/9
10001011
111101110
9/10
100010001
10/11 1110110111
1/2
7
8
1(247)
1(371)
10
11
110
101
1010
1101
11100
10011
101001
110110
1010100
1101011
10110110
11001001
101100110
110011001
1001000011
9
1(561)
1(753)
11
10
111
100
1101
1010
10110
11001
110110
101001
1101011
1010100
11100000
10011111
111000101
100111010
1000101100
73
K
7
R
8
1001001000
11110111110
11/12
10001000001
111111110101
12/13
100000001010
1101000001111
13/14
1010111110000
9
1110111100
10110000110
11001111001
100100001100
111011110011
1010100100000
1101011011111
Параметры dCB , cd и
cd ,
1111010011
11000010001
10111101110
110000011010
101111100101
1100000100001
1011111011110
соответствующие хорошим кодам в таблицах
2.15, 2.16 показаны в таблицах 2.17, 2.18.
Таблица 2.17 - Значения dCB , cd и
K
R
1/2
2/3
3/4
4/5
5/6
6/7
7/8
8/9
9/10
10/11
11/12
12/13
13/14
3
ПСК, K  3, 4,5,6
4
5
6
dCB
cd ( cd )
dCB
cd ( cd )
dCB
cd ( cd )
dCB
cd ( cd )
5
3
3
2
2
2
2
2
2
2
2
2
2
1(1)
1(0.5)
15(5)
1(0.3)
2(0.4)
5(0.8)
8(1.1)
14(1.8)
20(2.2)
30(3)
40(3.6)
55(4.6)
70(7.4)
6
4
4
3
3
2
2
2
2
2
2
2
2
2(2)
10(5)
124(41.3)
14(3.5)
63(12.6)
2(0.3)
4(0.6)
6(0.8)
8(0.9)
14(1.4)
20(1.8)
26(2.2)
32(2.5)
7
4
3
3
3
3
3
3
2
2
2
2
2
4(4)
1(0.5)
1(0.3)
11(2.8)
20(4)
69(11.5)
49(7)
293(36.6)
1(0.1)
3(0.3)
6(0.5)
7(0.6)
10(0.8)
8
6
4
4
4
3
3
3
3
3
3
3
3
2(2)
96(48)
3(1)
40(10)
100(20)
25(4.2)
60(8.6)
72(9)
143(15.9)
201(20.1)
311(28.3)
514(42.8)
692(53.2)
Таблица 2.18 - Значения dCB , cd и
K
R
1/2
2/3
3/4
4/5
5/6
6/7
7/8
cd
7
cd
ПСК, K  7,8,9
8
9
dCB
cd ( cd )
dCB
cd ( cd )
dCB
cd ( cd )
10
6
5
4
4
3
3
36(36)
3(1.5)
42(14)
12(3)
92(18.4)
5(0.8)
9(1.3)
10
7
6
5
4
4
4
2(2)
47(23,5)
239(79.7)
168(42)
7(1.4)
85(14.2)
258(36.9)
12
7
6
5
5
4
4
33(33)
11(5.5)
52(17.3)
31(7.8)
168(33.6)
9(1.5)
70(10)
74
K
R
8/9
9/10
10/11
11/12
12/13
13/14
7
8
9
dCB
cd ( cd )
dCB
cd ( cd )
dCB
cd ( cd )
3
3
3
3
13(1.6)
29(3.2)
52(5.2)
66(6)
3
4
3
3
3(0.4)
1189(132.1)
18(1.8)
14(1.3)
4
4
4
4
124(15.5)
300(33.3)
556(55.6)
1899(172.6)
3
3
83(6.9)
215(16.5)
3
3
37(3.1)
52(4)
4
4
2038(169.8)
3424(263.4)
2.3.2. Поиск ПСК из разных материнских кодов
Результаты поиска хороших ПСК показаны в таблице 2.19 [24]. Использованы обозначения код 1/2, код 1/3 - материнские коды со скоростью
1/2 и 1/3; R ПСК - скорость перфорированных сверточных кодов. B - вектор
перфорирования, который задан транспонированной матрицей с восьмеричным представлением. Например, ПСК со скоростью 4/5, K  9 , B  17 01 или
1111 
0001 в двоичном представлении. Тогда вектор перфорирования B  10101011 .


Кроме того, dCB - свободное расстояние; ad - число путей с расстоянием d; cd
- число битовых ошибок для путей с расстоянием d (вес входной последовательности).
Таблица 2.19 - ПСК из разных материнских кодов со скоростями 1/2, 1/3
R
ПСК
K=8
K=9
K=10
K=11
Код 1/2
С(207,331)
С(435,761)
С(1137,1605)
С(2533,3755)
B
[11 07]
[17 01]
[17 01]
[01 17]
dCB(ad,cd)
6(213,209)
6(88,623)
6(13,86)
6(2,10)
4/5
Код 1/3 C(207,235,331) C(417,727,731) C(1075,1563,1715) C(2535,3317,3633)
B
[01 04 13]
[03 04 11]
[11 05 02]
[15,02,01]
dCB(ad,,cd) 6(149,1181)
6(39,259)
6(9,45)
7(66,616)
Код 1/2
С(217,231)
С(433,751)
С(1003,1147)
С(2073,3711)
B
[11 27]
[37 01]
[03 35]
[37 01]
d (a ,c )
4(1,1)
5(8,72)
6(145,1460)
6(27,269)
5/6 CB d d
Код 1/3 C(267,303,375) C(425,473,771) C(1135,1437,1643) C(2123,2477,3461)
B
[01 22 15]
[02 31 05]
[01 05 32]
[04,01,33]
dCB(ad,cd)
5(30,186)
6(262,2616)
6(73,657)
6(22,129)
Код 1/2
С(215,343)
С(477,633)
С(1225,1463)
С(2137,3655)
6/7
B
[23 55]
[45 33]
[77 01]
[17 61]
75
R
ПСК
7/8
8/9
9/10
10/11
dCB(ad,cd)
Код 1/3
B
dCB(ad,cd)
Код 1/2
B
dCB(ad,cd)
Код 1/3
B
dCB(ad,cd)
Код 1/2
B
dCB(ad,cd)
Код 1/3
B
dCB(ad,cd)
Код 1/2
B
dCB(ad,cd)
Код 1/3
B
dCB(ad,cd)
Код 1/2
B
dCB(ad,cd)
Код 1/3
B
dCB(ad,cd)
Код 1/2
B
dCB(ad,cd)
11/12 Код 1/3
B
dCB(ad,cd)
Код 1/2
B
dCB (ad,cd)
12/13 Код 1/3
B
dCB(ad,cd)
Код 1/2
B
13/14
dCB(ad,cd)
Код 1/3
K=8
K=9
4(5,16)
C(211,253,357)
[51 26 01]
4(2,2)
С(203,355)
[051 127]
4(10,71)
C(217,305,343)
[101 033 044]
4(7,29)
С(227,325)
[071 307]
4(25, 191)
C(213,247,351)
[300 025 053]
4(17,90)
С(215,307)
[711 067]
4(53,554)
C(215,257,331)
[740 007 031]
4(35,237)
С(213,375)
[0267 1511]
4(106,1544)
C(205,235,343)
[1341 0422
0015]
4(51,446)
С(243,315)
[1415 2363]
4(145,2077)
C(211,267,303)
[2500 0213
1065]
4(87,874)
С(277,373)
[2305 5473]
4(375,7453)
C(207,235,311)
[4745 0022
3011]
4(132,1418)
С(215,345)
[11517 06261]
4(749,14482)
C(235,307,327)
5(42,438)
C(421,471,673)
[11 24 43]
5(29,201)
С(433,677)
[175 003]
4(2,9)
C(437,475,711)
[003 170 005]
5(87,903)
С(405,627)
[271 107]
4(9, 34)
C(443,477,513)
[010 327 041]
4(3,8)
С(515,623)
[567 211]
4(15,101)
C(453,631,723)
[201 041 536]
4(8,50)
С(415,613)
[1401 0377]
4(23,221)
C(433,455,755)
[0137 0040 1601]
K=10
K=11
6(416,5594)
6(198,2562)
C(1147,1625,1745) C(2047,3525,3555)
[43 24 11]
[63,14,01]
6(345,4208)
6(95,1072)
С(1125,1577)
С(2275,3603)
[001 177]
[131 047]
5(38,401)
6(571,9691)
C(1051,1331,1457) C(2207,2223,3611)
[120 003 055]
[001,002,175]
5(29,228)
6(427,5775)
С(1143,1245)
С(2415 3373)
[001 377]
[377 001]
4(1, 2)
5(25, 312)
C(1033,1265,1515) C(2253 2707 3751)
[041 324 013]
[211 046 121]
5(75,828)
5(15,175)
С(1207,1435)
С(2035 3147)
[703 075]
[031 747]
4(6,20)
5(70,879)
C(1107,1225,1767)
[103 201 474]
5(185,2987)
С(1033,1611)
С(2135,3217)
[1745 0033]
[0605 1173]
4(10,59)
5(144,2697)
C(1071,1147,1511)
[1000 0061 0717]
-
4(18,107)
С(431,777)
[3647 0131]
4(41,433)
C(425,435,513)
[1401 2316 0061]
4(6,14)
С(1057,1751)
[1725 2053]
4(14,133)
-
С(2425,3637)
[0001 3777]
4(3,20)
-
4(34,249)
С(445,623)
[6543 1235]
4(68,650)
C(401,653,667)
[3241 4110 0427]
С(1007,1745)
[6357 1421]
4(25,246)
-
С(2317,3035)
[4775 3003]
4(6,60)
-
4(66,473)
С(405,617)
[01761 16017]
4(100,1367)
-
С(1123,1467)
[11761 06017]
4(34,449)
-
С(2055,3637)
[10507 07271]
4(12,110)
-
76
R
ПСК
K=8
[00315 07001
10462]
dCB(ad,cd) 4(191,2493)
Код 1/2
С(215,361)
14/15 B
[33263 04515]
dCB(ad,cd) 4(851,16439)
K=9
K=10
K=11
-
-
-
С(433,705)
[13263 24515]
4(129,1706)
С(1043,1751)
[24343 13435]
4(56,832)
С(2041,3273)
[25147 12631]
4(29,241)
B
2.3.3. Поиск совместимых по скорости ПСК
Совместимые по скорости ПСК создаются из материнских сверточных
кодов со скоростью 1/n. Скорость ПСК определяется по формуле
r
, где
r l
l  1...(n  1)r . Например, n  4 , r  8 , l  1, 2, 4,624 . Тогда скорости кода соот-
ветствуют R  8 / 9,8 /10,8 /12...8 / 32 или R  8 / 9, 4 / 5, 2 / 3...1/ 4 . Поиск совместимых по скорости ПСК 8/9 до 1/4 и кодовым ограничением 4 до 7 описан в
[29]. Примеры совместимых по скорости ПСК с кодовым ограничением
K  5 , материнским кодом C(23,35,27) со скоростями 8/9 - 1/3 C(23,35,27,33)
со скоростями 4/13 - 1/4 показаны в таблице 2.20 [29].
Таблица 2.20 - Совместимые по скорости ПСК
Скорость R
8/9
8/10
(4/5)
8/12
(2/3)
8/14
(4/7)
8/16
(1/2)
8/18
Вектор перфорирования B
1111 0111
1000 1000
0000 0000
1111 1111
1000 1000
0000 0000
1111 1111
1010 1000
0000 0000
1111 1111
1110 1110
0000 0000
1111 1111
1111 1111
0000 0000
1111 1111
dCB
(ad, d= dCB, dCB +1, …, dCB +5)
[cd, d= dCB, dCB +1, …, dCB +5]
2
(1, 30,327,3493,37729,406015)
[1,242,4199,63521,885318]
3
(8,40,274,1686,9842,59406)
[42,274,2688,21692,154684,1103894]
4
(4,0,108,0,1380,0)
[4,0,496,0,10884,0]
5
(2,18,32,74,308,696)
[2,62,144,350,2006,5394]
7
(16,24,32,80,296,544)
[32,96,160,576,1800,4000]
7
(2,14,18,22,76,164)
77
Скорость R
(4/9)
8/20
(2/5)
8/22
(4/11)
8/24
(1/3)
8/26
(4/13)
8/28
(2/7)
8/30
(4/15)
8/32
(1/4)
Вектор перфорирования B
1111 0000
1000 1000
1111 1111
1111 1111
1100 1100
1111 1111
1111 1111
1110 1110
1111 1111
1111 1111
1111 1111
1111 1111
1111 1111
1111 1111
1000 1000
1111 1111
1111 1111
1111 1111
1010 1010
1111 1111
1111 1111
1111 1111
1110 1110
1111 1111
1111 1111
1111 1111
1111 1111
dCB
(ad, d= dCB, dCB +1, …, dCB +5)
[cd, d= dCB, dCB +1, …, dCB +5]
[2,36,60,82,354,856]
8
(2,14,10,20,54,78)
[2,34,28,66,226,354]
9
(4,6,14,22,30,52)
[10,8,36,72,114,228]
11
(8,16,24,16,24,64)
[8,48,72,48,104,256]
11
(2,4,20,14,12,30)
[2,4,56,40,38,104]
13
(12,12,12,8,16,52)
[20,20,36,24,56,184]
13
(2,816,0,14,24)
[2,16,38,0,18,74]
15
(16,8,0,8,16,32)
[32,16,0,32,48,96]
Совместимые по скорости ПСК применяется в системах ARQ/FEC [29].
2.4. Оценка сверточных кодов по критерию СОР
Из таблицы 2.12, [12] приведены зависимости Pb ( Eb N0 ) для сверточных
кодов C(51,77) и C(53,75) с кодовым ограничением K  6 [39]. Из них следует, что при Eb N0  6.9 дБ верхняя граница вероятности ошибок битов сверточного кода C(51,77) ниже верхней границы кода C(53,75), а при
Eb N0  6.9 дБ верхняя граница кода C(51,77) выше верхней границы кода
C(53,75). Следовательно, при кодовом ограничении K  6 существуют два
хороших сверточных кода с близкими характеристиками.
78
Иначе рассмотрим спектры два этих кодов C(51,77), C(53,75) в таблице
2.21. Если используем критерий СОР, сразу определяет код C(53,75) - лучше
потому что, dCB  8 для двух кода и первое слагаемое cd кода C(53,75) меньше
чем первое слагаемое cd кода C(51,77). Однако с расстоянием d  dCB  1 , второе слагаемое cd кода C(51,77) меньше чем второе слагаемое cd кода C(53,75)
значительно. Критерий поиска СОР не считает и оценивает коды в этом случае. Рассмотрим верхние границы вероятности двух этих кодов в рисунок
2.5.
Таблица 2.21 - Спектры кодов C(51,77), С(53,75)
K
Код
dCB
6
C(51,77)
8
6
C(53,75)
8
(ad, d= dCB, dCB +1, …, dCB +10)
[cd , d= dCB, dCB +1, …, dCB +10]
(2, 3, 8, 15, 41, 90, 224, 515, 1239, 2896, 6879)
[4, 11, 36, 83, 250, 630, 1776, 4531, 11982, 30474]
(1, 8, 7, 12, 48, 95, 281, 605, 1272, 3334, 7615)
[2, 36, 32, 62, 332, 701, 2342, 5503, 12506, 36234, 88576]
Видно, что код C(53,75) является самым хорошим только в диапазон
Eb N0  7дБ или Pb  6.34 109 . При вероятности Pb  6.34 109 код C(51,77)
лучше кода C(53,75).
Рисунок 2.5 - Верхние границы вероятности сверточных кодов C(51,77),
C(53,75)
79
Чтобы подтвердить результат верхней границы используется вычисление вероятности битовой ошибки симуляцией для кодов C(51,77), C(53,75) в
рисунке 2.6. В диапазоне отношения 4дБ  Eb / N0  5,5дБ код C(51,77) лучше,
чем код C(53,75). Итак, критерий СОР пропускает хороший код.
Рисунок 2.6 - Сравнение эффективности сверточных кодов C(51,77), C(53,75)
симуляцией
Рассмотрим сравнение кода C(2153,3705) [12] и код C(3345,3613) лучший по СОР [39] с ограничением K  11 в таблице 2.22.
Таблица 2.22 - Спектры кодов C(2153,3705), C(3345,3613)
K
Код
dCB
11
C(2153,3705)
13
11
C(3345,3613)
14
(ad, d= dCB, dCB +1, …, dCB +10)
[cd , d= dCB, dCB +1, …, dCB +10]
(1,7,16,47,93,205,501,1228,3020,7086, 16984)
[1,34,72,310,673,1694,4529,12342,32926,82498,212024]
(14,0,92,0,426,0,2595,0,15221,0,87694)
[56,0,656,0,3708,0,27503,0,185997,0,1220645]
Путѐм вычисления верхней границы вероятности битовой ошибки
формулой (1.38), получаем результат в таблице 2.23.
Таблица 2.23 - Сравнение значений верхней границы кодов C(2153,3705) и
C(3345,3613)
80
Pb C(2153,3705)
1.90×10-3
2.15×10-4
2.22×10-5
2.17×10-6
1.98×10-7
1.61×10-8
1.10×10-9
5.95×10-11
2.44×10-12
7.26×10-14
1.49×10-15
2.02×10-17
5.08×10-18
1.71×10-19
8.59×10-22
2.41×10-24
3.54×10-27
2.51×10-30
Pb C(3345,3613)
2.64×10-3
2.73×10-4
2.66×10-5
2.53×10-6
2.30×10-7
1.88×10-8
1.29×10-9
7.00×10-11
2.85×10-12
8.31×10-14
1.64×10-15
2.08×10-17
5.08×10-18
1.58×10-19
6.74×10-22
1.50×10-24
1.60×10-27
7.46×10-31
Eb/N0 (дБ)
2
2,5
3
3,5
4
4,5
5
5,5
6
6,5
7
7,5
7,65
8
8,5
9
9,5
10
Видно, что при отношении Eb N0  7,65 дБ значения верхней границы
кода C(2153,3705) всегда меньше значения границы кода C(3345,3613). А при
отношении Eb N0  7,65 дБ код C(3345,3613) обладает меньшими значениями
вероятности битовой ошибки.
Полученные зависимости для кодов C(2153,3705) и C(3345,3613) приведены на рисунке 2.7.
81
Рисунок 2.7 - Сравнение вероятности битовой ошибки сверточных кодов
C(2153,3705) и C(3345,3613), полученных симуляцией
Итак, с помощью вычисления верхней границы можно найти хорошие
коды с кодовыми ограничениями K  6, K  11 из множества всех возможных
кодов. Существуют два хороших кода C(51,77), C(53,75) с кодовым ограничением K  6 и C(2153,3705), C(3345,3613) с кодовым ограничением K  11 .
На практике сверточные коды и ПСК используются в диапазоне отношений Eb/N0 при заданной достоверности декодирования (вероятности Pb).
Например, критерий цифрового телевидения DVB - Вьетнамский стандарт
цифровой телевидения DVB - S требует обеспечить вероятность декодирования Pb  2 104 , а стандарт DVB - S2 Pb  2 107 [40]. Для европейского стандарта DVB требуется вероятность битовой ошибки Pb от 10-3 до 10-7 [20].
Следовательно, необходимо продолжить поиск кодов, удовлетворяющих требованиям практики. В этой диссертации рассмотрим метод поиска
хороших сверточных кодов по границе вероятности битовой ошибки. Хорошие коды обладают малой вероятностью битовой ошибки.
Известно, что вычисление вероятности битовой ошибки требует больших временных затрат. Поэтому обычно вычисление вероятности битовой
ошибки используется для оценки эффективности кодов. Однако с помощью
алгоритмы реализованы в программном пакете MATLAB, специализированном симулированном программном продукте SIMULINK и особенно нового
82
поколения компьютеров, которые позволяет провести поиск хороших сверточных кодов быстро и эффективно.
Выводы ко второй главе
 Рассмотрены критерии поиска лучших сверточных кодов и опубликованные результаты поиска.
 Рассмотрено вычисление вероятности битовой ошибки с помощью симуляции и по верхней границе.
 Произведено сравнение эффективности кодов, выбранных по разным
критериям.
83
Глава 3. АЛГОРИТМЫ И ПРОГРАММЫ ПОИСКА
ОПТИМАЛЬНЫХ СВЕРТОЧНЫХ КОДОВ И ПСК
3.1. Алгоритмы поиска оптимальных сверточных кодов и ПСК
Блок-схема программы поиска оптимальных сверточных кодов и ПСК
показана на рисунке 3.1, где выделены блоки «Вычисление Pb по верхней
границе» и «Вычисление Pb симуляцией SIMULINK». Стрелки со штриховой
линией указывают на выбор только одного из двух методов. Результаты вычислений сохраняются в базе данных и показываются на мониторе.
Интерфейс пользователя
Вычисление Pb
по верхней
границе
Входные данные
Вычисление Pb
симуляцией
SIMULINK
Сравнение, выбор
оптимальных кодов
Платформа MATLAB
База данных
Отображение результатов
на мониторе
Рисунок 3.1 - Блок-схема программы поиска сверточных кодов и ПСК
Алгоритмы поиска оптимальных сверточных кодов и ПСК показаны на
рисунках 3.2 и 3.3
84
Начало
Начало
Задание параметров:
- кодового ограничения K;
- интервала значений вероятности
ошибок на бит Pb min  Pb max ;
- скорость кодирования R.
Ввод параметров:
- списка предварительно отобранных
материнских кодов;
- скорость кодирования R;
- начальное значение вероятности минимальной
ошибки на бит для перфорированных кодов
Pb min ;
п
- списка векторов перфорирования.
Выбор кода из множества кодов,
обладающих заданным кодовым
ограничением
Выбор материнского кода
Выбранный код
эквивалентен коду,
ранее внесенному
в список?
Да
Выбор вектора перфорирования
Перфорирование
Нет
Оценка Pb
Pb  Pbmax
Оценка Pb
п
Нет
Pb п  Pb п min ?
Да
Да
Внесение в список
кода и значения Pb
Pb п  Pb п min
Зафиксировать
вектор перфорирования
Переупорядочивание списка
по значениям Pb
Проанализированы
все возможные коды?
Нет
Нет
Да
Формирование списка
отобранных кодов и их параметров
Конец
Рисунок 3.2 - Алгоритм поиска
оптимальных сверточных кодов
Проверены все векторы
перфорирования?
Нет
Да
Проверены все
материнские коды?
Нет
Да
Зафиксировать код и вектор перфорирования,
характеризующиеся Pb п min
Конец
Рисунок 3.3 - Алгоритм поиска
оптимальных ПСК
Входными данными программы являются кодовые ограничения K ,
скорости кодирования R , интервал вероятности битовой ошибки. По заданному кодовому ограничению определяется множество возможных сверточ-
85
ных кодов M . Например, для скорости 1/2, множество возможных сверточных кодов является M  3(22 K 3  2K 2 ) .
С помощью алгоритма программы поиска списка хороших сверточных
кодов, ПСК по вероятности битовой ошибки написаны в среде MATLAB.
Метод поиска основан на вычислении вероятности битовой ошибки Pb симуляцией или по верхней границе. Оптимальный код является кодом, имеющим
минимальную вероятность Pb .
Для программы поиска оптимальных сверточных кодов с помощью симуляции, надо вычислить вероятности битовой ошибки моделью симуляции.
Для программы поиска оптимальных сверточных кодов по верхней
границе, вероятность битовой ошибки вычисляется помощью дополнительных функций, например передаточной функции, верхней границы.
Процесс поиска и выбора хороших кодов контролируется сравнением
значений вероятностей битовой ошибки.
Найденные коды сохраняются на базу данных и показываются в монитор.
3.2. Программы поиска оптимальных сверточных кодов по величине вероятности битовой ошибки с помощью симуляции
Программы поиска оптимальных сверточных кодов строится отдельно,
соответствующие кодовым ограничениям. Сначала, строится рабочая папка текущее место, соответствующая ограничению K, в которую сохраняет модель симуляции, программу поиска, функция также база данных списки найденных кодов. Например, на рисунке 3.4 для ограничения K  6 показана
папка.
86
Pабочая папка
Модели симуляции,
программа,
функция …
Рисунок 3.4 - Рабочая папка
Входными данными являются кодовое ограничение, скорость кодирования, диапазон отношения Eb N0 , размер входных информационных данных, объѐм сохранѐнного списка найденных кодов.
Программа поиска оптимальных сверточных кодов, модель симуляции
показаны в приложении к диссертации. Полученные результаты сохранятся в
рабочей папке также память компьютера.
3.3. Программы поиска оптимальных сверточных кодов по верхней границе вероятности битовой ошибки
Была создана программа поиска оптимальных сверточных кодов по методу вычисления верхней границы вероятности битовой ошибки аналогично
программе поиска симуляцией. Однако используется функция, чтобы вычис-
87
лять передаточную функцию и верхнюю границу вероятности битовой
ошибки.
Интерфейс рабочей папки, окна программирования показаны на рисунке 3.5.
Окно команд
Рабочее окно
Интерфейс программирования
Рисунок 3.5 - Интерфейс программирования
Программа поиска показана в разделе приложения программы поиска
оптимальных сверточных кодов и ПСК.
3.4. Программы поиска оптимальных ПСК методом машинного моделирования
Метод создания программы поиска ПСК по методу вычисления вероятности битовой ошибки симуляцией реализуется аналогично как для программ поиска оптимальных сверточных кодов. Однако входные данные являются списком хороших сверточных кодов и близко к ним также векторами
перфорирования. Число возможных векторов перфорирования зависит от
скорости материнского кода и скорости ПСК. Допустим скорость материнского кода 1/n, скорость ПСК r/(r+1) тогда число возможных векторов соот-
88
 nr 
(nr )!
ветствует сочетанию 
. Например скорость материнско
 r  1 (r  1)!(nr  r  1)!
го кода 1/2 и скорость ПСК 3/4 тогда число векторов перфорирования является 15. Число векторов перфорирования повышается слишком быстро, когда
скорость материнского кода или ПСК растѐт.
Поскольку объѐм вычисления является большим, поэтому программы
поиска создаются отдельно, соответствующие кодовому ограничению, скорости материнских кодов и скорости ПСК. В рисунке 3.6. изображается организация программ поиска оптимальных ПСК.
Программы поиска ПСК в
разных скоростях
Рисунок 3.6 - Организация программ поиска хороших ПСК
Программа поиска оптимальных сверточных кодов показана в приложении к диссертации.
3.5. База данных
Базы данных сверточных кодов и ПСК организованы в файлах «*.mat».
Структура файлов включает массивы, сохраняющие значения порождающих
полиномов, вероятности битовой ошибки и векторы перфорирования. Например, в рисунке 3.7 база данных ПСК со скоростью 4/5.
89
Загрузить значения вероятностей
битовой ошибки в рабочее окно
База
данных:
Хорошие
ПСК,
вероятности и вектор перфорирования
Рисунок 3.7 - База данных сверточных кодов и ПСК
Организация база данных в отдельных файлах вызывает сложность исследователя. Чтобы уменьшить сложность, удобно учесть и оценить хорошие
сверточные коды и ПСК, все данные в отдельных файлах будут записаны в
один файл в типе (*.EXL). Например, база данных организуется в одном
файле Excel в рисунке 3.8. Данные в столбце являются соответствующими
порождающими полиномами, вероятностями и вектором перфорирования.
90
Материнские коды
Вероятности битовой ошибки
ПСК
Векторы перфорирования
Рисунок 3.8 - База данных организуется в одном файле
3.6. Ускорение программы поиска оптимальных кодов
Для программ поиска оптимальных сверточных кодов и ПСК по методу
вычисления вероятности битовой ошибки симуляцией самая большая трудность является объемом вычислений. Известно, что для достоверной оценки
вероятности Pb  10 S объем выборки данных должен быть не менее L  10S 3 ,
где S – положительное целое число (достоверность показывается в приложении). В диссертации приведены оценки вероятности ошибки в пределах
91
104...107 , поэтому объем выборки должен составлять 107 1010 . При модели-
ровании использовались объемы данных 54 109 54 1011 , что обеспечивать
высокую достоверность [5]. Чтобы ускорять поиск хороших сверточных кодов, выбираем диапазона оценки вероятности 10-4 тогда объѐм вычисления
значительно уменьшается.
Кроме того, программа реализует поиск кодов во множестве мощность M,
которая быстро увеличивается с ростом ограничения K. Например, для кодов
со скоростью 1/2 мощность M определяется выражением в разделе 3.1. Чтобы
ускорить поиск из множества исключаются катастрофические коды, эквивалентные коды и коды, которые имеют порождающие полиномы с чѐтной степенью. Эквивалентный код обладает кодовой решеткой, передаточной функцией и границей вероятности битовой ошибки, близкими к параметрам известного кода [45]. Например, коды C(17,15), C(13,17) и C(17,13) эквивалентны известному коду C(15,17). Коды, имеющие порождающие полиномы четной степени, эквивалентны кодам, имеющим меньшее кодовое ограничение.
Например, код C(16,14) эквивалентен коду C(7,6) с кодовым ограничением 3.
Реализованный метод отброса позволяет отбраковать до 75 % множества
возможных сверточных кодов [25].
Использование параллельной технологии в компьютере с многоядерными процессорами (core5 или core7) позволяет ускорить поиск хороших
сверточных кодов. Чтобы реализовать это разделяется множество кодов в 3-5
подмножеств, каждое подмножество выполняется в отдельной программе.
Для ускорения поиска по верхней границе вероятности битовой ошибки, используются 2 петли поиска. Первая петля сканирует список хороших
сверточных кодов и близких к ним с двумя слагаемыми передаточной функции. Вторая петля поиска реализуется в найденный список с 10 слагаемыми
передаточной функции.
92
Учитывающие данные, полученные ПСК. Учитываются коды, которые
не создают хорошие ПСК в низкие скорости (например, скорости 2/3 - 6/7),
отбракует они в процесс поиска ПСК в выше скорость.
Следовательно, необходимо исследовать методы для ускорения поиска
кодов.
Выводы к третьей главе
 Построены алгоритмы поиска оптимальных сверточных кодов и ПСК.
 Построена общая структура схема программ поиска оптимальных сверточных кодов и ПСК.
 Выбраны параметры программы поиска оптимальных сверточных кодов по методу вычисления вероятности битовой ошибки симуляцией.
 Установлены параметры программы поиска оптимальных сверточных
кодов по верхней границей вероятности битовой ошибки.
 Построена база данных.
 Ускорена программа поиска.
93
Глава 4. РЕЗУЛЬТАТЫ ПОИСКА ОПТИМАЛЬНЫХ СВЕРТОЧНЫХ
КОДОВ И ПСК
4.1. Результат поиска оптимальных сверточных кодов
4.1.1. Оптимальные сверточные коды, найденные с помощью симуляции
Поиск оптимальных сверточных кодов производится в диапазоне вероятности битовой ошибки Pb от 10-4 до 10-7, в котором должна работать цифровая информационная система, например DVB. Для поиска используется
сканирование всего множества, включающего M сверточных кодов. Критерием оценки кодов является вероятность битовой ошибки декодирования Витерби с мягким решением. Чтобы повысить достоверность оценки, используется объѐм выборки 5.4 1010 до 5.4 1012 бит (см. приложение). Результаты поиска оптимальных сверточных кодов со скоростью 1/2 и 1/3, ограничением K
показаны в таблице 4.1 и таблице 4.2.
Таблица 4.1 - Оптимальные сверточные коды со скоростью 1/2, найденные
симуляцией
K
Код
3
4
5
6
7
C(5,7)
C(15,17)
C(23,35)
C(51,77)
C(133,171)
C(225,367)
C(255,363)
C(523,731)
8
9
Диапазон Eb/N0, дБ
Не более Не менее
8
6
3,5
6
4
5,5
4
5
3,5
4,5
4,5
4,5
2
Комментарий
Лучший по критериям МСР, ПОР, СОР
Лучший по критериям МСР, СОР
Лучший по критериям МСР, ПОР, СОР
Новый
Лучший по критериям МСР, СОР
Новый
Новый
94
Таблица 4.2 - Оптимальные сверточные коды со скоростью 1/3, найденные
симуляцией
K
Код
3
4
5
6
7
8
C(5,7,7)
C(13,15,17)
C(27,31,35)
C(43,55,75)
C(133,145,171)
C(225,331,367)
Диапазон Eb/N0, дБ
Не более Не менее
7,5
5
6
4,5
5,5
4
5
3
4,5
2,5
4,5
2,5
Комментарий
Лучший по критериям МСР, ПОР, СОР
Лучший по критериям МСР, ПОР, СОР
Новый
Новый
Новый
Лучший по критериям МСР, СОР
Проведенные эксперименты подтвердили оптимальность ранее найденных кодов, например C(5,7), C(15,17), C(5,7,7) и др. Кроме того, машинное моделирование позволило найти новые сверточные коды, обеспечивающую меньшую вероятность битовой ошибки, чем известные. Определены
диапазоны Eb/N0, в которых найденные коды эффективнее известных. Например, код C(51,77) с ограничением K  6 или код C(225,367) с ограничением
K  8 и скоростью 1/2. Эти коды является лучшими при вероятности битовой
ошибки в диапазоне 104 … 107 .
Для более детального сравнения построены зависимости вероятности
битовой ошибки от отношения Eb N0 . На рисунке 4.1 для кодов со скоростью
1/2 и ограничением K  8 и K  9 , а на рисунке 4.2 для кодов со скоростью
1/3 и ограничением K  5 и K  6 .
Из этих зависимостей видно, что найденные сверточные коды
C(27,31,35), C(43,55,75), C(225,367), C(523,731) имеют выигрыш около
0.15дБ по сравнению с известными.
95
Рисунок 4.1 - Сравнение эффективности найденных кодов и
известных кодов со скоростью 1/2, K  8 и K  9
Рисунок 4.2 - Сравнение эффективности найденных кодов и
известных кодов со скоростью 1/3, K  5 и K  6
96
4.1.2. Результат поиска оптимальных сверточных кодов по верхней границе вероятности битовой ошибки
Программа поиска оптимальных сверточных кодов реализуется вычислением и сравнением верхних границ вероятностей битовой ошибки возможных сверточных кодов определенного множества M. Это множество включает
сочетания порождающих полиномов с ограничением K.
Результаты поиска оптимальных сверточных кодов по верхней вероятности битовой ошибки показаны в таблице 4.3 для скорости 1/2. Некоторые
из найденных кодов совпадают с известными кодами, оптимальными по критериям МСР, ПОР, СОР [39], что подобные таблицы оптимальных сверточных кодов со скоростями 1/3, 1/4 приведены в приложении диссертации.
Таблица 4.3 - Оптимальные сверточные коды со скоростью 1/2
K
3
4
5
6
7
8
9
10
11
Код
C(5,7)
C(15,17)
С(23,35)
С(51,77)
C(53,75)
C(133,171)
C(135,161)
C(225,367)
C(255,363)
C(247,371)
C(523,731)
C(561,753)
C(1363,1777)
C(1151,1753)
С(2153,3705)
C(3345,3613)
Диапазон Eb/N0, дБ
Не более Не менее
–
–
–
–
–
–
6,9
–
–
6,9
5,3
6,64
6,64
5,3
4,09
–
5,43
4,09
–
5,43
4,84
–
–
4,84
4,68
–
–
4,68
7,65
–
–
7,65
dCB
Комментарий
5
6
7
8
8
10
9
10
10
10
11
12
12
12
13
14
Лучший по критерию МСР, ПОР, СОР
Лучший по критерию МСР, СОР
Лучший по критерию МСР, ПОР, СОР
Новый
Лучший по критерию МСР, СОР
Лучший по критерию МСР, СОР
Новый
Новый
Новый
Лучший по критерию МСР, СОР
Новый
Лучший по критерию МСР, СОР
Новый
Лучший по критерию СОР
Новый
Лучший по критерию СОР
Из полученных результатов следует, что при Eb N0  6,9 дБ и скорости
1/2 верхняя граница вероятности битовой ошибки сверточного кода C(51,77)
ниже верхней границы кода C(53,75), а при Eb N0  6,9 дБ верхняя граница
кода C(51,77) выше верхней границы кода C(53,75). Следовательно, при ко-
97
довом ограничении K  6 существуют два хороших сверточных кода с близкими характеристиками [12]. Аналогичные выводы справедливы для других
скоростей и кодовых ограничений.
Сравним эффективности найденных и известных сверточных кодов.
Общепринято сравнивать сверточные коды по вероятности битовой ошибки.
Эффективность кода тем больше, чем меньше вероятность битовой ошибки
Pb .
Результаты сравнения и оценки кодов C(51,77) C(53,75) с ограничением
K  6 показаны на рисунках 2.5 и 2.6 [11], [12]. Кроме того, сравнивание эф-
фективности сверточных кодов с известными кодами (выделенные серым
фоном) приведены в таблице 4.4 для ограничений K  9,10
и скорости 1/2.

Аналогично в таблицах 4.5 и 4.6 показана эффективность сверточных кодов
со скоростью 1/3 и 1/4.
Таблица 4.4 - Эффективность сверточных кодов со скоростью 1/2
K
Код
Pb
9
C(523,731)
2.26×10-3
4.25×10-4
7.09×10-5
1.06×10-5
1.42×10-6
1.71×10-7
1.81×10-8
1.62×10-9
1.18×10-10
6.76×10-12
2.88×10-13
8.75×10-15
1.80×10-16
2.37×10-18
1.88×10-20
8.45×10-23
1.99×10-25
10
C(561,753)
2.72×10-3
4.98×10-4
8.10×10-5
1.18×10-5
1.54×10-6
1.78×10-7
1.77×10-8
1.44×10-9
9.24×10-11
4.45×10-12
1.54×10-13
3.61×10-15
5.49×10-17
5.07×10-19
2.68×10-21
7.54×10-24
1.04×10-26
C(1363,1755)
1.32×10-3
2.28×10-4
3.45×10-5
4.62×10-6
5.47×10-7
5.64×10-8
4.91×10-9
3.47×10-10
1.91×10-11
7.80×10-13
2.27×10-14
4.51×10-16
5.81×10-18
4.64×10-20
2.16×10-22
5.49×10-25
7.07×10-28
C(1151,1753)
1.42×10-3
2.45×10-4
3.70×10-5
4.90×10-6
5.70×10-7
5.71×10-8
4.79×10-9
3.24×10-10
1.71×10-11
6.77×10-13
1.93×10-14
3.82×10-16
4.99×10-18
4.08×10-20
1.96×10-22
5.13×10-25
6.77×10-28
Eb/N0
дБ
2
2,5
3
3,5
4
4,5
5
5,5
6
6,5
7
7,5
8
8,5
9
9,5
10
98
Видно, что при отношении Eb N0  5дБ , K  9 верхняя граница вероятности битовой ошибки кода C(523,731) ниже границы кода C(561,753). А при
отношении Eb N0  5дБ , код C(561,753) лучше, чем код C(523,731). Аналогично при Eb N0  5дБ , K  10 код C(1363,1755) лучше, чем код C(1151,1753).
Таблица 4.5 - Эффективности сверточных кодов со скоростью 1/3
K
Код
Pb
4
C(11,15,17)
1.19×10-2
4.71×10-3
1.74×10-3
6.02×10-4
1.95×10-4
5.91×10-5
1.65×10-5
4.18×10-6
9.44×10-7
1.86×10-7
3.11×10-8
4.33×10-9
4.88×10-10
4.32×10-11
2.91×10-12
1.45×10-13
5.08×10-15
5
C(13,15,17)
1.36×10-2
5.31×10-3
1.94×10-3
6.62×10-4
2.11×10-4
6.24×10-5
1.68×10-5
4.07×10-6
8.61×10-7
1.56×10-7
2.33×10-8
2.83×10-9
2.69×10-10
1.94×10-11
1.03×10-12
3.84×10-14
9.66×10-16
C(27,31,35)
7.36×10-3
2.56×10-3
8.19×10-4
2.42×10-4
6.54×10-5
1.60×10-5
3.51×10-6
6.70×10-7
1.09×10-7
1.48×10-8
1.63×10-9
1.42×10-10
9.47×10-12
4.70×10-13
1.67×10-14
4.11×10-16
6.66×10-18
C(25,33,37)
7.60×10-3
2.63×10-3
8.40×10-4
2.48×10-4
6.72×10-5
1.65×10-5
3.60×10-6
6.83×10-7
1.09×10-7
1.44×10-8
1.51×10-9
1.22×10-10
7.34×10-12
3.17×10-13
9.44×10-15
1.85×10-16
2.25×10-18
Eb/N0
дБ
2
2,5
3
3,5
4
4,5
5
5,5
6
6,5
7
7,5
8
8,5
9
9,5
10
Аналогичные выводы можно сделать для кодов со скоростью 1/3. Так,
при отношении Eb N0  5дБ , K  4 верхняя граница вероятности битовой
ошибки кода C(11,15,17) ниже, чем для кода C(13,15,17), а Eb N0  5дБ верхняя граница вероятности битовой ошибки кода C(11,15,17) выше, чем кода
C(13,15,17). При отношении Eb N0  6дБ , K  5 код C(27,31,35) лучше, чем
код C(25,33,37), при Eb N0  6дБ код C(25,33,37) лучше, чем код C(27,31,35).
99
Таблица 4.6 - Эффективности сверточных кодов со скоростью 1/4
K
4
5
Eb/N0
Код
C(11,13,15,17)
C(13,15,15,17)
C(23,25,35,37)
C(25,33,35,37)
Pb
5.86×10-3
2.54×10-3
1.03×10-3
3.83×10-4
1.32×10-4
4.18×10-5
1.20×10-5
3.13×10-6
7.22×10-7
1.45×10-7
2.50×10-8
3.58×10-9
4.15×10-10
3.79×10-11
2.63×10-12
1.34×10-13
4.80×10-15
1.24×10-2
5.14×10-3
1.98×10-3
7.06×10-4
2.32×10-4
6.98×10-5
1.90×10-5
4.63×10-6
9.88×10-7
1.81×10-7
2.77×10-8
3.45×10-9
3.40×10-10
2.57×10-11
1.44×10-12
5.73×10-14
1.56×10-15
4.01×10-3
1.51×10-3
5.17×10-4
1.61×10-4
4.52×10-5
1.13×10-5
2.48×10-6
4.72×10-7
7.60×10-8
1.01×10-8
1.09×10-9
9.23×10-11
5.94×10-12
2.81×10-13
9.41×10-15
2.14×10-16
3.15×10-18
4.42×10-3
1.64×10-3
5.59×10-4
1.73×10-4
4.82×10-5
1.20×10-5
2.62×10-6
4.93×10-7
7.80×10-8
1.01×10-8
1.05×10-9
8.39×10-11
5.01×10-12
2.15×10-13
6.37×10-15
1.24×10-16
1.51×10-18
дБ
2
2,5
3
3,5
4
4,5
5
5,5
6
6,5
7
7,5
8
8,5
9
9,5
10
При отношении Eb N0  7,5дБ , K  4 верхняя граница вероятности битовой ошибки кода C(11,13,15,17) ниже, чем для кода C(13,15,15,17), а
Eb N0  5дБ
C(11,13,15,17)
верхняя
выше,
граница
чем
вероятности
кода
битовой
C(13,15,15,17).
А
ошибки
при
кода
отношении
Eb N0  6,5дБ , K  5 код C(23,25,35,37) лучше, чем код C(25,33,35,37), при
Eb N0  6,5дБ код C(25,33,35,37) лучше, чем код C(23,25,35,37).
Конкретные значения Eb N0 показаны в таблице 4.3 и в приложении
П.7.1 и П.7.2, в которых коды отображают свои лучшие эффективности.
Результаты поиска оптимальных сверточных кодов по верхней границе
вероятности битовой ошибки совпадают с результатами поиска с помощью
симуляции. Однако диапазон отношения Eb N0 шире и охватывает все диапазоны отношения Eb N0 , важные для практики.
100
4.2. Результат поиска оптимальных ПСК, найденных с помощью симуляции
Обычно для перфорирования выбираются материнские сверточные коды с хорошими характеристиками по критерию максимального свободного
расстояния или по критерию оптимального расстояния спектра [5]. Следовательно, исследуются ПСК, полученные из хороших материнских кодов и
близких к ним.
С помощью модели симуляции и программы поиска находятся оптимальные ПСК. В таблицах 4.7, 4.8 приведены ПСК, полученные из одного
материнского кода со скоростью 1/2.
Таблица 4.7 - ПСК со скоростями 2/3-4/5 из одного материнского кода
K
3
4
5
6
7
8
9
Параметр
2/3
Код
B
Код
B
Код
B
Код
B
Код
B
Код
B
Код
B
C(5,7)
0111
C(15,17)
1110
C(23,35)
1110
C(51,73)
0111
C(133,175)
1011
C(247,371)
1101
C(561,753)
1011
Скорость кодирования R
3/4
Оптимальные ПСК
C(5,7)
110110
C(15,17)
111001
C(23,35)
110110
C(51,73)
011101
C(133,175)
010111
C(247,371)
101101
C(561,753)
111001
4/5
C(5,7)
10101101
C(15,17)
10101101
C(23,35)
01100111
C(51,73)
01110101
C(133,175)
11010011
C(247,371)
11011001
C(561,753)
11101100
Таблица 4.8 - ПСК cо скоростями 5/6-7/8 из одного материнского кода
K
3
4
Параметр
5/6
Код
B
Код
B
C(5,7)
1010100111
C(15,17)
1101100101
Скорость кодирования R
6/7
7/8
Оптимальные ПСК
C(5,7)
C(5,7)
10011110101
01111010101010
C(15,17)
C(15,17)
101011010101
11010101011001
101
K
5
6
7
8
9
Параметр
5/6
Код
B
Код
B
Код
B
Код
B
Код
B
C(23,35)
0110110110
C(51,73)
0111010110
C(133,175)
0011010111
C(247,371)
1110100101
C(561,753)
1010111001
Скорость кодирования R
6/7
7/8
Оптимальные ПСК
C(23,35)
C(23,35)
110110011001
01011010110110
C(51,73)
C(51,73)
110101011001
11001101011001
C(133,175)
C(133,175)
110101101001
01101101100101
C(247,371)
C(247,371)
111011010001
10011001011101
C(561,753)
C(561,753)
001110101101
11011001110100
Видно, что при ограничениях K  3, 4,5,8,9 найденные материнские коды C(5,7), C(15,17), C(23,35), C(247,371) и C(561,753) известны [50], несколько векторов перфорирования совпадают известным (в сером фоне). А с ограничениями K  6 и K  7 материнские коды C(51,73) и C(133,175) со скоростью 1/2 превосходят в создании хороших перфорированных кодов. Рассмотрим сравнение этих ПСК и известных ПСК C(53,75) C(133,171) (в сером фоне) в таблицах 4.9 - 4.12. Материнские коды C(53,75) C(133,171) являются
лучшими по СОР.
Таблица 4.9 - Эффективности найденных ПСК C(51,73) и известных ПСК
C(53,75) со скоростями 2/3 - 4/5, K  6
R
2/3
Код C(51,73)
C(53,75)
B
0111
1101
-5
4.15×10
7.00×10-5
1.08×10-5 1.47×10-5
Pb 2.21×10-6 2.86×10-6
3.70×10-7 4.06×10-7
3/4
4/5
C(51,73)
011101
C(53,75)
110101
C(51,73)
01110101
C(53,75)
11010101
4.23×10-5
8.24×10-6
1.40×10-6
2.20×10-7
3.60×10-5
7.79×10-6
1.43×10-6
2.53×10-7
8.14×10-5
1.36×10-5
2.74×10-6
4.44×10-7
8.58×10-5
1.82×10-5
3.51×10-6
6.20×10-7
Eb/N0
дБ
4,5
5
5,5
6
6,5
102
Таблица 4.10 - Эффективности найденных ПСК C(51,73) и известных ПСК
C(53,75) со скоростями 5/6 - 7/8, K  6
R
5/6
Код C(51,73)
C(53,75)
01110101 11010101
B
10
01
-4
1.97×10
1.29×10-4
4.26×10-5 2.36×10-5
Pb 1.07×10-5 4.37×10-6
2.34×10-6 6.60×10-7
6/7
7/8
C(51,73)
C(53,75)
C(51,73)
1101010110 1110011010 110011010110
01
01
01
6.05×10-5
1.48×10-5
3.31×10-6
7.51×10-7
1.14×10-4
2.36×10-5
5.05×10-6
9.58×10-7
8.29×10-5
1.42×10-5
2.21×10-6
3.18×10-7
C(53,75)
Eb/N0
11011010100 дБ
110
5
1.86×10-4
5,5
-5
3.76×10
6
8.51×10-6
6,5
-6
1.49×10
7
Видно, что ПСК C(51,73) имеет эффективность выше, чем кода
C(53,75) при скоростях 2/3, 3/4, 4/5, 6/7 и 7/8. А при скорости 5/6 эффективность кода C(53,75) лучше, чем кода C(51,73). Другими словами, код C(51,73)
создает лучшие перфорированные коды при скоростях от 2/3 до 7/8.
Таблица 4.11 - Эффективности найденных ПСК C(133,175) и известных ПСК
C(133,171) со скоростями 2/3 - 4/5, K  7
R
2/3
Код C(133,175) C(133,171)
B
1011
1101
-4
1.77×10
7.24×10-5
4.21×10-5 1.42×10-5
Pb 9.41×10-6 2.32×10-6
1.91×10-6 3.84×10-7
3/4
4/5
C(133,175)
010111
C(133,171)
111001
C(133,175)
11010011
C(133,171)
11101010
8.20×10-5
1.47×10-5
2.58×10-6
3.33×10-7
7.54×10-5
1.48×10-5
2.73×10-6
4.29×10-7
4.34×10-4
1.06×10-4
2.58×10-5
6.33×10-6
1.87×10-4
3.88×10-5
7.08×10-6
1.16×10-6
Eb/N0
дБ
4
4,5
5
5,5
6
Таблица 4.12 - Сравнение эффективности найденных ПСК C(133,175) и известных ПСК C(133,171) со скоростями 5/6 - 7/8, K  7
R
5/6
6/7
7/8
Код C(133,175) C(133,171) C(133,175) C(133,171)
C(133,175)
C(133,171)
00110101 11100110 1101011010 1110100110 011011011001 11101010011
B
11
01
01
01
01
001
9.38×10-5 8.68×10-5
1.59×10-4
1.94×10-4
2.70×10-4
3.60×10-4
1.44×10-5 1.64×10-5
2.47×10-5
3.73×10-5
3.66×10-5
6.28×10-5
Pb
-6
-6
-6
-6
-6
2.50×10
3.19×10
4.02×10
7.15×10
5.41×10
9.67×10-6
3.52×10-7 4.73×10-7
5.17×10-7
1.40×10-6
7.27×10-7
1.93×10-6
Eb/N0
дБ
5
5,5
6
6,5
103
Видно, что найденный ПСК C(133,175) превосходит известный ПСК
C(133,171) при скоростях 3/4, 5/6, 6/7 и 7/8.
Аналогично организуется поиск хороших ПСК из материнских кодов
со скоростью 1/3. Материнские сверточные коды являются хорошими кодами
и близкими к ним. Например, при K  8 список материнских кодов для поиска ПСК включает 67 хороших сверточных кодов и 200 сверточных кодах, которых были найдены алгоритмом на рисунке 3.2. Оптимальные ПСК со скоростями от 1/2 до 6/7 показаны в таблицах 4.13 и 4.14. Скорость материнского кода 1/3.
Таблица 4.13 - ПСК со скоростями 1/2 - 3/4 из одного материнского кода
K
3
4
5
6
7
8
9
Параметр
1/2
Код
B
Код
B
Код
B
Код
B
Код
B
Код
B
Код
B
C(5,7,7)
101
C(11,15,17)
011
C(23,31,35)
101
C(43,55,75)
101
C(133,145,171)
101
C(225,331,367)
101
C(523,731,767)
110
Скорость кодирования R
2/3
3/4
Оптимальные ПСК
C(5,7,7)
C(5,7,7)
001101
100101001
C(11,15,17)
C(11,15,17)
101010
011010001
C(23,31,35)
C(23,31,35)
100110
001100101
C(43,55,75)
C(43,55,75)
101100
001010101
C(133,145,171)
C(133,145,171)
100101
110001100
C(225,331,367)
C(225,331,367)
101100
001001101
C(523,731,767)
C(523,731,767)
100110
110100001
Таблица 4.14 - ПСК со скоростями 4/5 - 6/7 из одного материнского кода
K
3
4
5
Параметр
4/5
Код
B
Код
B
Код
B
C(5,7,7)
100100001101
C(11,15,17)
010100100101
C(23,31,35)
001001110100
Скорость кодирования R
5/6
6/7
Оптимальные ПСК
C(5,7,7)
C(5,7,7)
101001100100100
101001100100100100
C(11,15,17)
C(11,15,17)
101100100010100
010011001010100010
C(23,31,35)
C(23,31,35)
010100101001010
010001010010101010
104
K
6
7
8
9
Из
Параметр
4/5
Код
B
Код
B
Код
B
Код
B
C(43,55,75)
101010100100
C(133,145,171)
001010101010
C(225,331,367)
001100101100
C(523,731,767)
100001110001
полученных
Скорость кодирования R
5/6
6/7
Оптимальные ПСК
C(43,55,75)
C(43,55,75)
100101010100100
001010100100101001
C(133,145,171)
C(133,145,171)
010010101100100
010010101100100001
C(225,331,367)
C(225,331,367)
100100100101001
001100101001100010
C(523,731,767)
C(523,731,767)
100010110001001
010100001110001100
результатов
видно,
что
при
ограничениях
K  3, 4, 6, 7, 8 оптимальные ПСК сформированы из материнских, показан-
ных в таблице П.7.1. При K  5 , K  9 материнские коды C(23,31,35) и
C(523,731,767)
C(27,31,35),
являются
C(25,33,37)
хорошими.
(с
Материнские
ограничением
K  5)
сверточные
и
коды
C(471,753,765),
C(471,733,765), C(575,623,727) (с ограничением K  9 ) обладают лучшей помехозащищенностью.
Сравнение эффективности ПСК C(23,31,35) и C(25,33,37) (серый фон)
показано в таблицах 4.15, 4.16. Код C(25,33,37) является лучшими по СОР.
Таблица 4.15 - Эффективности ПСК C(23,31,35) и ПСК C(25,33,37) со
скоростях 1/2 - 3/4
R
1/2
2/3
Код C(23,31,35) C(25,33,37) C(23,31,35) C(25,33,37)
B
101
101
100110
101001
-5
-5
-4
4.28×10
7.08×10
1.02×10
1.26×10-4
1.01×10-5 1.84×10-5
2.76×10-5
3.92×10-5
-6
-6
-6
Pb 2.04×10
4.99×10
6.89×10
1.07×10-5
4.27×10-7 1.17×10-6
1.62×10-6
2.77×10-6
3/4
Eb/N0
C(23,31,35)
001100101
C(25,33,37)
001001101
дБ
7.95×10-5
2.32×10-5
6.16×10-6
1.66×10-6
7.03×10-5
1.86×10-5
4.33×10-6
8.70×10-7
4,5
5
5,5
6
6,5
105
Таблица 4.16 - Эффективности ПСК C(23,31,35) и ПСК C(25,33,37) со
скоростями 4/5 - 6/7
R
4/5
5/6
6/7
Код C(23,31,35) C(25,33,37) C(23,31,35) C(25,33,37)
C(23,31,35)
C(25,33,37)
00100111 11010000 0101001010 1101000011 010001010010 10000110000
B
0100
1100
01010
00100
101010
1010011
-5
-5
3.26×10
4.20×10
8.76×10-6 1.15×10-5
2.52×10-5
2.11×10-5
2.87×10-5
2.97×10-5
-6
-6
-6
-6
-6
Pb 2.11×10
2.75×10
4.44×10
5.00×10
6.69×10
6.43×10-6
4.76×10-7 6.33×10-7
9.31×10-7
9.20×10-7
1.31×10-6
1.40×10-6
1.43×10-7
1.44×10-7
2.21×10-7
2.23×10-7
Eb/N0
дБ
5,5
6
6,5
7
7,5
Видно, что найденные ПСК C(23,31,35) с K  5 превосходят ПСК
C(25,33,37).
Результаты поиска оптимальных перфорированных сверточных кодов
со скоростями от 2/3 до 7/8, полученными из разных материнских кодов со
скоростью 1/2, показаны в таблицах 4.17, 4.18 [5], с соответствующими векторами перфорирования B. Коды на сером фоне совпадают известным кодам
[50] и [26].
Таблица 4.17 - ПСК cо скоростями 2/3-4/5 из разных материнских кодов
K
3
4
5
6
7
8
9
Параметр
2/3
Код
B
Код
B
Код
B
Код
B
Код
B
Код
B
Код
B
C(5,7)
0111
C(13,15)
1110
C(23,35)
1110
C(51,73)
0111
C(135,163)
0111
C(251,343)
1011
C(533,741)
0111
Скорость кодирования R
3/4
Оптимальные ПСК
C(5,7)
110110
C(15,17)
111001
C(23,35)
110110
C(43,65)
010111
C(135,163)
110101
C(271,373)
011110
C(545,747)
011101
4/5
C(5,7)
10101101
C(15,17)
10101101
C(25,31)
10101101
C(51,73)
01110101
C(135,161)
10010111
C(265,367)
01100111
C(433,725)
01101110
106
Таблица 4.18 - ПСК со скоростями 5/6-7/8 из разных материнских кодов
K
3
4
5
6
7
8
9
Параметр
5/6
Код
B
Код
B
Код
B
Код
B
Код
B
Код
B
Код
B
C(5,7)
1010100111
C(11,15)
1110010101
C(25,31)
1011011010
C(53,75)
1101010101
C(133,175)
0011010111
C(271,333)
1011010110
C(433,725)
1011010101
Скорость кодирования R
6/7
7/8
Оптимальные ПСК
C(5,7)
C(5,7)
10011110101
01111010101010
C(11,15)
C(11,15)
011101100110
11010110100101
C(31,33)
C(23,35)
011010101101
01011010110110
C(43,75)
C(51,73)
101011010110
11001101011001
C(107,165)
C(133,175)
011011011001
01101101100101
C(225,367)
C(251,343)
11010101011
01100111101010
C(545,747)
C(523,731)
011001111010
10111001101001
При разных скоростях приведены разные ПСК, имеющие лучшие эффективности.
107
Выводы к четвертой главе
 Приведены результаты поиска оптимальных сверточных кодов по вероятности битовой ошибки, полученные симуляцией. Оценена эффективность полученных новых кодов по сравнению с известными.

Приведены результаты поиска оптимальных сверточных кодов по
верхней границе вероятности битовой ошибки. Оценена эффективность
полученных сверточных кодов.
 С помощью симуляции найдены лучшие перфорированные сверточные
коды по вероятности битовой ошибки. Произведено сравнение помехоустойчивости новых ПСК с известными ПСК.
108
ЗАКЛЮЧЕНИЕ
Сформулированы основные результаты, достигнутые в ходе выполнения диссертационной работы:
1. Разработаны алгоритмы поиска оптимальных сверточных и перфорированных сверточных кодов во множествах возможных кодов, отличающихся кодовыми ограничениями и скоростями.
2. Разработаны программы поиска оптимальных сверточных кодов с помощью симуляции и по верхней границе вероятности битовой ошибки. Работоспособность созданных программ подтверждается совпадением многих
найденных кодов с известными.
3. Найдены новые сверточные коды, обеспечивающие минимальную вероятность битовой ошибки в определенном диапазоне отношения сигнал/шум. Такими кодами являются:
для скорости 1/2 коды C(51,77), C(225,367), C(523,731) при кодовых ограничениях соответственно K = 6; 8; 9;
для скорости 1/3 коды C(27,31,35), C(43,55,75), C(133,145,171) с кодовыми ограничениями K = 5; 6; 7;
для
скорости
1/4
коды
C(113,127,155,171),
C(225,267,323,371),
C(427,531,665,763) с кодовыми ограничениями K = 7; 8; 9.
Установлены диапазоны изменения отношения Eb N0 , в которых помехоустойчивость найденных кодов выше помехоустойчивости известных. Так,
код C(27,31,35) имеет выигрыш в помехоустойчивости около 0,15 дБ по
сравнению с известным кодом C(25,33,37).
4. Поиск оптимальных перфорированных сверточных кодов проведен
для двух случаев: перфорированию подвергается один материнский код и в
зависимости от требуемой скорости кода перфорируются разные материнские коды.
109
В общих случаях найдены новые оптимальные ПСК. Так, при перфорировании найденного материнского кода C(51,73) для скоростей от 2/3 до 7/8
вероятность битовой ошибки меньше, чем при перфорировании известного
кода C(53,75).
Для кодового ограничения K  5 и скоростей то 2/3 до 7/8 оптимальные
сверточные коды получаются перфорированием разных материнских кодов
C(23,35), C(25,31), C(31,33).
110
СПИСОК ЛИТЕРАТУРЫ
1. Афанасьева В. Б. Мир связи - Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. М.: 2005. 319с.
2. Берлекэмп Э. Р. Техника кодирования с исправлением ошибок.
ТИИЭР. 1980. Т.68, №5, С. 24-58.
3. Блейхут. Р. Э. Теория и практика кодов, контролирующих ошибки.
М.: 1986. 576с.
4. Волков Л.Н., Немировский М.С. , Шинаков Ю.С. Системы цифровой
радиосвязи. М.: Экотрендз, 2005. 390с.
5. Данг Ким Нгок. Поиск лучших перфорированных сверточных кодов
с высокими скоростями. // Изв. Вузов России. Радиоэлектроника. 2013. Вып.
4. С. 9-12.
6. Данг Ким Нгок, Нгуен Ван Нам, Нгуен Хоанг Фыонг, Смирнов В.Н.
Комбинированный перемежитель для турбокода. // Изв. Вузов России. Радиоэлектроника. 2013. Вып. 1. С. 17-21.
7. Данг Ким Нгок. Оценка числа дополнительных символов при последовательном декодировании свѐрточных кодов. // 67-я Научно-техническая
конференция, посвященная Дню радио, СПбГЭТУ «ЛЭТИ», 2012. С. 36-37.
8. Данг Ким Нгок. Анализ методов перфорирования свѐрточных кодов.
// Научно-технической школы-семенара «Инфокоммуникационные технологии в цифровом мире», СПбГЭТУ «ЛЭТИ», 2012. С. 43-44.
9. Данг Ким Нгок. Оценка помехоустойчивости перфорированных
сверточных кодов. // 68-я Научно-техническая конференция, посвященная
Дню радио, СПбГЭТУ «ЛЭТИ» 2013. С. 32-33.
10. Данг Ким Нгок. Перфорирование сверточных кодов. // 67-я Научнотехническая
конференция
профессорско-преподавательского
СПбГЭТУ «ЛЭТИ» 2014. С. 3-4.
состава
111
11. Данг Ким Нгок. Сравнение сверточных кодов по верхней границе
вероятности битовой ошибки. // 69-я Научно-техническая конференция СПб
НТО РЭС, посвященная Дню радио, СПбГЭТУ «ЛЭТИ». 2014. С. 34-35.
12. Данг Ким Нгок. Исследование верхней границы вероятности битовой ошибки для поиска хороших сверточных кодов. // Изв. Вузов России. Радиоэлектроника. 2014. Вып. 1. С. 21-24.
13. Прокис Дж. Цифровая связь. М.: Радио и связь, 2000. 798с.
14. Скляр. Б. Цифровая связь - теоретические основы и практическое
применение // Пер с англ. М.: 2003. 1104с.
15. Та Вьет Хунг, Разработка и оценка эффективности алгоритмов декодирования каскадных сверточных кодов // 2006.
16. 3GPP Organisational Partners, Technical Specification 3rd Generation
Partnership Project; Technical Specification Group Radio Access Network; Multiplexing and channel coding (FDD) // Release 7, Mar- 2006, P. 15-16.
17. C. Berrou, A. Glavieux, and P. Thitimajshima, Near Shannon limit error
correcting coding and decoding: Turbo-codes // Proc. Int. Conf. Communication,
May 1993, P. 1064–1070.
18. David F. G., The Viterbi Algorithm // proceedings of the IEEE, March
1973, P. 268-277.
19. David Haccoun, Guy Begin. High rate Punctured convolutional codes for
Viterbi and Sequential decoding. // IEEE Transactions on Communications, VOL.
37, No. 11 November 1989. P. 1113-1125.
20. ETR 290 European Broadcasting Union. Digital Video Broadcasting
(DVB).
Measurement
guidelines
for
DVB
systems.
May
1997.
//
http://www.etsi.org/deliver/etsi_etr/200_299/290/01_60/etr_290e01p.pdf
21. ETSI 3rd Generation Partnership, Project Technical Specification LTE;
Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel
coding // 3GPP TS 36.212 version 10.6.0 Release 10, Jul. 2012, P. 11-12.
112
22. Fano R. M., A heuristic discussion of probabilistic decoding // IEEE
Trans. Inform. Theory, Vol. IT-9, No.2, April 1963. P. 64-73.
23. Gallager, R. G. Information Theory and Reliable Communication // New
York, 1968, 306 p.
24. Hiroshi Sasano, Sen Moriya. A construction of high rate punctured convolutional codes //ISITA2012, Hololulu, Hawaii, USA, October 2012. //
http://www.deepdyve.com/lp/institute-of-electrical-and-electronics-engineers/aconstruction-of-high-rate-punctured-convolutional-codes-nT0ai00EsL
25. Irina E. Bocharova and Boris D. Kydryashov, Rational rate punctured
convolutional codes for soft-decision Viterbi decoding. // IEEE Transactions on
informations theory, Vol 43, No. 4, July 1997. P. 1035-1313.
26. J. Bibb Cain, George C. Clark, and John M. Geist, Punctured Convolutional Codes of Rate (n-1)/n and Simplified Maximum Likelihood Decoding //
IEEE Trans. theory, Vol. IT-25, No. 1, JAN. 1979. P 97-100.
27. Jean Conan. The weight spectra of some short low rate convolutional
codes. // IEEE Transactions on communications, Vol. COM-32, No. 9, September
1984. P. 1050-1053.
28. Joachim H., Peter H. A Viterbi algorithm with soft-decision outputs and
its applications // IEEE Global Telecommunications Conference Vol.3. Nov. 1989,
P. 1680-1686.
29. Joachim Hagenauer, Rate-Compatible Punctured Convolutional Codes
(RCPC Codes) and their Applications // IEEE Transactions on communications,
Vol. 36, No. 4, April 1988, P. 389-400.
30. Johannesson R. Robustly optimal rate one-half binary convolutional
codes. // IEEE Transactions on informations theory, July 1975, P. 464-468.
31. John G. Proakis, Masoud Salehi, Digital Communication. fifth edition,
2007, 928p.
113
32. Knud J. Larsen, Short Convolutional Codes With Maximal Free Distance
for Rates 1/2, 1/3, and 1/4. // IEEE Transactions on informations theory, May 1973,
P. 371-372.
33. L. R. Bahl, J. Cocke, F. Jelinek, and J. Raviv, Optimal decoding of linear
codes for minimizing symbol error rate // IEEE Trans. Inform. Theory Vol. 20,
March 1974, P. 248-287.
34. Linear code.// http://en.wikipedia.org/wiki/Linear_code
35. Mats Cedervall, Roll Johannesson and Kamil SH. Zigangirov. A new
upper bound on the first-event error probability for maximum-likelihood decoding
of fixed binary convolutional codes. // IEEE Trans. on information theory, VOL.
IT-30, No. 5, September 1984. P. 762-766
36. Miguel Griot, Wen-Yen Weng, Richard D. Wesel. A tighter Bhattacharyya bound for decoding error probability. // IEEE Communications letters, VOL.
11, No. 4, APRIL 2007, P. 1-2.
37. Nguyen Binh Minh. Nghiên cứu xây dựng mã xoắn theo tiêu chuẩn xác
suất lỗi (Исследование построения сверточного кода по критерии вероятности
ошибки). // Диссертация на соискание ученой степени кандидата технических
наук.
Университет
Ле
Куй
Дон,
Ханой
2006.
//
http://luanan.nlv.gov.vn/luanan?a=cl&cl=CL1&sp=TTbGGSfFQhjC
38. Odenwalder, J. P. Optimal Decoding of Convolutional codes // Ph.D.
Dissertation, University of California, Los Angeles. 1970
39. Pal Frenger, Pal Orten and Tony Ottosson. Convolutional codes with
Optimum Distance Spectrum //IEEE Communications letters, Vol. 3 No. 11, November 1999, P. 317- 319.
40. QCVN. National technical regulation on the signal of DVB-S and DVBS2 satellite digital television at Point of Receiver Location. 2013. BTTTT.
//http://mic.gov.vn/Attach%20file/D%E1%BB%B1%20th%E1%BA%A3o%20QC
VN/update%20ng%C3%A0y%2002-05-2013/QCVN-DVBSs2(10.12)_%20V3.doc.
114
41. Robert H. Morelos-Zaragoza, The art of error correcting coding // SONY
Computer Science Laboratories, Inc. JAPAN, Copyright 2002 by John Wiley &
Sons, Ltd, 221p.
42. S. Benedetto, D. Divsalar, G. Montorsi, and F. Pollara, A softinput softoutput APP module for the iterative decoding of concatenated codes // IEEE
Commun. Letter, Vol. 1 No.1, Jan. 1997, P. 22-24.
43. Shannon, C.E. A mathematical theory of communications // Bell Sys.
Tech. j., vol. 27, 1948, P. 379-423 and P. 623-656.
44. Shu Lin, Daniel J. Costello, Jr Error control coding: Fundamentals and
applications. // Frentice-Hall series in computer applications in electrical
enginering 1987, 603p.
45. Tang Hung-Hua, Lin Mao-Chao, Bartolomeu F. U. F. Minimal trellis
modules and equivalent convolutional codes // IEEE Trans. on information theory,
Vol. IT-52, No 8, 2006, P. 3738-3746.
46. Van de Meeberg A Tightened upper bound on the error probability of
binary convolutional codes with Viterbi decoding, // IEEE Transactions on information theory, Vol. 20, May 1974, P. 389-391.
47. Viterbi A. J. Convolutional Codes and Their Performance in Communication Systems // IEEE Transactions on communications technology, Vol. Com19, No. 5, Oct 1971, P. 751-771
48. Viterbi A. J. Error bounds for convolutional codes and an asymptotically
optimum decoding algorithm // IEEE. Trans. On Inform. Theory, Vol 13, Apr.
1967, P. 260 - 269.
49. Wozencraft and B. Reiffen, Sequential Decoding, MIT Press. Cambridge, Mass., 1961, 79p.
50. Yutaka Yasuda, Kanshiro Kashiki and Yasuo Hirata High Rate Punctured Convolutional Codes for Soft Decision Viterbi Decoding // IEEE Transactions on communications, Vol. COM-32, No 3, March 1984, P. 315-319.
115
51. Zhengqiang Sun, Shigetomo Kimura, Yoshihiko Ebihara. Structured
properties of punctured convolutional codes and their applications. // IEICE Trans.
Commun. Vol. E82-B, No. 9, September 1999, P. 1432-1438
116
ПРИЛОЖЕНИЕ
П1. Достоверность оценки вероятности битовой ошибки Pb в симуляции.
Симуляции является методом статистического испытания, виртуальной
копией эксперимента на реальной системе. Определяем достоверность оценки вероятности ошибки Pb по этому методу. Допустим L - число информационных битов, которые обрабатываются в системе (объем выборки), а l - число
полученных ошибочных битов. Тогда оценкой Pb является Pˆ  l L .
Надежность Pˆ определяется величинами доверительной вероятности и
доверительного интервала. На рисунке П.1 показана зависимость доверительной вероятности, выраженной в процентах, и интервала, заданного расстоянием между сплошными линями, от объема выборки [15].
Pb
10-S
90%
95%
99%
10-(S+1)
10S
10S+1
10S+2
10S+3
L
Рисунок П.1 - Надежность Pb от объема выборки
Видно, что тем надежность выше, чем больше L, однако требует больших времени на выполнении симуляции. Например, для оценки Pb  10 S если
объем выборки L  10S 1 , то доверительная вероятность 90% обеспечивает надежный интервал (2Pˆ ,0.5Pˆ ) . Итак с объемом выборки L  10S 1 достоверность
вычисляет вероятности не достаточно потому, что его значение вычисления
может быть 2 раза вероятности.
117
В исследовании для оценки Pb  10 S объем выборки выбирается больше
10S+3, чтобы обеспечивать высокую достоверность.
П2. Модель симуляции информационной системы со сверточным кодом
П3. Модель симуляции информационной системы с ПСК
118
П4. Программа поиска оптимальных сверточных кодов с помощью симуляции.
% The simulation of Convolutional Codes
clc;
clear all
%% Reset DATA
dataLen = 3000;
% The Information Block Length
%EbNoVec = [4.5:0.5:6.5];
% Simulation SNR range
EbNoVec = [4:0.5:6];
BERVec = [];
% The bit error probability (output of simulation)
ter = 6e8;
% The maximum nunber of generated bits
opts = simset('SrcWorkspace','current','DstWorkspace','current');
%khoi tao ma
codeRate = (1/2);% length(puncVec)/sum(puncVec);
maxg1dec = 63; % max polinominal in decimal
ming1dec = 32;
% min polinominal in decimal
k = length(dec2bin(maxg1dec)); % length constraint K=6
% K=4(15,8),k=5(31,16) k=6(63,32) k=7(127,64) k=8(255,128) k=9(511,256)
% k=10(1023,512)
max1=length(EbNoVec);
max2 =60;
bien1 =1:max1;
bien2 =1:max2;
BERVecluu(bien1,bien2)=1;
BERVecluu1(bien1,bien2)=1;
matotg1(1:max2) =0;
matotg2(1:max2) =0;
kiemtra=true;
%% MAIN PROGRAM
for i=maxg1dec:-1:ming1dec
for j=i-1:-1:1
kiemtra=kiemtra_g1g2(i,j); % check if not equivalent code - continue
if kiemtra==1
% Not equivalent
g1=dec2oct(i);
g2=dec2oct(j);
mytrellis = poly2trellis(k,[g1 g2]);
catas=iscatastrophic(mytrellis);
% check catastrophic
if catas==0
% Not Catastrophic
clc;
disp(['Chuong trinh dang chay : g1=',num2str(g1),' g2=',num2str(g2)]);
for n=1:length(EbNoVec)
EbN0dB = EbNoVec(n) ;
noiseVar=1/(2*(codeRate)*(10.^(EbN0dB/10))); % Noise Variance
if EbN0dB <= 4
ter = 1.8e+6;
% number loop
elseif EbN0dB <= 5
ter = 1.8e+7;
elseif EbN0dB <= 5.5
ter = 1.8e+8;
elseif EbN0dB <= 6
ter = 1.8e+8;
elseif EbN0dB <= 6.5
ter = 1.8e+8;
else
ter = 1.8e+8;
end
sim('mophong_Convo',[],opts);
% simulation
BERVec(n,1)= ber_convol(1);
semilogy(EbNoVec(1:n),BERVec(1:n,1),'-k+');
drawnow
hold on
end
% Compare if BER lower write data in array
if BERVecluu(max1,max2) > BERVec(max1,1)
119
BERVecluu(1:max1,max2) = BERVec(1:max1,1);
matotg1(max2)=g1;
matotg2(max2)=g2;
elseif (BERVecluu(max1,max2) == BERVec(max1,1))
if BERVecluu(max1-1,max2) > BERVec(max1-1,1)
BERVecluu(1:max1,max2) = BERVec(1:max1,1);
matotg1(max2)=g1;
matotg2(max2)=g2;
elseif BERVecluu(max1-1,max2) == BERVec(max1-1,1)
if BERVecluu(max1-2,max2) > BERVec(max1-2,1)
BERVecluu(1:max1,max2) = BERVec(1:max1,1);
matotg1(max2)=g1;
matotg2(max2)=g2;
elseif BERVecluu(max1-2,max2) == BERVec(max1-2,1)
if BERVecluu(max1-3,max2) > BERVec(max1-3,1)
BERVecluu(1:max1,max2) = BERVec(1:max1,1);
matotg1(max2)=g1;
matotg2(max2)=g2;
end
end
end
end
% Reorder result
for sxep1=1:max2-1
for sxep2=sxep1+1:max2
if BERVecluu(max1,sxep1) > BERVecluu(max1,sxep2)
BERVecluu1(1:max1,1) = BERVecluu(1:max1,sxep2);
BERVecluu(1:max1,sxep2)=BERVecluu(1: max1,sxep1);
BERVecluu(1:max1,sxep1) = BERVecluu1(1:max1,1);
tg1= matotg1(sxep1);
tg2= matotg2(sxep1);
matotg1(sxep1)= matotg1(sxep2);
matotg2(sxep1)= matotg2(sxep2);
matotg1(sxep2)=tg1;
matotg2(sxep2)=tg2;
elseif BERVecluu(max1,sxep1) == BERVecluu(max1,sxep2)
if BERVecluu(max1-1,sxep1) > BERVecluu(max1-1,sxep2)
BERVecluu1(1:max1,1) = BERVecluu(1:max1,sxep2);
BERVecluu(1:max1,sxep2)=BERVecluu(1:max1,sxep1);
BERVecluu(1:max1,sxep1) = BERVecluu1(1:max1,1);
tg1= matotg1(sxep1);
tg2= matotg2(sxep1);
matotg1(sxep1)= matotg1(sxep2);
matotg2(sxep1)= matotg2(sxep2);
matotg1(sxep2)=tg1;
matotg2(sxep2)=tg2;
elseif BERVecluu(max1-1,sxep1) == BERVecluu(max1-1,sxep2)
if BERVecluu(max1-2,sxep1) > BERVecluu(max1-2,sxep2)
BERVecluu1(1:max1,1) = BERVecluu(1:max1,sxep2);
BERVecluu(1:max1,sxep2)=BERVecluu(1:max1,sxep1);
BERVecluu(1:max1,sxep1) = BERVecluu1(1:max1,1);
tg1= matotg1(sxep1);
tg2= matotg2(sxep1);
matotg1(sxep1)= matotg1(sxep2);
matotg2(sxep1)= matotg2(sxep2);
matotg1(sxep2)=tg1;
matotg2(sxep2)=tg2;
elseif BERVecluu(max1-2,sxep1) == BERVecluu(max12,sxep2)
if BERVecluu(max1-3,sxep1) > BERVecluu(max13,sxep2)
BERVecluu1(1:max1,1) = BERVecluu(1:max1,sxep2);
BERVecluu(1:max1,sxep2)=BERVecluu(1:max1,sxep1);
120
BERVecluu(1:max1,sxep1) = BERVecluu1(1:max1,1);
tg1= matotg1(sxep1);
tg2= matotg2(sxep1);
matotg1(sxep1)= matotg1(sxep2);
matotg2(sxep1)= matotg2(sxep2);
matotg1(sxep2)=tg1;
matotg2(sxep2)=tg2;
end
end
end
end
end
end
end
end
end
end
save matotg1.mat matotg1
save matotg2.mat matotg2
save temBER.mat BERVecluu
disp('Program ended');
beep ;
beep on ;
% Save
in database
%ended
П5. Программа поиска оптимальных ПСК с помощью симуляции.
% The simulation of Punctured convolutional Codes
clc;
clear all
%% Khoi tao file luu du lieu
dataLen = 3000;
% The Information Block Length
%EbNoVec = [4.5:0.5:6.5];
% Simulation SNR range
EbNoVecN = [5:0.5:6.5];
EbNotest=4.5;
BERVec = [];
% The bit error probability (output of simulation)
ter = 1e7;
% The maximum nunber of generated bits
opts = simset('SrcWorkspace','current','DstWorkspace','current');
%khoi tao ma
codeRate = (3/4);
%*length(puncVec)/sum(puncVec);
bit_out=6;
% dung de punctured
matotg1=[51 45 45 57 55 63 51 51 51]; % List good codes in octal
matotg2=[77 73 75 75 75 75 65 75 63];
k = 6; % constraint length
% K=4(17,10),k=5(37,20) k=6(77,40) k=7(177,100) k=8(377,200) k=9(777,400)
% k=10(1777,1000) in decimal
puncVec = [1 1 1 1 1 1]'; % reset Punctured vector
puncVecluu=[];
max1=length(EbNoVecN);
max2 =length(matotg1);
max3=9;
bien1 =1:max1;
bien2 =1:max2;
BERVecluu(bien1,bien2)=1;
BERVecluu1(bien1,bien2)=1;
%% MAIN PROGRAM
for i=1:length(matotg1)
clc;
disp(['Program is checking: g1=',num2str(matotg1(i)),'
g2=',num2str(matotg2(i))]);
g1=matotg1(i);
g2=matotg2(i);
for j=1:bit_out-1
for m=j+1:bit_out
121
puncVec(j) = 0;
puncVec(m)=0;
noiseVar=1/(2*(codeRate)*(10.^(EbNotest/10))); % Noise Variance
mytrellis = poly2trellis(k,[g1 g2]);
sim('mophongpn3',[],opts);
% kiem tra neu xac suat nho hon thi ghi vao
if BERVecluu(1,i) > ber_convol(1)
BERVecluu(1,i) = ber_convol(1);
puncVecluu(1:bit_out,i)=puncVec
semilogy(EbNoVec,BERVec(1,1),'-k+');
drawnow
hold on
end
puncVec = [1 1 1 1 1 1 ]';
% reset punctured vector
end
end
end
disp('OK ХОРОШИЕ ВЕКТОРЫ');
beep ;
beep on ;
disp('Программа определяет хорошие коды');
% quet tim 4 ma duc tot nhat
for i=1:max3
g1=matotg1(i);
g2=matotg2(i);
disp(['Program is running: g1=',num2str(matotg1(i)),'
g2=',num2str(matotg2(i))]);
puncVec=puncVecluu(1:bit_out,i);
for n=1:max1
EbN0dB = EbNoVecN(n) ;
noiseVar=1/(2*(codeRate)*(10.^(EbN0dB/10))); % Noise Variance
if EbN0dB <= 5
ter = 1.8e+7;
elseif EbN0dB <= 5.5
ter = 1.8e+8;
elseif EbN0dB <= 6
ter = 9e+8;
else
ter = 1.8e+9;
end
mytrellis = poly2trellis(k,[g1 g2]);
sim('mophongpn3',[],opts);
BERVec(n,1)= ber_convol(1);
semilogy(EbNoVecN(1:n),BERVec(1:n,1),'-k+');
drawnow
hold on
end
BERVecluuN(1:max1,i) = BERVec(1:max1,1);
end
save tempuncVecluu_3_4.mat puncVecluu
% save in database
save temBERVecluu_3_4_111.mat BERVecluu
disp('Ended program');
beep ;
beep on ;
П6. Программа поиска оптимальых сверточных кодов по верхней границе
вероятности битовой ошибки.
clc;
clear all
EbNo=[3:0.5:6]';
max1=length(EbNo);
% so luong diem Eb/No
maxg1dec = 63; % max polinominal in decimal
ming1dec = 32;
% min polinominal in decimal
k=6;
% K=4(15,8),k=5(31,16) k=6(63,32) k=7(127,64) k=8(255,128) k=9(511,256)
122
% k=10(1023,512)
truncate=10;
% Lyc
max2=50;
matotg1(1:max2) =0;
matotg2(1:max2) =0;
% List good codes
list_dfree(1:max2)=0;
list_weight(1:truncate,1:max2)=0;
list_event(1:truncate,1:max2)=500;
list_berup(1:max1,1:max2)=1;
for i=maxg1dec:-2:ming1dec+1
for j=i-2:-2:ming1dec
clc;
g1=dec2oct(j);
g2=dec2oct(i);
kiemtra=kiemtra_g1g2N(i,j);
% check equivalent
if kiemtra==1
disp(['Program is running : g1=',num2str(g1),' g2=',num2str(g2)]);
trellis = poly2trellis(k,[g1 g2 ]);
catas=iscatastrophic(trellis);
% check catastrophic
if catas==0
% not catastrophic
spect = distspec(trellis,truncate);
berub = bercoding(EbNo,'conv','soft',1/2,spect); % BER bound
if list_berup(max1,max2) > berub(max1)
sspb=1;
while sspb < max2-1
if list_berup(1:max1,sspb)== berub
sspb= max2+10;
end
sspb=sspb+1;
end
if sspb < max2+10
matotg1(max2)=g1;
matotg2(max2)=g2;
list_dfree(max2)=spect.dfree;
list_weight(1:truncate,max2)=spect.weight;
list_event(1:truncate,max2)=spect.event;
list_berup(1:max1,max2)=berub';
%Order results
for sxep1=1:max2-1
for sxep2=sxep1+1:max2
if list_berup(max1,sxep1) > list_berup(max1,sxep2)
TGlist_dfree =list_dfree(sxep1);
list_dfree(sxep1)=list_dfree(sxep2);
list_dfree(sxep2)=TGlist_dfree;
TGlist_weight(1:truncate,sxep1)=list_weight(1:truncate,sxep1);
list_weight(1:truncate,sxep1)=list_weight(1:truncate,sxep2);
list_weight(1:truncate,sxep2)=TGlist_weight(1:truncate,sxep1);
TGlist_event(1:truncate,sxep1)=list_event(1:truncate,sxep1);
list_event(1:truncate,sxep1)=list_event(1:truncate,sxep2);
list_event(1:truncate,sxep2)=TGlist_event(1:truncate,sxep1);
123
TGlist_berup(1:max1,sxep1)=list_berup(1:max1,sxep1);
list_berup(1:max1,sxep1)=list_berup(1:max1,sxep2);
list_berup(1:max1,sxep2)=TGlist_berup(1:max1,sxep1);
tg1= matotg1(sxep1);
tg2= matotg2(sxep1);
matotg1(sxep1)= matotg1(sxep2);
matotg2(sxep1)= matotg2(sxep2);
matotg1(sxep2)=tg1;
matotg2(sxep2)=tg2;
end
end
end
end
end
end
end
end
end
save matotg1.mat matotg1
save matotg2.mat matotg2
save temBER.mat list_berup
% Save
in database
disp('Ended');
beep ;
beep on ;
П7. Результаты поиска оптимальных сверточных кодов со скоростями 1/3 и
1/4.
Таблица П.7.1 - Оптимальные сверточные коды со скоростью 1/3
K
3
4
5
6
7
8
9
Код
C(5, 7, 7)
С(11, 15, 17)
C(13, 15, 17)
С(27, 31, 35)
C(25, 33, 37)
С(43, 55, 75)
C(47, 53, 75)
C(133, 145, 171)
C(133, 165, 171)
C(225, 331, 367)
С(471, 573, 765)
C(471, 533, 765)
C(575, 623, 727)
Диапазон Eb/N0, дБ
Не более Не менее
–
–
5,24
–
–
5,24
6,0
–
–
6,0
4,66
–
–
4,66
7,0
–
–
7,0
–
–
4,5
–
8,31
4,5
–
8,31
dCB
Комментарий
8
9
10
11
12
12
13
14
15
16
18
18
18
Лучший по критерию МСР, ПОР, СОР
Новый
Лучший по критерию МСР, ПОР, СОР
Новый
Лучший по критерию МСР, СОР
Новый
Лучший по критерию МСР, СОР
Новый
Лучший по критерию СОР
Лучший по критерию МСР, СОР
Новый
Новый
Лучший по критерию СОР
124
Таблица П.7.2 - Оптимальные сверточные коды со скоростью 1/4
K
3
4
5
6
7
8
9
Код
C(5,5,7,7)
С(11,13,15,17)
С(13,15,15,17)
С(23,25,35,37)
C(25,33,35,37)
С(47,53,65,75)
C(45,55,73,77)
C(113,127,155,171)
C(117,133,165,171)
C(225,267,323,371)
C(231,273,327,375)
C(427,531,665,763)
C(473,513,671,765)
Диапазон Eb/N0, дБ
d
Не более Не менее CB
–
–
10
7,37
–
12
–
7,37
13
6,49
–
14
–
6,49
15
3,77
–
17
–
3,77
18
5,35
–
19
–
5,35
20
5,29
–
21
–
5,29
22
4,25
–
23
–
4,25
24
Комментарий
Лучший по критерию МСР, СОР
Новый
Лучший по критерию МСР, СОР
Новый
Лучший по критерию МСР, СОР
Новый
Лучший по критерию СОР
Новый
Лучший по критерию СОР
Новый
Лучший по критерию СОР
Новый
Лучший по критерию СОР