0% нашли этот документ полезным (0 голосов)
40 просмотров239 страниц

Inf 14

Учебник 'Теория информации и кодирования' В.Н. Думачева, изданный Воронежским институтом МВД России в 2012 году, представляет систематическое изложение курса, предназначенного для курсантов радиотехнического факультета. В книге рассматриваются ключевые темы, такие как энтропия, каналы связи, помехоустойчивое кодирование и квантовая информация. Учебник включает теоретические основы и практические задачи, способствующие подготовке специалистов в области информационной безопасности телекоммуникационных систем.

Загружено:

xorazmbtpj
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd

Затронутые темы

  • Коды Хэмминга,
  • Коды с минимальным расстоянием,
  • Пропускная способность каналов,
  • Системы связи,
  • Коды Рида-Соломона,
  • Поле Галуа,
  • Коды с обнаружением ошибок,
  • Теория информации,
  • Коды с избыточностью,
  • Алгоритм Витерби
0% нашли этот документ полезным (0 голосов)
40 просмотров239 страниц

Inf 14

Учебник 'Теория информации и кодирования' В.Н. Думачева, изданный Воронежским институтом МВД России в 2012 году, представляет систематическое изложение курса, предназначенного для курсантов радиотехнического факультета. В книге рассматриваются ключевые темы, такие как энтропия, каналы связи, помехоустойчивое кодирование и квантовая информация. Учебник включает теоретические основы и практические задачи, способствующие подготовке специалистов в области информационной безопасности телекоммуникационных систем.

Загружено:

xorazmbtpj
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd

Затронутые темы

  • Коды Хэмминга,
  • Коды с минимальным расстоянием,
  • Пропускная способность каналов,
  • Системы связи,
  • Коды Рида-Соломона,
  • Поле Галуа,
  • Коды с обнаружением ошибок,
  • Теория информации,
  • Коды с избыточностью,
  • Алгоритм Витерби

ВОРОНЕЖСКИЙ ИНСТИТУТ МВД РОССИИ

Кафедра высшей математики

Думачев В.Н.

ТЕОРИЯ ИНФОРМАЦИИ
И КОДИРОВАНИЯ

Воронеж - 2012
УДК 519.72
Д82

Рассмотрены и одобрены на заседании кафедры высшей математики протокол №3


от 22.11.2011 г.
Рассмотрены и одобрены на заседании методического совета протокол №3 от
26.11.2011 г.

Д82 Думачев В.Н. Теория информации и кодирования - Воронеж:


Воронежский институт МВД России, 2012. – 200 с.

Учебник содержит систематическое изложение всего материала по


курсу "Теория информации и кодирования" и предназначен для вы-
полнения типового расчета, проведения практических занятий, лабо-
раторных работ и самоподготовки для курсантов радиотехнического
факультета, обучающихся по специальности 090302.65 - Информаци-
онная безопасность телекоммуникационных систем.

1203021300 - 39
Д 1(III) УДК 519.72
221 - 08

c Воронежский институт МВД России, 2012


Оглавление

1 Энтропия и информация 5
1.1 Энтропия и информация дискретных источников сообщений . . . . . 5
1.2 Энтропия непрерывных источников сообщений . . . . . . . . . . . . . 10
1.3 Условная энтропия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 Задачи информационного поиска . . . . . . . . . . . . . . . . . . . . . 20
1.5 Взаимная информация . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.6 Кодирование информации методом Шеннона . . . . . . . . . . . . . . 35
1.7 Избыточность сообщения . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2 Каналы связи 41
2.1 Пропускная способность каналов связи . . . . . . . . . . . . . . . . . . 41
2.2 Теоремы Котельникова и Шеннона . . . . . . . . . . . . . . . . . . . . 58
2.3 Теория массового обслуживания . . . . . . . . . . . . . . . . . . . . . . 61
2.3.1 Цепи Маркова . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.2 Работа телефонного коммутатора . . . . . . . . . . . . . . . . . 64
2.3.3 Система массового обслуживания с ожиданием . . . . . . . . . 72
2.4 Стандарт сотовой связи GSM . . . . . . . . . . . . . . . . . . . . . . . 74
2.5 Стандарты зписи CD и DVD . . . . . . . . . . . . . . . . . . . . . . . . 80

3 Теория помехоустойчивого кодирования 83


3.1 Коды Хэмминга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.2 Циклические коды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.2.1 Исправление 1 ошибки . . . . . . . . . . . . . . . . . . . . . . . 96
3.2.2 Исправление 2 ошибок . . . . . . . . . . . . . . . . . . . . . . . 102
3.3 Сверточные коды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.3.1 Блочное чередование . . . . . . . . . . . . . . . . . . . . . . . . 106
3.3.2 Теория автоматов . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.3.3 Сверточные коды . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.3.4 Коррекция ошибок сверточным кодом . . . . . . . . . . . . . . 114
3.4 Алгоритм Витерби . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.5 Турбокоды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.6 Вычисления в полях Галуа . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.7 Коды БЧХ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

3
4 Оглавление

3.7.1 Прямой алгебраический метод PGZ . . . . . . . . . . . . . . . . 142


3.7.2 Коды БЧХ над GF (23 ) . . . . . . . . . . . . . . . . . . . . . . . 144
3.7.3 Коды БЧХ над GF (24 ) . . . . . . . . . . . . . . . . . . . . . . . 148
3.7.4 Расширенный алгоритм Евклида . . . . . . . . . . . . . . . . . 157
3.8 Совершенные недвоичные коды . . . . . . . . . . . . . . . . . . . . . . 159
3.8.1 Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
3.8.2 Совершенный код в GF (22 ) . . . . . . . . . . . . . . . . . . . . . 159
3.8.3 Совершенный код в GF (23 ) . . . . . . . . . . . . . . . . . . . . . 161
3.9 Коды Рида-Соломона . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
3.9.1 Исправление 1 ошибки несовершенного кода [n, k]q = [7, 5]8 . . 164
3.9.2 Исправление 2 ошибок несовершенного кода [n, k]q = [7, 3]8 . . 170
3.10 Алгоритм Берлекемпа-Месси . . . . . . . . . . . . . . . . . . . . . . . . 179
3.11 Расширенный алгоритм Евклида для кода RS . . . . . . . . . . . . . . 181

4 Квантовая информация 185


4.1 Основы квантовых вычислений . . . . . . . . . . . . . . . . . . . . . . 185
4.2 Матрица плотности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
4.3 Редуцированные матрицы плотности . . . . . . . . . . . . . . . . . . . 204
4.4 Разложение Шмидта . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
4.5 Зацепленные квантовые состояния . . . . . . . . . . . . . . . . . . . . 219
4.6 Квантовые алгоритмы . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
4.6.1 Алгоритм Дойча . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
4.6.2 Квантовое плотное кодирование . . . . . . . . . . . . . . . . . . 225
4.6.3 Квантовая телепортация . . . . . . . . . . . . . . . . . . . . . . 229
4.7 Коррекция ошибок в квантовых каналах информации . . . . . . . . . 230
4.8 Клонирование квантовой информации . . . . . . . . . . . . . . . . . . 233
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Глава 1

Энтропия и информация

1.1 Энтропия и информация дискретных источни-


ков сообщений
Теорией информации называется наука, изучающая количественные закономерности,
связанные с получением, передачей, обработкой и хранением информации. Одной из
задач теории информации является отыскание наиболее экономных методов коди-
рования, позволяющих передать заданную информацию с помощью минимального
количества символов. Эта задача решается как при отсутствии, так и при наличии
искажений (помех) в канале связи.
Другая типичная задача теории информации ставится следующим образом: име-
ется источник информации (передатчик), непрерывно вырабатывающий информа-
цию, и канал связи, по которому эта информация передается в другую инстанцию
(приемник). Какова должна быть пропускная способность канала связи для того,
чтобы канал «справлялся» со своей задачей, т.е. передавал всю поступающую ин-
формацию без задержек и искажений?
Ряд задач теории информации относится к определению объема запоминающих
устройств, предназначенных для хранения информации, к способам ввода информа-
ции в эти запоминающие устройства и вывода ее для непосредственного использова-
ния.
Любое сообщение, с которым мы имеем дело в теории информации, представляет
собой совокупность сведений о некоторой физической системе. Очевидно, если бы
состояние физической системы было известно заранее, не было бы смысла передавать
сообщение. Сообщение приобретает смысл только тогда, когда состояние системы
заранее неизвестно, случайно.
Поэтому в качестве объекта, о котором передается информация, будем рассмат-
ривать некоторую физическую систему X, для которой событием будет возможность
оказаться в том или ином состоянии, т. е. систему, которой заведомо присуща какая-
то степень неопределенности. Интуитивно понятно, что если вероятность появления
события равна 1, то само появление этого события для нас информации никакой не

5
6 Глава 1. Энтропия и информация

несет (мы и так знали, что оно появится). Например, если кто то вам скажет, что
занятия в нашем институте начинаются в 9-00, то для вас это не будет новостью,
вероятность этого события равна 1 и вы не получите в этом сообщении никакой до-
полнительной информации о системе образования в нашем вузе. Рассмотрим другой
крайний случай: допустим, стало известно, что всем двоечникам в нашем ВУЗе будут
давать дополнительный отпуск и надбавку к стипендии. Вот это уже новость. Эту
новость все будут друг другу пересказывать, опубликуют в газетах, возможно даже
приедет телевидение. Ведь появление такого события очень маловероятно, поэтому
оно очень значимо с точки зрения информации и дает огромные знания относительно
того, как (оказывается) организован учебный процесс в нашем институте. Из этого
примера видно, что вероятность появления события должна играть ключевую роль
в формальном определении информации. В математике за меру информации прини-
мают величину  
1
I = log2 = − log2 p.
p
Заметим, что в теории информации используется двоичный (битовый) логарифм

log2 a

а при практических вычислениях на ЭВМ используется натуральный логарифм loge a =


ln a. Переход от натурального основания к битовому осуществляется по формуле
loge a ln a
log2 a = = .
loge 2 ln 2
Чтобы не загромождать вычисления лишними обозначениями, в дальнейшем мы бу-
дем везде пользоваться знаком ln, подразумевая при этом битовый логарифм (по
основанию 2).
Информация о системе дается знанием того, какое именно из состояний примет
данная система при проведении испытания и вычисляется по формуле

I = − ln p.

Для случайной величины x с плотностью f (x)

I(x) = − ln f (x).

Единица измерения информации называется бит (1 bit или 1 b). Бит – информация,
хранящаяся в 1 ячейке с двумя значениями (0,1):
x 0 1
p 0.5 0.5
Тогда  
1
I0 = − ln p0 = − log2 = log2 2 = 1 bit,
2
1.1. Энтропия и информация дискретных источников сообщений 7

 
1
I1 = − ln p1 = − log2 = log2 2 = 1 bit.
2

Пример 1.1. Какая информация содержится в сообщении о том, что монетка


упала гербом?
Решение. Вероятность того, что монетка упадет гербом, равна p = 21 . Поэтому,
проведение данного испытания дало нам

1
I = − ln p = − ln = ln 2 = 1 bit
2
т.е. 1 бит информации. N

Пример 1.2. В ящике 10 гранат, из которых 8 без взрывателя. Из ящика наудачу


выбирается 3 гранаты. Какое количество информации содержится в сообщении о том,
что все 3 выбранные гранаты оказались без взрывателя?
Решение. Определим вероятность выбора из ящика 3 гранат без взрывателя:

8 7 6 7
p= · · = = 0.467.
10 9 8 15
Количество информации в сообщении определяется по формуле
   
1 15
I = ln = ln = 1.1 bit. N
p 7

Пример 1.3. В группе 20 курсантов, среди которых 4 отличника, 6 хорошистов,


7 троечников, остальные – двоечники. По списку наудачу отобраны 5 курсантов.
Какое количество информации содержится в сообщении о том, что среди отобранных
курсантов 3 отличника, 1 хорошист и 1 троечник?
Решение. Приведем обозначения задачи в соответствие с формулой обобщен-
ной гипергеометрической вероятности. Согласно условию задачи: N=20. Определим
состав группы:

имеем выбираем
Отличники n1 = 4 m1 = 3
Хорошисты n2 = 6 m2 = 1
Троечники n3 = 7 m3 = 1
Двоечники n4 = 3 m4 = 0
Всего N=20 M=5

Вспоминая, что
n!
Cnm = ,
m!(n − m)!
8 Глава 1. Энтропия и информация

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


Cnm11 · Cnm22 · Cnm33 · Cnm44 C43 · C61 · C71 · C30 7
P = M
= 5
= = 0.011.
CN C20 17 · 19 · 2
Тогда количество информации есть
 
1
I = ln = − ln (P ) = − ln 0.011 = 6.528 bit. N
P

Задача 1.1.

1. В коробке 5 одинаковых деталей, причем 3 из них окрашены. Наудачу извлече-


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

2. В партии из 10 деталей имеется 8 стандартных. Наудачу отобраны 3 детали.


Какое количество информации содержится в сообщении о том, что среди них 1
бракованная.

3. В отделе работают 6 мужчин и 4 женщины. По табельным номерам наудачу


отобраны 7 человек. Какое количество информации содержится в сообщении о
том, что среди отобранных лиц окажутся 3 женщины.

4. На складе имеются 15 кинескопов, причем 10 из них изготовлены Львовским


заводом. Какое количество информации содержится в сообщении о том, что
среди 5 взятых наудачу кинескопов 3 окажутся Львовскими.
5. В группе 12 курсантов, среди которых 8 отличников. По списку наудачу ото-
браны 9 курсантов. Какое количество информации содержится в сообщении о
том, что среди отобранных курсантов 5 отличников.
6. В коробке 5 одинаковых деталей, причем 3 из них окрашены. Наудачу извлече-
ны 2 изделия. Какое количество информации содержится в сообщении о том,
что среди двух извлеченных изделий 1 окрашенное.
7. В конверте среди 100 фотокарточек находится одна разыскиваемая. Из конвер-
та наудачу извлечены 10 карточек. Какое количество информации содержится
в сообщении о том, что среди них окажется нужная.
8. В урне 7 белых и 5 черных шаров. Из урны вынимают сразу 5 шаров. Какое
количество информации содержится в сообщении о том, что 2 из них будут
белыми.
9. Среди 10 лотерейных билетов 3 выигрышных. Наудачу взяли 5 билетов. Ка-
кое количество информации содержится в сообщении о том, что среди них 2
выигрышных.
1.1. Энтропия и информация дискретных источников сообщений 9

10. В лифт 7 этажного дома сели 3 пассажира. Каждый независимо от других с


одинаковой вероятностью может выйти на любом (начиная со второго) этаже.
Какое количество информации содержится в сообщении о том, что все вышли
на разных этажах;

11. В лифт 7 этажного дома сели 3 пассажира. Каждый независимо от других с


одинаковой вероятностью может выйти на любом (начиная со второго) этаже.
Какое количество информации содержится в сообщении о том, что по крайней
мере двое сошли на одном этаже.

12. В урне 3 белых, 4 черных и 5 красных шаров. Из урны вынимают сразу три
шара. Какое количество информации содержится в сообщении о том, что все
шары будут разного цвета.

13. В урне 5 белых, 6 черных и 7 красных шаров. Из урны вынимают сразу три
шара. Какое количество информации содержится в сообщении о том, что все
шары будут белые.

14. Имеются изделия четырех сортов, причем число изделий каждого сорта равно
n1 = 2, n2 = 3, n3 = 1, n4 = 3. Для контроля наудачу берутся 5 изделий. Какое
количество информации содержится в сообщении о том, что среди них m1 = 2
первосортных, m2 = 1 второго, m3 = 0 третьего и m4 = 2 четвертого сорта.

15. ППС задержали 6 хулиганов, причем 3 из них без российского гражданства.


Наудачу вызывают 3 задержанных. Какое количество информации содержится
в сообщении о том, что среди них 2 будут без гражданства.

16. На складе из 10 деталей имеется 8 нелицензионных. Наудачу отобраны 3 детали.


Какое количество информации содержится в сообщении о том, что среди них 1
нелицензионная.

17. В отделе работают 8 мужчин и 4 женщины. По табельным номерам наудачу


отобраны 7 человек. Какое количество информации содержится в сообщении о
том, что среди отобранных лиц окажутся 4 женщины.

18. Через границу проезжает 15 КАМазов, причем 10 из них с наркотиками. Какое


количество информации содержится в сообщении о том, что среди 5 проверен-
ных наудачу КАМазов 3 окажутся с наркотиками.

19. В бандгруппе 15 боевиков, среди которых 8 вакхабитов. По списку наудачу


отобраны 9 боевиков. Какое количество информации содержится в сообщении
о том, что среди отобранных боевиков 5 вакхабитов.

20. В ящике 6 гранатометов, причем 3 из них российского производства. Наудачу


извлечены 2 гранатомета. Какое количество информации содержится в сообще-
нии о том, что среди двух извлеченных гранатометов 2 российских.
10 Глава 1. Энтропия и информация

21. В конверте среди 10 фотокарточек находится одна разыскиваемая. Из конверта


наудачу извлечены 5 карточек. Какое количество информации содержится в
сообщении о том, что среди них окажется нужная.
22. На позициях стояло 8 БМП и 5 БТР. Установкой ГРАД было поражено сразу 5
единиц боевой техники. Какое количество информации содержится в сообщении
о том, что 2 из них будут БМП.
23. Среди 10 олигархов было 3 депутата. Наудачу взяли 5 олигархов. Какое коли-
чество информации содержится в сообщении о том, что среди них 2 депутата.
24. В камере 3 таджика, 4 грузина и 6 азербайджанцев. Из камеры наудачу вызы-
вают трех человек. Какое количество информации содержится в сообщении о
том, что все вызываемые будут разной национальности.
25. В камере 3 таджика, 4 грузина и 6 азербайджанцев. Из камеры наудачу вызы-
вают трех человек. Какое количество информации содержится в сообщении о
том, что все вызываемые будут грузины.
26. Имеются изделия четырех сортов, причем число изделий каждого сорта равно
n1 = 4, n2 = 3, n3 = 5, n4 = 3. Для контроля наудачу берутся 5 изделий. Какое
количество информации содержится в сообщении о том, что среди них m1 = 1
первосортных, m2 = 1 второго, m3 = 0 третьего и m4 = 3 четвертого сорта.

1.2 Энтропия непрерывных источников сообщений


Поскольку возможные состояния x = (x1 , x2 , ..., xn ), случайно принимаемые систе-
мой, образуют полную группу несовместных событий, то в дальнейшем все изучае-
мые системы мы будем описывать некоторой случайной величиной x с плотностью
вероятностей X
f (x) = pi δ(x − xi ).
В этом случае, за меру информации, содержащейся в значении x непрерывной слу-
чайной величины x, принимают выражение

I = − ln f (x).

Напомним, что математическое ожидание (среднее значение) случайной величины x


вычисляется по формуле
Z
M(x) = hxi = x = x · f (x)dx.

Если случайная величина x является дискретной, то


Z XZ X
M(x) = x · f (x)dx = x · pi δ(x − xi )dx = xi pi = (x · p).
1.2. Энтропия непрерывных источников сообщений 11

Здесь мы воспользовались фильтрующим свойством δ-функции


Z
f (x)δ(x − a)dx = f (a).

Очевидно, сведения, полученные о системе, будут, вообще говоря, тем ценнее и


содержательнее, чем больше была неопределенность системы до получения этих све-
дений («априори»). В качестве меры априорной неопределенности системы (или слу-
чайной величины x) в теории информации применяется специальная характеристика,
называемая энтропией.

Энтропией H(x) называется среднее количество информации, содержащееся в


случайной величине x
Z
H(x) = M(I) = hIi = I · f (x)dx.

Подставляя сюда I = − ln f (x), для непрерывной случайной величины получим


Z
H(x) = − f · ln f dx,

а для дискретной: X
H(x) = − pi ln pi .
причем f ln f = 0, если f = 0.

Свойства энтропии.
1. H(x) ≥ 0;
2. H(x) ≤ ln |x|;
3. Если x и y независимы, то H(xy) = H(x) + H(y)
4. Обработка информации не приводит к увеличению энтропии

H(g(x)) ≤ H(x).

Энтропия является мерой неопределенности случайной величины x. Чем больше


энтропия, тем больше неопределенности в распределении случайной величины.
Условная энтропия случайной величины x относительно случайной величины y
дается выражениями X
H(x/y) = − p(x/y) ln p(x/y),
Z
H(x/y) = − f (x/y) ln f (x/y)dx.

Математическое ожидание условной энтропии M [H(x/y)] называется средней услов-


ной энтропией:
X XX
Hy (x) = My [H(x/y)] = p(y)H(x/y) = − p(y)p(x/y) ln p(x/y),
12 Глава 1. Энтропия и информация

ZZ
Hy (x) = − f (y)f (x/y) ln f (x/y)dxdy.

Количество информации о случайной величине x, которое может быть получе-


но в результате наблюдения значений y, измеряется разностью энтропии H(x) и ее
средней условной энтропии относительно y:

Iy (x) = H(x) − Hy (x).

Если после получения сообщения о дискретной случайной величине y значение x


полностью определено, то

Hy (x) = 0 и Iy (x) = H(x).

Если x и y независимы, то

H(x) = Hy (x) и Iy (x) = 0.

Отметим свойство симметрии условной информации

Iy (x) = Ix (y).

Энтропия H(x), как мы увидим в дальнейшем, обладает рядом свойств, оправды-


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

Определение 1. Среди всех законов распределения, ограниченных на интервале,


наибольшую энтропию имеет равномерное.

Пример 1.4. Энтропия равномерного, на конечном интервале, распределения


x = (x1 , x2 , ..., xn ) есть
H(x) = ln n.

Действительно, поскольку вероятность всех событий данного распределения одина-


кова и равна pi = n1 , то

n n n
X X 1 1 1 X 1
H(x) = − pi · ln pi = − · ln = · ln n 1 = · ln n · n = ln n. N
i=1 i=1
n n n i=1
n
1.2. Энтропия непрерывных источников сообщений 13

y Лемма 1. (Гиббс)
y=x-1 Для любых p и q, таких что
X X
p = 1, q=1
y=ln x
имеет место неравенство
X X
0 1 x p · ln p ≥ p · ln q.

Доказательство. Из рисунка легко увидеть,


-1 что логарифмическая функция обладает про-
стым свойством ln p ≤ p − 1.
Тогда, для выражения
  X   X
X q X q q−p X X
p · ln ≤ p· −1 = p· = (q − p) = q− p = 1 − 1 = 0,
p p p

получим p · ln pq ≤ 0, или
P

X q X
p · ln = p · (ln q − ln p) ≤ 0.
p
Отсюда следует утверждение леммы. 

Определение 1 эквивалентно следующей теореме.

Теорема 1. Энтропия произвольной случайной величины x = (x1 , x2 , ..., xn )


меньше соответствующей равномерной, распределенной на том же интервале:

H(x) ≤ ln n.

Доказательство. Обозначим распределение произвольной случайной величи-


ны через p = (p1 , p2 , ..., pn ) а распределение равномерной случайной величины,
через  
1 1 1
q = (q1 , q2 , ..., qn ) = , , ..., .
n n n
Тогда, по определению энтропии
X X
H(x) = − p · ln p ≤ − p · ln q
X 1 X X
= − p · ln = p · ln n = ln n · p = ln n · 1 = ln n. 
n
14 Глава 1. Энтропия и информация

Пример 1.5. Среди всех законов распределения непрерывной случайной вели-


чины x с одинаковой дисперсией D найти закон с максимальной энтропией.
Решение. По определению энтропии
Z
H = − f (x) ln f (x)dx → max .

Нам необходимо найти экстремаль функционала H(f ) с дополнительными ограни-


чениями:
1) условием нормировки Z
f (x)dx = 1,

2) ограничением на дисперсию
Z
(x − x)2 f (x)dx = D.

Записывая задачу Лагранжа в виде

F (f, λ, µ) = f ln f + λ · f + µ · (x − x)2 f

найдем экстремум функции:


∂F
= 0, ln f + 1 + λ + µ · (x − x)2 = 0,
∂f
откуда
2
f = e1−λ e−µ·(x−x) .
Из условия нормировки найдем
π
Z Z r
λ−1 µ·(x−x)2 λ−1
f (x)dx = e e dx = e =1
µ
или r
1−λ µ
e = ,
π
тогда r
µ −µ·(x−x)2
f= e .
π
Ограничение на дисперсию
Z
(x − x)2 f (x)dx = D

дает r Z
µ 2 1
(x − x)2 e−µ·(x−x) dx = =D
π 2µ
1.2. Энтропия непрерывных источников сообщений 15

или
1
µ= ,
2D
тогда r
1 (x−x)2
f= e− 2D . N
2πD
1. Среди всех законов распределения непрерывной случайной величины x, опре-
деленных на интервале a ≤ x ≤ b, найти закон распределения с максимальной
1
энтропией. f = b−a


2. Среди всех законов распределения непрерывной случайной величины x, опре-


деленных на полуоси 0 ≤ x < ∞, при заданном математическом ожидании
x 
M[x], найти закон распределения с максимальной энтропией. m1 e− m
3. Среди всех законов распределения непрерывной случайной величины x, при
заданном втором начальном моменте µ2 , найти закон распределения с макси-
мальной энтропией.
4. Среди всех законов распределения дискретной случайной величины x, найти
закон распределения с максимальной энтропией. p = n1

Пусть теперь случайные величины x = (x1 , x2 , ..., xn ) и y = (y1 , y2 , ..., yn ) име-


ют совместную функцию распределения p(x, y). Тогда совместная энтропия системы
случайных величин x и y будет записываться как
XX
H(x, y) = − p(x, y) · ln p(x, y).
x y

Аналогичное выражение для совместной плотности вероятностей непрерывных слу-


чайных величин имеет вид
ZZ
H(x, y) = − f (x, y) · ln f (x, y)dxdy.

Теорема 2. Для системы случайных величин x и y имеем


H(x, y) ≤ H(x) + H(y).
Здесь, равенство имеет место, если x и y - независимы.
Доказательство.
Используя редуцированные законы распределения
X X
p(x) = p(x, y), p(y) = p(x, y)
y x

получим выражения
X XX
H(x) = − p(x) · ln p(x) = − p(x, y) · ln p(x),
x y x
16 Глава 1. Энтропия и информация

X XX
H(y) = − p(y) · ln p(y) = − p(x, y) · ln p(y).
y x y

Тогда
XX
H(x) + H(y) = − p(x, y) · (ln p(x) + ln p(x))
y x
XX XX
= − p(x, y) · ln (p(x)p(y)) = − p(x, y) · ln q(xy).
y x y x

Здесь мы ввели обозначение q(xy) = p(x)p(y). Теперь, используя лемму Гиббса, по-
лучим
XX XX
H(x, y) = − p(x, y)·ln p(x, y) ≤ − p(x, y)·ln q(x, y) = H(x)+H(y). 
x y x y

Очевидным способом можно доказать обобщение этой теоремы

H(x1 , x1 , ..., xn ) ≤ H(x1 ) + H(x2 ) + ... + H(xn ),

где равенство имеет место, если (x1 , x1 , ..., xn ) - независимы.

1.3 Условная энтропия


Для системы двух случайных величин с совместной вероятностью p(x, y) можно вве-
сти условную вероятность p(x|y). В частности: p(x|yi ) - закон распределения случай-
ной величины x при условии, что y принимает конкретное значение yi (аналогично
для p(y|xi).
Таким образом, мы можем определить условную энтропию y данную при x = xi :
X
H(y|x = xi ) = H(y|xi) = − p(yk |xi ) · ln p(yk |xi ),
k

И среднюю условную энтропию y относительно x:


X X X
H(y|x) = p(xi )H(y|xi) = − p(xi ) p(yk |xi ) · ln p(yk |xi ).
i i k

Поскольку из теории вероятностей известно, что

p(y, x) = p(x)p(y|x),

мы получим
X XX
H(y|x) = p(xi )H(y|xi) = − p(xi , yk ) · ln p(yk |xi ).
i i k
1.3. Условная энтропия 17

Аналогично, можно определить энтропию


XXX
H(x, y, z) = − p(xi , yk , zn ) · ln p(xi , yk , zn )
i k n

и среднюю условную энтропию системы из трех случайных величин


XXX
H(yz|x) = − p(xi , yk , zn ) · ln p(xi , yk |xn ).
i k n

Очень часто бывает полезной следующая

Теорема 3.
H(x, y) = H(x) + H(y|x) = H(y) + H(x|y)
Доказательство. По определению
XX XX
H(x, y) = − p(x, y) · ln p(x, y) = − p(x, y) · ln p(x)p(y|x)
x y x y
XX XX
= − p(x, y) · ln p(x) − p(x, y) · ln p(y|x)
x y x y
X X X
= − p(x) · ln p(x) − p(x) p(y|x) · ln p(y|x) = H(x) + H(y|x). 
x x y

Теорема 4.
H(y|x) ≤ H(y)
Доказательство. По определению
H(x, y) = H(x) + H(y|x), H(y|x) = H(x, y) − H(x).
Но согласно теореме 2
H(x, y) ≤ H(x) + H(y)
или
H(x, y) − H(x) ≤ H(y),
тогда
H(y|x) = H(x, y) − H(x) ≤ H(y). 
Условная энтропия случайной величины x относительно случайной величины y
дается выражениями X
H(x/y) = − p(x/y) ln p(x/y),
Z
H(x/y) = − f (x/y) ln f (x/y)dx.

Математическое ожидание условной энтропии M [H(x/y)] называется средней услов-


ной энтропией:
X XX
Hy (x) = My [H(x/y)] = p(y)H(x/y) = − p(y)p(x/y) ln p(x/y),
18 Глава 1. Энтропия и информация

ZZ
Hy (x) = − f (y)f (x/y) ln f (x/y)dxdy.

Количество информации о случайной величине x, которое может быть получе-


но в результате наблюдения значений y, измеряется разностью энтропии H(x) и ее
средней условной энтропии относительно y:

Iy (x) = H(x) − Hy (x).

Если после получения сообщения о дискретной случайной величине y значение x


полностью определено, то

Hy (x) = 0 и Iy (x) = H(x).

Если x и y независимы, то H(x) = Hy (x) и Iy (x) = 0.


Отметим свойство симметрии условной информации

Iy (x) = Ix (y).

Пример 1.6. Производится стрельба по двум мишеням: по первой мишени


сделано 2 выстрела, по второй три. Вероятности попадания при одном выстреле
соответственно равны 1/2 и 1/4. Исход стрельбы по какой мишени является более
определенным.
Решение. Составляем законы распределения для случайных величин x и y -
числа попаданий по мишени:
x 0 1 2 y 0 1 2 3
p 1/4 1/2 1/4 p 27/64 27/64 9/64 1/64

Мерой неопределенности исхода стрельб является энтропия числа попаданий:


X
H=− pi ln pi

 
1 1 2 2 1 1
H1 = − · ln + · ln + · ln
4 4 4 4 4 4
1 1
= − (1 · ln 1 + 2 · ln 2 + 1 · ln 1) + ln 4 = − (0 + 2 + 0) + 2 = 1.5;
4 4 
27 27 27 27 9 9 1 1
H2 = − · ln + · ln + · ln + · ln
64 64 64 64 64 64 64 64
1
= ln 64 − (27 · ln 27 + 27 · ln 27 + 9 · ln 9 + 1 · ln 1)
64
∼ 1
= 6− (27 · 4.75 + 27 · 4.75 + 9 · 3.17 + 1 · 0) = 4.45.
64
Поскольку H1 < H2 - то исход стрельбы по первой мишени обладает большей
определенностью. N
1.3. Условная энтропия 19

Задача 1.2. В двух урнах по n шаров, причем в первой урне k1 красных, b1


белых и c1 черных, а во второй соответственно – k2 , b2 и c2 . Из каждой урны
вынимается по одному шару. Определить, для какой урны исход опыта является
более определенным.

№ k1 b1 c1 k2 b2 c2 № k1 b1 c1 k2 b2 c2
1 10 5 5 7 7 6 16 1 15 4 15 5 0
2 12 4 4 6 6 8 17 2 14 4 14 6 0
3 14 2 2 8 8 4 18 3 13 4 13 5 2
4 1 16 1 10 5 5 19 4 12 4 12 4 4
5 18 0 2 5 12 3 20 5 11 4 11 3 6
6 4 8 8 1 10 9 21 6 10 4 10 2 8
7 5 4 11 2 8 10 22 7 9 4 9 1 10
8 6 3 11 3 7 10 23 8 8 4 8 2 10
9 7 2 11 4 6 10 24 9 7 4 7 3 10
10 5 10 5 6 7 7 25 10 6 4 6 14 0
11 8 1 11 5 2 13 26 11 5 4 5 13 2
12 9 2 9 7 3 10 27 12 4 4 4 12 4
13 10 3 7 8 4 8 27 13 3 4 3 11 6
14 11 4 5 8 5 7 29 14 2 4 2 10 8
15 5 5 10 7 6 7 30 15 1 4 1 9 10

Дополнительные упражнения

1. В правильный n-угольник путем соединения середин его соседних сторон впи-


сан другой правильный n-угольник. Точка, поставленная внутри данного много-
угольника может оказаться внутри или вне вписанного многоугольника. Опре-
делить. а) энтропию опыта; б) значение n, при котором энтропия максимальна.
(Pn = cos2 π/n)

2. Вероятность появления события при одном испытании равна p. Испытания по-


вторяются до первого появления события. Найти  энтропию числа испытаний.
(p ln p+q ln q)
а) p = 1/2; б) в общем случае. H = − p

3. Определить энтропию случайной величины, подчиненной биноминальному за-


кону распределения: а) p = 1/2, n = 2; б) в общем случае.

4. Определить энтропию непрерывной случайной величины подчиненной равно-


мерному закону распределения на (a, b). (ln(b − a))

5. Определить энтропию непрерывной случайной величины подчиненной нормаль-


ному закону распределения.
20 Глава 1. Энтропия и информация

1.4 Задачи информационного поиска


Энтропия H – удобная мера неопределённости законов распределения вероятностей,
особенно в тех случаях, когда распределения являются асимметричными, многовер-
шинными и когда использование таких числовых характеристик, как среднее значе-
ние, дисперсия и моменты высших порядков, теряет всякую наглядность.
Приведем выражения для энтропии некоторых дискретных законов распределе-
ния вероятностей:
Биномиальный Pn (k) = Cnk pk q n−k
n−1
X
H(x) = −n[p log p + q log q] − − Cnk pk q n−k ln Cnk
k=1

λk
Пуассона Pn (k) = k!
e−λ

e X λk −λ
H(x) = λ ln + e ln(k!)
λ k=1 k!

Равномерный Pn (k) = 1
n
H(x) = ln n
k 1(1+α)...[1+(k−1)α]
Полиа Pn (k) = P0 λ
1+αλ
× k!

1 + αλ
H(x) = −λ ln λ + ln(1 + αλ)
α
∞  k
X λ 1(1 + α)...[1 + (k − 1)α] 1(1 + α)...[1 + (k − 1)α]
− P0 × ln
k=1
1 + αλ k! k!

Особенно эффективным является использование метода расчета энтропии при


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

Пример 1.7. Имеется 3 монеты одного достоинства; 1 из них фальшивая. Какое


наименьшее число взвешиваний на рычажных весах без гирь, позволит обнаружить
фальшивую монету и выяснить, легче она или тяжелее чем остальные?
Решение. Каждая из 3 монет может оказаться фальшивой и быть при этом
тяжелее или легче остальных. Таким образом имеется N = 2 · 3 = 6 возможных
исходов. Поэтому выбор отдельно взятой монеты дает информацию, равную
1 1
I = − ln p = − ln = − ln = ln 6 ≈ 2.585 bit.
N 6
1.4. Задачи информационного поиска 21

Каждое взвешивание имеет 3 исхода: перевешивает левая чаша, правая чаша и


равновесие. Поэтому произвольное единичное взвешивание дает информацию
1
I0 = − ln = ln 3 ≈ 1.6 bit.
3
Следовательно, минимальное число взвешиваний не может быть меньше, чем
I ln 6 2.585
n= = = ≈ 1.631 ≈ 2,
I0 ln 3 1.6
т.е. оно не меньше двух.
Схема решения этой задачи следующая.
Положим на обе чашки по 1 монетке.

1. Если весы остались в равновесии, то фальшивая монета осталась одна на столе и


нам необходимо еще одно взвешивание чтобы определить легче она или тяжелее
настоящей.

2. Если весы не в равновесии, то мы меняем монету с любой чашки на настоящую.

(a) Если весы в равновесии – то фальшивая на столе.


(b) Если весы не в равновесии – то фальшивая осталась на весах.

0 0 1

1 0 0 0 1 0

0 0 1 0 0 1
N

Пример 1.8. Имеется 4 монеты одного достоинства; 1 из них фальшивая. Какое


наименьшее число взвешиваний на рычажных весах без гирь, позволит обнаружить
фальшивую монету и выяснить, легче она или тяжелее чем остальные?
Решение. Каждая из 4 монет может оказаться фальшивой и быть при этом
тяжелее или легче остальных. Таким образом имеется N = 2 · 4 = 8 возможных
исходов. Поэтому выбор отдельно взятой монеты дает информацию, равную
1 1
I = − ln p = − ln = − ln = ln 8 ' 3 bit.
N 8
Каждое взвешивание имеет 3 исхода: перевешивает левая чаша, правая чаша и
равновесие. Поэтому произвольное единичное взвешивание дает информацию
1
I0 = − ln = ln 3 ' 1.6 bit.
3
22 Глава 1. Энтропия и информация

Следовательно, минимальное число взвешиваний не может быть меньше, чем

I ln 8 3
n= = = ≈ 1.893 ' 2,
I0 ln 3 1.6

т.е. оно не меньше двух (с точки зрения теории информации). К сожалению, пока не
известен алгоритм решения этой задачи с помощью 2-ух взвешиваний. N

Пример 1.9. (Для продвинутых пользователей.) Теперь докажем, что ре-


шение предыдущей задачи с помощью 2-ух взвешиваний невозможно. Для этого вы-
числим реальное количество информации, получаемое нами при первом взвешива-
нии. Оно зависит от стратегии взвешивания. Мы можем положить на обе чашки
весов по 2 монеты и по 1 монете. Напомним, что I0 = ln 3 ' 1.585 bt это макси-
мальная информация о системе, которую мы можем получить с помощью одного
взвешивания.
Рассмотрим 1 стратегию. Пусть x - положение чашки весов при взвешивании
x = (−1; 0; 1). Поскольку при первом взвешивании на обе чашки положено по 2
монеты, то весы не смогут остаться в равновесиии и мы имеем три возможные исхода
с вероятностями:
1) x = −1 - перевесила левая чашка, p(-1)=1/2;
2) x = 0 - чашки остались в равновесии, p(0)=0;
3) x = 1 - перевесила правая чашка, p(1)=1/2.
Построим таблицу распределения случайной величины x

x −1 0 1
p 1/2 0 1/2

и найдем ее энтропию
 
1 1 1 1
H=− ln + 0 · ln 0 + ln = ln 2 = 1 bt.
2 2 2 2

Т.е. мы получили 1 bt. информации, а энтропия системы была 3 bt. Т.е. с помощью
взвешивания мы уменьшили неопределенность системы до 2 bt. и у нас осталось еще
одно взвешивание, которое в идеале может дать только ln 3 ' 1.585 bt. Очевидно что
оставшегося взвешивания нам недостаточно для решения задачи.
Рассмотрим другую стратегию. Положим на обе чашки по 1 монете. Тогда ре-
зультат взвешивания дает три возможных исхода с вероятностями:
1) x = −1 - перевесила левая чашка, p(-1)=1/4;
2) x = 0 - чашки остались в равновесии, p(0)=1/2;
3) x = 1 - перевесила правая чашка, p(1)=1/4.
Построим таблицу распределения случайной величины x

x −1 0 1
p 1/4 1/2 1/4
1.4. Задачи информационного поиска 23

и найдем ее энтропию
 
1 1 1 1 1 1
H=− ln + ln + ln = 1.5 bt.
4 4 2 2 4 4
Т.е. нам осталось получить еще 1.5 bt. информации о системе с помощью одного
оставшегося взвешивания. В принципе, это возможно, поскольку при удаче одно взве-
шивание может нам дать ln 3 ' 1.585 bt. информации.
Если в результате первого взвешивания одна из чашек перевесила, то мы точно
знаем, что на столе лежат настоящие монеты. Меняя одну любую монету на весах с
настоящей мы получим таблицу распределения для второго взвешивания
x −1 0 1
p 1/4 1/2 1/4
с энтропией
H = 1.5 bt.
Т.е. задача решена.
Однако, если в результате первого взвешивания чашки весов остались в равно-
весии, то фальшивая монета осталась на столе. Но для того, чтобы определить ее
необходимо
I ln 4
n= = ≈ 1.262 > 1,
I0 ln 3
т.е. больше одного взвешивания1 . N
Пример 1.10. Имеется 5 монет одного достоинства; 1 из них фальшивая. Какое
наименьшее число взвешиваний на рычажных весах без гирь, позволит обнаружить
фальшивую монету и выяснить, легче она или тяжелее чем остальные?
Решение. Каждая из 5 монет может оказаться фальшивой и быть при этом
тяжелее или легче остальных. Таким образом имеется N = 2 · 5 = 10 возможных
исходов. Поэтому выбор отдельно взятой монеты дает информацию, равную
1 1
I = − ln p = − ln
= − ln = ln 10 ≈ 3.322 bit.
N 10
Каждое взвешивание имеет 3 исхода: перевешивает левая чаша, правая чаша и
равновесие. Поэтому произвольное единичное взвешивание дает информацию
1
I0 = − ln= ln 3 ≈ 1.6 bit.
3
Следовательно, минимальное число взвешиваний не может быть меньше, чем
I ln 10 3.322
n= = = ≈ 2.096 < 3,
I0 ln 3 1.6
т.е. оно не меньше трех.
Схема решения этой задачи следующая. Положим на обе чашки по 1 монетке.
1
Мы сможем найти фальшивую монету, но не сможем определить легче она или тяжелее насто-
ящих.
24 Глава 1. Энтропия и информация

1. Если весы остались в равновесии, то фальшивая монета осталась среди 3 подо-


зрительных на столе и нам достаточно еще 2 взвешиваний чтобы ее идентифи-
цировать (см. задачу о 3 монетах).

2. Если весы не в равновесии, то мы меняем монету с любой чашки на настоящую


со стола.

(a) Если весы в равновесии – то фальшивая на столе.


(b) Если весы не в равновесии – то фальшивая осталась на весах.

0 0 0 0 1

0 0 1 0 0 0 1 0

0 0 1 0 0 1 N

Пример 1.11. Имеется 6 монет одного достоинства; 1 из них фальшивая. Какое


наименьшее число взвешиваний на рычажных весах без гирь, позволит обнаружить
фальшивую монету и выяснить, легче она или тяжелее чем остальные?
Решение. Минимальное число взвешиваний не может быть меньше, чем

I ln 12
n= = = log3 12 ≈ 2.262 < 3,
I0 ln 3
т.е. оно не меньше трех.
Схема решения этой задачи следующая.
Определим количество монет которое необходимо положить на весы при первом
взвешивании, т.е. рассчитаем стратегию взвешивания используя методы теории ин-
формации. Чтобы число взвешиваний было наименьшим, каждое взвешивание долж-
но давать наибольшее количество информации, т.е. исход взвешивания должен обла-
дать наибольшей энтропией. Введем случайную величину x положение чашки весов
при взвешивании x = (−1; 0; 1).
Пусть при первом взвешивании на обе чашки положено по i монет. При этом
возможны три исхода:

1. x = −1 - перевесила левая чашка;

2. x = 0 - чашки остались в равновесии;

3. x = 1 - перевесила правая чашка;


1.4. Задачи информационного поиска 25

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

x −1 0 1
i=1 p 1/6 4/6 1/6
i=2 p 2/6 2/6 2/6
i=3 p 3/6 0 3/6

Чтобы взвешивание дало наибольшую информацию, распределение вероятностей


исходов должно обладать наибольшей энтропией, чему соответствует равенство всех
вероятностей исходов (равномерный закон распределения x). В нашем случае мак-
симальной энтропией обладает распределение при i = 2.
При первом взвешивании на каждую чашку весов следует положить по 2 монеты.
Далее рассмотрим отдельно случаи:

1. Если весы остались в равновесии, то на весах мы имеем 4 настоящих, а фаль-


шивая монета осталась среди 2 подозрительных на столе и нам достаточно еще
2 взвешиваний чтобы ее идентифицировать, (см. задачу о 3 монетах).

2. Если весы не в равновесии, то мы берем 2 монеты с одной из чашек и взвеши-


ваем их.

(a) Если весы в равновесии – то фальшивая на столе и мы знаем ее вес. Одним


взвешиванием мы ее идентифицирум.
(b) Если весы не в равновесии – то фальшивая осталась на весах и по преды-
дущему взвешиванию мы знаем ее вес (больше или меньше настоящей).
Одним взвешиванием мы ее идентифицирум. N

Пример 1.12. Имеется 12 монет одного достоинства; 11 из них имеют одинако-


вый вес, а одна – фальшивая. Какое наименьшее число взвешиваний на рычажных
весах без гирь, позволит обнаружить фальшивую монету и выяснить, легче она или
тяжелее чем остальные?
Решение. Каждая из 12 монет может оказаться фальшивой и быть при этом
тяжелее или легче остальных. Таким образом имеется N = 2 · 12 = 24 возможных
исхода. Поэтому выбор отдельно взятой монеты дает информацию, равную

1 1
I = − ln p = − ln = − ln = ln 24 ≈ 4.6 bit.
N 24
Каждое взвешивание имеет 3 исхода: перевешивает левая чаша, правая чаша и
равновесие. Поэтому произвольное единичное взвешивание дает информацию

1
I0 = − ln = ln 3 ≈ 1.6 bit.
3
26 Глава 1. Энтропия и информация

Следовательно, минимальное число взвешиваний не может быть меньше, чем


I ln 24 4.6
n= = = ≈ 2.875 ≈ 3,
I0 ln 3 1.6
т.е. оно не меньше трех.
Напомним решение этой задачи классическим методом дискретной математики.
Для этого предлагается стратегия последовательного парного разбиения с

ln 12 ≈ 3.57 ∼
=4

взвешиваниями:

1. ложем на обе чашки по 6 монет;

2. ложем на обе чашки по 3 монеты;

3. ложем на обе чашки по 1 монете;

4. определяем вес монеты (легче или тяжелее настоящей).

Теперь рассчитаем стратегию взвешивания используя методы теории информа-


ции. Чтобы число взвешиваний было наименьшим, каждое взвешивание должно да-
вать наибольшее количество информации, т.е. исход взвешивания должен обладать
наибольшей энтропией. Введем случайную величину x положение чашки весов при
взвешивании x = (−1; 0; 1).
Пусть при первом взвешивании на обе чашки положено по i монет. При этом
возможны три исхода:

1. x = −1 - перевесила левая чашка;

2. x = 0 - чашки остались в равновесии;

3. x = 1 - перевесила правая чашка;

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

xi −1 0 1
pi 12i 12−2i
12
i
12

Чтобы взвешивание дало наибольшую информацию, распределение вероятностей


исходов должно обладать наибольшей энтропией, чему соответствует равенство всех
вероятностей исходов (равномерный закон распределения x). Отсюда
12 − 2i i
= , или i = 4.
12 12
Взвешивание 1: при первом взвешивании на каждую чашку весов следует поло-
жить по 4 монеты.
1.4. Задачи информационного поиска 27

Далее рассмотрим отдельно случаи:


2.1. когда при первом взвешивании чашки весов остались в равновесии;
2.2. когда одна из чашек перевесила другую.
В случае 2.1. имеем 8 настоящих и 4 подозрительных монет. Для второго взвеши-
вания мы можем положить на правую чашку i подозрительных монет, а на левую
k подозрительных и i − k настоящих. Все возможные значения, соответствующие
вероятности исходов и энтропию случайной величины x сведем в таблицу

№ i k p1 p2 p3 Hik [x]
1 1 1 0.25 0.5 0.25 0.452
2 1 0 0.125 0.75 0.125 0.320
3 2 2 0.5 0 0.5 0.301
4 2 1 0.375 0.25 0.375 0.470
5 2 0 0.25 0.5 0.25 0.452
6 3 1 0.5 0 0.5 0.301
7 3 0 0.375 0.25 0.375 0.470
8 4 0 0.5 0 0.5 0.301

Наибольшую энтропию дают опыты 4 и 7. Выберем для примера взвешивание 7,


т.е. на первую чашку ложем 3 подозрительные монеты, а на другую 3 настоящие.
Здесь возможны 2 случая:
2.1.1. если весы окажутся в равновесии, то фальшивая монета останется одна и необ-
ходимо дополнительное 3 взвешивание для определения ее веса;
2.1.2. если чаша перевесила, то вес фальшивой монеты определен, из 1 чаши выби-
рается 2 монеты и на 3 взвешивании она обнаруживается.
В случае 2.2., когда одна из чашек перевесила другую (для определенности -
левая), монеты распределяются следующим образом:

1. 4 левых (группа L);

2. 4 правых (группа R);

3. 4 настоящих (группа O).

При втором взвешивании мы можем положить:

1. на левую чашку весов - i1 левых и i2 правых;

2. на правую чашку весов - j1 левых, j2 правых и остальные настоящие.

Сравнивая все возможные 25 вариантов выберем из них случай с максимальной эн-


тропией. Например, для второго взвешивания подойдет:

i1 = 1, i2 = 2, j1 = 0, j2 = 2.

Здесь тоже возможны 3 случая:


28 Глава 1. Энтропия и информация

а) весы в равновесии;
б) перевешивает левая чашка;
в) перевешивает правая чашка.
В случае а) - равновесия мы точно знаем вес фальшивки (тяжелая фальшивка), а
сама фальшивка находится в трех оставшихся монетах группы L. Третьего взвеши-
вания в составе 1:1 из монет группы L нам достаточно, чтобы ее обнаружить.
В случае б): Третье взвешивание есть разбиение j2 = 2 в составе 1:1 на обе чашки
весов:

1. Если весы в равновесии, то i1 = 1 - тяжелая фальшивка из группы L;

2. Если перевесила левая чашка, то из j2 = 2 правая – легкая фальшивка R;

3. Если перевесила правая чашка, то из j2 = 2 левая – легкая фальшивка R.

В случае в): легкая фальшивка из группы R находится в i2 = 2. Третье взвешива-


ние есть разбиение i2 = 2 в составе 1:1 на обе чашки весов и определение фальшивки
по верхней чашке. N

Дополнительные упражнения

1. Имеется N монет одного достоинства, из которых одна фальшивая, несколь-


ко легче остальных. Сколькими взвешиваниями на рычажных весах без гирь
можно обнаружить фальшивую монету? При каком наибольшем N достаточно
пяти взвешиваний? (3k−1 < 2N < 3k−1 )

2. Неисправная система находится в одном из 5 различных состояний, которым


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

№ проверки № состояния
1 2 3 4 5
1 0 0 0 0 1
2 0 0 0 1 1
3 0 1 1 0 0
4 1 0 1 0 0
5 1 0 1 0 1
6 1 1 1 0 0
7 1 1 1 1 0

Составить последовательность из минимального числа проверок, позволяющих опре-


делить вид неисправности системы.
1.5. Взаимная информация 29

1.5 Взаимная информация


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

I(x|y) = H(x) − H(x|y), I(y|x) = H(y) − H(y|x),

I(x|y) = H(x) + H(y) − H(x, y) = I(y|x).


Рассмотрим следующий эксперимент.

Пример 1.13. Во время эксперимента в течение 8 дней проводилось измерение


случайной величины x - отклонение курса доллора от значения в 33 рубля/доллар.
Данные измерения показаны в таблице.
№ измерения 1 2 3 4 5 6 7 8
значение x 0 0 0 1 0 0 0 1
Одновременно проводилось измерение случайной величины y - отклонение дневной
температуры на улице от 0◦ С:
№ измерения 1 2 3 4 5 6 7 8
значение y 0 0 0 0 0 1 1 1
Определить количество информации относительно y которое мы получим измеряя
x.
Решение. Другими словами нам необходимо определить взаимную информацию:

I(x|y) = H(x) + H(y) − H(x, y).

Запишем данные измерения в одну таблицу


значение x 0 0 0 1 0 0 0 1
значение y 0 0 0 0 0 1 1 1
и подсчитаем количество совпадений значений x и y:
x Py
PP
P
P 0 1
0 4 2
1 1 1

Если теперь разделить все данные в таблице на 8, то мы получим таблицу совмест-


ного распределения случайных величин x и y:
x PP
yP
PP
0 1
0 1/2 1/4
1 1/8 1/8
30 Глава 1. Энтропия и информация

Взяв суммы по строкам и столбцам найдем редуцированные законы распределе-


ний случайных величин x и y:
PP
x PP
yP 0 1 px
0 1/2 1/4 3/4
1 1/8 1/8 1/4
py 5/8 3/8 1

Вычисляем энтропию
 
X 3 3 1 1
H(x) = − px · ln px = − ln + ln = 0.811
4 4 4 4
 
X 5 5 3 3
H(y) = − py · ln py = − ln + ln = 0.954
8 8 8 8
 
X 1 1 1 1 1 1 1 1
H(x, y) = − pxy · ln pxy = − ln + ln + ln + ln = 1.75
2 2 8 8 4 4 8 8
и взаимную информацию.

I(x|y) = H(x) + H(y) − H(x, y) = 0.811 + 0.954 − 1.75 = 0.015(bit). 

Пример 1.14. (Ash [12]) Имеются две монеты. Одна из монет правильная, а у
другой – два герба. Монета выбирается случайным образом, дважды подбрасывает-
ся, а результат записывается. Спрашивается, как много информации относительно
идентичности монет мы можем получить, подсчитывая количество выпавших орлов?
Очевидно, что количество орлов должно нам что-то сообщить о природе монеты.
Решение. Обозначим через x – случайную величину, определяющую выбранную
монету (x = 0 - правильная, x = 1 - фальшивая). Вероятность выбора правильной
или фальшивой монеты одинакова: p(x = 0) = p(x = 1) = 1/2.
Обозначим через y количество выпавших гербов при двух подбрасываниях вы-
бранной монеты. Поскольку y зависит от того какую монету мы взяли (правильную
или фальшивую), мы получим два условных закона распределения

1/4
y 0 1 2 0
x=0:
p 1/4 1/2 1/4 1/2 0
1/2

y 0 1 2 1
x=1: 1/4
p 0 0 1/2
1/2 1
1 2
1.5. Взаимная информация 31

Совместный закон распределения получим по формуле полной вероятности

p(x, y) = p(x)p(y|x)

или
1 1 1 1 1 1 1 1 1
   
 2·4 ·
2 2
·  
2 4   8 4 8 
p(x, y) =  = .
 
 1 1 1   1 
·0 ·0 ·1 0 0
2 2 2 2
Складывая вероятности по строкам и столбцам, получим редуцированные (марги-
нальные) законы распределения p(x) и p(y):

xy 0 1 2 p(x)
0 1/8 1/4 1/8 1/2
1 0 0 1/2 P1/2
p(y) 1/8 1/4 5/8 =1

Средняя взаимная информация вычисляется по формуле

I(x|y) = H(x) + H(y) − H(x, y),

где
X 1 1 1 1 1 1
H(x) = − p(x) ln p(x) = − · ln − · ln = · 1 + · 1 = 1 bit,
x
2 2 2 2 2 2
X 1 1 1 1 5 5 3 2 0.678
H(y) = − p(y) ln p(y) = − · ln − · ln − · ln = + + = 1.3 bit,
y
8 8 4 4 8 8 8 4 8
XX
H(x, y) = − p(x, y) ln p(x, y)
x y
1 1 1 1 1 1 1 1
= − · ln − · ln − · ln − 0 · ln 0 − 0 · ln 0 − · ln
8 8 4 4 8 8 2 2
3 2 3 1 14
= + + +0+0+ = = 1.75 bit.
8 4 8 2 8
Тогда
I(x|y) = H(x) + H(y) − H(x, y) = 1 + 1.3 − 1.75 = 0.55 bit. N

Задача 1.3. Найти средне количество информации, доставляемое случайной


величиной x относительно y.

1. Дважды бросается игральная кость. Случайные величины x - появление 6, y -


появление четной цифры.
32 Глава 1. Энтропия и информация

2. Дважды бросается игральная кость. Случайные величины x - появление 5, y -


появление четной цифры.

3. Дважды бросается игральная кость. Случайные величины x - появление 4, y -


появление четной цифры.

4. Дважды бросается игральная кость. Случайные величины x - появление 5, y -


появление четной цифры.

5. Дважды бросается игральная кость. Случайные величины x - появление 6, y -


появление четной цифры.

6. Дважды бросается игральная кость. Случайные величины x - появление 1, y -


появление нечетной цифры.

7. Дважды бросается игральная кость. Случайные величины x - появление 6, y -


появление нечетной цифры.

8. Дважды бросается игральная кость. Случайные величины x - появление 5, y -


появление нечетной цифры.

9. Дважды бросается игральная кость. Случайные величины x - появление 4, y -


появление нечетной цифры.

10. Дважды бросается игральная кость. Случайные величины x - появление 5, y -


появление нечетной цифры.

11. Дважды бросается игральная кость. Случайные величины x - появление 6, y -


появление нечетной цифры.

12. Дважды бросается игральная кость. Случайные величины x - появление 1, y -


появление нечетной цифры.

13. Один раз подбрасывается игральная кость. Случайные величины x - появление


четной цифры, y - появление цифры кратной трем.

14. Иван и Петр наудачу извлекают по одному шару из урны, содержащей 6 бе-
лых и 4 черных шара. Иван извлекает шар первым. Случайные величины: x -
количество белых шаров у Ивана, y - количество белых шаров у Петра

15. Решить предыдущую задачу при условии, что шары извлекаются с возвраще-
нием.

16. Из коробки, в которой 4 красных, 2 синих и 3 зеленых карандаша, наудачу


извлекли 3 карандаша. Пусть x – число красных, а y – число синих карандашей
среди извлеченных.
1.5. Взаимная информация 33

17. 10 студентов написали контрольную работу по математике, причем 4 из них


получили оценку «отлично», 3 – «хорошо», а остальные «удовлетворительно».
Для разбора в группе случайным образом отобрано 4 работы. Пусть x – число
отличных, а y – число хороших работ среди отобранных.

18. 2 стрелка независимо друг от друга сделали по 2 выстрела по одной и той же


мишени. Вероятность попадания для первого стрелка 0,8, а для второго – 0,6.
Пусть x – число попаданий первого стрелка, а y –число попаданий второго.

19. В условиях предыдущей задачи пусть y – общее число попаданий в мишень.

20. Случайная величина x принимает значения (0; 1; 2) с вероятностями (0.3; 0.7; 0.1),
а независящая от нее случайная величина y - значения (−1; 0; 1) с вероятно-
стями (0.3; 0.5; 0.2).

21. По цели производится два независимых выстрела. Вероятность попадания в


цель при первом выстреле равна p1 , при втором p2 . Случайные величины: x -
число попаданий при первом выстреле, y - число попаданий при втором вы-
стреле.

22. Из урны, содержащей 6 белых и 4 черных шара наудачу извлекают 2 шара без
возвращения. Случайные величины: x - число извлеченных белых шаров, y -
число черных шаров в выборке.

23. Число x выбирается случайным образом из множества целых чисел (1, 2, 3).
Затем из того же множества выбирается наудачу число y, большее первого или
равное ему.

24. Бросается два раз игральная кость. Случайные величины x - появление ше-
стерки, y - появление единицы.

25. Два раза бросается монета. Случайные величины x - появление орла, y - появ-
ление решки.

26. Три раза бросается монета. Случайные величины x - появление орла, y - появ-
ление решки.

27. Бросается один раз игральная кость. Если на грани выпадает цифра 1, 2, 3 или
4, то монета бросается 1 раз. В противоположном случае – монета бросается 2
раза. Случайные величины: x - появление цифры 1,2,3 или 4, y – количество
выпавших орлов на монете.
34 Глава 1. Энтропия и информация

Пример 1.15. Источник сообщений вырабатывает ансамбль независимых сим-


волов x с частотами n. Вычислить энтропию источника.
x 1 2 3 4
n 25 40 0 35
Решение. Поскольку источник сообщений выработал всего
X
N= n = 25 + 40 + 0 + 35 = 100
символов, то вероятность появления определенного символа равна
ni ni
pi = P = ,
n N
и мы получаем таблицу распределения случайной величины х вырабатываемой ис-
точником
x 1 2 3 4
p 1/4 2/5 0 7/20
По определению, энтропия – это среднее количество информации содержащееся
в случайной величине
X 1 X
H = M(I) = ln · p = − p · ln p.
p
Для нашей задачи, получим
 
X 1 1 2 2 7 7
H=− p · ln p = − · ln + · ln + 0 · ln(0) + · ln = 1.5589 bit. N
4 4 5 5 20 20
Задача 1.4. Вычислить энтропию источника сообщений, который вырабатывает
ансамбль независимых символов x с частотами n.

№ n № n
1 23 2 1 15 3 2 1 1 16 4 1 2 0 2 0 0 4
2 2 20 1 20 3 0 1 5 17 2 1 1 13 2 2 5 22
3 1 1 2 3 11 1 23 2 18 23 2 1 15 1 1 9 3
4 6 1 0 3 20 1 2 20 19 2 23 1 12 3 9 1 1
5 2 1 1 3 15 1 21 2 20 1 1 1 2 3 11 11 23
6 2 21 1 14 3 1 1 2 21 1 1 6 3 13 2 23 2
7 2 0 1 13 3 2 3 21 22 2 2 1 14 2 2 5 22
8 2 1 2 3 14 1 23 2 23 3 20 1 20 3 4 3 1
9 1 0 6 3 20 2 21 2 24 3 20 12 20 3 4 3 1
10 2 20 2 20 3 6 0 1 25 3 20 12 20 3 4 3 3
11 2 0 1 13 3 2 5 22 26 23 2 1 15 3 2 1 1
12 6 3 20 2 23 2 2 0 27 2 20 1 20 3 0 1 5
13 20 2 22 2 3 6 0 2 28 6 1 0 3 20 1 2 20
14 2 2 1 15 3 1 5 25 29 2 0 1 13 3 2 3 21
15 23 2 1 16 1 7 3 1 30 2 1 2 3 14 1 23 2
1.6. Кодирование информации методом Шеннона 35

1.6 Кодирование информации методом Шеннона


При передаче информации во многих случаях выгодно первоначальное сообщение
источника представить при помощи другого алфавита путем кодирования.
Характеристиками кода являются значность и его основание. Значность кода n
– число символов в кодовом слове (кодовой комбинации), а основание L – число
различных символов кода. Наиболее распространенны двоичные (бинарные) коды с
основанием L = 2. Равномерным является такой код, у которого значность кода для
всех кодовых слов одинакова (например, код Бодо).
При кодировании сообщений, передаваемых по каналам связи без помех, необхо-
димо выполнить два условия:

1. кодовые слова должны быть различимы и однозначно связаны с соответствую-


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

Код, удовлетворяющий второму из этих условий, называется оптимальным.


Если x = {xi }, i = 1, 2, ..., N - ансамбль взаимно независимых сообщений с апри-
орными вероятностями p(xi ), a y = {yk }, k = 1, 2, ..., L - ансамбль символов кода
и L < N, то число кодовых слов по n символов в каждом слове M = Ln . При
Ln ≥ N, где n – наименьшее целое число, для которого выполняется это неравен-
ство, ансамбль сообщений x = {xi } можно однозначно закодировать при помощи N
различных кодов слов по n символов в слове.

Пример 1.16. Закодировать по методу Шеннона-Фено сообщение из N = 24


символов:

математика_-_царица_наук

Решение. Выпишем в таблицу частоты ni и вероятности pi = ni


N
появления каждой
буквы сообщения:
x М А Т Е И К Ц Р Н У _ -
n 2 6 2 1 2 2 2 1 1 1 3 1
p 0.08 0.25 0.08 0.04 0.08 0.08 0.08 0.04 0.04 0.04 0.15 0.04
Найдем энтропию сообщения
X
H(x) = pi ln pi = 0.08 · ln 0.08 + 0.25 · ln 0.25 + 0.08 · ln 0.08 + 0.04 · ln 0.04 +
+ 0.08 · ln 0.08 + 0.08 · ln 0.08 + 0.08 · ln 0.08 + 0.04 · ln 0.04 + 0.04 · ln 0.04 +
+ 0.04 · ln 0.04 + 0.15 · ln 0.15 + 0.04 · ln 0.04 ∼
= 3.3.

Расположим символы в порядке убывания вероятностей:


36 Глава 1. Энтропия и информация

x А _ Ц К И М Т Е Р Н У -
n 0.25 0.15 0.08 0.08 0.08 0.08 0.08 0.04 0.04 0.04 0.04 0.04
Разобьем таблицу на две группы таким образом, чтобы сумма вероятностей по-
явления символов в каждой группе была приблизительно одинаковой. Пометим
все буквы попавшие в первую группу символом 0, а все буквы попавшие во вторую
группу символом 1.
0.64 0.36
А _ Ц К И М Т Е Р Н У -
0.25 0.15 0.08 0.08 0.08 0.08 0.08 0.04 0.04 0.04 0.04 0.04
0 1
Аналогично, разбиваем первую группу на две равные по вероятностям части и при-
сваиваем первой группе символ 0, а второй группе – символ 1 и.т.д.
А _ Ц К И М Т Е Р Н У -
0.25 0.15 0.08 0.08 0.08 0.08 0.08 0.04 0.04 0.04 0.04 0.04
0 1
0 1 0 1
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1
Объединяя символы для каждой буквы получим кодовую таблицу
А 000 И 011 Р 1100
_ 001 М 100 Н 1101
Ц 0100 Т 1010 У 1110
К 0111 Е 1011 - 1111
Экономность кода – количество информации, приходящееся на один кодовый
символ, вычисляется как отношение энтропии алфавита к математическому ожи-
данию длины кодового обозначения букв сообщения. В нашем случае буквам сооб-
щения соответствуют коды длиной 3 символа для букв (А, _, И, М) и 4 символа -
для остальных 8-ми букв. Распределение вероятностей появления кода данной длины
дано в таблице
x 3 4
n 4 8
p 1/3 2/3
Таким образом, математическое ожидание длины закодированной буквы есть
X 1 2 11 ∼
M[n] = xi pi = 3 · + 4 · = = 3.67.
3 3 3
Для экономности кода получим
H(x) 3.3
S= = = 0.899. N
M(n) 3.67
1.7. Избыточность сообщения 37

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


энтропии, т.е. S = 1.

Задача 1.5. Закодировать по методу Шеннона-Фено сообщение


фамилия_имя_отчество
и найти экономность кода.

1.7 Избыточность сообщения


Для характеристики величины, на которую удлиняются сообщения на данном языке
по сравнению с минимальной длинной, необходимой для передачи той же информа-
ции, вводят специальный параметр R – избыточность:
Hk Hk
Rk = 1 − =1−
H0 ln N
где N – число различных букв используемого алфавита; Hk - энтропия, приходящая-
ся на одну букву смыслового текста при учете всех k-буквенных сочетаний; H0 = ln N
– максимальная энтропия, приходящаяся на букву, когда буквы независимы и рав-
новероятны.

Пример 1.17. По каналу связи передается сообщение «многоногое». Найти:


а) избыточность R1 источника сообщений при статистической независимости букв;
б) избыточность R2 c учетом зависимости между буквами.
Решение. Для передаваемого сообщения, таблица распределения вероятностей
появления символов имеет вид
x м н о г е P
n(x) 1 2 4 2 1 = 10
p(x)=n/Σ 0.1 0.2 0.4 0.2 0.1
а) Поскольку мы имеем всего N = 5 различных символов, то
H0 = ln N = ln 5 = 2.322 bit,
X4
H1 = − pi ln pi
i=1
= −(0, 1 · ln 0, 1 + 0, 2 · ln 0, 2 + 0, 4 · ln 0, 4 + 0, 2 · ln 0, 2 + 0, 1 · ln 0, 1) = 2.122 bit.
и по определению избыточности, имеем
H1 H1 2.122
R1 = 1 − = 1− =1− = 0.086.
H0 ln N 2.322
б) При учете статистической зависимости между буквами мы заполняем таблицу
частот появления двухбуквенных сочетаний
38 Глава 1. Энтропия и информация

x\y м н о г е n(x)
м 0 1 0 0 0 1
н 0 0 2 0 0 2
о 0 1 0 2 1 4
г 0 0 2 0 0 2
е 1 0 0 0 0 1
n(y) 1 2 4 2 1
P
= 10

Теперь, таблица распределения вероятностей имеет вид p(x) = n/Σ:


x\y м н о г е p(x)
м 0 1/10 0 0 0 1/10
н 0 0 2/10 0 0 2/10
о 0 1/10 0 2/10 1/10 4/10
г 0 0 2/10 0 0 2/10
е 1/10 0 0 0 0 1/10
p(y) 1/10 2/10 4/10 2/10 1/10
P
=1
Избыточность R2 c учетом зависимости между буквами вычисляется по формуле
H2 H2
R2 = 1 − =1− ,
H0 ln N
где H2 – энтропия на букву при учете двухбуквенных сочетаний.
Энтропия двухбуквенного текста
5 X
X 5
H(x, y) = − p(xj , yi) ln p(xj , yi) = −4 · 0.1 · ln 0.1 − 3 · 0.2 · ln 0.2 = 2.39 bit
i=1 j=1

H(x, y)
Следовательно H2 = = 1.195 bit,
2
H2 1.195
R2 = 1 − =1− ≈ 0.485 bit. N
ln N 2.322
Пример 1.18. Алфавит состоит из 8 букв (x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 ), вероят-
8 4 2 1 1 1 1
ности появления которых равны: 16 , 16 , 16 , 16 , 16 , 16 , 16 , 0 . Найти избыточность R1
источника сообщений при статистической независимости букв.
Решение. По определению избыточности имеем
H1 H1
R1 = 1 − =1−
H0 ln N
Поскольку мы имеем всего N=8 различных символов, то

H0 = ln N = ln 8 = 3 bit,
1.7. Избыточность сообщения 39

4
X
H1 = − pi ln pi =
i=1
 
8 8 4 4 2 2 1 1
= − · ln + · ln + · ln +4· · ln + 0 · ln 0
16 16 16 16 16 16 16 16
 
8 4 2 1 8 + 8 + 6 + 16
= ·1+ ·2+ ·3+4· ·4+0 = = 2.375 bit
16 16 16 16 16
и
2.375
R1 = 1 − = 0.208. N
3
Задача 1.6. Найти:
а) избыточность R1 источника сообщений при статистической независимости букв;
б) избыточность R2 c учетом зависимости между буквами.
для сообщения
№ сообщение № сообщение № сообщение
1 атомизатор 11 даунтаун 21 клочочек
2 менеджмент 12 плодовод 22 волнолом
3 кавказка 13 шаровары 23 воздуховоз
4 барбарис 14 эстафета 24 подлодка
5 берберин 15 прототип 25 размазня
6 варварка 16 прививка 26 гонгконг
7 колокол 17 прабабка 27 колокольня
8 женьшень 18 пленение 28 математик
9 чихуахуа 19 метатанк 29 постылость
10 наносность 20 ленинизм 30 водопровод
Глава 2

Каналы связи

2.1 Пропускная способность каналов связи


Пусть имеется дискретный стационарный канал связи без памяти (без последействия)
с заданными характеристиками, причем все символы xi закодированного сообщения
и соответствующие им элементарные сигналы yi имеют одинаковую длительность τ ,
где F = 1/τ - частота посылки символов.
Канал без памяти полностью описывается априорными вероятностями P (x), ха-
рактеризующими структуру закодированных сообщений, и условными вероятностя-
ми P (x/y), определяющимися характеристиками канала.
Основные понятия:
1. информация, доставляемая символом xi по каналу связи определяется форму-
лой
I(xi ) = − ln p(xi );
2. условная собственная информация I(xi /yk ) переданного символа xi при извест-
ном принятом yk
I(xi /yk ) = − ln p(xi /yk );
3. взаимная информация I(xi ; yk ) двух символов относительно друг друга (коли-
чество информации в доставленном yk относительно отправленного xi )
p(xi /yk ) p(xi , yk )
I(xi ; yk ) = ln = ln ;
p(xi ) p(xi )p(yk )
4. собственная информация I(xi yk ) совместного события xi yk
I(xi yk ) = − ln p(xi yk );
5. среднее количество информации I(x; yk ) доставляемое принятым символом yk
относительно множества всех передаваемых символов x = {xi }
X X p(xi /yk )
I(x; yk ) = I(xi ; yk )p(xi /yk ) = p(xi /yk ) ln ;
i i
p(x i )

41
42 Глава 2. Каналы связи

6. среднее количество взаимной информации I(xi y) по множеству символов y =


{yi } при фиксированном xi
X X p(yk /xi )
I(xi ; y) = I(xi ; yk )p(yk /xi ) = p(yk /xi ) ln ;
p(yk )
k k

7. полное среднее количество взаимной информации I(x; y) в множестве символов


y относительно множества символов x
X X p(xi /yk )
I(x; y) = I(x; yk )p(yk ) = p(xi , yk ) ln
k i,k
p(xi )

При решении большинства задач, связанных с построением систем связи наибольший


интерес представляет величина I(x; y).
Если символ xi статистически связан не только с символом yj , но и с третьим сим-
волом zk , то при известных вероятностях p(xi , yj , zk ) условная взаимная информация
равна
p(xi /yj zk ) p(xi ; yj /zk )
I(xi ; yj /zk ) = ln = ln ,
p(xi /zk ) p(xi /zk )p(yj /zk )
где I(xi ; yj /zk ) - количество информации, доставляемое yj относительно xi , когда
предварительно известен символ zk .
По аналогии со средней взаимной информацией, средняя собственная информа-
ция определяется формулой
X X
I(x) = p(xi )I(xi ) = − p(xi ) ln p(xi ) = H(x).
i i

Здесь H(x) - энтропия случайного сигнала x, определяет количественную меру неопре-


деленности о сообщении до его приема.
Для энтропии справедливы следующие выражения:
X X X
H(y/x) = − p(xi , yk ) ln p(yk /xi ) = − p(xi ) p(yk /xi ) ln p(yk /xi ) = I(y/x),
ik i k
X X X
H(x/y) = − p(xi , yk ) ln p(xi /yk ) = − p(yk ) p(xi /yk ) ln p(xi /yk ) = I(x/y),
ik k i
X
H(xy) = − p(xi , yk ) ln p(xi , yk ),
ik

H(xy) = H(x) + H(y/x) = H(y) + H(x/y),


где H(y/x) - условная энтропия множества событий y при данном множестве событий
x; H(xy) - энтропия множества совместных событий xy.
Когда множества x и y независимы, то

H(y/x) = H(y), H(x/y) = H(x).


2.1. Пропускная способность каналов связи 43

При этом
H(xy) = H(x) + H(y).
Средняя взаимная информация связана с энтропией соотношениями

I(x; y) = H(x) − H(x/y) = H(y) − H(y/x) = H(x) + H(y) − H(xy),

I(x; y) ≤ H(x),
I(x; y) ≤ H(y).
Скорость передачи Vk – среднее количество информации, получаемое за единицу
времени:
Vk = F I(x; y) = F [H(x) − H(x/y)] = F [H(y) − H(y/x)]
При отсутствии помех множества событий x и y статистически полностью взаимно
зависимы, т. е. H(x/y) = H(y/x) = 0, следовательно,

Vk max = F H(x) = F H(y).

Пропускная способность канала связи – максимальная скорость передачи ин-


формации, которая может быть достигнута выбором оптимального распределения
вероятностей передачи P (x) символов сообщения:

C = max F I(x; y) = max F [H(x) − H(x/y)] = max F [H(y) − H(y/x)]


p(x) p(x) p(x)

При отсутствии помех H(x/y) = H(y/x) = 0:

C = Cm = max F I(x; y) = max F H(x) = max F H(y).


p(x) p(x) p(x)

error source

x y

encoding decoding

data channel
44 Глава 2. Каналы связи

Теорема 5. Пропускная способность двоичного симметричного канала связи


равна
C = F [1 + (1 − β) · ln(1 − β) + β · ln β],

где β – вероятность ошибочного приема, x y


F = 1/τ - частота посылки импульсов, τ -
β
длительность одного сигнала. α 0 0
Доказательство. Рассмотрим схему дво- β
ичного симметричного канала связи. Обо-
значим через x – случайную величину зна- β
чений на входе, а y – случайную величину
α 1 1
значений на выходе канала информации. β
Допустим, что вероятность появления на входе канала значения 0 или 1 равны
соответственно:
p(x = 0) = p; p(x = 1) = 1 − p = p.
Вследствие помех передаваемый сигнал проходит канал без искажения с вероятно-
стью β и принимает противоположное значение с вероятностью β. Такое действие
описывается канальной матрицей:
 
β β
p(y|x) = .
β β
Вероятности, расположенные по диагонали, описывают вероятность правильного при-
ёма, а сумма всех элементов столбца даёт вероятность появления соответствующего
символа на стороне приёмника p(y).
Матрица совместного распределения вероятностей принимает вид
 
p·β p·β
p(x, y) = .
p·β p·β
Складывая вероятности по строкам и столбцам, получим редуцированные (мар-
гинальные) законы распределения p(x) и p(y):
xy 0 1 p(x)
0 p·β p·β p
1 p·β p·β p
p(y)
P
p·β +p·β p·β+p·β =1
Средняя Средняя взаимная информация определяет скорость передачи
взаимная информации и вычисляется по формуле
информация
I(x, y) = H(x) + H(y) − H(x, y),
2.1. Пропускная способность каналов связи 45

Здесь
X
H(x) = − p(x) · ln p(x) = −p · ln p − p · ln p,
x
X
H(y) = − p(y) · ln p(y) = −(p · β + p · β) · ln(p · β + p · β)
y

−(p · β + p · β) · ln(p · β + p · β),


XX
H(x, y) = − p(x, y) · ln p(x, y)
x y

= −pβ · ln pβ − pβ · ln pβ − pβ · ln pβ − pβ · ln pβ .

Тогда

I(x; y) = H(x) + H(y) − H(x, y)


= −p · ln α − p · ln p − (p · β + p · β) · ln(p · β + p · β)
− (p · β + p · β) · ln(p · β + p · β)
+ pβ · ln pβ + pβ · ln pβ + pβ · ln pβ + pβ · ln pβ.

Пропускная Пропускная способность канала связи C – максимальная ско-


способность рость передачи информации, которая может быть достигнута
выбором оптимального распределения вероятности p(x) симво-
лов сообщения:
C = Max F · I(x; y).
p(x)

Исследуем функцию I(x|y) на экстремум


d
I(x; y) = −1 · ln p − 1 + 1 · ln p + 1 − (β − β) · ln(p · β + p · β) − (β − β)
dp
− (β − β) · ln(p · β + p · β) − (β − β)
+ β · ln pβ + β + β · ln pβ + β − β · ln pβ − β − β · ln pβ − β
p (p · β + p · β) p
= ln + (β − β) · ln + ln
p (p · β + p · β) p
(p · β + p · β)
= (β − β) · ln = 0.
(p · β + p · β)
Отсюда следует, что

(p · β + p · β) β − pβ + p − pβ
= 1, или =1
(p · β + p · β) pβ + 1 − p − β + pβ
откуда
1
2β − 4pβ + 2p = 1 т.е. p∗ = .
2
46 Глава 2. Каналы связи

Подставляя полученное значение p∗ в выражение для I(x|y) получим

I(x; y) = H(x) + H(y) − H(x, y)


       
1 1 1 1 β β β β β β β β
= − · ln − · ln − + · ln + − + · ln +
2 2 2 2 2 2 2 2 2 2 2 2
β β β β β β β β
+ · ln + · ln + · ln + · ln
2 2 2 2 2 2 2 2
β β
= 1 + 1 + β · ln + β · ln = 2 + β · ln β + β · ln β − 1
2 2
= 1 + β · ln β + β · ln β. 

При отсутствии помех (β = 0)


C = Cm = F.
Потери Потери информации со стороны источника
информации
H(y/x) = H(x, y) − H(x),

Потери информации со стороны приемника

H(x/y) = H(x, y) − H(y),

Пример 2.1. По двоичному симметричному каналу связи с помехами переда-


ются сигналы (x1 , x2 ) с априорными вероятностями p(x1 ) = 3/4; p(x2 ) = 1/4. Из-за
наличия помех вероятность правильного приема каждого из сигналов (x1 , x2 ) умень-
шается до α = 7/8.
Найти:
1. скорость передачи информации I(x; y);
2. пропускную способность канала C = Max I(x; y).
p(x)
Решение. По условию
p(x1 ) = 3/4,
p(x2 ) = 1/4,
α = 7/8,
α = 1/8.
Предварительно, вычислим вероятности p(yj ), p(xj , yj ), и p(xj /yj ). По формуле пол-
ной вероятности получим:
3 7 21
p(x1 , y1 ) = p(x1 )α = · = ;
4 8 32
3 1 3
p(x1 , y2 ) = p(x1 )α = · = ;
4 8 32
2.1. Пропускная способность каналов связи 47

1 1 1
p(x2 , y1 ) = p(x2 )α = · = ;
4 8 32
1 7 7
p(x2 , y2 ) = p(x2 )α = · = .
4 8 32
Составим таблицу совместного распределения для передаваемых и получаемых сиг-
налов
x\y 0 1 p(x)
21 3 24
0 32 32 32
= 34
1 7 8
1 32 32 P32
= 14
p(y) 22
32
10
32
p=1
1. По формулам для среднего количества информации
X 3 3 1 1
H(x) = − p(xi ) ln p(xi ) = − ln − ln = 0.811 bit
i
4 4 4 4
X 22 22 10 10
H(y) = − p(yi ) ln p(yi ) = − ln − ln = 0.896 bit
i
32 32 32 32
XX 21 21 3 3 1 1 7 7
H(x, y) = − p(x, y) ln p(x, y) − ln − ln − ln − ln
32 32 32 32 32 32 32 32
= 1.355 bit
I(x, y) = H(x) + H(y) − H(x, y)
X X XX
= − p(x) ln p(x) − p(y) ln p(y) + p(x, y) ln p(x, y)
       
3 3 1 1 22 22 10 10
= − ln − ln − ln − ln
4 4 4 4 32 32 32 32
       
21 21 3 3 1 1 7 7
+ ln + ln + ln + ln = 0.352 bit
32 32 32 32 32 32 32 32

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


необходимо найти такие значения p и q при которых скорость передачи по каналу
(при заданных помехах) будет максимальна. Имеем

x y
7/8
p 0 0
1/8

1/8
q 1 1
7/8

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


48 Глава 2. Каналы связи

налов
x\y 0 1 p(x)
7 1
0 p8 p8 p
1 7
1 q8 q8 P q
p(y) p 87 + q 18 p 18 + q 87 p=1
По формулам для среднего количества информации
X X
H(x) = − p(xi ) ln p(xi ) H(y) = − p(yi) ln p(yi)
i i

XX
H(x, y) = − p(x, y) ln p(x, y)

I(x, y) = H(x) + H(y) − H(x, y)


X X XX
= − p(x) ln p(x) − p(y) ln p(y) + p(x, y) ln p(x, y)
       
7 1 7 1 1 7 1 7
= −p ln (p) − q ln (q) − p + q ln p + q − p +q ln p + q
8 8 8 8 8 8 8 8
       
7 7 1 1 1 1 7 7
+ p ln p + p ln p + q ln q + q ln q
8 8 8 8 8 8 8 8

Теперь, учитывая что q = 1 − p, получим

I(p) = −p ln (p) − q ln (q)


       
7 1 7 1 1 7 1 7
− p + (1 − p) ln p + (1 − p) − p + (1 − p) ln p + (1 − p)
8 8 8 8 8 8 8 8
       
7 7 1 1 1 1 7 7
+ p ln p + p ln p + (1 − p) ln (1 − p) + (1 − p) ln (1 − p)
8 8 8 8 8 8 8 8

Исследуем функцию I(p) на экстремум


   
d 3 1 + 6p 3 1 + 6p 1 + 6p
I(p) = ln , ln = 0, = 1, 1+6p = 7−6p, p∗ = 1/2.
dp 4 7 − 6p 4 7 − 6p 7 − 6p

Подставляя полученное значение p∗ в формулу для I(p) получим выражение для


пропускной способности двоичного симметричного канала при вероятности помехи
α:
C = max I(p) = 1 + α ln α + α ln α.
p(x)

Подставляя сюда α = 7/8 получим

7 7 1 1
C =1+ ln + ln = 0.456 bit.
8 8 8 8
2.1. Пропускная способность каналов связи 49

Это же значение легче получить графически.


Для этого построим график функции I(p) 0.456
в Mathcad (см. рисунок). Из графика видно
что максимальное значение скорости переда- I(p)
чи данных Imax (p∗ ) = 0.316 в нашем канале p
достигается при p∗ = 1/2. N 0 p* 1

Задача 2.1. По двоичному симметричному каналу связи с помехами передаются


сигналы (x1 , x2 ) с априорными вероятностями p(x1 ); p(x2 ) = 1 −p(x1 ). Из-за наличия
помех вероятность правильного приема каждого из сигналов (x1 , x2 ) уменьшается до
α. Найти:
1. скорость передачи информации I(x; y);
2. пропускную способность канала.

N p α N p α N p α
1 0.1 0.91 11 0.15 0.80 21 0.23 0.70
2 0.2 0.92 12 0.25 0.81 22 0.33 0.71
3 0.3 0.93 13 0.35 0.82 23 0.43 0.72
4 0.4 0.94 14 0.45 0.83 24 0.53 0.73
5 0.5 0.95 15 0.55 0.84 25 0.63 0.74
6 0.6 0.96 16 0.65 0.85 26 0.73 0.75
7 0.7 0.97 17 0.75 0.86 27 0.83 0.76
8 0.8 0.98 18 0.85 0.87 28 0.93 0.77
9 0.9 0.99 19 0.95 0.88 29 0.03 0.78
10 0.95 0.90 20 0.05 0.89 30 0.93 0.79

Задача 2.2. По двоичному симметричному каналу связи с помехами передаются


сигналы (x1 , x2 ) с априорными вероятностями p(x1 ); p(x2 ) = 1 −p(x1 ). Из-за наличия
помех вероятность правильного приема каждого из сигналов (x1 , x2 ) уменьшается до
α. Найти:
1. среднее количество информации I(x; y);
2. пропускную способность канала.

α y1 α
p1 z1
1−α 1−α
1−α 1−α
y2
p2 z2
α α
50 Глава 2. Каналы связи

N p α N p α N p α
1 0.1 0.91 11 0.15 0.80 21 0.23 0.70
2 0.2 0.92 12 0.25 0.81 22 0.33 0.71
3 0.3 0.93 13 0.35 0.82 23 0.43 0.72
4 0.4 0.94 14 0.45 0.83 24 0.53 0.73
5 0.5 0.95 15 0.55 0.84 25 0.63 0.74
6 0.6 0.96 16 0.65 0.85 26 0.73 0.75
7 0.7 0.97 17 0.75 0.86 27 0.83 0.76
8 0.8 0.98 18 0.85 0.87 28 0.93 0.77
9 0.9 0.99 19 0.95 0.88 29 0.03 0.78
10 0.95 0.90 20 0.05 0.89 30 0.93 0.79

Пример 2.2. По каналу связи с помехами пере-


p 0 0
даются сигналы (0,1). Из-за наличия помех сигнал 2e
e
0 искажается на 1 с вероятностью e=0.1 и на 2 с
вероятностью 2e=0.2. Сигнал 1 искажается на 0 с 1
вероятностью s=0.2 и на 2 с вероятностью 3s=0.6.
s
Найти пропускную способность канала. q 1
3s
2
Решение. По условию канал связи имеет вид по-
казанный на рисунке.

x\y 0 1 2 p(x)
0 p(1-3e) pe 2pe p
1 qs q(1-4s) 3qs Pq
p(y) p(1-3e)+qe pe+ q(1-4s) 2pe+3qs =1

Подставляя конкретные значения (e;s)=(0.1;0.2) получим

x\y 0 1 2 p(x)
0 0.7p 0.1p 0.2p p
1 0.2q 0.2q 0.6q Pq
p(y) 0.7p+0.2q 0.1p+0.2q 0.2p+0.6q =1

Тогда
Hx (p) = − (p ln p + q ln q = p ln p + (1 − p) ln(1 − p)) ;

Hy (p) = −(0.7p + 0.2q) ln(0.7p + 0.2q) + (0.1p + 0.2q) ln(0.1p + 0.2q)


+ (0.2p + 0.6q) ln(0.2p + 0.6q)
2.1. Пропускная способность каналов связи 51

= −(0.5p + 0.2) ln(0.5p + 0.2) + (−0.1p + 0.2) ln(−0.1p + 0.2)


+ (−0.4p + 0.6) ln(−0.4p + 0.6)

Hxy (p) = −(0.7p) ln(0.7p) + (0.1p) ln(0.1p) + (0.2p) ln(0.2p) + (0.2q) ln(0.2q)
+ (0.2q) ln(0.2q) + (0.6q) ln(0.6q)

Hxy (p) = −(0.7p) ln(0.7p) + (0.1p) ln(0.1p) + (0.2p) ln(0.2p) + 0.2(1 − p) ln(0.2(1 − p))
+ 0.2(1 − p) ln(0.2(1 − p)) + 0.6(1 − p) ln(0.6(1 − p))

Взаимная информация есть

I(p) = Hx (p) + Hy (p) − Hxy (p)

Пропускная способность канала определяется таким значением p, для которого ско-


рость передачи информации I(x, y) принимает максимальное значение

C = max I(p) = I(p∗ ).

Решаем задачу на экстремум. В mathcad определим функцию


d
G(p) := I(p) simplif y →
dp

и найдем ее корень на промежутке [0;1]

root(G(p), p, 0, 1) = 0.492. 0.2867

Можно решить задачу приближенно по- I(p)


строив график функции I(p). Из графи- p
ка видим, что p∗ ≈ 0.492, тогда для про- 0 0.492 1
пускной способности канала связи получим
С=I(0.492)=0.2867 bit. N
52 Глава 2. Каналы связи

Пример 2.3. По каналу связи с помехами пере- 0.6


даются сигналы (0,1,2). Из-за наличия помех сиг- p 0 0
нал 0 искажается на 1 с вероятностью 0.1 и на 2
0.2 0.1
с вероятностью 0.3. Сигнал 1 искажается на 0 с q 1 1
вероятностью s=0.2 и на 2 с вероятностью s=0.1. 0.1 0.3
Сигнал 2 не искажается с вероятностью s=0.4 и
принимает другие значения с равной вероятно- r 2 2
0.4
стью. Найти пропускную способность канала.

Решение. По условию канал связи имеет вид показанный на рисунке или

x\y 0 1 2 p(x)
6 1 3
0 10
p 10
p 10
p p
2 7 1
1 10
q 10
q 10
q q
3 3 4
2 10
r 10
r 10
r Pr
6 2 3 1 7 10 3 1 4
p(y) 10
p + 10
q + 10
r 10
p + 10
q + 10
r 10
p + 10
q + 10
r =1

Тогда
Hx (p, q, r) = −(p ln p + q ln q + r ln r)
   
6p + 2q + 3r 6p + 2q + 3r
Hy (p, q, r) = − ln
10 10
   
p + 7q + 10r p + 7q + 10r
− ln
10 10
   
3p + q + 4r 3p + q + 4r
− ln
10 10


          
6p 6p p p 3p 3p
Hxy (p, q, r) = − ln − ln − ln
10 10 10 10 10 10
           
2q 2q 7q 7q q q
− ln − ln − ln
10 10 10 10 10 10
           
3r 3r 3r 3r 4r 4r
− ln − ln − ln
10 10 10 10 10 10

C учетом p + q + r = 1 запишем выражение для взаимной информации (скорости


передачи)

I(p, q) = Hx (p, q, 1 − p − q) + Hy (p, q, 1 − p − q) − Hxy (p, q, 1 − p − q)

Пропускная способность канала определяется такими значениями p, q, для которых


I(p, q) принимает максимальное значение.
2.1. Пропускная способность каналов связи 53

Решаем задачу на экстремум. В mathcad определим функции


d
G1(p, q) := I(p, q) simplif y →
dp
d
G2(p, q) := I(p, q) simplif y →
dq
1 1
и найдем ее корень на промежутке [0;1]: x = 100
y= 100

Given
G1(x, y) = 0 G2(x, y) = 0
 
xval
:= F ind(x, y)
yval
xval = 0.47 yval = 0.42
Подставляя экстремальные значения p∗ = 0.47, q ∗ = 0.42 получим пропускную спо-
собность канала связи
C = I(0.47, 0.42) = 0.227bit. N

Задача 2.3. По каналу связи с помехами пере- e1


даются сигналы (0,1,2) с вероятностями p = q = p 0 0
r = 1/3. Из-за наличия помех сигнал 0 принимает- k2
ся как 0 с вероятностью e1 и как 2 с вероятностью s1
q 1 1
e2 . Сигнал 1 искажается на 0 с вероятностью s1 и s2
на 2 с вероятностью s2 . Сигнал 2 не искажается с e2
вероятностью k1 и принимает значение 0 вероят- r 2 2
k1 0.4
ностью k2 . Найти скорость передачи информации
по каналу.
N e1 e2 s1 s2 k1 k2 N e1 e2 s1 s2 k1 k2
1 0.0 0.2 0.0 0.1 0.2 0.2 16 0.0 0.3 0.5 0.4 0.3 0.0
2 0.1 0.9 0.1 0.1 0.2 0.2 17 0.1 0.3 0.5 0.4 0.3 0.0
3 0.2 0.8 0.2 0.1 0.2 0.3 18 0.2 0.3 0.5 0.4 0.3 0.0
4 0.3 0.7 0.3 0.1 0.2 0.3 19 0.3 0.3 0.5 0.3 0.3 0.0
5 0.4 0.6 0.4 0.1 0.2 0.3 20 0.4 0.3 0.5 0.3 0.4 0.0
6 0.5 0.5 0.5 0.1 0.2 0.3 21 0.5 0.3 0.5 0.3 0.4 0.0
7 0.6 0.4 0.6 0.1 0.2 0.5 22 0.6 0.3 0.5 0.3 0.4 0.0
8 0.7 0.3 0.7 0.1 0.2 0.4 23 0.7 0.0 0.5 0.2 0.4 0.0
9 0.8 0.2 0.8 0.1 0.2 0.4 24 0.8 0.0 0.5 0.2 0.5 0.0
10 0.9 0.1 0.9 0.1 0.2 0.4 25 0.9 0.0 0.5 0.2 0.5 0.0
11 0.8 0.1 0.8 0.1 0.2 0.4 26 0.8 0.0 0.5 0.2 0.6 0.0
12 0.8 0.1 0.7 0.1 0.2 0.5 27 0.7 0.0 0.5 0.1 0.6 0.0
13 0.7 0.1 0.6 0.1 0.2 0.5 28 0.6 0.4 0.5 0.1 0.7 0.0
14 0.7 0.2 0.6 0.1 0.2 0.5 29 0.5 0.5 0.5 0.1 0.7 0.0
15 0.7 0.2 0.6 0.1 0.2 0.5 30 0.4 0.5 0.5 0.1 0.7 0.0
54 Глава 2. Каналы связи

Пример 2.4. По 3-ичному симметричному 1−α


каналу связи с помехами передаются сигна- p 0 0
α/2
лы (0,1,2). Из-за наличия помех сигнал 0 с α/2
вероятностью α/2 может восприниматься как q 1 1
1 или 2 и безошибочно принимается с веро-
ятностью 1 − α. Поскольку канал симметрич-
ный, аналогичным образом ведут себя и дру- r 2 2
гие сигналы. Найти пропускную способность
канала связи.
Решение. Запишем канальную матрицу
 
1 − α α/2 α/2
p(y|x) =  α/2 1 − α α/2 
α/2 α/2 1 − α

Тогда, матрица совместных вероятностей входного x и выходного y сигнала равна


 
p(1 − α) pα/2 pα/2
p(x, y) =  qα/2 q(1 − α) qα/2 
rα/2 rα/2 r(1 − α)

откуда пропускная способность


α
C = ln 3 + (1 − α) ln(1 − α) + α ln . N
2
Аналогично, для k-ичного канала, с вероятностью ошибки α/(k − 1), получим
α
C = ln k + (1 − α) ln(1 − α) + α ln .
k−1
Пример 2.5. По каналу связи с ретранслятором передаются сигналы (0,1,2).
Из-за наличия помех каждое значение сигнала не искажается с вероятностью α = 0.8
и принимает другие значения с равной вероятностью. Найти пропускную способность
канала.

p 0 0

q 1 1

r 2 2

Решение. По условию таблица распределения для канала связи имеет вид


2.1. Пропускная способность каналов связи 55

yx 0 1 2 p(x)
0 p · α · α + p · 1−α2
· 12 p · α · (1 − α) + p · 1−α
2
· 12 p· 1−α
2
·1 p
1 q · 1 · 21 q · 1 · 12 0 q
2 r · 1 · 21 r · 1 · 12 0 r
p(y) pα2 + p · 1−α + q+r pα(1 − α) + p 1−α + q+r1 1−α
P
4 2 4 2
p· 2
=1
Тогда

Hx (p, q, r) = −(p ln p + q ln q + r ln r)
   
2 1−α q+r 2 1−α q+r
Hy (p, q, r) = − pα + p · + ln pα + p · +
4 2 4 2
   
1−α q+r 1−α q+r
− pα(1 − α) + p + ln pα(1 − α) + p +
4 2 4 2
   
1−α 1−α
− p· ln p ·
2 2
           
2 1−α 2 1−α q q r r
Hxy (p, q, r) = − pα + p · ln pα + p · − ln − ln
4 4 2 2 2 2
       
1−α 1−α q q
− pα(1 − α) + p ln pα(1 − α) + p − ln
4 4 2 2
r  r   1 − α  1 − α
− ln − p· ln p ·
2 2 2 2
C учетом p + q + r = 1 запишем выражение для взаимной информации

I(p, q) = Hx (p, q, 1 − p − q) + Hy (p, q, 1 − p − q) − Hxy (p, q, 1 − p − q)

Пропускная способность канала определяется такими значениями p,q, для которых


I(p, q) принимает максимальное значение.
Решаем задачу на экстремум. В mathcad определим функции
d
G1(p, q) := I(p, q) simplif y →
dp
d
G2(p, q) := I(p, q) simplif y →
dq
1 1
и найдем ее корень на промежутке [0;1]: x = 100
y= 100

Given

G1(x, y) = 0 G2(x, y) = 0
 
xval
:= F ind(x, y)
yval
xval = 0.47, yval = 0.42
56 Глава 2. Каналы связи

Подставляя экстремальные значения p∗ = 0.45, q ∗ = 0.001 получим пропускную


способность канала связи

C = I(0.45, 0.001) = 0.0072bit. N

Пример 2.6. По известной канальной матрице


 
1 0 0
p(y|x) =  0 0.8 0.2 
0 0.3 0.7

определить скорость передачи и потери информации в канале с помехами, если вход-


ные символы сообщения появляются с вероятностями

p(x) = (1/2, 1/3, 1/6).

Решение. Матрицу совместных вероятностей получим по формуле


   
1 0 0 1/2
p(x,y) = p(y|x) × p(x) =  0 0.8 0.2  ×  1/3 
0 0.3 0.7 1/6
   
1 · 1/2 0 · 1/2 0 · 1/2 1/2 0 0
=  0 · 1/3 0.8 · 1/3 0.2 · 1/3  =  0 8/30 2/30 
0 · 1/6 0.3 · 1/6 0.7 · 1/6 0 3/60 7/60

Складывая элементы полученной матрицы, получим редуцированные законы рас-


пределения:
по строкам - для входного сигнала

p(x) = (1/2, 1/3, 1/6).

по столбцам - для выходного сигнала

p(y) = (1/2, 19/60, 11/60).

Вычисляем энтропию
 
X 1 1 1 1 1 1
H(x) = p(x) ln p(x) = − ln + ln + ln = 1.459
2 2 3 3 6 6
 
X 1 1 19 19 11 11
H(y) = p(y) ln p(y) = − ln + ln + ln = 1.474
2 2 60 60 60 60
X
H(xy) = p(xy) ln p(xy)
 
1 1 8 8 2 2 3 3 7 7
= − ln + ln + ln + ln + ln = 1.847
2 2 30 30 30 30 60 60 60 60
2.1. Пропускная способность каналов связи 57

Потери информации со стороны источника

H(y/x) = H(x, y) − H(x) = 1.847 − 1.459 = 0.388.

Потери информации со стороны приемника

H(x/y) = H(x, y) − H(y) = 1.847 − 1.474 = 0.373.

Скорость передачи информации

I(x, y) = H(x) + H(y) − H(x, y) = 1.459 + 1.474 − 1.847 = 1.086. N

Задача 2.4. По каналу связи с ретранслятором передаются сигналы (0,1,2). Из-


за наличия помех каждое значение сигнала не искажается с вероятностью α = N1 и
принимает другие значения с равной вероятностью. Найти пропускную способность
канала.

Пример 2.7. Имеется источник информации с энтропией в единицу времени


H=100 (бит) и два канала связи; каждый из них может передавать в единицу вре-
мени F=70 бит (0 или 1): в результате помехи каждое значение бита заменяется
противоположным с вероятностью . Требуется выяснить: достаточна ли пропускная
способность этих каналов для передачи информации, поставляемой источником?
Решение. При отсутствии помех два канала с частотой генерации сигналов F=70
бит/сек. смогут обеспечить пропускную способность 2F=140 бит/сек., т.е. больше
скорости источника H=100 бит/сек
При наличии помех пропускная способность двоичного симметричного канала
уменьшается и определяется по формуле

C = F · [1 + p ln p + (1 − p) ln(1 − p)] .

Тогда

p ln p = 0.1 · ln(0.1) = −0.332, (1 − p) ln(1 − p) = 0.9 ln(0.9) = −0.137

C = F · (1 − 0.332 − 0.137] = 37.17 bit/s.


Максимальное количество информации, передаваемое по одному каналу в еди-
ницу времени C=37.17 бит/сек. Это означает, что два канала смогут обеспечить
скорость 2С=74.34 бит/сек., т.е. меньше чем H=100 бит/сек., Поэтому при данном
уровне помех двух каналов недостаточно для обеспечения передачи всей информации
от источника.

Задача 2.5. Имеется источник информации с энтропией в единицу времени H


бит и K каналов связи; каждый из которых может передавать в единицу времени
F бит. В результате помехи каждое значение бита заменяется противоположным с
вероятностью P. Требуется выяснить: достаточна ли пропускная способность этих
каналов для передачи информации, поставляемой источником?
58 Глава 2. Каналы связи

N H K F P N H K F P
1 290 4 80 0.021 16 160 4 50 0.036
2 280 5 60 0.022 17 170 3 60 0.037
3 289 3 100 0.023 18 180 4 70 0.038
4 270 4 80 0.024 19 190 3 80 0.039
5 270 2 140 0.025 20 130 7 20 0.040
6 270 4 100 0.026 21 110 6 20 0.041
7 280 3 110 0.027 22 120 4 35 0.042
8 288 2 145 0.028 23 130 3 45 0.043
9 289 2 150 0.029 24 140 4 35 0.044
10 278 2 140 0.030 25 150 3 60 0.045
11 210 3 75 0.031 26 160 4 40 0.046
12 220 4 80 0.032 27 170 3 60 0.047
13 230 3 80 0.033 28 180 4 50 0.048
14 240 4 65 0.034 29 190 3 70 0.049
15 250 3 65 0.035 30 140 4 30 0.050

2.2 Теоремы Котельникова и Шеннона


Непрерывный сигнал характерен тем, что он задается для любых моментов времени
на некотором отрезке длительности Т. В противном случае сигнал не будет непре-
рывным. Однако применение всех видов импульсной модуляции принципиально свя-
зано с необходимостью дискретизации (квантования) сигнала по времени. При этом
естественно поставить вопрос – какие условия необходимо соблюдать, чтобы обес-
печить передачу непрерывного сигнала с надлежащей точностью при наличии его
квантования по времени. Ответ на поставленный вопрос не является единственным
– возможны различные решения.
Рассмотрим квантование непрерывного сигнала по времени в смысле Котельни-
кова. Основным условием при этом является ограниченность спектра сигнала. Итак,
пусть сигнал, представляющий собой непрерывную функцию времени х(t), имеет
ограниченный спектр.
Теорему Котельникова можно формулировать следующим образом.
Всякий непрерывный сигнал, со спектром, ограниченным ωc , полностью опреде-
ляется своими дискретными значениями в моменты отсчета, отстоящие друг от друга
во времени на интервалы ∆t = 1/2ωc
+∞
X sin ωc (t − k∆t)
x(t) = x(k∆t) .
k=−∞
ωc (t − k∆t)

Базисную функцию sinc(y) = sin(y)/y, называют функцией отсчетов, а x(k∆t) -


отсчетами. Таким образом, если известны значения функции x(t) в точках отсчета,
то она может быть полностью восстановлена для всех t посредством суммирования
типовых функций отсчетов с соответствующими коэффициентами.
2.2. Теоремы Котельникова и Шеннона 59

Однако при практическом применении теоремы Котельникова возникают два


принципиальных затруднения, не позволяющие использовать ее строго для инте-
ресующих нас сигналов.
Во-первых, всякий реальный сигнал имеет конечную длительность, т. е. бесконеч-
но широкоий спектр, что противоречит основному условию теоремы Котельникова.
Во-вторых, для восстановления сигнала x(t) на приемном конце связи по его зна-
чениям в моменты отсчета необходимо в приемнике генерировать функции отсчетов,
а так как последние имеют бесконечную протяженность во времени для отрицатель-
ных значений t, соответствующие фильтры физически неосуществимы. Таким обра-
зом, сигнал при приеме может быть восстановлен только приближенно.
Однако отмеченные особенности теоремы Котельникова существенно затрудняют
ее использование лишь в том случае, когда не делается никаких ограничений в точ-
ности воспроизведения передаваемого сигнала. На практике же никогда не требуется
идеально точного воспроизведения, более того, такая постановка задачи противоре-
чила бы реальным условиям работы систем связи и управления. Поэтому приближен-
ный характер представления сигнала вполне возможен, если степень приближения
не превосходит некоторых допустимых значений.
На практике используют 2 следствия теоремы Котельникова:
F Любой аналоговый сигнал может быть восстановлен с какой угодно точностью
по своим дискретным отсчётам, взятым с частотой ω > 2ωc , где ωc — максимальная
частота, которой ограничен спектр реального сигнала.
F Если максимальная частота в сигнале превышает половину частоты дискре-
тизации, то способа восстановить сигнал из дискретного в аналоговый без искаже-
ний не существует.
Частота дискретизации (или частота семплирования, англ. sample rate) — ча-
стота взятия отсчетов непрерывного во времени сигнала при его дискретизации (в
частности, аналого-цифровым преобразователем). Измеряется в Герцах.
Частота Найквиста — в цифровой обработке сигналов частота, равная половине
частоты дискретизации. Названа в честь Гарри Найквиста. Из теоремы Котельнико-
ва следует, что при дискретизации аналогового сигнала потерь информации не будет
только в том случае, если спектр (спектральная плотность) сигнала равен нулю выше
частоты Найквиста.
Поэтому частоту дискретизации выбирают с запасом, к примеру, в аудио компакт-
дисках используется частота дискретизации 44100 Герц, в то время как высшей ча-
стотой в спектре звуковых сигналов считается частота 20000 Гц.

Используемые частоты дискретизации звука:


8 000 Гц — телефон, достаточно для речи; 48 000 Гц — DVD, DAT.
11 025 Гц; 16 000 Гц; 96 000 Гц — DVD-Audio (MLP 5.1)
22 050 Гц — радио; 192 000 Гц — DVD-Audio (MLP 2.0)
32 000 Гц; 2 822 400 Гц — SACD Super audio
44 100 Гц — используется в Audio CD; CD 5.1 — максимальная на 2008 г.
Клод Шеннон определил зависимость пропускной способности канала , обла-
60 Глава 2. Каналы связи

дающего определенной полосой пропускания F , от отношения сигнала S к шуму N


 
S
C = F · ln 1 + .
N

Пример 2.8. Для стандартного телефонного канала F = 3 kHz и S/N = 30 db


получим  
S
C = F · ln 1 + = 3000 · ln (1 + 30) ' 15 kb/s. N
N
Однако к данной формуле надо относится осторожно, поскольку из нее следует,
что при нулевом уровне шума можно получить бесконечно большую скорость пере-
дачи информации.
Согласно теореме Найквиста максимальная скорость передачи данных C по
каналу без шума определяется формулой:

C = 2F · ln(n),

где n - число дискретных уровней сигнала. Данная формула согласуется с теоремой


Котельникова. При полосе сигнала F частота стробирования должна быть больше
2F , чтобы принимающая сторона могла корректно восстановить форму исходного
сигнала.

Пример 2.9. Для стандартного телефоного канала без шума с F = 3kHz при
n = 2 получим
C = 2F · ln(n) = 2 · 3000 · ln(2) ' 6 kb/s,
а при n = 256:
C = 2 · 3000 · ln(256) = 6000 · 8 ' 48 kb/s. N
Задача 2.6. Пользуясь формулой Найквиста определить количество допусти-
мых уровней сигнала n в телефонном канале связи с пропускной способностью C kb/s.

N C N C N C N C N C N C N C N C N C N C
1 8 4 12 7 15 10 18 13 21 16 24 19 27 22 30 25 33 28 36
2 6 5 13 8 16 11 19 14 22 17 25 20 28 23 31 26 34 29 37
3 8 6 14 9 17 12 20 15 23 18 26 21 29 24 32 27 35 30 38
2.3. Теория массового обслуживания 61

2.3 Теория массового обслуживания


2.3.1 Цепи Маркова
Неограниченная последовательность опытов с единственно возможными и попарно
несовместными исходами (s1 , s2 , ..., sn ) называется цепью Маркова, если вероятность
любого из этих исходов в очередном опыте однозначно определяется результатом
непосредственно предшествующего опыта. Совокупность несовместных исходов s =
(s1 , s2 , ..., sn ) называется вектором состояния системы, компоненты которого образует
полную группу событий:
s1 + s2 + ... + sn = 1.
(0)
Обозначения: pj - вероятность j-го исхода в первом опыте (j = 1, 2, ..., m);

(0) (0)
(p1 + p2 + ... + p(0)
m = 1);

pnji - вероятность j-го исхода в n-м опыте при условии, что в (n − 1) -м опыте насту-
(n) (n) (n)
пил i-й исход, (n = 2, 3, ...; i, j = 1, 2, ..., m; p1i + p2i + ... + pmi = 1). Введенными
вероятностями полностью описывается цепь Маркова.
(n)
Цепь Маркова называется однородной, если вероятность pij от n не зависят, в
этом случае они обозначаются без верхнего индекса: pij . Числа pij называются веро-
ятностями переходов, а
 
p11 p12 ... p1m
 p21 p22 ... p2m 
P = (pij ) = 
 ...

... ... ... 
pm1 pm2 ... pmm

- матрицей перехода.
По матрице перехода можно построить граф состояний, если в качестве узлов
взять состояния s = (s1 , s2 , ..., sn ) системы, а стрелками – возможные переходы из
одного состояния в другое состояние.
Например, для матрицы перехода
 
p11 p12 p13 0 0

 p21 0 0 0 0 

P =
 p31 0 0 0 0 

 0 0 p43 0 0 
0 0 p53 0 p55

граф состояния имеет вид


62 Глава 2. Каналы связи

Обозначим: pij (n) – вероятность того, что через n шагов произойдет переход
от sj к si (i, j = 1, 2, ..., m), P (n) – матрицу переходов за n шагов, т.е. матрицу,
состоящую из pij (n). Если в начальный момент система находилась в состоянии
s0 = (s1 , s2 , ..., sn ), то на следующем шаге она перейдет в состояние
s1 = P s0 .
На втором шаге состояние системы есть:
s2 = P s1 = P P s 0 = P 2 s0 .
Очевидно, что через n шагов состояние системы sn будет выражаться через исходное
состояние системы s0 формулой
sn = P n s0 .
Т.о. справедлива формула
P (n) = P n .
Теорема Маркова (о предельных вероятностях): если существует такое на-
туральное число n0 , что все элементы матрицы P (n0 ) = P n0 строго положительны,
то для каждого (j = 1, 2, ..., m) существует предельная вероятность lim P (n) = P ∗ .
n→∞
Предельные вероятности (если они существуют) можно найти из уравнений:
P s = s, или pij sj = δij sj , (pij − δij ) sj = 0.
Перепишем задачу в матричном виде (P − I)s = 0:
  
p11 − 1 p12 ... p1n s1
 p21
 p22 − 1 ... p2n  
 s2  = 0.
 ... ... ... ...  ... 
pn1 pn2 ... pnn − 1 sn
Таким образом, вместе с условием нормировки на компоненты вектора состояния,
задача на отыскание предельного состояния сводится к решению системы уравнений:


 (p11 − 1)s1 + p12 s2 + ... + p1n sn = 0
 p21 s1 + (p22 − 1)s2 + ... + p21 sn = 0


... .
pn1 s1 + pn2 s2 + ... + (pnn − 1)sn = 0




s1 + s2 + ... + sn = 1

2.3. Теория массового обслуживания 63

Поскольку данная система переопределена (в ней содержится лишнее уравнение), то


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

Пример 2.10. Пусть (A1 , A2 , A3 ) – точки числовой оси с целочисленными коор-


динатами (x = 1, x = 2, x = 3). Представим себе частицу, которая движется по этим
точкам следующим образом: если в какой-то момент времени t = n (n = 0, 1, 2, 3, ...)
частица находится во внутренней точке A2 , то в следующий момент t = n + 1 она
переходит в A1 с вероятностью q или в A3 – с вероятностью p = 1 − q; если частица
оказалась в левой граничной точке A1 , то в следующий момент времени с вероятно-
стью q она там остается или с вероятностью p возвращается в A2 ; если же частица
оказалась в правой граничной точке A3 , то в следующий момент времени она там
остается с вероятностью или возвращается в A2 с вероятностью q.
а) Найдите матрицу переходов и постройте ее граф состояний.
б) Найдите матрицу переходов за 2 шага.
в) Проверьте существование предельных состояний.
г) Если существуют предельные состояния, то найдите их.
Решение. а) Изобразим граф состояний.

p p p p
11 12 32 33

1 2 3

p p
21 23

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


конечному первый индекс i матрицы pik . Находим вероятности переходов pik за один
шаг:
p11 = q, p21 = p, p12 = q, p32 = p, p23 = q, p33 = p.
В результате матрица переходов имеет вид:
 
q q 0
P =  p 0 q .
0 p p

В качестве проверки, заметим, что сумма элементов по столбцам матрицы равна 1,


согласно условию нормировки для вектора состояния.
б) Для нахождения P (2) вычисляем P 2 :

q q2 q2
     
q q 0 q q 0
P (2) = P 2 =  p 0 q  ·  p 0 q  =  pq 2pq pq  .
0 p p 0 p p p2 p2 p
64 Глава 2. Каналы связи

в) Так как все элементы P 2 строго положительны, то условие теоремы Маркова


о предельных вероятностях выполняется. Следовательно, предельные вероятности
(s∗1 , s∗2 , s∗3 ) существуют.
г) Для нахождения предельных состояний решим систему:
  
q−1 q 0 0
 p 0−1 q  0  = 0
0 p p−1 0

с дополнительным условием s1 + s2 + s3 = 1:


 (q − 1)s1 + qs2 + 0 · s3 = 0
ps1 + (0 − 1)s2 + qs3 = 0


 0 · s1 + ps2 + (p − 1)s3 = 0
s1 + s2 + s3 = 1

Поскольку система переопределена, вычеркнем любое уравнение (кроме последнего):



 (q − 1)s1 + qs2 + 0 · s3 = 0
ps1 + (0 − 1)s2 + qs3 = 0 .
s1 + s2 + s3 = 1

Решая систему, получим:

q2 pq p2
s1 = , s 2 = , s 3 = . N
q 2 + pq + p2 q 2 + pq + p2 q 2 + pq + p2

2.3.2 Работа телефонного коммутатора


Пример 2.11. Исследуемая система (коммутатор) может принимать два состоя-
ния: она может быть свободной в момент времени t с вероятностью P0 (t) и занятой с
вероятностью P1 (t). Если линия свободна, то за промежуток времени ∆t на комму-
татор приходит сигнал с вероятностью α∆t, и переводит систему в состояние занято.
Если коммутатор занят, то с вероятностью β∆t он обрабатывает сигнал и переходит
в состояние свободно. Найти предельное состояние системы при α = 0.5; β = 0.3.

Решение. Допустим, что в момент времени (t + ∆t) система была свободна. Это
означает, что в предыдущий момент времени t:

1. система находилась в состоянии свободно P0 (t) и на нее не пришел сигнал


(вероятность непоступления сигнала равна 1 − α∆t);

2. система находилась в состоянии занято P1 (t), но за промежуток времени ∆t


запрос был обработан с вероятностью β∆t.
2.3. Теория массового обслуживания 65

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

P0 (t + ∆t) = P0 (t)(1 − α∆t) + P1 (t)β∆t

или
P0 (t + ∆t) − P0 (t) = −P0 (t)α∆t + P1 (t)β∆t.
Разделим обе части уравнения на ∆t и возьмем предел ∆t → 0

P0 (t + ∆t) − P0 (t)
lim = −P0 (t)α + P1 (t)β
∆t→0 ∆t
Поскольку, по определению производной

P0 (t + ∆t) − P0 (t) dP0 (t)


lim = = P00 ,
∆t→0 ∆t dt
то мы получили дифференциальное уравнение первого порядка
0
P0 = −P0 α + P1 β.

Теперь допустим, что в момент времени (t + ∆t) система была занята. Это озна-
чает, что в предыдущий момент времени t:

1. система находилась в состоянии свободно (с вероятностью P0 (t)) и на нее при-


шел сигнал (вероятость поступления сигнала равна α∆t);

2. система находилась в состоянии занято (с вероятностью P1 (t)) и за промежуток


времени ∆t запрос так и не был обработан (вероятность необработки сигнала равна
1 − β∆t).

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

P1 (t + ∆t) = P0 (t)α∆t + P1 (t)(1 − β∆t),

или
P1 (t + ∆t) − P1 (t) = P0 (t)α∆t − P1 (t)β∆t.
Разделим обе части уравнения на ∆t и возьмем предел ∆t → 0:
0
P1 = αP0 − βP1 .

Предполагая, что в начальный момент времени t = 0 система была свободной (с


вероятностью P0 (0) = 1 (тогда P1 (0) = 0)) мы получим систему дифференциальных
уравнений  0
P0 = −αP0 + P1 β, P0 (0) = 1,
0
P1 = P0 α − P1 β, P1 (0) = 0.
66 Глава 2. Каналы связи

Для получения данного решения в математическом пакете Maple необходимо


ввести следующие операторы задающие систему дифференциальных уравнений:
> s1 := dif f (p0(t), t) + a ∗ p0(t) − b ∗ p1(t); (нажать Shift+Enter)
s2 := dif f (p1(t), t) − a ∗ p0(t) + b ∗ p1(t); (нажать Enter)
 
d
s1 := (p0(t) + ap0(t) − bp1(t)
dt
 
d
s2 := (p1(t) − ap0(t) + bp1(t)
dt
Решение ищем с учетом краевых условий (p0 (0) = 1, p1(0) = 0):

> dsolve([s1, s2, p0(0) = 1, p1(0) = 0], p0(t), p1(t));




β α −(β+α)t
p0(t) = + e
β+α β+α
α α −(β+α)t
p1(t) = − e
β+α β+α
Для конкретных значений α = 0.5; β = 0.3 несложно получить и графики зави-
симости состояния системы p0(t) и p1(t) от времени
> a := 0.5; b := 0.3;


p0(t) := b/(a + b) + a ∗ exp((−a − b) ∗ t)/(a + b);

p1(t) := (−a ∗ exp((−a − b) ∗ t) ∗ b/(a + b) + a ∗ b/(a + b))/b;
> plot([p0(t), p1(t)], t = 0..5);


При t → ∞ предельные состояния системы


имеют вид
p (t)
1
β α
P0 (t) = , P1 (t) = .
α+β α+β

p (t) Из графика видно, что кривая вероятности


0
свободного состояния пересекается с кривой
0 t* t загруженного состояния.
Это означает, что после достижения некоторого времени t∗ система перестанет справ-
ляется с потоком заявок. Поэтому необходимо либо увеличивать производительность
системы (уменьшить время обслуживания заявки), либо уменьшить сам поток за-
явок. N
2.3. Теория массового обслуживания 67

Ниже показан скриншот решения данной задачи в Maple.

P0( t )

0.5
P1( t )

P2( t )

t
0 2 4 6 8 10

1
P0( t )

0.5
P1( t )
P2( t )
P3( t )
P5( t )
t
0 2 4 6 8 10
68 Глава 2. Каналы связи

Пример 2.12. Исследуется микропроцессор, рассчитанный на одновременное


обслуживание 3 контроллеров. Найти предельное состояние системы, если вероят-
ность поступления прерывания на микропроцессор за промежуток времени ∆t рав-
на α∆t. Вероятность обработки прерывания за промежуток времени ∆t равна β∆t.
(α = 0.3 , β = 0.5)

Решение.
Обозначим через P0 (t) вероятность того, что микропроцессор свободен (на него
не поступило ни одного прерывания). Тогда P1 (t) - вероятность обработки микро-
процессором одного прерывания, P2 (t) - двух прерываний, P3 (t)-трех прерываний.
Введем обозначения для следующих состояний микропроцессора:
x0 - свободен;
x1 - занят ровно один вход
x2 -занято два входа
x3 -заняты все три входа.
0. Допустим, что в момент времени (t + ∆t) система была свободна. Это означает,
что в предыдущий момент времени t:

1. система находилась в состоянии свободно x0 (с вероятностью P0 (t)) и на нее не


пришел сигнал (вероятность непоступления сигнала равна 1 − α∆t);

2. система находилась в состоянии занято x1 , (с вероятностью P1 (t)), но за про-


межуток времени ∆t запрос был обработан с вероятностью β∆t.

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

P0 (t + ∆t) = P0 (t)(1 − α∆t) + P1 (t)β∆t

или
P0 (t + ∆t) − P0 (t) = −P0 (t)α∆t + P1 (t)β∆t.
Разделим обе части уравнения на ∆t и возьмем предел ∆t → 0
P0 (t + ∆t) − P0 (t)
lim = −P0 (t)α + P1 (t)β
∆t→0 ∆t
Поскольку, по определению производной
P0 (t + ∆t) − P0 (t) dP0 (t)
lim = = P00 ,
∆t→0 ∆t dt
то мы получили дифференциальное уравнение первого порядка
0
P0 = −P0 α + P1 β.

1. Теперь допустим, что в момент времени (t + ∆t) микропроцессор был занят


обработкой одного прерывания. Это означает, что в предыдущий момент времени t:
2.3. Теория массового обслуживания 69

1. система находилась в состоянии x0 свободно (с вероятностью P0 (t)) и на нее


пришел сигнал (вероятность поступления сигнала равна α∆t);
2. система находилась в состоянии x1 и за промежуток времени ∆t система не
обработала прерывание и на нее не пришел ни один сигнал (вероятность 1 −
α∆t − β∆t).
3. система находилась в состоянии x2 и за промежуток времени ∆t обработал один
запрос из двух (вероятность 2β∆t).

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


P1 (t + ∆t) = P0 (t)α∆t + P1 (t)(1 − α∆t − β∆t) + 2β∆tP2 (t),
или
P1 (t + ∆t) − P1 (t) = P0 (t)α∆t − (α + β)P1 (t)∆t + 2P2 (t)β∆t.
Разделим обе части уравнения на ∆t и возьмем предел ∆t → 0:
0
P1 = αP0 − (α + β)P1 + 2βP2.
2. Теперь допустим, что в момент времени (t + ∆t) микропроцессор находился в
состоянии x2 (был занят обработкой двух прерываний). Это означает, что в преды-
дущий момент времени t:

1. система находилась в состоянии x1 (с вероятностью P1 (t)) и на нее пришел


сигнал (с вероятностью α∆t);
2. система находилась в состоянии x2 (с вероятностью P2 (t)) и за промежуток вре-
мени ∆t запрос так и не был обработан и не пришел ни один запрос (вероятность
1 − α∆t − 2β∆t).
3. микропроцессор был полностью загружен обработкой трех прерываний (с веро-
ятностью P3 (t)) и за промежуток времени ∆t обработал одно из 3 прерываний.
Т.е. перешел из состояния x3 в состояние x2 с вероятностью 3β∆t.

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


P2 (t + ∆t) = P1 (t)α∆t + P2 (t)(1 − α∆t − 2β∆t) + 3β∆tP3 (t),
или
P2 (t + ∆t) − P2 (t) = P1 (t)α∆t − P2 (t)(α + 2β)∆t + P3 (t)3β∆t.
Разделим обе части уравнения на ∆t и возьмем предел ∆t → 0:
0
P2 = αP1 − (α + 2β)P2 + 3βP3 .
3. Теперь допустим, что в момент времени (t + ∆t) микропроцессор находился в
состоянии x3 (был полностью загружен). Это означает, что в предыдущий момент
времени t:
70 Глава 2. Каналы связи

1. система находилась в состоянии x2 (с вероятностью P2 (t)) и на нее пришел


сигнал (с вероятностью α∆t);

2. система находилась в состоянии x3 (с вероятностью P3 (t)) и за промежуток


времени ∆t запрос так и не был обработан ни один из 3 запросов (вероятность
необработки сигналов равна 1 − 3β∆t).

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

P3 (t + ∆t) = P2 (t)α∆t + P3 (t)(1 − 3β∆t),

или
P3 (t + ∆t) − P3 (t) = P2 (t)α∆t − 3P3 (t)β∆t.
Разделим обе части уравнения на ∆t и возьмем предел ∆t → 0:
0
P3 = αP2 − 3βP3 .

Предполагая, что в начальный момент времени t = 0 система была свободной (с


вероятностью P0 (0) = 1 (тогда P1 (0) = 0, P2 (0) = 0, P3 (0) = 0) мы получим систему
дифференциальных уравнений
 0
P = −αP0 + P1 β, P0 (0) = 1,
 00


P1 = P0 α − (α + β)P1 + 2P2 β, P1 (0) = 0,
0
P = P 1 α − (α + 2β)P 2 β + 3P 3 β, P2 (0) = 0,
 20


P3 = P2 α − 3P3 β, P3 (0) = 0.

Для конкретных значений α = 0.3; β = 0.3 график решений принимает вид

P0( t )

0.5
P1( t )

P2( t )

t
0 2 4 6 8 10

Из графика видно, что кривые вероятности свободного состояния P0 (t) не пересе-


кается с кривыми загруженного состояния. Это означает, что система справляется с
потоком заявок и ее производительности хватает на обслуживание всех прерываний.
N
2.3. Теория массового обслуживания 71

Ниже показан скриншот решения данной задачи в Maple.

P0( t )

0.5
P1( t )

P2( t )

t
0 2 4 6 8 10

1
P0( t )

0.5
P1( t )
P2( t )
P3( t )
P5( t )
t
0 2 4 6 8 10
72 Глава 2. Каналы связи

Задача 2.7. Рассматривается работа офисной мини-АТС, рассчитанной на од-


новременное обслуживание n абонентов (n-канальная система). Найти предельное
состояние системы.

N n α β N n α β N n α β
1 5 0.21 0.36 11 5 0.11 0.31 21 7 0.21 0.19
2 6 0.22 0.37 12 6 0.12 0.32 22 6 0.22 0.20
3 7 0.23 0.38 13 5 0.13 0.33 23 7 0.23 0.21
4 6 0.24 0.39 14 6 0.14 0.34 24 5 0.24 0.22
5 5 0.25 0.40 15 7 0.15 0.35 25 6 0.25 0.23
6 6 0.26 0.41 16 6 0.16 0.49 26 7 0.26 0.24
7 5 0.27 0.42 17 5 0.17 0.50 27 4 0.27 0.25
8 6 0.28 0.43 18 6 0.18 0.21 28 6 0.28 0.46
9 7 0.29 0.44 19 7 0.19 0.33 29 5 0.29 0.47
10 6 0.30 0.45 20 6 0.20 0.34 30 7 0.30 0.48

2.3.3 Система массового обслуживания с ожиданием


Рассмотрим ситуацию, в которой заявка, заставшая все n каналов занятыми, стано-
вится в очередь и ждет, пока не освободится какой либо канал. Очевидно, что для
постановки заявки в очередь должны быть выделены соответствующие ресурсы (объ-
ем кэш-памяти процессора, количество мест в приемной у начальника). Если ресурсы
(места) для ожидания заполнены, то заявка в очередь не становится. Обозначим
α∆t- вероятность поступления заявки в систему;
β∆t- вероятность обслуживания заявки;
γ∆t- вероятность ухода заявки из очереди.
В общем случае n-канальная система с k-разрядной памятью (память удержива-
ющая k-заявок) может принимать следующие состояния
x0 -все каналы свободны;
x1 -один канал занят;
x2 -два канала заняты;
...
xn -все n-каналов заняты;
xn+1 -все каналы заняты и одна заявка в очереди;
xn+2 -занято два места в очереди;
...
xn+k -заняты все n-каналов и k-мест в очереди.
2.3. Теория массового обслуживания 73

Система дифференциальных
 0 уравнений для данного случая принимает вид
 P0 = −αP0 + βP1
 0
P 1 = P0 α − (α + β)P1 + 2βP2



 0



 P2 = P1 α − (α + 2β)P2 + 3βP3
...




 0
Pn−1 = Pn−2 α − (α + (n − 1)β)Pn−1 + nβPn
0

 Pn = Pn−1 α − (α + nβ)Pn + (nβ + γ)Pn+1
0
Pn+1 = Pn α − (α + nβ + γ)Pn+1 + (nβ + 2γ)Pn+2



 0
Pn+2 = Pn+1 α − (α + nβ + 2γ)Pn+2 + (nβ + 3γ)Pn+3




...




 0
Pn+k = Pn+k−1α − (nβ + kγ)Pn+k
Начальные условия P0 (0) = 1, P1 (0) = P2 (0) = P3 (0) = P4 (0) = ... = Pn+k (0) = 0.

Пример 2.13. На 3 канальный коммутатор с 2 разрядной памятью приходит


поток заявок. Вероятность поступления заявки на коммутатор за промежуток вре-
мени ∆t равна α∆t; вероятность обслуживания β∆t; вероятность ухода заявки из
очереди γ∆t.
Найти предельное состояние системы при α = 0.5; β = 0.3.
Решение.
Система может принимать одно из следующих возможных состояний:
x0 -ни один канал не занят
x1 -занят ровно один канал
x2 -занято два канала
x3 -заняты три канала
x4 -заняты все каналы, и одна заявка стоит в очереди
x5 - заняты все каналы, и две заявки стоит в очереди

Тогда, система дифференциальных уравнений для соответствующих вероятно-


стей имеет вид:

 0 1
 P 0 = −P 0 α + P 1 β P0( t )
 0
 P = P0 α − (α + β)P1 + 2βP2
 10



P2 = P1 α − (α + 2β)P2 + 3βP3
0

 P3 = P2 α − (α + 3β)P3 + (3β + γ)P4
0
P = P3 α − (α + 3β + γ)P4 + (3β + 2γ)P5 0.5


 40


P5 = P4 α − (3β + 2γ)P5 P1( t )
P2( t )
Начальные условия P0 (0) = 1, P3( t )
P1 (0) = P2 (0) = P3 (0) = P4 (0) = P5 (0) = 0. P5( t )
t
0 2 4 6 8 10
Для конкретных значений α = 0.5; β = 0.3; γ = 0.1 график решений принимает
вид, показанный на рисунке.
74 Глава 2. Каналы связи

Задача 2.8. Рассматривается работа офисной мини-АТС, рассчитанной на одно-


временное обслуживание n абонентов (n-канальная система), которая может держать
в памяти (на очереди k вызовов). Найти предельное состояние системы.

N n k α β γ N n k α β γ
1 2 1 0.11 0.36 0.21 16 3 3 0.11 0.21 0.36
2 3 2 0.12 0.37 0.22 17 2 1 0.12 0.22 0.37
3 4 3 0.13 0.38 0.23 18 1 2 0.13 0.23 0.38
4 3 2 0.14 0.39 0.24 19 2 2 0.14 0.24 0.39
5 2 1 0.15 0.40 0.25 20 3 1 0.15 0.25 0.40
6 1 2 0.16 0.41 0.26 21 4 2 0.16 0.26 0.41
7 2 3 0.17 0.42 0.27 22 3 4 0.17 0.27 0.42
8 3 2 0.18 0.43 0.28 23 2 3 0.18 0.28 0.43
9 4 1 0.19 0.44 0.29 24 1 3 0.19 0.29 0.44
10 3 2 0.20 0.45 0.30 25 2 1 0.20 0.30 0.45
11 2 3 0.21 0.46 0.31 26 3 2 0.21 0.31 0.46
12 1 2 0.22 0.47 0.32 27 4 4 0.22 0.32 0.47
13 2 1 0.23 0.48 0.33 28 3 1 0.23 0.33 0.48
14 3 3 0.24 0.49 0.34 29 2 3 0.24 0.34 0.49
15 4 2 0.25 0.50 0.35 30 1 4 0.25 0.35 0.50

2.4 Стандарт сотовой связи GSM


Система синхронизации рассчитана на компенсацию абсолютного времени задержки
сигналов до 233 мкс, что соответствует максимальной дальности связи или макси-
мальному радиусу ячейки (соты) 35 км.
Общая скорость преобразования речевого сигнала - 13 кбит/с.
Скорость передачи сообщений в радиоканале, кбит/с 270, 833
Скорость преобразования речевого кодека, кбит/с 13
Ширина полосы канала связи, кГц 200
Максимальное количество каналов связи 124
Максимальное количество каналов, организуемых в базовой станции 16-20

Стандарт GSM разработан для создания сотовых систем подвижной связи в сле-
дующих полосах частот: 890-915 МГц - для передачи мобильными станциями (теле-
фоном) (линия "вверх"); 935-960 МГц- для передачи базовыми станциями (сотовой
антенной) (линия "вниз").
Каждая из полос, выделенных для сетей GSM, разделяется на частотные каналы.
Разнос каналов составляет 200 кГц, что позволяет организовать в сетях GSM 124 ча-
стотных канала. Частоты, выделенные для передачи сообщений подвижной станцией
на базовую и в обратном направлении, группируются парами, организуя дуплексный
канал с разносом 45 МГц. Эти пары частот сохраняются и при перескоках частоты.
2.4. Стандарт сотовой связи GSM 75

Каждая сота характеризуется фиксированным присвоением определенного количе-


ства пар частот.
Если обозначить FI (п) - номер несущей частоты в полосе 890-915 МГц, Fu (n) -
номер несущей частоты в полосе 935-960 МГц, то частоты каналов определяются по
следующим формулам: FI (n) = 890,2 + 0,2 (n-1), МГц; Fu (n) = FI (n) + 45, МГц;
1<п<124.

Этим каналам присваиваются номера (n) от 0 до 123. Тогда частоты восходящего


(FR) и нисходящего (FF) направлений каждого из каналов можно вычислить по
формулам: FR(n) = 890+0.2n (МГц), FF(n) = FR(n) + 45 (МГц).
Аналогичное разделение организуется и для GSM-1800. Для передатчиков сотово-
го телефона выделяются частоты 1710-1785 MHz, а для передатчиков базовых стан-
ций: 1805-1880 MHz. Тогда при ширине в 200 KHz в каждом направлении выделяется
374 канала с разносом частоты в 95 MHz.
Одна базовая станция стандарта GSM обычно способна поддерживать до 12 пе-
редатчиков, а каждый передатчик способен одновременно поддерживать связь с 8-ю
общающимися абонентами (8 каналов). Один из каналов выделяется как управляю-
щий канал или канал вызова. Все БС системы соединены с АТС по выделенным
проводным (оптическими) или радиорелейным каналам связи.

Работа MS
Каждый мобильный телефон имеет кнопку положение трубки, которая может
быть в состоянии трубка поднята и трубка положена. Когда «трубка положена»,
телефон постоянно сканирует либо все каналы системы, либо только управляющие.
Во время набора номера радиотелефон занимает тот свободный канал, уровень сиг-
нала в котором особенно велик. По мере удаления абонента от данной базовой стан-
ции и перемещения его в зону действия другой БС, уровень сигнала падает и каче-
ство разговора ухудшается. Специальная процедура, называемая передачей управ-
ления вызовом или «эстафетной передачей» (в иностранной технической литературе
- handover или handoff), позволяет переключить разговор на свободный канал дру-
гой БС, в зоне действия которой оказался абонент. Для осуществления «эстафетной
передачи» БС снабжена специальным приемником, периодически измеряющим уро-
вень сигнала сотового телефона и сравнивающего его с допустимым пределом. Если
сигнал слишком мал, информация об этом автоматически передается на коммутатор.
ЦКП выдает команду об измерении уровня сигнала на ближайшие к нему базовые
станции. После чего разговор переключается на ту из них, где величина измеренного
сигнала оказалась наибольшей. Все занимает доли секунды. В зависимости от загру-
женности каналов телефон так же может выбирать между сетью 900 и 1800 МГц,
причем переключение возможно даже во время разговора абсолютно незаметно для
говорящего.

Вызов подвижного абонента. Для поиска мобильного абонента всеми базо-


выми станциями системы по управляющим каналам передается «широковещатель-
ный» сигнал вызова. Сотовый телефон, который постоянно сканирует каналы (обыч-
76 Глава 2. Каналы связи

но управляющие), отвечает на одном из них. Базовые станции, принявшие ответный


сигнал, передают информацию на коммутатор, который, в свою очередь, переклю-
чает разговор на ту БС. Где после измерения уровень сигнала оказался наибольшим.
Базовая станция
Рассмотрим подробнее принципы работы базовых станций.

Антенна
Базовая станция осуществляет связь с абонентами при помощи приемо-передатчиков
(TRX - transmitter/receiver). 1 базовая станция может обслуживать до 24 приемо-
передатчиков (антенн).
Антенны бывают: 360◦, 120◦, 60◦ , поэтому можно создавать соты с 1 антенной, и
теоретически построить сеть из 24 сот на 1 БС. Ширины диаграммы направленности
антенн в вертикальной плоскости, составляющей обычно менее 10◦ . Часто антенны,
размещенные на мачте, имеют незначительный угол наклона, то есть они слегка опу-
щены вниз таким образом, чтобы специально ограничить радиус действия станций.
Это позволяет, в связи с выше сказанным, неоднократно использовать одни и те же
каналы на других базовых станциях, расположенных на относительно небольшом
расстоянии.

В распоряжение каждой базовой станции может быть предоставлено от одной до


16 частот
По статистическим оценкам количество звонящих составляет 16 чел. на 1000 або-
нентов. Поэтому на 500 чел. хватит 1 антенны (8 каналов).

Приемо-передатчик
Мощность излучения приемо-передатчика непостоянна во времени и зависит от
количества абонентов, обслуживаемых БС в данный момент. Максимальная, мощ-
ность на выходе передатчика может составлять около 30 Вт при работе на частоте
1800 МГц и 300 Вт – на частоте 900 МГц, но реально на практике не превышает 5-10
Вт на несущую.

Классификация мощности GSM900 на 1998 г.


Класс Максимальный уровень Базовая
мощности мощности передатчика станция
1 20 Вт 320W
2 8 Вт 160W
3 5 Вт 80W
4 2 Вт 40W
5 0.8 Вт 20W
6 10W
7 5W
8 2.5W
В качестве сравнения заметим, что СВЧ печь имеет частоту 2450MHz и при 500W
без труда разогревает 50 граммовую сосиску. 2450MHz - это одна из резонансных
2.4. Стандарт сотовой связи GSM 77

частот колебаний молекул воды. Мощность 650nm ИК лазера DVD - 0.1W. Спут-
никовые передающие антенны, находящиеся на геостационарных орбитах в космосе
на расстоянии 35 тыс. км от Земли, питаются от солнечных батарей, поэтому мощ-
ность передающего сигнала очень невелика - как правило, 150 ватт - и рассеивается
она по огромной площади. Современные наземные ТВ-передатчики в городах имеют
мощность от 100 ватт (в районах) до 25 кВт (в областных центрах).
Мощность излучения сотового телефона меняется от 0.5W до 2W в зависимости
от расстояния до базовой станции. Однако, далее мы увидим, что средняя мощность
телефона в 8 раз меньше установленной, поскольку 7/8 передача не ведется и антена
не излучает.

Кодирование речи

С микрофона речевой сигнал поступает в речевой кодек1 . Там он на первом этапе


сегментируется (разбивается на сегменты длительностью 20 мс), а затем преобра-
зуется в цифровой поток со скоростью 13 кбит/с (один сегмент составляет кодовую
последовательность из 260 бит). Поскольку частотный спектр передаваемого сигнала
ограничен узкой полосой пропускания радиотракта, речь кодируют по специально-
му алгоритму LCP-LTP-RPE-кодирования. Следует отметить, что GSM-кодирование
оптимизировано исключительно для передачи речи с максимальным качеством.

Ранее мы рассматривали теорему Найквиста, согласно которой частота "оцифров-


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

Речевой кодек передает каждые 260 бит информационной последовательности со


скоростью 13 кбит/с на схему канального кодирования. Первые 182 бита этого кад-
ра, называемые в стандарте GSM битами 1 класса, защищаются с помощью слабого
блочного кода для обнаружения ошибок в приемнике.

Кодирование осуществляется следующим образом: биты класса 1 разделяются до-


полнительно на проверки на четность. Блочный код представляет собой укороченный
систематический 50 бит класса 1а и 132 бита класса 1б. Биты класса 1а дополняются
тремя битами циклический код (53, 50).

В соответствии с принятым правилом формирования систематического кода, ключ


Sw закрыт на время первых пяти-десяти тактовых импульсов, а информационные
биты, поступающие на вход кодирующего устройства, одновременно поступают на
блок переупорядочения и формирования бит проверки на четность. После пятидеся-
ти тактовых импульсов переключатель Sw срабатывает и биты проверки на четность
поступают из кодирующего устройства. На этой стадии проводится первый шаг пере-
межения. Биты с четными индексами собираются в первой части информационного
1
Частотный диапазон человеческого голоса: Бас 75-330Hz; Тенор 120-500Hz; Меццо-сопрано 170-
700Hz; Сопрано 230-1100.
78 Глава 2. Каналы связи

слова, за которыми следуют три бита проверки на четность. Затем биты с нечетны-
ми индексами запоминаются в буферной памяти и переставляются. Далее следуют
четыре нулевых бита, которые необходимы для работы кодера, формирующего код,
исправляющий случайные ошибки в канале. После чего 189 бит класса 1 кодируются
сверточным кодом (2,1,5) со скоростью г=1/2.

После сверточного кодирования общая длина кадра составляет 2х189+78=456 бит.


После этого кадр из 456 бит делится на восемь 57 битовых подблоков, которые под-
вергаются диагональному и внутрикадровому перемежению. Более точно подблоки
В0 и В4 формируются в пакеты по 114 бит, которые являются результатом блочно-
диагонального перемежения (DI/B). Биты В0 и В4 подблоков попарно перемежают-
ся, образуя процесс внутрикадрового битового перемежения (IBI/B). В результиру-
ющий пакет включены два опережающих флага h1, h0, которые используются для
классификации различных пакетов передачи

Структура связи MS-BS


При каждом соединении сигнал преобразуется в цифровой поток информации,
то есть оцифровывается, и далее 456bt. блоки разбивается на небольшие пакеты
по 148bt. На передачу каждого пакета отводится интервал длительностью 0,577 мс,
каждые 4,616 мс (то есть точно 8 х 0,577). Следовательно, мобильный телефон в
режиме соединения выдает пачку очень коротких импульсов каждые 4,616 мс, что
соответствует скорости 32.116kbs и частоте 217Hz. Именно непосредственным детек-
тированием этих импульсных сигналов и объясняется характерное низкочастотное
гудение в трубке телефона, которое слышно, когда мобильный телефон использует-
ся слишком близко от различной аудиоаппаратуры, имеющей недостаточно хорошее
экранирование. Заметим, что скорость передачи данных с одного телефона в этом
случае составляет 148bt × 217Hz = 32.116kbs. В тоже время при полной загрузке 8
каналов скорость приема-передачи трансивера составит 32.116kbs × 8 = 257kbs.

Когда абонент получает канал, ему выделяется не только частотный канал, но и


один из конкретных канальных интервалов, и он должен вести передачу в строго от-
веденном временном интервале, не выходя за его пределы - иначе будут создаваться
помехи в других каналах.
Система с разделением частот (FDMA) позволяет получить 8 каналов по 25кГц
(200 = 8 × 25), которые, в свою очередь, разделяются по принципу системы с разде-
лением времени (TDMA) еще на 8 каналов. В GSM используется GMSK-модуляция,
а несущая частота изменяется 217 раз в секунду для того, чтобы компенсировать
возможное ухудшение качества.
В каждом частотном канале данные передаются в 8 канальных интервалах (КИ),
т.е. используется временное разделение каналов. Длительность КИ - 576.56 mks. В
начале и в конце КИ отводится по 28 mks на затухание переходных процессов, в
ходе которых мощность излучения передатчика меняется на 70dB (вверх или вниз) и
30.44mks защитного времени (Shield Time), в течение которого передатчик "молчит".
Полезная продолжительность КИ - 546.12mks служит для передачи 148bt.
2.4. Стандарт сотовой связи GSM 79

Полезная длительность КИ Защитное


546.12 mks, 148bt время
30.44mks
Переходные 3bt(флаг)+57bt+1bt+ Переходные
процессы +26bt(синхронизация)+ процессы
28mks 1bt+57bt++3bt 28mks

Базовая станция (BS) всегда передает на три канальных интервала раньше по-
движного аппарата (HS).

Передача сигнала на АТС


Транскодер обычно располагается вместе с MSC, тогда передача цифровых сооб-
щений в направлении к контроллеру базовых станций - BSC ведется с добавлением
к потоку со скоростью передачи 13 кбит/с, дополнительных битов (стафинг) до ско-
рости передачи данных 16 кбит/с. Затем осуществляется уплотнение с кратностью
4 в стандартный канал 64 кбит/с. Так формируется определенная Рекомендация-
ми GSM 30-канальная ИКМ линия, обеспечивающая передачу 120 речевых каналов.
Шестнадцатый канал (64 кбит/с), "канальный интервал", выделяется отдельно для
передачи информации сигнализации и часто содержит трафик SS N7 или LAPD. В
другом канале (64 кбит/с) могут передаваться также пакеты данных, согласующиеся
с протоколом Х.25 МСЭ-Т.
Таким образом, результирующая скорость передачи по указанному интерфейсу
составляет 30х64 кбит/с + 64 кбит/с + 64 кбит/с = 2048 кбит/с.

сеть связывается с мобильным телефоном только в течение интервалов време-


ни длительностью 0,577 мс. При скорости 300 000 км/с радиоволнам потребуется
0,233 мс, чтобы преодолеть путь в 70 км (туда и обратно) между базовой станцией и
мобильным телефоном. За пределами радиуса действия 35 км пакеты битов, переда-
ваемые сотовым телефоном, достигают базовой станции в тот момент, когда она уже
прекратила их ожидание и перешла на прием сигнала от другого сотового телефона.

Когда мобильный аппарат находит базовую станцию и происходит синхрониза-


ция, контроллер базовой станции формирует полнодуплексный канал на мобильный
коммутирующий центр через фиксированную сеть. Центр передает информацию о
мобильном терминале в четыре регистра: посетительский регистр подвижных або-
нентов или "гостей"(VLR - Visitor Layer Register), "домашний"регистр местных по-
движных абонентов (HRL - Home Register Layer), регистр подписчика или аутен-
тификации (AUC - AUthentiCator) и регистр идентификации оборудования (EIR -
Equipment Identification Register). Эта информация уникальна и находится в пла-
стиковой абонентской микроэлектронной телекарточке или модуле (SIM - Subscriber
Identity Module), по которому производятся проверка правомочности абонента и та-
рификация.
80 Глава 2. Каналы связи

2.5 Стандарты зписи CD и DVD


Audio CD (Музыкальный компакт-диск)
Формат, являющийся родоначальником всех появившихся в последующем фор-
матов компакт-дисков. Год его рождения — 1980 год. Родителями стали компании
Philips и Sony. Стандарт CD-DA описывает те диски, которые предназначены для
записи цифрового звука. В стандарте были определены физические параметры и оп-
тические характеристики дисков, системы модуляции сигнала, коррекции ошибок,
а также порядок размещения на диске информации и управляющих данных. Этим
стандартом был введен самый распространенный сейчас формат оцифровки звука: 1
б-разрядное квантование с частотой дискретизации 44.1 кГц. Для тех, кому далеки
эти термины, разъясним простыми словами. Они обозначают операции преобразова-
ния аналогового сигнала в цифровой. Чем больше частота дискретизации, тем точнее
цифровой сигнал воспроизводит аналоговый. Откуда же взялась цифра 44.1 кГц? На
самом деле тут все просто. По теореме Найквиста непрерывный сигнал можно точно
восстановить по его отсчетам, если частота дискретизации вдвое больше максималь-
ной звуковой частоты в сигнале. Объясним простыми словами это сложное изрече-
ние. Так как человек может слышать звук частотой от 20 кГц, частота дискретизации
должна быть как минимум в два раза больше, то есть не менее 40 кГц. На сегодня
распространены частоты 44.1 кГц и 48 кГц. Оцифровка звука выполняется с помо-
щью аналого-цифрового преобразователя (АЦП) и называется импульсно-кодовой
модуляцией (ИКМ). Но этим процессом дело не заканчивается. Звук подвергается
дальнейшему преобразованию. Сначала оформляются микрокадры, содержащие по
шесть отсчетов с двух каналов (стерео), размером 6x2x16=192 бита или 24 байта. 98
микрокадров составляют блок (сектор) размером 2352 байта. Размер одинаков для
всех стандартов, основанных на CD-DA. В формате Audio CD все байты задейство-
ваны под звук, а в некоторых других форматах (CD-ROM) часть сектора отводится
под служебные данные. На следующем этапе блок кодируется для защиты от ошибок
чтения (CIRC). При этом каждому микрокадру добавляется 8 контрольных байтов.
Но это еще не все. В начало микрокадра вставляются 24 бита синхронизации и один
символ (8 бит) субкода, а также биты слияния — по три между байтами. Затем микро-
кадр подвергается канальному кодированию — модуляции 8/14 (EFM). В результате
каждый байт превращается в слово из 14 бит, называемых канальными битами. В
итоге микрокадр, содержащий 24 байта данных, занимает 24 (синхронизация) + 3
(биты слияния) + 14 (байт субкода) + 3 (биты слияния) + (14 + 3) х 32 (байты
данных с битами слияния) = 588 битов. Это и есть физический кадр стандарта CD-
DA. Скорость воспроизведения музыкального диска с 16-разрядным стереозвуком и
частотой 44.1 кГц равна 2x16x44100/8=176400 байт/с. Отсюда можно получить ско-
рость чтения 176400/2352=75 секторов в секунду. Сектора объединяются в дорожки.
Регламентировано минимальное количество блоков в одной дорожке. Их не должно
быть меньше 300. Есть ограничения и на количество дорожек. Их не должно быть
больше 99. Хотя число созданных дорожек обычно больше чем одна, на самом деле на
компакт-диске находится одна большая дорожка (примерно 5000 м) в виде спирали,
2.5. Стандарты зписи CD и DVD 81

начинающаяся изнури диска и заканчивающаяся на внешнем крае. Адрес сектора за-


дается во временном формате минута:секунда:сектор (1/75 секунды), что досталось
в наследство от грампластинок. Чтобы при разной скорости чтения не получилось
расхождение, расчет времени производится исходя из одноразовой скорости. Каждая
композиция обычно содержит собственную дорожку. При необходимости пауз между
дорожками вставляются зазоры (150 блоков=2 секунды). Теперь разберемся, куда на
диске записываются данные стандарта CD-DA (рис. 1.4). Эта часть диска называется
информационной. Она состоит из трех зон. Подробно рассмотрим каждую из них:
• Зона lead-in. Находится на внутреннем краю информационной области. Представ-
ляет собой одну дорожку, состоящую из нулей и заканчивающуюся двухсекундным
интервалом пустых блоков. Эта зона отвечает за синхронизацию читающей головки
перед чтением данных. В субканале Q находится таблица оглавления диска (ТОС),
адреса фрагментов, формат дорожек, обозначение временных меток, сведения о про-
изводителе, время выпуска альбома (данные соответствуют стандарту ISRC, между-
народному стандартному коду записи), а также с помощью него можно разделить
дорожку до 99 фрагментов. • Зона lead-out. Находится на внешнем краю диска и
отделена от зоны данных двух-трехсекундным интервалом единиц. Содержит в себе
нули и единицы, чередующиеся между собой с частотой 2 Гц и служит для обозна-
чения конца записанной области. Не содержащие зоны lead-out диски могут быть не
прочитаны на некоторых проигрывателях.• Зона данных (Program Area). Содержит
сами данные, состоящие из одной или нескольких дорожек. Номера треков состоят
из десятичных цифр и хранятся в формате XX. Поэтому максимально возможное
число получается 99. Дорожка с номером АА служит в качестве выводной зоны.
Спиральный трек совершает 22188 оборотов по кругу CD, проходя примерно
шестьсот оборотов на миллиметр при движении в направлении края диска
Второе – именно на поликарбонате, в прямом смысле этого слова, печатается
информация с матрицы — будь то фильм, музыка или программы. Как сообщает
нам Вики
Естественно, что поликарбонат и лак прозрачны для лазерного излучения, по-
этому «напечатанную» информацию для лазера необходимо сделать «видимой», для
чего поверхность покрывают тонким слоем алюминия (слой B).
глубина вложенности каталогов - до 8, расширения в именах каталогов запрещены
и т.д.).
Reed–Solomon coding is a key component of the compact disc. It was the first use
of strong error correction coding in a mass-produced consumer product, and DAT and
DVD use similar schemes. In the CD, two layers of Reed–Solomon coding separated by a
28-way convolutional interleaver yields a scheme called Cross-Interleaved Reed Solomon
Coding (CIRC). The first element of a CIRC decoder is a relatively weak inner (32,28)
Reed–Solomon code, shortened from a (255,251) code with 8-bit symbols. This code can
correct up to 2 byte errors per 32-byte block. More importantly, it flags as erasures any
uncorrectable blocks, i.e., blocks with more than 2 byte errors. The decoded 28-byte
blocks, with erasure indications, are then spread by the deinterleaver to different blocks
of the (28,24) outer code. Thanks to the deinterleaving, an erased 28-byte block from the
82 Глава 2. Каналы связи

inner code becomes a single erased byte in each of 28 outer code blocks. The outer code
easily corrects this, since it can handle up to 4 such erasures per block.
Свойства кодов Рида-Соломона Коды Рида-Соломона являются субнабором кодов
BCH и представляют собой линейные блочные коды. Код Рида-Соломона специфи-
цируются как RS(n,k) s-битных символов..
Это означает, что кодировщик воспринимает k информационных символов по s
бит каждый и добавляет символы четности для формирования n символьного кодо-
вого слова. Имеется n-k символов четности по s бит каждый. Декодер Рида-Соломона
может корректировать до t символов, которые содержат ошибки в кодовом слове, где
2t = n-k.
Диаграмма, представленная ниже, показывает типовое кодовое слово Рида-Соломона:
Рис. 2. Структура кодового слова R-S
Пример: Популярным кодом Рида-Соломона является RS(255,223) с 8-битными
символами. Каждое кодовое слово содержит 255 байт, из которых 223 являются ин-
формационными и 32 байтами четности. Для этого кода:
n = 255, k = 223, s = 8 2t = 32, t = 16
Декодер может исправить любые 16 символов с ошибками в кодовом слове: то
есть, ошибки могут быть исправлены, если число искаженных байт не превышает 16.
При размере символа s, максимальная длина кодового слова (n) для кода Рида-
Соломона равна n = 2s – 1.
Например, максимальная длина кода с 8-битными символами (s=8) равна 255
байтам.
Коды Рида-Соломона могут быть в принципе укорочены путем обнуления некото-
рого числа информационных символов на входе кодировщика (передавать их в этом
случае не нужно). При передаче данных декодеру эти нули снова вводятся в массив.
Пример: Код (255,223), описанный выше, может быть укорочен до (200,168). Ко-
дировщик будет работать с блоком данных 168 байт, добавит 55 нулевых байт, сфор-
мирует кодовое слово (255,223) и передаст только 168 информационных байт и 32
байта четности.
Объем вычислительной мощности, необходимой для кодирования и декодирова-
ния кодов Рида-Соломона зависит от числа символов четности. Большое значение t
означает, что большее число ошибок может быть исправлено, но это потребует боль-
шей вычислительной мощности по сравнению с вариантом при меньшем t.
Ошибки в символах Одна ошибка в символе происходит, когда 1 бит символа
оказывается неверным или когда все биты не верны.
Пример: Код RS(255,223) может исправить до 16 ошибок в символах. В худшем
случае, могут иметь место 16 битовых ошибок в разных символах (байтах). В лучшем
случае, корректируются 16 полностью неверных байт, при этом исправляется 16 x
8=128 битовых ошибок.
Коды Рида-Соломона особенно хорошо подходят для корректировки кластеров
ошибок (когда неверными оказываются большие группы бит кодового слова, следу-
ющие подряд).
Глава 3

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

При передаче сообщений по цифровым каналам она кодируется. Для простоты мы


будем в дальнейшем пользоваться таблицей ASCII1 ставящей в соответствие каждой
букве алфавита определенный шестнадцатеричный номер. Мы далее будем пользо-
ваться таблицей кодов ASCII (32-255) без управляющих символов:

0 1 2 3 4 5 6 7 8 9 A B C D E F
2 _ ! ” # $ % & ‘ ( ) ∗ + 0
− . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ∧ _
0
6 a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ∼ del
8 Ђ Ѓ ѓ „ . . . † ‡ z % Љ < Њ Ќ Ћ Џ

9 ђ ‘ ’ “ ” • – — * TM љ > њ ќ ћ џ
A Ў Ў J ¤ Ґ | § Ё c Є « q - r Ї
B ◦
± I i ґ µ ¶ · ё № є » j Ѕ s ї
C A Б В Г Д Е Ж З И Й К Л М Н О П
D Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
E а б в г д е ж з и й к л м н о п
F р с т у ф х ц ч ш щ ъ ы ь э ю я

Из данной таблицы следует, что для передачи одной буквы ее необходимо заме-
нить соответствующей 7-разрядной кодовой комбинацией. Любая 7-разрядная дво-
ичная комбинация представляет собой какой-то знак алфавита и если в процессе
передачи произойдет одна ошибка, то принятая комбинация будет принадлежать
1
ASCII (англ. American Standard Code for Information Interchange) — американский стандарт-
ный код для обмена информацией. ASCII - это кодировка для представления десятичных цифр,
латинского и национального алфавитов, знаков препинания и управляющих символов.

83
84 Глава 3. Теория помехоустойчивого кодирования

другому знаку. Например, если при передаче буквы "m" (6Dh = 11011012) произо-
шла ошибка во 2-м разряде (разряды считаем справа), то мы получим букву "o"
(11011112 = 6Fh ). Если возникающая ошибка просто переводит одну букву алфавита
в другую, то такую ошибку обнаружить не возможно.
Идея помехоустойчивого кодирования заключается в добавлении к сообщению
лишних символов, помогающих заметить ошибку. Теперь множество кодовых комби-
наций увеличивается и состоит из двух подмножеств:
- разрешенных комбинаций и
- запрещенных комбинаций.
Если в результате ошибки исходная комбинация перешла в множество запрещен-
ных, то ошибку можно обнаружить. Однако, возможно, что совокупность ошибок
переведет передаваемую кодовую комбинацию в другую разрешенную. Тогда вместо
одной буквы мы получим другую букву и ошибка не будет обнаружена.
Для того чтобы обнаруживать и исправлять ошибки, разрешенная комбинация
должна как можно больше отличаться от запрещенной. Расстоянием между двумя
комбинациями называется количество разрядов, которыми они отличаются. Напри-
мер расстояние между буквами "m" (1101101) и "o" (1101111) будет 1. Расстояние
между "a" (1100001) и "z" (1111010) будет 4. Весом комбинации называется количе-
ство в ней единиц. Очевидно что вес - это расстояние от нулевой комбинации (00000).
Поскольку сумма комбинаций есть другая комбинация, то по аналогии с векторной
алгеброй можно вычислять расстояние между комбинациями как вес их суммы (по
модулю 2: ⊕).

0101101

1001010
1100111 расстояние равно 5.

d0 =5

t=2 t=2

Здесь d0 - расстояние между разрешенными комбинациями, t область исправляемых


ошибок.
85

010 110

t=1 t=1

d=3
000 111
t=1 t=1
t=1 t=1
001 100 101 011
t=1

Например, если расстояние между кодовыми комбинациями (000) и (111) равно


d = 3, то любые единичные ошибки в этих комбинациях остаются в области t ≤ 1.
Т.е. области не пересекаются и ошибки могут быть исправлены.
Обозначая число (кратность) исправляемых ошибок через ti , а расстояние между
разрешенными (передаваемыми) комбинациями через d0 , заметим, что код исправит
ошибки, если
d0 ≥ 2ti + 1.
Для построения помехоустойчивого кода требуется к k - информационным раз-
рядам добавить r - проверочных. Количество проверочных разрядов, необходимых
для построения кода, исправляющего одну ошибку вычисляется по формуле:

2r ≥ k + r + 1.

Общее количество разрядов будет n = k + r, поэтому построенный с такими па-


раматрами код называют [n, k] кодом. Например, для передачи 4-разрядной комби-
нации требуется дополнительно 3 проверочных символа и код [7, 4]. Для передачи
6-разрядной комбинации необходим [10, 6] код с 4 проверочными разрядами.
Экономичность и эффективность кодов с обнаружением ошибок определяют ко-
эффициент избыточности Ru и коэффициент обнаружения K0 :
ln M1 Q
Ru = 1 − , K0 = ,
ln M Q + Q1
где M = 2n – общее число кодовых слов, которое можно получить в n-элементном
коде; M1 – количество используемых комбинаций; Q – общее количество искаженных
комбинаций, ошибка в которых может быть обнаружена; Q 1 – общее число искажен-
ных комбинаций, ошибка в которых не поддается обнаружению.
86 Глава 3. Теория помехоустойчивого кодирования

3.1 Коды Хэмминга


Рассмотрим правила построения [7, 4] кода Хэмминга, исправляющего одну ошибку в
передаваемой информационной комбинации (a1 , a2 , a3 , a4 ). Выпишем таблицу истин-
ности для трех проверочных разрядов. Обозначим информационные разряды симво-
лом ai , а проверочные символом bi . Тогда, проверочные разряды восстанавливаются
по информационным по следующим правилам:
x2 x1 x0
0 0 0
0 0 1 b0 b0 = a1 ⊕ a2 ⊕ a4
0 1 0 b1 b1 = a1 ⊕ a3 ⊕ a4
0 1 1 a1
1 0 0 b2 b2 = a2 ⊕ a3 ⊕ a4
1 0 1 a2
1 1 0 a3
1 1 1 a4
Т.е. значение b0 формируется из всех ak для которых x0 = 1. Значение b1 форми-
руется из всех ak для которых x1 = 1, и т.д. На передатчик канала связи подается
самокорректирующийся код Хэмминга [7, 4], который имеет вид
(b0 , b1 , a1 , b2 , a2 , a3 , a4 ).
На приемном конце канала связи для проверочных символов строится аналогичная
комбинация:
B0 = a1 ⊕ a2 ⊕ a4
B1 = a1 ⊕ a3 ⊕ a4
B2 = a2 ⊕ a3 ⊕ a4
Разница между передаваемыми bi и принимаемыми Bi проверочными разрядами поз-
воляет обнаружить и локализовать ошибку. Место ошибки определяется формулой
M = 20 · (b0 ⊕ B0 ) + 21 · (b1 ⊕ B1 ) + 22 · (b2 ⊕ B2 ).

Пример 3.1. Построить по методу Хэмминга кодовое слово для сообщения


(1010).
Решение. Зная количество информационных символов k = 4 сообщения, найдем
количество проверочных символов из формулы
2r ≥ k + r + 1, или 23 = 8 ≥ 4 + 3 + 1 = 8,
т.е. n = k + r = 4 + 3 = 7. Поскольку r = 3, то для передаваемой последовательности
кода [n, k] = [7, 4] будем иметь (b0 , b1 , a1 , b2 , a2 , a3 , a4 ). Учитывая, что
(a1 , a2 , a3 , a4 ) = (1010),
3.1. Коды Хэмминга 87

для проверочных символов получим

b0 = a1 ⊕ a2 ⊕ a4 = 1 ⊕ 0 ⊕ 0 = 1
b1 = a1 ⊕ a3 ⊕ a4 = 1 ⊕ 1 ⊕ 0 = 0
b2 = a2 ⊕ a3 ⊕ a4 = 0 ⊕ 1 ⊕ 0 = 1

Передаваемое кодовое слово имеет вид

(b0 , b1 , a1 , b2 , a2 , a3 , a4 ) = (1011010). N

Пример 3.2. На приемнике было получено кодовое слово (1101101) построенное


по методу Хэмминга. Восстановить исходное сообщение.
Решение. Полученное кодовое слово имеет вид

(b0 , b1 , a1 , b2 , a2 , a3 , a4 ) = (1101101).

Учитывая, что здесь a1 = 0, a2 = 1, a3 = 0, a4 = 1, для проверочных


символов получим

B0 = a1 ⊕ a2 ⊕ a4 = 0 ⊕ 1 ⊕ 1 = 0
B1 = a1 ⊕ a3 ⊕ a4 = 0 ⊕ 0 ⊕ 1 = 1
B2 = a2 ⊕ a3 ⊕ a4 = 1 ⊕ 0 ⊕ 1 = 0

Разница между передаваемыми bi и принимаемыми Bi проверочными разрядами дает


место ошибки определяемой формулой

M = 20 · (b0 ⊕ B0 ) + 21 · (b1 ⊕ B1 ) + 22 · (b2 ⊕ B2 )


= 20 · (1 ⊕ 0) + 21 · (1 ⊕ 1) + 22 · (1 ⊕ 0)
= 20 · 1 + 21 · 0 + 22 · 1 = 5.

Отсчитывая слева направо 5-й разряд в комбинации (1101101) и меняя его на про-
тивоположный, получим
(1101101) → (1101001).
Теперь выделяя информационные символы, восстановим сообщение

a1 = 0, a2 = 0, a3 = 0, a4 = 1, или (0001). N
88 Глава 3. Теория помехоустойчивого кодирования

Пример 3.3. Построить по методу Хэмминга кодовое слово для сообщения


(111001111).
Решение. Для кодирования k = 9 информационных разрядов методом Хэмминга
требуется из неравенства
2r ≥ k + r + 1.
определить количество проверочных символов r. Простым подбором находим r = 4:

24 ≥ 9 + 4 + 1.

Т.е. нам необходим код [13, 9]. Рассмотрим правила построения [13, 9] кода Хэмминга,
исправляющего одну ошибку в передаваемой информационной комбинации

(a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 ).

Выпишем таблицу истинности для четырех проверочных разрядов. Обозначим ин-


формационные разряды символом ai , а проверочные символом bi . Тогда, проверочные
разряды восстанавливаются по информационным по следующим правилам:
x3 x2 x1 x0
0 0 0 0
0 0 0 1 b0 b0 = a1 ⊕ a2 ⊕ a4 ⊕ a5 ⊕ a7 ⊕ a9
0 0 1 0 b1 b1 = a1 ⊕ a3 ⊕ a4 ⊕ a6 ⊕ a7
0 0 1 1 a1
0 1 0 0 b2 b2 = a2 ⊕ a3 ⊕ a4 ⊕ a8 ⊕ a9
0 1 0 1 a2
0 1 1 0 a3
0 1 1 1 a4
1 0 0 0 b3 b3 = a5 ⊕ a6 ⊕ a7 ⊕ a8 ⊕ a9
1 0 0 1 a5
1 0 1 0 a6
1 0 1 1 a7
1 1 0 0 a8
1 1 0 1 a9

Т.е. значение b0 формируется из всех ak для которых x0 = 1. Значение b1 формируется


из всех ak для которых x1 = 1, и т.д. Учитывая, что для комбинации

(a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 ) = (111001111),

для проверочных символов получим

b0 = a1 ⊕ a2 ⊕ a4 ⊕ a5 ⊕ a7 ⊕ a9 = 1 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 1 ⊕ 1 = 0
b1 = a1 ⊕ a3 ⊕ a4 ⊕ a6 ⊕ a7 = 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 1 = 0
b2 = a2 ⊕ a3 ⊕ a4 ⊕ a8 ⊕ a9 = 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 1 = 0
b3 = a5 ⊕ a6 ⊕ a7 ⊕ a8 ⊕ a9 = 0 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 = 0
3.1. Коды Хэмминга 89

Кодовое слово имеет вид

(b0 , b1 , a1 , b2 , a2 , a3 , a4 , b3 , a5 , a6 , a7 , a8 , a9 ) = (0010110001111). N

Пример 3.4. На приемнике было получено кодовое слово

(11011100101)

построенное по методу Хэмминга. Восстановить исходное сообщение.


Решение. Учитывая, что длина последовательности n = k + r = 11, иИз выра-
жения
2r ≥ k + r + 1 = n + 1 = 11 + 1 = 12
найдем количество проверочных символов r = 4. Тогда полученное кодовое слово
имеет вид
(b0 , b1 , a1 , b2 , a2 , a3 , a4 , b3 , a5 , a6 , a7 ) = (11011100101).
Выпишем таблицу истинности для четырех проверочных разрядов. Обозначим ин-
формационные разряды символом ai , а проверочные символом bi . Тогда, проверочные
разряды восстанавливаются по информационным по следующим правилам:
x3 x2 x1 x0
0 0 0 0
0 0 0 1 b0 b0 = a1 ⊕ a2 ⊕ a4 ⊕ a5 ⊕ a7
0 0 1 0 b1 b1 = a1 ⊕ a3 ⊕ a4 ⊕ a6 ⊕ a7
0 0 1 1 a1
0 1 0 0 b2 b2 = a2 ⊕ a3 ⊕ a4
0 1 0 1 a2
0 1 1 0 a3
0 1 1 1 a4
1 0 0 0 b3 b3 = a5 ⊕ a6 ⊕ a7
1 0 0 1 a5
1 0 1 0 a6
1 0 1 1 a7
Как и ранее значение b0 формируется из всех ak для которых x0 = 1. Значение b1
формируется из всех ak для которых x1 = 1, и т.д. Учитывая, что здесь

(b0 , b1 , b2 , b3 ) = (1110), (a1 , a2 , a3 , a4 , a5 , a6 , a7 ) = (0110101),

для проверочных символов получим

B0 = a1 ⊕ a2 ⊕ a4 ⊕ a5 ⊕ a7 = 0 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 1 = 1
B1 = a1 ⊕ a3 ⊕ a4 ⊕ a6 ⊕ a7 = 0 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0
B2 = a2 ⊕ a3 ⊕ a4 = 1 ⊕ 1 ⊕ 0 = 0
B3 = a5 ⊕ a6 ⊕ a7 = 1 ⊕ 0 ⊕ 1 = 0
90 Глава 3. Теория помехоустойчивого кодирования

Разница между передаваемыми bi = (1110) и принимаемыми Bi = (1000) провероч-


ными разрядами дает место ошибки определяемой формулой
M = 20 · (b0 ⊕ B0 ) + 21 · (b1 ⊕ B1 ) + 22 · (b2 ⊕ B2 ) + 23 · (b3 ⊕ B3 )
= 20 · (1 ⊕ 1) + 21 · (1 ⊕ 0) + 22 · (1 ⊕ 0) + 23 · (0 ⊕ 0)
= 20 · 0 + 21 · 1 + 22 · 1 + 23 · 0 = 6.
Отсчитывая слева направо 6-й разряд в комбинации (11011100101) и меняя его на
противоположный, получим
(11011100101) → (11011000101).
Теперь выделяя информационные символы, восстановим сообщение
(a1 , a2 , a3 , a4 , a5 , a6 , a7 ) = (0101110). N

Пример 3.5. На приемнике было получено кодовое слово


(001011110111111)
построенное по методу Хэмминга. Восстановить исходное сообщение.
Решение. Полученное кодовое слово [15, 11] имеет вид
(b0 , b1 , a1 , b2 , a2 , a3 , a4 , b3 , a5 , a6 , a7 , a8 , a9 , a10 , a11 ) = (001011110111111).
Учитывая, что здесь
(b0 , b1 , b2 , b3 ) = (0001), (a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 ) = (11110111111),
для проверочных символов получим
B0 = a1 ⊕ a2 ⊕ a4 ⊕ a5 ⊕ a7 ⊕ a9 ⊕ a11 = 1 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 = 0
B1 = a1 ⊕ a3 ⊕ a4 ⊕ a6 ⊕ a7 ⊕ a10 ⊕ a11 = 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 = 1
B2 = a2 ⊕ a3 ⊕ a4 ⊕ a8 ⊕ a9 ⊕ a10 ⊕ a11 = 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 = 1
B3 = a5 ⊕ a6 ⊕ a7 ⊕ a8 ⊕ a9 ⊕ a10 ⊕ a11 = 0 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 = 0
Разница между передаваемыми bi = (0001) и принимаемыми Bi = (0110) провероч-
ными разрядами дает место ошибки определяемой формулой
M = 20 · (b0 ⊕ B0 ) + 21 · (b1 ⊕ B1 ) + 22 · (b2 ⊕ B2 ) + 23 · (b3 ⊕ B3 )
= 20 · (0 ⊕ 0) + 21 · (0 ⊕ 1) + 22 · (0 ⊕ 1) + 23 · (1 ⊕ 0)
= 20 · 0 + 21 · 1 + 22 · 1 + 23 · 1 = 14.
Отсчитывая слева направо 14-й разряд в комбинации (001011110111111) и меняя его
на противоположный, получим
((001011110111111) → (001011110111101).
Теперь выделяя информационные символы, восстановим сообщение
(a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 ) = (11110111101). N
3.1. Коды Хэмминга 91

Задача 3.1.
Методом Хемминга закодировать информационную последовательность.

N x N x N x
1 111001 11 11111101 21 1011010011
2 101101 12 11111011 22 1101001111
3 101111 13 11110111 23 1000111111
4 110111 14 11101111 24 1111011001
5 111011 15 11011111 25 1111101101
6 111101 16 10111111 26 1110010111
7 111110 17 10011111 27 1001111011
8 100111 18 11001111 28 1111100101
9 110011 19 11100111 29 1110011110
10 111001 20 11110011 30 1001111111

Задача 3.2.
На приемнике было получено кодовое слово x сформированное кодом Хемминга.
Восстановить исходное сообщение.

N x N x N x
1 1110001 11 0101001 21 1001001
2 0111010 12 1101010 22 0001010
3 1010011 13 0100011 23 1100011
4 1011100 14 0001100 24 1101100
5 0100001 15 1101110 25 0011111
6 0100111 16 1110110 26 0100111
7 0100100 17 1000110 27 0001011
8 1100111 18 0100110 28 0001101
9 1100100 19 1001111 29 0001110
10 1100010 20 0101111 30 1110010
92 Глава 3. Теория помехоустойчивого кодирования

Задача 3.3. На приемнике было получено кодовое слово x сформированное ко-


дом Хемминга. Восстановить исходное сообщение.

N x N x N x
1 1110011100 11 001001001111 21 00100101101001
2 1011010100 12 111001001111 22 11100101101001
3 1011111010 13 100001001111 23 10000101101001
4 1101110101 14 101101001111 24 10110101101001
5 1110010011 15 101011001111 25 10101101101001
6 1110100011 16 111000011011 26 10000001011001
7 1110111011 17 111001111011 27 10000111011001
8 1110110111 18 111001001011 28 10000100011001
9 1110110001 19 111001010011 29 10000101111001
10 1110110010 20 111001011111 30 10000101001001

Задача 3.4. На приемнике было получено кодовое слово x сформированное


кодом Хемминга. Восстановить исходное сообщение.

N x N x
1 00101010111110111011 16 10001000111110101111011
2 11101010111110111011 17 10001000111110110111011
3 10001010111110111011 18 10001000111110111011011
4 10111010111110111011 19 10001000111110111111111
5 10100010111110111011 20 10001000111110110111011
6 101011001111101111111 21 0000111111111010111101101
7 101010101111101111111 22 1100111111111010111101101
8 101010011111101111111 23 1010111111111010111101101
9 101010000111101111111 24 1001111111111010111101101
10 101010001011101111111 25 1000011111111010111101101
11 1000100011011011111101 26 1000101111111010111101101
12 1000100011101011111101 27 1000110111111010111101101
13 1000100011110011111101 28 1000111011111010111101101
14 1000100011111111111101 29 1000111101111010111101101
15 1000100011111001111101 30 1000111110111010111101101
3.2. Циклические коды 93

3.2 Циклические коды


Одним из обобщений кода Хэмминга являются циклические коды (CRC - cyclic
redundancy check)2 . В даном коде произвольная кодовая последовательность a =
(a1 , a2 , a3 , ..., an ) записывается в виде полинома

k
X
n−1 n−2 2
u(x) = a1 x + a2 x + ... + an−2 x + an−1 x + an = ai xk−1 .
i=1

Например кодовой последовательности

(10101) соответствует u(x) = 1 · x4 + 0 · x3 + 1 · x2 + 0 · x1 + 1 · x0


= x4 + x2 + 1,
(1011) соответствует u(x) = 1 · x3 + 0 · x2 + 1 · x1 + 1 · x0
= x3 + x1 + 1.

В поле Галуа GF (2) (Galous Field) коэффициенты при степенях x могут прини-
мать значения только 0 или 1, тогда

1 − x − x2 = 1 + x + x2 ,
5 + 2x + 3x2 = 1 + 0x + x2 = 1 + x2 .

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


произведение многочленов меньшей степени.

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


представлен как произведение многочленов меньшей степени.
Например

x3 + x = x(1 + x)(1 + x),


x4 + x = x(1 + x)(1 + x + x2 ).

Произвольный двучлен xn + 1 делится без остатка на неприводимый многочлен:

x2 + 1 = (1 + x)2 ,
x3 + 1 = (1 + x)(1 + x + x2 ),
x4 + 1 = (1 + x)4 ,
x5 + 1 = (1 + x)(1 + x + x2 + x3 + x4 ),
x6 + 1 = (1 + x)2 (1 + x + x2 )2 .
2
БЧХ (Bose-Chadhuri-Hocquenghem) коды являются классом циклических кодов
94 Глава 3. Теория помехоустойчивого кодирования

h i
P (x)
Обозначим остаток R(x) от деления полинома P (x) на полином Q(x) через Q(x)
,
тогда  
P (x) R(x) P (x)
= C(x) + т.е. = R(x).
Q(x) Q(x) Q(x)
Двоичную последовательность, соответствующую полиному остатков запишем в
десятичном виде. Например

x2 x3
   
2
= x = 100 = 4, = x + 1 = 011 = 3.
x3 + x2 + 1 x3 + x + 1

Рассмотрим остатки от деления степени xn на неприводимый полином


p(x) = x4 + x3 + x2 + x + 1:
n 0 1 2 3 4 5 6 7
h xn i x x x x x x x x
x
p(x)
1 2 4 8 15 1 2 4

Видно, что период последовательности составленной из остатков равен 5. Теперь


рассмотрим остатки от деления степени xn на неприводимый полином
p(x) = x4 + x + 1:

h nn i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
x
p(x)
1 2 4 8 3 6 12 11 5 10 7 14 15 13 9 1 2

Период последовательности составленной из остатков равен 15.


Неприводимый полином p(x) степени n, генерирующий последовательность остат-
ков максимального периода T = 2n −1 называется примитивным или образующим.
Полученный период будем называть порядком полинома

ord p(x) = T.

Как видно из примеров не все неприводимые полиномы могут быть примитивными.


Например, для неприводимых полиномов небольших степеней n можно получить:

x ord = 1
n = 1.
x + 1 − не примитивный ord = 0
n = 2. x2 + x + 1 ord = 3
x3 + x + 1 ord = 7
n = 3.
x3 + x2 + 1 ord = 7
x4 + x + 1 ord = 15
n = 4. x4 + x3 + 1 ord = 15
x4 + x3 + x2 + x + 1 − не примитивный ord = 5

В общем случае задача о нахождении всех неприводимых полиномов степени n


решается с помощью формулы Мебиуса.
3.2. Циклические коды 95

Функция Функция Мебиуса µk определяется следующим образом:


Мебиуса 
 1, если k=1
µk = (−) , если k - произведение s различных простых чисел
s

0 если k делится на квадрат


F µ1 =1
F µ2 = (−)1 = −1
F µ3 = (−)1 = −1
F µ4 = µ22 = 0
F µ5 = (−)1 = −1
F µ6 = µ2·3 = (−)2 = 1
F µ7 = (−)1 = −1
F µ8 = µ22 ·2 = 0
Формула Количество неприводимых полиномов степени n определяется
Мебиуса с помощью выражения
n
1 X
In = µk 2n/k
n
k=1,(k|n)

Здесь k|n означает что k должно делиться на n.


1
1 X
F n = 1 : I1 = µk 21/k = µ1 21 = 2
1
k=1,(k|1)
2
1 X 1 1
F n = 2 : I2 = µk 22/k = (µ1 22 + µ2 21 ) = (4 − 2) = 2
2 2 2
k=1,(k|2)
3
1 X 1 1
F n = 3 : I3 = µk 23/k = (µ1 23/1 + µ3 23/3 ) = (8 − 2) = 2
3 3 3
k=1,(k|3)
4
1 X 1 1
F n = 4 : I4 = µk 24/k = (µ1 24/1 + µ2 24/2 ) = (16 − 4) = 3
4 4 4
k=1,(k|4)
5
1 X 1 1
F n = 5 : I5 = µk 25/k = (µ1 25/1 + µ5 25/5 ) = (32 − 2) = 6
5 5 5
k=1,(k|5)
6
1 X 1
F n = 6 : I6 = µk 26/k = (µ1 26/1 + µ2 26/2 + µ3 26/3 + µ6 26/6 )
6 6
k=1,(k|6)
1
= (64 − 8 − 4 + 2) = 9
6
96 Глава 3. Теория помехоустойчивого кодирования

3.2.1 Исправление 1 ошибки


Для того чтобы код смог исправить одну ошибку расстояние между словами должно
быть не менее 3. (т.е. d = 3). Тогда количество проверочных символов r вычисляется
по формуле
2r ≥ k + r + 1 = 4 + r + 1 = 5 + r ⇒ r = 3
Для поля Галуа GF2 таблица образующих полиномов имеет вид

r P (x)
2
2 x +x+1 111
x3 + x + 1 1011
3
x3 + x2 + 1 1101
x4 + x + 1 10011
4
x4 + x3 + 1 11001
x5 + x2 + 1 100101
5 x5 + x4 + x3 + x2 + 1 111101
x5 + x4 + x2 + x + 1 110111
x6 + x + 1 1000011
6
x6 + x5 + x2 + x + 1 1100111
x7 + x3 + 1 10001001
7 x7 + x3 + x2 + x + 1 10001111
x7 + x4 + x3 + x + 1 10011101
x + x7 + x6 + x5 + x2 + x + 1
8
111100111
8 x8 + x4 + x3 + x2 + 1 100011101
x8 + x6 + x5 + x + 1 101100011
x9 + x5 + x3 + x2 + 1 1000101101
9
x9 + x8 + x7 + x6 + x5 + x3 + 1 1111101001
x10 + x4 + x3 + x + 1 10000011011
10
x10 + x9 + x6 + x5 + x4 + x3 + x2 + x + 1 11001111111
x11 + x10 + x9 + x8 + x3 + x + 1 111100001011
11
x11 + x8 + x6 + x2 + 1 100101000101
x12 + x11 + x9 + x8 + x7 + x5 + x2 + x + 1 1101110100111
12
x12 + x9 + x3 + x2 + 1 1001000001101
Если информационную последовательность представить в виде полинома Q(x),
то передаваемая комбинация F имеет вид
F = P C,
где полином C необходимо найти из выражения
xr Q R
=C+ .
P P
Если в передаваемой комбинации возникает ошибка, то ее обнаруживают сравнением
k
остатков от деления FP и xP .
3.2. Циклические коды 97

Пример 3.6. Рассмотрим построение повторного кода [n, k] = [3, 1]. Предста-
вим информационную последовательность в виде Q(x) = e, где e ∈ GF2 ; (e = 0, 1).
Образующий полином имеет вид

P (x) = x2 + x + 1.

Поскольку r = 2, то умножим
x2 Q(x) = ex2
и найдем
x2 Q(x) = C(x) · P (x) + R(x) = e · (x2 + x + 1) + ex + e.
Передаваемая последовательность имеет вид

F = C(x) · P (x) = ex2 + ex + e = (eee).

Для кода малой размерности определение


h i места ошибки проводится с помощью таб-
A(x)
лицы синдромов . Обозначая через B(x) остаток от деления полиномов, получим
3

x2
     
1 x
= 1 = (01); = x = (10); = x + 1 = (11).
P (x) P (x) P (x)

Допустим мы приняли сообщение с ошибкой: I(x) = ex2 + ex + e = (eee), тогда


 
I(x)
= x = (10)
P (x)

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

Пример 3.7. Рассмотрим построение полиномиального кода [n, k] = [7, 4]. Для
передачи информационной последовательности 0111 нам необходимо иметь дополни-
тельно r = 3 проверочных символа. Информационная последовательность a = (0111)
представляется в виде

Q(x) = x3 · 0 + x2 · 1 + x · 1 + 1 · 1 = x2 + x + 1.

Поскольку r = 3, то умножаем

m(x) = xr Q = x3 Q = x3 (x2 + x + 1) = x5 + x4 + x3 = 0111000.

По таблице образующих полиномов для r = 3 находим

P (x) = x3 + x + 1
3
Синдром - совокупность признаков характеризующих заболевание. Медицинский термин ис-
пользуемый в теории информации при построении корректирующих кодов. В данном случае син-
дром - это совокупность признаков характеризующих ошибку в передаваемой кодовой комбинации.
98 Глава 3. Теория помехоустойчивого кодирования

Делим m = xr Q на образующий полином P

x3 Q R x5 + x4 + x3 2 2x2 + x
=C+ или = (x + x) −
P P x3 + x + 1 x3 + x + 1
окуда получим R = 2x2 + x. Аналогичный результат можно получить в Mathcad:
остаток от деления полиномов определяется оператором parfrac в панели Symbolic:

x5 + x4 + x3 2x + 1
3
convert, parfrac, x → x + x2 − x · 3 .
x +x+1 x +x+1
В любом случае остаток
R(x) = −(2x2 + x)
необходимо привести по модулю 2. Поскольку в этом случае 2 = 1 ⊕ 1 = 0 и −1 = +1,
получим
R(x) = −(2x2 + x) = (2x2 + x) = 0 · x2 + x = x = 010.
Поскольку
m(x) = x5 + x4 + x3 = 0111000
то передаваемая комбинация F есть прямая конкатенация m ⊕ R:

m = 0111000
R= 010
F = 0111010

Таким образом, передаваемая кодовая комбинация имеет вид F = (0111010). N

Допустим во время передачи по каналу информации в F возникла ошибка (3


символ слева или 4 степень)

F = (0111010) → F = (0101010)

Опишем алгоритм определения и исправления ошибки полиномиальным кодом.

Пример 3.8. Обнаружить и исправить ошибку в последовательности F =


(0101010), сформированной полиномиальным кодом.
Решение. Поскольку n = 7, то по формуле

2r ≥ n + 1

получим r = 3. Т.е. мы должны пользоваться полиномом 3 степени из таблицы по-


линомов. Заметим, что полином для раскодирования однозначно определяется по-
линомом кодирования. В кодах CRC эти полиномы совпадают. Если мы попутаем
полиномы - то получим неправильный ответ. Если для данной степени неприводи-
мых полиномов несколько, то мы будем брать первый по списку. В нашем случае для
r = 3 имеем P = x3 + x + 1.
3.2. Циклические коды 99

F
Найдем остаток от деления P
 
F
R(x) = = x − x2 = x + x2 = 0110
P

Составим таблицу синдромов, определяющих место ошибки в передаваемом сообще-


k
нии. Найдем остаток от деления xP :
 
1 hxi
= 1 = 0001; = x = 0010
P P
 2  3
x 2 x
= x = 0100; = x + 1 = 0011
P P
 4  5
x 2 x
= x + x = 0110; = x2 + x + 1 = 0111
P P
 6  7
x 2 x
= x + 1 = 0101; = 1 = 0001
P P

Заметим, что далее остатки повторяются. Место ошибки определяется степенью зна-
менателя синдрома, совпадающего с остатком [ PF ]. В данном случае остаток 0110
соответствует синдрому с x4 , поэтому необходимо исправить ошибку в 4 степени
передаваемой последовательности

0101010 ⇒ 0111010.

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


последовательность a = 0111. Заметим, что на практике удобнее не строить всю
таблицу
h ki синдромов, а увеличивать степень числителя xk до тех пор, пока остаток
x
P
не сравняется с R(x). N
100 Глава 3. Теория помехоустойчивого кодирования

В следующих задачах образующие полиномы брались первыми в списке.

Задача 3.5.
Построить полиномиальный код для следующей информационной последователь-
ности.

N x N x N x
1 110010011 11 10011010111 21 00110001110
2 111001 12 010100111111 22 11111001001
3 1011101 13 1101111010 23 0001011110
4 1100001011 14 01011010111 24 1110110100010
5 10100111 15 11000011 25 110001101011
6 10111010 16 100011 26 11011001010101
7 10001101 17 11010 27 11111010101011
8 100111111 18 111011010 28 1110101010111
9 1001000101 19 100011110 29 101010101011
10 1100100111 20 01000110 30 00011010110101001

Задача 3.6. На приемнике было получено кодовое слово x сформированное


полиномиальным кодом. Восстановить исходное сообщение.

N x N x N x N x N x
1 1100110 7 0011111 13 1010011 19 0110011 25 1101011
2 1101000 8 0110001 14 1111111 20 1001010 26 0011011
3 1000100 9 0000110 15 0111101 21 1111010 27 1001111
4 0110011 10 1001110 16 0110110 22 0100101 28 1010011
5 0010101 11 1101110 17 1011100 23 0100010 29 0110110
6 0100100 12 1110101 18 1011110 24 1001000 30 0110011

Задача 3.7. На приемнике было получено кодовое слово x сформированное


полиномиальным кодом. Восстановить исходное сообщение.

N x N x N x N x N x
1 001001001 7 001101111 13 101110111 19 101011111 25 001011011
2 011011111 8 111001001 14 111101111 20 101011111 26 011110111
3 110110111 9 001111111 15 100001001 21 100101111 27 001001111
4 101001111 10 111010111 16 001011101 22 101011001 28 001011110
5 111111100 11 101111111 17 111111111 23 000011111 29 101000001
6 101011111 12 101001011 18 101100111 24 111110011 30 001011101
3.2. Циклические коды 101

Задача 3.8. На приемнике было получено кодовое слово x сформированное


полиномиальным кодом. Восстановить исходное сообщение.

N x N x
1 10111111111111100111 16 11001111111111101001
2 11111111111111100001 17 11000011111111101011
3 11011111111111100111 18 11111101111111100111
4 00111111111111100001 19 00000011111111101011
5 00001111111111101001 20 11101111111111100111
6 01100011111111101011 21 01011111111111100001
7 11110111111111100111 22 01101111111111101001
8 01101111111111100001 23 01010011111111101011
9 01000111111111101001 24 11111011111111100111
10 01001011111111101011 25 01110111111111100001
11 11111101111111100111 26 01001011111111101001
12 01111110111111100001 27 01000111111111101011
13 01001101111111101001 28 11111110111111100111
14 01000001111111101011 29 01111111111110100001
15 11111111101111100111 30 01001110111111101001
102 Глава 3. Теория помехоустойчивого кодирования

3.2.2 Исправление 2 ошибок


Алгоритм исправления 2 ошибок ничем не отличается от предыдущего. Единствен-
ная особенность заключается в выборе неприводимых полиномов и количестве про-
верочных символов. Нам необходимо выбрать 2 полинома: один для исправления
одиночных ошибок p1 (x), а другой для исправления двойных ошибок p2 (x). Данные
полиномы имеют степени r1 и r2 соответственно, и длина кода будет

n = k + r1 + r2

символа. Тогда, согласно формуле Хэмминга r1 + r2 проверочных символа должны


обнаружить и исправить

n(n + 1)
2r1 +r2 ≥ Cn0 + Cn1 + Cn2 = 1 +
2
ошибок. Однако, порядок произведения полиномов pr (x) степени r, вычисляется по
формуле
ord (pr · pm ) = НОК(ord pr , ord pm )
если полиномы разного порядка (степени), и

ord (pr · pr ) = 2ord (pr )

если порядок (степень) полиномов одинаковый. В таком случае формулу Хэмминга


необходимо переписать в виде

n(n + 1)
ord (pr1 · pr2 ) ≥ 1 + .
2

Пример 3.9. Рассмотрим правила построения кода, исправляющего 2 ошибки


для 1 информационного символа.
Заметим, что согласно формуле Хэмминга для этого достаточно r = 4 провероч-
ных символа
24 = C50 + C51 + C52 = 1 + 5 + 10 = 16.
По существу мы имеем простейший повторный код с 4 повторениями:

(a) → (aaaaa).

F Для построения полиномиального кода мы возьмем два примитивных полино-


ма 2 степени p2 = x2 + x + 1. Тогда

ord (pr · pr ) = 2ord (pr ) или ord (p2 · p2 ) = 2ord (p2 ) = 2 · 3 = 6.

Но 6 значений не достаточно чтобы обработать 15 возможных комбинаций ошибок.


3.2. Циклические коды 103

F Теперь возьмем 2 полинома различной степени. Например p2 = x2 + x + 1 и


p3 = x3 + x + 1, тогда

ord (pr · pm ) = НОК(ord pr , ord pm ) или ord (p2 · p3 ) = НОК(3, 7) = 3 · 7 = 21.

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


допускает
C61 + C62 = 6 + 15 = 21
различных единичных или двойных ошибок. Т.е. нам необходим код [6, 1]. Как видно
в простейшем случае полиномиальный код уступает по эффективности простейшему
повторному коду [5, 1]. N

Пример 3.10. Рассмотрим правила построения кода, исправляющего 2 ошибки


для k = 2 информационных символов.
F Продолжая аналогично предыдущему примеру возьмем 2 полинома 3 степени
p3 = x3 + x + 1. Тогда

ord (pr · pr ) = 2ord (pr ) или ord (p3 · p3 ) = 2ord (p3 ) = 2 · 7 = 14.

Это недостаточно для обработки

C81 + C82 = 8 + 32 = 40

ошибок.
F Увеличим степени полиномов: p3 = x3 + x + 1 и p4 = x4 + x + 1, тогда

ord (pr · pm ) = НОК(ord pr , ord pm ) или ord (p3 · p4 ) = НОК(7, 15) = 7 · 15 = 105.

Этого достаточно для обработки

C91 + C92 = 9 + 36 = 45

ошибок. Таким образом код, исправляющий 2 ошибки при передаче 2 информацион-


ных символов должен иметь 7 проверочных разрядов и вид [n, k] = [9, 2]. N

Пример 3.11. Построим код исправляющий 2 ошибки при передече инфор-


мационого сообщения a = (10). Полином информациооного сообщения имеет вид
Q(x) = 1 + x. Для построения кодовой последовательности возьмем неприводимые
полиномы p1 = 1 + x2 + x3 и p2 = 1 + x3 + x4 . Тогда

x7 Q(x)
 
= 1 + x + x2 + x4 + x5 + x6 ,
(1 + x2 + x3 )(1 + x3 + x4 )
или
R(x) = 1 + x + x2 + x4 + x5 + x6 = (001110111)
104 Глава 3. Теория помехоустойчивого кодирования

Тогда для кодовой последовательности получим F = x7 Q(x) ⊕ R(x):

100000000

001011010
101011010
или
F = x + x3 + x4 + x6 + x8 .
Допустим в кодовой последовательности возникло 2 ошибки, после чего она при-
няля вид
F = (111011110) = x + x2 + x3 + x4 + x6 + x7 + x8 .
F
Найдем остаток от деления P
 
F
R(x) = = 1 + x3 + x5 = 0101001
P

Составим таблицу синдромов, определяющих место ошибки в передаваемом сообще-


k
нии. Найдем остаток от деления xP :

k xk 1 + xk x + xk x2 + xk x3 + xk x4 + xk x5 + xk x6 + xk
0 0000001
1 0000010 0000011
2 0000100 0000101 0000110
3 0001000 0001001 0001010 0001100
4 0010000 0010001 0010010 0010100 0011000
5 0100000 0100001 0100010 0100100 0101000 0110000
6 1000000 1000001 1000010 1000100 1001000 1010000 1100000
7 0101101 0101100 0101111 0101001 0100101 0111101 0001101 1001101
8 1101010 1011011 1011000 1011110 1010010 1001010 1111010 0111010
h i
x7 +x8
Здесь необходимо добавить P
= 1 + x + x2 + x4 + x6 = 1010111.
Пользуясь таблицей находим, что остаток R = 0101001 соответствует остатку x2 + x7 ,
т.е. ошибкам во 2 и 7 разряде полинома кодовой комбинации. Исправляя, получим

111011110 ⇒ 101011010.

Убирая последние семь проверочных символа, получаем исходную информационную


последовательность a = (10). N
3.2. Циклические коды 105

Задача 3.9. На приемнике было получено кодовое слово x сформированное


полиномиальным кодом [n, k] = [9, 2] с p1 = 1 + x + x3 и p2 = 1 + x + x4 исправляю-
щего 2 ошибки. Восстановить исходное сообщение предварительно потроив таблицу
синдромов.

N x N x N x
1 010101000 11 101010011 21 111100110
2 010100111 12 101001000 22 111010101
3 010111001 13 101111110 23 110110011
4 010000101 14 100010010 24 101111111
5 011111101 15 111001010 25 011100111
6 000001101 16 001111010 26 111010110
7 111101101 17 100011011 27 110110101
8 000101100 18 111011000 28 101110011
9 110101111 19 001011110 29 011111111
10 010100100 20 101010011 30 111100110

Задача 3.10. На приемнике было получено кодовое слово x сформированное


полиномиальным кодом с p1 = 1 + x2 + x3 и p2 = 1 + x + x4 исправляющего 2 ошибки.
Восстановить исходное сообщение предварительно потроив таблицу синдромов.

N x N x N x
1 1010101000 11 100101010011 21 1001111100110
2 0010100111 12 101101001000 22 1000111010101
3 00010111001 13 110101111110 23 0111110110011
4 01010000101 14 11100010010 24 0110101111111
5 10011111101 15 1111111001010 25 0101011100111
6 11000001101 16 1110001111010 26 0100111010110
7 000111101101 17 1101100011011 27 0011110110101
8 001000101100 18 1100111011000 28 0010101110011
9 010110101111 19 1011001011110 29 0001011111111
10 011010100100 20 1010101010011 30 0000111100110
106 Глава 3. Теория помехоустойчивого кодирования

3.3 Сверточные коды


Наиболее распространенным видом помехоустойчивого кодирования в настоящее вре-
мя являются сверточные коды:
- протоколы беспроводной связи IMT-2000, GSM, IS-95
- цифровые наземные и спутниковые системы связи
- системы связи с дальним космосом.
Основные принципы работы этих кодов построены на теории автоматов.

3.3.1 Блочное чередование


При передаче информации ошибки как правило появляются пакетами. К примеру
такой источник ошибок как грозовая молния длится от 10 до 100ms. Если мы ис-
пользуем CDMA на частоте 1.23MHz и скорости 153kbs, то одна вспышка молнии
запросто уничтожает от 1.5 до 15kb передаваемых данных. Если вы передаете SMS
по сотовому телефону GSM на скорости 9.6 kbs, то можете потерять до 960bt. По-
скольку в кодировке UTF16 каждая русская буква занимает 2Bt=16bt, то 960bt - это
сообщение из 60 символов.
Для защиты от пакетных ошибок в GSM используется алгоритм перемежения,
который позволяеь преобразовать пакет в независимые ошибки. Для этого кодовая
комбинация (a1 a2 a3 ...an ) длиной n записывается построчно в матрицу размером k ×k
   
a1 a2 ... ak a11 a12 ... a1k
 ak+1 ak+2 ... a2k   a21 a22 ... a2k 
 = 
 ... ... ... ...   ... ... ... ... 
... ak2 ak1 ak2 ... ak2

а считывается по столбцам (a11 a21 a31 ...ak2 ). В результате исходные символы, которые
следовали друг за другом, передаются в канал с интервалом в k символом, который
называется глубиной перемежения.
Если матрица квадратная, то процесс декодирования аналогичен предыдущему
алгоритму. Если же матрица прямоугольная то декодирование производится в об-
ратном порядке: последовательность записывается по столбцам, а считывается по-
строчно.
Например возьмем сообщение выстрел и закодируем его повторным кодом [n, k] =
[3, 1]. Получим кодовую комбинацию вввыыыссстттррреееллл. Допустим во вре-
мя передачи этого сообщения оно было искажено пакетной ошибкой, т.е. заменим
последовательно 5 символов начиная с 8-го на букву а вввыыысаааааррреееллл.
Если попытаться раскодировать это сообщение как есть, то мы получим ввв ыыы
саа ааа ррр еее ллл ⇒ выаарел.
Теперь перед отправлением сообщения используем метод перемежения. Для этого
3.3. Сверточные коды 107

запишем исходную комбинацию в матрицу построчно

в в в ы ы
ы с с с т
т т р р р
е е е л л
л _ _ _

и считаем по столбцам вытелвсте_всре_ы cрл_ытрл. Допустим во время пе-


редачи этого сообщения оно было искажено такой же пакетной ошибкой: вытелв-
саааааре_ысрл_ытрл. Запишем принятую комбинацию в матрицу по столбцам

в в а ы ы
ы с а с т
т а р р р
е а е л л
л а _ _

и прочитаем построчно вва ыыы сас тта ррр еае ллл а__ ⇒ выстрел. Как
видно сообщение без труда восстанавливается в правильном виде.

3.3.2 Теория автоматов


Автоматом называется система, меняющая свое состояние под действием обрабаты-
ваемого входного сигнала. В этом случае значения выходного сигнала зависят не
только от входного значения, но и от текущего состояния самой системы.
Для описания работы автомата необходимо задать
- вектор значений входящего сигнала a = (a1 a2 ...an ),
- вектор внутренних состояний автомата s = (s1 s2 ...sn ).
Во время работы на вход автомата подается очередное значение сигнала ai . В
зависимости от текущего состояния sk автомат изменяет значение сигнала на zi , но
и сам под воздействием входного сигнала меняет свое состояние на sm . Следующее
значение сигнала ai+1 автомат принимает находясь в состоянии sm и в соответствии
со своим состоянием формирует выходное значение zi+1 , а сам при этом меняет свое
состояние на sn и т.д.
Как видно, для описания работы автомата нам необходимо задать еще
- вектор возможных значений выходного сигнала z = (z1 z2 ...zn ),
- функцию перехода g: (ak sk ) → (zk ), которая создает значения выходного сигнала
zk из входного sk с учетом текущего состояния автомата sk .
- функцию перехода f : (ak sk ) → (sk+1), которая меняет состояние автомата sk на
sm в зависимости от значения принятого сигнала ak и текущего состояния автомата
sk .
Поскольку все значения являются дискретными, то функции f и g как правило
задают таблицами.
108 Глава 3. Теория помехоустойчивого кодирования

Пример 3.12. На вход автомата подается сигнал a = (0011101010). Получить


выходной сигнал, если функции перехода f и g автомата заданы таблицей.

f g
0 1 0 1
s0 s1 s0 0 1
s1 s1 s2 1 1
s2 s0 s1 1 0

Решение.
1 метод. Исследование работы автомата удобнее проводить в два этапа. На пер-
вом этапе мы рассмотрим изменение состояния автомата под действием входного
сигнала (т.е. функцию f ).
Запишем в строку значения входного сигнала
a = (0011101010).
Начальное состояние автомата s0 запишем над первым значением. Первое значе-
ние входного сигнала a1 = 0. По таблице для f на пересечении s0 и 0 находим новое
состояние автомата s1 и запишем его над вторым значением сигнала:
s0 −→ s1
0 %
Второе значение входного сигнала a2 = 0. По таблице для f на пересечении s1 и 0
находим новое состояние автомата s1 и запишем его над третьим значением сигнала:
s0 −→ s1 −→ s1
0 % 0 %
Третье значение входного сигнала a3 = 1. По таблице для f на пересечении s1 и
1 находим новое состояние автомата s2 и запишем его над четвертым значением
сигнала:
s0 −→ s1 −→ s1 −→ s2
0 % 0 % 1 %
и т.д.
Полная последовательность состояний, принимаемых автоматом под воздействи-
ем входного сигнала имеет вид
sk s0 → s1 → s1 → s2 → s1 → s2 → s0 → s0 → s1 → s2
a 0 % 0 % 1 % 1 % 1 % 0 % 1 % 0 % 1 % 0
Теперь, зная все состояния автомата найдем выходной сигнал используя функцию
g таблицы. Для первого значения входного сигнала a1 = 0 и состояния s0 найдем
выходное значение 0:
s0
0
0
3.3. Сверточные коды 109

Для второго значения входного сигнала a2 = 0 и состояния s1 найдем выходное


значение 1:
s0 s1
0 0
0 1
Для третьего значения входного сигнала a3 = 1 и состояния s1 найдем выходное
значение 1:
s0 s1 s1
0 0 1
0 1 1
и т.д.
Дальнейшую динамику работы автомата можно проследить по таблице
sk s0 → s1 → s1 → s2 → s1 → s2 → s0 → s0 → s1 → s2
a 0 % 0 % 1 % 1 % 1 % 0 % 1 % 0 % 1 % 0
F 0 1 1 0 1 1 1 0 1 1
Таким образом, выходная последовательность работы автомата имеет вид
z = (0110111011).

2 метод. Каждому автомату можно по-


1/1
ставить в соответствие ориентированный
граф, если в качестве узлов графа взять s0
состояния автомата sk , а в качестве веса
0/1 0/0
ребра - значение ak /zk . Тогда граф, со-
ответствующий предыдущей задаче имеет
вид
1/0

s2 s1
1/1

0/1

1/1 По заданному графу мы построим базисный


s0 s0 треллис - схему изменения состояний системы
0/0 на одном шаге. Размножая данный базисный
0/1 треллис до размера, равного длине входной по-
0/1 следовательности мы построим треллис автома-
s1 s1 та. Теперь, начиная из состояния S0 будем выде-
1/1 1/0 лять ребра, числители которых на каждом шаге
совпадают с данными входной последователь-
ности.
s2 s2
110 Глава 3. Теория помехоустойчивого кодирования

Тогда знаменатели выделенных ребер соответствуют выходной последовательно-


сти работы автомата.

0 0 1 1 1 0 1 0 1 0
s0 s0 s0 s0 s0 s0 s0 s0 s0 s0 s0
1/1
0/0 0/0
0/1 0/1
0/1
s1 s1 s1 s1 s1 s1 s1 s1 s1 s1 s1
1/1 1/1 1/1

1/0
s2 s2 s2 s2 s2 s2 s2 s2 s2 s2 s2
0 1 1 0 1 1 1 0 1 1

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

z = (0110111011). N

Пример 3.13. На вход автомата пода- 0/1


ется сигнал M. Построить граф автомата
и найти выходной сигнал, если функции
перехода f и g автомата заданы таблицей.
s1
1/1 1/1
f g
0 1 0 1 1/0
s0 s1 s3 0 1 s3 0/0 s2
s1 s1 s2 1 1
0/1
s2 s0 s1 0 0
0/0
s3 s0 s1 1 1 1/1
s0

Решение. Граф автомата и его базисный


s0 0/0 0/0 s0
треллис показан на рисунке. Символу M
соответствует ASCII код 4d т.е. в двоич- 1/1
ной системе исчисления на вход автомата
подается сигнал 0/1
s1 s1
z = (1001101).
1/1
Выходная последовательность работы ав- s2 1/0 s2
томата имеет вид

z = (1101011) или 6b 1/1


0/1
s3 s3
что соответствует ASCII символу k. N
3.3. Сверточные коды 111

Задача 3.11. На вход автомата подается ASCII код первой буквы фамилии
курсанта. Получить выходной сигнал, если функции перехода f и g автомата заданы
таблицей. Начертить граф автомата.

01 f g 02 f g 03 f g 04 f g
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
s0 s0 s2 0 1 s0 s1 s2 0 1 s0 s1 s3 0 1 s0 s1 s2 0 1
s1 s1 s3 1 1 s1 s1 s3 0 1 s1 s1 s2 1 1 s1 s1 s2 1 1
s2 s0 s2 1 1 s2 s3 s1 1 1 s2 s2 s1 0 1 s2 s1 s2 1 1
s3 s1 s3 1 1 s3 s2 s1 1 1 s3 s3 s1 1 1 s3 s1 s2 0 1
05 f g 06 f g 07 f g 08 f g
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
s0 s0 s2 0 1 s0 s0 s2 0 1 s0 s1 s3 0 1 s0 s1 s2 0 1
s1 s0 s2 1 1 s1 s1 s3 1 1 s1 s2 s0 1 1 s1 s2 s3 1 0
s2 s0 s2 1 1 s2 s2 s0 1 0 s2 s3 s1 1 1 s2 s3 s0 1 1
s3 s0 s2 1 1 s3 s3 s1 1 1 s3 s0 s2 1 0 s3 s0 s1 1 1
09 f g 10 f g 11 f g 12 f g
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
s0 s3 s1 0 0 s0 s1 s2 0 1 s0 s1 s2 1 1 s0 s1 s0 0 1
s1 s0 s2 1 1 s1 s1 s2 0 1 s1 s1 s0 0 1 s1 s1 s2 1 1
s2 s0 s2 1 1 s2 s0 s1 1 0 s2 s2 s1 0 0 s2 s0 s2 1 0
s3 s3 s1 1 1 s3 s1 s1 1 0 s3 s0 s1 1 0 s3 s0 s2 0 0
13 f g 14 f g 15 f g 16 f g
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
s0 s1 s0 1 1 s0 s1 s2 1 1 s0 s1 s2 0 1 s0 s1 s3 0 1
s1 s1 s0 0 1 s1 s1 s2 1 1 s1 s1 s2 0 0 s1 s2 s3 1 0
s2 s0 s1 1 0 s2 s0 s1 0 0 s2 s3 s1 1 1 s2 s3 s1 0 1
s3 s0 s1 0 0 s3 s0 s1 0 0 s3 s3 s1 1 0 s3 s0 s1 1 0
17 f g 18 f g 19 f g 20 f g
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
s0 s1 s2 1 1 s0 s1 s0 0 1 s0 s0 s0 1 1 s0 s0 s3 1 1
s1 s2 s2 0 0 s1 s2 s3 1 0 s1 s1 s1 0 0 s1 s3 s1 1 0
s2 s3 s1 0 1 s2 s3 s2 1 1 s2 s2 s2 1 1 s2 s2 s2 0 1
s3 s0 s1 1 0 s3 s0 s1 0 0 s3 s3 s3 0 0 s3 s1 s0 0 0
21 f g 22 f g 23 f g 24 f g
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
s0 s1 s0 0 1 s0 s1 s0 0 1 s0 s1 s0 1 1 s0 s0 s0 0 1
s1 s2 s0 0 0 s1 s2 s0 1 0 s1 s2 s0 0 0 s1 s1 s3 1 0
s2 s3 s1 1 0 s2 s3 s2 0 0 s2 s3 s3 0 0 s2 s2 s0 1 0
s3 s3 s1 1 1 s3 s3 s2 1 1 s3 s3 s3 1 1 s3 s3 s3 0 1
112 Глава 3. Теория помехоустойчивого кодирования

25 f g 26 f g 27 f g 28 f g
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
s0 s0 s2 1 1 s0 s0 s1 1 1 s0 s0 s1 0 0 s0 s0 s0 0 0
s1 s1 s3 0 0 s1 s1 s2 1 0 s1 s1 s2 0 1 s1 s1 s0 1 1
s2 s2 s0 1 0 s2 s2 s3 0 0 s2 s2 s1 1 0 s2 s2 s0 0 0
s3 s3 s1 0 1 s3 s3 s0 0 1 s3 s3 s2 1 1 s3 s3 s0 1 1

3.3.3 Сверточные коды


Сверточным кодом называется автомат, обрабатывающий двоичную последователь-
ность и имеющий 4 состояния s = (s0 , s1 , s2 , s3 ):

f g
0 1 0 1 0/00
s0 s0 s2 00 11
s1 s0 s2 11 00
s2 s1 s3 10 01 0/11 s0 1/11
s3 s1 s3 01 10
1/00
Пример 3.14. Согласно таблице перехо- s1 s2
да для входной последовательности
0/10
a = (1, 1, 0, 1, 1, 0, 1, 1) 0/01 1/01
s3
автомат выдаст сигнал
1/10
F = (11, 01, 01, 00, 01, 10, 01, 11). N

00 Работу автомата удобно описывать с помощью


s0 s0 развернутой решеточной диаграммы - трелли-
саa . Поскольку изначально предполгается что
11
автомат находился в состоянии s0 , то любой
11 путь начинается из левого верхнего угла трел-
s1 s1 лиса. На каждом шаге путь вдоль диаграммы
00 может принимать два направления. Если оче-
редной символ информационной последователь-
10
ности принимает значение 0 - то автомат выби-
s2 s2 рает верхний путь. Если символ равен 1 - то
01 автомат выбирает нижний путь. Выходная ко-
01 довая последовательность автомата равна весу
s3 s3 ребра выбранного пути.
10 a
trellis diagram - (англ.) решеточная диаграмма
3.3. Сверточные коды 113

t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8


00 00 00 00 00 00 00 00 00
s0 s0 s0 s0 s0 s0 s0 s0 s0
11 11 11 11 11 11 11 11 11
11 11 11 11 11 11 11 11 11
s1 s1 s1 s1 s1 s1 s1 s1 s1
00 00 00 00 00 00 00 00 00
10 10 10 10 10 10 10 10 10
s2 s2 s2 s2 s2 s2 s2 s2 s2
01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01
s3 10
s3 10
s3 10
s3 10 s3 10
s3 10
s3 10
s3 10
s3 10
F= 11 01 01 00 01 10 01 11
Треллис для кодовой последовательности
F = (11, 01, 01, 00, 01, 10, 01, 11)
показан на рисунке.
Раскодирование полученной кодовой последовательности производится в обрат-
ном порядке.
Пример 3.15. Раскодировать последовательность
F = (00, 11, 10, 11, 11, 10, 00, 01, 10, 01, 11).
Решение. Начиная из узла s0 треллиса мы на кждом шаге будем выбирать ребро
с весом, соответствующим полученной кодовой комбинации. Так для первой пары
символов мы имеем значения 00. Для треллиса это соответствует верхнему ребру
выходящему из узла s0 при t=0. Мы перешли в ребро s0 при t=1.
Для второй пары принятой кодовой комбинации мы имеем 11. Т.к. мы находимся
в узле s0 при t=1, то с весом 11 у нас имеется только нижнее ребро и мы переходим
в узел s2 (на t=2).
Для третьей пары принятой кодовой комбинации мы имеем 10. Поскольку мы
теперь находимся в узле s2 (при t=2) то с весом 10 из него выходит только верхнее
ребро. Мы выбираем ребро 10 и переходим на узел s1 (t=3).
Четвертая пара имеет значение 11. Поскольку мы теперь находимся в узле s1 (при
t=3) то с весом 11 у нас имеется только верхнее ребро. Мы переходим по ребру 11 в
узел s0 и т.д.

t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8 t=9 t=10 t=11
s0
s1
s2
s3
F= 00 11 10 11 11 10 00 01 10 01 11
114 Глава 3. Теория помехоустойчивого кодирования

Прочертив жирным следом весь путь треллиса можно приступить к раскодиро-


ванию сообщения.
Каждый узел треллиса имеет два выходящих ребра: верхнее и нижнее. Если для
данного узла выделенный путь пошел через верхнее ребро, то информационный сим-
вол принимает значение 0. Если для данного узла выделенный путь пошел через ниж-
нее ребро, то информационный символ принимает значение 1. В нашем случае вы-
ходная информационная последовательность принимает вид a = (01001011000). N

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


ASCII кода первой буквы своей фамилии.

3.3.4 Коррекция ошибок сверточным кодом


Как было показано выше каждой кодовой комбинации соответствует свой путь в
треллисе. Однако обратное не верно. Не для всякой полученной последовательности
можно начертить путь в треллисе. Например не существует пути для такой комби-
найии как F = (11, 11, 11) или F = (01, 01, 01). Так же нет кодовых комбинаций,
начинающихся с 01 или 10. Такие пары в F свидетельствуют о наличии ошибок. Ис-
кажение двоичной кодовой последовательности при передаче по каналу информации
с помехами заключается в изменении значения некоторого бита на противоположное.
Если ниформация кодируется блоками, то количество ошибок в блоке равно количе-
ству несовпадений между принятым словом и исходным. Напомним, что расстояние
между сообщениями определяется как количество несовпадающих разрядов. Поэто-
му каждая ошибка в передаваемой кодовой комбинации увеличивает ее расстояние
от исходного значения. Соответственно новая, искаженная кодовая комбинация бу-
дет иметь искаженный путь треллиса. А в некоторых ситуациях пути может и не
быть. Задача коррекции ошибки заключается в построении для F множества воз-
можных путей и выбора среди них такого, который имеет минимальное расстояние
с полученной кодовой комбинацией F .

Пример 3.16. Передаваемое информа- t=0 t=1 t=2 t=3 t=4


ционное сообщение имеет вид
s0 11
a = (1010). s1 10 00 10
s2
Этому сообщению соответствует следую-
щая кодовая комбинация s3
a = 1 0 1 0
F = (11, 10, 00, 01). F= 11 10 00 10

Допустим в передаваемой комбинации возникла ошибка F (x) = (11, 11, 00, 10).
Необходимо восстановить информационную последовательность.
3.3. Сверточные коды 115

t=0 t=1 Решение. Начиная из узла s0 (t=0) треллиса мы вы-


s0 бирем ребро с весом, соответствующим полученной
11 кодовой комбинации F (x). Так для первой пары сим-
s1 волов мы имеем значения 11. Для треллиса это соот-
s2 ветствует нижнему ребру выходящему из узла s0 . Мы
s3 перешли в узел s2 при t=1.
F= 11

На втором шаге из узла s2 (t=1) треллиса мы должны вы- t=0 t=1 t=2
брать ребро с весом 11, соответствующим второй паре по- s0
лученной кодовой комбинации F (x). Так как ребер с таким
весом у нас нет, то мы рассмотрим оба имеющихся вариан- s1 10 1
та. Для верхнего ребра имеем вес 10. Запишем расстояние s2 01
между 10 и 11 в узел s1 (t=2). Для нижнего ребра имеем s3 1
вес 01. Расстояние между 01 и 11 равно 1 - запишем в узел F= 11 11
s3 (t=2).

t=0 t=1 t=2 t=3 Третья пара принятой комбинации имеет зна-
s0 чение 00. На третьем шаге мы имеем два марш-
2
11
11 рута. Из узла s1 (t=2) треллиса выходят 2 реб-
s1 1 1 ра с весом 11 и 00. Расстояния между ними и
10 00
s2 0 принятым значением запишем в соответствую-
01 01
s3 1 10 1 щих узлах: 2-для s0 и 0-для s2 . Из узла s3 также
F= 11 11 00 выходят два ребра с весом 01 и 10. Расстояние
между ними и принятым знчением 00 равно 1
записывается в узлы s1 и s3 (t=3).

t=0 t=1 t=2 t=3 t=4 На 4 шаге нам необходимо отбросить узлы
s0 с максимальным весом, поскольку они со-
ответствуют последовательностям наибо-
s1 0 лее сильно отличающимся от передавае-
10
s2 мой. Для дальнейшего пути мы оставля-
s3 ем только узел s2 . Четвертая пара приня-
F= 11 11 00 10 той комбинации имеет значение 10. Из уз-
ла s2 (t=3) треллиса выходит верхнее реб-
ро с весом 10 и мы переходим по этому
ребру в узел s1 .
116 Глава 3. Теория помехоустойчивого кодирования

В заключение мы должны определить t=0 t=1 t=2 t=3 t=4


путь проходящий через узлы с минималь- s0 0
ным суммарным растоянием. На каждом 0
шаге, верхнему ребру мы ставим в соответ- s1 0 1 0
1
ствие значение 0, а нижнему ребру значе- s2 1 1
ние 1. Раскодированная информационная s3
последовательность имеет вид a = 1 0 1 0
a = (1010). N

Пример 3.17. Передаваемое информационное сообщение имеет вид

a = (111000101).

Этому сообщению соответствует следующая кодовая комбинация, построенная по


стреллису:
F = (11, 01, 10, 01, 11, 00, 11, 10, 00).

t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8 t=9
00
s0 11
11
s1 11
10 00
01
s2 01
10
s3
a = 1 1 1 0 0 0 1 0 1
F= 11 01 10 01 11 00 11 10 00

Допустим в передаваемой комбинации возникло несколько ошибок

F = (01, 01, 11, 01, 10, 00, 10, 10, 00).

Необходимо восстановить информационную последовательность.

t=0 t=1 Решение. Начиная из узла s0 (t=0) треллиса мы должны выбрать


s0 ребро с весом, соответствующим полученной кодовой комбинации
00 1
F (x). Так для первой пары символов мы имеем значения 01. Од-
s1 11 нако из узла s0 не выходит ребер с таким весом. Но есть ребра с
s2 1 весами 00 и 11. Нам необходимо рассмотреть оба имеющихя вари-
s3 анта. Вес верхнего ребра 00. Запишем в узел s0 (t=1) расстояние
между весом ребра 00 и значением первой пары 01 кодовой комби-
F= 01
нации. В узел s2 (t=1) так же записывается значение 1 - расстояние
между весом нижнего ребра 11 и кодом 01.
3.3. Сверточные коды 117

Вторая пара пара принятой комбинации имеет значение t=0 t=1 t=2
01. Нам необходимо продолжить уже два маршрута. Из s0 00 1 00 1
узла s0 (t=1) треллиса выходят 2 ребра с весом 11 и 00. Рас- s1 11
11
2
стояния между ними и принятым значением 01 запишем 10
s2 1 1
в соответствующих узлах: 2-для s0 и 0-для s2 . Из узла s2 01
также выходят два ребра с весом 01 и 10. Расстояние меж- s3 0
01 01
ду ними и принятым знчением 00 равное 1 записывается
в узлы s1 и s3 (t=2).

Теперь нам нам необходимо отбросить узлы с максимальным расстоянием, по-


скольку они соответствуют последовательностям наиболее сильно отличающимся от
передаваемой. Поскольку s3 - узел с минимальным расстоянием =0, то дальнейший
маршрут мы будем прокладывать от него.

t=0 t=1 t=2 t=3 На третьем шаге из узла s3 (t=2) мы должны выбрать
s0 ребро с весом 11. Так как ребер с таким весом у нас нет,
s1 1 то мы рассмотрим маршруты по ребрам с весом 01 и 10.
s2 Запишем расстояние между 01 и 11 в узел s1 (t=3). Для
01
нижнего ребра имеем вес 10. Расстояние между 10 и 11
s3 10 1
равно 1 - запишем в узел s3 (t=3).
01 01 11

Следующая пара принятой комбинации имеет t=0 t=1 t=2 t=3 t=4
значение 01. Нам необходимо продолжить уже s0 1
два маршрута. Из узла s1 (t=3) выходят 2 ребра s1 1
11
0
00
с весом 11 и 00. Расстояния между ними и при-
s2 01 1
нятым значением 01 запишем в соответствую- 01
щих узлах: 1-для s0 и s2 . Из узла s3 также вы- s3 10 1 10 2
01 01 11 01
ходят два ребра с весами 01 и 10. Расстояние
между ними и принятым значением 01 записы-
вается в узелы s1 (0) и s3 (2).

Далее, отбрасываем узлы с максимальным расстоянием поскольку они соответ-


ствуют последовательностям наиболее сильно отличающимся от передаваемой. По-
скольку s1 - узел с минимальным расстоянием =0, то дальнейший маршрут мы будем
прокладывать от него.
118 Глава 3. Теория помехоустойчивого кодирования

t=0 t=1 t=2 На пятом шаге из узла s1 (t=4) мы должны


t=3 t=4
s0 выбрать ребро с весом 10. Так как ребер с
1
s1 11
0 таким весом у нас нет, то мы рассмотрим
00 маршруты по ребрам с весом 11 и 00. За-
s2 01
01
1
пишем расстояние между 11 и 10 в узел
s3 10 10 2 s0 (t=5). Для нижнего ребра имеем вес 00.
01 01 11 01 Расстояние между 00 и 10 равно 1 - запи-
шем в узел s3 (t=5).
Дальнейший ход расчетов покажем на рисунках.

t=0 t=1 t=2 t=3 t=4 t=5


s0 1
11
s1
00
s2 1
s3
01 01 11 01 10

t=0 t=1 t=2 t=3 t=4 t=5 t=6


s0 1 00 0
11 11
s1 1
00 10
s2 1
01
2
s3 1
01 01 11 01 10 00

t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7


s0 00 1
s1 11
s2 1
s3
01 01 11 01 10 00 10

t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8


s0 00 1 00 1
11
s1 11 0
10
s2 1
01
1
s3 2
01 01 11 01 10 00 10 10
3.3. Сверточные коды 119

t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8 t=9

10
0

01 01 11 01 10 00 10 10 10

В заключение мы должны определить путь проходящий через узлы с минималь-


ным суммарным растоянием. На каждом шаге, верхнему ребру мы ставим в соответ-
ствие значение 0, а нижнему ребру значение 1.
t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8 t=9
s0 0 0 0
0 0
s1 1 1 1
0 1 0 1
s2 0 0
1 1
s3 1 1
1 1 1 0 0 0 1 0 1

Раскодированная информационная последовательность имеет вид


a = (111000101). N
Как видно из последнего примера количество ошибок в последовательности может
быть любым, главное, чтобы они отстояли друг от друга не менее чем на 5 символов.
Т.е. между двумя искаженными значениями должно стоять не менее 4 неискаженных.
Но это означает, что для обнаружения ошибки мы должны рассчитать расстояния
по всем узлам за последние 2 шага. Очевидно, что чем плотнее расположены ошиб-
ки тем труднее их будет обнаружить и тем большее количество шагов необходимо
учитывать для рассчета расстояния. Количество шагов, используемых для рассче-
та расстояний называется шириной окна декодирования. Рассмотрим пример двух
последовательных ошибок.
Пример 3.18. Передаваемое информационное сообщение имеет вид
a = (000000).
Этому сообщению соответствует следующая кодовая комбинация, построенная по
треллису:
F = (00, 00, 00, 00, 00, 00).
t=0 t=1 t=2 t=3 t=4 t=5 t=6
s0
s1
s2
s3
00 00 00 00 00 00
120 Глава 3. Теория помехоустойчивого кодирования

Допустим в передаваемой комбинации возникли последовательно две ошибки

F = (11, 00, 00, 00, 00, 00).

Необходимо восстановить информационную последовательность.

Решение. Для обнаружения такой t=0 t=1 t=2 t=3 t=4 t=5 t=6
ошибки нам необходимо начертить s0 2 0 0 0 0 0
треллис глубиной до шестого уровня s1 1 1 1
включительно. И только на 6 уровне
сумма расстояний по верхнему пу- s2 0 0 0

ти (2) превысит расстояние альтерна- s3


тивного маршрута (3). Здесь ширина 11 00 00 00 00 00
окна декодирования равна L=6.

00 00 00 Другими словами искажение парной ошибки возмож-


s0 но если после нее идут как минимум 10 неискажен-
s1 ных разрядов. Наряду с этим возможны случаи, когда
s2 11 00 11
ошибку вообще невозможно распознать. Например для
кода F = (00, 00, 00) совокупность ошибок типа F =
s3 (11, 10, 11) приведут к тому, что декодер вместо после-
довательности a = (000) выдаст сообщение a = (100).
К сожалению, в этом случае даже увеличение ширины окна декодирования не позво-
ляет обнаружить ошибку. Такого рода пакеты ошибок мы будем называть жесткими.
Несложно показать что минимальный жесткий пакет ошибок имеет вид 3-1-2. Т.е.
в произвольной кодовой последовательности начиная с некоторого бита появляется
подрят 3 ошибочных, затем 1 неискаженный и наконец еще 2 ошибочных (инверти-
рованных). Например жесткими будут следующие пакеты ошибок
F 110101111101 → 111011001101 0011010100 → 0001111000
К счастью все жесткие пакеты ошибок должны начинаться с первого элемента
пары, а это в свою очередь также уменьшает вероятность их появления.

Пример 3.19. Раскодировать сообщение (ая) используя ширину окна декоди-


рования L ≤ 2.
Решение. Сообщению (ая) соответствуют значения (e0,ff) ASCII таблицы. Пе-
реведем его в двоичный вид

(e0,ff) = (11100000, 11111111).

Таким образом исходное кодовое слово имеет вид F = (11, 10, 00, 00, 11, 11, 11, 11).
Для раскодирования сообщения воспользуемся треллисом
3.4. Алгоритм Витерби 121

t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8


s0 2 2 2 2
s1 0 1 1 0 1 1
s2 0 0 0 0 0
s3 1 1 1 1 1
11 10 00 00 11 11 11 11

На рисунке показаны несколько альтернативных маршрутов с окном декодирова-


ния L=2. Очевидно, что последние 4 пары (11,11,11,11) последовательности обрауют
какую-то ошибочную комбинацию. Но для ее исправления у декодера нет дополни-
тельных символов. Поэтому декодер должен либо сообщить о невозможности деко-
дирования, либо предложить некоторую наиболее вероятную комбинацию. В нашем
случае, используя жирную линию треллиса получим

a = (10100110)2 = a6h = | . N

Задача 3.13. В качестве принятого сообщения F = (a1 , a2 ) взять двоичные


значения ASCII кода первых двух букв своей фамилии. Раскодировать сообщение F
используя ширину окна декодирования L ≤ 2.

3.4 Алгоритм Витерби

Рассмотрим схему передачи и


1 1 1 0 0 0
приема сообщения в канале с s0
помехами сверточным кодом.
Допустим информационная по- s1
следовательность имеет вид s2
s3
a = (111000).
11 01 10 01 11 00
Схема кодирования показана на
рисунке.

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

F = (110110011100).

На аппаратном уровне мы можем представить сигнал с положительным напряже-


нием (+) как 0, а сигнал с отрицательным напряжением (-) как 1. Тогда процесс
кодирования выглядит следующим образом:
122 Глава 3. Теория помехоустойчивого кодирования

dB dB

t t
1 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0

Информационная последовательность. Кодовая последовательность.

В процессе передачи информации последовательность искажается как в следствие


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

dB

Если приемник фиксирует только знак напряженности электромагнитного поля, то


цифровая аппроксимация сигнала будет такой

Другими словами, мы получили dB


кодовую комбинацию в виде

F = (111110011101) t
т.е. с двумя ошибками. 1 1 1 1 1 0 0 1 1 1 0 1

Допустим, мы будем придерживаться


s0 1 00 1
11 11 жесткой схемы декодирования, пока-
s1 11 1 2 11 занной на треллисе. Тогда декодер смо-
10 01
s2 1 01 1 жет исправить одну ошибку в середине
01 01
s3 1 10 0 последовательности, но не исправит по-
10 следнюю ошибку, поскольку у него не
11 11 01 11 00
хватит шагов для увеличения окна де-
кодирования.
С вероятностью 1/2 декодер может выдать правильный ответ (111000) или (111001),
а возможно выдаст сообщение о невозможности декодирования.
3.4. Алгоритм Витерби 123

Теперь рассмотрим алоритм dB


Витерби мягкого декодирова- 2
ния. Для этого необходимо, 1
чтобы приемник сигнала
различал не только знак на- 0
t
пряженности, но и амлитуду -1
принимаемого сигнала. Как -2
правило 8 уровневого квантова- -3
ния сигнала бывает достаточно
для эффективного применения -3 -1 0 -1 -1 1 2 -1 -4 -2 3 -1
мягкой схемы декодирования.
Из рисунка видно, что принятая кодовая комбинация имеет вид
F = (−3, −1, 0, −1, −1, 1, 2, −1, −4, −2, 3, −1)

Пример 3.20. Декодировать принятую кодовую комбинацию


F = (−3, −1, 0, −1, −1, 1, 2, −1, −4, −2, 3, −1).

Решение. Расмотрим первый шаг декодирования. Для


этого на треллисе обозначим вес ребра (00) символом
t=0 -3,-1 t=1
s0 -4
(+1,+1), вес ребра (11) символом (-1,-1), вес (10) - сим- ++ s0
-- 4
волом (-1,+1), вес (01) - символом (+1,-1). Это означает,
что для вычисления метрики очередного узла нам необхо- s1 2 s1
димо найти скалярное произведение веса ребра с приня- ++
-2
той информационной парой. На первом шаге t = 1 при- -+ 4
нятая информационная пара есть (-3,-1). Тогда, для пе- s2 s
+- -4 2
рехода s0 → s0 мы должны найти скалярное произведение +- -2
(+1, +1)·(−3, −1) = (+1)·(−3)+(+1)·(−1) = −3−1 = −4. s3 -+ s3
2
Продолжая аналогичным образом, далее получим
s0 → s0 : (+1, +1) · (−3, −1) = (+1) · (−3) + (+1) · (−1) = −3 − 1 = −4,
s0 → s2 : (−1, −1) · (−3, −1) = (−1) · (−3) + (−1) · (−1) = +3 + 1 = +4,
s1 → s0 : (−1, −1) · (−3, −1) = (−1) · (−3) + (−1) · (−1) = +3 + 1 = +4,
s1 → s2 : (+1, +1) · (−3, −1) = (+1) · (−3) + (+1) · (−1) = −3 − 1 = −4,
s2 → s1 : (−1, +1) · (−3, −1) = (−1) · (−3) + (+1) · (−1) = +3 − 1 = +2,
s2 → s3 : (+1, −1) · (−3, −1) = (+1) · (−3) + (−1) · (−1) = −3 + 1 = −2,
s3 → s1 : (+1, −1) · (−3, −1) = (+1) · (−3) + (−1) · (−1) = −3 + 1 = −2,
s3 → s3 : (−1, +1) · (−3, −1) = (−1) · (−3) + (+1) · (−1) = +3 − 2 = +2.
124 Глава 3. Теория помехоустойчивого кодирования

t=0 t=1 Теперь нам необходимо выбрать те ребра, кото-


рые дают максимальные значения метрик узлов.
0 4
На данном шаге это все положительные значения
0 2 метрик. Выделим их жирным цветом:
0 4
0 2

На втором шаге t = 2 принятая информационная пара есть (0,-1). Тогда, для


переходов si → sk соответствующие скалярные произведения дают

t=1 0,-1 t=2


s0 → s0 : (+1, +1) · (0, −1) = 0 + 1 = −1, s0 -1
++ s0
s0 → s2 : (−1, −1) · (0, −1) = 0 + 1 = +1, -- 1
s1 → s0 : (−1, −1) · (0, −1) = 0 + 1 = +1, -1
s1 s1
s1 → s2 : (+1, +1) · (0, −1) = 0 − 1 = −1, ++ 1
s2 → s1 : (−1, +1) · (0, −1) = 0 − 1 = −1, -+ 1
s2 s2
s2 → s3 : (+1, −1) · (0, −1) = 0 + 1 = +1, +- -1
s3 → s1 : (+1, −1) · (0, −1) = 0 + 1 = +1, +- 1
s3 -+ s3
s3 → s3 : (−1, +1) · (0, −1) = 0 − 1 = −1. -1

t=0 t=1 t=2 Теперь нам необходимо выбрать те реб-


ра, которые дают максимальные значе-
0 4 3
ния суммарных метрик узлов. Выделим
0 2 3 их жирным цветом.
0 4 5
0 2 5

На третьем шаге t = 3 принятая информационная пара есть (-1,1). Тогда, для


переходов si → sk соответствующие скалярные произведения дают
3.4. Алгоритм Витерби 125

t=2 -1,1 t=3


s0 → s0 : (+1, +1) · (−1, 1) = −1 + 1 = 0, 0
s0 ++ s0
s0 → s2 : (−1, −1) · (−1, 1) = +1 − 1 = 0, -- 0
s1 → s0 : (−1, −1) · (−1, 1) = +1 − 1 = 0, 2
s1 s1
s1 → s2 : (+1, +1) · (−1, 1) = −1 + 1 = 0, ++ -2
s2 → s1 : (−1, +1) · (−1, 1) = +1 + 1 = 2, -+ 0
s2 s2
s2 → s3 : (+1, −1) · (−1, 1) = −1 − 1 = −2, +- 0
s3 → s1 : (+1, −1) · (−1, 1) = −1 − 1 = −2, +- -2
s3 -+ s3
s3 → s3 : (−1, +1) · (−1, 1) = +1 + 1 = 2. 2

t=0 t=1 t=2 t=3 Складывая веса полученных узлов с преды-


дущими значениями нам необходимо вы-
0 4 3 3
брать те ребра, которые дают максималь-
0 2 3 7 ные значения суммарных метрик узлов. Вы-
0 4 5 3 делим их жирным цветом. Продолжая ана-
0 2 5 7 логичным образом, получим следующую по-
следовательность действий.

На четвертом шаге t = 4 принятая информационная пара есть (2,-1).

t=3 2,-1 t=4


s0 → s0 : (+1, +1) · (2, −1) = +2 − 1 = +1, 1
s0 ++ s0
s0 → s2 : (−1, −1) · (2, −1) = −2 + 1 = −1, -- -1
s1 → s0 : (−1, −1) · (2, −1) = −2 + 1 = −1, -3
s1 s1
s1 → s2 : (+1, +1) · (2, −1) = +2 − 1 = +1, ++ 3
s2 → s1 : (−1, +1) · (2, −1) = −2 − 1 = −3, -+ -1
s2 s2
s2 → s3 : (+1, −1) · (2, −1) = +2 + 1 = +3, +- 1
s3 → s1 : (+1, −1) · (2, −1) = +2 + 1 = +3, +- 3
s3 -+ s3
s3 → s3 : (−1, +1) · (2, −1) = −2 − 1 = −3. -3

На пятом шаге t = 5 принятая информационная пара есть (-4,-2).


126 Глава 3. Теория помехоустойчивого кодирования

t=4 -4,-2 t=5


s0 → s0 : (+1, +1) · (−4, −2) = −4 − 2 = −6, -6
s0 ++ s0
s0 → s2 : (−1, −1) · (−4, −2) = +4 + 2 = +6, -- 6
s1 → s0 : (−1, −1) · (−4, −2) = +4 + 2 = +6, 2
s1 s1
s1 → s2 : (+1, +1) · (−4, −2) = −4 − 2 = −6, ++ -2
s2 → s1 : (−1, +1) · (−4, −2) = +4 − 2 = +2, -+ 6
s2 s2
s2 → s3 : (+1, −1) · (−4, −2) = −4 + 2 = −2, +- -6
s3 → s1 : (+1, −1) · (−4, −2) = −4 + 2 = −2, +- -2
s3 -+ s3
s3 → s3 : (−1, +1) · (−4, −2) = +4 − 2 = +2. 2

На шестом шаге t = 6 принятая информационная пара есть (3,-1).

t=5 3,-1 t=6


s0 → s0 : (+1, +1) · (3, −1) = +3 − 1 = +2, 2
s0 ++ s0
s0 → s2 : (−1, −1) · (3, −1) = −3 + 1 = −2, -- -2
s1 → s0 : (−1, −1) · (3, −1) = −3 + 1 = −2, -4
s1 s1
s1 → s2 : (+1, +1) · (3, −1) = +3 − 1 = +2, ++ 4
s2 → s1 : (−1, +1) · (3, −1) = −3 − 1 = −4, -+
-2
s2 s2
s2 → s3 : (+1, −1) · (3, −1) = +3 + 1 = +4, +- 2
s3 → s1 : (+1, −1) · (3, −1) = +3 + 1 = +4, +- 4
s3 -+ s3
s3 → s3 : (−1, +1) · (3, −1) = −3 − 1 = −4. -4
3.4. Алгоритм Витерби 127

В результате треллис будет выглядеть следующим образом.

t=0 t=1 t=2 t=3 t=4 t=5 t=6


0 4 3 3 6 16 18
0 2 3 7 10 10 12
0 4 5 3 8 12 14
0 2 5 7 6 8 16

На последнем шаге t = 6 мы выбираем узел с максимальным весом 18 и выделяем


единственный путь, по которому к нему можно прийти из t = 0. Как и в жесткой
схеме, обозначая верхнее ребро через 0, а нижнее через 1 раскодируем принятую
комбинацию:

s0 0 0
0
s1 1 1
0 1
s2 0 0
1
s3 1
1 1 1 0 0 0

Мы получили информационную последовательность a = (111000). N


128 Глава 3. Теория помехоустойчивого кодирования

Задача 3.14. Раскодировать сообщение F с помощью мягкого алгоритма Ви-


терби.
N F
1 −4, −1, −3, 1, 3, 0, 3, 2, 4, 0, −3, −3, −2, −3, −1, 4
2 −1, 4, 0, 4, −2, −4, 1, 2, 3, 1, 4, 4, 3, 1, 3, −4
3 3, −2, 2, −1, 4, −2, −2, 4, 3, 1, 0, 3, 2, −2, 1, −4
4 0, 1, −4, 3, 4, −4, 3, 4, 2, −1, −3, −3, 2, 2, 2, 0
5 3, −3, 2, 2, 4, −4, −4, −4, −4, 2, 3, 4, −4, 0, −1, 1
6 2, −4, 3, 2, −2, 2, −2, 2, −3, −3, 2, 3, 2, −4, 2, 1
7 4, 2, 4, 0, 3, −1, 1, 0, −4, −3, 1, −3, −3, −1, 4, 0
8 −3, −4, −1, −3, 2, −2, 4, 3, 0, −2, 3, −2, −2, −4, 1, −2
9 0, −3, −4, −1, −3, 1, −3, −3, −3, 1, −1, 2, −2, 1, −1, 3
10 −3, 0, 2, −4, −3, 1, −4, 1, −3, 4, −2, −2, 0, −4, 2, 0
11 0, 2, −4, −4, 2, −3, −2, −4, −4, −4, −1, 1, 3, −2, −3, 1
12 3, 0, −2, −4, 4, −4, 4, 3, 2, 4, 4, 1, 3, 1, 0, −3
13 −1, −1, 3, 0, 2, −2, −1, −2, 4, −2, −4, 0, 0, −1, 3, −4
14 1, −1, 1, 3, 3, 4, 3, −3, 4, −2, −2, −2, 2, −2, 2, 1
15 −1, 3, 1, 3, 1, 0, 4, −3, 3, 1, −1, −3, −4, −3, 2, 1
16 3, −2, 2, −3, 2, 4, −3, 3, −1, 4, −2, 2, −1, 2, 3, 2
17 2, −3, 2, −4, 1, −4, −3, 4, −3, 4, −2, 2, 1, 1, 0, 3
18 −1, −4, 4, −3, 4, −2, −1, 1, 2, 3, 1, 1, 2, −3, −3, −2
19 −2, −4, 3, 3, 4, 1, −1, 0, 4, 2, 0, −1, −2, −2, −3, −2
20 2, 2, 0, 1, −1, 4, −1, −2, 3, −3, 1, −3, 2, 1, 3, 2
21 4, 4, −4, −4, 0, 3, −2, −2, 3, 4, 0, 4, 2, −2, −1, −2
22 −2, −2, 3, 3, 2, 3, −3, −1, −2, 0, 4, 3, −1, −3, −3, −3
23 3, 0, 0, 4, 3, −2, −3, 4, 0, 4, −2, 2, 3, 4, −4, 2
24 −3, 3, 2, 1, −3, −3, 0, 1, 0, −4, 1, −1, −4, 1, −2, 3
25 −3, 3, −4, 3, 0, −4, −1, −2, 2, −1, 3, −2, −2, −1, −1, 4
26 −2, 1, −1, −4, 0, 4, −4, −1, 2, −1, 3, 3, 0, −3, 4, 1
27 1, −3, 2, 1, −4, −3, 3, 2, −4, 1, −3, 3, −2, −3, 3, −1
28 1, −2, 2, −4, −2, 3, 1, −3, −2, 0, 1, 3, 4, −1, 2, 4
29 1, 4, 3, 0, −3, 4, 3, 0, −1, −3, −1, 0, −4, −1, −4, −1
30 −3, −3, −2, 3, −4, −1, 0, 1, −1, −1, 1, 0, −2, 4, −3, 0
3.5. Турбокоды 129

3.5 Турбокоды
Турбокоды были введены в практику в 1993 г. и по существу являются комбинацией
двух сверточных кодов. Они обеспечивают значения достоверности очень близкое к
пределу Шеннона.
Турбокоды в настоящее время приняты в качестве стандарта для систем связи
телекоммуникаций третьего поколения 3GPP, стандарта сотовой связи CDMA-2000,
цифрового телевидения DVB, используются в системах спутниковой связи VSAT и
во многих др. стандартах.
Как и в случае мягкого декодирования Витерби, логические элементы 0 и 1 мы
будем представлять электрическим напряжением (-1) и (+1). Проверочные символы
для информационной последовательности a = (x1 , x2 , x3 , x4 ) строятся следующим
образом. Представим последовательность xk в виде матрицы
    
L1 L2 x1 x2 x12
L= = ,
L3 L4 x3 x4 x34
( x13 x24 )

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


разом        
x12 x1 ⊕ x2 x13 x1 ⊕ x3
= , = .
x34 x3 ⊕ x4 x24 x2 ⊕ x4
Передаваемая кодовая комбинация имеет вид

F = (x1 , x2 , x3 , x4 , x12 , x34 , x13 , x24 ).

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


1. На первом шаге мы вычисляем горизонтальную невязку проверочных символов
   
H1 H2 x2  x12 x1  x12
H= = .
H3 H4 x4  x34 x3  x34

Здесь новая операция  определяется следующим образом

A  B = (−) · sign(A) · sign(B) · min(|A|, |B|).

2. На втором шаге вычисляются вертикальные невязки проверочных символов


   
V1 V2 (L3 + H3 )  x13 (L4 + H4 )  x24
V = = .
V3 V4 (L1 + H1 )  x13 (L2 + H2 )  x24

Результатом первой итерации является матрица

X 1 = L + H + V.
130 Глава 3. Теория помехоустойчивого кодирования

3. На третьем шаге мы опять вычисляем горизонтальную невязку проверочных


символов  
(L2 + V2 )  x12 (L1 + V1 )  x12
H= .
(L4 + V4 )  x34 (L3 + V3 )  x34
Заметим, что элементы матрицы V мы берем с предыдущего 2 шага.
4. На четвертом шаге вычисляются вертикальные невязки проверочных символов
   
V1 V2 (L3 + H3 )  x13 (L4 + H4 )  x24
V = = .
V3 V4 (L1 + H1 )  x13 (L2 + H2 )  x24
Заметим, что элементы матрицы H мы берем с предыдущего 3 шага. Результатом
второй итерации является матрица
X 2 = L + H + V.
Как и во всех итеррационных алгоритмах нам периодически требуется проверить
насколько сильно изменяются результаты вычислений при последующих итерациях.
Если X k ≈ X k−1 то процесс вычисления можно прекращать, обозначив X = X k .
Если же значения X k сильно отличаются от X k−1, то необходимо повторять шаги 3-
4. На заключительном этапе нам необходимо перейти от мягкого решения к жесткому
ответу. Для этого всем отрицательным компонентам матрицы
 
X1 X2
X=
X3 X4
ставятся в соответсвие значения принимаемого сигнала 0, а всем положительным -
значение 1:
1 1 + sign(X1 ) 1 + sign(X2 )
 
a = 1/2 + 1/2sign(x) или a = .
2 1 + sign(X3 ) 1 + sign(X4 )

Пример 3.21. Закодируем сообщение a = (1011).


Решение. Учитывая, что a = (x1 , x2 , x3 , x4 ) = (1011) представим последователь-
ность xk в виде матрицы
   
x1 x2 1 0
L= = ,
x3 x4 1 1
тогда горизонтальные и вертикальные проверочные символы строятся следующим
образом        
x12 x1 ⊕ x2 1⊕0 1
= = =
x34 x3 ⊕ x4 1⊕1 0
       
x13 x1 ⊕ x3 1⊕1 0
= = = .
x24 x2 ⊕ x4 0⊕1 1
Передаваемая кодовая комбинация имеет вид
F = (x1 , x2 , x3 , x4 , x12 , x34 , x13 , x24 ) = (10111001). N
Процесс кодирования изобразим следующим образом:
3.5. Турбокоды 131

dB dB

1 0 1 1 t 1 0 1 1 1 0 0 1 t

Информационная последовательность. Кодовая последовательность.

В процессе передачи информации последовательность искажается как в следствие


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

dB

Если приемник фиксирует dB


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

F = (00111000)

т.е. с двумя ошибками.


Теперь рассмотрим алоритм мягкого декодирования. Для этого введем 10 уров-
невое квантование сигнала и запишем его в виде
132 Глава 3. Теория помехоустойчивого кодирования

dB
0,9

0,7

0,5

0,3

0,1

F= 0,4 0,5 0,8 0,9 0,7 0,3 0,3 0,5 t

Из рисунка видно, что принятая кодовая комбинация теперь имеет вид

F = (0.4, 0.5, 0.8, 0.9, 0.7, 0.3, 0.3, 0.5).

Пример 3.22. Декодировать принятую кодовую комбинацию

F = (0.4, 0.5, 0.8, 0.9, 0.7, 0.3, 0.3, 0.5).

Решение. Выделим из принятой информационной последовательности

F = (x1 , x2 , x3 , x4 , x12 , x34 , x13 , x24 ) = (0.4, 0.5, 0.8, 0.9, 0.7, 0.3, 0.3, 0.5)

информационную матрицу
   
x1 x2 0.4 0.5
L= = ,
x3 x4 0.8 0.9

горизотнальные (x12 , x34 ) и вертикальные (x13 , x24 ) проверочные символы


       
x12 0.7 x13 0.3
= , = .
x34 0.3 x24 0.5

1. На первом шаге мы вычисляем горизонтальную невязку проверочных символов


   
x2  x12 x1  x12 0.5  0.7 0.4  0.7
H= = .
x4  x34 x3  x34 0.9  0.3 0.8  0.3

Учитывая, что
A  B = (−1) · sign(A) · sign(B) · min(|A|, |B|)
3.5. Турбокоды 133

получим

x2  x12 = 0.5  0.7 = (−1) · sign(0.5) · sign(0.7) · min(|0.5|, |0.7|) = −0.5,


x1  x12 = 0.4  0.7 = (−1) · sign(0.4) · sign(0.7) · min(|0.4|, |0.7|) = −0.4,
x4  x34 = 0.9  0.3 = (−1) · sign(0.9) · sign(0.3) · min(|0.9|, |0.3|) = −0.3,
x3  x34 = 0.8  0.3 = (−1) · sign(0.8) · sign(0.3) · min(|0.8|, |0.3|) = −0.3,

и    
H1 H2 −0.5 −0.4
H= = .
H3 H4 −0.3 −0.3
2. На втором шаге вычисляем вертикальную невязку проверочных символов
   
(L3 + H3 )  x13 (L4 + H4 )  x24 (0.8 − 0.3)  0.3 (0.9 − 0.3)  0.5
V = = .
(L1 + H1 )  x13 (L2 + H2 )  x24 (0.4 − 0.5)  0.3 (0.5 − 0.4)  0.5
или    
V1 V2 −0.3 −0.5
V = = .
V3 V4 0.1 −0.1
Результатом первой итерации является матрица
       
0.4 0.5 −0.5 −0.4 −0.3 −0.5 −0.4 −0.4
X1 = L+H+V = + + = .
0.8 0.9 −0.3 −0.3 0.1 −0.1 0.6 0.5

3. На третьем шаге мы опять вычисляем горизонтальную невязку проверочных


символов
   
(L2 + V2 )  x12 (L1 + V1 )  x12 (0.5 − 0.5)  0.7 (0.4 − 0.3)  0.7
H= = .
(L4 + V4 )  x34 (L3 + V3 )  x34 (0.9 − 0.1)  0.3 (0.8 + 0.1)  0.3

Заметим, что элементы матрицы V мы берем с предыдущего 2 шага. В результате


получаем    
0  0.7 0.1  0.7 0 −0.1
H= = .
0.8  0.3 0.9  0.3 −0.3 −0.3
4. На четвертом шаге вычисляем вертикальную невязку проверочных символов
   
V1 V2 (L3 + H3 )  x13 (L4 + H4 )  x24
V = = .
V3 V4 (L1 + H1 )  x13 (L2 + H2 )  x24

Подставляя сюда элементы матрицы H с предыдущего 3 шага, получим


   
(0.8 − 0.3)  0.3 (0.9 − 0.3)  0.5 0.5  0.3 0.6  0.5
V = = ,
(0.4 + 0)  0.3 (0.5 − 0.1)  0.5 0.4  0.3 0.4  0.5
или  
−0.3 −0.5
V =
−0.3 −0.4
134 Глава 3. Теория помехоустойчивого кодирования

Результатом второй итерации является матрица


       
0.4 0.5 0 −0.1 −0.3 −0.5 0.1 −0.1
X2 = L+H +V = + + = .
0.8 0.9 −0.3 −0.3 −0.3 −0.4 0.2 0.2

Читатель может смостоятельно проверить, что 5 и 6 шаг вычислений дает


     
0 −0.1 −0.3 −0.5 0.1 −0.1
H= , V = , X3 = .
−0.3 −0.3 −0.3 −0.4 0.2 0.2

Поскольку X = X 2 = X 3 , то дальнейшие итерации мы прекращаем.


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

1 1 + sign(X1 ) 1 + sign(X2 ) 1 1 + sign(0.1) 1 + sign(−0.1)


   
a= =
2 1 + sign(X3 ) 1 + sign(X4 ) 2 1 + sign(0.2) 1 + sign(0.2)
или      
1 1+1 1−1 1 2 0 1 0
a= = = .
2 1+1 1+1 2 2 2 1 1
Таким образом, декодированная информационная последовательность имеет вид

a = (1011). N

Задача 3.15. Декодировать принятые сигналы F , сформированные турбокодом.

N F N F
1 0.9, 0.1, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 16 0.8, 0.1, 0.6, 0.8, 0.3, 0.8, 0.6, 0.7
2 0.9, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 17 0.8, 0.2, 0.6, 0.8, 0.3, 0.8, 0.6, 0.7
3 0.9, 0.3, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 18 0.8, 0.3, 0.6, 0.8, 0.3, 0.8, 0.6, 0.7
4 0.9, 0.4, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 19 0.8, 0.4, 0.6, 0.8, 0.3, 0.8, 0.6, 0.7
5 0.9, 0.5, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 20 0.8, 0.5, 0.6, 0.8, 0.3, 0.8, 0.6, 0.7
6 0.9, 0.6, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 21 0.8, 0.6, 0.6, 0.8, 0.3, 0.8, 0.6, 0.7
7 0.9, 0.7, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 22 0.8, 0.7, 0.6, 0.8, 0.3, 0.8, 0.6, 0.7
8 0.9, 0.1, 0.1, 0.4, 0.5, 0.6, 0.7, 0.8 23 0.8, 0.8, 0.6, 0.8, 0.3, 0.8, 0.6, 0.7
9 0.8, 0.1, 0.7, 0.8, 0.2, 0.7, 0.7, 0.6 24 0.8, 0.9, 0.6, 0.8, 0.3, 0.8, 0.6, 0.7
10 0.8, 0.2, 0.7, 0.8, 0.2, 0.7, 0.7, 0.6 25 0.8, 0.9, 0.5, 0.8, 0.4, 0.9, 0.5, 0.6
11 0.8, 0.3, 0.7, 0.8, 0.2, 0.7, 0.7, 0.6 26 0.8, 0.9, 0.4, 0.8, 0.4, 0.9, 0.5, 0.6
12 0.8, 0.4, 0.7, 0.8, 0.2, 0.7, 0.7, 0.6 27 0.8, 0.9, 0.3, 0.8, 0.4, 0.9, 0.5, 0.6
13 0.8, 0.5, 0.7, 0.8, 0.2, 0.7, 0.7, 0.6 28 0.8, 0.9, 0.2, 0.8, 0.4, 0.9, 0.5, 0.6
14 0.8, 0.6, 0.7, 0.8, 0.2, 0.7, 0.7, 0.6 29 0.8, 0.9, 0.1, 0.8, 0.4, 0.9, 0.5, 0.6
15 0.8, 0.7, 0.7, 0.8, 0.2, 0.7, 0.7, 0.6 30 0.7, 0.8, 0.4, 0.8, 0.4, 0.7, 0.5, 0.7
3.6. Вычисления в полях Галуа 135

3.6 Вычисления в полях Галуа

Группой G называется множество элементов (a1 , a2 , ..., an ) ∈ G (с заданной ассоциа-


тивной бинарной операцией ” ◦ ”4 , для которых выполняются следующие условия:
1. a ◦ e = a - существование некоторого единичного элемента e ∈ G;
2. a◦a = e - существование обратного элемента a ∈ G для любого элемента группы
a ∈ G.
Количество элементов в группе называется порядком группы.
Множество целых чисел (..., −3, −2, −1, 0, 1, 2, 3, ...) ∈ Z относительно бинарной
операции ”+” (арифметическое сложение) образует группу, поскольку в нем элемент
e = 0 играет роль единичного (т.е. a + e = a + 0 = a) и для любого числа a ∈ Z можно
найти такое b ∈ Z, что их сумма даст e = 0. Например для a = 4, обратным будет
b = −4, тогда a + b = 4 + (−4) = 0 = e. Описанное множество далее будет называться
аддитивной группой.
Множество тех же целых чисел (..., −3, −2, −1, 0, 1, 2, 3, ...) ∈ Z относительно би-
нарной операции ” · ” (умножение) не образует группу, поскольку в нем нельзя найти
обратного элемента для произволного a ∈ Z. Очевидно, что роль единичного эле-
мента здесь будет играть собственно единица e = 1 (т.е. a · e = a · 1 = a), но для
нахождения обратного элемента необходимо для произвольного a найти такое b, что-
бы выполнялось равенство a · b = e. Например, для a = 5 мы должны написать
b = 51 = 0.2 и тогда 5 · 0.2 = 1. Но b = 15 = 0.2 ∈/ Z т.е. обратное число не являет-
ся целым и не принадлежит множеству Z. Такое множество элементов называется
полугруппой (мультипликативной полугруппой).
Для читателя, впервые сталкивающегося с теорией конечных групп естественно
возникает вопрос: а что делать если сумма двух элементов группы будет больше
максимального элемента группы?

Пример 3.23. Классические стрелочные часы имеют на циферблате значения

(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12).

Если занятия начались в 11 часов и будут длится 2 часа, то во сколько они закон-
чатся? Обычно ответ вычисляется следующим образом

11 + 2 = 13,

но числа 13 часах не нарисовано. Тогда мы вычитаем

13 − 12 = 1

и говорим, что занятия закончились в 1 час.


4
Ассоциативность означает, что нам безразлично в каком порядке проводить вычисления: (a1 ◦
a2 ) ◦ a3 = a1 ◦ (a2 ◦ a3 ) = a1 ◦ a2 ◦ a3 .
136 Глава 3. Теория помехоустойчивого кодирования

Пример 3.24. Если мы легли спать в 10 часов и проспали 9 часов, то во сколько


мы проснулись? Вычисляя

10 + 9 = 19 ≡ 19 − 12 = 7

мы говорим, что проснулись в 7 часов.


Для того, чтобы обозначить, что для нас 19 ≡ 7 мы использовали другой знак
равенства ” ≡ ”.

Пример 3.25. Поезд № 240Э Москва – Владивосток ходит каждый день с


Ярославского вокзала. Отправление 20:00. Время в пути 6 дней 15 часов. Во сколько
(по Московскому времени) поезд прибудет во Владивосток? Вычисляя, получим

20 + 6 · 24 + 15 = 179.

Теперь, разделим 179 на 12 и найдем остаток

179 11
= 14 +
12 12
или
179 = 14 · 12 + 11.
Т.е. поезд прибудет во Владивосток в 11 часов. (Мы пока не обсуждаем вопрос: но-
чью или днем?) Т.е. для определения данного времени нам понадобилось вычислить
остаток от деления 179 на 12. Этот остаток и является ответом. Математически,
данный факт записывается так

179 ≡ 11 (mod 12).

Теперь, решения предыдущих задач записываются в виде:

11 + 2 = 13 ≡ 1 (mod 12), 10 + 9 = 19 ≡ 7 (mod 12).

Кольцом называется множество элементов, с двумя бинарными операциями ("+"и


” × ”), которое является аддитивной группой, но мультипликативной полугруппой.
Рассмотрим множество из трех целых чисел (0,1,2) и составим для него таблицу
сложения и таблицу умножения по модулю 3:

+ 0 1 2 × 0 1 2
0 0 1 2 0 0 0 0
1 1 2 0 1 0 1 2
2 2 0 1 2 0 2 1

Данное множество образует кольцо и обозначается как Z3 .


3.6. Вычисления в полях Галуа 137

Для кольца Z4 таблицы сложения и умножения по (mod 4) выглядят следующим


образом
+ 0 1 2 3 × 0 1 2 3
0 0 1 2 3 0 0 0 0 0
1 1 2 3 0 1 0 1 2 3
2 2 3 0 1 2 0 2 0 2
3 3 0 1 2 3 0 3 2 1
Заметим, что для элемента 2 не существует мультипликативного обратного. Т.е. в
таблице умножения нет такого числа x которое дало бы 2 · x = 1.
Для кольца Z5 таблицы сложения и умножения по (mod 5) выглядят следующим
образом
+ 0 1 2 3 4 × 0 1 2 3 4
0 0 1 2 3 4 0 0 0 0 0 0
1 1 2 3 4 0 1 0 1 2 3 4
2 2 3 4 0 1 2 0 2 4 1 3
3 3 4 0 1 2 3 0 3 1 4 2
4 4 0 1 2 3 4 0 4 3 2 1
Из таблицы умножения для Z5 можно видеть что для каждого ненулевого эле-
мента существует обратный:

1 · 1 = 1, 2 · 3 = 1, 3 · 2 = 1, 4 · 4 = 1.

Т.е. для 2 обратным элементом будет 3, для 3 - это 2, для 1 - это 1, а для 4 - это 4.
Получается что в кольце Z5 элементы (0,1,2,3,4) образуют группу как по сложению
так и по умножению.
Полем называется множество элементов, с двумя бинарными операциями ("+"и
” × ”), которое является группой как по сложению, так и по умножению (т.е. адди-
тивной и мультипликативной группой одновременно).
Несложно проверить что все кольца Zp , для которых p является простым числом
являются конечными полями.
Для составления таблиц умножения в конечных полях и проведения в них ариф-
метических операций часто пользуются таблицами индексов. Таблица индексов для
Z7 строиться следующим образом. Возьмем произвольное число (например 2) и будем
искать остатки при делении его степени 2n на 7:

20 ≡ 1 (mod 7), 21 ≡ 2 (mod 7), 22 ≡ 4 (mod 7), 23 = 8 ≡ 1 (mod 7)....

Сведем ответы в таблицу


n 0 1 2 3 4 5 6
2n 1 2 4 1 2 4 1
Из таблиц видно, что значения остатков

2n (mod 7) = (1, 2, 4)
138 Глава 3. Теория помехоустойчивого кодирования

не принимают всех чисел кольца (1,2,3,4,5,6), т.е. 2 не является генератором Z7 . Те-


перь возьмем в качестве основания число 3:

n 0 1 2 3 4 5 6
3n 1 3 2 6 4 5 1

Из таблицы (экспонент) видно, что 3n (mod 7) может принимать любое значение из


набора (1,2,3,4,5,6), т.е. является генератором Z7 . Обратной к полученной таблице
будет являтся таблица логарифмов (индексов):

n 0 1 2 3 4 5 6
ind n 6 0 2 1 4 5 3

Пользуясь таблицей индексов и экспонент несложно производить некоторые ариф-


метические операции

2 × 6 = 3ind 2 × 3ind 6 = 3ind 2+ind 6 = 32+3 = 35 = 5,

3 × 5 = 3ind 3 × 3ind 5 = 3ind 3+ind 5 = 31+5 = 36 = 30 = 1,


5 × 6 = 3ind 5 × 3ind 6 = 3ind 5+ind 6 = 35+3 = 38 = 32 = 2.
В последних двух выражения мы учли, что 6 ≡ 0 (mod 6) и 8 ≡ 2 (mod 6). Другими
словами, умножение в кольце Zp чисел x и y производится по следующему правилу

x × y = αind x × αind y = α(ind x+ind y) mod (p−1) .

Выпишем таблицы сложения и умножения для Z7 :

+ 0 1 2 3 4 5 6 × 0 1 2 3 4 5 6
0 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0
1 1 2 3 4 5 6 0 1 0 1 2 3 4 5 6
2 2 3 4 5 6 0 1 2 0 2 4 6 1 3 5
3 3 4 5 6 0 1 2 3 0 3 6 2 5 1 4
4 4 5 6 0 1 2 3 4 0 4 1 5 2 6 3
5 5 6 0 1 2 3 4 5 0 5 3 1 6 4 2
6 6 0 1 2 3 4 5 6 0 6 5 4 3 2 1

Кольцо Z8 тоже можно превратить в поле, но для этого необходимо определить


другие таблицы сложения и умножения, предварительно построив таблицу индексов.
Такие поля (с собственными таблицами сложения и умножения) называются полями
Галуа GF (pk ).
3.6. Вычисления в полях Галуа 139

F Для составления таблицы индексов поля GF (23 ) воспользуемся следующим за-


мечательным трюком. Возьмем неприводимый полином 3 степени с коэффициентами
из Z2 :
p(x) = x3 + x + 1
и рассмотрим остатки от деления степеней xn на p(x):
 0   1 
x x
= 1 = 0001; = x = 0010
p(x) p(x)
 2   3 
x x
= x2 = 0100; = x + 1 = 0011
p(x) p(x)
 4   5 
x x
= x2 + x = 0110; = x2 + x + 1 = 0111
p(x) p(x)
 6   7 
x x
= x2 + 1 = 0101; = 1 = 0001
p(x) p(x)
Учитывая, что в десятичной записи
001 = 1, 010 = 2, 011 = 3, 100 = 4, 101 = 5, 110 = 6, 111 = 7
из этих остатков составим таблицу индексов для GF (23)
n 0 1 2 3 4 5 6 7
n
2 1 2 4 3 6 7 5 1
ind n 7 0 1 3 2 6 4 5
Теперь, пользуясь таблицей индексов несложно построить таблицу умножения
для GF (23 ):
⊕ 1 2 3 4 5 6 7 × 1 2 3 4 5 6 7
1 0 3 2 5 4 7 6 1 1 2 3 4 5 6 7
2 3 0 1 6 7 4 5 2 2 4 6 3 1 7 5
3 2 1 0 7 6 5 4 3 3 6 5 7 4 1 2
4 5 6 7 0 1 2 3 4 4 3 7 6 2 5 1
5 4 7 6 1 0 3 2 5 5 1 4 2 7 3 6
6 7 4 5 2 3 0 1 6 6 7 1 5 3 2 4
7 6 5 4 3 2 1 0 7 7 5 2 1 6 4 3
Заметим, что таблица сложения в данном случае тоже строиться по другому. В каче-
стве операции сложения мы здесь используем оператор побитового сложения XOR
- ” ⊕ ”. Например
2 + 3 = 010 ⊕ 011 = 001 = 1, 5 + 6 = 101 ⊕ 110 = 011 = 3.
Поскольку и по сложению и по умножению наши элементы образуют группы то
данное множество элементов можно назвать полем GF (23).
140 Глава 3. Теория помехоустойчивого кодирования

F Аналогичным образом построим поле Галуа GF (24). Для этого возьмем непри-
водимый полином 4 степени с коэффициентами из Z2 :

p(x) = x4 + x + 1

и рассмотрим остатки от деления степеней xn на p(x):


h 0i h 1i h 2i
x x x
p
= 1 = 0001 p
= x = 0010 p
= x2 = 0100 ...
h 4i h 5i h 6i
x x x
p
= 1 + x = 0011 p
= x + x2 = 0110 p
= x2 + x3 = 1100 ...
h 8i h 9i h i
x x x10
p
= 1 + x2 = 0101 p
= x + x3 = 1010 p
= 1 + x + x2 = 0111 ...

Учитывая, что в десятичной записи

0001 = 1, 0010 = 2, 0011 = 3, ..., 1101 = 13, 1110 = 14, 1111 = 15,

из этих остатков составим таблицу индексов для GF (24 )

n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2n 1 2 4 8 3 6 12 11 5 10 7 14 15 13 9 1
ind n 15 0 1 4 2 8 5 10 3 14 9 7 6 13 11 12
Теперь, пользуясь таблицей индексов несложно построить таблицу умножения
для GF (24 ):

× 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 2 4 6 8 10 12 14 3 1 7 5 11 9 15 13
3 3 6 5 12 15 10 9 11 8 13 14 7 4 1 2
4 4 8 12 3 7 11 15 6 2 14 10 5 1 13 9
5 5 10 15 7 2 13 8 14 11 4 1 9 12 3 6
6 6 12 10 11 13 7 1 5 3 9 15 14 8 2 4
7 7 14 9 15 8 1 6 13 10 3 4 2 5 12 11
8 8 3 11 6 14 5 13 12 4 15 7 10 2 9 1
9 9 1 8 2 11 3 10 4 13 5 12 6 15 7 14
10 10 7 13 14 4 9 3 15 5 8 2 1 11 6 12
11 11 5 14 10 1 15 4 7 12 2 9 13 6 8 3
12 12 11 7 5 9 14 2 10 6 1 13 15 3 4 8
13 13 9 4 1 12 8 5 2 15 11 6 3 14 10 7
14 14 15 1 13 3 2 12 9 7 6 8 4 10 11 5
15 15 13 2 9 6 4 11 1 14 12 3 8 7 5 10
Сложение определяется как побитовая сумма по модулю 2 оператором XOR. В об-
щем случае показанная схема позволяет для любого pk построить поле GF (pk ).
3.7. Коды БЧХ 141

3.7 Коды БЧХ


Рассмотренные нами ранее полиномиальные коды для исправления ошибок требова-
ли знания таблицы синдромов. Получается, что на приемнике информации должна
быть выделена память для ее хранения. В противном случае для каждого блока при-
нятой кодовой последоватеьльности необходимо рассчитывать синдромные остатки,
а это опять задержки в передаче. Дальнейшей целью теории помехоустойчивого ко-
дирования является построение алгоритмов, позволяющих определять ошибку поль-
зуясь только принятой коддовой комбинацие. Очевидно что такие коды не обязаны
быть совершенными, а главным параметром становиться простота их аппаратной
реализации.
Коды БЧХ являются разновидностью полиномиальных и формируются по тому
же принципу. Информационная последовательность a = (ak−1 ak−2 ...a1 a0 ) представ-
ляется в виде полинома

Q = ai xi = ak−1 xk−1 + ak−2 xk−2 + ... + a1 x1 + a0 x0 .

По формуле
q
X
2r ≥ i
Ck+r
i=0

определяется количество r проверочных символов, необходимых для исправления q


ошибок. После чего смещенный полином xr Q делится на проверочный p:
xr Q R
=C+
p p
и формируется кодовая последовательность
 r 
xQ
F = Cp = ⊕ R.
p

Поскольку коды БЧХ формируются длля работы в полях GF (2m ), то полиномы


p = ψi , i 6= 0 выбираются из множества
m −1
x2 − 1 = ψ0 ψ1 ψ2 ...

Например
F GF (22 ) :
x3 − 1 = (1 + x)(1 + x + x2 )
F GF (23 ) :
x7 − 1 = (1 + x)(1 + x + x3 )(1 + x2 + x3 )
F GF (24 ) :

x15 − 1 = (1 + x)(1 + x + x2 )(1 + x + x4 )(1 + x3 + x4 )(1 + x + x2 + x3 + x4 )


142 Глава 3. Теория помехоустойчивого кодирования

F GF (25) :
x31 − 1 = (1 + x)(1 + x2 + x5 )(1 + x3 + x5 )(1 + x + x2 + x3 + x5 )
× (1 + x + x2 + x4 + x5 )(1 + x + x3 + x4 + x5 )(1 + x2 + x3 + x4 + x5 )
Для создания проверочных полиномов можно брать произвольную комбинацию функ-
ций ψ, например p = ψ1 ψ3 ... (кроме ψ0 = 1 + x).
Заметим, что длина кода и количество исправляемых ошибок напрямую связа-
ны с размерностью поля GF (2m ). Обозначим через [n, k, q] код, длиной n с k ин-
формационными разрядами, исправляющий q ошибок. Тогда поле GF (2m ) допускает
построение следующих кодов БЧХ
F GF (22) : [3, 1, 1]
3
F GF (2 ) : [7, 4, 1], [7, 1, 2]
F GF (24) : [15, 11, 1], [15, 7, 2], [15, 5, 3], [15, 1, 4]
Существует множество различных алгоритмов декодирования кода БЧХ. Мы рас-
смотрим некоторые из них.

3.7.1 Прямой алгебраический метод PGZ


Рассматриваемый декодер был впервые предложен В.В.Петерсоном в 1960 г.
Допустим принятая кодовая комбинация A = (An−1 An−2 ...A1 A0 ) имеет вид
X
F (x) = Ai xi = An−1 xn−1 + An−2 xn−2 + ... + A1 x1 + A0 x0 .

F Для исправления 1 ошибки нам достаточно подставить число 2 в принятую


комбинацию
X
F (2) = Ai 2i = An−1 2n−1 + An−2 2n−2 + ... + A1 21 + A0 20 = 2α .

Тогда α - степень искаженного разряда в полиноме кодовой комбинации.


F Для исправления 2 ошибок нам необходимо рассчитать 4 значения
X
S1 = F (21 ) = Ai 2i = An−1 2n−1 + An−2 2n−2 + ... + A1 21 + A0 20
X
S2 = F (22 ) = Ai (22 )i = An−1 (22 )n−1 + An−2 (22 )n−2 + ... + A1 (22 )1 + A0 (22 )0
X
S3 = F (23 ) = Ai (23 )i = An−1 (23 )n−1 + An−2 (23 )n−2 + ... + A1 (23 )1 + A0 (23 )0
X
S4 = F (24 ) = Ai (24 )i = An−1 (24 )n−1 + An−2 (24 )n−2 + ... + A1 (24 )1 + A0 (24 )0

После чего вычислить (σ1 , σ2 ) из выражения


    
S1 S2 σ2 S3
=
S2 S3 σ1 S4
и найти корни уравнения
Σ(x) = 1 + σ1 x + σ2 x2 = (1 + 2α x)(1 + 2β x).
3.7. Коды БЧХ 143

Тогда α и β являются степенями искаженных разрядов в полиноме кодовой комби-


нации.
F Для исправления 3 ошибок нам необходимо рассчитать 6 значений
X X X
S1 = F (21 ) = Ai 2i S2 = F (22 ) = Ai (22 )i S3 = F (23 ) = Ai (23 )i
X X X
S4 = F (24 ) = Ai (24 )i S5 = F (25 ) = Ai (25 )i S6 = F (26 ) = Ai (26 )i

После чего вычислить (σ1 , σ2 , σ3 ) из выражения


    
S1 S2 S3 σ3 S4
 S2 S3 S4   σ2  =  S5 
S3 S4 S5 σ1 S6

и найти корни уравнения

Σ(x) = 1 + σ1 x + σ2 x2 + σ3 x3 = (1 + 2α x)(1 + 2β x)(1 + 2γ x).

Тогда (α, β, γ) являются степенями искаженных разрядов в полиноме кодовой ком-


бинации.
F В самом общем случае для исправления q ошибок нам необходимо рассчитать
2q значений
X
Sk = F (2k ) = Ai (2k )i

После чего вычислить (σ1 , σ2 , ..., σq ) из выражения


   
  σq Sq+1
S1 S2 S3 ... Sq
 S2 S3
 σq−1   Sq+2 
S4 ... Sq+1     

 ... ...
 ... = ... 
... ... ...     
 σ2   S2q−1 
Sq Sq+1 Sq+2 ... S2q−1
σ1 S2q

и найти корни уравнения

1 + σ1 x + σ2 x2 + σ3 x3 + ... + σq xq = (1 + 2α1 x)(1 + 2α2 x)...(1 + 2αq x)

или
q q
X Y
j
Σ(x) = σj x = (1 + 2αj x)
j=0 j=0

Тогда (α1 , α2 , ..., αq ) являются степенями искаженных разрядов в полиноме кодовой


комбинации.
144 Глава 3. Теория помехоустойчивого кодирования

3.7.2 Коды БЧХ над GF (23)

Пример 3.26. Рассмотрим построение кода БЧХ в GF (23 ) исправляющего 1 ошиб-


ку при передаче информационной последовательности a = (1001).
Решение. Пользуясь алгоритмами построения полиномиального кода из выра-
жения
2r ≥ k + r + 1
находим r = 3. Информационная последовательность a = (1001) представляется в
виде
Q(x) = x3 · 1 + x2 · 0 + x · 0 + 1 · 1 = x3 + 1.
Поскольку r = 3, то умножаем

m(x) = xr Q = x3 Q = x3 (x3 + x2 + x + 1) = x6 + x5 + x4 + x3 = 1001000.

Поскольку таблица индексов для GF (23 ) строилась относительно полинома p = x3 +


x + 1, то в разложении

x7 − 1 = ψ0 ψ1 ψ2 = (1 + x)(1 + x + x3 )(1 + x2 + x3 )

возьмем p = ψ1 . Делим m = xr Q на образующий полином p

x3 Q R x6 + x3 3 x2 + x
=C+ или = (x + x) +
p p x3 + x + 1 x3 + x + 1

окуда получим R = x2 + x = (110). Поскольку

m(x) = x6 + x5 + x4 + x3 = 1001000

то передаваемая комбинация F есть прямая конкатенация m ⊕ R:

m = 1001000
R= 110
F = 1001110

Таким образом, передаваемая кодовая комбинация имеет вид F = (1001110). N

Допустим во время передачи по каналу информации в F возникла ошибка в 3


символе слева.
F = (1001110) → F = (1011110)
Опишем алгоритм определения и исправления ошибки кода БЧХ [7, 4].
3.7. Коды БЧХ 145

Пример 3.27. Обнаружить и исправить ошибку в кодовой БЧХ последователь-


ности F = (1011110) над GF (23 ).
Решение. Перепишем принятую кодовую комбинацию F = (1011110) в полино-
миальном виде X
F (x) = Fi xi = x6 + x4 + x3 + x2 + x.
Для исправления 1 ошибки нам достаточно подставить число 2 в принятую комби-
нацию
X
F (2) = Fi 2i = 26 + 24 + 23 + 22 + 2 = 5 + 6 + 3 + 4 + 2 = 6 = 24 .

Здесь степень 2k вычислялась по таблице индексов поля GF (23 ), а в качестве сложе-


ния использовалась операция XOR (или см. таблицу сложения для GF (23)). Посколь-
ку 2α = 24 , то α = 4 степень искаженного разряда в полиноме кодовой комбинации:

F = (1011110) → F = (1001110).

Т.к. код БЧХ является систематическим, то для выделения информационной после-


довательности нам достаточно вычеркнуть r = 3 последних разряда кодовой комби-
нации a = (1001). N

Задача 3.16.
На приемнике была получена кодовая последовательность БЧХ [7,4] над GF (23 ).
Восстановить исходное сообщение.

N F N F N F
1 1110001 11 0101001 21 1001001
2 0111010 12 1101010 22 0001010
3 1010011 13 0100011 23 1100011
4 1011100 14 0001100 24 1101100
5 0100001 15 1101110 25 0011111
6 0100111 16 1110110 26 0100111
7 0100100 17 1000110 27 0001011
8 1100111 18 0100110 28 0001101
9 1100100 19 1001111 29 0001110
10 1100010 20 0101111 30 1110010

Следующий пример преследует исключительно методическую цель, поскольку


применение данного алгоритма на практике не рационально. Мы построим код БЧХ
в GF (8) исправляющий 2 ошибки.
146 Глава 3. Теория помехоустойчивого кодирования

Пример 3.28. Рассмотрим построение кода БЧХ в GF (23) исправляющего 2


ошибки.
Решение. Для исправления 1 ошибки мы пользовались полиномом p = ψ1 . Для
исправления 2 ошибок нам необходимо взять 2 функции ψ. Тогда проверочный по-
лином будет выглядеть так

p = ψ1 ψ2 = (1 + x + x3 )(1 + x2 + x3 ) = 1 + x + x2 + x3 + x4 + x5 + x6 .

Т.е. нам необходимо взять r = 6 проверочных символов для построения кода БЧХ
[7, 1] исправляющего 2 ошибки5 .
Допустим информационная последовательность имеет вид a = (1) представляется
в виде
Q(x) = 1.
Поскольку r = 6, то умножаем

m(x) = xr Q = x6 · 1 = x6 = 1000000.

Делим m = xr Q на проверочный полином p

x6 Q R
=C+
p p
или
x6 1 + x + x2 + x3 + x4 + x5
= 1 +
1 + x + x2 + x3 + x4 + x5 + x6 1 + x + x2 + x3 + x4 + x5 + x6
окуда получим R = 1 + x + x2 + x3 + x4 + x5 . Поскольку

m(x) = x6 = 1000000

то передаваемая комбинация F есть прямая конкатенация m ⊕ R:

m = 1000000
R = 111111
F = 1111111

Таким образом, передаваемая кодовая комбинация имеет вид F = (1111111). N

Допустим во время передачи по каналу информации в F возникло две ошибки во


2 и 5 символе слева.

F = (1111111) → F = (1011011)

Опишем алгоритм определения и исправления ошибки кода БЧХ [7, 1].


5
Заметим, что повторный код [5, 1] : 1 → 11111, исправляющий 2 ошибки имеет длину n = 5, а
повторный код длины n = 7, [n, k] = [7, 1] исправляет 3 ошибки. Т.е. в данном примере код БЧХ
уступает по скорости 1/7 < 1/5 даже простейшему повторному.
3.7. Коды БЧХ 147

Пример 3.29. Обнаружить и исправить ошибки в БЧХ кодовой последователь-


ности A = (1011011) над GF (23).
Решение. Перепишем принятую кодовую комбинацию A = (1011011) в полино-
миальном виде X
F (x) = Ai xi = x6 + x4 + x3 + x + 1.
Для исправления двух ошибок нам необходимо рассчитать 4 значения
X
S1 = F (21 ) = Ai 2i = 26 + 24 + 23 + 2 + 1 = 5 + 6 + 3 + 2 + 1 = 3
X
S2 = F (22 ) = Ai (22 )i = 212 + 28 + 26 + 22 + 1 = 7 + 2 + 5 + 4 + 1 = 5
X
S3 = F (23 ) = Ai (23 )i = x18 + 212 + x9 + 23 + 1 = 6 + 7 + 4 + 3 + 1 = 7
X
S4 = F (24 ) = Ai (24 )i = x24 + x16 + x12 + 24 + 1 = 3 + 4 + 7 + 6 + 1 = 7

Те читатели, которые захотят рассчитать предыдущие суммы устно (без компьютера)


должны помнить, что в GF (23 ) возведение в степень имеет свойства

2k = 2k+7, т.е. 218 = 24 = 6, 224 = 23 = 3, 216 = 22 = 4, и т.д.

Теперь вычислим (σ1 , σ2 ) из выражения


         
S1 S2 σ2 S3 3 5 σ2 7
= , т.е. =
S2 S3 σ1 S4 5 7 σ1 7
По методу Крамера найдем
3 5
∆= = 3·7−5·5= 2+7= 5
5 7

7 5
∆2 = = 7·7−7·5= 3+6 =5
7 7

3 7
∆1 = = 3·7−5·7= 2+6 =4
5 7
По таблице умножения в GF (23 ) получим

∆−1 = 5−1 = 2.

Тогда
∆1
σ1 = = ∆1 · ∆−1 = 4 · 2 = 3

∆2
σ2 = = ∆2 · ∆−1 = 5 · 2 = 1

Теперь подставим полученные значения (σ1 , σ2 ) в уравнение

Σ(x) = 1 + σ1 x + σ2 x2 = 1 + 3x + x2 = (1 + 4x)(1 + 7x) = (1 + 22 x)(1 + 25 x).


148 Глава 3. Теория помехоустойчивого кодирования

Тогда α = 2 и β = 5 являются степенями искаженных разрядов в полиноме кодовой


комбинации. Меняя значения разрядов на противоположные получим
F = (1011011) → F = (1111111)
- исправленную кодовую комбинацию. N

Задача 3.17.
На приемнике была получена кодовая последовательность БЧХ [7,1] над GF (23 ).
Восстановить исходное сообщение.

N F N F N F
1 0101111 11 1100111 21 0101111
2 0110111 12 1101011 22 0110111
3 0111011 13 1101101 23 0111011
4 0111101 14 1101110 24 0111101
5 0111110 15 1110011 25 0111110
6 1001111 16 1110101 26 1001111
7 1010111 17 1110110 27 1010111
8 1011011 18 1111001 28 1011011
9 1011101 19 1111010 29 1011101
10 1011110 20 1111100 30 1011110

3.7.3 Коды БЧХ над GF (24)

Пример 3.30. Рассмотрим построение кода БЧХ в GF (24 ) исправляющего 1 ошиб-


ку при передаче информационной последовательности a = (11100011100).

Решение. Пользуясь алгоритмами построения полиномиального кода из выра-


жения
2r ≥ k + r + 1 = 11 + r + 1 = 12 + r
находим r = 4. Информационная последовательность a = (11100011100) представля-
ется в виде
Q(x) = x10 + x9 + x8 + x4 + x3 + x2 .
Поскольку r = 4, то умножаем Q на x4 :
m(x) = xr Q = x4 Q = x4 (x10 + x9 + x8 + x4 + x3 + x2 )
= x14 + x13 + x12 + x8 + x7 + x6 = 111000111000000.
Поскольку таблица индексов для GF (24 ) строилась относительно полинома p = x4 +
x + 1, то в разложении
x15 − 1 = ψ0 ψ1 ψ2 ψ3 ψ4 = (1 + x)(1 + x + x2 )(1 + x + x4 )(1 + x3 + x4 )(1 + x + x2 + x3 + x4 )
3.7. Коды БЧХ 149

возьмем p = ψ2 . Делим m = xr Q на проверочный полином p

x4 Q R
=C+
p p
или
x14 + x13 + x12 + x8 + x7 + x6 2 4 7 8 9 1 + x3
= 1 + x + x + x + x + x + x +
x4 + x + 1 x4 + x + 1
окуда получим R = x3 + 1 = (1001). Поскольку

m(x) = x14 + x13 + x12 + x8 + x7 + x6 = 111000111000000

то передаваемая комбинация F есть прямая конкатенация m ⊕ R:

m = 111000111000000
R= 1001
F = 111000111001001

Таким образом, передаваемая кодовая комбинация имеет вид F = (111000111001001).N

Допустим во время передачи по каналу информации в F возникла ошибка в 5


символе слева.

F = (111000111001001) → F = (111010111001001)

Опишем алгоритм определения и исправления ошибки кода БЧХ [15, 11].

Пример 3.31. Обнаружить и исправить ошибку в кодовой БЧХ последователь-


ности F = (111010111001001) над GF (24 ).
Решение. Перепишем принятую кодовую комбинацию F = (111010111001001) в
полиномиальном виде
X
F (x) = Fi xi = x14 + x13 + x12 + x10 + x8 + x7 + x6 + x3 + 1.

Для исправления 1 ошибки нам достаточно подставить число 2 в принятую комби-


нацию
X
F (2) = Fi 2i = 214 + 213 + 212 + 210 + 28 + 27 + 26 + 23 + 1
= 9 + 13 + 15 + 7 + 5 + 11 + 12 + 8 + 1 = 7 = 210

Здесь степень 2k вычислялась по таблице индексов поля GF (24 ), а в качестве сложе-


ния использовалась операция XOR (или см. таблицу сложения для GF (24)). Посколь-
ку 2α = 210 , то α = 10 степень искаженного разряда в полиноме кодовой комбинации:

F = (111010111001001) → F = (111000111001001)
150 Глава 3. Теория помехоустойчивого кодирования

Т.к. код БЧХ является систематическим, то для выделения информационной после-


довательности нам достаточно вычеркнуть r = 4 последних разряда кодовой комби-
нации a = (11100011100). N

Задача 3.18.
На приемнике была получена кодовая последовательность БЧХ [15, 11] над GF (24 ).
Восстановить исходное сообщение.

N F N F N F
1 111100001111110 11 110011001100011 21 101010101011001
2 111100001111000 12 110011001100001 22 101010101011111
3 111100001110100 13 110011001100111 23 101010101010011
4 111100001101100 14 110011001101011 24 101010101001011
5 111100001011100 15 110011001110011 25 101010101111011
6 111100000111100 16 110011001000011 26 101010100011011
7 111100011111100 17 110011000100011 27 101010111011011
8 111100101111100 18 110011011100011 28 101010001011011
9 111101001111100 19 110011101100011 29 101011101011011
10 111110001111100 20 110010001100011 30 101000101011011

Пример 3.32. Рассмотрим построение кода БЧХ в GF (24) исправляющего 2


ошибки.
Решение. Пользуясь алгоритмами построения полиномиального кода из выра-
жения
2r ≥ C15
0 1
+ C15 2
+ C15 = 1 + 15 + 105 = 121
находим r = 7. Т.е. нам необходимо не менее 7 проверочных разрядов. Тогда из
разложения

x15 − 1 = ψ0 ψ1 ψ2 ψ3 ψ4 = (1 + x)(1 + x + x2 )(1 + x + x4 )(1 + x3 + x4 )(1 + x + x2 + x3 + x4 )

возьмем ψ2 - как образующий поля GF (24 ) и ψ4 :

p = ψ2 ψ4 = (1 + x + x4 )(1 + x + x2 + x3 + x4 ) = 1 + x4 + x6 + x7 + x8

мы получим r = 8. Таким образом БЧХ код в GF (24 ), исправляющий 2 ошибки будет


иметь вид [n, k] = [15, 7].
Допустим информационная последовательность имеет вид a = (1110001) и пред-
ставляется в виде
Q(x) = 1 + x4 + x5 + x6 .
Поскольку r = 8, то умножаем

m(x) = xr Q = x8 · (1 + x4 + x5 + x6 ) = x14 + x13 + x12 + x8 .


3.7. Коды БЧХ 151

Делим m = xr Q на проверочный полином p


x8 Q R
=C+
p p
или
x14 + x13 + x12 + x8 2 6 1 + x + x2 + x4 + x5 + x6
= 1 + x + x + x +
1 + x4 + x6 + x7 + x8 1 + x4 + x6 + x7 + x8
окуда получим R = 1 + x + x2 + x4 + x5 + x6 = 01110111. Поскольку

m(x) = x14 + x13 + x12 + x8 = 111000100000000

то передаваемая комбинация F есть прямая конкатенация m ⊕ R:

m = 111000100000000
R= 01110111
F = 111000101110111

Таким образом, передаваемая кодовая комбинация имеет вид F = (111000101110111).N

Допустим во время передачи по каналу информации в F возникло две ошибки в


3 и 8 символе слева.

F = (111000101110111) → F = (110000111110111)

Опишем алгоритм определения и исправления ошибки кода БЧХ [15, 7].

Пример 3.33. Обнаружить и исправить ошибки в БЧХ кодовой последователь-


ности F = (110000111110111) над GF (24 ).
Решение. Перепишем принятую кодовую комбинацию F = (110000111110111) в
полиномиальном виде
X
F (x) = Fi xi = x14 + x13 + x8 + x7 + x6 + x5 + x4 + x2 + x + 1.

Для исправления двух ошибок нам необходимо рассчитать 4 значения


X
S1 = F (21 ) = Fi 2i = 214 + 213 + 28 + 27 + 26 + 25 + 24 + 22 + 2 + 1 = 4
X
S2 = F (22 ) = Fi 4i = 414 + 413 + 48 + 47 + 46 + 45 + 44 + 42 + 4 + 1 = 3
X
S3 = F (23 ) = Fi 8i = 814 + 813 + 88 + 87 + 86 + 85 + 84 + 82 + 8 + 1 = 0
X
S4 = F (24 ) = Fi 3i = 314 + 313 + 38 + 37 + 36 + 35 + 34 + 32 + 3 + 1 = 5

Те читатели, которые захотят рассчитать предыдущие суммы устно (без компьютера)


должны помнить, что в GF (24 ) возведение в степень имеет свойства

2k = 2k+15 , т.е. 218 = 23 = 8, 224 = 29 = 10, 216 = 21 = 1, и т.д.


152 Глава 3. Теория помехоустойчивого кодирования

Теперь вычислим (σ1 , σ2 ) из выражения


         
S1 S2 σ2 S3 4 3 σ2 0
= , т.е. =
S2 S3 σ1 S4 3 0 σ1 5
По методу Крамера найдем
4 3
∆= = 4·0−3·3= 0+5= 5
3 0
0 3
∆2 = = 0 · 0 − 5 · 3 = 0 + 15 = 15
5 0
4 0
∆1 = = 4·5−3·0= 7+0= 7
3 5
По таблице умножения в GF (24 ) получим
∆−1 = 5−1 = 11.
Тогда
∆1
σ1 = = ∆1 · ∆−1 = 7 · 11 = 4

∆2
σ2 = = ∆2 · ∆−1 = 15 · 11 = 3

Теперь подставим полученные значения (σ1 , σ2 ) в уравнение
Σ(x) = 1 + σ1 x + σ2 x2 = 1 + 4x + 3x2 = (1 + 11x)(1 + 15x) = (1 + 27 x)(1 + 212 x).
Тогда α = 7 и β = 12 являются степенями искаженных разрядов в полиноме кодовой
комбинации. Меняя значения разрядов на противоположные получим
F = (110000111110111) → F = (111000101110111)
- исправленную кодовую комбинацию. N
Задача 3.19.
На приемнике была получена кодовая последовательность БЧХ [15, 7] над GF (24 ).
Восстановить исходное сообщение.

N F N F N F
1 111110111100101 11 110110111111000 21 101001100111110
2 111000111100101 12 111010111111000 22 100101100111110
3 111010011100101 13 111100111111000 23 100011100111110
4 111010101100101 14 111111111111000 24 100000100111110
5 111010110100101 15 111110011111000 25 100001000111110
6 111010111000101 16 111110101111000 26 100001110111110
7 101111111100101 17 111110110111000 27 100001101111110
8 101110011100101 18 111110111011000 28 100001100011110
9 101110101100101 19 111110111101000 29 100001100101110
10 101110110100101 20 111110111110000 30 100001100110110
3.7. Коды БЧХ 153

Пример 3.34. Рассмотрим построение кода БЧХ [15, 5] в GF (24 ) исправляю-


щего 3 ошибки.
Решение. Пользуясь алгоритмами построения полиномиального кода из выра-
жения
2r ≥ C15
0 1
+ C15 2
+ C15 3
+ C15 = 1 + 15 + 105 + 455 = 576
находим r = 10. Т.е. нам необходимо не менее 10 проверочных разрядов. Тогда из
разложения
x15 − 1 = ψ0 ψ1 ψ2 ψ3 ψ4 = (1 + x)(1 + x + x2 )(1 + x + x4 )(1 + x3 + x4 )(1 + x + x2 + x3 + x4 )
возьмем ψ2 - как образующий поля GF (24 ), ψ4 и ψ1 :
p = ψ1 ψ2 ψ4 = (1 + x + x2 )(1 + x + x4 )(1 + x + x2 + x3 + x4 ) = 1 + x + x2 + x4 + x5 + x8 + x10 .
Таким образом БЧХ код в GF (24 ), исправляющий 3 ошибки будет иметь вид [n, k] =
[15, 5].
Допустим информационная последовательность имеет вид a = (11110) и пред-
ставляется в виде
Q(x) = x + x2 + x3 + x4 .
Поскольку r = 10, то умножаем
m(x) = xr Q = x10 · (x + x2 + x3 + x4 ) = x14 + x13 + x12 + x11 .
Делим m = xr Q на проверочный полином p
x10 Q R
=C+
p p
или
x14 + x13 + x12 + x11 3 4 x3 + x6 + x7 + x9
= x + x +
1 + x + x2 + x4 + x5 + x8 + x10 1 + x + x2 + x4 + x5 + x8 + x10
окуда получим R = x3 + x6 + x7 + x9 = 1011001000. Поскольку
m(x) = x14 + x13 + x12 + x8 = 111100000000000
то передаваемая комбинация F есть прямая конкатенация m ⊕ R:
m = 111100000000000
R= 1011001000
F = 111101011001000
Таким образом, передаваемая кодовая комбинация имеет вид F = (111101011001000).N

Допустим во время передачи по каналу информации в F возникло три ошибки в


2, 5 и 11 символе слева.
F = (111101011001000) → F = (101111011011000)
154 Глава 3. Теория помехоустойчивого кодирования

Опишем алгоритм определения и исправления ошибки кода БЧХ [15, 5].

Пример 3.35. Обнаружить и исправить ошибки в БЧХ [15, 5] кодовой после-


довательности F = (101111011011000) над GF (24 ).
Решение. Перепишем принятую кодовую комбинацию F = (101111011011000) в
полиномиальном виде
X
F (x) = Fi xi = x14 + x12 + x11 + x10 + x9 + x7 + x6 + x4 + x3 .
Для исправления двух ошибок нам необходимо рассчитать 6 значений
X X
S1 = F (21 ) = Fi 2i = 9 S2 = F (22) = Fi 4i = 13
X X
S3 = F (23 ) = Fi 8i = 4 S4 = F (24) = Fi 3i = 14
X X
S5 = F (25 ) = Fi 6i = 6 S6 = F (26) = Fi 12i = 3

Теперь вычислим (σ1 , σ2 , σ3 ) из выражения


         
S1 S2 S3 σ3 S4 9 13 4 σ3 14
 S2 S3 S4   σ2  =  S5  , т.е.  13 4 14   σ2  =  6 
S3 S4 S5 σ1 S6 4 14 6 σ1 3
По методу Крамера найдем
9 13 4 14 13 4
∆= 13 4 14 = 14 ∆3 = 6 4 14 =5
4 14 6 3 14 6

9 14 4 9 13 14
∆2 = 13 6 14 =9 ∆1 = 13 4 6 =7
4 3 6 4 14 3
По таблице умножения в GF (24 ) получим
∆−1 = 14−1 = 3.
Тогда
∆1
σ1 = = ∆1 · ∆−1 = 7 · 3 = 9

∆1
σ2 = = ∆2 · ∆−1 = 9 · 3 = 8

∆1
σ1 = = ∆1 · ∆−1 = 5 · 3 = 15

Теперь подставим полученные значения (σ1 , σ2 , σ3 ) в уравнение
Σ(x) = 1 + σ1 x + σ2 x2 + σ3 x3 = 1 + 9x + 8x2 + 15x3
= (1 + 3x)(1 + 7x)(1 + 13x)
= (1 + 24 x)(1 + 210 x)(1 + 213 x).
3.7. Коды БЧХ 155

Тогда α1 = 4, α2 = 10, α3 = 13 являются степенями искаженных разрядов в полино-


ме кодовой комбинации. Меняя значения разрядов на противоположные получим

F = (101111011011000) → F = (111101011001000)

- исправленную кодовую комбинацию. N

Задача 3.20.
На приемнике была получена кодовая последовательность БЧХ [15, 5] над GF (24 ).
Восстановить исходное сообщение.

N F N F N F
1 110011110101111 11 111011001000001 21 100111000010111
2 110011110101001 12 111011001001101 22 100111000010001
3 110011110100101 13 111011001010101 23 100111000011101
4 110011110111101 14 111011001100101 24 100111000000101
5 110011110001101 15 111011000000101 25 100111000110101
6 110011111101101 16 111011011000101 26 100111001010101
7 110011100101101 17 111011101000101 27 100111010010101
8 110011010101101 18 111010001000101 28 100111100010101
9 110010110101101 19 111001001000101 29 100110000010101
10 110001110101101 20 111111001000101 30 100101000010101
Для кодов исправляющих 1-2 ошибки можно предложить еще один эффективный
метод декодирования. Допустим вектор F содержит две ошибки e(x) = xα +xβ , тогда

S1 = 2 α + 2 β S3 = 23α + 23β .

Если η1 = 2α , η2 = 2β - локаторы ошибок, то

S1 = η1 + η2 S3 = η13 + η23

поэтому

S3 = S13 + S12 η1 + S1 η12 1 + S1 η1−1 + S12 + S3 S1−1 η1−2 = 0.




F Если имеется 2 ошибки, то полином локаторов имеет вид

1 + S1 x + S12 + S3 S1−1 x2 = 0


F Если имеется 1 ошибка, то S13 + S3 = 0 и полином локаторов имеет вид

1 + S1 x = 0

F Если ошибок нет, то S1 = S3 = 0.


156 Глава 3. Теория помехоустойчивого кодирования

В заключение параграфа выпишем коэффициенты полинома локатора

1 + σ1 x + σ2 x2 + ... + σk xk = 0

для кода, исправляющего k<6 ошибок:

F Коррекция 1 ошибки σ1 = S1

F Коррекция 2 ошибок σ1 = S1

S3 + S13
σ2 =
S1

F Коррекция 3 ошибок σ1 = S1

S12 S3 + S5
σ2 = , σ3 = S13 + S3 + S1 σ2
S3 + S13

F Коррекция 4 ошибок σ1 = S1

S1 (S7 + S17 ) + S3 (S15 + S5 )


σ2 = ,
S3 (S13 + S3 ) + S1 (S15 + S5 )

S5 + S12 S3 + (S13 + S3 )σ2


σ3 = S13 + S3 + S1 σ2 , σ4 =
S1

F Коррекция 5 ошибок σ1 = S1
(S13 +S3 )[S19 +S9 +S14 (S5 +S13 S3 )+S32 (S13 +S3 )]+(S15 +S5 )(S17 +S7 )+S1 (S32 +S1 S5 )
σ2 = (S13 +S3 )[S7 +S17 +S1 S3 (S13 +S3 )]+(S5 +S12 S3 )(S15 +S5 )

σ3 = S13 + S3 + S1 σ2

S19 + S9 + S32 (S13 + S3 ) + S14 (S5 + S12 S3 ) + σ2 [S7 + S17 + S1 S3 (S13 + S3 )]


σ4 =
S15 + S5

σ5 = S5 + S12 S3 + S1 S4 + σ2 (S13 + S3 )
3.7. Коды БЧХ 157

3.7.4 Расширенный алгоритм Евклида


Расширенный алгоритм евклида для определения коэффициентов Безу также яв-
ляется итеррационным и требует вычисления остатков полиномов. Для этого мы
полином Q = xr записываем через S = Sk xk в виде
P

Q = S · q0 + r1

тогда

S = r1 · q1 + r2
r1 = r2 · q2 + r3
r2 = r3 · q3 + r5
...

и один из коэффициентов Безу является полиномом локаторов:

σn+1 = σn qn + σn−1 , σ0 = 1, σ−1 = 0.

F 1 ошибка
σ1 = σ0 q0 = q0
Т.к.
Q = x3 и S(x) = 1 + S1 x + S2 x2 = 1 + S1 x + S12 x2
найдем q0

Q = S · q0 + r1
 
3 1 + S1 x 1
x = (1 + S1 x + S12 x2 ) +
S13 S13
1+S1 x
т.е. q0 = S13
тогда σ = 1 + S1 x

F 2 ошибки
σ2 = σ1 q1 + σ0 = q0 q1 + 1
нам необходимо найти q0 и q1 из последовательности выражений

Q = S · q0 + r1
S = r1 · q1 + r2

Т.к.
Q = x5 и S(x) = 1 + S1 x + S12 x2 + S3 x3 + S14 x2
158 Глава 3. Теория помехоустойчивого кодирования

получим

S3 + S14 x
 
5
x = (1 + S1 x + S12 x2
+ S3 x + 3
S14 x2 )
S1
S3 + (S1 S3 + S1 )x + (S1 + S1 S3 )x + (S15 + S12 S3 )x2
4 5 2
+
S1
S +S 4 x
т.е. q0 = 3 S1 1 .
Далее

1 + xS1 + x2 S12 + x3 S3 + x4 S14 =


S3 + x (S14 + S1 S3 ) + x2 (S15 + S12 S3 ) + x3 (S16 + S32 )
= ×
S18
 14
S1 + xS115 + S111 S3 + xS112 S3 + S18 s23

× +
S19 + S16 S3 + S13 S32 + S33
S19 + x2 S111 + x2 S18 S3
+
S19 + S16 S3 + S13 S32 + S33
т.е.
S114 + xS115 + S111 S3 + xS112 S3 + S18 S32
 
q1 =
S19 + S16 S3 + S13 S32 + S33
тогда

S3 + S14 x S114 + xS115 + S111 S3 + xS112 S3 + S18 S32


 
1 + q0 q1 = 1+
S1 S19 + S16 S3 + S13 S32 + S33
S12 (1 + S1 x + x2 (S12 + S1−1 S3 ))
=
S19 + S16 S3 + S13 S32 + S33
и
σ2 = 1 + S1 x + (S12 + S1−1 S3 )x2

F 3 ошибки
σ3 = σ2 q2 + σ1 = q0 q1 q2 + q0 + q2

F 4 ошибки

σ4 = σ3 q3 + σ2 = q0 q1 q2 q3 + q0 q3 + q2 q3 + q1 q0 + 1
3.8. Совершенные недвоичные коды 159

3.8 Совершенные недвоичные коды


3.8.1 Введение
Пусть q 6= 2 - степень простого числа. Известно [1], что при k 6= 0, n не существует
совершенного кода [n, k, d]q , отличного от

qm − 1
 
n= , n − m, 3 и [11, 6, 5]3.
q−1 q

Все совершенные двоичные коды могут быть построены методом Хэмминга [2]. Для
совершенных недвоичных кодов над Zp математических проблем не возникает. По-
строение же кодов над GF (pm ) требует разработки новых методов. Это связано
с тем, что кольцо Zpm не является полем. Так в [3] для кодирования в GF (2m )
предлагается использовать дискретное преобразование Фурье. Для построения ко-
да Рида-Соломона в [4] вводятся специфические законы сложения и умножения.
Однако полученные коды имеют, соответственно, параметры [n, k] = [2m , 2m−1 ] и
[n, k] = [2m − 1, 2m − 3] и не являются совершеннными. Несмотря на сомнитель-
ную практическую значимость, работы по созданию новых кодов над полями ма-
лых размерностей ведутся достаточно интенсивно [5], поскольку дают взможность
отработать новые алгоритмы и методы. Аналогично, одной из основных причин при-
стального внимания к совершеннным кодам является то, что они нередко становятся
базисными для построения других кодов. Удачно построенный алгоритм позволяет
оставаться вблизи границы Синглтона даже при значительном расширении и изме-
нении совершенного кода. В настоящей работе предлагается простой алгоритм по-
строения совершенного кода над GF (2m ).

3.8.2 Совершенный код в GF (22)


Построим таблицу умножения для элементов из поля Галуа GF (22 ). Для этого пред-
варительно найдем остатки от деления степеней xn на примитивный полином
p(x) = x2 + x + 1:

x0 x1
   
= 1 = 001; = x = 010
p(x) p(x)
x2
   3 
x
= x2 = 011; = x + 1 = 001
p(x) p(x)

Учитывая, что в десятичной записи

001 = 1, 010 = 2, 011 = 3


160 Глава 3. Теория помехоустойчивого кодирования

из этих остатков составим таблицу индексов для GF (22 )

n 0 1 2 3
2n 1 2 3 1
ind n 3 0 1 2

Теперь, пользуясь таблицей индексов несложно построить таблицу умножения


для GF (22 ):
+ 1 2 3 × 1 2 3
1 0 3 2 1 1 2 3
2 3 0 1 2 2 3 1
3 2 1 0 3 3 1 2
Таблица сложения строится как побитовое сложение элементов по модулю 2.
Совершенный код в GF (22 ) имеет параметры [n, k] = [5, 3]. Рассмотрим правила
построения проверочных символов (e1 e2 ) по известным информационным (a1 a2 a3 ):
3
X 3
X
e1 = ak , e2 = kak
k=1 k=1

Передаваемая кодовая комбинация теперь имеет вид

F = (a1 a2 a3 e1 e2 ).

Допустим в кодовой комбинации возникла одна ошибка:

F = (a1 a2 a3 e1 e2 ).

Тогда значение ошибки E вычисляется по формуле

E = e1 + e1 ,
3
где e1 = ak , а позициция ошибки j
P
k=1

e2 + e2
j= ,
E
3
где e2 = kek . Если j = 0 или E = 0, то ошибка в проверочных символах.
P
k=1
Пример 36. Закодировать сообщение a = (321).
Решение. Пользуясь таблицами сложения и умножения поля GF (22 ) найдем про-
верочные символы
X X
e1 = ak = 3 + 2 + 1 = 0, e2 = kak = 1 · 3 + 2 · 2 + 3 · 1 = 3 + 3 + 3 = 3.

Т.о. кодовая комбинация принимает вид F = (32103). N


3.8. Совершенные недвоичные коды 161

Допустим во время передачи информации в сообщении появилась ошибка во 2-м


символе
F = (31103).
Пример 37. Обнаружить и исправить ошибку в сообщении F = (31103).
Решение. Из принятой кодовой комбинации имеем (e1 = 0, e2 = 3). Пользуясь
таблицами сложения и умножения поля GF (22 ) найдем новые проверочные символы
X X
e1 = ak = 3 + 1 + 1 = 3, e2 = kak = 1 · 3 + 2 · 1 + 3 · 1 = 3 + 2 + 3 = 2.

Тогда значение ошибки E вычисляется по формуле

E = e1 + e1 = 0 + 3 = 3,

а позициция ошибки j
e2 + e2 3+2 1
j== = = 2.
E E 3
Прибавляя E = 3 ко второму символу a2 + E = 1 + 3 = 2 получим информационную
комбинацию a = (321). N

Задача 3.21. Обнаружить и исправить единичную ошибку совершенного кода


[n,k]=[5,3] в GF (22 ).

N F N F N F N F
1 (2, 2, 1, 1, 3) 9 (3, 2, 2, 2, 0) 17 (2, 0, 2, 2, 0) 25 (3, 1, 2, 1, 3)
2 (1, 2, 2, 2, 0) 10 (2, 1, 0, 1, 1) 18 (3, 3, 3, 1, 3) 26 (1, 0, 3, 0, 2)
3 (0, 2, 2, 2, 0) 11 (3, 2, 3, 1, 3) 19 (2, 3, 1, 2, 2) 27 (0, 3, 0, 2, 2)
4 (2, 1, 1, 1, 1) 12 (3, 3, 1, 1, 3) 20 (1, 3, 1, 0, 2) 28 (1, 0, 2, 0, 2)
5 (3, 0, 3, 1, 3) 13 (3, 2, 0, 1, 3) 21 (1, 2, 1, 1, 3) 29 (3, 1, 0, 1, 3)
6 (1, 2, 1, 0, 2) 14 (3, 3, 1, 2, 2) 22 (3, 0, 1, 1, 3) 30 (2, 1, 2, 2, 0)
7 (1, 3, 1, 2, 2) 15 (2, 3, 2, 1, 0) 23 (3, 2, 3, 1, 3) 31 (0, 2, 1, 1, 3)
8 (2, 2, 3, 2, 0) 16 (2, 1, 3, 1, 1) 24 (3, 1, 1, 1, 3) 32 (3, 1, 1, 1, 3)

3.8.3 Совершенный код в GF (23)


Совершенный код в GF (23 ) имеет параметры [n, k] = [9, 7]. Рассмотрим правила
построения проверочных символов (e1 e2 ) по известным информационным (a1 a2 ...a7 ):
7
X 7
X
e1 = ak , e2 = kak
k=1 k=1

Передаваемая кодовая комбинация теперь имеет вид

F = (a1 a2 a3 a4 a5 a6 a7 e1 e2 ).
162 Глава 3. Теория помехоустойчивого кодирования

Допустим в кодовой комбинации возникла одна ошибка:

F = (a1 a2 a3 a4 a5 a6 a7 e1 e2 ).

Тогда значение ошибки E вычисляется по формуле

E = e1 + e1 ,
7
где e1 = ak , а позициция ошибки j
P
k=1

e2 + e2
j= ,
E
7
где e2 = kek . Если j = 0 или E = 0, то ошибка в проверочных символах.
P
k=1
Пример 38. Закодировать сообщение a = (6543456).
Решение. Пользуясь таблицами сложения и умножения поля GF (23 ) найдем про-
верочные символы
X
e1 = ak = 6 + 5 + 4 + 3 + 4 + 5 + 6 = 3,
X
e2 = kak = 1 · 6 + 2 · 5 + 3 · 4 + 4 · 3 + 5 · 4 + 6 · 5 + 7 · 6 = 6 + 1 + 7 + 7 + 2 + 3 + 4 = 2
Т.о. кодовая комбинация принимает вид F = (654345632). N
Допустим во время передачи информации в сообщении появилась ошибка во 3-м
символе
F = (651345632).
Пример 39. Обнаружить и исправить ошибку в сообщении F = (651345632).
Решение. Из принятой кодовой комбинации имеем (e1 = 3, e2 = 2). Пользуясь
таблицами сложения и умножения поля GF (23 ) найдем новые проверочные символы
X
e1 = ak = 6 + 5 + 1 + 3 + 4 + 5 + 6 = 6,
X
e2 = kak = 1 · 6 + 2 · 5 + 3 · 1 + 4 · 3 + 5 · 4 + 6 · 5 + 7 · 6 = 6 + 1 + 3 + 7 + 2 + 3 + 4 = 6
Тогда значение ошибки E вычисляется по формуле

E = e1 + e1 = 3 + 6 = 5,

а позициция ошибки j
e2 + e2 2+6 4
j= = = = 4 · 2 = 3.
E E 5
Прибавляя E = 5 к третьему символу a3 + E = 1 + 5 = 4 выделим информационную
комбинацию a = (6543456). N
3.8. Совершенные недвоичные коды 163

Задача 3.22. Обнаружить и исправить единичную ошибку совершенного кода


[n,k]=[9,7] над GF (23 ).

N F N F N F
1 (4, 4, 4, 3, 5, 2, 6, 1, 6) 11 (2, 3, 2, 1, 6, 4, 0, 7, 6) 21 (1, 2, 3, 2, 7, 5, 1, 7, 2)
2 (2, 3, 5, 1, 2, 3, 6, 3, 3) 12 (4, 6, 4, 3, 5, 2, 6, 1, 6) 22 (6, 3, 2, 2, 7, 0, 7, 2, 7)
3 (1, 2, 0, 2, 1, 5, 1, 7, 2) 13 (2, 3, 4, 0, 2, 3, 6, 3, 3) 23 (4, 2, 4, 3, 5, 2, 6, 1, 6)
4 (2, 3, 2, 0, 2, 3, 6, 0, 0) 14 (4, 3, 5, 0, 6, 7, 3, 2, 0) 24 (2, 0, 4, 1, 2, 3, 6, 3, 3)
5 (2, 3, 2, 5, 1, 4, 0, 7, 6) 15 (1, 2, 3, 2, 6, 5, 1, 7, 2) 25 (2, 3, 2, 1, 1, 4, 4, 7, 6)
6 (2, 3, 4, 1, 2, 3, 3, 3, 3) 16 (4, 3, 2, 1, 1, 1, 3, 0, 5) 26 (4, 3, 2, 0, 1, 6, 3, 0, 5)
7 (2, 3, 2, 5, 1, 3, 6, 1, 6) 17 (2, 3, 2, 4, 2, 3, 0, 0, 0) 27 (0, 3, 5, 2, 6, 7, 3, 2, 0)
8 (6, 3, 2, 1, 1, 6, 3, 0, 5) 18 (2, 3, 4, 1, 2, 6, 6, 3, 3) 28 (2, 0, 2, 3, 1, 3, 6, 1, 6)
9 (4, 3, 5, 2, 0, 7, 3, 2, 0) 19 (2, 0, 5, 5, 1, 3, 6, 1, 6) 29 (2, 0, 2, 4, 2, 3, 6, 0, 0)
10 (1, 7, 2, 2, 7, 0, 7, 2, 7) 20 (1, 4, 2, 2, 7, 0, 7, 2, 7) 30 (2, 3, 4, 5, 2, 3, 6, 3, 3)
164 Глава 3. Теория помехоустойчивого кодирования

3.9 Коды Рида-Соломона


Коды Рида-Соломона были предложены в 1960 Ирвином Ридом (Irving S. Reed) и Гу-
ставом Соломоном (Gustave Solomon), являвшимися сотрудниками Линкольнской ла-
боратории МТИ. Они использованы на алгоритме декодирования Berlekamp-Massey.
Коды Рида-Соломона это блочные коды, которые применяются для исправления
ошибок во многих системах:
- устройствах памяти CD, DVD, штриховых кодах,
- беспроводных или мобильных каналах (сотовые телефоны, микроволновые ка-
налы и т.д.)
- спутниковых коммуникацях
- цифровом телевидении DVB (digital video broadcast).
- скоростных модемах ADSL, xDSL.

3.9.1 Исправление 1 ошибки несовершенного кода [n, k]q = [7, 5]8


Как правило пораждающий полином в конечном поле Галуа GF (23 ) имеет вид
b+2t−1
Y
g(x) = (x ⊕ 2i ),
i=b

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


(обычно 0 или 1).

Пример 3.40. Порождающие полиномы для исправления t=1 ошибки:

b=0:
2t−1
Y
g(x) = (x ⊕ 2i ) = (x ⊕ 20 )(x ⊕ 21 ) = x2 + (1 + 2)x + (1 · 2) = x2 + 3x + 2,
i=0

b=1:
2t
Y
g(x) = (x ⊕ 2i) = (x ⊕ 21 )(x ⊕ 22 ) = x2 + (2 + 4)x + (2 · 4) = x2 + 6x + 3,
i=1

b=2:
2t+1
Y
g(x) = (x ⊕ 2i ) = (x ⊕ 22 )(x ⊕ 23 ) = x2 + (4 + 3)x + (4 · 3) = x2 + 7x + 7. N
i=2

Здесь мы непосредственно используем таблицы сложения и умножения для поля


Галуа GF (23 ). Однако, данные полиномы приводимы по определению и поэтому не
3.9. Коды Рида-Соломона 165

формируют совершенных кодов, хотя и удобны в использовании. Сведем для удоб-


ства в таблицу коэффициенты (ci , di), необходимые для формирования проверочных
символов по информационным для исправления 1 ошибки:
4
X 4
X
e1 = ci ai , e2 = di ai ,
i=0 i=0

b g(x) ci di
2
0 x + 3x + 2 (5, 2, 4, 7, 3) (4, 3, 5, 6, 2)
1 x2 + 6x + 3 (6, 7, 7, 1, 6) (2, 2, 3, 1, 3)
2 x2 + 7x + 7 (4, 4, 2, 4, 7) (1, 5, 1, 3, 7)
3 x2 + 5x + 1 (1, 5, 6, 6, 5) (5, 6, 6, 5, 1)
4 x2 + 1x + 4 (7, 3, 1, 5, 1) (7, 4, 2, 4, 4)
5 x2 + 2x + 6 (3, 1, 3, 2, 2) (6, 1, 7, 7, 6)
6 x2 + 4x + 5 (2, 6, 5, 3, 4) (3, 7, 4, 2, 5)

Построение кода сводится к следующей последовательности действий.


Представим информационную последовательность (a0 , a1 , a2 , ..., an ) в виде поли-
нома n
X
u(x) = ai xn−i = a0 xn + a1 xn−1 + a2 xn−2 + ... + an−1 x + an
i=0

Сдвинем информационную последовательность на r = 2t разрядов влево, для этого


умножим информационный полином u(x) на xr :

m(x) = xr u(x).

Разделим полученный полином на порождающий:


m(x) R(x)
= C(x) + ,
g(x) g(x)
или
m(x) = C(x) · g(x) + R(x).
Запишем полином остатков в виде
r
X
R(x) = ei xr−i
i=0

Передаваемая кодовая комбинация теперь имеет вид

F = a0 a1 a2 a3 a4 e1 e2

или
F (x) = a0 x6 + a1 x5 + a2 x4 + a3 x3 + a4 x2 + e1 x + e2 .
166 Глава 3. Теория помехоустойчивого кодирования

Обозначим принятую кодовую комбинацию через

F (x) = A6 x6 + A5 x5 + A4 x4 + A3 x3 + A2 x2 + A1 x + A0 .

Допустим, принятая кодовая комбинация F (x) имеет 1 ошибку. Прямой алгебраи-


ческий метод исправления 1 ошибки заключается в следующем. Находим синдромы
ошибки по формулам

S0 = F (2b ) = A0 (2b )6 + A1 (2b )5 + A2 (2b )4 + A3 (2b )3 + A4 (2b )2 + A5 (2b ) + A6 ,


S1 = F (2b+1 ) = A0 (2b+1 )6 + A1 (2b+1 )5 + A2 (2b+1 )4
+ A3 (2b+1 )3 + A4 (2b+1 )2 + A5 (2b+1 ) + A6 .

Решая уравнение
S1 = S0 σ
по таблице индексов для GF (23 ) находим локатор ошибки

λ = ind σ

и значение ошибки
S0 = σ b E.
Ошибка величиной E находится на λ месте кодовой последовательности.
Очевидно, что размерность синдрома позволяет локализовать только 7 разрядов,
поэтому прямой алгебраический метод применяется для кода [7,5], с пятью инфор-
мационными символами.

Пример 3.41. Пусть передается информационная последовательность (20105).


Для построения кода Рида-Соломона с b=0, исправляющего одну ошибку сформи-
руем по информационным символам (a0 , a1 , a2 , a3 , a4 ) = (20105) проверочные (e1 , e2 ):

e1 = 5a0 + 2a1 + 4a2 + 7a3 + 3a4 ,


e2 = 4a0 + 3a1 + 5a2 + 6a3 + 2a4 ,

или

e1 = 5 · 2 + 2 · 0 + 4 · 1 + 7 · 0 + 3 · 5 = 1 + 4 + 4 = 1,
e2 = 4 · 2 + 3 · 0 + 5 · 1 + 6 · 0 + 2 · 5 = 3 + 5 + 1 = 7.

Код Рида-Соломона имеет вид F = (A6 A5 A4 A3 A2 A1 A0 ) = (2010517).


Допустим в передаваемой кодовой последовательности возникла ошибка в 3 раз-
ряде F = (2015517). Учитывая, что

F (x) = 2 · x6 + 0 · x5 + 1 · x4 + 5 · x3 + 5 · x2 + 1 · x1 + 7 · 1,

определяем синдром ошибки с помощью выражений

S0 = F (2b), и S1 = F (2b+1 ).
3.9. Коды Рида-Соломона 167

Поскольку у нас b=0, то

S0 = F (20 ) = F (1) = 2 · 16 + 0 · 15 + 1 · 14 + 5 · 13 + 5 · 12 + 1 · 1 + 7
= 2 + 1 + 5 + 5 + 1 + 7 = 5,
1
S1 = F (2 ) = F (2) = 2 · 26 + 0 · 25 + 1 · 24 + 5 · 23 + 5 · 22 + 1 · 2 + 7,
= 2 · 5 + 0 · 7 + 1 · 6 + 5 · 3 + 5 · 4 + 1 · 2 + 7,
= 1 + 6 + 4 + 2 + 2 + 7 = 4.

Для определения локатора ошибки решаем уравнение

S1 = S0 σ, 4 = 5σ ⇒ σ = 4 · 5−1 .

Из таблицы умножения для GF (23 ) видим, что 5 · 2 = 1, т.е. обратным элементом


для 5 является 2 (т.е. 5−1 = 2):

σ = 4 · 5−1 = 4 · 2 = 3.

По таблице индексов находим локатор ошибки

λ = ind σ, λ = ind 3 = 3.

Величину ошибки E найдем по формуле

S0 = σ b E, 5 = 1 · E.

Т.е. к символу A3 необходимо прибавить E = 5:

F = (2015517) → F = (2010517)

и передаваемую информационную последовательность записать в виде


a = (20105)6 . N

Пример 3.42. Пусть передается информационная последовательность (54321).


Для построения кода Рида-Соломона с b=2, исправляющего одну ошибку сформи-
руем по информационным символам (a0 , a1 , a2 , a3 , a4 ) = (54321) проверочные (e1 , e2 ).
Учитывая что для b=2 по таблице c = (44247), d = (15137) получим

e1 = (a · c) = (54321)(44247),
e2 = (a · d) = (54321)(15137)

или

e1 = 5 · 4 + 4 · 4 + 3 · 2 + 2 · 4 + 1 · 7 = 2 + 6 + 6 + 3 + 7 = 6,
e2 = 5 · 1 + 4 · 5 + 3 · 1 + 2 · 3 + 1 · 7 = 5 + 2 + 3 + 6 + 7 = 5.
6
Данный результат F = (2010517) можно проверить следующими способами.
a) Если для a = (20105) мы получим e1 = 1, e2 = 7, то задача решена правильно.
b) Если для F = (2010517) мы получим S0 = 0, S1 = 0, то задача решена правильно.
168 Глава 3. Теория помехоустойчивого кодирования

Код Рида-Соломона имеет вид F = (A6 A5 A4 A3 A2 A1 A0 ) = (5432165).


Допустим в передаваемой кодовой последовательности возникла ошибка в 5 раз-
ряде F = (5732165). Учитывая, что

F (x) = 5 · x6 + 7 · x5 + 3 · x4 + 2 · x3 + 1 · x2 + 6 · x1 + 5 · 1,

определяем синдром ошибки с помощью выражений

S0 = F (2b), и S1 = F (2b+1 ).

Поскольку у нас b=2, то

S0 = F (22) = F (4) = 5 · 46 + 7 · 45 + 3 · 44 + 2 · 43 + 1 · 42 + 6 · 4 + 5
= 5·7+7·3+3·2+2·5+1·6+6·4+5
= 6 + 2 + 6 + 1 + 6 + 5 + 5 = 5,
S1 = F (23) = F (3) = 5 · 36 + 7 · 35 + 3 · 34 + 2 · 33 + 1 · 32 + 6 · 3 + 5
= 5 · 36 + 7 · 35 + 3 · 34 + 2 · 33 + 1 · 32 + 6 · 3 + 5
= 5·6+7·2+3·7+2·4+1·5+6·3+5
= 3 + 5 + 2 + 3 + 5 + 1 + 5 = 6.

Для определения локатора ошибки решаем уравнение

S1 = S0 σ, 6 = 5σ ⇒ σ = 7.

По таблице индексов находим локатор ошибки

λ = ind σ, λ = ind 7 = 5.

Т.е. ошибка в символе A5 . Величину ошибки E найдем по формуле

S0 = σ b E, 5 = 72 · E = 3 · E ⇒ E = 3.

Т.е. к символу A5 необходимо прибавить E = 3:

F = (5732165) → F = (5432165)

и передаваемую информационную последовательность записать в виде


a = (54321). N
3.9. Коды Рида-Соломона 169

Задача 3.23. Обнаружить и исправить ошибку в информационной кодовой


комбинации RSC[7,5] сформированной производящим полиномом g(x) поля GF (23 ).

N g(x) F N g(x) Fi
2 2
1 x + 3x + 2 (2, 0, 1, 7, 5, 7, 4) 16 x + 6x + 3 (7, 0, 1, 7, 5, 6, 3)
2 x2 + 6x + 3 (5, 6, 1, 5, 5, 7, 2) 17 x2 + 7x + 7 (5, 6, 3, 5, 7, 0, 5)
3 x2 + 7x + 7 (6, 3, 3, 4, 2, 7, 4) 18 x2 + 5x + 1 (6, 6, 1, 7, 5, 5, 2)
4 x2 + 5x + 1 (4, 5, 1, 3, 1, 5, 3) 19 x2 + 1x + 4 (7, 0, 4, 5, 2, 6, 1)
5 x2 + 1x + 4 (5, 5, 4, 4, 2, 2, 2) 20 x2 + 2x + 6 (4, 5, 1, 7, 3, 5, 7)
6 x2 + 2x + 6 (6, 4, 1, 0, 7, 4, 7) 21 x2 + 4x + 5 (1, 0, 0, 5, 2, 2, 1)
7 x2 + 4x + 5 (7, 0, 0, 4, 2, 6, 2) 22 x2 + 3x + 2 (4, 0, 3, 7, 5, 7, 0)
8 x2 + 3x + 2 (2, 5, 1, 7, 4, 5, 2) 23 x2 + 6x + 3 (6, 5, 1, 4, 5, 5, 3)
9 x2 + 6x + 3 (0, 3, 1, 5, 4, 4, 1) 24 x2 + 7x + 7 (6, 6, 2, 5, 6, 2, 0)
10 x2 + 7x + 7 (4, 5, 6, 3, 4, 5, 6) 25 x2 + 5x + 1 (7, 5, 3, 4, 5, 6, 5)
11 x2 + 5x + 1 (5, 3, 1, 5, 5, 6, 4) 26 x2 + 1x + 4 (0, 3, 1, 5, 6, 1, 2)
12 x2 + 1x + 4 (6, 3, 5, 3, 5, 1, 7) 27 x2 + 2x + 6 (1, 0, 3, 4, 3, 4, 6)
13 x2 + 2x + 6 (7, 4, 1, 5, 2, 7, 4) 28 x2 + 4x + 5 (2, 4, 4, 5, 5, 2, 5)
14 x2 + 4x + 5 (1, 5, 1, 3, 5, 4, 2) 29 x2 + 3x + 2 (2, 3, 1, 1, 3, 4, 4)
15 x2 + 3x + 2 (3, 4, 2, 1, 5, 2, 1) 30 x2 + 6x + 3 (5, 4, 3, 2, 1, 5, 0)
170 Глава 3. Теория помехоустойчивого кодирования

3.9.2 Исправление 2 ошибок несовершенного кода [n, k]q = [7, 3]8


Для исправления t = 2 ошибок мы создаем r = 2t = 4 проверочных символа которые
могут принимать 84 = 4096 значений, достаточных для обнаружения 1 и 2 ошибок
максимум в n = 13 разрядах, поскольку:
1 2 2
1 + C13 7 + C13 7 = 3914 < 84 .
Расмотрим алгебраический метод декодирования для исправления 2 ошибок.
Пример 3.43. Порождающие полиномы для исправления t=2 ошибок:
b=0:
2t−1
Y 3
Y
g(x) = (x ⊕ 2i ) = (x ⊕ 2i ) = (x ⊕ 20 )(x ⊕ 21 )(x ⊕ 22 )(x ⊕ 23 )
i=0 i=0
= (x ⊕ 1)(x ⊕ 2)(x ⊕ 4)(x ⊕ 3) = x4 + (1 + 2 + 4 + 3)x3
+(1 · 2 + 1 · 4 + 1 · 3 + 2 · 4 + 2 · 3 + 4 · 3)x2
+(1 · 2 · 4 + 1 · 2 · 3 + 1 · 4 · 3 + 2 · 4 · 3)x + 1 · 2 · 4 · 3
= x4 + 4x3 + (2 + 4 + 3 + 3 + 6 + 7)x2 + (3 + 6 + 7 + 5)x + 5
= x4 + 4x3 + 7x2 + 7x + 5
b=1:
2t
Y 4
Y
g(x) = (x ⊕ 2i ) = (x ⊕ 2i ) = (x ⊕ 21 )(x ⊕ 22 )(x ⊕ 23 )(x ⊕ 24 )
i=1 i=1
= (x ⊕ 2)(x ⊕ 4)(x ⊕ 3)(x ⊕ 6) = x4 + 3x3 + 4x2 + 2x + 3
b=2:
2t+1
Y 5
Y
g(x) = (x ⊕ 2i ) = (x ⊕ 2i ) = (x ⊕ 22 )(x ⊕ 23 )(x ⊕ 24 )(x ⊕ 25 )
i=2 i=2
= (x ⊕ 4)(x ⊕ 3)(x ⊕ 6)(x ⊕ 7) = x4 + 6x3 + 4x2 + 6x + 1 N
Сведем для удобства в таблицу коэффициенты (ci , di, hi , fi ), необходимые для
формирования проверочных символов по информационным для исправления 2 оши-
бок: X X X X
e1 = ak ck , e2 = ak dk , e3 = ak hk , e4 = ak fk

b g(x) ci di hi fi
0 x4 + 4x3 + 7x2 + 7x + 5 (2, 1, 4) (3, 6, 7) (5, 4, 7) (5, 2, 5)
1 x4 + 3x3 + x2 + 2x + 3 (6, 4, 3) (1, 1, 1) (6, 5, 2) (7, 5, 3)
2 x4 + 6x3 + 4x2 + 6x + 1 (1, 6, 6) (6, 3, 4) (4, 3, 6) (6, 6, 1)
3 x4 + 7x3 + 6x2 + x + 6 (3, 5, 7) (2, 5, 6) (1, 1, 1) (3, 4, 6)
4 x4 + 5x3 + 5x2 + 3x + 2 (5, 2, 5) (7, 4, 5) (7, 6, 3) (4, 1, 2)
5 x4 + x3 + 2x2 + 5x + 7 (4, 3, 1) (4, 7, 2) (3, 2, 5) (2, 7, 7)
6 x4 + 2x3 + 3x2 + 4x + 4 (7, 7, 2) (5, 2, 3) (2, 7, 4) (1, 3, 4)
3.9. Коды Рида-Соломона 171

Для исправления 2 ошибок возьмем 4 проверочных разряда. Передаваемая кодо-


вая комбинация теперь имеет вид

F = a0 a1 a2 e1 e2 e3 e4

или
F (x) = a0 x6 + a1 x5 + a2 x4 + e1 x3 + e2 x2 + e3 x + e4 .
Допустим, принятая кодовая комбинация

F (x) = A6 x6 + A5 x5 + A4 x4 + A3 x3 + A2 x2 + A1 x + A0 .

имеет 2 ошибки. Прямой алгебраический метод исправления 2 ошибок заключается


в следующем. Находим синдромы ошибки по формулам

Sk = F (2b+k ).

Например, для b=0, получим

S0 = F (20 ) = F (1) = a1 16 + a2 15 + a3 14 + e3 13 + e4 12 + e5 11 + e4 ,
S1 = F (21 ) = F (2) = a1 26 + a2 25 + a3 24 + e3 23 + e4 22 + e5 21 + e4 ,
S2 = F (22 ) = F (4) = a1 46 + a2 45 + a3 44 + e3 43 + e4 42 + e5 41 + e4 ,
S3 = F (23 ) = F (3) = a1 36 + a2 35 + a3 34 + e3 33 + e4 32 + e5 31 + e4 .

Решая уравнение     
S2 S0 S1 σ2
=
S3 S1 S2 σ1
находим многочлен локаторов ошибок
ν
Y
2
σ(x) = 1 + σ1 x + σ2 x = (1 + αk x)
k=1

корни которого равны обратным величинам локаторов ошибок.


Для нахождения значения ошибок наобходимо решить систему
  b
α2b
  
S0 α1 e1
=
S1 α1b+1 α2b+1 e2

Ошибка величиной Ek = ind(ek ) находится на λk = ind(σk ) месте кодовой последова-


тельности.
Очевидно, что размерность синдрома позволяет локализовать только 7 разрядов,
поэтому прямой алгебраический метод применяется для кода [7,3], с тремя инфор-
мационными символами.
172 Глава 3. Теория помехоустойчивого кодирования

Пример 3.44. Пусть передается информационная последовательность (753).


Для построения кода Рида-Соломона с b=0, исправляющего две ошибки сформиру-
ем по информационным символам (a0 , a1 , a2 ) = (753) проверочные (e1 , e2 , e3 , e4 ):
X X X X
e1 = ak ck , e2 = ak dk , e3 = ak hk , e4 = ak fk

или

e1 = 2a1 + 1a2 + 4a3 = 2 · 7 + 1 · 5 + 4 · 3 = 5 + 5 + 7 = 7,


e2 = 3a1 + 6a2 + 7a3 = 3 · 7 + 6 · 5 + 7 · 3 = 2 + 3 + 2 = 3,
e3 = 5a1 + 4a2 + 7a3 = 5 · 7 + 4 · 5 + 7 · 3 = 6 + 2 + 2 = 6,
e4 = 5a1 + 2a2 + 5a3 = 5 · 7 + 2 · 5 + 5 · 3 = 6 + 1 + 4 = 3.

Код Рида-Соломона для данной информационной последовательности имеет вид


F = (7537363).
Допустим в передаваемой кодовой последовательности возникли ошибки в 4 и 5
разряде F = (7537363) ⇒ F = (7667363). Учитывая, что

F (x) = 7 · x6 + 6 · x5 + 6 · x4 + 7 · x3 + 3 · x2 + 6 · x1 + 3 · 1,

определяем синдром ошибки с помощью выражений

S0 = F (2b) = 7 · 16 + 6 · 15 + 6 · 14 + 7 · 13 + 3 · 12 + 6 · 1 + 3 = 6
S1 = F (2b+1 ) = 7 · 26 + 6 · 25 + 6 · 24 + 7 · 23 + 3 · 22 + 6 · 2 + 3 = 1,
S2 = F (2b+2 ) = 7 · 46 + 6 · 45 + 6 · 44 + 7 · 43 + 3 · 42 + 6 · 4 + 3 = 4,
S3 = F (2b+3 ) = 7 · 36 + 6 · 35 + 6 · 34 + 7 · 33 + 3 · 32 + 6 · 3 + 3 = 0.

Для определения локатора ошибки нам необходимо решить систему


    
S2 S0 S1 σ2
=
S3 S1 S2 σ1
или     
4 6 1 σ2
= .
0 1 4 σ1
Методом Крамера, получим
6 1
∆= = 6·4−1·1= 5+1= 4
1 4

4 1
∆2 = = 4·4−0·1= 6+0= 6
0 4
6 4
∆1 = = 6·0−1·4= 0+4= 4
1 0
3.9. Коды Рида-Соломона 173

Из таблицы умножения для GF (23 ) видим, что 4 · 7 = 1, т.е. обратным элементом


для 4 является 7. Тогда
∆2 6 ∆1 4
σ2 = = = 6 · 7 = 4, σ1 = = = 4 · 7 = 1.
∆ 4 ∆ 4
Построим многочлен локаторов ошибки

σ(x) = 1 + σ1 x + σ2 x2 = 1 + x + 4x2 .

Для решения данного уравнения воспользуемся формулами Виета


 
x1 + x2 = σ1 x1 + x2 = 1
или
x1 · x2 = σ2 x1 · x2 = 4

По таблицам сложения и умножения для GF (23 ) находим x1 = 6, x2 = 7, тогда

σ(x) = 1 + x + 4x2 = (1 + 6x)(1 + 7x) = (1 + 24 x)(1 + 25 x).

и ошибки локализованы в разрядах

λ1 = ind x1 = ind 6 = 4 и λ2 = ind x2 = ind 7 = 5.

Т.е. ошибки в символах A4 и A5 (коэффициенты при степенях x4 и x5 ) полинома


F (x).
Для нахождения значения ошибок решим систему
  b
xb2
  
S0 x1 e1
=
S1 xb+1
1 xb+1
2 e2
или     
6 1 1 e1
=
1 6 7 e2
Методом Крамера, получим

1 1
∆= = 1·7−6·1= 7+6= 1
6 7

6 1
∆1 = = 6·7−1·1= 4+1 =5
1 7
1 6
∆2 = = 1·1−6·6= 1+2 =3
6 1
Тогда
∆1 5 ∆2 3
e1 = = = 5, e2 = = = 3.
∆ 1 ∆ 1
174 Глава 3. Теория помехоустойчивого кодирования

Т.о. мы имеем ошибку в разряде x4 со значением E4 = 5 и в разряде x5 со значением


E5 = 3. Исправляя ошибки, получим
F (x) = 7 · x6 + 6 · x5 + 6 · x4 + 7 · x3 + 3 · x2 + 6 · x1 + 3 · 1,
F (x) = 7 · x6 + (6 + 3) · x5 + (6 + 5) · x4 + 7 · x3 + 3 · x2 + 6 · x1 + 3 · 1
= 7 · x6 + 5 · x5 + 3 · x4 + 7 · x3 + 3 · x2 + 6 · x1 + 3 · 1
или
F (x) = (7667363) ⇒ F (x) = (7537363)
и исправленная информационная последовательность имеет вид a = (753)7 . N

Пример 3.45. Построить код Рида-Соломона, иправляющего 2 ошибки для


информационной последовательности a = (264).
Для построения кода Рида-Соломона с b=3, исправляющего две ошибки сфор-
мируем по информационным символам (a0 , a1 , a2 ) = (264) проверочные (e1 , e2 , e3 , e4 ):
X X X X
e1 = ak ck , e2 = ak dk , e3 = ak hk , e4 = ak fk .

Из таблицы коэффициентов для кода [7, 3]8 для b=3, g(x) = x4 + 7x3 + 6x2 + x + 6
имеем:
c = (357), d = (256), h = (111), f = (346)
или
e1 = (a · c) = 2 · 3 + 6 · 5 + 4 · 7 = 6 + 3 + 1 = 4,
e2 = (a · d) = 2 · 2 + 6 · 5 + 4 · 6 = 4 + 3 + 5 = 2,
e3 = (a · h) = 2 · 1 + 6 · 1 + 4 · 1 = 2 + 6 + 4 = 0,
e4 = (a · f ) = 2 · 3 + 6 · 4 + 4 · 6 = 6 + 5 + 5 = 6.
Код Рида-Соломона для данной информационной последовательности имеет вид
F = (2644206).
Допустим в передаваемой кодовой последовательности возникли ошибки в 2 и 6
разряде F = (2644206) ⇒ F = (7644606). Учитывая, что
F (x) = 7 · x6 + 6 · x5 + 4 · x4 + 4 · x3 + 6 · x2 + 0 · x1 + 6 · 1,
определяем синдром ошибки при b=3 с помощью выражений
S0 = F (2b ) = F (23 ) = F (3)
= 7 · 36 + 6 · 35 + 4 · 34 + 4 · 33 + 6 · 32 + 0 · 3 + 6
= 7·6+6·2+4·7+4·4+6·5+0·3+6
= 4+7+1+6+3+0+6 =1
7
Данный результат F = (7537363) можно проверить следующими способами.
a) Если для a = (753) мы получим e = (7363), то задача решена правильно.
b) Если для F = (7537363) мы получим S0 = S1 = S2 = S3 = 0, то задача решена правильно.
3.9. Коды Рида-Соломона 175

S1 = F (2b+1 ) = F (24 ) = F (6)


= 7 · 66 + 6 · 65 + 4 · 64 + 4 · 63 + 6 · 62 + 0 · 6 + 6 = 1
= 7·3+6·5+4·4+4·7+6·2+0·6+6
= 2 + 3 + 6 + 1 + 7 + 0 + 6 = 7,

S2 = F (2b+2) = F (25 ) = F (7)


= 7 · 76 + 6 · 75 + 4 · 74 + 4 · 73 + 6 · 72 + 0 · 7 + 6
= 7·4+6·6+4·5+4·2+6·3+0·7+6
= 1 + 2 + 2 + 3 + 1 + 0 + 6 = 5,

S3 = F (2b+3) = F (26 ) = F (5)


= 7 · 56 + 6 · 55 + 4 · 54 + 4 · 53 + 6 · 52 + 0 · 5 + 6
= 7·2+6·4+4·3+4·6+6·7+0·5+6
= 5 + 5 + 7 + 5 + 4 + 0 + 6 = 0.

Для определения локатора ошибки нам необходимо решить систему


    
S2 S0 S1 σ2
=
S3 S1 S2 σ1
или     
5 1 7 σ2
= .
0 7 5 σ1
Методом Крамера, получим

1 7
∆= = 1·5−7·7= 5+3= 6
7 5

5 7
∆2 = = 5·5−0·7= 7+0 =7
0 5
1 5
∆1 = = 1·0−7·5= 0+6 =6
7 0
Из таблицы умножения для GF (23 ) видим, что 6 · 3 = 1, т.е. обратным элементом
для 6 является 3. Тогда
∆2 7 ∆1 6
σ2 = = = 7 · 3 = 2, σ1 = = = 6 · 3 = 1.
∆ 6 ∆ 6
Построим многочлен локаторов ошибки

σ(x) = 1 + σ1 x + σ2 x2 = 1 + x + 2x2 .
176 Глава 3. Теория помехоустойчивого кодирования

Для решения данного уравнения воспользуемся формулами Виета


 
x1 + x2 = σ1 x1 + x2 = 1
или
x1 · x2 = σ2 x1 · x2 = 2

По таблицам сложения и умножения для GF (23 ) находим x1 = 4, x2 = 5, тогда

σ(x) = 1 + x + 2x2 = (1 + 4x)(1 + 5x) = (1 + 22 x)(1 + 26 x).

и ошибки локализованы в разрядах

λ1 = ind x1 = ind 4 = 2 и λ2 = ind x2 = ind 5 = 6.

Т.е. ошибки в символах A2 и A6 (коэффициенты при степенях x2 и x6 ) полинома


F (x).
Для нахождения значения ошибок решим систему
  b
xb2
  
S0 x1 e1
=
S1 xb+1
1 xb+1
2 e2
или
43 53
       
1 e1 5 6 e1
= =
7 44 54 e2 2 3 e2
Методом Крамера, получим

5 6
∆= = 5·3−2·6= 4+7= 3
2 3

1 6
∆1 = = 1·3−7·6= 3+4= 7
7 3
5 1
∆2 = = 5·7−2·1= 6+2= 4
2 7
Тогда
∆1 7 ∆2 4
e1 = = = 7 · 6 = 4, e2 = = = 4 · 6 = 5.
∆ 3 ∆ 3
Т.о. мы имеем ошибку в разряде x2 со значением E2 = 4 и в разряде x6 со значением
E6 = 5. Исправляя ошибки, получим

F = (7644606) ⇒ F = (2644206)

и исправленная информационная последовательность имеет вид a = (264)8 . N


8
Данный результат F = (2644206) можно проверить следующими способами.
a) Если для a = (264) мы получим e = (4206), то задача решена правильно.
b) Если для F = (2644206) мы получим S0 = S1 = S2 = S3 = 0, то задача решена правильно.
3.9. Коды Рида-Соломона 177

Пример 3.46. Обнаружить и исправить ошибки в принятой последователь-


ности F = (6254420) кода [n, k] = [7, 3] построеной при помощи полинома b=4 в
GF (23 ).
Учитывая, что

F (x) = 6 · x6 + 2 · x5 + 5 · x4 + 4 · x3 + 4 · x2 + 2 · x1 + 0 · 1,

определяем синдром ошибки при b=4 с помощью выражений

S0 = F (2b ) = F (24 ) = F (6)


= 6 · 66 + 2 · 65 + 5 · 64 + 4 · 63 + 4 · 62 + 2 · 6 + 0
= 6·3+2·5+5·4+4·7+4·2+2·6+0
= 1+1+2+1+3+7+0 =7

S1 = F (2b+1 ) = F (25 ) = F (7)


= 6 · 76 + 2 · 75 + 5 · 74 + 4 · 73 + 4 · 72 + 2 · 7 + 0
= 6·4+2·6+5·5+4·2+4·3+2·7+0
= 5 + 7 + 7 + 3 + 7 + 5 + 0 = 4,

S2 = F (2b+2) = F (26 ) = F (5)


= 6 · 56 + 2 · 55 + 5 · 54 + 4 · 53 + 4 · 52 + 2 · 5 + 0
= 6·2+2·4+5·3+4·6+4·7+2·5+0
= 7 + 3 + 4 + 5 + 1 + 1 + 0 = 5,

S3 = F (2b+3) = F (27 ) = F (1)


= 6 · 16 + 2 · 15 + 5 · 14 + 4 · 13 + 4 · 12 + 2 · 1 + 0
= 6·1+2·1+5·1+4·1+4·1+2·1+0
= 6 + 2 + 5 + 4 + 4 + 2 + 0 = 3.

Для определения локатора ошибки нам необходимо решить систему


         
S2 S0 S1 σ2 5 7 4 σ2
= , или = .
S3 S1 S2 σ1 3 4 5 σ1

Методом Крамера, получим

7 4
∆= = 7·5−4·4= 6+6= 0
4 5

5 4
∆2 = = 5·5−3·4= 7+7 =0
3 5
178 Глава 3. Теория помехоустойчивого кодирования

7 5
∆1 = = 7·3−4·5= 2+2= 0
4 3

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


довательности произошла только одна ошибка. Для ее локализации решаем уравне-
ние
S1 = σS0 или 4 = σ7 ⇒ σ = 6 = 24 .

Т.е. ошибка локализована в символе A4 (коэффициент при степени x4 полинома


F (x)). Значение ошибки находим по формуле

S0 = σ b E или 7 = 64 E = 4E ⇒ E = 4−1 7 = 7 · 7 = 3.

Т.о. мы имеем ошибку в разряде x4 со значением E4 = 3. Исправляя ошибку, получим

F = (6254420) ⇒ F = (6264420)

и исправленная информационная последовательность имеет вид a = (626)9 . N

Задача 3.24. Обнаружить и исправить 2 ошибки в информационной кодовой


комбинации RSC[7,3] сформированной производящим полиномом g(x) поля GF (23 ).

N g(x) Fi N g(x) Fi
1 x4 + 4x3 + 7x2 + 7x + 5 (4562373) 16 x4 + 3x3 + 1x2 + 2x + 3 (1615153)
2 x4 + 3x3 + 1x2 + 2x + 3 (2732576) 17 x4 + 6x3 + 4x2 + 6x + 1 (7563113)
3 x4 + 6x3 + 4x2 + 6x + 1 (1247370) 18 x4 + 7x3 + 6x2 + 1x + 6 (4431737)
4 x4 + 7x3 + 6x2 + 1x + 6 (5116230) 19 x4 + 5x3 + 5x2 + 3x + 2 (4661674)
5 x4 + 5x3 + 5x2 + 3x + 2 (2325111) 20 x4 + 1x3 + 2x2 + 5x + 7 (5564312)
6 x4 + 1x3 + 2x2 + 5x + 7 (3333005) 21 x4 + 2x3 + 3x2 + 4x + 4 (5471253)
7 x4 + 2x3 + 3x2 + 4x + 4 (4117765) 22 x4 + 4x3 + 7x2 + 7x + 5 (2715001)
8 x4 + 4x3 + 7x2 + 7x + 5 (2453626) 23 x4 + 3x3 + 1x2 + 2x + 3 (6262477)
9 x4 + 3x3 + 1x2 + 2x + 3 (0650027) 24 x4 + 6x3 + 4x2 + 6x + 1 (5525355)
10 x4 + 6x3 + 4x2 + 6x + 1 (0114252) 25 x4 + 7x3 + 6x2 + 1x + 6 (3270440)
11 x4 + 7x3 + 6x2 + 1x + 6 (2421121) 26 x4 + 5x3 + 5x2 + 3x + 2 (2264425)
12 x4 + 5x3 + 5x2 + 3x + 2 (3634162) 27 x4 + 1x3 + 2x2 + 5x + 7 (5253561)
13 x4 + 1x3 + 2x2 + 5x + 7 (3615206) 28 x4 + 2x3 + 3x2 + 4x + 4 (2727517)
14 x4 + 2x3 + 3x2 + 4x + 4 (2264027) 29 x4 + 4x3 + 7x2 + 7x + 5 (1426013)
15 x4 + 4x3 + 7x2 + 7x + 5 (3262616) 30 x4 + 3x3 + 1x2 + 2x + 3 (2535555)

9
Данный результат F = (6264420) можно проверить следующими способами.
a) Если для a = (626) мы получим e = (4420), то задача решена правильно.
b) Если для F = (6264420) мы получим S0 = S1 = S2 = S3 = 0, то задача решена правильно.
3.10. Алгоритм Берлекемпа-Месси 179

3.10 Алгоритм Берлекемпа-Месси

si Алгоритм поиска кратчайшего регистра сдвига


i=0, L=0, c=1, B=1
с линейной обратной связью для поданной на
вход последовательности был предложен Бер-
i ++ лекемпом в 1968 г. [1] В следующем 1969 г.
di =(cj si-j ) Дж.Месси применил его к декодированию ли-
нейных кодов [14].
Данный алгоритм применяется для вычисления
+ коэффициентов полинома локаторов и по чис-
di =0
лу операций в конечном поле GF (2m ) считает-
_
ся одним из самых эффективных. Необходимо
дать несколько коментариев относительно рабо-
c += c+d iBx
ты рассматриваемой блок-схемы.
1. На вход подается последовательность si =
_ (s1 , s2 , ..., sn ), поэтому вычисления ведутся до
2L<i c=c +
тех пор пока счетчик i не будет равен n.
+ 2. Полином локаторов записывается как вектор
B=Bx
коэффициентов при соответствующих степенях
B=c/d, c=c + x:
L=i-L
c = c1 + c2 x + ... + cn xn−1 = (c1 , c2 , c3 , ..., cn )
_
i=n Пример 3.47. Построить полином лакато-
ров для кодовой последовательности RS[7, 3] ∈
+ GF (23 ): F=(7644606) при b = 3.
Решение. Учитывая, что (s1 , s2 , s3 , s4 ) =
(1, 7, 5, 0) будем проводить вычисления соглас-
но приведеному алгоритму.
F i = 0, L = 0, c = 1, B = 1
F i = 1, d1 = c1 · s1 = 1 · 1 = 1

c+ = c + dBx = 1 + 1 · 1 · x = 1 + x
2L < i : 0 < 1 да ⇒ L = i − L, L = 1 − 0 = 1
c 1
B = = = 1, c = c+ = 1 + x
d 1

F i = 2, d2 = (c1 , c2 ) · (s2 , s1 ) = (1, 1)(7, 1) = 7 + 1 = 6

c+ = c + dBx = 1 + x + 6 · 1 · x = 1 + 7x
2L < i : 2 < 2 нет
B = xB = x, c = c+ = 1 + 7x
180 Глава 3. Теория помехоустойчивого кодирования

F i = 3, d3 = (c1 , c2 , c3 )·(s3 , s2 , s1 ) = (1, 7, 0)(5, 7, 1) = 1·5+7·7+0·1 = 5+3+0 = 6

c+ = c + dBx = 1 + 7x + 6 · x · x = 1 + 7x + 6x2
2L < i : 2 · 1 < 3 да ⇒ L = i − L, L = 3 − 1 = 2
c 1 + 7x
B= = = 3(1 + 7x) = 3 + 2x, c = c+ = 1 + 7x + 6x2
d 6
F i = 4, d4 = (c1 , c2 , c3 , c4 ) · (s4 , s3 , s2 , s1 ) = (1, 7, 6, 0)(0, 5, 7, 1) = 1 · 0 + 7 · 5 + 6 ·
7+0·1=0+6+4+0=2

c+ = c + dBx = 1 + 7x + 6x2 + 2 · (3 + 2x) · x


= 1 + 7x + 6x2 + 6x + 4x2 = 1 + x + 2x2

Поскольку i = 4 = n мы прекращаем вычисления и выводим ответ полинома


локаторов
Σ(x) = c = 1 + x + 2x2 . N
Пример 3.48. Построить полином лакаторов для кодовой последовательности
RS[7, 3] ∈ GF (23 ): F=(62254420) при b = 4.
Решение. Учитывая, что (s1 , s2 , s3 , s4 ) = (7, 4, 5, 3) будем проводить вычисления
согласно приведеному алгоритму.
F i = 0, L = 0, c = 1, B = 1
F i = 1, d1 = s0 · c1 = 7 · 1 = 7

c+ = c + dBx = 1 + 7 · 1 · x = 1 + 7x
2L < i : 0 < 1 да ⇒ L = i − L, L = 1 − 0 = 1
c 1
B = = = 4, c = c+ = 1 + 7x
d 7
F i = 2, d2 = (c1 , c2 ) · (s2 , s1 ) = (1, 7)(4, 7) = 4 + 3 = 7

c+ = c + dBx = 1 + 7x + 7 · 4 · x = 1 + 7x + x = 1 + 6x
2L < i : 2 < 2 нет
B = Bx = 4x, c = c+ = 1 + 6x

F i = 3, d3 = (c1 , c2 , c3 ) · (s3 , s2 , s1 ) = (1, 6, 0)(5, 4, 7) = 1 · 5 + 6 · 4 + 0 · 7 = 5 + 5 = 0

B = Bx = 4x2 , c = 1 + 6x

F i = 4, d4 = (c1 , c2 , c3 , c4 ) · (s4 , s3 , s2 , s1 ) = (1, 6, 0, 0)(3, 5, 4, 7) = 1 · 3 + 6 · 5 + 0 ·


4+0·7=3+3=0

B = Bx = 4x2 , c = 1 + 6x

Поскольку i = 4 = n мы прекращаем вычисления и выводим ответ полинома


локаторов
Σ(x) = c = 1 + 6x = 1 + 24 x. N
3.11. Расширенный алгоритм Евклида для кода RS 181

Задача 3.25. Обнаружить и исправить ошибки в информационной кодовой


комбинации F (x) ∈ RS[7, 3] сформированной производящим полиномом g(x) поля
GF (23 ).

N b F N b F N b F N b F
1 3 (2421121) 9 4 (2264425) 17 3 (5116230) 25 4 (4661674)
2 4 (3634162) 10 5 (5253561) 18 4 (2325111) 26 5 (5564312)
3 5 (3615206) 11 6 (2727517) 19 5 (3333005) 27 6 (5471253)
4 6 (2264027) 12 0 (1426013) 20 6 (4117765) 28 0 (2715001)
5 0 (3262616) 13 1 (2535555) 21 0 (2453626) 29 1 (6262477)
6 0 (4562373) 14 1 (1615153) 22 1 (0650027) 30 2 (5525355)
7 1 (2732576) 15 2 (7563113) 23 2 (0114252) 31 3 (3270440)
8 2 (1247370) 16 3 (4431737) 24 3 (2421121) 32 4 (2264425)

3.11 Расширенный алгоритм Евклида для кода RS


Кратко напомним расширенный алгоритм Евклида, который мы применяли для по-
строения полинома локаторов кода БЧХ. Для этого полином Q = xr записываем
через S = Sk x в виде
k
P

Q = S · q0 + r1
тогда

S = r1 · q1 + r2
r1 = r2 · q2 + r3
r2 = r3 · q3 + r5
...

и полиномы локаторов выражаются через множители (q0 , q1 , ...) следующим образом

F 1 ошибка
σ1 = σ0 q0 = q0

F 2 ошибки
σ2 = σ1 q1 + σ0 = q0 q1 + 1

F 3 ошибки
σ3 = σ2 q2 + σ1 = q0 q1 q2 + q0 + q2

F 4 ошибки

σ4 = σ3 q3 + σ2 = q0 q1 q2 q3 + q0 q3 + q2 q3 + q1 q0 + 1
182 Глава 3. Теория помехоустойчивого кодирования

Пример 49. Построить полином локаторов для кодовой последовательности


RS[7, 3] ∈ GF (23 ): F=(7644606) при b = 3.
Решение. Учитывая, что (s1 , s2 , s3 , s4 ) = (1, 7, 5, 0) будем проводить вычисления
согласно приведеному алгоритму. Поскольку

x5 + 0x4 + 0x3 + 0x2 + 0x + 0 5x3 + 7x2 + x + 1


x5 + 5x4 + 2x3 + 2x2 2x2 + x + 1
5x4 + 2x3 + 2x2
5x4 + 7x3 + x2 + x
5x3 + 3x2 + x
5x3 + 7x2 + x + 1
4x2 +1
т.е.
x5 = (1 + x + 7x2 + 5x3 )(1 + x + 2x2 ) + (1 + 4x2 ),
то полином локаторов имеет вид

Σ(x) = 1 + x + 2x2 . N

Пример 50. Построить полином локаторов для кодовой последовательности


RS[7, 3] ∈ GF (23 ): F=(62254420) при b = 4.
Решение. Учитывая, что (s1 , s2 , s3 , s4 ) = (7, 4, 5, 3) будем проводить вычисления
согласно приведеному алгоритму. Поскольку

x5 + 0x4 + 0x3 + 0x2 + 0x + 0 3x4 + 5x3 + 4x2 + 7x + 1


x5 + 3x4 + 5x3 + 4x2 + 6x 6x + 1
4 3 2
3x + 5x + 4x + 6x
3x4 + 5x3 + 4x2 + 7x + 1
x+1
т.е.
x5 = (1 + 7x + 4x2 + 5x3 + 3x4 )(1 + 6x) + (1 + x),
то полином локаторов имеет вид

Σ(x) = 1 + 6x = 1 + 24 x. N

Пример 51. Построить полином локаторов для кодовой последовательности


RS[7, 3] ∈ GF (23 ): F=(0070200) при b = 0 (см. например [9], стр.114).
Решение. Учитывая, что (s1 , s2 , s3 , s4 ) = (5, 7, 2, 2) будем проводить вычисления
согласно приведеному алгоритму Евклида. Поскольку

x5 = (1 + 5x + 7x2 + 2x3 + 2x4 )(5 + 5x) + (5 + 2x + x2 + 7x2 ),

1 + 5x + 7x2 + 2x3 + 2x4 = (5 + 2x + x2 + 7x2 )(4 + 3x) + (3 + 2x + 5x2 ),


3.11. Расширенный алгоритм Евклида для кода RS 183

то полином локаторов имеет вид

Σ(x) = 1 + (5 + 5x)(4 + 3x) = 3 + 6x + 4x2 = 3(1 + 2x + 5x2 ). N

Для решения данного уравнения воспользуемся формулами Виета

Σ(x) = 1 + σ1 x + σ2 x2 .

т.е.  
x1 + x2 = σ1 x1 + x2 = 2
или
x1 · x2 = σ2 x1 · x2 = 5
По таблицам сложения и умножения для GF (23 ) находим x1 = 4, x2 = 6, тогда

Σ(x) = 3(1 + 2x + 5x2 ) = 3(1 + 4x)(1 + 6x) = 3(1 + 22 x)(1 + 24 x).

и ошибки локализованы в разрядах

λ1 = ind x1 = ind 4 = 2 и λ2 = ind x2 = ind 6 = 4.

Т.е. ошибки в символах A2 и A4 (коэффициенты при степенях x2 и x4 ) полинома


F (x).
Для нахождения значения ошибок решим систему
  b
xb2
  
S1 x1 e1
=
S2 xb+1
1 xb+1
2 e2
или
40 60
       
5 e1 1 1 e1
= =
7 41 61 e2 4 6 e2
Методом Крамера, получим

1 1
∆= = 1·6−4·1= 6+4= 2
4 6

5 1
∆1 = = 5·6−7·1= 3+7 =4
7 6
1 5
∆2 = = 1·7−4·5= 7+2 =5
4 7
Тогда
∆1 4 ∆2 5
e1 = = = 4 · 5 = 2, e2 = = = 5 · 5 = 7.
∆ 2 ∆ 2
Т.о. мы имеем ошибку в разряде x со значением E2 = 2 и в разряде x4 со значением
2

E4 = 7. Исправляя ошибки, получим

F = (0070200) ⇒ (00000000) N
184 Глава 3. Теория помехоустойчивого кодирования

Задача 3.26. Обнаружить и исправить ошибки в информационной кодовой


комбинации F (x) ∈ RS[7, 3] сформированной производящим полиномом g(x) поля
GF (23 ).

N b F N b F N b F N b F
1 4 (2264425) 9 3 (5116230) 17 4 (4661674) 25 3 (2421121)
2 5 (5253561) 10 4 (2325111) 18 5 (5564312) 26 4 (3634162)
3 6 (2727517) 11 5 (3333005) 19 6 (5471253) 27 5 (3615206)
4 0 (1426013) 12 6 (4117765) 20 0 (2715001) 28 6 (2264027)
5 1 (2535555) 13 0 (2453626) 21 1 (6262477) 29 0 (3262616)
6 1 (1615153) 14 1 (0650027) 22 2 (5525355) 30 0 (4562373)
7 2 (7563113) 15 2 (0114252) 23 3 (3270440) 31 1 (2732576)
8 3 (4431737) 16 3 (2421121) 24 4 (2264425) 32 2 (1247370)
Глава 4

Квантовая информация

4.1 Основы квантовых вычислений


В этой главе, мы рассмотрим принципы теории квантовых вычислений. В настоящих
цифровых компьютерах, информация хранится и обрабатывается в форме битов -
объектов, которые могут принимать только два значения: логический ноль -"0", или
логическую единицу -"1". Они - обычно представляют собой напряжение в узле, или
направление намагниченности магнитного домена. Поскольку любая подобная фи-
зическая система должна иметь как минимум два отличных состояния, то двухуров-
невые квантовые системы, (например частицы со спином 1/2, или поляризованные
фотоны) тоже могут рассматриваться как носители информации. Квантовое состо-
яние |0i соответствует значению бита -"0", а состояние |1i соответствует "1". Для
spin-1/2 частиц, два вычислительных базисных состояния представляются спином
вверх |↑i или спином вниз |↓i, а для фотонов - горизонтальной |↔i или вертикаль-
ной |li поляризацией, соответственно. В отличие от классических битов, которые
могут существовать только как "0"или "1", двухуровневые квантовые системы, на-
зываемые квантовые биты или qubits (quantum bits), могут также существовать в
состоянии суперпозиции |0i и |1i:

|ψi = α |0i + β |1i ,


где α и β удовлетворяют условию нормировки: α2 + β 2 = 1.
По существу мы описываем квантовое состояние системы с помощью комплекс-
ного вектора Гильбертова пространства H с базисными векторами |0i и |1i и скаляр-
ным произведением: hϕ|ψi. Гильбертовым назовем нормированное векторное про-
странство комплексных чисел со скалярным произведением. Два вектора являются
ортогональными, если их скалярное произведение равно нулю:
hϕ|ψi = hψ|ϕi = 0.

Отсюда следуют соотношения для скалярного произведения базисных векторов:


h0|0i = h1|1i = 1, h0|1i = h1|0i = 0.

185
186 Глава 4. Квантовая информация

С учетом полной фазы квантовое состояние кубита записывается в виде

θ θ
|ψi = cos |0i + eiφ sin |1i ,
2 2
и изображается точкой на сфере Блоха радиуса R = 1 и поверхностными коорди-
натами (θ, φ). В дальнейшем мы будем, как правило, работать с экваториальными
кубитами, (для которых φ = 0), и удваивать значение угла θ2 → θ для упрощения
записи:
|ψi = cos θ |0i + sin θ |1i .

z
1

θ ψ0
ψ0
ϕ
y 0 0
ϕ
x

a) b)

Пример 4.1. Кубит имеет квантовое состояние



2
|ψ0 i = |0i + β |1i .
2
Определить неизвестный коэффициент β.
Решение. Из условия нормировки, для произвольного квантового состояния

|ψi = α |0i + β |1i , имеем α2 + β 2 = 1.

Тогда для искомого состояния


√ √ !2
2 2 1
|ψ0 i = |0i + β |1i , получим + β 2 = 1 откуда β = √ .
2 2 2

Таким образом
1 1
|ψ0 i = √ |0i + √ |1i . N
2 2
4.1. Основы квантовых вычислений 187

Задача 4.1. Пользуясь условием нормировки определить неизвестные коэффи-


циенты кубитов.

1. |ψ0 i = α |0i + 12 |1i 2. |ψ0 i = α |0i + |1i



3. |ψ0 i = α |0i + 2
3
|1i 4. |ψ0 i = |0i + β |1i

Основные понятия которыми оперирует квантовая механика: состояние, наблю-


даемые, динамика и измерение.
Всякая физическая система описывается с помощью своего состояния, которое со-
держит всю информацию о системе. Состояние квантовой системы изменяется только
двумя путями: взаимодействием с другой системой и измерением. Узнать что-либо
о квантовом состоянии можно только ее измерением.
Поляризованный свет легко реализуется на практике и является одним из ос-
новных претендентов на роль носителя квантовой информации - кубита. Измерение
поляризации производят с помощью поляризационных пластин. Поляризационная
пластина пропускает через себя фотоны только заданной поляризации. После поля-
ризатора размещается счетчик фотонов, который определяет вероятность прохожде-
ния пучка через поляризатор. Математически поляризационной пластине ставится в
соответствии проекционный оператор:

Π = |χi hχ| ,

где |χi - вектор ориентации поляризационной пластины или квантовое состояние


прибора-измерителя. При прохождении поляризационной пластины квантовое со-
стояние кубита |ψi проецируется на квантовое состояние прибора-измерителя |χi.
На выходе из поляризатора мы получим уже измененный кубит, т.е. его проекцию
на |χi:
|ψ 0 i = Π |ψi = |χi hχ|ψi .

χ
ψ0
ψ0
ψ1

ψ1
188 Глава 4. Квантовая информация

Поскольку скалярное произведение hχ|ψi - число, то выходной кубит имеет со-


стояние параллельное квантовому состоянию прибора-измерителя |χi. Это принци-
пиальный факт квантовой механики - измерение меняет квантовое состояние.
В квантовой механике постулируется, что само состояние |ψi физического смыс-
ла не имеет (т.е. не может быть непосредственно измерено). Физическим смыслом
обладает его квадрат модуля:

P = hψ|ψi = |ψ|2

- это вероятность обнаружить кубит в данном квантовом состоянии.

Пример 4.2. Найти вероятность того, что кубит


1 1
|ψ0 i = √ |0i + √ |1i .
2 2
пройдет через поляризатор, ориентированный под углом 60◦ .
Решение. Ориентации поляризатора с углом φ = 60◦ = π/3 соответствует кван-
товое состояние прибора измерителя

π π 1 3
|χi = cos φ |0i + sin φ |1i = cos |0i + sin |1i = |0i + |1i .
3 3 2 2
Тогда для соответствующего проекционного оператора получим
√ ! √ !
1 3 1 3
Π = |χi hχ| = |0i + |1i h0| + h1|
2 2 2 2
√ √ √ √
1 1 1 3 3 1 3 3
= |0i h0| + |0i h1| + |1i h0| + |1i h1|
2 2 2 2 2 2 2 2
√ √
1 3 3 3
= |0i h0| + |0i h1| + |1i h0| + |1i h1|
4 4 4 4
После прохождения поляризатора исходный кубит |ψi будет иметь состояние

|ψ 0 i = Π |ψi = |χi hχ|ψi

или
√ √ ! 
1 3 3 3 1 1
|ψ 0 i = |0i h0| + |0i h1| + |1i h0| + |1i h1| √ |0i + √ |1i
4 4 4 4 2 2
√ √ !
1 1 3 1 3 1 3 1
= √ |0i h0|0i + √ |0i h1|0i + √ |1i h0|0i + √ |1i h1|0i
4 2 4 2 4 2 4 2
√ √ !
1 1 3 1 3 1 3 1
+ √ |0i h0|1i + √ |0i h1|1i + √ |1i h0|1i + √ |1i h1|1i
4 2 4 2 4 2 4 2
4.1. Основы квантовых вычислений 189

Учитывая, что
h0|0i = h1|1i = 1, h1|0i = h0|1i = 0,
получим
√ √ !
1 1 3 1 3 1 3 1
|ψ 0 i = √ |0i + √ |1i + √ |0i + √ |1i
4 2 4 2 4 2 4 2
√ √ !
1 1+ 3 3+ 3
= √ |0i + √ |1i
4 2 2

Вероятность регистрации кубита в состоянии |ψ 0 i есть


√ √ ! √ √ !
1 1 + 3 3 + 3 1 + 3 3 + 3 1
P = hψ 0 |ψ 0 i = √ h0| + √ h1| √ |0i + √ |1i
4 2 2 2 2 4
√ √ √ √ !
1 1+ 3 1+ 3 1+ 3 3+ 3 1
= √ · √ h0|0i + √ · √ h0|1i
4 2 2 2 2 4
√ √ √ √ !
1 3+ 3 1+ 3 3+ 3 3+ 3 1
+ √ · √ h1|0i + √ · √ h1|1i
4 2 2 2 2 4
√ √ ! √ √ ! √
1 1+ 3 1+ 3 1 3+ 3 3+ 3 16 + 8 3
= √ · √ + √ · √ = ≈ 0.933. N
16 2 2 16 2 2 32

По существу, данная задача формулируется следующим образом: найти вероят-


ность того, что кубит |ψ0 i будет зарегистрирован в состоянии |χi. Тогда

P = |hψ0 |χi|2

и предыдущая задача решается следующим образом. Мы должны посчитать


  √ ! √
1 1 1 3 1+ 3
hψ0 |χi = √ h0| + √ h1| |0i + |1i = √
2 2 2 2 2 2

тогда
√ 2
2 1+ 3
P = |hψ0 |χi| = √ ≈ 0.933. N
2 2


Задача 4.2. Найти вероятность того, что квант |ψ0 i = 2
3
|0i + 21 |1i пройдет через
поляризатор, ориентированный под углом ϕ.

1. ϕ = 0◦ ; 2. ϕ = 30◦ ; 3. ϕ = 45◦ ; 4. ϕ = 60◦ .


190 Глава 4. Квантовая информация

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

Пример 4.3. На пути пучка квантов |ψ0 i = |0i ставится поляризационная пла-
стина №1, ориентированная под углом 0◦ . После нее ставится еще один поляризатор
№2 под углом 90◦ . Какова вероятность того, что исходный пучок пройдет через эти
два поляризатора.
Решение. Поставим в соответствие поляризатору №1 проекционный оператор

Π1 = |0i h0| ,

а поляризатору №2 проекционный оператор

Π2 = |1i h1| .

Тогда после прохождения первого поляризатора кубит принимает состояние

|ψ1 i = Π1 |ψ0 i = |0i h0|0i = |0i · 1 = |0i ,

а после второго
|ψ2 i = Π2 |ψ1 i = |1i h1|0i = |0i · 0.
Поэтому, вероятность прохождения кубитом двух поляризаторов равна

P = hψ2 |ψ2 i = 0. N

ψ0 0o 45
o
90
o

Пример 4.4. В условиях предыдущей задачи, между поляризаторами №1 и №2


ставится дополнительная поляризационная пластина №3, ориентированная под углом
45◦ . Найти вероятность регистрации кванта фотодетектором на выходе полученной
системы поляризаторов.
Решение. Поставим в соответствие поляризатору №3 проекционный оператор

Π3 = |χi hχ| ,

где
1 1
|χi = √ |0i + √ |1i .
2 2
4.1. Основы квантовых вычислений 191

Тогда после прохождения первого поляризатора Π1 = |0i h0| кубит принимает состо-
яние
|ψ1 i = Π1 |ψ0 i = |0i h0|0i = |0i · 1 = |0i ,
после этого он проходит через поляризатор Π3 :
  
1 1 1 1
|ψ3 i = Π3 |ψ1 i = |χi hχ|0i = √ |0i + √ |1i √ h0|0i + √ h1|0i
2 2 2 2
  
1 1 1 1 1 1
= √ |0i + √ |1i √ · 1 + √ · 0 = |0i + |1i ,
2 2 2 2 2 2
а затем, через поляризатор Π2 = |1i h1|
 
1 1 1
|ψ2 i = Π2 |ψ3 i = |1i h1|ψ3 i = |1i h1| |0i + |1i = |1i .
2 2 2
Поэтому, вероятность прохождения кубитом трех поляризаторов равна
1 1
P = hψ2 |ψ2 i = h1|1i = . N
4 4
Последние два примера высвечивают один из основных фундаментальных прин-
ципов квантовой механики: операторы не просто проецируют кванты на собственное
состояние, а изменяют состояние кубита. Т.е. после взаимодействия с оператором ча-
стица становится другой и приобретает свойства уже этого оператора частично теряя
при этом некоторые свои свойства. Как видно из примеров квант горизонтальной по-
ляризации |0i не может пройти через ортогональный вертикально-ориентированный
поляризатор Π = |1i h1|. Однако, дополнительный оператор Π3 искажает исходное
состояние кубита, после чего он приобретает новые свойства, позволяющие пройти с
ненулевой вероятностью через ортогональный поляризатор.

Пример 4.5. На пути пучка квантов |ψ0 i = |0i ставится поляризационная пла-
стина №1, ориентированная под углом 0◦ . После нее ставится еще один поляризатор
№2 под углом 30◦ , далее поляризатор №3 под углом 45◦ , №4 - под углом 60◦ и №5
- под углом 90◦ . Какова вероятность того, что исходный пучок пройдет через эти 5
поляризаторов?
Решение. Поставим в соответствие поляризатору №1 проекционный оператор
Π1 = |0i h0| ,
поляризатору №2 - проекционный оператор
√ ! √ !
1 3 1 3
Π2 = |0i + |1i h0| + h1| ,
2 2 2 2

поляризатору №3 - проекционный оператор


√ √ ! √ √ !
2 2 2 2
Π3 = |0i + |1i h0| + h1| ,
2 2 2 2
192 Глава 4. Квантовая информация

поляризатору №4 - проекционный оператор


√ ! √ !
3 1 3 1
Π4 = |0i + |1i h0| + h1| ,
2 2 2 2

поляризатору №5 - проекционный оператор

Π5 = |1i h1| .

Тогда последовательное действие этих операторов на кубит |ψ0 i = |0i дает



2
|ψ1 i = Π5 Π4 Π3 Π2 Π1 |ψ0 i = Π5 Π4 Π3 Π2 Π1 |0i = |1i .
2
Поэтому, вероятность прохождения кубитом 5 поляризаторов равна
1 1
P = hψ1 |ψ1 i = h1|1i = . N
2 2
Как видно из этих примеров: чем больше поляризаторов мы ставим - тем больше
вероятность прохождения через них кубита. Другими словами, чем больше препят-
ствий для кванта - тем легче квант через них проходит. Единственным условием
является лишь то, что полряризаторы должны распологаться правильным образом
- строго "по кругу". Отсюда следует, что бесконечное количество поляризаторов по-
варачивают кубит на любой угол без искажения.

Пример 4.6. На пути произвольного пучка квантов |ψ0 i = α |0i + β |1i ставится
поляризационная пластина №1, ориентированная под углом 0◦ . После нее ставится
еще один поляризатор №2 под углом 90◦ . Какова вероятность того, что исходный
пучок пройдет через эти два поляризатора.
Решение. Поставим в соответствие поляризатору №1 проекционный оператор

Π1 = |0i h0| ,

поляризатору №2 - проекционный оператор

Π2 = |1i h1| .

Тогда

|ψ1 i = Π1 |ψ0 i = |0i h0| (α |0i + β |1i) = α |0i


|ψ2 i = Π2 |ψ1 i = α |1i h1|0i = α |1i · 0 = 0
P = hψ2 |ψ2 i = 0. N

Пример 4.7. В условиях предыдущей задачи, между поляризаторами №1 и №2


ставится дополнительная поляризационная пластина №3, ориентированная под углом
4.1. Основы квантовых вычислений 193

45◦ . Найти вероятность регистрации кванта фотодетектором на выходе полученной


системы поляризаторов.
Решение. По условию задачи
1
Π1 = |0i h0| , Π2 = (|0i h0| + |0i h1| + |1i h0| + |1i h1|) , Π3 = |1i h1| .
2
Тогда

|ψ1 i = Π1 |ψ0 i = |0i h0| (α |0i + β |1i) = α |0i


α α
|ψ2 i = (|0i h0| + |0i h1| + |1i h0| + |1i h1|) |0i = (|0i + |1i)
2 2
α α
|ψ3 i = Π3 |ψ2 i = |1i h1| (|0i + |1i) = |1i
2 2
α2 α2
P = hψ3 |ψ3 i = h1|1i = . N
4 4

В общем случае поляризатор повернутый на θ◦ проецирует кубит |0i на состояние

|χi = cos θ |0i + sin θ |1i

и описывается проекционным оператором

Π = |χi hχ| = (cos θ |0i + sin θ |1i) (h0| cos θ + h1| sin θ) .

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


пластины. Математически фазовращательным пластинам ставится в соответствие
оператор поворота кубита на угол ϕ:

R |0i = cos ϕ |0i + sin ϕ |1i ,


R |1i = − sin ϕ |0i + cos ϕ |1i .

Если базисное состояние представить в виде вектора-столбца


   
1 0
|0i = , |1i = ,
0 1

то оператор поворота R задается матрицей поворота


 
cos ϕ sin ϕ
R= .
− sin ϕ cos ϕ

С помощью оператора поворота можно создать из нулевого кубита |0i - кубит с


произвольной поляризацией:

R |0i = cos ϕ |0i + sin ϕ |1i .


194 Глава 4. Квантовая информация

Пример 4.8. На какой угол необходимо повернуть кубит


1 1
|ψi = √ |0i + √ |1i
2 2
чтобы получить кубит в состоянии |1i?
Решение. Сравнивая два выражения

|ψi = cos ϕ |0i + sin ϕ |1i


1 1
|ψi = √ |0i + √ |1i
2 2
получим:
1 π
cos ϕ = √ или ϕ= .
2 4
Кубит в состоянии |1i имеет угол поляризации ϕ0 = π2 . Поэтому нам необходимо
подействовать на исходный кубит оператором поворота с углом
π π π
∆ϕ = ϕ0 − ϕ = − = ,
2 4 4
т.е.
cos π4 sin π4
   
1 1 1
R= =√ . N
− sin π4 cos π4 2 −1 1

Задача 4.3. На какой угол необходимо повернуть кубит |ψi чтобы получить
кубит |ψ 0 i ?
√ √ √ √ √
2+ 2 2− 2
1. |ψi = √ 2
|0i + 2 |1i |ψ 0 i = 1
2
|0i + √2
3
|1i
2. |ψi = 3
|0i + 1 |1i |ψ 0 i = 1 3
|0i + 2 |1i
√2 √ √ 2 √
2

2 5− 5
3. |ψi = √ 4√ |0i 5+1
√ 4√ |1i
+ |ψ 0 i = 23 √ |0i + 21 |1i
√ √
2+ 2 2− 2 2 5− 5
4. |ψi = 2
|0i + 2 |1i |ψ 0 i = 4
|0i

Кроме операции поворота для преобразования квантового состояния кубита часто


используются матрицы Паули:
   
1 0 0 −i
σ0 = , σy = ,
0 1 i 0
   
0 1 1 0
σx = , σz =
1 0 0 −1
оператор Адамара  
1 1 1
H= √ .
2 1 −1
4.1. Основы квантовых вычислений 195

Мы будем пользоваться другими представлениями этих операторов

σ0 = |0i h0| + |1i h1| , σ1 = |0i h1| + |1i h0| ,

iσ2 = |0i h1| − |1i h0| , σ3 = |0i h0| − |1i h1| ,


1
H = √ (σ1 + σ3 ) .
2
Не вдаваясь в физические детали, отметим, что каждый из этих операторов имеет
явную техническую реализацию в качестве прибора изменяющего состояние кванто-
вого пучка когерентного лазерного излучения.

Пример 4.9. Кубит имеет произвольное состояние

|ψi = α |0i + β |1i .

Какова вероятность обнаружить его в состоянии |χi = σ1 |ψi?


Решение.
1. Физически мы пропускаем пучок кубитов через поляризатор, ориентированный
параллельно состоянию |χi, т.е. действуем проектором

Π = |χi hχ| ,

на |ψi:
|ψ 0 i = Π |ψi = |χi hχ|ψi .
Выпишем явный вид квантового состояния прибора-измерителя:

|χi = σ1 |ψi = (|0i h1| + |1i h0|) (α |0i + β |1i) = α |1i + β |0i

тогда
Π = |χi hχ| = β 2 |0i h0| + αβ |0i h1| + αβ |1i h0| + α2 |1i h1|
и

|ψ 0 i = Π |ψi = |χi hχ | ψi

β 2 |0i h0| + αβ |0i h1| + αβ |1i h0| + α2 |1i h1| (α |0i + β |1i)

=

= β 2 α |0i + αβ 2 |0i + α2 β |1i + α2 β |1i = 2αβ 2 |0i + 2α2 β |1i = 2αβ |ψi

Вероятность регистрации кубита после прохождения поляризационной пластины есть

P = hψ 0 |ψ 0 i = 22 α2 β 2 hψ|ψi = 4α2 β 2 .

2. Поскольку оба состояния нам известны:

|ψi = α |0i + β |1i , |χi = σ1 |ψi = α |1i + β |0i ,


196 Глава 4. Квантовая информация

то из выражения
hψ|χi = (α h0| + β h1|) (β |0i + α |1i) = 2αβ
получим
P = |hψ|χi|2 = 4α2β 2 . N

Задача 4.4. Кубит имеет произвольное состояние |ψi = α |0i + β |1i. Найти
вероятность обнаружения его в состоянии

1. |χi = iσ2 |ψi , 2. |χi = σ3 |ψi , 3. |χi = σ0 |ψi , 4. |χi = H |ψi .

4.2 Матрица плотности


Рассмотрим кубит в произвольном состоянии

|ψi = α |0i + β |1i .

Если это состояние совпадает с квантовым состоянием прибора-измерителя

|χi = α |0i + β |1i = |ψi ,

то прохождение фотона |ψi через такой поляризатор

|ψ 0 i = Π |ψi = |χi hχ|ψi = |ψi hψ|ψi = |ψi

не изменяет его квантового состояния. Другими словами

hψ|χi = hψ|ψi = 1 или P = |hψ|χi|2 = 1

т.е. вероятность прохождения кванта |ψi через поляризатор Π = |χi hχ| равна 1. Та-
кой поляризатор мы назовем собственным для данного пучка. Любой произвольно
приготовленный пучок проходит через собственный поляризатор полностью, и об-
ратно, для любого поляризатора можно приготовить такой пучок который пройдет
через него без искажения (без потерь). Это дает основание рассматривать квантовые
пучки в терминах своих же собственных поляризаторов.
Матрицей плотности квантового пучка |ψi называется его собственный проек-
тор
ρ = |ψi hψ| .
Для кубита |ψ0 i = α |0i + β |1i часто используется расширенная запись его матрицы
плотности:

ρ0 = |ψ0 i hψ0 | = α2 |0i h0| + αβ |0i h1| + βα |1i h0| + β 2 |1i h1| .

или
α2 αβ
 
ρ0 = .
βα β 2
4.2. Матрица плотности 197

Пример 4.10. Найдите матрицу плотности квантового состояния |ψ1 i = σ1 |ψ0 i.


Решение. Действуя оператором Паули σ1 на кубит |ψ0 i получим

|ψ1 i = σ1 |ψ0 i = (|0i h1| + |1i h0|) (α |0i + β |1i) = α |1i + β |0i

тогда
ρ1 = |ψ1 i hψ1 | = α2 |1i h1| + αβ |0i h1| + αβ |1i h0| + β 2 |0i h0| . N

Пример 4.11. Найдите матрицу плотности квантового состояния |ψi = R π



3
|0i.
Решение. Учитывая, что
π  π  π  √
1 3
|ψi = R |0i = cos |0i + sin |1i = |0i + |1i
3 3 3 2 2
получим
√ ! √ !
1 3 1 3
ρ = |ψi hψ| = |0i + |1i h0| + h1| ,
2 2 2 2
√ √ √ √
1 1 3 1 1 3 3 3
= · |0i h0| + · |1i h0| + · |0i h1| + · |1i h1| ,
2 2 √ 2 2 √ 2 2 2 2
1 3 3 3
= |0i h0| + |1i h0| + |0i h1| + |1i h1|
4 4 4 4
или √ ! √ 
1 3

1
ρ= √4 4 = √1 3
. N
3 3 4 3 3
4 4

Задача 4.5. Найдите матрицу плотности квантового состояния |ψi = R (ϕ) |0i.
π  π  π  π 
1. ϕ = , 2. ϕ = , 3. ϕ = , 4. ϕ = .
8 5 6 4

Если для одного фотона всегда можно найти собственный проектор (поляриза-
тор, через который он проходит без искажения), то два фотона могут находится в
состояниях и с различной поляризацией. Тогда мы не сможем подобрать такую ори-
ентацию поляризатора, чтобы два фотона проходили через него без затухания. Если
для одного фотона данный поляризатор будет собственным, то для другого - нет, и
вероятность прохождения через него для второго фотона будет обязательно меньше
единицы.
Пучок фотонов, для которого существует собственный проектор называется чи-
стым.
Пучок фотонов, для которого собственного проектора не существует называется
смешанным.
198 Глава 4. Квантовая информация

Описание смешанных квантовых состояний особенно эффективно с помощью мат-


риц плотности. Если мы возьмем два различных фотона в состоянии |ψ1 i и |ψ2 i, то
их смесь описывается матрицей плотности
1 1 1
ρ= ρ1 + ρ2 = (|ψ1 i hψ1 | + |ψ2 i hψ2 |) .
2 2 2
Множители 1/2 учитывают доли каждых фотонов в общем пучке. Если взять не два
отдельных фотона, а два пучка фотонов: один из первого лазера с поляризацией
|ψ1 i, а другой из второго лазера с поляризацией |ψ2 i, то смешать их можно с произ-
вольными долями p1 и p2 (интенсивностями). Тогда матрица плотности смешанного
пучка будет иметь вид

ρ = p1 ρ1 + p2 ρ2 = p1 |ψ1 i hψ1 | + p2 |ψ2 i hψ2 | ,

где p1 + p2 = 1.
По матрице плотности чистого пучка ρ = |ψi hψ| можно однозначно восстановить
единственное квантовое состояние |ψi.

Утверждение. Квантовый пучок

ρ = A |0i h0| + B |0i h1| + C |1i h0| + D |1i h1|

явлется чистым, если его коэффициенты удовлетворяют соотношениям

A2 + B 2 + C 2 + D 2 = 1.

Доказательство. Сформируем чистый пучок ρ = |ψi hψ| кубитом в произволь-


ном состоянии
|ψi = α |0i + β |1i
тогда
ρ = |ψi hψ| = α2 |0i h0| + αβ |0i h1| + αβ |1i h0| + β 2 |1i h1| ,
или
A = α2 , B = αβ, C = αβ, D = β2
и
A2 + B 2 + C 2 + D 2 = α4 + α2 β 2 + α2 β 2 + β 4 = (α2 + β 2 )2 = 12 = 1.
Теперь допустим, что пучок

ρ = p1 ρ1 + p2 ρ2 = p1 |ψ1 i hψ1 | + p2 |ψ2 i hψ2 | ,

сформирован состояниями

|ψ1 i = α1 |0i + β1 |1i


|ψ2 i = α2 |0i + β2 |1i ,
4.2. Матрица плотности 199

тогда

ρ = (p1 α12 + p2 α22 ) |0i h0| + (p1 α1 β1 + p2 α2 β2 )(|0i h1| + |1i h0|) + (p1 β12 + p2 β22 ) |1i h1| ,

или

A = p1 α12 + p2 α22
B = p1 α1 β1 + p2 α2 β2
C = p1 α1 β1 + p2 α2 β2
D = p1 β12 + p2 β22

и
A2 + B 2 + C 2 + D 2 = p21 + 2p1 p2 (α1 α2 + β1 β2 ) + p22 = 1.
Последнее равенство удовлетворяется только при

α1 α2 + β1 β2 = 1, ⇒ α1 = α2 ,

или
(p1 = 0, p2 = 1), или (p1 = 1, p2 = 0).
Все эти три решения соответствуют чистому пучку, а мы имеем критерий распозно-
вания чистого пучка. Аналогичным образом можно доказать утверждение для 3, 4
или n-кубитной смеси. 

Матрица плотности смешанного пучка может быть описана несколькими спосо-


бами. Самым распространенным способом описания является разложение матрицы
плотности по матрицам Паули

1X 1
ρ= pi σi = (p0 σ0 + p1 σ1 + p2 σ2 + p3 σ3 ) .
2 2
Сравнивая разложения

1
ρ = (p0 (|0i h0| + |1i h1|) + p1 (|0i h1| + |1i h0|)
2
+ ip2 (|1i h0| − |0i h1|) + p3 (|0i h0| − |1i h1|))

1
= ((p0 + p3 ) |0i h0| + (p1 − ip2 ) |0i h1|
2
+ (p1 + ip2 ) |1i h0| + (p0 − p3 ) |1i h1|)

и
ρ = A |0i h0| + B |0i h1| + C |1i h0| + D |1i h1|
200 Глава 4. Квантовая информация

получим систему 

 p0 = A + D
p1 = C + B


 ip2 = C − B
p3 = A − D

для нахождения неизвествных коэффициентов.

Пример 4.12. В качестве примера рассмотрим смесь двух фотонов, одного в


состоянии |0i h0|, а другого - в состоянии |1i h1|:

ρ = A |0i h0| + D |1i h1| ,

где A + D = 1. Через матрицы Паули эта смесь переписывается в виде


1
ρ= (σ0 + (A − D) σ3 ) ,
2
или
1+A−D 1−A+D
ρ= |0i h0| + |1i h1| . N
2 2
По матрицам Паули можно разложить даже чистый пучок, поэтому такое раз-
ложение используется в крайнем случае, если факторизовать матрицу плотности на
составляющие не удается.

Пример 4.13. Восстановить квантовое состояние кубита по известной матрице


плотности
1 √ √ 
ρ= |0i h0| + 3 |0i h1| + 3 |1i h0| + 3 |1i h1|
4
Решение. Сравнивая ρ с выражением

ρ = A |0i h0| + B |0i h1| + C |1i h0| + D |1i h1|

получим √ √
1 3 3 9
A= , B= , C= , D=
4 4 4 4
откуда
1 3 3 9
A2 + B 2 + C 2 + D 2 =
+ + + = 1.
16 16 16 16
Поэтому наша матрица плотности образована чистым пучком. Тогда из определения

|ψ0 i = α |0i + β |1i ,

мы получим матрицу плотности

ρ0 = α2 |0i h0| + αβ |0i h1| + βα |1i h0| + β 2 |1i h1| .


4.2. Матрица плотности 201

Будем сравнивать исходные данные с матрицей плотности чистого пучка. Имеем


√ √
1 3 3 3
α2 = , αβ = , βα = , β2 = .
4 4 4 4
Поскольку αβ = βα, то из

1 3 1 3
α2 = и β2 = следует α = и β= .
4 4 2 2
Таким образом исходный пучок сформирован кубитами в состоянии

1 3
|ψi = |0i + |1i и ρ = |ψi hψ| . N
2 2

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


приготовлен пучок? Рассмотрим пучок

ρ0 = |ψ0 i hψ0 | , где |ψ0 i = α |0i + β |1i .

Очевидно, что через фильтр


Π0 = |0i h0|
он пройдет с вероятностью α2 , а через фильтр

Π1 = |1i h1|

он пройдет с вероятностью β 2 .
Теперь возьмем два пучка

ρ0 = |0i h0| , ρ00 = |1i h1| ,

и создадим из них смесь


ρ1 = α2 ρ0 + β 2 ρ00 ,
Если пропустить теперь пучок ρ1 через фильтры

Π1 = |0i h0| и Π2 = |1i h1|

то результаты измерения будут те же самые, что и для предыдущего состояния ρ0 .


Рассмотрим еще одну смесь, состоящую теперь уже из четырех пучков:

ρ2 = (α2 − x2 ) |0i h0| + (β 2 − x2 ) |1i h1| + x2 |ψ1 i hψ1 | + x2 |ψ2 i hψ2 | ,

где
1 1
|ψ1 i = √ (|0i + |1i), |ψ2 i = √ (|0i − |1i), x ≤ 1.
2 2
202 Глава 4. Квантовая информация

Пропуская пучок ρ2 через фильтры

Π1 = |0i h0| и Π2 = |1i h1|

мы опять получим абсолютно те же результаты, что и для ρ0 и ρ1 .


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

Если базисное состояние представить в виде вектора-столбца


   
1 0
|0i = , |1i = ,
0 1

то кубит
|ψ0 i = α |0i + β |1i
можно записать так  
α
|ψi = ,
β
тогда в матричном представлении матрица плотности кубита
 
α
ρ = |ψi hψ| = · (α β)
β
имеет вид
α2 αβ
 
ρ= .
βα β 2
Отсюда и происходит ее название. Несмотря на то, что это представление является
неудобным для практических расчетов, оно очень эффективно для выяснения всех
свойств матрицы плотности.
Основные свойства матрицы плотности:
1) для чистого состояния

ρ2 = ρ;
2) след матрицы a = aik (spur-нем. или trace-англ) - есть сумма его диагональных
компонент:
 
a11 a12
Sp a = Sp = a11 + a22 ;
a21 a22
4.2. Матрица плотности 203

Для матрицы плотности чистого состояния

Sp ρ = 1.

В самом общем случае матрица плотности может быть записана в виде

ρ = A |0i h0| + B |0i h1| + C |1i h0| + D |1i h1| ,

или  
A B
ρ= .
C D
Очевидно, что элементы (A, B, C, D) матрицы плотности ρ можно получить следую-
щим образом:

A = h0| ρ |0i , B = h0| ρ |1i , C = h1| ρ |0i , D = h1| ρ |1i .

Эти коэффициенты имеют следующий смысл:


A - вероятность того, что квантовый пучок ρ, прошедший через поляризатор |0i,
пройдет через |0i;
B - вероятность того, что квантовый пучок ρ, прошедший через поляризатор |0i,
пройдет через |1i;
C - вероятность того, что квантовый пучок ρ, прошедший через поляризатор |1i,
пройдет через |0i;
D - вероятность того, что квантовый пучок ρ, прошедший через поляризатор |1i,
пройдет через |1i.
Наибольший интерес представляют диагональные элементы матрицы плотности:

Sp ρ = h0| ρ |0i + h1| ρ |1i = A + D

поскольку они имеют непосредственный физический смысл - полной вероятности


того, что кубит, приготовленный в состоянии |ψi будет обнаружен в соответствующем
базисном состоянии |0i или |1i. Другими словами след матрицы плотности пучка -
это сумма результатов его измерения по базисным состояниям:

Sp ρ = h0| ρ |0i + h1| ρ |1i = a211 + a222

Поскольку квантовые пучки можно рассматривать в терминах собственных поля-


ризаторов, то естественна и постановка дуальной задачи: рассмотрение измеритель-
ного прибора в терминах собственных пучков.
Пусть |χi hχ| - проекционный оператор прибора-измерителя, который регистри-
рует пучок, приготовоенный в состоянии |ψi. Меняя значение состояния

|χi = cos x |0i + sin x |1i

с помощью угла x мы получим полную группу событий: прохождение кубита |ψi че-
рез поляризатор |χi hχ|. Обозначим такой проекционный оператор через x = |χi hχ|.
204 Глава 4. Квантовая информация

Тогда каждому значению угла x ставится в соответствие вероятность ее появления


(вероятность прохождения |ψi через фильтр |χi hχ|). Другими словами x - это слу-
чайная величина. Измерение пучка |ψi по всем состояниям |χi даст среднее значение
x = hxi:
M [x] = hxi = hψ| x |ψi .

4.3 Редуцированные матрицы плотности


Мы описываем квантовое состояние системы с помощью комплексного вектора Гиль-
бертова пространства H с базисными векторами |0i и |1i и скалярным произведением:
hϕ|ψi [?]. Суперпозиция независимых кубитов

|ψ1 i = α1 |0i + β1 |1i


|ψ2 i = α2 |0i + β2 |1i .

записывается в виде

|Ψi = |ψ1 i ⊗ |ψ1 i


= α1 α2 |0i ⊗ |0i + α1 β2 |0i ⊗ |1i + β1 α2 |1i ⊗ |0i + β1 β2 |1i ⊗ |1i
= α1 α2 |00i + α1 β2 |01i + β1 α2 |10i + β1 β2 |11i .

Тогда из ψ1 , ψ2 ∈ H следует Ψ ∈ H ⊗ H. В общем случае, пучок из двух фотонов


можно представить в виде вектора в гильбертовом пространстве H2 с базисом:

(|00i , |01i , |10i , |11i) ,

например:
|Ψi = a |00i + b |01i + c |10i + d |11i ,
где a2 + b2 + c2 + d2 = 1 - условие нормировки, (т.к. hΨ|Ψi = 1). Для такого дву-
мерного квантового состояния можно поставить в соответствие двумерную матрицу
плотности:

ρ = |Ψi hΨ| = a2 |00i h00| + ab |00i h01| + ac |00i h10| + ad |00i h11|
+ ba |01i h00| + b2 |01i h01| + bc |01i h10| + bd |01i h11|
+ ca |10i h00| + cb |10i h01| + c2 |10i h10| + cd |10i h11|
+ da |11i h00| + db |11i h01| + dc |11i h10| + d2 |11i h11|

или
a2 ab ac ad
 
|00i
 ba b2 bc bd  |01i
ρ= 
 ca cb c2 cd  |10i
da db dc d2 |11i
h00| h01| h10| h11|
4.3. Редуцированные матрицы плотности 205

В дальнейшем мы будем записывать только компоненты матрицы плотности


 2 
a ab ac ad
 ba b2 bc bd 
ρ = |Ψi hΨ| = 
 ca cb c2 cd  .

da db dc d2

Пример 4.14. Найти матрицу плотности кубита

|Ψi = |ψ1 i ⊗ |ψ2 i ,

если
1
|ψ1 i = √ (|0i + |1i) , |ψ2 i = |0i .
2
Решение. Для двумерного квантового состояния имеем
1 1
|Ψi = |ψ1 i ⊗ |ψ2 i = √ (|0i + |1i) ⊗ |0i = √ (|00i + |10i) .
2 2
Тогда по определению матрицы плотности, получим:
1 1
ρ = |Ψi hΨ| = √ (|00i + |10i) (h00| + h10|) √
2 2
1
= (|00i h00| + |00i h10| + |10i h00| + |10i h10|)
2
или  
1 0 1 0
1  0 0 0 0 
ρ=  . N
2  1 0 1 0 
0 0 0 0
Пример 4.15. Найти матрицу плотности ρ = |Ψi hΨ| кубита |Ψi = |ψ1 i ⊗ |ψ2 i,
если
1 √ 
|ψ1 i = |1i , |ψ2 i = |0i + 3 |1i .
2
Решение.
1 √ 
|Ψi = |10i + 3 |11i ,
2
1 √ √ 
ρ = |10i h10| + 3 |10i h11| + 3 |11i h10| + 3 |11i h11|
4
или  
0 0 0 0
1 0 0 0 √0 
ρ=  . N
4 0 0 √
1 3 
0 0 3 3
206 Глава 4. Квантовая информация

Задача 4. 6. Найти матрицу плотности ρ = |Ψi hΨ| кубита |Ψi = |ψ1 i ⊗ |ψ2 i,
если
1. √ p √ √ √
2 5− 5 5+1 3 1
|ψi = |0i + |1i , |ψ 0 i = |0i + |1i ;
4 4 2 2
2. p √ p √ √ p √
2+ 2 2− 2 0 2 5− 5
|ψi = |0i + |1i , |ψ i = |0i ;
2 2 4
3. p √ p √ √
2+ 2 2− 2 0 1 3
|ψi = |0i + |1i , |ψ i = |0i + |1i ;
2 2 2 2
4. √ √
3 1 0 1 3
|ψi = |0i + |1i , |ψ i = |0i + |1i .
2 2 2 2

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


ности можно получить редуцированные плотности ее составляющих :
X
ρ1 = hρi2 =2 h0| ρ |0i2 +2 h1| ρ |1i2 ,
X
ρ2 = hρi1 =1 h0| ρ |0i1 +1 h1| ρ |1i1 .

Суммирование по базисному вектору второго кубита дает редуцированную мат-


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

ρ1 = Sp2 ρ, ρ2 = Sp1 ρ.

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


1 1 1 1
ρ= |00i h00| + |00i h10| + |10i h00| + |10i h10| .
2 2 2 2
Решение. Найдем редуцированную матрицу плотности 1 кубита:

ρ1 = Sp2 ρ = h02 | ρ |02 i + h12 | ρ |12 i


1
= (h0|00i h00|0i + h0|00i h10|0i + h0|10i h00|0i + h0|10i h10|0i)
2
1
+ (h1|00i h00|1i + h1|00i h10|1i + h1|10i h00| |1i + h1|10i h10|1i)
2
1
= (1 · |0i h0| · 1 + 1 · |0i h1| · 1 + 1 · |1i h0| · 1 + 1 · |1i h1| · 1)
2
1
+ (0 · |0i h0| · 0 + 0 · |0i h1| · 0 + 0 · |1i h0| · 0 + 0 · |0i h0| · 0)
2
1
= (|0i h0| + |0i h1| + |1i h0| + |1i h1|) .
2
4.3. Редуцированные матрицы плотности 207

Найдем редуцированную матрицу плотности 2 кубита:


ρ2 = Sp1 ρ = h01 | ρ |01 i + h11 | ρ |11 i
1
= (h0|00i h00|0i + h0|00i h10|0i + h0|10i h00|0i + h0|10i h10|0i)
2
1
+ (h1|00i h00|1i + h1|00i h10|1i + h1|10i h00|1i + h1|10i h10|1i)
2
1
= (1 · |0i h0| · 1 + 1 · |0i h0| · 0 + 0 · |1i h0| · 1 + 0 · |1i h1| · 0)
2
1
+ (0 · |0i h0| · 0 + 0 · |0i h0| · 1 + 1 · |0i h0| · 0 + 1 · |0i h0| · 1)
2
1
= (|0i h0| + |0i h0|) = |0i h0|
2
Таким образом, редуцированные матрицы плотности есть:
1
ρ1 = Sp2 ρ = (|0i h0| + |0i h1| + |1i h0| + |1i h1|) , ρ2 = Sp1 ρ = |0i h0| ,
2
или    
1 1 1 1 0
ρ1 = , ρ2 = . N
2 1 1 0 0

Задача 4.7. Найти редуцированные матрицы плотности пучка


1. ρ = α2 |00i h00| + αβ |00i h01| + αβ |01i h00| + β 2 |01i h01|
2. ρ = α2 |01i h01| + αβ |01i h11| + αβ |11i h01| + β 2 |11i h11|
3. ρ = α2 |01i h01| + αβ |01i h10| + αβ |10i h01| + β 2 |10i h10|
4. ρ = α2 |00i h00| + αβ |00i h11| + αβ |11i h00| + β 2 |11i h11|
В общем случае для 2 мерной матрицы плотности
ρ = A00 |00i h00| + A01 |00i h01| + A02 |00i h10| + A03 |00i h11|
+ A10 |01i h00| + A11 |01i h01| + A12 |01i h10| + A13 |01i h11|
+ A20 |10i h00| + A21 |10i h01| + A22 |10i h10| + A23 |10i h11|
+ A30 |11i h00| + A31 |11i h01| + A32 |11i h10| + A33 |11i h11| ;

 
A00 A01 A02 A03
 A10 A11 A12 A13 
ρ=
 A20

A21 A22 A23 
A30 A31 A32 A33
редуцированные матрицы плотности можно вычислить по формулам
ρ1 = Sp2 ρ
+ (A00 + A11 ) |0i h0| + (A02 + A13 ) |0i h1|
+ (A20 + A31 ) |1i h0| + (A22 + A33 ) |1i h1| ;
208 Глава 4. Квантовая информация

 
A00 + A11 A02 + A13
ρ1 =
A20 + A31 A22 + A33
и

ρ2 = Sp1 ρ
= (A00 + A22 ) |0i h0| + (A01 + A23 ) |0i h1|
+ (A10 + A32 ) |1i h0| + (A11 + A33 ) |1i h1| ;
 
A00 + A22 A01 + A23
ρ2 = .
A10 + A32 A11 + A33
Пример 4.17. Найти редуцированные матрицы плотности пучка
1
ρ= (2 |00i h00| + 2 |00i h10| − 3 |10i h00| − 5 |11i h10|).
26
Решение. Перепишем ρ в виде
   
A00 A01 A02 A03 2 0 2 0
 A10 A11 A12 A13 
 1  0 0
 0 0 
ρ= = 
 A20 A21 A22 A23  26  −3 0 0 0 
A30 A31 A32 A33 0 0 −5 0
тогда
     
A00 + A11 A02 + A13 1 2+0 2+0 1 2 2
ρ1 = = =
A20 + A31 A22 + A33 26 −3 + 0 0+0 26 −3 0
     
A00 + A22 A01 + A23 1 2+0 0+0 1 2 0
ρ2 = = =
A10 + A32 A11 + A33 26 0 − 5 0+0 26 −5 0
или
1
ρ1 = (2 |0i h0| + 2 |0i h1| − 3 |1i h0|)
26
1
ρ2 = (2 |0i h0| − 5 |1i h0|). N
26

Задача 4.8. Найти редуцированные матрицы плотности пучка


1
1. ρ = (|00i h00| + 2 |00i h01| − 2 |01i h00| + 3 |01i h01|)
18
1
2. ρ = (|01i h01| + 3αβ |01i h11| + 3αβ |11i h01| + 4β 2 |11i h11|)
35
1
3. ρ = (|01i h01| + 4αβ |01i h10| + 2αβ |10i h01| + 3β 2 |10i h10|)
30
1
4. ρ = (|00i h00| + 4αβ |00i h11| + 4αβ |11i h01| + β 2 |11i h11|)
34
4.3. Редуцированные матрицы плотности 209

Если пучок сформирован в чистом состоянии, т.е. ρ = |Ψi hΨ|, то редуцированные


матрицы плотности ρ1 и ρ2 восстанавливаются непосредственно по коэффициентам
кубита
|Ψi = a |00i + b |01i + c |10i + d |11i
следующим образом:

ρ1 = (a2 + b2 ) |0i h0| + (ac + bd) (|0i h1| + |1i h0|) + (c2 + d2 ) |1i h1| ,
ρ2 = (a2 + c2 ) |0i h0| + (ab + cd) (|0i h1| + |1i h0|) + (b2 + d2 ) |1i h1| .

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

|Ψi = α |00i + β |10i

Решение. Поскольку a = α, b = 0, c = β, d = 0, то

ρ1 = α2 |0i h0| + αβ (|0i h1| + |1i h0|) + β 2 |1i h1| ,


ρ2 = (α2 + β 2 ) |0i h0| = |0i h0| . N

Задача 4. 9. Найти редуцированные матрицы плотности кубита


1
1. |Ψi = √ (|00i + 3 |01i + 4 |10i);
26
62
2. |Ψi = √ (|00i + 5 |01i + 6 |11i);
1
1
3. |Ψi = √ (|00i + 6 |10i + 2 |11i);
41
1
4. |Ψi = √ (|01i + 2 |10i + 4 |11i).
21

Для кубита Ψ ∈ H3 :

|Ψi = a0 |000i + a1 |001i + a2 |010i + a3 |011i + a4 |100i + a5 |101i + a6 |110i + a7 |111i

редуцированные матрицы плотности можно получить по формулам:

ρ1 = a20 + a21 + a22 + a23 |0i h0| + (a0 a4 + a1 a5 + a2 a6 + a3 a7 ) (|0i h1| + |1i h0|)


+ a24 + a25 + a26 + a27 |1i h1| ,




ρ2 = a20 + a21 + a24 + a25 |0i h0| + (a0 a2 + a1 a3 + a4 a6 + a5 a7 ) (|0i h1| + |1i h0|)


+ a22 + a23 + a26 + a27 |1i h1| ,




ρ3 = a20 + a22 + a24 + a26 |0i h0| + (a0 a1 + a2 a3 + a4 a5 + a6 a7 ) (|0i h1| + |1i h0|)


+ a21 + a23 + a25 + a27 |1i h1| .



210 Глава 4. Квантовая информация

Аналогичным образом несложно вывести общие формулы для Ψ ∈ Hn . Так, для


кубита
n−1
X
|ψi = Ci |ii , ∀ i ∈ F G(n) = F G(2k) ,
i=0
получим
n−1 n−1 n−1
X X X i
R2i k−1 Ci2 R2i k−1 R2k−1 Ci2 |0i h0| .

ρk = |0i h0| + Ci Ci+n/2k (|0i h1| + |1i h0|) +
i=0 i=0 i=0

Здесь
1 i i
 i 1 i

Rm =
1 + Hm , Rm = 1 − Hm ,
2 2
Hmi
- значение m-й базисной функции Хаара в точке i отрезка [0, 2k ].
Рассмотрим более подробно принципы построения данных выражений. Возмем
рекурсивную формулу для построения матриц Адамара
 
Hk Hk
Hk+1 = где H0 = 1.
Hk −Hk
Например   
H0 H0 1 1
H0 = 1; H1 = = ;
H0 −H0 1 −1
 
  1 1 1 1
H1 H1  1 −1 1 −1 
H2 = = ;
H1 −H1  1 1 −1 −1 
1 −1 −1 1
 
1 1 1 1 1 1 1 1
 1 −1 1 −1 1 −1 1 −1 
 
   1
 1 −1 −1 1 1 −1 −1 

H2 H2  1 −1 −1 1 1 −1 −1 1 
H3 = =  ...
H2 −H2  1
 1 1 1 −1 −1 −1 −1 

 1 −1 1 −1 −1 1 −1 1 
 
 1 1 −1 −1 −1 −1 1 1 
1 −1 −1 1 −1 1 1 −1
Несложно изобразить функции Адамара графически. Например для H2 получим

dB dB
t
t

dB dB
t t
4.3. Редуцированные матрицы плотности 211

Преобразование Грея
Преобразование Грея - это перестановка элементов таблицы истинности булевой
функции таким образом, чтобы ее нижняя половина была симметрична верхней, за
исключением старшего бита, который просто инвертируется. Если разделить каждую
половину еще пополам, то свойство должно сохранятся для каждой половины и т.д.
F 2-битное преобразование
       
0 00 00 0
 1   01   01   1 
 2   10  ⇒  11  =  3 
 =     

3 11 10 2

F 3-битное преобразование
       
0 000 000 0
 1   001   001   1 
       
 2   010   011   3 
       
 3   011   010   2 
 = ⇒ = 
 4   100   110   6 
       
 5   101   111   7 
       
 6   110   101   5 
7 111 100 4

Преобразование Грея числа B это его побитовое XOR со своим сдвинутым вправо
значением:
Gi = Gray(Bi) = Bi ⊕ Bi+1
F  
100
Gray(4) = Gray(1002) =  010  = 1102 = 6
110
F  
1101
Gray(13) = Gray(11012) =  0110  = 10112 = 11
1011
Обратный алгоритм – преобразование кода Грея в двоичный код – можно выра-
зить рекуррентной формулой

Bi = Bi+1 ⊕ Gi+1

F  
110
 011 
G−1 (6) = G−1 (1102 ) = 
 001  = 1002 = 4

100
212 Глава 4. Квантовая информация

F  
1011
 0101 
−1 −1
 
G (11) = G (10112 ) = 
 0010  = 11012 = 13

 0001 
1101
Преобразование Уолша
Функциями Уолша назвывается семейство функций, образующих ортогональную
систему, принимающих значения только 1 и -1 на всей области определения.

4.4 Разложение Шмидта


Утверждение. Произвольное двухкубитное квантовое состояние

|Ψi = a00 |00i + a01 |01i + a10 |10i + a11 |11i

можно представить в виде

|Ψi = λ0 |x0 y0 i + λ1 |x1 y1 i

где (λ0 , λ1 ) являются собственными значениями, а cостояния (x,y) - собственными


векторами оператора  
a00 a01
A=
a10 a11
построенного по коэффициентам кубита |Ψi.
Доказательство данного утверждения удобнее рассматривать с помощью клас-
сического матричного исчисления. Действительно, приведем матрицу коэффициен-
тов |Ψi:  
a00 a01
A=
a10 a11
к диагональному виду  
λ0 0
L=
0 λ1
с помощью преобразования L = U −1 AU. После этого, разобъем диагональную мат-
рицу на два слагаемых
   
λ0 0 0 0
L= + = L0 + L1
0 0 0 λ1

и произведем обратное преобразование

A = ULU −1 = UL0 U −1 + UL1 U −1 = B0 + B1 .


4.4. Разложение Шмидта 213

По матрицам B0 и B1 элементарно восстанавливаются квантовые состояния |xi и |yi.


Для этого выпишем матрицу унитарного преобразования U в явном виде
   
u00 u01 −1 v00 v01
U= тогда U =V =
u10 u11 v10 v11
и    
λ0 0 0 0
L= + = L0 + L1
0 0 0 λ1
Из обратного соотношения получим

A = ULU −1 = UL0 U −1 + UL1 U −1


       
u00 u01 λ0 0 v00 v01 u00 u01 0 0 v00 v01
= +
u10 u11 0 0 v10 v11 u10 u11 0 λ1 v10 v11
   
u00 v00 u00 v01 u01 v10 u01 v11
= λ0 + λ1 = λ0 (x0 ⊗ y0 ) + λ1 (x1 ⊗ y1 ),
u10 v00 u10 v01 u11 v10 u11 v11

где (x,y) - собственные векторы оператора A c компонентами


       
u00 v00 u01 v10
x0 = , y0 = , x1 = , y1 = . 
u10 v01 u11 v11

В общем случае, для матрицы (2 × 2):


trA ± tr 2 A − 4∆
λ0,1 = ,
2
где trA = a00 + a11 след матрицы, а ∆ = a00 a11 − a01 a10 ее определитель, квантовое
состояние |Ψi можно записать в виде

|Ψi = λ0 |x0 y0 i + λ1 |x1 y1 i ,

где
1 серия
1
|x0 i = q (a01 |0i + (λ0 − a00 ) |1i)
a201 + (λ0 − a00 )2
1
|y0 i = q ((λ1 − a00 ) |0i − a01 |1i)
2 2
a01 + (λ1 − a00 )
1
|x1 i = q (a01 |0i + (λ1 − a00 ) |1i)
a201 + (λ1 − a00 )2
214 Глава 4. Квантовая информация

1
|y1 i = q (−(λ0 − a00 ) |0i + a01 |1i)
a201 + (λ0 − a00 )2
Однако на практике данными формулами пользоваться бывает не удобно, по-
скольку они приводят к возникновению неопределенностей типа 0/0 в коэффициен-
тах из за выбора способа нормировки собственных векторов. Поэтому приходится
искать другие комбинации решений, приводящих к ненулевым собственнным векто-
рам. Для (2×2) матриц возможны 4 различных комбинации построения собственных
векторов. Одну из них мы рассмотрели, а остальные приведены ниже.
2 серия
1
|x0 i = p 2 ((λ0 − a11 ) |0i + a10 |1i)
a10 + (λ0 − a11 )2
1
|y0 i = q (−a10 |0i + (λ1 − a11 ) |1i)
2
a210 + (λ1 − a11 )
1
|x1 i = q ((λ1 − a11 ) |0i + a10 |1i)
2 2
a10 + (λ1 − a11 )
1
|y1 i = q (a10 |0i − (λ0 − a11 ) |1i)
2 2
a10 + (λ0 − a11 )
3 серия
1
|x0 i = p 2 (a01 |0i + (λ0 − a00 ) |1i)
a01 + (λ0 − a00 )2
1
|y0 i = q (a10 |0i − (λ1 − a11 ) |1i)
a210 + (λ1 − a11 )2
1
|x1 i = q ((λ1 − a11 ) |0i + a10 |1i)
a210 + (λ1 − a11 )2
1
|y1 i = q ((a00 − λ0 ) |0i + a10 |1i)
a201 + (λ0 − a00 )2
4 серия
1
|x0 i = p 2 ((a11 − λ0 ) |0i − a10 |1i)
a10 + (λ0 − a11 )2
1
|y0 i = q ((λ1 − a00 ) |0i − a01 |1i)
a201 + (λ1 − a00 )2
1
|x1 i = q (a01 |0i + (λ1 − a00 ) |1i)
a201 + (λ1 − a00 )2
4.4. Разложение Шмидта 215

1
|y1 i = q (a10 |0i − (λ0 − a11 ) |1i)
a210 + (λ0 − a11 )2

Пример 4.19. Найти разложение Шмидта для кубита


1
|Ψi = √ (|00i + x |01i + x |10i + |11i) ,
2 + 2x2
где |x| ≤ 1.
Решение. Для матрицы коэффициентов |Ψi, без нормировки
 
1 x
A=
x 1
найдем собственные значения. Для этого вычислим определитель
1−λ x
=0 или (1 − λ)2 − x2 = 0.
x 1−λ
Решая квадратное уравнение относительно λ получим два собственных числа λ0 =
1 − x, λ1 = 1 + x, и согласно 1 серии формул получим
1
|x0 i = q (a01 |0i + (λ0 − a00 ) |1i)
2 2
a01 + (λ0 − a00 )
1
= p (x |0i + (1 − x − 1) |1i)
x2 + (1 − x − 1)2
1
= √ (|0i − |1i) ,
2

1
|y0 i = q ((λ1 − a00 ) |0i − a01 |1i)
a201 + (λ1 − a00 )2
1
= p ((1 + x − 1) |0i − x |1i)
x + (1 + x − 1)2
2

1
= √ (|0i − |1i) ,
2

1
|x1 i = q (a01 |0i + (λ1 − a00 ) |1i)
a201 + (λ1 − a00 )2
1
= p (x |0i + (1 + x − 1) |1i)
x2 + (1 + x − 1)2
1
= √ (|0i + |1i) ,
2
216 Глава 4. Квантовая информация

1
|y1 i = q (−(λ0 − a00 ) |0i + a01 |1i)
2
a201 + (λ0 − a00 )
1
= p (−(1 − x − 1) |0i + x |1i)
x2 + (1 − x − 1)2
1
= √ (|0i + |1i) .
2

Тогда разложение Шмидта

|Ψi = λ0 |x0 y0 i + λ1 |x1 y1 i

1
с учетом нормировки √ записывается в виде
2 + 2x2

1−x 1+x
|Ψi = √ |x0 y0 i + √ |x1 y1 i ,
2 + 2x2 2 + 2x2
где
1 1
|x0 i = |y0 i = √ (|0i − |1i) , |x1 i = |y1 i = √ (|0i − |1i) . N
2 2

Пример 4.20. Найти разложение Шмидта квантового состояния

1
|Ψi = √ (|00i + 2 |10i − 3 |11i).
14

Решение. Найдем собственные значения матрицы


 
1 0
A= .
2 −3

Для этого вычислим определитель

1−λ 0
=0 или (1 − λ)(−3 − λ) − 2 · 0 = 0.
2 −3 − λ

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

λ0 = −3, λ1 = 1.

1. Пользуясь 1 серией формул для |y0 i мы получим получим неопределенность


0
типа .
0
2. Рассмотрим 2 серию формул:
4.4. Разложение Шмидта 217

1
|x0 i = p ((λ0 − a11 ) |0i + a10 |1i)
a210 + (λ0 − a11 )2
1
= p ((−3 + 3) |0i + 2 |1i) = |1i
2 + (−3 + 3)2
2

1
|y0 i = q (−a10 |0i + (λ1 − a11 ) |1i)
2 2
a10 + (λ1 − a11 )
1 1
= p (−2 |0i + (1 + 3) |1i) = √ (− |0i + 2 |1i)
22 + (1 + 3)2 5
1
|x1 i = q ((λ1 − a11 ) |0i + a10 |1i)
a210 + (λ1 − a11 )2
1 1
= p ((1 + 3) |0i + 2 |1i) = √ (2 |0i + |1i)
2
2 + (1 + 3) 2 5
1
|y1 i = q (a10 |0i − (λ0 − a11 ) |1i)
2 2
a10 + (λ0 − a11 )
1
= p (2 |0i − (−3 + 3) |1i) = |0i
22 + (−3 + 3)2

Теперь разложение Шмидта

|Ψi = λ0 |x0 y0 i + λ1 |x1 y1 i

с учетом нормировки записывается так


r
5
|Ψi = (−3 |x0 y0 i + |x1 y1 i),
56
где
1 1
|x0 i = |1i , |y0 i = √ (− |0i + 2 |1i) , |x1 i = √ (2 |0i + |1i) , |y1 i = (|0i) . N
5 5
218 Глава 4. Квантовая информация

Пример 4.21. Найти разложение Шмидта квантового состояния


1
|Ψi = √ (|00i + 3 |10i .
10
Решение. Если не привязываться к собственным векторам, то такого рода задачи
решаются устно, без использования сложных расчетов:
1 1
|Ψi = √ (|00i + 3 |10i = √ (|0i + 3 |1i) ⊗ |0i = |xyi ,
10 10
где
1
|xi = √ (|0i + 3 |1i , |yi = |0i . N
10

Пример 4.22. Найти разложение Шмидта квантового состояния


1
|Ψi = √ (2 |00i + 3 |01i + 4 |10i + 5 |11i).
54
Решение. Разбивая на 2 части:
1
|Ψi = √ (|0i ⊗ (2 |0i + 3 |1i) + |1i ⊗ [4 |0i + 5 |1i])
54
√   √  
13 1 41 1
= √ |0i ⊗ √ (2 |0i + 3 |1i) + √ |1i ⊗ √ (4 |0i + 5 |1i)
54 13 54 41
r r
13 41
= |x1 y1 i + |x2 y2 i
54 54
получим
|x1 i = |0i , |x2 i = |1i
1 1
|y1 i = √ (2 |0i + 3 |1i), |y2 i = √ (4 |0i + 5 |1i). N
13 41
Задача 4. 10. Найти разложение Шмидта квантовых состояний.
1
1. |Ψi = √ (5 |00i + 2 |01i + 4 |10i + 3 |11i),
70
1
2. |Ψi = √ (4 |00i + 2 |01i + 3 |10i + 8 |11i),
93
1
3. |Ψi = √ (3 |00i + 4 |01i + 7 |10i + 2 |11i),
78
1
4. |Ψi = √ (5 |00i + 4 |01i + 8 |10i + 9 |11i).
186
4.5. Зацепленные квантовые состояния 219

4.5 Зацепленные квантовые состояния


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

|Ψi = a |00i + b |01i + c |10i + d |11i

может быть факторизован:


|Ψi = |ψi ⊗ |ϕi .
Пространство таких квантовых состояний называется сепарабельным H ⊗ H. Одна-
ко гильбертово пространство H2 допускает и несепарабельные подпространства, т.е
квантовые двумерные состояния, которые не могут быть разделены. Такие состоя-
ния называются зацепленными (entangled - запутанными) квантовыми битами или
забитами (ebits) [?]. Если двумерное квантовое состояние является сепарабельным и

|ψi = α1 |0i + β1 |1i


,
|ϕi = α2 |0i + β2 |1i

|Ψi = |ψi ⊗ |ϕi = α1 α2 |00i + α1 β2 |01i + β1 α2 |10i + β1 β2 |11i ,


то для определения коэффициентов общего состояния

|Ψi = |ψi ⊗ |ϕi = a |00i + b |01i + c |10i + d |11i

нам необходимо решить систему уравнений




 α1 α2 = a,
α1 β2 = b,


 β1 α2 = c,
β1 β2 = d.

Если система находится в чистом, незапутанном состоянии, то данная система


имеет единственное решение. Если же состояние двух кубитов является зацеплен-
ным, то данная система несовместна и решения не имеет. Такое состояние невозмож-
но создать простой суперпозицией кубитов и можно достичь только процессом их
перепутывания. Например запутанное квантовое состояние
1
|Ψi = √ (|00i + |11i)
2
называется состоянием типа Шредингеровского кота, а состояние
1
|Ψi = √ (|01i + |10i)
2
- это Эйнштейна-Подольского-Розена пара.
220 Глава 4. Квантовая информация

Одним из методов проверки, является ли данное состояние сепарабельным явля-


ется разложение Шмидта:

|Ψi = λ0 |ψ0 ϕ0 i + λ1 |ψ1 ϕ1 i .

Очевидно, для того чтобы состояние |Ψi было сепарабельным необходимо и доста-
точно, чтобы одно из собственных значений λ0,1 было равно нулю (например λ1 = 0),
тогда |Ψi = λ0 |ψ0 ϕ0 i.
Математически квантовый оператор, позволяющий запутать два кубита |xi и |yi
называется оператором CNOT (Controlled NOT) и дается выражением:

P12 |x,yi = |x,x ⊕ yi ,

где x ⊕ y логическая операция сложение по модулю два. Таблица истинности для


оператора CNOT есть

Вход Выход
|xi |yi |xi |x ⊕ yi
0 0 0 0
0 1 0 1
1 0 1 1
1 1 1 0

Графически, действие оператора представляет собой систему преобразующую


входные кубиты в некоторые выходные состояния. При этом выход кубита |yi кон-
тролируется состоянием кубита |xi, поэтому кубит |xi называется контролирующим,
а кубит |yi - контролируемым. Очевидно, что оператор может действовать и в об-
ратном порядке:
P21 |x,yi = |x ⊕ y,yi .
В этом случае кубит |yi называется контролирующим, а кубит |xi - контролируемым.

H123
P12 ψ1
ψ1
ψ2
ψ2 +
ψ3 +

Рис. 4.1: Квантовые операторы CNOT P21 и Тоффоли H123 .

Трехкубитный оператор - вентиль Тоффоли определяется следующим выражени-


ем:
H123 |x,y,zi = |x,y,x&y ⊕ zi ,
4.5. Зацепленные квантовые состояния 221

с таблицей истинности

Вход Выход
|xi |yi |zi |xi |yi |x&y ⊕ zi
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 0
0 1 1 0 1 1
1 0 0 1 0 0
1 0 1 1 0 1
1 1 0 1 1 1
1 1 1 1 1 0

Пример 4.23. Найти Квантовое состояние


|ψi = P12 |ψ1 i ⊗ |ψ2 i и |Φi = P21 |ψ1 i ⊗ |ψ2 i
если
|ψ1 i = α |0i + β |1i и |ψ2 i = β |0i − α |1i .
Решение. Найдем результат действия операторов P12 и P21 на суперпозицию
|ψ1 i ⊗ |ψ2 i:
|ψ1 i ⊗ |ψ2 i = (α |0i + β |1i) ⊗ (β |0i − α |1i)
= αβ |00i − α2 |01i + β 2 |10i − αβ |11i ;
P12 |ψ1 i ⊗ |ψ2 i = P12 αβ |00i − α2 |01i + β 2 |10i − αβ |11i


= αβ |00i − α2 |01i + β 2 |11i − αβ |10i ;


P21 |ψ1 i ⊗ |ψ2 i = P21 αβ |00i − α2 |01i + β 2 |10i − αβ |11i


= αβ |00i − α2 |11i + β 2 |10i − αβ |01i . N


Задача 4.11. Найти Квантовое состояние
|ψi = P12 |ψ1 i ⊗ |ψ2 i и |Φi = P21 |ψ1 i ⊗ |ψ2 i
если

π  π 
1. |ψ1 i = R |0i и |ψ2 i = R |0i ,
2
π 3

2. |ψ1 i = R |0i и |ψ2 i = R |0i ,
3
π 4

3. |ψ1 i = R |0i и |ψ2 i = R |0i ,
4
π 6

4. |ψ1 i = R |0i и |ψ2 i = R |0i .
6 3
222 Глава 4. Квантовая информация

4.6 Квантовые алгоритмы


Рассмотрим некоторые квантовые алгоритмы, показывающие особенности, присущие
исключительно квантовым вычислениям. Все алгоритмы основаны на использовании
запутанных квантовых состояний. Это означает, что действие некоторого оператора
на один из кубитов забита автоматически изменяет состояние других членов ан-
самбля. Возникает квантовый параллелизм - фундаментальное свойство квантовых
вычислений, позволяющее за одно обращение к функции f (x) вычислять ее значения
при различных аргументах x одновременно.

4.6.1 Алгоритм Дойча


Пусть имееются четыре функции fi (x) от двоичной переменной x = 0, 1. Результаты
действия функций на переменные показаны в таблице.

Вход Выход
x f1 (x) f2 (x) f3 (x) f4 (x)
0 0 1 0 1
1 0 1 1 0

Функции f1 (x) и f2 (x) называются "постоянными", поскольку они принимают одина-


ковое значение независимо от изменения аргумента. Функции f3 (x) и f4 (x) называют-
ся "сбалансированными". Задача Дойча ставится следующим образом: определить,
к какой группе относится данная функция f (постоянной или сбалансированной)?
При классическом решении данной задачи мы должны определить отдельно f (0)
и f (1), т.е. выполнить два обращения к функции f . Использование квантового па-
раллелизма позволяет решить эту задачу за один проход. Для решения задачи рас-
смотрим квантовый компьютер, состоящий из двух кубитов |xi и |yi. Функциям fi (x)
поставим в соответствие операторы Ui :

   
1 0 0 0 0 0 0 1
 0 1 0 0   0 0 1 0 
U1 = 
 0
, U2 =  ,
0 1 0   0 1 0 0 
0 0 0 1 1 0 0 0

   
0 1 0 0 0 0 1 0
 1 0 0 0   0 0 0 1 
U3 = 
 0
, U4 =  .
0 0 1   1 0 0 0 
0 0 1 0 0 1 0 0

Работа компьютера происходит следующим образом. На первом этапе нам необ-


ходимо приготовить запутаное состояние квантовых регистров |xi и |yi. Например,
4.6. Квантовые алгоритмы 223

создадим Шредингеровскую пару последовательностью действия операторами Ада-


мара H и CNOT P12 на нулевые кубиты ψ prep = |xyi = |00i:
1 1
|00i → P12 H1 |00i = P12 (|00i + |10i) √ = √ (|00i + |11i).
2 2
Аналогично, можно получить Шредингеровскую пару с обратной фазой из состояния
ψ prep = |xyi = |10i:
1 1
|10i → P12 H1 |10i = P12 (|00i − |10i) √ = √ (|00i − |11i).
2 2
Запишем эти состояния выражением
1
ψ in = P12 H1 |ψ prep i = P12 H1 |x0i = √ (|00i + (−)x |11i).
2
Вычисления квантового компьютера Дойча осуществляется действием оператором
Ui на входное состояние |ψ in i. В результате, на выходе мы получим:

для ψ prep = |00i

Ui |ψ in i |ψ out i P12 |ψ out i H1 P12 |ψ out i

1 1 1
U1 √ (|00i + |11i) √ (|00i + |11i) √ (|00i + |10i) |00i
2 2 2

1 1
U2 √ (|00i + |11i) √1 (|11i
2
+ |00i) √ (|10i + |00i) |00i
2 2

1 1 1
U3 √ (|00i + |11i) √ (|10i + |01i) √ (|11i + |01i) |01i
2 2 2

1 1 1
U4 √ (|00i + |11i) √ (|01i + |10i) √ (|01i + |11i) |01i
2 2 2
224 Глава 4. Квантовая информация

для ψ prep = |10i

Ui |ψ in i |ψ out i P12 |ψ out i H1 P12 |ψ out i

1 1 1
U1 √ (|00i − |11i) √ (|00i − |11i) √ (|00i − |10i) |10i
2 2 2

1 1
U2 √ (|00i − |11i) √1 (|11i
2
+ |00i) √ (|10i − |00i) − |10i
2 2

1 1 1
U3 √ (|00i − |11i) √ (|10i + |01i) √ (|11i − |01i) − |11i
2 2 2

1 1 1
U4 √ (|00i − |11i) √ (|01i + |10i) √ (|01i − |11i) |11i
2 2 2

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


кубита |zi дает решение задачи. Если |zi = |0i, то функция fi принадлежит к первому
классу (постоянная), если же |zi = |1i, то функция будет сбалансированной. С учетом
фазы результат ψ sol будет иметь вид:

ψ sol = (−)(x⊕y)f (x) |xi |zi .

Если в качестве запутанного состояния использовать состояние Эйнштейна-Подольского-


Розена, которое создается последовательностью действия операторами Адамара H и
CNOT P12 на кубиты |ψ prepi = |xyi = |x1i:
1
ψ in = P12 H1 |ψ prep i = P12 H1 |x1i = √ (|01i + (−)x |10i),
2

то на выходе мы получим |ψ out i = Ui |ψ in i, а распутанные состояния

ψ sol = σ3 P12 H1 ψ out = (−)(x⊕y)f (x) |xi |zi ,

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


4.6. Квантовые алгоритмы 225

P12 P12
x H H x
Ui
0 + + z

Рис. 4.2: Квантовый компьютер Дойча.

4.6.2 Квантовое плотное кодирование


Перед процессом кодирования получателю и отправителю информации передается
по одной части запутанного кубита (состояние типа Шредингеровского кота):
1
|ψi = √ (|00i + |11i) .
2
Каждому значению передаваемой последовательности ставится в соответствие одно-
кубитовый оператор
I = σ0 , X = σx , Y = iσy , Z = σz ,
которым отправитель действует на первый кубит забита.

Значение Преобразование Новое состояние

1
0 ψ0 = (I ⊗ I) ψ0 √ (|00i + |11i)
2

1
1 ψ1 = (X ⊗ I) ψ0 √ (|10i + |01i)
2

1
2 ψ2 = (Y ⊗ I) ψ0 √ (− |10i + |01i)
2

1
3 ψ3 = (Z ⊗ I) ψ0 √ (|00i − |11i)
2

Затем получателю по квантовому каналу отправляется первая, преобразованная


часть забита.Получатель применяет CNOT операцию к полученному забиту.
226 Глава 4. Квантовая информация

Значение Первоначальное C-NOT Первый Второй


состояние кубит кубит

1 1 1
0 √ (|00i + |11i) √ (|00i + |10i) √ (|0i + |1i) |0i
2 2 2

1 1 1
1 √ (|10i + |01i) √ (|11i + |01i) √ (|1i + |0i) |1i
2 2 2

1 1 1
2 √ (− |10i + |01i) √ (− |11i + |01i) √ (− |1i + |0i) |1i
2 2 2

1 1 1
3 √ (|00i − |11i) √ (|00i − |10i) √ (|0i − |1i) |0i
2 2 2

Далее получатель применяет оператор Адамара к первому кубиту


1
H = √ (σx + σz )
2

№ Первый C-NOT Первый Второй


кубит кубит кубит
 
1 1 1 1
0 √ (|0i + |1i) √ √ (|0i + |1i) + √ (|0i − |1i) |0i |0i
2 2 2 2

 
1 1 1 1
1 √ (|1i + |0i) √ √ (|0i − |1i) + √ (|0i + |1i) |0i |1i
2 2 2 2

 
1 1 1 1
2 √ (− |1i + |0i) √ − √ (|0i − |1i) + √ (|0i + |1i) |1i |1i
2 2 2 2

 
1 1 1 1
3 √ (|0i − |1i) √ √ (|0i + |1i) − √ (|0i − |1i) |1i |0i
2 2 2 2
4.6. Квантовые алгоритмы 227

Для раскодирования информации получателю необходимо теперь измерить от-


дельно первый и второй кубиты.

preparation encoding decoding


0 H X H
out
ψ
0 + +

Например, для передачи значения «3» отправитель кодирует свою часть Ш-забита
Z-преобразованием и передает получателю. Получатель действует на Ш-забит сна-
чала CNOT оператором, затем оператором Адамара. Полученное состояние получа-
тель подвергает измерению. Пусть измерительное устройство настроено на проеци-
рование входящего кубита на состояние

|ψΠ i = |0i ,

т.е. описывается проекционным оператором

Π = |ψΠ i hψΠ | = |0i h0| .

Тогда после измерения первого кубита имеем

|ψ 0 i = Π |1i1 = |0i h0| |1i1 = 0.

Такой результат говорит, что состояние кубита и измеряющего устройства были ор-
тогональны. Мы потеряли 1 кубит (он был поглощен измерительным устройством),
однако мы получили 1 bit классической информации: оказывается кубит был в со-
стоянии |1i. Измеряя второй кубит тем же измерительным устройством получим

|ψ 0 i = Π |0i2 = |0i h0| |0i2 = |0i .

Это означает, что кубит не взаимодействует с измерительным устройством, по-


глощается детектором и дает нам 2-ой bit классической информации, что кубит был
в состоянии |0i. Из последней таблицы определяем, что значение передаваемой ин-
формации было равно «3». Очевидно, что для передачи всей последовательности
из 4 классических бит информации нам необходимо предварительно приготовить 4
Ш-забита и с каждым проделать все описанные выше операции.
Аналогичная схема может быть построена и для передачи 2 кубитов. Для этого
создается запутанное состояние
1
|ψi = √ (|0000i + |1111i)
2
228 Глава 4. Квантовая информация

preparation encoding decoding


0 H X H

0 H X H
out
ψ
0 + +

0 + +

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


последовательности ставится в соответствие суперпозиция однокубитовых операто-
ров
I = σ0 , X = σx , Y = iσy , Z = σz ,
которым отправитель действует на первые два кубита забита. Результат работы про-
токола показан в таблице.

Значение Кодирование Декодирование


0 ψ0 = (I ⊗ I ⊗ I ⊗ I)ψ0 |0000i
1 ψ1 = (I ⊗ X ⊗ I ⊗ I)ψ0 |0001i
2 ψ2 = (I ⊗ Y ⊗ I ⊗ I)ψ0 |0101i
3 ψ3 = (I ⊗ Z ⊗ I ⊗ I)ψ0 |0100i
4 ψ4 = (X ⊗ I ⊗ I ⊗ I)ψ0 |0010i
5 ψ5 = (X ⊗ X ⊗ I ⊗ I)ψ0 |0011i
6 ψ6 = (X ⊗ Y ⊗ I ⊗ I)ψ0 |0111i
7 ψ7 = (X ⊗ Z ⊗ I ⊗ I)ψ0 |0110i
8 ψ8 = (Y ⊗ I ⊗ I ⊗ I)ψ0 |1010i
9 ψ9 = (Y ⊗ X ⊗ I ⊗ I)ψ0 |1011i
10 ψ10 = (Y ⊗ Y ⊗ I ⊗ I)ψ0 |1111i
11 ψ11 = (Y ⊗ Z ⊗ I ⊗ I)ψ0 |1110i
12 ψ12 = (Z ⊗ I ⊗ I ⊗ I)ψ0 |1000i
13 ψ13 = (Z ⊗ X ⊗ I ⊗ I)ψ0 |1001i
14 ψ14 = (Z ⊗ Y ⊗ I ⊗ I)ψ0 |1101i
15 ψ15 = (Z ⊗ Z ⊗ I ⊗ I)ψ0 |1100i

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


k кубитов, получить на выходе k 2 классических бит информации.
4.6. Квантовые алгоритмы 229

4.6.3 Квантовая телепортация


Другим эффективным алгоритмом, который может реализовываться исключительно
квантовыми методами яляется алгоритм квантовой телепортации [?]. Перед процес-
сом телепортации получателю и отправителю информации передается по одной части
Шредингеровского забита
1
|ψi = √ (|00i + |11i) .
2
Отправитель создает суперпозицию передаваемого кубита

|φi = a |0i + b |1i

и Ш-забита:
1
|Ψi = |φi ⊗ |ψi = √ (a |000i + a |011i + b |100i + b |111i) .
2
Действуя на первые два свои кубита CNOT операцией, а затем оператором Адамара
на первый кубит отправитель получает состояние
1
Ψout = H1 P12 Ψin 123 = √ H1 (a |000i + a |011i + b |110i + b |101i)
2
 
1 |00i (a |0i + b |1i) + |10i (a |0i − b |1i) +
=
2 |01i (a |1i + b |0i) + |11i (a |1i − b |0i)

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


Ш-забита получателя:

Результат Состояние ЭПР-забита Преобразование


измерения получателя
|00i a |0i + b |1i Iφ
|01i a |1i + b |0i Xφ
|10i a |0i − b |1i Zφ
|11i a |1i − b |0i Yφ

Результат измерения отправитель сообщает получателю по классическому каналу.


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

ψ H

0 H +

0 + X ψ
230 Глава 4. Квантовая информация

Например, отправитель после проведения операций CNOT, H и измерения по-


лучил результат |10i, и передал его по классическому каналу. Тогда, получатель
действует согласно таблице, на свой Ш-забит преобразованием

Z |φi = Z (a |0i − b |1i) = a |1i + b |0i

и восстанавливает телепортируемый кубит.

4.7 Коррекция ошибок в квантовых каналах инфор-


мации
При передачи информации по каналам связи она может искажаться. Алгоритм кван-
товой коррекции ошибок аналогичен классическому и требует введения дополнитель-
ных кубитов для обнаружения и коррекции ошибки.
Рассмотрим тривиальный корректирующий код C, отоброжающий
|0i → |000i
.
|1i → |111i
С помощью этого кода мы можем корректировать единичную ошибку отдельного
кубита:
E = {I ⊗ I ⊗ I, X ⊗ I ⊗ I, I ⊗ X ⊗ I, I ⊗ I ⊗ X} .
Пример 4.24. По квантовому каналу информации передается кубит
1
|ψ0 i = √ (|0i + |1i) .
2
Какое квантовое состояние будет зарегистрировано на приемнике, если оператор
ошибки данного канала информации имеет вид

1 3
E = X ⊗I ⊗I + I ⊗ I ⊗ X.
2 2
Решение. Перед отправлением на исходный кубит
1
|ψ0 i = √ (|0i + |1i)
2
действует корректирующий код, поэтому на входе квантового канала информации
мы имеем
1
ψ in = √ (|000i + |111i) .
2
Действие оператора ошибки на передаваемый кубит есть
 √ 
E|ψ in i = 12 X ⊗ I ⊗ I + 23 I ⊗ I ⊗ X √12 (|000i + |111i) =

1 √3
= √
2 2
(|100i + |011i) + 2 2
(|001i + |110i)
4.7. Коррекция ошибок в квантовых каналах информации 231

Поэтому на выходе из квантового канала информации будет зарегистрировано со-


стояние
1  √ √ 
ψ out = √ |100i + |011i + 3|001i + 3|110i . N
2 2
Задача 4.12.
1. По квантовому каналу информации передается кубит |ψi = |0i. Какое кванто-
вое состояние будет зарегистрировано на приемнике, если оператор ошибки данного
канала информации имеет вид
1 1
E = √ I ⊗ I ⊗ I + √ I ⊗ X ⊗ I.
2 2

2. По квантовому каналу информации передается кубит |ψi = 21 |0i + 3|1i . Ка-


кое квантовое состояние будет зарегистрировано на приемнике, если оператор ошиб-


ки данного канала информации имеет вид

E = X ⊗ I ⊗ I.

3. По квантовому каналу информации передается кубит |ψi = α|0i + β|1i. Какое


квантовое состояние будет зарегистрировано на приемнике, если оператор ошибки
данного канала информации имеет вид

3 1
E= X ⊗ I ⊗ I + I ⊗ I ⊗ X.
2 2
4. По квантовому каналу информации передается кубит |ψi = α|0i + β|1i. Какое
квантовое состояние будет зарегистрировано на приемнике, если оператор ошибки
данного канала информации имеет вид

1 3
E = I ⊗X ⊗I + I ⊗ I ⊗ X.
2 2
Если мы приняли сигнал
ψ F = |e1 , e2 , e3 i ,
то оператор выделения ошибки есть

S|e1 , e2 , e3 i → |e1 , e1 ⊕ e2 , e1 ⊕ e3 i

и его действие представлено в таблице.

Инвертированный бит Признак ошибки Коррекция ошибки


- |000i I ⊗I ⊗I
0 |110i X ⊗I ⊗I
1 |101i I ⊗X ⊗I
2 |011i I ⊗I ⊗X
232 Глава 4. Квантовая информация

P13 P12 P12 P13


ψ0 ψ0

0
T321

Для обнаружения и исправления единичной ошибки удобнее пользоваться следу-


ющим оператором

|ψ0 i ⊗ |z2 z3 i = T231 S ψ F |e1 , e2 , e3 i = T231 P12 P13 ψ F |e1 , e2 , e3 i .

Пример 4.25. Определить, какой кубит был передан по зашумленному кван-


товому каналу информации, если на выходе он имеет состояние

out 1  √ √ 
ψ = √ |100i + |011i + 3|001i + 3|110i .
2 2

Решение. Действуя на выходное состояние оператором выделения ошибки, по-


лучим

1  √ √ 
|ψ0 i ⊗ |z1 z2 i = T231 P12 P13 √ |100i + |011i + 3 |001i + 3 |110i
2 2
1  √ √ 
= T231 P12 √ |101i + |011i + 3 |001i + 3 |111i
2 2
1  √ √ 
= T231 √ |111i + |011i + 3 |001i + 3 |101i
2 2
1  √ √ 
= √ |011i + |111i + 3 |001i + 3 |101i
2 2
1 1 √ √ 
= √ (|011i + |111i) + √ 3 |001i + 3 |101i
2 2 2 2

1 3
= √ (|0i + |1i) ⊗ |11i + √ (|0i + |1i) ⊗ |01i
2 2 2 2
  √  
1 1 3 1
= √ (|0i + |1i) ⊗ |11i + √ (|0i + |1i) ⊗ |01i
2 2 2 2
  √ !
1 1 3
= √ (|0i + |1i) ⊗ |11i + |01i = |ψ0 i ⊗ |z1 z2 i
2 2 2
4.8. Клонирование квантовой информации 233

Измеряя два последние бита этого состояния, мы получим |11i (с вероятностью


1/4) или |01i (с вероятностью 3/4). В любом случае мы востанавливаем первый кубит
в исходное состояние
1
|ψ0 i = √ (|0i + |1i) . N
2

Задача 4. 13. Определить, какой кубит был передан по зашумленному кван-


товому каналу информации, если на выходе он имеет состояние
1. |ψ out i = √12 (|111i + |101i).

2. |ψ out i = 12 |100i + 3|011i .


3. |ψ out i = 21 3(α|100i + β|011i) + α|0010i + β|110i .

√ √
4. |ψ out i = 21 α|010i + 3α|001i + 3β|110i + β|101i .


4.8 Клонирование квантовой информации


В 1982 г. Вуттерсом и Зуреком [15] была сформулирована следующая

Теорема. Точное копирование произвольного кубита запрещено.


Доказательство. Действительно, для этого необходимо найти такое унитарное
преобразование, которое создает из одного кубита |ψi два таких же |ψi|ψi. Т.е. мы
должны найти оператор U, действующий на два кубита (один из которых нулевой)
так, что
U|ψi|0i = |ψi|ψi.
Возьмем ортогональный для |ψi кубит |ϕi

U|ϕi|0i = |ϕi|ϕi.

Из этих кубитов составим третий


1
|φi = √ (|ψi + |ϕi) ,
2
для которого
1 1
U|φi|0i = U √ (|ψi|0i + |ϕi|0i) = √ (|ψi|ψi + |ϕi|ϕi) .
2 2
С другой стороны
1 1
U|φi|0i = |φi|φi = (|ψi + |ϕi) (|ψi + |ϕi) = (|ψi|ψi + |ψi|ϕi + |ψi|ϕi + |ϕi|ϕi) .
2 2
Поскольку два последних выражения не равны, мы делаем вывод что такого преоб-
разования не существует. 
234 Глава 4. Квантовая информация

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


запутывающего оператора CNOT позволяет построить квантовую клонирующую
машину, которая создает из одного кубита два одинаковых.
Простейшая квантовая клонирующая машина может быть построена из един-
ственного оператора CNOT. Подавая на один вход машины произвольное квантовое
состояние |ψ0 i

|ψ0 i = α|0i + β|1i,


P12
а на другой – кубит в состоянии |0i полу- ψ
чим 0
Ψ
out

Ψin = |ψ0 i|0i = α|00i + β|10i. 0

Работа квантовой клонрующей машины


сводится к действию оператором CNOT на входные кубиты

Ψout = P12 Ψin = α|00i + β|11i,

и на выходе мы получаем запутанное состояние (забит). Матрица плотности выход-


ного забита дается выражением

ρout = Ψout Ψout .

Редуцированные матрицы плотности выходных кубитов имеют вид

ρout 2 2
1,2 = α |0ih0| + β |1ih1|.

На выходе квантовой клонирующей машины получено два одинаковых состояния.


Необходимо определить, насколько отличаются выходные состояния от состояния
входного кубита |ψ0 i. Сравнивая матрицы плотности исходного

ρ0 = |ψ0 ihψ0 | = α2 |0ih0| + αβ|0ih1| + αβ|1ih0| + β|1ih1|

и выходного
ρout = α2 |0ih0| + β 2 |1ih1|
кубитов, нетрудно видеть, что оператор плотности выходного состояния выражается
через оператор плотности входа следующим образом:
1 in 1 in
ρout
1,2 = ρ0 + ρ3 .
2 2
Здесь
ρ3 = |ψ3 ihψ3 | = α2 |0ih0| − αβ|0ih1| − αβ|1ih0| + β|1ih1|,
|ψ3 i = σ3 |ψ0 i = α|0i − β|1i.
4.8. Клонирование квантовой информации 235

Глядя на это выражение можно сделать предположение, что выходное состояние на


50% совпадает с входным и имеет 50% примеси. Однако более детальное рассмотрение
приводит к другому выводу. Действительно, скалярное произведение

hψ0 | ψ3 i = α2 − β 2 6= 0,
т.е. состояния не ортогональны, а это означает, что волновые функции |ψ0 i и |ψ3 i пе-
рекрываются и часть информации относительно |ψ0 i содержится в матрице плотно-
сти ρin
3 . Поэтому для вычисления степени перекрытия волновых состояний вводится
понятие точности копирования

F = hψ0 |ρout 4 4
1,2 |ψ0 i = α + β .

Из последнего выражения видно, что точность клонирования зависит от исходно-


го состояния оригинала, а значит полученная квантовая клонирующая машина не
является универсальной. Она не сможет клонировать любые, наперед неизвестные,
состояния с одинаковой точностью. Усредняя точность F по всем состояниям, полу-
чим: Z 2π Z 2π
− 1 1 3
F = F dθ = (cos4 θ + sin4 θ)dθ = .
2π 0 2π 0 4

Пример 4.26. На вход квантовой клонирующей машины подается два кубита

|ψ0 i = α|0i + β|1i


π  √
1 3
|ψ1 i = R |0i = |0i + |1i).
6 2 2
Найти редуцированные матрицы плотности выходных кубитов и определить сред-
нюю точность клонирования.
Решение. На вход квантовой клонирующей машины подается состояние
√ √
in 1 3 1 3
Ψ = |ψ0 i|ψ1 i = α |00i + α |01i + β |10i + β |11i.
2 2 2 2
Действуя на входное состояние |Ψin i оператором CNOT, получим
√ √
1 3 1 3
Ψout = P12 Ψin = α |00i + α |01i + β |11i + β |10i
2 2 2 2
Редуцированные матрицы плотности выходных кубитов имеют вид

3
ρout 2
1 = α |0ih0| + 2 αβ (|0ih1| + |1ih0|) + β 2 |1ih1|
1

3 1
.
ρout 2 2 2 2 2 2
2 = 4 (α + 3β )|0ih0| + (α + β ) 4 (|0ih1| + |1ih0|) + 4 (3α + β )|1ih1|

Найдем точность клонирования



F1 = hψ0 |ρout 4 4
1 |ψ0 i = α + β + 3αβ √
F2 = hψ0 |ρ2 |ψ0 i = 4 α + 4 β + 32 α2 β 2 +
out 1 4 1 4
2
3
αβ
236 Глава 4. Квантовая информация

Усредняя точность F по всем состояниям, получим:


− R 2π R 2π  1 √ 
1 1
F1 = 2π 0
F1 dθ = 2π 0 4
cos4 θ + 14 sin4 θ + 2
3
cos θ · sin θ dθ = 3
4
− R 2π R 2π  1 √ 
F2 = 1
2π 0
F2 dθ = 1
2π 0 4
cos4 θ + 14 sin4 θ + 32 cos2 θ · sin2 θ + 2
3
cos θ · sin θ dθ = 3
8

Задача 4.14. На вход квантовой клонирующей машины подается два кубита


|ψ0 i и |ψ1 i Найти редуцированные матрицы плотности выходных кубитов и опреде-
лить среднюю точность клонирования.
1. π
|ψ0 i = α|0i + β|1i, |ψ1 i = R |0i;
4
2. π
|ψ0 i = α|0i + β|1i, |ψ1 i = R |0i;
3
3. π
|ψ0 i = α|0i + β|1i, |ψ1 i = R |0i;
2
4.
|ψ0 i = α|0i + β|1i, |ψ1 i = cos φ|0i + sin φ|1i.
[1, 14]
Литература

[1] Берлекэмп Э. Алгебраическая теория кодирования. М.:Мир, 1971 -480 c.

[2] Блум K. Теория матрицы плотности и ее приложения. М.:Мир. -248 c.

[3] Вентцель Е.С., Овчаров Л.А. Теория вероятностей. М.:Наука, 1969. - 368 с.

[4] Влэдуц С.Г., Ногин Д.Ю., Цфасман М.А. Алгеброгеометрические коды. Основные
понятия. М.:МЦНМО, 2003. - 504 с.

[5] Галлагер Р. Теория информации и надежная связь. М.:Советское радио, 1974.


-720 с.

[6] Гоппа В.Д. Введение в алгебраическую теорию информации. М.:Физматлит, 1995.


-112 с.

[7] Думачев В.Н. Модели и алгоритмы квантовой информации. Воронеж: ВИ МВД


России, 2009. - 232 с.

[8] Кострикин А.И. Основные структуры алгебры. М.:Наука, 2000. - 272 с.

[9] Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алго-


ритмы применение. М.:Техносфера, 2005. - 320 с.

[10] Самсонов Б.Б, Плохов Е.М., Филоненков А.И. Компьютерная информатика.


РнД:Феникс, 2002. - 512 с.

[11] Свешников А.А. Сборник задач по теории вероятностей, математической стати-


стике и теории случайных функций. М.:Наука, 1970. - 448 с.

[12] Ash Robert B. Information theory. NY: Interscience, 1965. - 348 p.

[13] Blahut Richard E. Algebraic Codes for Data Transmission. NY:Cambridge


[Link], 2003. - 498 p.

[14] Massey James L. Shift-Register Synthesis and SCH Decoding.


IEEE Trans. Information theory. 1969, V.15, N1, P.122-127. Interscience, 1965. - 348
p.

237
238 Литература

[15] Wootters W.K. and Zurek W.H. A Single Quantum Cannot be Cloned, Nature,
1982, V.299, pp. 802-803.
.

Владислав Николаевич Думачев

ТЕОРИЯ ИНФОРМАЦИИ И КОДИРОВАНИЯ

Подписано в печать 26.12.2011 г. Формат 60×84 1/16.


Бумага офсетная. Гарнитура Таймс новая. Печать офсетная.
Усл.-печ.л. 11,62.
Тираж 100 экз. Заказ № 330

Издательство Воронежского института МВД России


394065, Воронеж, просп. Патриотов, 53

Типография Воронежского института МВД России


394065, Воронеж, просп. Патриотов, 53.

Вам также может понравиться