- Главная
- Разное
- Лекции: 60 часов. Лектор: В.П. Ипатов Email: [email protected] Упражнения и демонстрации: 20часов.
Содержание
- 2. Основные положения лекций
- 3. Лекция 1
- 4. Источник Обобщенные модели систем передачи и хранения информации Передатчик Приемник Получатель Среда распространения Источник Получатель Память
- 5. Типы кодирования «Сырые» данные Кодирование источника Канальное кодирование Шифрование Кодирование для линии Помехоустойчивое кодирование
- 6. Обобщенная модель системы передачи информации Декодер источника Дешифратор Декодер канала Демодулятор К получателю Передатчик Приемник
- 7. Исторические вехи в теории и технике кодирования 1837: Электрический телеграф и код Морзе (S. Morse). 1875:
- 8. Некоторые вводные задачи
- 9. Лекция 2
- 10. 1. Источники сообщений, количество информации, энтропия 1.1. Идея определения количества информации С теоретической точки зрения любая
- 11. Рассматривая непрерывные источники, мы ограничимся только теми, несчетный ансамбль которых может быть ассоциирован с непрерывной случайной
- 12. Единственной функцией, удовлетворяющей этим трем аксиомам оказывается логарифм вероятности сообщения: 1.4. Энтропия дискретного источника Энтропия дискретного
- 13. 2. Энтропия ограничена сверху соотношением 3. Энтропия ансамбля пар сообщений, генерируемых двумя независимыми источниками аддитивна: Энтропия
- 14. Энтропия двоичного источника в зависимости от p
- 15. Лекция 3
- 16. Источник Кодер источника Сообщения (буквы, блоки и т.п.) Кодовые слова 2. Кодирование источника 2.1. Основные определения
- 17. 2.2. Префиксные коды. Неравенство Крафта. Средняя длина кодового слова Идея экономии числа символов при неравномерном кодировании
- 18. x1 ⭢ 0 x2 ⭢ 10 x3 ⭢ 110 x4 ⭢ 111 Так, если последовательность на
- 19. Теорема 2.2.2. Средняя длина лучших префиксных кодов лежит в границах 2.3. Код Шеннона-Фано На первом шаге
- 20. Пример 2.3.1. Закодируем дискретный источник M=8 сообщений, имеющих вероятности, перечисленные в таблице. В данном случае logM
- 21. Лекция 4
- 22. 2.4. Код Хаффмена Этот код оптимален в том смысле, что ни один префиксный код не может
- 23. Пример 2.4.1. Закодируем по Хаффмену ансамбль из Примера 2.3.1: X p(x) x1 0.40 x2 0.20 x3
- 24. На практике источник генерирует сообщения (часто удобно называть их буквами) последовательно одно за другим. Возьмем блок
- 25. 2.6. Равномерное кодирование источника Неравномерное кодирование не всегда удобно. Нередки сценарии (например, цифровое вещание или мобильная
- 26. 2.7. Словарные коды. Алгоритм Лемпеля-Зива Рассмотренные ранее методы кодирования источника опираются на априорное знание вероятностей всех
- 27. своим адресом в словаре (2), и обновляющим символом 0. Все последующие шаги полностью аналогичны и понятны
- 28. Наряду с обновляющим символом 0 это дает новый вход словаря для фразы 10, помещаемой в третьей
- 29. Лекция 5
- 30. 2.8. Резюме. Примеры приложений Из вышесказанного следует, что генерируемые источником данные можно сжать (устранить их избыточность),
- 31. В настоящее время широко применяются как равномерное, так и неравномерное кодирование источника. Коды Хаффмена, например, входят
- 32. Многообразны и поучительны примеры применения методов адаптивного сжатия данных в кодировании речи, цифровом вещании, мобильных телефонах
- 33. В стандартах мобильной связи GSM, IS-95 и 3G используются вокодеры типов VSELP (vector-sum excited linear prediction
- 34. 3. Взаимная информация. Пропускная способность канала. Теоремы кодирования для канала 3.1. Математическое описание канала связи. Дискретный
- 35. Все каналы можно классифицировать на дискретные и непрерывные как по времени, так и по состоянию. Для
- 36. Пример 3.1.1. Двоичный симметричный канал (ДСК): p – вероятность ошибки на символ. Тем самым, ДКБП полностью
- 37. Лекция 6
- 38. 3.2. Взаимная информация, остаточная энтропия, пропускная способность канала Для канала, подверженного влиянию случайных помех, невозможно по
- 39. или, полагая p(y)p(x|y)=p(x,y), Так как до наблюдения неопределенность относительно входного ансамбля равнялась энтропии H(X), снижение неопределенности
- 40. Как видно, I(X;Y) показывает число битов информации о входе канала извлекаемое в среднем из выходного наблюдения,
- 41. Легко доказать симметрию взаимной и средней взаимной информации: I(x;y)=I(y;x); I(X;Y) =I(Y;X). Максимальное количество информации, которое можно
- 42. в каковом случае имеет место ошибка декодирования (ошибочное решение). Вероятность ошибки декодирования Pe и вероятность правильного
- 43. Лекция 7
- 44. 3.4. Теоремы кодирования для канала Пусть одно из M равновероятных сообщений, закодированное некоторым кодовым словом длины
- 45. этому, если скорость R меньше емкости канала C, в принципе всегда можно передавать данные с любой
- 46. В отличие от обратной, доказательство прямой теоремы для общей модели канала без памяти достаточно трудоемко. Оно
- 47. Прямая теорема Шеннона является типичной математической теоремой существования, не давая ни малейшего намека на то, как
- 48. Лекция 8
- 49. 4. Расчет пропускной способности некоторых каналов 4.1. Дискретный канал без памяти Как следует из определения, пропускная
- 50. Для модели произвольного ДКБП подобная оптимизационная задача не имеет замкнутого аналитического решения. В то же время
- 51. Поскольку при любом x на входе, на выходе канала возможны только два состояния с вероятностями p
- 52. Лекция 9
- 53. 4.3. Непрерывные источники. Взаимная информация и относительная (дифференциальная) энтропия Рассмотрим непрерывный ансамбль, эквивалентный континууму, т. е.
- 54. Дифференциальная (относительная) энтропия непрерывной величины X определяется равенством Таким образом, средняя взаимная информация между X и
- 55. 4.4. Пропускная способность непрерывного гауссовского канала Рассмотрим полностью непрерывный (по времени и состоянию) канал. На его
- 56. 0 f W N0 Спектральная плотность мощности шума τ N0W 0 Автокорреляционная функция шума Как теперь
- 57. придем к знаменитой формуле Шеннона для пропускной способности гауссовского канала: Этот результат показывает, что для увеличения
- 58. Вспомнив, что Ct - максимальная теоретически достижимая скорость Rt безошибочной передачи, введем число бит/с, передаваемых в
- 59. Лекция 10
- 60. 5. Введение в блоковые коды 5.1. Общая идея канального кодирования. Классификация кодов Как уже отмечалось, канальное
- 61. было передано, если решение выносится в пользу «ближайшего» (отличающегося в минимальном числе позиций от принятого пятисимвольного
- 62. В последующем тексте используются слегка измененные обозначения: U={u1, u2, … , uM} – канальный код, ui
- 63. Евклидово расстояние играет фундаментальную роль в теории и технике передачи сообщений. Чем дальше сигналы друг от
- 64. канала связи. На выходе канала наблюдается некоторое колебание y(t) (см.рисунок), являющееся переданным сигналом, искаженным канальным шумом.
- 65. кодового слова ui в наблюдаемый вектор y) падает с хэмминговым расстоянием di= dH (y,ui) между ui
- 66. Теорема 5.4.1. Код исправляет вплоть до t ошибок тогда и только тогда, когда его расстояние удовлетворяет
- 67. Длина кода n вместе с объемом M и расстоянием d составляют тройку ключевых параметров блокового. Вместо
- 68. Лекция 11
- 69. 5.5. Важнейшие границы теории кодирования Очевидно, особый интерес представляют коды с максимальным расстоянием при заданных длине
- 70. Близкое по смыслу ограничение устанавливается границей Плоткина. Теорема 5.5.2. (Граница Плоткина). Любой двоичный блоковый код подчиняется
- 71. Для больших длин n биномиальные коэффициенты в приведенных неравенствах можно аппроксимировать по Стирлингу, придя к асимптотическим
- 72. упомянутыми является зоной неопределенности, для которой однозначный ответ о существовании кода нельзя получить с помощью рассмотренных
- 73. во сколько раз можно уменьшить энергию сигнала за счет введения канального кодирования. Разумеется, при таком сопоставлении
- 74. квантованием непрерывного выхода демодулятора, после чего следуют те же операции, что и при мягком декодировании. Подобные
- 75. Лекция 12
- 76. 6. Линейные блоковые коды 6.1. Введение в конечные поля Конечным полям принадлежит основополагающая роль в теории
- 77. 3. В F присутствуют два нейтральных элемента – нуль (обозначаемый символом «0») и единица (обозначаемая как
- 78. Простейшие среди полей – числовые (рациональных или действительных чисел), содержащие бесконечно много элементов. Теория кодирования, однако,
- 79. 6.2. Векторные пространства над конечными полями Понятие векторного пространства, традиционно вводимое для случая скаляров в виде
- 80. 4. Умножение вектора на скаляр ассоциативно: 5. Умножение любого вектора на единичный скаляр (обязательно присутствующий в
- 81. Пусть в пространстве S выбраны m ненулевых векторов g1, g2,.., gm. Они называются линейно зависимыми, если
- 82. Лекция 13
- 83. 6.3. Линейные коды и их порождающие матрицы Рассмотрим множество S всех 2n n–компонентных векторов x=(x1, x2,
- 84. Вводя k–компонентный вектор сообщения (данных) a=(a1, a2, … , ak), любое слово u линейного кода U
- 85. 3. Теорема 6.3.1. Минимальное расстояние линейного кода равно наименьшему из весов ненулевых слов кода: Последний результат
- 86. где Ik – k×k единичная матрица, а P – матрица размерности k×(n–k). Порождающая матрица этого вида
- 87. Теорема 6.4.1. Линейный код U имеет минимальное расстояние d, если и только если любые d–1 столбцов
- 88. Лекция 14
- 89. Коды, фигурирующие в заголовке, замечательны как в познавательном, так и в практическом аспекте. Выпишем все различные
- 90. Так как все столбцы матрицы H кода Хэмминга различны, любая их пара линейно независима, в то
- 91. исправляющий t=(d–1)/2 ошибок, можно трансформировать в расширенный (n+1, k) код, исправляющий ошибки прежней кратности t=(d–1)/2=(d´/2)–1 и,
- 92. уже встречавшегося в параграфе 5.1. Разумеется, этот код – подобно исходному коду Хэмминга – исправляет любую
- 93. Отметим, что коды U и U´ называются дуальными если порождающая матрица одного служит проверочной для другой.
- 94. Минимальное расстояние и исправляющая способность этого кода – те же, что и для ортогонального той же
- 95. Лекция 15
- 96. 6.8. Синдромное декодирование линейных кодов Одним из оснований особой популярности линейных кодов является возможность преобразования для
- 97. Представим вектор наблюдения y как сумму переданного кодового вектора u и вектора ошибки e: В случае
- 98. экономия измерялась бы цифрами порядка 221 раз по обоим ресурсным показателям. В действительности же для декодирования
- 99. Лекция 16
- 100. 7. Циклические коды 7.1. Циклические коды. Кодовые полиномы. Полиномиальная арифметика Линейный блоковый код U длины называется
- 101. Рассмотрим основные правила арифметики формальных полиномов с коэффициентами из GF(q) (полиномов над GF(q)). Сложение двух полиномов
- 102. полиномов можно определить равенством, полностью заимствованным из «школьной» алгебры полиномов с действительными коэффициентами: a(z)=amzm+am-1zm–1 +…+a0, b(z)=blzl+bl-1zl–1+…+b0
- 103. где неотрицательное целое r , меньшее d , называется остатком (от деления a на d), q
- 104. делитель частное делимое остаток В теории циклических кодов важнейшая роль принадлежит остатку. Часто используемая символика означает,
- 105. Лекция 17
- 106. 7.2. Порождающий и проверочный полиномы циклического кода Возьмем кодовое слово u=(u0, u1, … , un–1) некоторого
- 107. Теорема 7.2.2. Порождающий полином циклического кода длины n является делителем бинома zn–1. Пример 7.2.1. Порождающими полиномами
- 108. только эти сомножители либо их произведения могут служить порождающими полиномами (7, k) кода, так что возможными
- 109. Сообщению (1110) отвечает информационный полином a(z)=z2+z+1. При этом кодовый полином, получаемый прямым перемножением a(z) и g(z):
- 110. после деления на g(z) дает остаток r(z)=z. В итоге u(z)= z5+z4+z3+z, и соответствующий кодовый вектор U=(0101110)
- 111. Лекция 18
- 112. 7.4. Порождающая и проверочная матрица циклического кода Как и любой линейный, циклический код может быть задан
- 113. Если систематичность кода не является непременным условием, порождающая матрица легко строится непосредственно по порождающему полиному: строки
- 114. Обратимся теперь к структуре систематического циклического кодера. Согласно сказанному в параграфе 7.3, ключевой операцией в построении
- 115. имеет степень не более n–1 и после сложения с ak–2zn–2 используется на второй итерации как новое
- 116. + + × + + g0 g1 g2 gr–1 1 2 r S1 S2 B 1
- 117. оказывается очередной остаток, с которым производятся те же действия на следующей итерации. После k итераций k-й
- 118. 7.6. Синдромное декодирование циклических кодов С учетом того, что все кодовые полиномы циклического кода (и только
- 119. где, в свою очередь, e(z)=en–1zn–1+en–2zn–2+…+e0 – полином ошибки. Назовем синдромным полиномом или просто синдромом s(z) остаток
- 120. + + g0 g1 1 2 in yn–1, yn–2, …, y0 + + g2 gr–1 r
- 121. + + S1 S2 out in y6, y5, …, y0 1 2 3 В цикличности заложен
- 122. Лекция 19
- 123. 8. Коды БЧХ и Рида-Соломона 8.1. Расширенные конечные поля Как уже известно, конечные поля существуют только
- 124. Пример 8.1.1. Обратимся к полиному f(x)=x3+x+1. Поскольку он неприводим и имеет степень deg(f(x))=3, его можно использовать
- 125. Отметим, что в числе полиномов степени не выше m–1 присутствуют и полиномы нулевой степени, т.е. элементы
- 126. и для любого ненулевого α Таким образом, в конечных полях действуют те же правила обращения с
- 127. Теорема 8.2.1. Мультипликативный порядок любого ненулевого элемента поля GF(q) делит q–1, т.е. число ненулевых элементов GF(q).
- 128. Пример 8.2.4. В поле GF(8) (см. пример 8.2.2) все ненулевые элементы поля за исключением единицы примитивны,
- 129. Отсюда ςm+1= ς·ςm= ς(–fm-1ςm–1–fm–2ςm–2–…–f0)=–fm–1ςm–fm–2ςm–1–…–f0ς. В правой части этого равенства вновь подставим ςm= – fm–1ςm–1– fm-2ςm–2–…–f0, придя
- 130. 8.3. Некоторые свойства расширенных конечных полей Установим в данном параграфе некоторые вспомогательные результаты, которые в дальнейшем
- 131. называются сопряженными с элементом α. Их роль в конечных полях, как вскоре выяснится, весьма близка к
- 132. 8.4. Построение полиномов с заданными корнями Одно из фундаментальных положений классической алгебры утверждает, что любой полином
- 133. g(z) имеет корень α (лежащий) в расширении GF(2m). Пример 8.4.1. Рассмотрим полином g(z)=z3+z2+1. Легко убедиться, что
- 134. где все q–1 ненулевых элементов GF(q) выражены как степени примитивного элемента ς. Теорема 8.4.3. Пусть GF(q)
- 135. Лекция 20
- 136. 8.5. Двоичные БЧХ-коды Накопленные к данному моменту знания открывают путь к ознакомлению с одним из наиболее
- 137. и не может быть вырожденной, если все элементы первой строки различны. Но последнее имеет место всегда,
- 138. корнями порождающего полинома. Любой из них, однако, должен войти в число корней порождающего полинома только вместе
- 139. Гарантией того, что построенный таким образом полином можно использовать как порождающий для циклического кода, служит делимость
- 140. Разумеется, в наши дни системный дизайнер свободен от необходимости поиска порождающих полиномов БЧХ-кодов, поскольку подобная работа
- 141. Пример 8.5.3. Найдем точное число информационных бит БЧХ-кода длины n=31, исправляющего до 5 ошибок. Корнями его
- 142. Лекция 21
- 143. 8.6. Коды Рида-Соломона Если при построении порождающего полинома g(z) согласно теореме БЧХ игнорировать сопряженные циклы элементов
- 144. где свобода выбора числа информационных символов k ограничена лишь одним: с увеличением k на единицу кодовое
- 145. Коды БЧХ и РС находят широкое применение в современных информационных системах. Приведем лишь несколько поучительных примеров.
- 146. укороченных (32,28) и (28,24) кодов РС. Стандарт цифрового телевизионного вещания DVB-T (Digital Video Broadcasting-Terrestrial) включает (204,188)
- 147. 9. Введение в сверточные коды 9.1. Основные определения Наряду с блоковыми кодами, рассмотренными в главах 5–8,
- 148. Сверточное (вообще, решетчатое) кодирование предполагает несколько иное отображения информационных битов в кодовые символы. Поток битов источника
- 149. Стандартная сема сверточного кодера базируется на регистре сдвига, содержащем m–1 двоичных ячеек (элементов задержки), единственная функция
- 150. Если подать на вход этого устройства k информационных битов, на выходе появится последовательность длиной не kn,
- 151. длиной кодового ограничения m=3. Скорость этого кода R=1/2, так как на каждый информационный бит приходится два
- 152. Нетрудно убедиться в линейности сверточных кодов. Более того, само их название связано с тем, что сверточный
- 153. Лекция 22
- 154. 9.2. Диаграмма состояний и решетчатая диаграмма сверточного кода. Свободное расстояние Любой сверточный кодер можно трактовать как
- 155. ветви, соединяющие кружки (узлы) с обозначенными внутри последних состояниями. Сплошные (синие) ветви соответствуют переходам, вызванным нулевым
- 156. такта кодер перейдет в состояние либо 00, либо 10. Если он окажется в состоянии 00, то
- 157. тактов для обнуления кодера, в течение которых генерирование кодовых символов будет продолжаться. Построенный таким образом граф
- 158. Пометим каждую ветвь диаграммы состояний формальной переменной D, в степени, равной весу ветви. Так, в примере
- 159. Так как движение по ветвям диаграммы есть рекуррентный, пошаговый процесс, вес пути на данном шаге можно
- 160. показывающей, что рассматриваемый код имеет свободное расстояние df=5: из нулевого состояния выходит единственный путь веса пять,
- 161. откуда видно, что в рассматриваемом коде присутствуют один путь длины 3 и веса 5, кодирующий блок
- 162. Лекция 23
- 163. 9.4. Алгоритм декодирования Витерби Рекурсивная природа сверточного кодирования лежит в основе также рекурсивного и ресурсно-экономного алгоритма
- 164. 1. Вычисляются хэмминговы расстояния от принятой n-символьной группы до каждой из ветвей решетчатой диаграммы. Так как
- 165. 00 10 01 11 00 11 Шаг 1 y= 10 00 10 01 11 1 1
- 166. 00 10 01 11 2 2 1 3 00 10 01 11 00 01 00 01
- 167. кодового слова, ближайшего к наблюдению, а значит, путь, который заведомо останется более удаленным от y, чем
- 168. Шаг 5 y= 10 01 00 00 00 00 10 01 11 00 10 01 11
- 169. Шаг 6 y= 10 01 00 00 00 00 00 10 01 11 00 10 01
- 170. Шаг 7 y= 10 01 00 00 00 00 00 00 10 01 11 00 10
- 171. Шаг 8 y= 10 01 00 00 00 00 00 00 00 10 01 11 00
- 172. Шаг 9 y= 10 01 00 00 00 00 00 00 00 00 10 01 11
- 173. Шаг 10 y= 10 01 00 00 00 00 00 00 00 00 00 10 01
- 174. Шаг 11 y= 10 01 00 00 00 00 00 00 00 00 00 00 10
- 175. Шаг 12 y= 10 01 00 00 00 00 00 00 00 00 00 00 00
- 176. Шаг 14 00 11 Шаг 13 2 5 4 5 00 10 01 11 y= 00
- 177. Во-первых, ни один из путей, для которых ранее приходилось разрешать неоднозначность, не выжил, а значит, какие-либо
- 178. На финальном, 14-м шаге осуществляется выбор между двумя путями, сходящимися в состоянии 00, что завершает декодирование:
- 179. Лекция 24
- 180. 9.5. Мягкое декодирование сверточных кодов Наилучшая (максимально правдоподобная) стратегия принятия решений на выходе гауссовского канала состоит
- 181. того из двух путей, который приходит в узел, накопив бóльшее евклидово расстояние. Отметим, что среди 2m
- 182. в каждом блоке, длина которого после выкалывания g символов составит ln–g. В итоге скорость выколотого кода
- 183. Подбором l и g при заданном n можно варьировать скорость в широком диапазоне, добиваясь ее желаемого
- 184. при построении турбо кода систематичность критически важна, компонентный кодер приходится модифицировать, применяя рекурсивный фильтр с бесконечной
- 185. + + 1 2 m–1 1 2 n S выход вход ... ... + + +
- 186. битов, полученные после декодирования первого компонентного кода служат априорными вероятностями при декодировании второго, апостериорные вероятности после
- 187. Использование турбо кодов наряду со сверточными характерно для 3G стандартов UMTS, cdma2000, etc., а также для
- 188. Лекция 25
- 189. До этого момента (кроме краткого экскурса в двоичное представление кодов РСДо этого момента (кроме краткого экскурса
- 190. эксплуатируя особенности пакетной конфигурации. Краткое обсуждение этого вопроса составляет предмет двух следующих параграфов. 10.2. Коды, исправляющие
- 191. длина nb=m(q–1)=m(2m–1) (в числе двоичных символов) и число бит данных kb=mk возрастают в m раз по
- 192. любого пакета двоичных ошибок длины b=m(t–1)+1=m[(nb–kb)/2m–1]+1 и менее. Когда число проверочных символов РС кода достаточно велико
- 193. равномерно распределятся между B кодовыми словами, и если на каждое слово придется не более t ошибок,
- 194. Технологически перемежение легко выполнить как построчную запись потока кодовых символов в матричную память, имеющую B строк
- 195. Лекция 26
- 196. 11. Элементы криптографии 11.1. Основные определения Термин криптография происходит от греческого kryptos (скрытый) и относится к
- 197. z. Для облегчения понимания задачи полезно представить все множество возможных шифров как некий гигантский справочник, в
- 198. Как можно видеть, основная идея любой криптосистемы – доступность ключа только отправителю и получателю. Как, однако,
- 199. Другими словами, шифрование должно обеспечивать статистическую независимость открытых текстов и криптограмм. При выполнении этого условия криптосистема
- 200. статистически независим с входным Ux, означая соблюдение достаточных условий совершенной стойкости. В действительности, однако, абсолютная случайность
- 201. проблемы в управлении ключами. По этой причине в практических криптосистемах повсеместно применяется дробление потока данных на
- 202. помощью простейшего шифра подстановки, т.е. заменяет каждую букву (восьмибитовый блок ASCII кода) некоторой другой, например, A→U,
- 203. Предшествующее шифрованию устранение избыточности, как следует из сказанного, потенциально повышает стойкость криптосистемы и потому широко используется
- 204. Лекция 27
- 205. Ранее неоднократно отмечалось, что управление ключами является серьезнейшей проблемой в криптографии с секретным ключом. Это явилось
- 206. ключ определяет некоторую одностороннюю функцию Fe(x), которая используется для шифрования открытого текста x. Тем самым, каждому
- 207. где dA - секретный ключ Алисы (известный только ей!). KAB и есть номер того шифра в
- 208. При типичном для практики гигантском p (сотни и более десятичных цифр), подобная задача, решаемая методом проб
- 209. Функция Эйлера (тотиент-функция) ϕ(n) в теории чисел есть число положительных целых, меньших n и взаимно простых
- 210. По получении криптограммы y Боб выполняет еще одно возведение в степень, определяемую его секретным ключом dB,
- 212. Скачать презентацию
Слайд 2Основные положения лекций
Основные положения лекций
Слайд 3Лекция 1
Лекция 1
Слайд 4Источник
Обобщенные модели систем передачи и хранения информации
Передатчик
Приемник
Получатель
Среда распространения
Источник
Получатель
Память
Устройство записи
Устройство чтения
Источник
Обобщенные модели систем передачи и хранения информации
Передатчик
Приемник
Получатель
Среда распространения
Источник
Получатель
Память
Устройство записи
Устройство чтения
Слайд 5Типы кодирования
«Сырые» данные
Кодирование источника
Канальное кодирование
Шифрование
Кодирование для линии
Помехоустойчивое кодирование
Типы кодирования
«Сырые» данные
Кодирование источника
Канальное кодирование
Шифрование
Кодирование для линии
Помехоустойчивое кодирование
Слайд 6Обобщенная модель системы передачи информации
Декодер источника
Дешифратор
Декодер канала
Демодулятор
К получателю
Передатчик
Приемник
Обобщенная модель системы передачи информации
Декодер источника
Дешифратор
Декодер канала
Демодулятор
К получателю
Передатчик
Приемник
Слайд 7Исторические вехи в теории и технике кодирования
1837: Электрический телеграф и код Морзе
Исторические вехи в теории и технике кодирования
1837: Электрический телеграф и код Морзе
1875: Буквопечатающий телеграф и код Бодо (E. Baudot).
1924, 1928: Работы Найквиста (H. Nyquist) и Хартли (R. Hartley) по исследованию каналов связи и скорости передачи информации.
1947-48: Фундаментальные работы К. Шеннона (C. Shannon) и В.А. Котельникова, ознаменовавшие создание теории информации.
1949-50: Первые помехоустойчивые коды: Голей, (M. Golay), Хэмминг (R. Hamming).
1952: Алгоритм Хаффмена (D. Huffman) кодирования источника.
1959-60: Коды БЧХ (R. Bose, D. Ray-Chaudhuri, A. Hochquenghem) и Рида-Соломона (I. Reed, G. Solomon).
1967: Алгоритм Витерби (A. Viterbi) декодирования сверточных кодов.
1976-78: Криптография с открытым ключом (W. Diffie, M. Hellman, R. Rivest, A. Shamir, A. Adleman and others).
1977-78: Словарные алгоритмы компрессии данных (A. Lempel, J. Ziv).
1979-1982: Модуляция на основе решетчатых кодов (G. Ungerboek).
1993: Турбо-коды (C. Berrou, A. Glavieux, P. Titimajshima).
Слайд 8Некоторые вводные задачи
Некоторые вводные задачи
Слайд 9Лекция 2
Лекция 2
Слайд 101. Источники сообщений, количество информации, энтропия
1.1. Идея определения количества информации
С теоретической точки
1. Источники сообщений, количество информации, энтропия
1.1. Идея определения количества информации
С теоретической точки
1.2. Математическая модель источника информации. Дискретные и непрерывные источники
Дискретным называется источник, множество X возможных сообщений которого конечно или счетно X={x1, x2, …}. Подобный источник полностью описывается набором вероятностей сообщений: p(xi), i=1,2, … . Условие нормировки:
Слайд 11Рассматривая непрерывные источники, мы ограничимся только теми, несчетный ансамбль которых может быть
Рассматривая непрерывные источники, мы ограничимся только теми, несчетный ансамбль которых может быть
1.3. Количество информации в сообщении
Аксиомы количества информации (требования к универсальной информационной мере):
1. Количество информации в сообщении x зависит только от его вероятности:
2. Неотрицательность количества информации:
причем I(x)=0 только для достоверного события (p(x)=1).
3. Аддитивность количества информации для независимых сообщений:
Слайд 12Единственной функцией, удовлетворяющей этим трем аксиомам оказывается логарифм вероятности сообщения:
1.4. Энтропия дискретного
Единственной функцией, удовлетворяющей этим трем аксиомам оказывается логарифм вероятности сообщения:
1.4. Энтропия дискретного
Энтропия дискретного источника есть среднее количество информации в его сообщениях:
Свойства энтропии:
1. Энтропия неотрицательна:
где равенство нулю имеет место только для полностью детерминированного (неслучайного) источника.
Единица измерения количества информации зависит от выбора основания логарифма. Традиционное основание два дает единицу измерения количества информации, называемую битом (binary digit).
Слайд 132. Энтропия ограничена сверху соотношением
3. Энтропия ансамбля пар сообщений, генерируемых двумя независимыми
2. Энтропия ограничена сверху соотношением
3. Энтропия ансамбля пар сообщений, генерируемых двумя независимыми
Энтропия двоичного источника (p – вероятность одного из двух сообщений):
с равенством только для ансамбля M равновероятностных сообщений.
Слайд 14Энтропия двоичного источника в зависимости от p
Энтропия двоичного источника в зависимости от p
Слайд 15Лекция 3
Лекция 3
Слайд 16Источник
Кодер источника
Сообщения
(буквы, блоки и т.п.)
Кодовые слова
2. Кодирование источника
2.1. Основные определения
При
Источник
Кодер источника
Сообщения
(буквы, блоки и т.п.)
Кодовые слова
2. Кодирование источника
2.1. Основные определения
При
Слайд 172.2. Префиксные коды. Неравенство Крафта. Средняя длина кодового слова
Идея экономии числа символов
2.2. Префиксные коды. Неравенство Крафта. Средняя длина кодового слова
Идея экономии числа символов
Пример 2.2.1. Код представленный ниже (M=4) не является однозначно декодируемым. Действительно, если на выходе кодера появится комбинация
Цель кодирования источника – наиболее экономное представление сообщений, т.е. отображение их словами по возможности меньшей длины.
x1 ⭢ 0
x2 ⭢ 01
x3 ⭢ 11
x4 ⭢ 111
00111111,
она может быть прочитана как
x1, x2, x3, x4, или x1, x2, x4, x3, или x1, x1, x4, x4, или x1, x1, x3, x3, x3.
Пример 2.2.2. В отличие от предыдущего, код, представленный ниже (M=4) является префиксным, и, следовательно, однозначно декодируемым.
Слайд 18x1 ⭢ 0
x2 ⭢ 10
x3 ⭢ 110
x4 ⭢ 111
Так, если последовательность на выходе
x1 ⭢ 0
x2 ⭢ 10
x3 ⭢ 110
x4 ⭢ 111
Так, если последовательность на выходе
0011010111110,
ее можно декодировать единственным образом:
x1, x1, x3, x2, x4, x3.
Теорема 2.2.1. (Неравенство Крафта). Код, содержащий M кодовых слов, может быть префиксным тогда и только тогда, когда длины его кодовых слов n1, n2, …, nM подчиняются неравенству
Средняя длина неравномерного кода определяется равенством
Любой префиксный код является мгновенно декодируемым. Это означает, что любое его слово можно распознать сразу по появлении последнего из его символов (см. пример 2.2.2).
Слайд 19Теорема 2.2.2. Средняя длина лучших префиксных кодов лежит в границах
2.3. Код Шеннона-Фано
На
Теорема 2.2.2. Средняя длина лучших префиксных кодов лежит в границах
2.3. Код Шеннона-Фано
На
Нетрудно показать, что средняя длина кода Шеннона-Фано удовлетворяет правому неравенству Теоремы 2.2.2:
Слайд 20Пример 2.3.1. Закодируем дискретный источник M=8 сообщений, имеющих вероятности, перечисленные в таблице.
В
Пример 2.3.1. Закодируем дискретный источник M=8 сообщений, имеющих вероятности, перечисленные в таблице.
В
Слайд 21Лекция 4
Лекция 4
Слайд 222.4. Код Хаффмена
Этот код оптимален в том смысле, что ни один префиксный
2.4. Код Хаффмена
Этот код оптимален в том смысле, что ни один префиксный
Удобнее, приступая к процедуре кодирования, записать все сообщения в порядке убывания их вероятностей. Следует также отметить, что, в противоположность алгоритму Шеннона-Фано, в ходе кодирования по Хаффмену любое кодовое слово появляется в обратном порядке.
Пример, приведенный ниже иллюстрирует процесс кодирования и демонстрирует сравнительное преимущество кода Хаффмена.
Слайд 23Пример 2.4.1. Закодируем по Хаффмену ансамбль из Примера 2.3.1:
X p(x)
x1 0.40
x2 0.20
x3 0.15
x4 0.10
x5 0.05
x6 0.04
x7 0.03
x8 0.03
0
1
0
0
1
0
1
0
1
0
1
1.00
0.06
0.09
0.35
Средняя длина:
0
1
0.15
0.25
1
0.60
Кодовые слова
0
110
100
101
11100
11101
11110
11111
Пример 2.4.1. Закодируем по Хаффмену ансамбль из Примера 2.3.1:
X p(x)
x1 0.40
x2 0.20
x3 0.15
x4 0.10
x5 0.05
x6 0.04
x7 0.03
x8 0.03
0
1
0
0
1
0
1
0
1
0
1
1.00
0.06
0.09
0.35
Средняя длина:
0
1
0.15
0.25
1
0.60
Кодовые слова
0
110
100
101
11100
11101
11110
11111
Слайд 24На практике источник генерирует сообщения (часто удобно называть их буквами) последовательно одно
На практике источник генерирует сообщения (часто удобно называть их буквами) последовательно одно
2.5. Теорема кодирования источника (неравномерные коды)
Теорема 2.5.1. Кодируя блоки из m букв, можно сколь угодно приблизить среднее число кодовых символов на букву к энтропии алфавита источника за счет увеличения длины блока m.
Заметим, что это утверждение останется в силе для произвольного источника (не только для источника без памяти).
Нетрудно убедиться, что для источника без памяти
и значит
В итоге имеет место
Слайд 252.6. Равномерное кодирование источника
Неравномерное кодирование не всегда удобно. Нередки сценарии (например, цифровое
2.6. Равномерное кодирование источника
Неравномерное кодирование не всегда удобно. Нередки сценарии (например, цифровое
что соответствует требуемому числу кодовых символов на букву
Теорема 2.6.1. Кодируя достаточно длинные m-блоки букв источника можно как угодно приблизить длину равномерного кода на букву к энтропии алфавита источника, удерживая вероятность нарушения однозначности декодирования не выше наперед заданной.
Слайд 262.7. Словарные коды. Алгоритм Лемпеля-Зива
Рассмотренные ранее методы кодирования источника опираются на априорное
2.7. Словарные коды. Алгоритм Лемпеля-Зива
Рассмотренные ранее методы кодирования источника опираются на априорное
Пример 2.7.1. Закодируем по Лемпелю-Зиву поток двоичных данных 10101100001001100111001101001111001110100111110011100001100111001100111000, опираясь на словарь из 16 фраз. Предварительно мы имеем в словаре только две фразы, являющиеся самими символами алфавита 0 и 1, записанными как первая и вторая строки. Кодер видит, что первая самая короткая, отсутствующая в словаре есть 10 и добавляет ее как третью строку словаря, представляя через префикс (1), который, в свою очередь, выражен
Слайд 27своим адресом в словаре (2), и обновляющим символом 0. Все последующие шаги
своим адресом в словаре (2), и обновляющим символом 0. Все последующие шаги
Чтобы понять ход декодирования, достаточно рассмотреть приведенный пример в обратном порядке, обратившись к потоку битов с выхода кодера. По получении очередного двоичного кодового слова, декодер разбивает его на префикс (в примере – 4 бита) и обновляющий бит. Префикс дает адрес части фразы, уже содержащейся в словаре. Вместе с обновляющим битом она вводится в словарь как его новая строка. Например, после того как декодер принимает слово 00100, он распознает префикс как 1 (присутствует в словаре под номером 2).
Слайд 28Наряду с обновляющим символом 0 это дает новый вход словаря для фразы
Наряду с обновляющим символом 0 это дает новый вход словаря для фразы
Слайд 29Лекция 5
Лекция 5
Слайд 302.8. Резюме. Примеры приложений
Из вышесказанного следует, что генерируемые источником данные можно сжать
2.8. Резюме. Примеры приложений
Из вышесказанного следует, что генерируемые источником данные можно сжать
Компрессия данных источника наиболее действенна при кодировании достаточно длинных блоков элементарных сообщений (букв), особенно если источник обладает памятью. Поступая таким образом, мы добиваемся выигрыша в среднем числе символов кода на первичное сообщение (букву) в обмен на задержку при декодировании сообщения. Последнее нередко оказывается ограничивающим фактором в приложениях.
Поскольку целью кодирования источника служит устранение избыточности, закодированные сообщения избыточности содержать не должны. Это означает, что их можно трактовать как равновероятные, так как избыточность сообщений и есть результат их неравных вероятностей. Поэтому комбинацию «источник-кодер источника» можно интерпретировать как агрегированный эквивалентный источник безызбыточных сообщений. Исходя из этого, при изучении далее каналов и канального кодирования мы будем полагать сообщения на входе канала равновероятными.
Слайд 31В настоящее время широко применяются как равномерное, так и неравномерное кодирование источника.
В настоящее время широко применяются как равномерное, так и неравномерное кодирование источника.
Однако коды Хаффмена, хотя и являются оптимальными теоретически, не могут служить универсальным инструментом для всех практических приложений. Чтобы их использование имело реальный смысл, необходимо располагать точной статистической моделью источника, то есть знать статистику сообщений. Столь детальная информация, однако, зачастую недоступна. В подобных ситуациях можно прибегнуть к адаптивному кодированию, идея которого состоит в получении недостающей информации прямо из потока исходных сообщений. Кодер, обучаясь по мере поступления данных от источника, параллельно оптимизирует процедуру кодирования.
Этот принцип лежит в основе алгоритмов «словарного кодирования» (см. раздел 2.7), к числу которых принадлежат популярные версии процедур Лемпеля-Зива и Лемпеля-Зива-Велча, широко применяемые, в частности, при архивировании файлов. Основная идея большинства из них сводится к формированию словаря комбинаций битов источника, в который каждая вновь встреченная комбинация вводится как экономная модификация уже
Слайд 32Многообразны и поучительны примеры применения методов адаптивного сжатия данных в кодировании речи,
Многообразны и поучительны примеры применения методов адаптивного сжатия данных в кодировании речи,
Вокодеры открывают путь к более эффективному сжатию речи. Они основаны на моделировании человеческого голоса фильтром, возбуждаемым некоторым псевдослучайным сигналом. При этом кодируются не отсчеты
упомянутой в словаре. Изящество словарных кодов состоит в отсутствии необходимости передачи словаря декодеру: последний в состоянии восстановить его самостоятельно в ходе декодирования.
Слайд 33В стандартах мобильной связи GSM, IS-95 и 3G используются вокодеры типов VSELP
В стандартах мобильной связи GSM, IS-95 и 3G используются вокодеры типов VSELP
речевого колебания, а параметры фильтра и возбуждающего сигнала.
Слайд 343. Взаимная информация. Пропускная способность канала. Теоремы кодирования для канала
3.1. Математическое описание
3. Взаимная информация. Пропускная способность канала. Теоремы кодирования для канала
3.1. Математическое описание
Теоретически канал можно трактовать как «черный ящик», характеризуемый выходным откликом (наблюдением) y(t) на входной сигнал x(t). Детерминированный канал можно было бы полностью описать его оператором, т. е. зависимостью y(t)=F(x(t)). В нашем же контексте более интересны статистические (стохастические) каналы, свойства которых можно описать только в вероятностных категориях. Все, что можно знать о таком канале, выражено его переходной вероятностью p(y(t)|x(t)), показывающей, с какой вероятностью фиксированный входной сигнал x(t) преобразуется каналом в то или иное выходное наблюдение y(t). Статистическое описание канала является исчерпывающим, когда известны переходные вероятности для всех возможных сочетаний входа x(t) и выхода y(t).
Подчеркнем, что в математическую модель канала можно включать любые компоненты реальных систем передачи информации с единственной оговоркой: в нее обязательно должна войти физическая среда распространения.
Слайд 35Все каналы можно классифицировать на дискретные и непрерывные как по времени, так
Все каналы можно классифицировать на дискретные и непрерывные как по времени, так
На вход любого канала по завершении одного воздействия может поступить следующее. В этом контексте важно, обладает канал памятью или нет. Для канала без памяти отклик на входное воздействие не зависит от значения воздействия в предыдущий момент времени. Простейшая и одна из важнейших модель канала – дискретный канал без памяти (ДКБП). Пусть x(i), y(i) – входные и выходные символы ДКБП отвечающие i-тому моменту времени. Тогда переходная вероятность p(y|x), т. е. вероятность, преобразования каналом входного n-мерного вектора x=(x(1), x(2), … , x(n)) в выходной y = (y(1), y(2), … , y(n)), где x(i)∈X, y(i)∈Y , y(i)∈Y и X,Y – входной и выходной алфавиты
Слайд 36Пример 3.1.1. Двоичный симметричный канал (ДСК):
p – вероятность ошибки на символ.
Тем самым,
Пример 3.1.1. Двоичный симметричный канал (ДСК):
p – вероятность ошибки на символ.
Тем самым,
Слайд 37Лекция 6
Лекция 6
Слайд 383.2. Взаимная информация, остаточная энтропия, пропускная способность канала
Для канала, подверженного влиянию случайных
3.2. Взаимная информация, остаточная энтропия, пропускная способность канала
Для канала, подверженного влиянию случайных
Выход y, однако, сам случаен, поэтому разумно усреднить H(X|y) по всем возможным y, чтобы прийти к численной мере средней неопределенности относительно входного значения, остающейся после наблюдения. Полученную условную энтропию входного ансамбля относительно выходного уместно также назвать остаточной энтропией (в работах Шеннона – equivocation – ненадежность):
Слайд 39или, полагая p(y)p(x|y)=p(x,y),
Так как до наблюдения неопределенность относительно входного ансамбля равнялась энтропии
или, полагая p(y)p(x|y)=p(x,y),
Так как до наблюдения неопределенность относительно входного ансамбля равнялась энтропии
Слайд 40Как видно, I(X;Y) показывает число битов информации о входе канала извлекаемое в
Как видно, I(X;Y) показывает число битов информации о входе канала извлекаемое в
Можно заметить, что I(X;Y) – математическое ожидание величины
называемой взаимной информацией между x и y. Здесь первое слагаемое правой части – количество информации I(x) в x безотносительно к каким-либо другим событиям, а второе – количество информации I(x|y) в x после того, как получено наблюдение y. Поэтому I(x;y) показывает изменение неопределенности относительно x до и после наблюдения y.
Взаимная информация I(x; y) может быть и положительной, так и отрицательной, так как вероятность значения x может как возрасти, так и уменьшиться в результате наблюдения y. В отличие от этого, принципиальная неотрицательность средней взаимной информации I(X;Y) говорит о том, что в среднем осведомленность об ансамбле X после наблюдения события из некоторого другого ансамбля Y снизиться не может.
Слайд 41Легко доказать симметрию взаимной и средней взаимной информации: I(x;y)=I(y;x); I(X;Y) =I(Y;X).
Максимальное количество
Легко доказать симметрию взаимной и средней взаимной информации: I(x;y)=I(y;x); I(X;Y) =I(Y;X).
Максимальное количество
где максимизация выполняется по всем априорным распределениям вероятностей p(X) входных n-символьных блоков и длине блока n при фиксированных входных и выходных алфавитах (X и Y соответственно). Пропускная способность – фундаментальный параметр канала, определяющий его потенциальные возможности в части надежной передачи информации.
3.3. Ошибка декодирования. Неравенство Фано
Охватим моделью канала кодер и декодер. Это означает, что на вход канала поступает сообщение источника (в закодированной форме), а на выходе выдается решение о том, какое сообщение передано (результат декодирования). При этом входной и выходной ансамбли совпадают X=Y, однако декодированное сообщение y∈Y может отличаться от переданного,
Слайд 42в каковом случае имеет место ошибка декодирования (ошибочное решение). Вероятность ошибки декодирования
в каковом случае имеет место ошибка декодирования (ошибочное решение). Вероятность ошибки декодирования
Каждый из двух показателей – и остаточная энтропия H(X|Y), и вероятность ошибки декодирования – характеризует надежность передачи данных по каналу. Поэтому естественно наличие взаимосвязи между ними.
Теорема 3.3.1. (Неравенство Фано). Остаточная энтропия и вероятность ошибки декодирования подчиняются неравенству
где h(·) – энтропия двоичного источника, а M – общее число сообщений.
Слайд 43Лекция 7
Лекция 7
Слайд 443.4. Теоремы кодирования для канала
Пусть одно из M равновероятных сообщений, закодированное
3.4. Теоремы кодирования для канала
Пусть одно из M равновероятных сообщений, закодированное
бит информации на каждый кодовый символ. Параметр R называется скоростью передачи или скоростью кода. Именно соотношение между скоростью R и пропускной способностью C говорит о потенциальной надежности передачи данных по каналу. Соответствующие утверждения содержатся в замечательных теоремах Шеннона:
Теорема 3.4.1. (Обратная теорема кодирования). При скорости, превышающей пропускную способность канала, R>C, не существует кода, гарантирующего произвольно малую вероятность ошибочного декодирования.
Теорема 3.4.2. (Прямая теорема кодирования). При скорости, меньшей пропускной способности канала, R
Слайд 45этому, если скорость R меньше емкости канала C, в принципе всегда можно
этому, если скорость R меньше емкости канала C, в принципе всегда можно
Обратную теорему можно доказать, опираясь на неравенство Фано. После некоторых простых преобразования для ДКБП можно получить
для C 0 1 1 Pe 0.5 0 1 1 Pe 0.5 Pe h(Pe) f(Pe) n=1 n=2 n=∞ ε δ
Слайд 46В отличие от обратной, доказательство прямой теоремы для общей модели канала без
В отличие от обратной, доказательство прямой теоремы для общей модели канала без
где величина E(R), называемая функцией надежности канала, не зависит от длины кода n и всегда положительна при скорости R, меньшей пропускной способности канала C. Функция E(R) определяется только свойствами канала и возрастает с «просветом» между пропускной способностью и скоростью передачи данных. Как видно из экспоненты случайного кодирования, по крайней мере для некоторых лучших кодов вероятность ошибочного декодирования экспоненциально убывает с ростом n, т. е. может быть сделана произвольно малой за счет увеличения длины кода.
Верхняя граница для Pe (экспонента случайного кодирования) является экспоненциально точной, асимптотически приближаясь для лучших кодов достаточно большой длины n к истинной вероятности ошибки декодирования. Поэтому она служит надежным эталоном в суждении о том,
Слайд 47Прямая теорема Шеннона является типичной математической теоремой существования, не давая ни малейшего
Прямая теорема Шеннона является типичной математической теоремой существования, не давая ни малейшего
насколько хорош тот или иной конкретный код. При этом вероятность ошибки декодирования для исследуемого кода сравнивается с экспонентой случайного кодирования с целью выяснения, насколько его эффективность близка к потенциальной. Нижеследующие графики показывают характерные зависимости вероятности ошибки Pe от длины n и функции надежности E(R) от скорости R.
E(R)
Pe
n
0
R1
R2
R1 0 R C
Слайд 48Лекция 8
Лекция 8
Слайд 494. Расчет пропускной способности некоторых каналов
4.1. Дискретный канал без памяти
Как следует из
4. Расчет пропускной способности некоторых каналов
4.1. Дискретный канал без памяти
Как следует из
где использовано свойство симметрии взаимной информации. Поскольку
задача состоит в максимизации I(X;Y) при заданных переходных вероятностях по всем распределениям вероятности p(x), т.е. по всем векторам с неотрицательными компонентами, удовлетворяющим условию нормировки
Слайд 50 Для модели произвольного ДКБП подобная оптимизационная задача не имеет замкнутого аналитического решения.
Для модели произвольного ДКБП подобная оптимизационная задача не имеет замкнутого аналитического решения.
4.2. Двоичный симметричный канал (ДСК)
Обозначим вероятность появления на входе ДСК символа x=0 как w . Тогда вероятности выходных символов выразятся как показано ниже
1–p
1–p
p
p
P(x=0)=w
P(x=1)=1–w
P(y=0)=w(1–p)+(1–w)p
P(y=1)=wp+(1–w)(1–p)
Слайд 51Поскольку при любом x на входе, на выходе канала возможны только два
Поскольку при любом x на входе, на выходе канала возможны только два
Как видно, когда p=0, т. е. канал свободен от ошибок, его пропускная способность равна 1бит/символ, что неудивительно, так как на входе в один символ можно вложить максимум один бит информации. Та же ситуация имеет место и при p=1 – канал вновь детерминирован и приемной стороне известно, что он лишь меняет любой символ на противоположный. Когда p=1/2, выходные символы 0 и 1 равновероятны независимо от значения входного символа. Поэтому никакой передачи информации со входа на выход не происходит (событие, именуемое обрывом канала). Естественно поэтому полагать 0
Пропускная способность ДСК С в зависимости от вероятности ошибки на символ p
Слайд 52Лекция 9
Лекция 9
Слайд 534.3. Непрерывные источники. Взаимная информация и относительная (дифференциальная) энтропия
Рассмотрим непрерывный ансамбль, эквивалентный
4.3. Непрерывные источники. Взаимная информация и относительная (дифференциальная) энтропия
Рассмотрим непрерывный ансамбль, эквивалентный
Два непрерывных ансамбля полностью описываются их совместной ПВ
Квантуя непрерывные величины, т.е. приближая их дискретными, легко распространить понятие средней взаимной информации на непрерывные ансамбли. Средняя взаимная информация I(X;Y) двух непрерывных ансамблей X и Y
W(x)
x
0
...
...
Δ
Слайд 54Дифференциальная (относительная) энтропия непрерывной величины X определяется равенством
Таким образом, средняя взаимная информация
Дифференциальная (относительная) энтропия непрерывной величины X определяется равенством
Таким образом, средняя взаимная информация
Дифференциальная энтропия играет в приложениях ту же роль, что и обычная энтропия дискретного ансамбля: характеризует среднюю неопределенность случайной переменной, т.е. среднее количество информации в ее значениях.
Теорема 4.3.1. На множестве случайных величин с дисперсией, ограниченной сверху значением σ2, наибольшую дифференциальную энтропию имеет гауссовская:
Слайд 554.4. Пропускная способность непрерывного гауссовского канала
Рассмотрим полностью непрерывный (по времени и состоянию)
4.4. Пропускная способность непрерывного гауссовского канала
Рассмотрим полностью непрерывный (по времени и состоянию)
1. шум в канале z(t) аддитивен, т.e. y(t)=x(t)+z(t);
2. шум гауссовский (ПВ его отсчетов есть WG(x));
3. полоса пропускания канала равна W.
Подобный канал называют гауссовским с полосой W.
Благодаря конечности полосы, дискретизация входного и выходного процессов с частотой Найквиста-Котельникова Td=1/2W преобразует непрерывный по времени канал в дискретный с непрерывными (принадлежащими континуальному алфавиту) символами на входе и выходе. Пусть также спектральная плотность шума равномерна в пределах полосы с односторонней спектральной плотностью мощности N0. Тогда автокорреляционная функция шума описывается законом «sinc» (см.рисунок).
Слайд 560
f
W
N0
Спектральная плотность мощности шума
τ
N0W
0
Автокорреляционная функция шума
Как теперь видно, отсчеты с частотой Найквиста-Котельникова
0
f
W
N0
Спектральная плотность мощности шума
τ
N0W
0
Автокорреляционная функция шума
Как теперь видно, отсчеты с частотой Найквиста-Котельникова
где максимизация проводится по ПВ входных символов W(x). Из y=x+z следует, что Hd(Y|X)=Hd(Z)=(1/2)log2πeσ2 не зависит от W(x), и только Hd(Y) можно максимизировать подбором W(x). Но при ограниченной средней мощности сигнала Ps и фиксированной мощности шума Pn= σ2 мощность на выходе не может превысить Ps+Pn,, означая, что maxHd(Y) =(1/2)log2πe(Ps+ Pn). После перехода к скорости передачи в реальном масштабе времени Ct=C/Td
Слайд 57придем к знаменитой формуле Шеннона для пропускной способности гауссовского канала:
Этот результат показывает,
придем к знаменитой формуле Шеннона для пропускной способности гауссовского канала:
Этот результат показывает,
В реальности спектральная плотность мощности шума N0 может зачастую считаться постоянной в произвольной полосе W, так что Pn=N0W и, когда полоса расширяется, пропускная способность растет, стремясь к пределу
называемому пропускной способностью гауссовского канала с неограниченной полосой. Безусловно, эта формула может использоваться и для ограниченного по полосе канала, если Ps /Pn=Ps /N0W<<1. Подобный результат демонстрирует потенциальную возможность надежно передавать данные с ненулевой скоростью при исчезающее малом отношении сигнал-шум по мощности в канале.
Слайд 58Вспомнив, что Ct - максимальная теоретически достижимая скорость Rt безошибочной передачи, введем
Вспомнив, что Ct - максимальная теоретически достижимая скорость Rt безошибочной передачи, введем
показывающую зависимость достижимой спектральной эффективности Rt/W (скорости на 1 Гц) от отношения сигнал-шум на бит, где Eb – энергия сигнала на бит (но не кодовый символ!) полезной информации. Рисунок слева показывает, что ненулевая скорость на 1Гц достижима при
Запретная область
Область возможных скоростей
Eb/N0>ln2. Если при проектировании системы высшим приоритетом является энергосбережение (величина Eb/N0 не может быть значительной), единственным средством повышения надежности передачи служит расширение полосы (W>>Rt). Напротив, когда главная цель – высокая спектральная эффективность (Rt>>W), проектировщик вынужден полагаться только на достаточную излучаемую энергию Eb/N0>>1. Оба указанных сценария весьма типичны для современных телекоммуникационных систем.
Слайд 59Лекция 10
Лекция 10
Слайд 605. Введение в блоковые коды
5.1. Общая идея канального кодирования. Классификация кодов
Как уже
5. Введение в блоковые коды
5.1. Общая идея канального кодирования. Классификация кодов
Как уже
Слайд 61было передано, если решение выносится в пользу «ближайшего» (отличающегося в минимальном числе
было передано, если решение выносится в пользу «ближайшего» (отличающегося в минимальном числе
Канальные коды можно классифицировать на основе ряда признаков. Первый из них – объем алфавита, согласно которому коды разделяются на двоичные, троичные и т. п. Начав с двоичных кодов, мы в дальнейшем коснемся и недвоичных.
Другой классификационный признак отражает способ преобразования потока данных (сообщений) источника в поток кодовых символов. В этом плане коды можно разделить на блоковые и решетчатые (древовидные). В блоковых кодах k битов данных преобразуются в кодовое слово длины n, проверочные символы которого защищают только «свои» k битов данных. В решетчатых (в частности сверточных) кодах текущая группа проверочных символов защищает несколько смежных блоков данных.
В зависимости от явного присутствия битов данных в кодовых словах различают систематические и несистематические коды. Блоковый код из рассмотренного выше примера – систематический, так как первые два символа в любом его слове – «чистые» биты сообщения.
Наконец, название кода часто содержит определение алгоритма построения или имя первооткрывателя: (линейный, циклический, Хэмминга, и пр.).
Слайд 62В последующем тексте используются слегка измененные обозначения:
U={u1, u2, … , uM} –
В последующем тексте используются слегка измененные обозначения:
U={u1, u2, … , uM} –
ui =(ui1, ui2, … , uin) – i-й кодовый вектор (кодовое слово),
uij - j-й элемент i-го кодового слова,
k=logM - число информационных битов в кодовом слове,
в то время как символы n, M и R=k/n служат, как и ранее, для обозначения длины кода, числа кодовых слов (сообщений) и скорости соответственно. В отличие от предшествующих глав, где нижние индексы служили для нумерации состояний, теперь в целях компактности они резервируются за дискретным временем.
5.2. Евклидово и хэммингово расстояние
Из основ теории связи хорошо известно, что сигнал si(t) конечной энергии Ei может интерпретироваться как вектор si длины, устанавливаемой теоремой Пифагора
Подобным же образом вводится евклидово расстояние между si(t) и sj(t):
Слайд 63Евклидово расстояние играет фундаментальную роль в теории и технике передачи сообщений. Чем
Евклидово расстояние играет фундаментальную роль в теории и технике передачи сообщений. Чем
С точки зрения математики евклидово расстояние не является единственным. Общее понятие расстояния базируется на трех аксиомах (симметрия, неотрицательность, неравенство треугольника). В частности, в теории кодирования широко используется хэммингово расстояние, равное числу позиций, на которых символы двух векторов не совпадают. Скажем, для двоичных векторов u1=(10110) и u2=(11011) хэммингово расстояние dH(u1, u2)=3, так как второй, третий и пятый их символы различны. Еще одна важная величина – вес Хемминга W(u) вектора u, равный числу ненулевых компонент последнего. К примеру, для тех же u1 и u2 W(u1)=3, W(u2)=4.
5.3. Декодирование по максимуму правдоподобия и минимуму расстояния
Рассмотрим общую задачу передачи информации: один из M сигналов s1(t), s2(t), … , sM(t), используемых для передачи M сообщений, поступает на вход
Слайд 64канала связи. На выходе канала наблюдается некоторое колебание y(t) (см.рисунок), являющееся переданным
канала связи. На выходе канала наблюдается некоторое колебание y(t) (см.рисунок), являющееся переданным
si(t)
y(t)
Канал
Блок решения
решение о том, какой из сигналов был передан, чтобы риск ошибочного принятия одного сообщения за другое оказался наименьшим?
При равновероятных входных сигналах и ориентации на критерий минимума вероятности перепутывания передаваемых сигналов оптимальным является правило максимального правдоподобия: решение выносится в пользу сигнала, считающегося наиболее правдоподобным. Последнее означает, что вероятность p(y(t)|si(t)) преобразования каналом в данное наблюдение y(t) (переходная вероятность канала) для названного сигнала больше, чем для всех остальных.
В гауссовском канале правдоподобие сигнала (см. рисунок слева) однозначно связано с его близостью к принятому колебанию y(t) в смысле евклидова расстояния, так как p(y(t)|si(t)) убывает экспоненциально с квадратом dE(y,si).
Сигнал s2(t) наиболее вероятен, так как dE(y,s2) В ДСК переходная вероятность (вероятность преобразования двоичного
Слайд 65кодового слова ui в наблюдаемый вектор y)
падает с хэмминговым расстоянием di= dH
кодового слова ui в наблюдаемый вектор y)
падает с хэмминговым расстоянием di= dH
Как видно, в обоих случаях правило максимума правдоподобия эквивалентно правилу минимума расстояния с разницей лишь в определении расстояния: решение принимается в пользу сигнала ближайшего к наблюдению.
5.4. Исправляющая способность кода. Ключевые параметры блоковых кодов
Говорят, что код исправляет вплоть до t ошибок, если при искажении любых t или менее символов в любом его кодовом слове, последнее, тем не менее, декодируется (по минимуму расстояния) верно.
Наименьшее хэммингово расстояние между парами слов в коде называется его минимальным расстоянием (или просто расстоянием)
Слайд 66Теорема 5.4.1. Код исправляет вплоть до t ошибок тогда и только тогда,
Теорема 5.4.1. Код исправляет вплоть до t ошибок тогда и только тогда,
Поучительна геометрическая интерпретация этого факта. Хэммингова сфера радиуса t с центром в ui есть множество точек (векторов), расположенных в пределах хэммингова расстояния t от вектора ui. Если все
кодовые векторы удается окружить подобными сферами радиуса t без пересечений между ними, декодер сможет декодировать любой вектор в i-й сфере в i-е кодовое слово. Тем самым любая ошибка кратности t или менее в любом кодовом слове будет исправлена. Но избежать пересечения сфер радиуса t можно лишь при условии, что расстояние между любыми кодовыми векторами не меньше 2t+1.
u2
u1
u3
uM
y
t
d(y,u3)≤t
Нетрудно также убедиться, что для обнаружения ошибок кратности вплоть до t необходимо и достаточно соблюдения условия
Слайд 67Длина кода n вместе с объемом M и расстоянием d составляют тройку
Длина кода n вместе с объемом M и расстоянием d составляют тройку
Слайд 68Лекция 11
Лекция 11
Слайд 695.5. Важнейшие границы теории кодирования
Очевидно, особый интерес представляют коды с максимальным расстоянием
5.5. Важнейшие границы теории кодирования
Очевидно, особый интерес представляют коды с максимальным расстоянием
Теорема 5.5.1. (Граница Хэмминга). Любой двоичный код, исправляющий вплоть до t ошибок, удовлетворяет неравенству :
Коды, лежащие на границе Хэмминга (удовлетворяющие ей с равенством), называются совершенными. Совершенные коды исправляют любые ошибки кратности t и менее, но не исправляют и не обнаруживают никаких ошибок большей кратности.
Геометрически такие коды реализуют так называемую «плотную упаковку», при которой все 2n двоичных векторов распределены по M сферам радиуса t, не имеющих пересечений и промежутков. Они названы совершенными, так как обеспечивают максимальную скорость R, допускаемую фиксированными d=2t+1 и n. Среди двоичных существуют лишь три класса совершенных кодов – тривиальный код с повторением нечетной длины, коды Хэмминга, исправляющие однократные ошибки (см. гл. 6), и код Голея длины 23 с расстоянием 7 (исправляющий ошибки вплоть до трехкратных).
Слайд 70Близкое по смыслу ограничение устанавливается границей Плоткина.
Теорема 5.5.2. (Граница Плоткина). Любой двоичный
Близкое по смыслу ограничение устанавливается границей Плоткина.
Теорема 5.5.2. (Граница Плоткина). Любой двоичный
Обе границы декларируют необходимые (но не достаточные) условия существования кодов. Их невыполнение свидетельствует о несуществовании кода с предполагаемыми значениями M, n и d, и поэтому их можно назвать верхними. Известны и более точные (однако и более сложные) верхние границы во всем диапазоне M, n, d (Элайеса и пр.).
С другой стороны, имеются и нижние границы, устанавливающие достаточные условия существования кодов с заданными M, n, d .
Теорема 5.5.3. (Граница Гилберта). Двоичный блоковый код, параметры которого удовлетворяют неравенству
существует наверняка.
Слайд 71Для больших длин n биномиальные коэффициенты в приведенных неравенствах можно аппроксимировать по
Для больших длин n биномиальные коэффициенты в приведенных неравенствах можно аппроксимировать по
где h(·) – энтропия двоичного ансамбля.
Если k=logM целое число, эта граница модифицируется в более точную границу Варшамова–Гилберта, устанавливающую существование кода, удовлетворяющего неравенству:
Если n>>1, код не существует при нарушении любого из неравенств
(асимптотические границы Хэмминга и Плоткина), но существует наверняка при условии (асимптотическая граница Гильберта):
Слайд 72упомянутыми является зоной неопределенности, для которой однозначный ответ о существовании кода нельзя
упомянутыми является зоной неопределенности, для которой однозначный ответ о существовании кода нельзя
Выигрыш от кодирования является количественной мерой улучшения качества передачи с применением кодирования по сравнению с безызбыточной передачей потока битов источника. Его значение показывает,
Приведенный ниже рисунок поясняет смысл асимптотических границ. Коды с параметрами M, n, d, попадающими в область выше любой из границ Хэмминга или Плоткина, существовать не могут, тогда как в области ниже границы Гилберта существование кодов гарантировано. Область между двумя
5.6. Энергетический выигрыш от кодирования. Мягкое и жесткое декодирование
Слайд 73во сколько раз можно уменьшить энергию сигнала за счет введения канального кодирования.
во сколько раз можно уменьшить энергию сигнала за счет введения канального кодирования.
Это равенство соответствует использованию двоичного кода для передачи данных по гауссовскому каналу с достаточно малой вероятностью ошибки декодирования (эквивалентно – большой энергией сигнала на бит полезной информации) в сочетании с так называемым мягким декодированием. Последнее подразумевает решение по минимуму евклидова расстояния для наблюдения «в целом», без предварительной демодуляции (т. е. решений о значениях) индивидуальных символов.
Слайд 74квантованием непрерывного выхода демодулятора, после чего следуют те же операции, что и
квантованием непрерывного выхода демодулятора, после чего следуют те же операции, что и
Подобные алгоритмы традиционно также относят к числу мягких. Простейший из них соответствует модели ДСК со стиранием (см. рисунок слева)
1–p–q
0
1
0
1
p
p
?
q
q
Жесткое декодирование, напротив, осуществляется в два этапа: на первом регенерируется каждый двоичный символ кода, а на втором –выполняется декодирование по минимуму хэммингова расстояния. В этом случае гауссовский канал попросту преобразуется в ДСК. Выигрыш от кодирования при жестком декодировании уменьшается примерно на 2…3 дБ по сравнению с мягким.
Возможны и промежуточные варианты декодирования, в которых на первом этапе жесткое решение о значении двоичного символа заменяется
1–p–q
Слайд 75Лекция 12
Лекция 12
Слайд 766. Линейные блоковые коды
6.1. Введение в конечные поля
Конечным полям принадлежит основополагающая роль
6. Линейные блоковые коды
6.1. Введение в конечные поля
Конечным полям принадлежит основополагающая роль
Полем F называется множество элементов, замкнутое относительно двух операций, называемых сложением и умножением (и обозначаемых традиционно знаками «+» и «·»). Замкнутость означает, что результаты сложения или умножения (сумма и произведение) также принадлежат F :
При этом сложение и умножения должны удовлетворять следующим аксиомам:
1. Сложение и умножение коммутативно:
2. Сложение и умножение ассоциативно:
Слайд 773. В F присутствуют два нейтральных элемента – нуль (обозначаемый символом «0») и
3. В F присутствуют два нейтральных элемента – нуль (обозначаемый символом «0») и
4. Для любого элемента a∈F имеется противоположный ему элемент (обозначаемый «–a»), т. е. такой, сумма a с которым равна нулю :
5. Для любого ненулевого элемента a∈F имеется обратный (обозначаемый «a–1»), т.е. такой произведение a на который равно единице:
6. Сложение и умножение подчиняются закону дистрибутивности:
Из перечисленных аксиом следует, что в любом поле наряду со сложением и умножением определены вычитание и деление :
и для
Слайд 78Простейшие среди полей – числовые (рациональных или действительных чисел), содержащие бесконечно много
Простейшие среди полей – числовые (рациональных или действительных чисел), содержащие бесконечно много
Можно доказать, что порядки любых конечных полей – натуральные степени простых чисел и только они: q=pm (p – простое, m – натуральное). Конечное поле простого порядка p называется простым полем. Любое простое можно сконструировать как множество остатков от деления натуральных чисел на p {0, 1, … , p–1} с операциями сложения и умножения по модулю p. Ниже даны примеры таблиц сложения и умножения в полях GF(2), GF(3), GF(5).
+
0 1
0
1
0 1
1 0
•
0 1
0
1
0 0
0 1
GF(2)
GF(5)
•
0 1 2 3 4
0
1
2
3
4
0 0 0 0 0 0 1 2 3 4
0 2 4 1 3
0 3 1 4 2 0 4 3 2 1
Операции в расширенных конечных полях (порядка q=pm, m>1), изучаемых позднее, несколько сложнее, чем сложение и умножение по модулю q.
Слайд 796.2. Векторные пространства над конечными полями
Понятие векторного пространства, традиционно вводимое для случая
6.2. Векторные пространства над конечными полями
Понятие векторного пространства, традиционно вводимое для случая
Пусть F – некоторое поле, элементы которого рассматриваются как скаляры. Тогда векторное пространство S над полем F есть множество элементов (векторов), замкнутое относительно двух операций: сложения векторов и умножения вектора на скаляр (с привычной нотацией “+” и “·”):
Названные операции должны вводиться так, чтобы выполнялись следующие аксиомы:
1. Сложение коммутативно и ассоциативно:
2. Существует нулевой вектор 0, при сложении с которым произвольный вектор остается неименным:
3. Для любого вектора имеется противоположный ему вектор –x:
Слайд 804. Умножение вектора на скаляр ассоциативно:
5. Умножение любого вектора на единичный скаляр (обязательно
4. Умножение вектора на скаляр ассоциативно:
5. Умножение любого вектора на единичный скаляр (обязательно
6. Справедливы два закона дистрибутивности:
Стандартная модель векторного пространства в теории кодирования – множество n–элементных строк x=(x1, x2, … , xn) с компонентами из заданного конечного поля: xi∈GF(q). Операции с векторами при этом выполняются по простейшим правилам:
где сложение и умножение скаляров выполняется по правилам поля GF(q). Пространство такого типа может содержать до qn векторов. В двоичном пространстве (q=2) максимальное число векторов не превосходит величины 2n и, согласно правилам арифметики GF(2),
Слайд 81Пусть в пространстве S выбраны m ненулевых векторов g1, g2,.., gm.
Они называются
Пусть в пространстве S выбраны m ненулевых векторов g1, g2,.., gm.
Они называются
где все αi – скалярные коэффициенты. Напротив, если ни один из векторов gi не выражается линейной комбинацией других, рассматриваемые векторы линейно независимы. Максимальное число линейно независимых векторов m в данном пространстве называется размерностью этого пространства (пространство размерности m также называют m–мерным). Любое множество m линейно независимых векторов в m–мерном пространстве образует его базис. Если {g1, g2, … , gm} – базис пространства S , то любой вектор x из S можно построить как линейную комбинацию g1, g2,.., gm:
где x1, x2, … , xn – компоненты или координаты x в базисе {g1, g2, … , gm}. Приведенное равенство есть представление или разложение x в базисе {g1, g2, … , gm}.
Если S1 – подмножество векторного пространства S, само являющееся пространством с теми же векторным сложением и умножением на скаляр, то S1 называется подпространством S.
Слайд 82Лекция 13
Лекция 13
Слайд 836.3. Линейные коды и их порождающие матрицы
Рассмотрим множество S всех 2n n–компонентных
6.3. Линейные коды и их порождающие матрицы
Рассмотрим множество S всех 2n n–компонентных
Прямая проверка показывает, что U замкнуто относительно сложения векторов и умножения их на скаляры из GF(2) , и, следовательно, U есть векторное пространство, т.е. подпространством S. Это подпространство, имеющее размерность k, и является той конструкцией, которая именуется линейным кодом. Итак, двоичный (n,k) линейный код – это любое k-мерное подпространство пространства векторов длины n. Поскольку подпространство содержит M=2k, кодовых слов, k=logM есть не что иное, как число информационных битов, передаваемых кодом, длина которого, разумеется, равна n. Запишем векторы gi=(gi1, gi2, … , gin) один под другим как строки матрицы G:
Слайд 84Вводя k–компонентный вектор сообщения (данных) a=(a1, a2, … , ak), любое слово
Вводя k–компонентный вектор сообщения (данных) a=(a1, a2, … , ak), любое слово
Как видно, кодовое слово линейного кода есть произведение информационного вектора a на матрицу G, по этой причине именуемую порождающей матрицей кода. Из определения векторного пространства следует, что:
1. Любой линейный код содержит нулевое слово 0=(0 0 … 0);
2. Любая сумма слов линейного кода есть вновь кодовое слово того же кода:
Слайд 853. Теорема 6.3.1. Минимальное расстояние линейного кода равно наименьшему из весов ненулевых слов
3. Теорема 6.3.1. Минимальное расстояние линейного кода равно наименьшему из весов ненулевых слов
Последний результат является одним из оснований особой популярности линейных кодов: для нахождения расстояния линейного кода достаточно протестировать веса M–1 его ненулевых векторов взамен перебора M(M – 1)/2 >> M пар кодовых слов.
Любой линейный код можно преобразовать в эквивалентный (имеющий те же объем M, длину n и веса всех слов), задаваемый канонической порождающей матрицей
Слайд 86где Ik – k×k единичная матрица, а P – матрица размерности k×(n–k).
где Ik – k×k единичная матрица, а P – матрица размерности k×(n–k).
6.4. Проверочная матрица и ее связь с кодовым расстоянием
Рассмотрим систематический линейный код U с k×n порождающей матрицей G=[Ik ¦ P] и построим (n–k)×n проверочную матрицу H=[–PT ¦ In-k], где верхний индекс “T” означает транспонирование матрицы P. Для произвольного кодового вектора u∈U
т. е. умножение на транспонированную матрицу H дает нуль. Таким образом, любой линейный код есть нуль–пространство своей проверочной матрицы
Слайд 87Теорема 6.4.1. Линейный код U имеет минимальное расстояние d, если и только
Теорема 6.4.1. Линейный код U имеет минимальное расстояние d, если и только
Теорема 6.4.2. (Граница Синглтона). Расстояние линейного (n,k) кода не больше числа проверочных символов плюс единица:
Для двоичных кодов верхняя граница Синглтона не только недостижима (кроме тривиальных кодов с повторением или единственной проверкой на четность), но и бесполезна, так как лежит выше границ Хэмминга и Плоткина. В то же время недвоичные коды, достигающие этой границы, существуют и широко применяются на практике.
Следствие 6.4.3. Граница Варшамова-Гилберта.
Хотя в определении параграфа 6.3 для облегчения ознакомления с линейными кодами фигурировал двоичный алфавит, все результаты последних двух параграфов без затруднений переносятся на q-ичные линейные коды.
Слайд 88Лекция 14
Лекция 14
Слайд 89Коды, фигурирующие в заголовке, замечательны как в познавательном, так и в практическом
Коды, фигурирующие в заголовке, замечательны как в познавательном, так и в практическом
Если нужен систематический код Хэмминга, достаточно переупорядочить столбцы проверочной матрицы H, выделив явно m×m единичную матрицу как составной блок проверочной. После этого легко строится и каноническая порождающая матрица.
6.5. Коды Хэмминга
Хэмминга имеет k=n–m=2m–m–1 информационных символов, т.е. является (2m–1, 2m–m–1) линейным кодом.
Пример 6.5.1. Столбцы проверочной матрицы двоичного кода Хэмминга (7,4) есть десятичные числа от 1 до 7, в двоичной записи (иллюстрация справа).
Слайд 90Так как все столбцы матрицы H кода Хэмминга различны, любая их пара
Так как все столбцы матрицы H кода Хэмминга различны, любая их пара
Коды Хэмминга являются почти уникальным примером совершенных двоичных кодов. Известны и недвоичные коды Хэмминга, не столь, однако, интересные в контексте нашего курса.
В таблице справа приведены параметры нескольких кодов Хэмминга в порядке возрастания длин.
6.6. Расширенные и укороченные коды
Любой линейный (n,k) код U можно превратить в код U´ с параметрами (n+1, k) добавлением символа общей проверки на четность. Пусть, например, u=(u1, u2, … , un) – произвольное кодовое слово исходного (n,k) линейного кода U. Тогда соответствующее слово расширенного кода U´ строится по правилу u´ =(u1, u2, … , un, un+1) , где un+1= u1+ u2+ … + un (разумеется с суммированием согласно двоичной арифметике, т.е. по модулю 2). В итоге
и, следовательно, вес любого слова в расширенном коде будет четным. Это, в свою очередь, означает, что при нечетном расстоянии d исходного кода U минимальное расстояние d´ расширенного кода U´ увеличится на единицу: d´ = d+1. Тем самым, любой линейный (n,k) код нечетного расстояния d,
Слайд 91исправляющий t=(d–1)/2 ошибок, можно трансформировать в расширенный (n+1, k) код, исправляющий ошибки
исправляющий t=(d–1)/2 ошибок, можно трансформировать в расширенный (n+1, k) код, исправляющий ошибки
Коды Хэмминга весьма наглядны в части иллюстрации сказанного. Так как расстояние любого такого кода равно трем, в результате расширения получается (2m, 2m–m–1) код с расстоянием четыре, который, в дополнение к исправлению любых однократных, обнаруживает и любые двукратные ошибки. Поучительный пример реального применения расширенного (32,26) кода Хэмминга для передачи цифрового потока данных с искусственного спутника Земли дает глобальная радионавигационная система космического базирования GPS.
Другой популярный прием преобразования имеющихся кодов в новые – укорочение. Укороченный код получается из исходного систематического отбором лишь слов, имеющих l первых нулевых символов. Зная наперед об этом свойстве всех отобранных слов, нет нужды передавать упомянутые нулевые символы, уменьшив длину кода на l с одновременным сокращением на ту же величину числа информационных бит. Результирующий (n–l, k–l) код будет обладать расстоянием, не худшим, чем у исходного. Легко показать, что порождающая матрица G´ укороченного кода получается из канонической матрицы G исходного удалением первых l строк и столбцов.
Пример 6.6.1. Удалив в канонической порождающей матрице (7,4) кода Хэмминга два левых столбца и две верхних строки, придем к канонической порождающей матрице укороченного линейного (5,2) кода
Слайд 92уже встречавшегося в параграфе 5.1. Разумеется, этот код – подобно исходному коду
уже встречавшегося в параграфе 5.1. Разумеется, этот код – подобно исходному коду
6.7. Коды симплексные, ортогональные и Рида-Маллера
Выпишем вновь m-разрядные двоичные числа столбец за столбцом, как это делалось при построении кода Хэмминга, однако на этот раз примем полученную m×(2m–1) матрицу в качестве не поверочной, а порождающей. Соответствующий линейный код именуется симплексным, так как при БФМ-отображении он превращается в семейство симплексных сигналов, обладающих, как известно, максимальным наименьшим евклидовым расстоянием. Длина этого кода n=2m–1, а число информационных бит k=m (объем M= 2m=n+1). Веса всех ненулевых слов симплексного кода одинаковы и равны (n+1)/2, так что его минимальное расстояние d=(n+1)/2=2m–1. Таким образом, рассматриваемый код исправляет (n+1)/4–1= 2m–2–1 ошибок и – в дополнение – обнаруживает любую ошибку кратности 2m–2=(n+1)/4.
Пример 6.7.1. Порождающая матрица симплексного (7,3) кода приведена справа. Построив с ее помощью все восемь кодовых слов, легко убедиться, что вес любого ненулевого слова равен четырем, т.е. код не только исправит любую однократную ошибку, но, к тому же, обнаружит любую двукратную.
Слайд 93Отметим, что коды U и U´ называются дуальными если порождающая матрица одного
Отметим, что коды U и U´ называются дуальными если порождающая матрица одного
Подобно кодам Хэмминга симплексные коды оптимальны в смысле расстояния, достигая при фиксированных длине n и числе кодовых слов M=n+1 верхней границы Плоткина: M=2d/(2d–n)=n+1.
Дополним теперь порождающую матрицу (2m–1, m) симплексного кода левым нулевым столбцом. Тем самым, к каждому слову приписывается слева заведомо нулевой бит, не несущий полезной информации. Полученная порождающая матрица отвечает (2m, m) ортогональному коду (название вновь унаследовано от ортогональных сигналов – функций Уолша, получаемых из кода БФМ-отображением). Расстояние и корректирующая способность после этой модификации порождающей матрицы остаются прежними: d=2m–1 =n/2, тогда как скорость несколько падает из-за увеличения длины. Как результат ортогональные коды не лежат на границе Плоткина.
Ортогональные коды длины 64 используются в мобильных сетях 2G стандарта cdmaOne (IS-95) для реализации множественного доступа в прямом канале и модуляции данными – в обратном. В 3G мобильных стандартах (WCDMA/UMTS, cdma2000) используются ортогональные коды бóльших длин n (вплоть до 512).
Добавим в порождающую матрицу ортогонального кода строку, состоящую только из единиц. В полученном (2m,m+1) коде, называемом кодом Рида-Маллера (первого порядка), окажется вдвое больше кодовых слов, чем в исходном, поскольку вместе с имеющимися словами в него войдут и их инверсии. Таким образом, код Рида-Маллера включает M=2m+1=2n кодовых слов длины n=2m.
Слайд 94Минимальное расстояние и исправляющая способность этого кода – те же, что и
Минимальное расстояние и исправляющая способность этого кода – те же, что и
Пример 6.7.2. Введя нулевой столбец, а затем строку из всех единиц в порождающую матрицу симплексного (7(7,3) кода, придем к показанной справа порождающей матрице (8,4) кода Рида-Маллера, содержащего 16 слов и имеющего минимальное расстояние d=4.
В противоположность высокоскоростным кодам Хэмминга, у которых с ростом длины скорость асимптотически стремится к единице, три рассмотренных класса кодов относятся к низкоскоростным, поскольку их скорость убывает с длиной, асимптотически приближаясь к нулю. С другой стороны, исправляющая способность кодов Хэмминга более, чем скромна в сравнении с этими кодами. Нижеследующая таблица содержит параметры первых пяти симплексных кодов и кодов Рида-Маллера.
Слайд 95Лекция 15
Лекция 15
Слайд 966.8. Синдромное декодирование линейных кодов
Одним из оснований особой популярности линейных кодов
6.8. Синдромное декодирование линейных кодов
Одним из оснований особой популярности линейных кодов
Дело в том, что в попытках реализовать декодер напрямую (храня в памяти таблицу всех слов и сравнивая последние с вектором наблюдения y для отыскания слова, ближайшего к нему), требования к объему памяти и/или быстродействию вычислений нередко противоречат реальности.
Пример 6.8.1. При прямом построении декодера (32,26) кода Хэмминга системы GPS понадобилось бы 256 Мбайт памяти. С процессором, выполняющим 107 операций в секунду (обращение к памяти, вычисление расстояния, сравнение с предыдущими данными) декодирование одного слова заняло бы около шести секунд, в то время как каждую секунду передается более одного слова.
Введем новое понятие: (n–k)-элементный вектор
где H – проверочная матрица кода U, называется синдромом (или синдромным вектором ). Всего для любого линейного двоичного кода возможны 2n-k различных значений синдрома.
Слайд 97Представим вектор наблюдения y как сумму переданного кодового вектора u и вектора
Представим вектор наблюдения y как сумму переданного кодового вектора u и вектора
В случае ДСК вектор ошибки содержит единицы на искаженных позициях u и нули на неискаженных.
Поскольку d(y,u)=W(y–u)=W(e), последнее представление y позволяет следующим образом интерпретировать декодирование по минимуму расстояния: достаточно найти такой вектор ошибки ê минимального веса (W(e)=min), вычитание которого из y даст кодовый вектор. Последний и будет принят за оценку переданного кодового слова: y–ê=û.
Любые два вектора ошибки, разность которых равна какому-либо кодовому вектору, имеют один и тот же синдром. Поэтому одним и тем же синдромом обладают в точности M=2k векторов ошибки. Множество всех таких векторов именуют смежным классом. Очевидно, количество смежных классов равно числу различных значений синдрома 2n–k. Вычисление синдрома позволяет определить вектор ошибки с точностью до смежного класса, т.е. сократить число тестируемых векторов ошибки в 2n–k раз. После того, как смежный класс найден, остается лишь отыскать в нем вектор ошибки минимального веса. Этот вектор называют лидером смежного класса. Конечно, все 2n-k лидеров смежных классов данного кода можно вычислить заранее и иметь в памяти в виде таблицы. При этом потребуются 2n–k позиций таблицы вместо 2k в прямой схеме декодера.
Для высокоскоростных кодов выигрыш в аппаратной сложности и временных затратах может оказаться гигантским. Для данных примера 6.8.1
Слайд 98экономия измерялась бы цифрами порядка 221 раз по обоим ресурсным показателям. В
экономия измерялась бы цифрами порядка 221 раз по обоим ресурсным показателям. В
Резюмируя, синдромное декодирование сводится к следующим операциям:
1. Для вектора наблюдений y вычисляется синдром: s= yHT;
2. Для вычисленного значения синдрома в таблице лидеров смежных классов отыскивается оценка вектора ошибки ê;
3. Оценка вектора ошибки ê вычитается из наблюдения y, давая в результате оценку принятого кодового вектора û.
Пример 6.8.2. Проверочная матрица (15,11) кода Хэмминга
Допустим, принято наблюдение y=(101100110101100). Тогда синдром sT есть вектор, равный сумме строк HТ с номерами 1,3,4,7,8,10,12,13 (позициями ненулевых символов в y): s=(0100). Так как код Хэмминга исправляет любую однократную ошибку, не обнаруживая и не исправляя более никаких ошибок, вектор некоторой однократной ошибки должен иметь именно этот синдром. Понятно, что такой ошибкой является искажение второго символа кодового слова. Значит, декодированный кодовый вектор получается изменением второго символа в наблюдении y: û=(111100110101100).
Слайд 99Лекция 16
Лекция 16
Слайд 1007. Циклические коды
7.1. Циклические коды. Кодовые полиномы. Полиномиальная арифметика
Линейный блоковый код U
7. Циклические коды
7.1. Циклические коды. Кодовые полиномы. Полиномиальная арифметика
Линейный блоковый код U
Продуктивным инструментом изучения и построения циклических кодов служит полиномиальное представление (повторяющее z-преобразование в теории дискретных систем). Кодовый полином, отвечающий кодовому вектору u=(u0, u1, … , un–2, un–1), определяется равенством
Коэффициенты u0, u1, …, un–1 кодового полинома – попросту элементы кодового слова (для q-ичного кода – элементы поля GF(q)), тогда как z – формальная переменная, служащая не для обобщенного представления произвольного элемента поля GF(q), а лишь для указания своей степенью позиции того или иного кодового символа как коэффициента полинома. Обозначим по соглашению z0 как 1. Например, полином u(z)= z7+z5+z2+1
Слайд 101Рассмотрим основные правила арифметики формальных полиномов с коэффициентами из GF(q) (полиномов над
Рассмотрим основные правила арифметики формальных полиномов с коэффициентами из GF(q) (полиномов над
Сложение двух полиномов a(z), b(z) и умножение полинома a(z) на скаляр α (элемент основного поля GF(q)) вводятся без затруднений:
устанавливая взаимно-однозначное соответствие векторного пространства и множества полиномов. Последние могут сами трактоваться как векторы пространства с описанными операциями сложения и умножения на скаляр.
Возьмем, к примеру, двоичные (т.е. над GF(2)) полиномы a(z)=z4+z2+z, b(z)=z6+z3+z2+1. Тогда их сумма a(z)+b(z)=z6+z4+z3+z+1.
Определим степень deg(f(z)) полинома f(z) как максимальный показатель в нем переменной z, имеющей ненулевой коэффициент. Например, для только что упомянутых полиномов deg(a(z))=4, deg(b(z))=6. Очевидно, deg(a(z)+b(z))≤max{deg(a(z)), deg(b(z))}, deg(αa(z))=deg(a(z)), α≠0.
Новой операцией, не участвовавшей в определении векторного пространства, но критически важной для множества полиномов, является умножение последних. Распространяя на формальные полиномы правило дистрибутивности, а также коммутативность типа zm·α=αzm, произведение
означает, что в соответствующем кодовом векторе u единицы стоят на позициях 0, 2, 5, 7, в то время как, все остальные элементы равны нулю: u=(10100101).
Слайд 102полиномов можно определить равенством, полностью заимствованным из «школьной» алгебры полиномов с действительными
полиномов можно определить равенством, полностью заимствованным из «школьной» алгебры полиномов с действительными
При вычислении коэффициента ci (являющегося, кстати, сверткой последовательностей коэффициентов сомножителей) at и bi-t полагаются равными нулю, если их индексы выходят из диапазонов t∈{0,1, …, m}, i–t∈{0,1,…, l}. Заметим также, что deg(a(z)b(z))= deg(a(z))+deg(b(z)).
Для прежнего примера a(z)=z4+z2+z, b(z)=z6+z3+z2+1 произведение a(z)b(z)=z10+z8+z6+z5+z4+z3+z2+z.
В абстрактной алгебре структура, в которой элементы можно складывать, вычитать и умножать, называется кольцом (если, вдобавок, любой ненулевой элемент обратим по умножению, т.е. деление также присутствует, кольцо становится полем). Понятно, что множество полиномов над GF(q) является кольцом. Другим, более простым примером кольца служит множество целых чисел. В таком кольце с операцией умножения связан известный алгоритм деления с остатком. Возьмем некоторое положительное целое d. Тогда любое целое a можно записать как
Слайд 103где неотрицательное целое r , меньшее d , называется остатком (от деления
где неотрицательное целое r , меньшее d , называется остатком (от деления
В этом равенстве, возможном для любых a(z), d(z), мы можем вновь именовать полиномы a(z), d(z), q(z) и r(z) делимым, делителем, частным и остатком соответственно.
Для вычисления частного и остатка при полиномиальном делении можно прибегнуть к алгоритму «длинного деления в столбик», переносящему на полиномы школьное правило деления целых чисел.
Пример 7.1.1. Разделим с остатком полином a(z)=z6+z3+1 на полином d(z)=z4+z2+1 над GF(2). Алгоритм деления «в столбик» дает:
Слайд 104делитель
частное
делимое
остаток
В теории циклических кодов важнейшая роль принадлежит остатку.
Часто используемая символика
означает, что
делитель
частное
делимое
остаток
В теории циклических кодов важнейшая роль принадлежит остатку.
Часто используемая символика
означает, что
deg(r(z)) меньше, чем deg(d(z)), то r(z) является остатком a(z). Если r(z)=0, т.е. a(z)=d(z)q(z)=0 mod(d(z)), то говорят, что a(z) делится на d(z) , или d(z) делит a(z) , или d(z) является делителем a(z), или, наконец, a(z) кратно d(z) . Уместно также говорить, что a(z) факторизуется на множители меньшей степени.
Полином, который не факторизуется на множители меньшей степени, называется неприводимым, в противоположность приводимому.
Так, например, полином z2+1 приводим в поле CF(2), тогда как z2+z+1 – неприводим. Неприводимые полиномы, не делясь ни на какие полиномы меньшей ненулевой степени, играют в полиномиальном кольце ту же роль, что и простые числа в кольце целых чисел.
Слайд 105Лекция 17
Лекция 17
Слайд 1067.2. Порождающий и проверочный полиномы циклического кода
Возьмем кодовое слово u=(u0, u1, …
7.2. Порождающий и проверочный полиномы циклического кода
Возьмем кодовое слово u=(u0, u1, …
т.е. полином u1(z) циклически сдвинутого слова получается умножением исходного полинома u(z) на z и удержанием остатка от деления результата на бином zn–1. Повторяя сдвиг t раз, можно убедиться, что кодовый полином ut(z) t -кратно сдвинутого слова u
Выделим среди всех кодовых полиномов кода U ненулевой полином g(z) наименьшей степени r. Вследствие линейности U старший коэффициент gr полинома g(z) можно всегда считать равным 1:
Полином g(z) называют порождающим полиномом кода U.
Слайд 107Теорема 7.2.2. Порождающий полином циклического кода длины n является делителем бинома zn–1.
Теорема 7.2.2. Порождающий полином циклического кода длины n является делителем бинома zn–1.
Пример 7.2.1. Порождающими полиномами двоичных циклических кодов длины 7 могут быть только делители бинома z7–1=z7+1. Легко убедиться, что z7+1=(z+1)(z3+z+1)(z3+z2+1), где все сомножители неприводимы. Тем самым
Слайд 108только эти сомножители либо их произведения могут служить порождающими полиномами (7, k)
только эти сомножители либо их произведения могут служить порождающими полиномами (7, k)
называется проверочным полиномом циклического кода. Его роль связана с тем фактом, что произведение любого кодового полинома циклического кода на проверочный полином h(z) делится на бином zn–1:
Пример 7.2.2. Приняв в примере 7.2.1 полином g(z)=z3+z+1 в качестве порождающего, придем к проверочному h(z)=(z+1)(z3+z2+1)=z4+z2+z+1.
Введем еще одно определение. Полином h(z) , являющийся частным от деления бинома zn–1 на порождающий полином g(z):
7.3. Систематический циклический код
Построение кодовых полиномов непосредственным перемножением Построение кодовых полиномов непосредственным перемножением информационного и порождающего полиномов не приводит к систематическим кодовым словам.
Пример 7.3.1. Воспользуемся для построения двоичного (7,4) циклического кода порождающим полиномом g(z)=z3+z+1 (см. пример 7.2.1).
Слайд 109Сообщению (1110) отвечает информационный полином a(z)=z2+z+1. При этом кодовый полином, получаемый прямым
Сообщению (1110) отвечает информационный полином a(z)=z2+z+1. При этом кодовый полином, получаемый прямым
предписывающим умножение информационного полинома на zr=zn–k (другими словами, сдвиг информационных битов на n–k позиций вправо) и вычитание из полученного результата остатка r(z) от деления его на порождающий полином g(z). Полученный так полином u(z) делится на g(z), а значит, все кодовые полиномы остаются прежними – всеми полиномами степени не большей n–1, делящимися на g(z). Единственное, что изменилось в результате описанной модификации кода – теперь k старшими коэффициентами u(z) оказались информационные биты , т.е. на k последних позициях кодового вектора разместились «чистые» информационные биты.
Чтобы преобразовать фиксированный циклический код к систематической форме, нужно лишь переупорядочить соответствие между информационным и кодовым полиномами (не меняя последних!). Изящный алгоритм такого переупорядочения дается равенством
Пример 7.3.2. Для условий примера 7.3.1 zn–ka(z)=z3(z2+z+1)= z5+z4+z3, что
Слайд 110после деления на g(z) дает остаток r(z)=z. В итоге u(z)= z5+z4+z3+z, и
после деления на g(z) дает остаток r(z)=z. В итоге u(z)= z5+z4+z3+z, и
Слайд 111Лекция 18
Лекция 18
Слайд 1127.4. Порождающая и проверочная матрица циклического кода
Как и любой линейный, циклический код
7.4. Порождающая и проверочная матрица циклического кода
Как и любой линейный, циклический код
Слайд 113Если систематичность кода не является непременным условием, порождающая матрица легко строится непосредственно
Если систематичность кода не является непременным условием, порождающая матрица легко строится непосредственно
7.5. Циклические кодеры
Линейность циклических кодов означает безоговорочную применимость к ним всех методов кодирования и декодирования, рассмотренных в предыдущей главе. В то же время свойство цикличности зачастую открывает дополнительные возможности упрощения кодера в аппаратной реализации. Так, если приемлем несистематический вариант кода, структура кодера оказывается особенно простой. Поскольку любой кодовый полином u(z) такого кода есть произведение информационного a(z) и порождающего g(z) полиномов, компоненты соответствующего кодового вектора u являются сверткой информационной последовательности a0, a1, … , ak–1 с последовательностью коэффициентов порождающего полинома g0, g1, … , gn–1.
Слайд 114Обратимся теперь к структуре систематического циклического кодера. Согласно сказанному в параграфе 7.3,
Обратимся теперь к структуре систематического циклического кодера. Согласно сказанному в параграфе 7.3,
Подобная операция реализуется фильтром с конечной импульсной характеристикой (КИХ–фильтром) вида
1
2
r–1
r
a0, a1, … , ak–1
u0, u1, … , un–1
g0
g1
gr–1
gr=1
Слайд 115имеет степень не более n–1 и после сложения с ak–2zn–2 используется на
имеет степень не более n–1 и после сложения с ak–2zn–2 используется на
ak–1zn–1
ak–1zn–1+ak–1gr–1zn–2+…+ak–1g0zn–r–1
zr+gr–1zr–1+…+g0
ak–1zn–r–1
r1,n–2zn–2+r1,n–3zn–3+…+r1,n–r–1zn–r–1=r1(z)
–
Первая итерация:
Вторая итерация:
(r1,n–2+ak–2 )zn–2+r1,n–3zn–3+…+r1,n–r–1zn–r–1
(r1,n–2+ak–2 )zn–2+…+(r1,n–2+ak–2 )g0zn–r–2
(r1,n–2+ak–2 )zn–r–2
r2,n–3zn–3+r2,n–4zn–4+…+r2,n–r–2zn–r–2=r2(z)
–
zr+gr–1zr–1+…+g0
И т. д.
Слайд 116+
+
×
+
+
g0
g1
g2
gr–1
1
2
r
S1
S2
B
1
2
вход
выход
ak–1, ak–2, …, a0
C0
C1
C2
Cr–1
r1
r2
rr–1
rr
B1
B2
Br–1
+r2,n–4zn–4+…+r2,n–r–2zn–r–2, степень которого не превышает n–3. Остаток r2(z) вновь
+
+
×
+
+
g0
g1
g2
gr–1
1
2
r
S1
S2
B
1
2
вход
выход
ak–1, ak–2, …, a0
C0
C1
C2
Cr–1
r1
r2
rr–1
rr
B1
B2
Br–1
+r2,n–4zn–4+…+r2,n–r–2zn–r–2, степень которого не превышает n–3. Остаток r2(z) вновь
×
×
×
+
+
+
–
–
–
Слайд 117оказывается очередной остаток, с которым производятся те же действия на следующей итерации.
оказывается очередной остаток, с которым производятся те же действия на следующей итерации.
Пример 7.5.1. Кодер (7,4) кода из примера 7.3.2 приведен на следующем слайде. Там же дана таблица, содержащая значения информационных битов, состояние регистра и выходное слово. Как видно, при прежнем информационном полиноме a(z)=z2+z+1 последняя колонка таблицы, читаемая снизу вверх, совпадает со словом, полученным в примере 7.3.2.
Слайд 1187.6. Синдромное декодирование циклических кодов
С учетом того, что все кодовые полиномы циклического
7.6. Синдромное декодирование циклических кодов
С учетом того, что все кодовые полиномы циклического
Слайд 119где, в свою очередь, e(z)=en–1zn–1+en–2zn–2+…+e0 – полином ошибки. Назовем синдромным полиномом или
где, в свою очередь, e(z)=en–1zn–1+en–2zn–2+…+e0 – полином ошибки. Назовем синдромным полиномом или
2. По полученному полиному s(z) из таблицы лидеров смежных классов находится оценка полинома ошибки e(z)
3. Вычитанием оценки e(z) из полинома наблюдения y(z) формируется оценка кодового полинома u(z), соответствующего принятому слову.
Так как вычисление синдрома состоит в делении полиномов с остатком, первый из перечисленных этапов можно выполнить с помощью уже известного регистра сдвига с линейной обратной связью. Соответствующая структура, приведенная ниже, лишь незначительно отличается от схемы систематического циклического кодера из параграфа 7.5.
Исходно ключ S1 замкнут, а S2 – разомкнут. Вектор наблюдения поступает на вход, начиная с элемента yn–1. По выполнении k тактов S1 размыкается, S2
Слайд 120+
+
g0
g1
1
2
in
yn–1, yn–2, …, y0
+
+
g2
gr–1
r
S1
S2
out
×
×
×
×
+
+
+
–
–
–
замыкается и в регистре хранится слагаемое остатка, обусловленное отсчетами
+
+
g0
g1
1
2
in
yn–1, yn–2, …, y0
+
+
g2
gr–1
r
S1
S2
out
×
×
×
×
+
+
+
–
–
–
замыкается и в регистре хранится слагаемое остатка, обусловленное отсчетами
Пример 7.6.1. Для (7,4) кода примера 7.4.1 вычислитель синдрома реализуется структурой, показанной ниже. Пусть вектор наблюдения y=(0101010), что отвечает полиному наблюдения y(z)=z5+z3+z. Тогда полином синдрома будет s(z)=z2+z. Среди полиномов ошибки единичного веса указанным синдромом обладает e(z)=z4. Значит, для завершения декодирования следует изменить пятый символ вектора y, придя к оценке u=(0101110) (см. пример 7.5.1).
Слайд 121+
+
S1
S2
out
in
y6, y5, …, y0
1
2
3
В цикличности заложен потенциал и дальнейших упрощений аппаратных декодеров
+
+
S1
S2
out
in
y6, y5, …, y0
1
2
3
В цикличности заложен потенциал и дальнейших упрощений аппаратных декодеров
Для
Слайд 122Лекция 19
Лекция 19
Слайд 1238. Коды БЧХ и Рида-Соломона
8.1. Расширенные конечные поля
Как уже известно, конечные
8. Коды БЧХ и Рида-Соломона
8.1. Расширенные конечные поля
Как уже известно, конечные
Из предыдущего можно заключить, что искусство конструирования хороших циклических кодов состоит в умении находить подходящие порождающие полиномы. К сожалению, перечень известных методов построения порождающих полиномов циклических кодов с прогнозируемой исправляющей способностью и приемлемой скоростью достаточно скуден. В предлагаемой главе рассматривается наиболее продуктивный из них.
Слайд 124Пример 8.1.1. Обратимся к полиному f(x)=x3+x+1. Поскольку он неприводим и имеет степень
Пример 8.1.1. Обратимся к полиному f(x)=x3+x+1. Поскольку он неприводим и имеет степень
Слайд 125Отметим, что в числе полиномов степени не выше m–1 присутствуют и полиномы
Отметим, что в числе полиномов степени не выше m–1 присутствуют и полиномы
8.2. Мультипликативный порядок элементов поля. Примитивные элементы
В любом поле GF(q), будь оно простым или расширенным, можно перемножать любые операнды, в том числе l-кратно умножать элемент α на себя. Естественно называть такое произведение l-й степенью элемента α, обозначив его как
Тогда,
Слайд 126и для любого ненулевого α
Таким образом, в конечных полях действуют те же
и для любого ненулевого α
Таким образом, в конечных полях действуют те же
Возьмем некоторый ненулевой элемент α∈GF(q) и рассмотрим его степени α1, α2, …, αl, … . Поскольку все они принадлежат конечному полю GF(q), в рассматриваемой последовательности рано или поздно появятся повторения, так что для некоторых l и s (l>s) αl= αs , а значит, αl-s=1. Назовем минимальное натуральное число dα, для которого
мультипликативным порядком элемента α. Разумеется, единичный элемент (и только он) любого конечного поля обладает мультипликативным порядком, равным единице, т.е. d1=1. Следующая теорема показывает, что мультипликативные порядки элементов поля GF(q) подчиняются достаточно строгому ограничению.
Слайд 127Теорема 8.2.1. Мультипликативный порядок любого ненулевого элемента поля GF(q) делит q–1, т.е.
Теорема 8.2.1. Мультипликативный порядок любого ненулевого элемента поля GF(q) делит q–1, т.е.
Пример 8.2.1. Элемент 2 поля GF(7) имеет мультипликативный порядок d2=3 поскольку для него 21=2, 22=4, 23=1. Подобно этому, как легко видеть, d3=6, d4=3, d5=6, d6=2. Все найденные мультипликативные порядки делят число ненулевых элементов поля p–1=6.
Пример 8.2.2. В поле GF(8) (см. пример 8.1.1) число ненулевых элементов поля – простое: q–1=7, а, значит, его делители – только числа 1 и 7. Так как единственный элементом мультипликативного порядка 1 – единица поля, все остальные ненулевые элементы имеют максимальный мультипликативный порядок, равный 7.
Элемент ς поля GF(q) максимального мультипликативного порядка dς=q–1 называется примитивным элементом поля. Замечательное свойство примитивного элемента состоит в том, все его q–1 последовательных степеней : ς1=ς, ς2, …, ςq–2, ςq–1=ς0=1 различны, т.е. пробегают все ненулевые элементы поля GF(q).
Пример 8.2.3. Элементы 3 и 5 поля GF(7) (см. пример 8.2.1) являются примитивными, тогда как остальные ненулевые элементы непримитивны. Действительно, p–1=6 степеней элемента 3 различны: 31=3, 32=2, 33=6, 34=4, 35=5, 36=30=1. Для непримитивного элемента поля, например 2, подобные вычисления дают 21=2, 22=4, 23=1, 24=2, 25=4, 26=1, так что возведением 2 в различные степени можно получить лишь некоторые (но не все!) ненулевые элементы GF(7).
Слайд 128Пример 8.2.4. В поле GF(8) (см. пример 8.2.2) все ненулевые элементы поля
Пример 8.2.4. В поле GF(8) (см. пример 8.2.2) все ненулевые элементы поля
Расширенное поле, построенное как множество полиномов по модулю некоторого неприводимого полинома (см. пример 8.1.1), всегда содержит в качестве элемента полином x . Если окажется, что x – примитивный элемент (ς=x), неприводимый полином, использованный при построении поля, называется примитивным. Примитивные полиномы произвольной степени m существуют над любым конечным полем. Они особенно удобны для построения расширенных полей, так как с их использованием таблица умножения значительно упрощается. Действительно, любые ненулевые элементы α и β расширенного поля GF(pm) могут быть выражены как некоторые l–я и s–я степени примитивного элемента ς: α=ςl, β=ςs. Тогда αβ=ςl+s, так что таблицу степеней примитивного элемента легко использовать и как таблицу умножения.
Построение расширенного поля GF(pm) в виде таблицы степеней примитивного элемента начинается с выбора примитивного полинома степени m над простым полем GF(p): f(x)=xm+fm-1xm-1+…+f0. Подобные полиномы либо даются в специальных таблицах, либо маркируются особой меткой в таблицах неприводимых полиномов. Не составляет труда и их компьютерный поиск. Для m-й степени элемента x по модулю f(x) имеет место равенство xm= –fm-1xm–1–fm-2 xm–2–…–f0. Примитивность элемента x позволяет обозначить его как ς, после чего ςm= – fm–1ςm–1– fm–2ςm–2–…–f0.
Слайд 129Отсюда ςm+1= ς·ςm= ς(–fm-1ςm–1–fm–2ςm–2–…–f0)=–fm–1ςm–fm–2ςm–1–…–f0ς. В правой части этого равенства вновь подставим ςm=
Отсюда ςm+1= ς·ςm= ς(–fm-1ςm–1–fm–2ςm–2–…–f0)=–fm–1ςm–fm–2ςm–1–…–f0ς. В правой части этого равенства вновь подставим ςm=
Пример 8.2.5. Полином f(x)=x3+x+1 примитивен над GF(2). Учтя, что в GF(8) построенном с помощью f(x), x3= x+1 и обозначив x=ς, имеем ς3=ς+1. Вычислив следующие степени ς, придем к таблице
Перемножая два элемента поля, например ς+1 and ς2+ς+1, можно воспользоваться представлениями ς+1=ς3 и ς2+ς+1=ς5, так что ς3ς5=ς8=ς7ς=ς.
Слайд 1308.3. Некоторые свойства расширенных конечных полей
Установим в данном параграфе некоторые вспомогательные
8.3. Некоторые свойства расширенных конечных полей
Установим в данном параграфе некоторые вспомогательные
Теорема 8.3.1. Среди всех элементов расширенного поля GF(2m) лишь элементы основного подполя GF(2) , т.е. 0 и 1, удовлетворяют равенству
Теорема 8.3.2. Для любых элементов α, β поля GF(2m)
Эту теорему нетрудно обобщить на любое натуральное l и произвольное число s элементов α1, α2, …, αs∈ GF(2m):
Слайд 131называются сопряженными с элементом α. Их роль в конечных полях, как вскоре
называются сопряженными с элементом α. Их роль в конечных полях, как вскоре
Можно доказать, что длина l последовательности сопряженных с α элементов (сопряженного цикла) в поле GF(2m) всегда делит степень расширения m.
Результаты параграфа без труда обобщаются на расширения недвоичных простых полей GF(p), однако в нашем контексте это не потребуется.
Познакомимся теперь с еще одним определением. Пусть α ∈ GF(2m). Тогда элементы GF(2m)
различны, но очередной добавленный элемент повторит один из предыдущих, это может означать только
Слайд 1328.4. Построение полиномов с заданными корнями
Одно из фундаментальных положений классической алгебры
8.4. Построение полиномов с заданными корнями
Одно из фундаментальных положений классической алгебры
Последнее указывает способ построения полинома с заданными корнями x1, x2, …, xm. Если нужен действительный полином f(x) (т.е. с действительными коэффициентами или над полем действительных чисел), имеющий, однако, комплексные корни, в число корней f(x) наряду с любым комплексным корнем должен быть включен и комплексно-сопряженный с ним. Иначе говоря, комплексные корни любого действительного полинома всегда образуют сопряженные пары. Как выяснится далее, весьма похожая ситуация характерна и для полиномов над конечными полями.
Расширим нашу трактовку полиномов g(z) над конечным полем, рассматривая их как функции переменной z. Последняя, тем самым, с этого момента – не только формальный индикатор позиции символа, но и «истинная переменная», допускающая подстановку конкретного значения. В частности, взяв некоторый двоичный полином g(z) (т.е. полином над GF(2)), можно подставить в нем вместо z элемент некоторого расширения. Если при подстановке элемента α∈GF(2m) в двоичный полином g(z), g(α)=0, говорят, что
Слайд 133g(z) имеет корень α (лежащий) в расширении GF(2m).
Пример 8.4.1. Рассмотрим полином g(z)=z3+z2+1.
g(z) имеет корень α (лежащий) в расширении GF(2m).
Пример 8.4.1. Рассмотрим полином g(z)=z3+z2+1.
Следующий факт свидетельствует об упомянутой ранее параллели с обычной алгеброй.
Теорема 8.4.1. Если двоичный полином g(z) имеет корень α в расширенном поле GF(2m) , то и все сопряженные элемента α – также корни g(z).
Пример 8.4.2. Возвращаясь к предыдущему примеру, нетрудно убедиться, что полином g(z)=z3+z2+1 наряду с ς3 имеет в GF(8) корни (ς3)2=ς6 (g(ς6)=ς4+ς5+1=ς2+ς+ς2+ς+1+1=0) и (ς3)4=ς5 (g(ς5)=ς+ς3+1=ς+ς+1+1=0), которые являются элементами, сопряженными с ς3. Понятно, что при степени три g(z) не может иметь других корней, помимо найденных.
Двоичный полином наименьшей степени, для которого элемент α∈GF(2m) является корнем, называется минимальным полиномом α. Введем для него обозначение gα(z) и сформулируем следующее утверждение.
Теорема 8.4.2. Пусть l – длина сопряженного цикла элемента α. Тогда
Слайд 134где все q–1 ненулевых элементов GF(q) выражены как степени примитивного элемента ς.
Теорема
где все q–1 ненулевых элементов GF(q) выражены как степени примитивного элемента ς.
Теорема
Как следствие этой теоремы справедливо следующее равенство
Слайд 135Лекция 20
Лекция 20
Слайд 1368.5. Двоичные БЧХ-коды
Накопленные к данному моменту знания открывают путь к ознакомлению с
8.5. Двоичные БЧХ-коды
Накопленные к данному моменту знания открывают путь к ознакомлению с
Теорема 8.5.1. (теорема БЧХ). Пусть полином g(z) имеет в расширенном поле GF(2m) корни ς, ς2, …, ςs , где ς – примитивный элемент поля GF(2m). Тогда циклический код с порождающим полиномом g(z) имеет минимальное расстояние d, не меньшее s+1.
Для доказательства теоремы предположим, что имеется кодовое слово веса s или менее. Делимость его кодового полинома u(z) на порождающий g(z) означает обращение этого полинома в нуль при z=ςi, i=1,2, …, s:
_________________________
1Аббревиатура БЧХ соответствует именам: Боуз Р.К., Рей-Чоудхури Д.К., Хоквингем А
Слайд 137и не может быть вырожденной, если все элементы первой строки различны. Но
и не может быть вырожденной, если все элементы первой строки различны. Но
где j1, j2, …, js обозначают позиции компонентов слова, которые могут быть ненулевыми. Как видно, существование кодового слова веса s или менее равносильно существованию ненулевого решения квадратной s×s системы линейных уравнений с нулевой правой частью. Подобное решение существует только при вырожденной матрице системы. Матрица же нашей системы (ассоциированная с известной матрицей Вандермонда) имеет специфический вид
Теперь алгоритм построения БЧХ-кодов можно описать следующим образом. Для значения m, обеспечивающего необходимую длину кода n=2m–1, выбирается примитивный полином f(x) и строится расширенное поле GF(2m), как это сделано в примере 8.2.5. После этого в поле GF(2m) выбираются степени примитивного элемента ς, ς2, …, ςs, которым предстоит служить
Слайд 138корнями порождающего полинома. Любой из них, однако, должен войти в число корней
корнями порождающего полинома. Любой из них, однако, должен войти в число корней
где l1 – длина сопряженного цикла элемента ς, равная m вследствие примитивности ς. Полином g1(z) – является двоичным полиномом минимальной степени, имеющим корень ς , т.е. минимальным полиномом ς. Следующим корнем порождающего полинома должен быть элемент ς2, уже учтенный сомножителем g1(z), так как он сопряжен с ς. Если s>2, следующим корнем порождающего полинома должен быть элемент ς3 также со всеми своими сопряженными (ς3)2, (ς3)4, … , что означает включение в g(z) сомножителя в виде минимального полинома элемента ς3
где l3 – длина сопряженного цикла для ς3. Подобные шаги продолжаются пока не будут найдены минимальные полиномы для всех элементов множества ς, ς2, …, ςs, не охваченных ранее. По исчерпании всех необходимых корней порождающего полинома g(z) последний строится как произведение всех найденных минимальных полиномов:
Слайд 139Гарантией того, что построенный таким образом полином можно использовать как порождающий для
Гарантией того, что построенный таким образом полином можно использовать как порождающий для
Пример 8.5.1. Построим порождающий полином g(z) БЧХ-кода длины n=23–1=7, исправляющего любую однократную ошибку. Необходимое для этого расширенное поле GF(8) уже построено в примере 8.2.5. Поскольку s=2t=2, корнями порождающего полинома должны быть элементы ς и ς2. Минимальный полином элемента ς имеет вид g1(z)=(z+ς)(z+ς2)(z+ς4)= =z3+(ς+ς2+ς4)z2+(ςς2+ςς4+ς2ς4)z+ςς2ς4. Но ς+ς2+ς4=ς+ς2+ς+ς2=0, ςς2+ςς4+ς2ς4= =ς3+ς5+ς6=ς+1+ς2+ς+1+ς2+1=1, ςς2ς4=ς7=1, так что g1(z)= z3+z+1. Элемент ς2, уже учтен в g1(z), а других обязательных корней g(z) нет, поэтому g(z)= =g1(z)=z3+z+1. Поскольку deg(g(z))=3, число информационных символов кода k=4, и, таким образом, построенный код оказался циклической версией (7,4) кода Хэмминга, исправляющего любую однократную ошибку.
Если изменить условия примера, потребовав исправления до двух ошибок (t=2⇒s=4), множество обязательных корней полинома g(z) пришлось бы расширить до ς, ς2, ς3, ς4. Поскольку элементы ς, ς2 and ς4 входят в один и тот же сопряженный цикл, т.е. уже охвачены минимальным полиномом g1(z), остается найти лишь минимальный полином для ς3 (корнями которого будут и сопряженные с ним элементы ς6 и ς12= ς5). Степень последнего равна трем, так что степень g(z) окажется равной шести, и полученный код есть тривиальный (7,1) код с повторением, передающий
Слайд 140Разумеется, в наши дни системный дизайнер свободен от необходимости поиска порождающих полиномов
Разумеется, в наши дни системный дизайнер свободен от необходимости поиска порождающих полиномов
лишь один бит информации.
Для точного определения числа информационных символов следует найти длины всех сопряженных циклов, что также не является сколько-нибудь сложной задачей.
Пример 8.5.2. Сколько информационных бит содержит БЧХ-код, исправляющий любую однократную ошибку? Для ответа на этот вопрос заметим, что, поскольку t=1, обязательными корнями порождающего полинома g(z) являются ς и ς2. Так как они принадлежат одному сопряженному циклу ς, ς2, … , длины m, g(z)=g1(z), причем deg(g(z))=m. Поэтому k=n–deg(g(z))=2m–m–1, т.е. БЧХ-код, исправляющий однократные
Слайд 141Пример 8.5.3. Найдем точное число информационных бит БЧХ-кода длины n=31, исправляющего до
Пример 8.5.3. Найдем точное число информационных бит БЧХ-кода длины n=31, исправляющего до
ошибки, есть попросту циклическая версия кода Хэмминга.
Слайд 142Лекция 21
Лекция 21
Слайд 1438.6. Коды Рида-Соломона
Если при построении порождающего полинома g(z) согласно теореме БЧХ игнорировать
8.6. Коды Рида-Соломона
Если при построении порождающего полинома g(z) согласно теореме БЧХ игнорировать
называемый кодом Рида-Соломона (кодом РС) полностью удовлетворяет условиям теоремы БЧХ, и, значит, имеет минимальное расстояние d≥s+1. Длина такого кода n=q–1=2m–1 символов (q- ичных, не двоичных!) и так как степень g(z) теперь равна в точности s, число информационных символов (не битов, q-ичных символов!) k=n–s. Отсюда следует, что d≥n–k+1. В то же время согласно границе Синглтона для любого кода d≤n–k+1. Поэтому расстояние d и разность n–k+1 в точности равны, и параметры кодов РС
Слайд 144где свобода выбора числа информационных символов k ограничена лишь одним: с увеличением
где свобода выбора числа информационных символов k ограничена лишь одним: с увеличением
Так как коды РС лежат на границе Синглтона, они оптимальны по критерию расстояния среди всех 2m-ичных кодов той же длины и скорости.
Разумеется, любой 2m-ичный символ можно записать как двоичный m-битовый блок. Подобное “раскрытие” символов кода РС даст двоичный код длины nb=mn=m(2m–1) с числом информационных битов kb=mk и скоростью R=kb/nb=k/n. При этом, однако, нет оснований рассчитывать на увеличение кодового расстояния, так что для полученного кода вновь d=n–k+1= =(nb–kb)/m+1, и в классе двоичных он не обладает выдающимися свойствами в части исправления случайных ошибок. С другой стороны, такой код весьма эффективен в борьбе с так называемыми пакетами ошибок (см. гл. 10): пакет, накрывающий до t=(d–1)/2 последовательных 2m-ичных символов искажает примерно в m раз больше последовательных двоичных символов. Но ведь любая такая конфигурация ошибок корректируется в силу исправления кодом РС вплоть до t ошибок! Поэтому “двоично-представленный” код РС исправит любой пакет “двоичных” ошибок вплоть до длины, близкой к mt.
Пример 8.6.1. Найдем порождающий полином восьмеричного кода РС, исправляющего ошибки вплоть до двукратных. Так как этот код должен иметь расстояние d=5, то s=4 и корни его порождающего полинома ς, ς2, ς3, ς4.
Слайд 145Коды БЧХ и РС находят широкое применение в современных информационных системах. Приведем
Коды БЧХ и РС находят широкое применение в современных информационных системах. Приведем
8.7. Примеры приложений
где использована таблица из Примера 8.2.5. Восьмеричный кодовый вектор, соответствующий этому кодовому полиному u=(ς3, ς, 1, ς3, 1, 0, 0), имеет вес 5. Обращаясь вновь к Примеру 8.2.5 и представляя символы GF(8) трехразрядными двоичными числами, получим двоичный кодовый вектор u=(011010001011001000000).
В заключение заметим, что любой БЧХ-код можно, конечно, преобразовать в укороченныйВ заключение заметим, что любой БЧХ-код можно, конечно, преобразовать в укороченный без потери корректирующей способности. Поэтому коды РС сохраняют при укорочении оптимальность по отношению к границе Синглтона. Еще одна ремарка касается выбора корней в конструкции БЧХ. Легко убедиться, что если в теореме БЧХ ряд s последовательных корней начинается с ςj, имея вид ςj, ςj+1, …, ςj+s–1 при произвольном j, утверждение теоремы остается справедливым. Иногда j=0 или иное предпочтительно по сравнению с j=1.
В итоге
Слайд 146укороченных (32,28) и (28,24) кодов РС. Стандарт цифрового телевизионного вещания DVB-T (Digital
укороченных (32,28) и (28,24) кодов РС. Стандарт цифрового телевизионного вещания DVB-T (Digital
Слайд 1479. Введение в сверточные коды
9.1. Основные определения
Наряду с блоковыми кодами, рассмотренными в
9. Введение в сверточные коды
9.1. Основные определения
Наряду с блоковыми кодами, рассмотренными в
t
t
k
k
k
k
n
n
n
n
Информ. символы
Кодовые символы
Слайд 148Сверточное (вообще, решетчатое) кодирование предполагает несколько иное отображения информационных битов в кодовые
Сверточное (вообще, решетчатое) кодирование предполагает несколько иное отображения информационных битов в кодовые
n
n
n
t
t
m
Информ. символы
Кодовые символы
Параметр m сверточного кода показывает, сколько битов источника влияют на текущую n-символьную кодовую группу, и называется длиной кодового ограничения. На рисунке выше m=4 и n=2.
Слайд 149Стандартная сема сверточного кодера базируется на регистре сдвига, содержащем m–1 двоичных ячеек
Стандартная сема сверточного кодера базируется на регистре сдвига, содержащем m–1 двоичных ячеек
подключение всех сумматоров к общему выходу), с тем чтобы разместить на длительности одного бита данных всю текущую n-символьную кодовую группу. После кодирования текущего и m–1 предыдущих битов содержимое регистра сдвигается вправо, на вход поступает новый бит, а «старейший» покидает регистр и на дальнейшие кодовые символы не влияет.
Слайд 150Если подать на вход этого устройства k информационных битов, на выходе появится
Если подать на вход этого устройства k информационных битов, на выходе появится
Пример 9.1.1. Рассмотрим сверточный кодер, показанный ниже. Он содержит двухразрядный регистр сдвига и, следовательно, формирует код с
Слайд 151длиной кодового ограничения m=3. Скорость этого кода R=1/2, так как на каждый
длиной кодового ограничения m=3. Скорость этого кода R=1/2, так как на каждый
1
2
S
in
out
u2
u1
Удобно восьмеричное представление порождающих полиномов: все коэффициенты полинома выписываются слева направо и читаются как одно двоичное число, преобразуемое затем в восьмеричное. В примере выше (g1(z), g2(z))=(5, 7), тогда как, к примеру, полиному g(z)=1+z+z3+z6 отвечает восьмеричное представление 151. Прямо из определения порождающих полиномов следует, что наибольшая из их степеней всегда на единицу меньше длины кодового ограничения. Другими словами, память регистра сдвига (число его ячеек) совпадает с максимальной из степеней порождающих полиномов.
Слайд 152Нетрудно убедиться в линейности сверточных кодов. Более того, само их название связано
Нетрудно убедиться в линейности сверточных кодов. Более того, само их название связано
Вполне понятно, что отыскание хорошего сверточного кода сводится к подбору подходящих порождающих полиномов. Что касается памяти m–1, естественная общая тенденция состоит в том, что ее увеличение способствует повышению помехоустойчивости кода. Поиск же самих порождающих полиномов, в противоположность ситуации, характерной для циклических кодов, базируется в большей степени на компьютерном переборе, чем на серьезной теоретической поддержке.
Одно из оснований популярности сверточных кодов в современных телекоммуникациях – существование элегантного и ресурсосберегающего алгоритма декодирования (алгоритма Витерби), детально изучаемого в параграфе 9.4.
Если какой-либо из порождающих полиномов имеет нулевую степень (без потери общности можно считать, что это g1(z)): g1(z)=1, сверточный код называется систематическим, поскольку текущий информационный бит явно присутствует как первый символ в кодовой n-группе. Следует, однако, отметить, что при формировании сверточных кодов вышеописанным способом эквивалентности между систематическими и несистематическими кодами (в отличие от блоковых кодов) нет, причем несистематические, как правило, эффективнее.
Слайд 153Лекция 22
Лекция 22
Слайд 1549.2. Диаграмма состояний и решетчатая диаграмма сверточного кода. Свободное расстояние
Любой сверточный кодер
9.2. Диаграмма состояний и решетчатая диаграмма сверточного кода. Свободное расстояние
Любой сверточный кодер
Сказанное находит отражение в диаграмме состояний сверточного кода, на которой узлы соответствуют состояниям кодера, а ветви (стрелки) – возможным переходам из текущего состояния в новое. Построение подобных диаграмм иллюстрируется следующим примером.
Пример 9.2.1. Обратимся к кодеру примера 9.1.1. Состояния этого автомата: 00, 10, 01 и 11 (первый символ отвечает первой ячейке слева). Ясно, что из состояния 00 кодер может перейти только в состояние 00 (при нулевом входном бите), либо в состояние 10 (при входном бите, равном единице). Подобные разрешенные переходы показаны на диаграмме состояний ниже как
Слайд 155ветви, соединяющие кружки (узлы) с обозначенными внутри последних состояниями. Сплошные (синие) ветви
ветви, соединяющие кружки (узлы) с обозначенными внутри последних состояниями. Сплошные (синие) ветви
10
11
00
01
11
11
10
10
01
00
01
00
Что касается выходных кодовых символов, они показаны как метки при соответствующих ветвях. Так, кодер с текущим состоянием 00, вырабатывает кодовую комбинацию 11 при поступлении на вход бита, равного единице. Поэтому ветвь, отвечающая переходу 00→10, помечена символами 11 и т.д.
Опираясь на тот же пример, диаграмму состояний можно преобразовать в граф, (см. следующий слайд), называемый
решеткой. Он графически иллюстрирует смену состояний кодера для двух смежных тактов. Как и ранее, кодер переходит из текущего состояния в новое в зависимости от значения поступающего бита. Однако эта форма диаграммы состояний позволяет перейти к графической интерпретации процесса кодирования в динамике. Начнем с состояния 00. После первого
Слайд 156такта кодер перейдет в состояние либо 00, либо 10. Если он окажется
такта кодер перейдет в состояние либо 00, либо 10. Если он окажется
00
10
01
11
00
10
01
11
00
01
00
01
11
10
11
10
00
10
01
11
00
11
00
01
11
10
00
01
00
01
11
10
11
10
00
01
00
01
11
10
11
10
00
01
00
01
11
10
11
10
00
01
10
11
00
11
Слайд 157тактов для обнуления кодера, в течение которых генерирование кодовых символов будет продолжаться.
тактов для обнуления кодера, в течение которых генерирование кодовых символов будет продолжаться.
Построенный таким образом граф называется решетчатой диаграммой. Все ее пути являются не чем иным, как различными кодовыми словами сверточного кода. Скажем, входная информационная последовательность 01010 отображается в кодовое слово 00110100011100. Для оценки исправляющей способности сверточного кода нужно найти минимальное хэммингово расстояние между упомянутыми путями. Для сверточных кодов минимальное расстояние принято называть свободным расстоянием. Вследствие линейности кода свободное расстояние есть попросту минимальный вес ненулевого (т.е. отличного от самого верхнего на решетчатой диаграмме) пути. В отличие от многих блоковых кодов, свободное расстояние сверточного кода, как показано в следующем параграфе, достаточно просто вычисляется по диаграмме состояний.
9.3. Передаточная функция сверточного кода
Изучая решетчатую диаграмму, нетрудно установить, что при отыскании минимального расстояния (минимального веса) сверточного кода следует учитывать лишь пути, ответвляющиеся в некоторой точке от нулевого, а затем вновь сливающиеся с ним без последующих ответвлений. Поскольку движение вдоль нулевого пути веса не увеличивает, можно игнорировать все ветви, соединяющие нулевой узел с самим собой. Имея это в виду, найдем минимальный из весов на множестве путей, отходящих от нулевого в начале диаграммы и сливающихся с ним после некоторого числа шагов.
Слайд 158Пометим каждую ветвь диаграммы состояний формальной переменной D, в степени, равной весу
Пометим каждую ветвь диаграммы состояний формальной переменной D, в степени, равной весу
10
11
00
01
11
11
10
10
01
00
01
00
00
10
01
11
11
10
01
11
00
01
10
D2
D2
D
D
D
D
D0=1
Y
Z
U
X
Если теперь, двигаясь по некоторому пути, перемножить метки всех его ветвей, конечный показатель степени D в точности совпадет с весом пути. Если в какой-то узел диаграммы входят два пути, имеющие веса w и v, формальная сумма Dw+Dv отразит это событие без риска неоднозначности.
Слайд 159Так как движение по ветвям диаграммы есть рекуррентный, пошаговый процесс, вес пути
Так как движение по ветвям диаграммы есть рекуррентный, пошаговый процесс, вес пути
Решая систему (например, по правилу Крамера), получим
Функцию T(D) называют передаточной функцией сверточного кода. Фактически она содержит сведения о весах всех ненулевых путей решетчатой диаграммы, стартующих с нулевого состояния. После деления по схеме 1/(1–x)=1+x+x2+… , T(D) преобразуется к форме
Слайд 160показывающей, что рассматриваемый код имеет свободное расстояние df=5: из нулевого состояния выходит
показывающей, что рассматриваемый код имеет свободное расстояние df=5: из нулевого состояния выходит
00
00
10
01
11
11
10
01
11
00
01
10
D2NL
D2L
DNL
DL
DNL
DL
NL
Y
Z
U
X
Теперь можно составить и решить систему уравнений, придя к передаточной функции T(D,N,L), в которой степени переменных D, N, L равны соответственно весу, числу единиц в кодируемом потоке и длине пути на решетчатой диаграмме. Для нашего примера
Слайд 161откуда видно, что в рассматриваемом коде присутствуют один путь длины 3 и
откуда видно, что в рассматриваемом коде присутствуют один путь длины 3 и
Понятно, что для более сложных кодов, чем взятый для примера, попытка нахождения передаточной функции вручную может обернуться громоздкими и утомительными расчетами, однако решение подобной задачи с помощью компьютера большого труда не составляет. В том случае, когда надобность в знании длины пути и числа ненулевых кодируемых битов отсутствует, передаточную функцию в исходной форме T(D) легко найти из T(D,N,L) подстановкой N=1, L=1.
Слайд 162Лекция 23
Лекция 23
Слайд 1639.4. Алгоритм декодирования Витерби
Рекурсивная природа сверточного кодирования лежит в основе также рекурсивного
9.4. Алгоритм декодирования Витерби
Рекурсивная природа сверточного кодирования лежит в основе также рекурсивного
Назовем i-м шагом декодирования временной интервал, на котором принимается i-я n-символьная кодовая группа наблюдения y. Непосредственно перед этим моментом все пути (т.е. кодовые слова) проходят через 2m–1 узлов (состояний) решетчатой диаграммы. На i-м шаге:
Слайд 1641. Вычисляются хэмминговы расстояния от принятой n-символьной группы до каждой из ветвей
1. Вычисляются хэмминговы расстояния от принятой n-символьной группы до каждой из ветвей
2. Исследуются пары ветвей, входящие в каждый из 2m–1 узлов из разных предшествующих состояний:
2.1. Их расстояния Хэмминга прибавляются к накопленным до i-го шага хэмминговым расстояниям двух соответствующих путей для обновления накопленных расстояний, называемых метриками.
2.2. Метрики двух конкурирующих путей, входящих в один и тот же узел, сравниваются между собой и путь, более удаленный от наблюдения, отбрасывается и не участвует в дальнейшем декодировании. Удерживаемый путь называется выжившим.
3. Все 2m–1 выживших путей (один на узел) сохраняются в памяти вместе с их метриками, после чего декодер готов к (i+1)-му шагу процедуры.
Как видно, ресурсосберегающий характер алгоритма связан с отбраковкой на каждом шаге ровно половины из 2m возможных путей, входящих в 2m–1 узлов решетчатой диаграммы. В итоге число выживших путей остается постоянным и равным общему числу состояний 2m–1, хотя число конкурирующих кодовых слов удваивается на каждом шаге декодирования. Чтобы лучше понять, почему и как работает алгоритм Витерби, исследуем его детали на конкретном примере
Пример 9.4.1. Обратимся вновь к коду примера 9.1.1. Предположим, что наблюдение y=(100100000000000000000000).
Слайд 16500
10
01
11
00
11
Шаг 1
y= 10
00
10
01
11
1
1
00
10
01
11
1
1
2
2
00
10
01
11
00
01
11
10
y= 10 01
1
3
Первые два шага декодирования тривиальны. На первом из
00
10
01
11
00
11
Шаг 1
y= 10
00
10
01
11
1
1
00
10
01
11
1
1
2
2
00
10
01
11
00
01
11
10
y= 10 01
1
3
Первые два шага декодирования тривиальны. На первом из
На втором шаге метрика узла 00, становится равной двум, так как единственный входящий в него путь стартует из того же состояния 00, имеющего метрику 1, и это значение увеличивается на единицу, поскольку расстояние между ветвью 00→00 и текущей 2-х символьной группой y (текущая группа – на данном шаге 01 – подчеркнута на всех диаграммах) также равно 1. Подобным же образом метрика, например, узла 11, равна 3, так как прибывающий в него путь стартует из узла 10 с метрикой 1, к которой далее прибавляется два: расстояние текущей 2-группы y от ветви 10→11.
Шаг 2
Слайд 16600
10
01
11
2
2
1
3
00
10
01
11
00
01
00
01
11
10
11
10
Шаг 3
y= 10 01 00
Третий шаг нашего примера критически важен в объяснении
00
10
01
11
2
2
1
3
00
10
01
11
00
01
00
01
11
10
11
10
Шаг 3
y= 10 01 00
Третий шаг нашего примера критически важен в объяснении
2
3
4
1
3
4
3
4
Слайд 167кодового слова, ближайшего к наблюдению, а значит, путь, который заведомо останется более
кодового слова, ближайшего к наблюдению, а значит, путь, который заведомо останется более
Шаг 4
y= 10 01 00 00
00
10
01
11
2
1
3
3
00
10
01
11
00
01
00
01
11
10
11
10
2
5
4
3
2
4
2
4
Следующие два шага не имеют принципиальных отличий от рассмотренного.
Слайд 168Шаг 5
y= 10 01 00 00 00
00
10
01
11
00
10
01
11
00
01
00
01
11
10
11
10
2
3
2
2
2
4
4
2
4
3
4
3
На седьмом шаге впервые проявляется двузначность,
Шаг 5
y= 10 01 00 00 00
00
10
01
11
00
10
01
11
00
01
00
01
11
10
11
10
2
3
2
2
2
4
4
2
4
3
4
3
На седьмом шаге впервые проявляется двузначность,
Слайд 169Шаг 6
y= 10 01 00 00 00 00
00
10
01
11
00
10
01
11
00
01
00
01
11
10
11
10
2
2
3
3
5
4
3
3
4
3
4
2
Шаг 6
y= 10 01 00 00 00 00
00
10
01
11
00
10
01
11
00
01
00
01
11
10
11
10
2
2
3
3
5
4
3
3
4
3
4
2
Слайд 170Шаг 7
y= 10 01 00 00 00 00 00
00
10
01
11
00
10
01
11
00
01
00
01
11
10
11
10
2
3
3
3
2
5
4
3
4
4
4
4
Шаг 7
y= 10 01 00 00 00 00 00
00
10
01
11
00
10
01
11
00
01
00
01
11
10
11
10
2
3
3
3
2
5
4
3
4
4
4
4
Слайд 171Шаг 8
y= 10 01 00 00 00 00 00 00
00
10
01
11
00
01
00
01
11
10
11
10
00
10
01
11
2
3
4
4
2
6
4
4
4
5
4
5
Придерживаясь этой стратегии,
Шаг 8
y= 10 01 00 00 00 00 00 00
00
10
01
11
00
01
00
01
11
10
11
10
00
10
01
11
2
3
4
4
2
6
4
4
4
5
4
5
Придерживаясь этой стратегии,
Слайд 172Шаг 9
y= 10 01 00 00 00 00 00 00 00
00
10
01
11
00
01
00
01
11
10
11
10
00
10
01
11
2
4
4
4
2
6
4
4
5
5
5
5
В частности,
Шаг 9
y= 10 01 00 00 00 00 00 00 00
00
10
01
11
00
01
00
01
11
10
11
10
00
10
01
11
2
4
4
4
2
6
4
4
5
5
5
5
В частности,
На шаге 11 имеет место ситуация, которую следует обсудить особо.
Слайд 173Шаг 10
y= 10 01 00 00 00 00 00 00 00 00
00
10
01
11
00
01
00
01
11
10
11
10
00
10
01
11
2
4
5
5
2
7
4
5
5
6
5
6
Шаг 10
y= 10 01 00 00 00 00 00 00 00 00
00
10
01
11
00
01
00
01
11
10
11
10
00
10
01
11
2
4
5
5
2
7
4
5
5
6
5
6
Слайд 174Шаг 11
y= 10 01 00 00 00 00 00 00 00 00
Шаг 11
y= 10 01 00 00 00 00 00 00 00 00
00
10
01
11
00
01
00
01
11
10
11
10
00
10
01
11
2
4
5
5
2
7
4
5
5
6
5
6
Слайд 175Шаг 12
y= 10 01 00 00 00 00 00 00 00 00
Шаг 12
y= 10 01 00 00 00 00 00 00 00 00
00
10
01
11
00
01
00
01
11
10
11
10
00
10
01
11
2
4
5
5
2
5
4
5
7
6
5
6
Слайд 176Шаг 14
00
11
Шаг 13
2
5
4
5
00
10
01
11
y= 00 00 00
00
10
01
11
00
01
10
11
2
7
5
6
7
00
10
01
11
2
5
y= 00 00 00 00
2
Шаг 14
00
11
Шаг 13
2
5
4
5
00
10
01
11
y= 00 00 00
00
10
01
11
00
01
10
11
2
7
5
6
7
00
10
01
11
2
5
y= 00 00 00 00
2
Слайд 177Во-первых, ни один из путей, для которых ранее приходилось разрешать неоднозначность, не
Во-первых, ни один из путей, для которых ранее приходилось разрешать неоднозначность, не
Посмотрим теперь, что происходит после того, как поток передаваемых битов заканчивается. Пусть длина битового потока равна 12. По прекращении битового потока кодер продолжает работу, поскольку для его обнуления потребуются m–1 дополнительных тактов. Можно считать, что в это время на вход кодера поступают m–1 «хвостовых» нулевых битов, предназначенных для «очитки» регистра, о чем декодер априори осведомлен. Так как, однако, генерируемые кодером символы сохраняют зависимость от предшествующих битов, их передача имеет смысл. Для рассматриваемого примера m–1=2 и символы наблюдения, отвечающие хвостовым обнуляющим битам, обесцвечены на рисунке предыдущего слайда. Поскольку декодеру известно, что, начиная с 13-го шага, производится обнуление кодера, возможны лишь переходы в состояния 00 или 01. Тем самым исключаются из рассмотрения четыре из восьми ветвей на решетчатой диаграмме, и метрики необходимо вычислять лишь для двух узлов. В результате выживают всего два пути и декодируется очередной (11-й) бит: 00000000000.
Слайд 178На финальном, 14-м шаге осуществляется выбор между двумя путями, сходящимися в состоянии
На финальном, 14-м шаге осуществляется выбор между двумя путями, сходящимися в состоянии
Как теперь выясняется, единственным выжившим (а значит, декодированным) путем оказался нулевой. Если нулевое кодовое слово было передано в действительности, значит произошло исправление двукратной ошибки в полном соответствии с корректирующей способностью кода (свободное расстояние d=5).
С позиций практики выдача декодированных битов по мере формирования общего сегмента всех выживших путей, вряд ли удобна. Вследствие этого нередко прибегают к усечению длины пути и принудительной выдаче декодированных битов вплоть до шага, опережающего текущий на фиксированный интервал td. Как показали многочисленные натурные эксперименты и компьютерные тесты, при выборе td порядка пяти длин кодового ограничения вероятность расхождения выживших путей до момента, опережающего текущий шаг на отрезок td, столь мала, что практически не нарушает оптимальности декодирования. Рассмотренный пример в некотором смысле служит тому подтверждением.
Слайд 179Лекция 24
Лекция 24
Слайд 1809.5. Мягкое декодирование сверточных кодов
Наилучшая (максимально правдоподобная) стратегия принятия решений на
9.5. Мягкое декодирование сверточных кодов
Наилучшая (максимально правдоподобная) стратегия принятия решений на
Замечательное свойство сверточных кодов – осуществимость мягкого декодирования без столь драматического роста требуемого вычислительного ресурса. Алгоритм Витерби практически инвариантен к виду используемой (хэмминговой или евклидовой) метрики. Пошаговый характер процедуры, на каждом этапе которой анализируются все состояния, обновляются метрики узлов и отсеиваются невыжившие пути, останется неизменным, если хэммингово расстояние заменить евклидовым. При этом операции на каждом шаге сведутся к вычислению евклидова расстояния между текущим сегментом наблюдения y(t) (отвечающим текущей n-группе кодового слова) и всеми 2m ветвями, ведущими к 2m-1 состояниям, обновлению евклидовых метрик для пары путей, входящих в отдельный узел, и последующему отсеву
Слайд 181того из двух путей, который приходит в узел, накопив бóльшее евклидово расстояние.
того из двух путей, который приходит в узел, накопив бóльшее евклидово расстояние.
Доступность стратегии мягкого декодирования нередко служит одним из главных оснований предпочтения сверточных кодов блоковым.
Слайд 182в каждом блоке, длина которого после выкалывания g символов составит ln–g. В
в каждом блоке, длина которого после выкалывания g символов составит ln–g. В
n
n
n
n
n
n
Блок из l групп по n символов =ln символов
t
t
Когда необходим сверточный код со скоростью R1=l/n1 (1 9.6. Выколотые (перфорированные) сверточные коды После выкалывания: ln–g символов Блок из l групп по n символов =ln символов
Слайд 183Подбором l и g при заданном n можно варьировать скорость в широком
Подбором l и g при заданном n можно варьировать скорость в широком
Безусловно, после подобной трансформации корректирующие свойства кода существенно меняются, поэтому подбор конкретного профиля выкалывания выполняется на основе компьютерной оптимизации. В литературе описано достаточно много привлекательных кодов такого типа.
Выкалывание не сопровождается сколько-нибудь заметным усложнением декодирования. В самом деле, приемная сторона осведомлена о том, какие кодовые символы исключены, и потому может прибегнуть к стандартному алгоритму Витерби, скорректировав кодовые метки ветвей с выкалыванием.
9.7. Турбо коды
Турбо коды, открытые в 1993 г., входят в число кодов, позволяющих работать на скоростях, близких к пропускной способности или, эквивалентно, к границе Шеннона. Базируются они на достаточно эвристической идее, состоящей в кодировании одного и того же потока данных двумя сверточными кодами, называемыми компонентными. Оба сверточных кода идентичны и должны быть систематическими, т.е. воспроизводить напрямую входной бит данных на фиксированной (обычно первой) позиции текущей кодовой n-группы. Как уже отмечалось, при формировании стандартным (на базе КИХ-фильтра) кодером систематический сверточный код, как правило, имеет худшие дистанционные свойства, чем несистематический. Поскольку
Слайд 184при построении турбо кода систематичность критически важна, компонентный кодер приходится модифицировать, применяя
при построении турбо кода систематичность критически важна, компонентный кодер приходится модифицировать, применяя
Как видно, стандартный кодер будет генерировать те же кодовые слова (т.е. с теми же дистанционными свойствами), как и ранее, но находящиеся в систематическом соответствии со входным битовым потоком, если входной полином a(z) перед подачей на вход кодера разделить на первый порождающий полином. Это и реализовано в компонентном кодере с линейной обратной связью, показанном на следующем слайде.
Типичный турбо кодер (см. рисунок на слайде 189) включает два компонентных кодера, причем перед подачей на второй входной битовый поток подвергается псевдослучайной перестановке. Последнюю операцию осуществляет перемежитель. Систематические символы данных второго компонентного кодера отбрасываются и лишь проверочные символы мультиплексируются с кодовым потоком первого компонентного кодера. Поэтому, если компонентный код имеет, к примеру, скорость 1/2, скорость полученного турбо кода равна 1/3. Последнюю легко увеличить до скорости компонентного кода, применяя выкалывание.
Слайд 185+
+
1
2
m–1
1
2
n
S
выход
вход
...
...
+
+
+
Весьма эффективным методом декодирования турбо кода является мягкая версия алгоритма, вычисляющего апостериорную
+
+
1
2
m–1
1
2
n
S
выход
вход
...
...
+
+
+
Весьма эффективным методом декодирования турбо кода является мягкая версия алгоритма, вычисляющего апостериорную
Слайд 186битов, полученные после декодирования первого компонентного кода служат априорными вероятностями при декодировании
битов, полученные после декодирования первого компонентного кода служат априорными вероятностями при декодировании
Компонентный сверточный кодер 1
Компонентный сверточный кодер 2
Перемежитель
Параллельный
в последоват.
Биты данных
Информ. и провер. символы
Пров. символы только
Символы кода
9.8. Приложения
Имеется множество примеров применения сверточных кодов в современных системах, связанных с передачей и хранением информации. Остановимся лишь на нескольких коммерческих приложениях. В 2G GSM стандарте мобильной связи
предусмотрено канальное кодирование сверточным кодом с длиной кодового ограничения m=5, скоростью R=1/2 и свободным расстоянием d=7. В другом (основанном на кодовом разделении) 2G стандарте, IS-95 (cdmaOne), применены два различных типа сверточных кодов. Код с длиной кодового ограничения m=9, скоростью R=1/2 и свободным расстоянием d=12 используется в линии «вниз», а более мощный код с длиной кодового ограничения m=9, скоростью R=1/3 и расстоянием d=18 – в линии «вверх».
В 3G стандарт UMTS включены аналогичные коды, тогда как в стандарте
Слайд 187Использование турбо кодов наряду со сверточными характерно для 3G стандартов UMTS, cdma2000,
Использование турбо кодов наряду со сверточными характерно для 3G стандартов UMTS, cdma2000,
cdma2000 в дополнение к ним введены коды с длиной кодового ограничения m=9 и скоростью R=1/4.
Слайд 188 Лекция 25
Лекция 25
Слайд 189До этого момента (кроме краткого экскурса в двоичное представление кодов РСДо этого
До этого момента (кроме краткого экскурса в двоичное представление кодов РСДо этого
Пакет ошибок длины b есть любая конфигурация ошибок в виде серии символов длины b с ненулевыми первым и последним символами.
Разумеется, если взять некоторый блоковый код, исправляющий до t независимых ошибок, он по определению исправит и любой пакет ошибок длины b≤t. Мы, однако, попытаемся выяснить, можно ли исправлять пакеты ошибок с длинами b, превышающими корректирующую способность (b>t),
10. Исправление пакетов ошибок
10.1. Каналы с памятью и пакетные ошибки
Слайд 190эксплуатируя особенности пакетной конфигурации. Краткое обсуждение этого вопроса составляет предмет двух следующих
эксплуатируя особенности пакетной конфигурации. Краткое обсуждение этого вопроса составляет предмет двух следующих
10.2. Коды, исправляющие пакеты ошибок
Известны коды, которые параллельно с исправлением t ошибок произвольной конфигурации способны корректировать ошибки большей кратности при условии, что последние образуют пакеты. Необходимое условие существования линейного кода, исправляющего пакеты ошибок длины b и менее, декларируется границей Рейгера, согласно которой минимально необходимое число проверочных символов кода
На первый взгляд это неравенство повторяет границу Синглтона, однако совпадают они лишь виртуально, так как граница Рейгера относится сугубо к пакетным ошибкам, доказывается иначе, чем граница Синглтона, и, в отличие от последней, практически достижима для двоичных кодов .
Наглядный пример кода, приближающегося к границе Рейгера, – код РС в двоичном представлении. Исходный q-ичный (q=2m) код РС длины n=q–1 = 2m–1 (в числе q-ичных символов) с k q-ичными информационными символами оптимален в смысле границы Синглтона, т.е. имеет максимально возможное расстояние d=n–k+1 среди всех q-ичных кодов с заданными q, n, k. Однако при отображении его q-ичных символов m-разрядными двоичными числами расстояние получаемого двоичного кода остается прежним db=d, тогда как
Слайд 191длина nb=m(q–1)=m(2m–1) (в числе двоичных символов) и число бит данных kb=mk возрастают
длина nb=m(q–1)=m(2m–1) (в числе двоичных символов) и число бит данных kb=mk возрастают
Пакет из b двоичных символов поражает t=4 q-ичных символов
m двоичных символов = одному q-ичному
Двоичный символ
t
Слайд 192любого пакета двоичных ошибок длины b=m(t–1)+1=m[(nb–kb)/2m–1]+1 и менее. Когда число проверочных символов
любого пакета двоичных ошибок длины b=m(t–1)+1=m[(nb–kb)/2m–1]+1 и менее. Когда число проверочных символов
10.3. Перемежение
Перемежением называют процедуру, имеющую целью рассредоточение пакетных ошибок во времени, т.е. сближение их характера с независимыми ошибками. Перемежители обычно принято классифицировать на блоковые и сверточные. Оба названных типа можно успешно применять в комбинации как с блоковыми, так и сверточными кодами. Для уяснения существа обсуждаемой процедуры обратимся к простейшему варианту блокового перемежителя. Пусть используется блоковый код длины n, исправляющий вплоть до t ошибок. Разобьем поток кодовых символов на кадры из B кодовых слов (т.е. nB символов) каждый. После этого переупорядочим символы в пределах каждого кадра, образовав n последовательных блоков из B символов каждый: в первый блок включим первые символы всех B кодовых слов, во второй – вторые и т.д. Перемешанный подобным образом кодовый поток и передается по каналу связи.
На приемной стороне осуществляется обратная операция – деперемежение, восстанавливающее начальный порядок следования символов. Предположим теперь, что при распространении по каналу в передаваемом потоке возникает пакет из b ошибок. Тогда в результате деперемежения ошибочные символы
Слайд 193равномерно распределятся между B кодовыми словами, и если на каждое слово придется
равномерно распределятся между B кодовыми словами, и если на каждое слово придется
Пример 9.7.1. Возьмем код Хэмминга длины n=7 и осуществим перемежение в пределах кадра длины B=3. Как видно, код, исправляющий однократные ошибки, в комбинации с перемежением исправляет и любой пакет ошибок длины до трех.
n=7
B=3
n=7
n=7
t
t
t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1
8
15
2
9
17
4
11
18
5
12
19
6
13
20
7
14
21
1
2
4
5
6
7
8
9
11
12
13
14
15
17
18
19
20
21
B=3
n=7
n=7
n=7
16
3
10
3
10
16
Кодовый поток
Символы после перемежи-теля
Пакет
Символы после депереме-жителя
Слайд 194Технологически перемежение легко выполнить как построчную запись потока кодовых символов в матричную
Технологически перемежение легко выполнить как построчную запись потока кодовых символов в матричную
Перемежение обеспечивает эффективное противодействие пакетным ошибкам за счет не только аппаратных усложнений, но и добавочной задержки в передаче данных, составляющей
длительностей кодового символа.
Перемежение широко используется в современных телекоммуникациях. Достаточно сослаться на мобильные системы связи второго и третьего поколений GSM, cdmaOne, WCDMA, cdma2000, в которых перемежение используется в комбинации с канальными сверточными и турбо кодами. Применяется оно и в системах цифрового радиовещания (DAB) и телевидения (DVB-T, DVB-H), как и в других беспроводных системах и сетях.
Слайд 195Лекция 26
Лекция 26
Слайд 19611. Элементы криптографии
11.1. Основные определения
Термин криптография происходит от греческого kryptos (скрытый) и
11. Элементы криптографии
11.1. Основные определения
Термин криптография происходит от греческого kryptos (скрытый) и
Криптография традиционно ассоциируется с двумя основными задачами:
– конфиденциальность (секретность), т.е. защита информации от перехвата (подслушивания) посторонним агентом;
– аутентификация, т.е. проверка подлинности принятого сообщения и его истинного авторства, иными словами предотвращение активного вмешательства в информационный обмен, дезинформации, подделки подписи и т.п.
Общие принципы любой криптосистемы достаточно просты. Некий отправитель (в криптографической литературе за ним часто закрепляется имя Алиса), желая по секрету передать сообщение x получателю (Бобу), выполняет над этим сообщением некоторое специфическое обратимое преобразование Fz. Исходное сообщение x называется открытым текстом и принадлежит некоторому множеству X всевозможных открытых текстов: x∈X. Преобразование Fz, называемое шифром, однозначно задано ключом
Слайд 197z. Для облегчения понимания задачи полезно представить все множество возможных шифров как
z. Для облегчения понимания задачи полезно представить все множество возможных шифров как
называется шифрограммой или криптограммой (также криптотекстом или шифротекстом). Всевозможные криптограммы образуют множество Y: y∈Y.
По получении шифрограммы от Алисы Боб, зная ключ z, выполняет обратное преобразование Fz–1, т.е. расшифровку y
восстанавливая тем самым оригинальный открытый текст.
В криптографическом сюжете участвует и третий фигурант – недружественный перехватчик (криптоаналитик, злоумышленник), также стремящийся прочесть сообщение Алисы. Существует ряд сценариев атаки аналитика на криптосистему. Мы остановимся лишь на простейшем из них, в котором аналитик может перехватывать любые шифрограммы, но не имеет доступа к другой информации (например, образцам открытого текста и т.п.). Подобный сценарий характерен, например для передачи криптограмм по незащищенной линии связи типа телефонной сети, Интернета, беспроводного канала и т.д. Понятно, что любая надежная криптосистема должна в первую очередь успешно противостоять именно такого рода атаке.
Слайд 198Как можно видеть, основная идея любой криптосистемы – доступность ключа только отправителю
Как можно видеть, основная идея любой криптосистемы – доступность ключа только отправителю
В зависимости от решения задачи управления ключами различают две разновидности криптографии: симметричную (с единственным, закрытым, секретным ключом) и асимметричную (с открытым ключом). Первая из них базируется на предпосылке существования некоторого выделенного защищенного канала для передачи ключа. Основу второй составляет разбиение ключа на две части – секретную и общедоступную. Далее кратко рассматриваются оба варианта, начиная с первого.
11.2. Теоретико-информационная стойкость шифра
В дополнение к прежней символике пусть Z обозначает множество всех возможных ключей. В избранном сценарии атаки в распоряжении аналитика имеются только шифрограммы, по которым он пытается вскрыть ключ z или, эквивалентно, взломать криптосистему, восстановив исходный открытый текст. На языке теории информации подобное возможно в принципе, если средняя взаимная информация I(X;Y) между ансамблями открытых текстов X и шифротекстов Y положительна. Следовательно, для стопроцентной защиты
Слайд 199Другими словами, шифрование должно обеспечивать статистическую независимость открытых текстов и криптограмм. При
Другими словами, шифрование должно обеспечивать статистическую независимость открытых текстов и криптограмм. При
Нетрудно убедиться, что для совершенной стойкости необходимо выполнение условия
где Nx и Nz – соответственно объемы ансамблей возможных открытых текстов и потенциальных ключей. Что касается достаточности, можно доказать, что система, в которой Ny=Nx=Nz=N, где Ny – общее число шифротекстов, все ключи выбираются равновероятно и независимо от открытого текста и любой фиксированный открытый текст преобразуется разными ключами z1, z2 в различные криптограммы y1, y2:
обладает совершенной стойкостью.
Попыткой приблизиться к совершенной стойкости является так называемое скремблирование. При этом поток битов открытого текста Ux=…, u–1, u0, u1, ... подается на вход сумматора по модулю 2, на второй вход которого поступает скремблирующая двоичная последовательность Sz= …, s–1, s0, s1, … . В идеале скремблирование должно осуществляться случайной последовательностью Sz
от взлома криптосистема должна удовлетворять условию
Слайд 200статистически независим с входным Ux, означая соблюдение достаточных условий совершенной стойкости. В
статистически независим с входным Ux, означая соблюдение достаточных условий совершенной стойкости. В
Пример 11.2.1. Скремблирующая последовательность в мобильном стандарте IS-95 имеет длину 242. При скорости 1.2288·106 символов в секунду ее период в реальном времени составляет более месяца.
Ux= …, u–1, u0, u1, ...
Sz=…, s–1, s0, s1, …
Vy =… , y–1, y0, y1, …
без памяти и с равновероятными символами 0 и 1. При этом двоичный поток Vy = … , y–1, y0, y1, … на выходе скремблера
11.3. Вычислительная стойкость и устранение избыточности
В системах непрерывной передачи потока данных с постоянной скоростью Rt объем ансамбля открытых текстов экспоненциально (с показателем Rtt) растет со временем, и, следовательно, обеспечение совершенной стойкости означало бы применение ключей нереалистичной длины, т.е. непреодолимые
Слайд 201проблемы в управлении ключами. По этой причине в практических криптосистемах повсеместно применяется
проблемы в управлении ключами. По этой причине в практических криптосистемах повсеместно применяется
Для уяснения связи вычислительной стойкости с избыточностью, вспомним, что источник избыточен тогда, когда одни его сообщения или блоки сообщений более вероятны, чем другие. Если среди всех m-битовых блоков источника имеются более вероятные и менее вероятные, соответствующие криптограммы наследуют их вероятности (шифрование взаимно однозначно!), что облегчает задачу взлома шифра. Действительно, наблюдая достаточно длинные последовательности шифрованных m-блоков, криптоаналитик способен ранжировать их по вероятностям. После этого, располагая вероятностями m-блоков в данном языке, можно в принципе выяснить правило соответствия между m-блоками открытого текста и шифротекста, т.е. вскрыть алгоритм шифрования или ключ.
Пример 11.3.1. Предположим, что Aлиса шифрует свои сообщения Бобу с
Слайд 202помощью простейшего шифра подстановки, т.е. заменяет каждую букву (восьмибитовый блок ASCII кода)
помощью простейшего шифра подстановки, т.е. заменяет каждую букву (восьмибитовый блок ASCII кода)
Языковая избыточность максимально проявляет себя тем, что лишь некоторые из многочисленных m-буквенных комбинаций оказываются осмысленными, что дает аналитику возможность отбраковывать потенциальные ключи, ведущие к комбинациям, лишенным смысла. Математически влияние избыточности на потенциальную стойкость шифра характеризуется расстоянием единственности, т.е. средним числом перехваченных символов шифротекста, достаточным для взлома шифра
где избыточность языка r определена как разность между logL (L – объем алфавита языка) и энтропией языка в пересчете на букву.
Пример 11.3.2. Энтропия английского языка (L=26) на букву не превышает 1.5 бит, тогда как log26≈4.7. При шифровании блоков из 20 букв число потенциальных ключей Nz=Nx=2620, так что ключ можно в принципе вскрыть по криптограмме, содержащей порядка
Слайд 203Предшествующее шифрованию устранение избыточности, как следует из сказанного, потенциально повышает стойкость криптосистемы
Предшествующее шифрованию устранение избыточности, как следует из сказанного, потенциально повышает стойкость криптосистемы
букв. Подчеркнем, что эта оценка является лишь некоторым теоретическим ориентиром, не говорящим напрямую о вычислительной сложности взлома, которая может оказаться неподъемной.
Слайд 204Лекция 27
Лекция 27
Слайд 205Ранее неоднократно отмечалось, что управление ключами является серьезнейшей проблемой в криптографии с
Ранее неоднократно отмечалось, что управление ключами является серьезнейшей проблемой в криптографии с
11.4. Системы шифрования с открытым ключом
ни для кого не составляет труда, однако в обратную сторону
т.е. от функции к аргументу, вычисления практически выполнимы только с помощью некоторой секретной подсказки.
Идея криптосистем с открытым ключом состоит в следующем: любому пользователю принадлежит пара индивидуальных ключей e и d. Первый из них e – не является секретным, публикуется в общедоступном справочнике и используется для шифрования. Любой субъект может зашифровать информацию, адресованную конкретному пользователю, скажем Бобу, взяв открытый ключ последнего e из упомянутого справочника. Этот открытый
Слайд 206ключ определяет некоторую одностороннюю функцию Fe(x), которая используется для шифрования открытого текста
ключ определяет некоторую одностороннюю функцию Fe(x), которая используется для шифрования открытого текста
11.5. Криптосистема Диффи–Хеллмана
В системе Диффи–Хеллмана в качестве односторонней функции служит экспонента по модулю простого числа. Пусть p – простое число, тогда существует конечное поле GF(p) с некоторым примитивным элементом ς. Секретный ключ пользователя есть фиксированное число d
служит открытым ключом того же пользователя, т.е. публикуется в открытом справочнике. Допустим, Алиса хочет послать Бобу сообщение, зашифровав его обычным способом с секретным ключом. Это значит, что оба они имеют один и тот же том с шифрами, из которого секретно выбирается некий конкретный шифр. Чтобы проинформировать Боба об этом выборе, Алиса берет из справочника открытый ключ Боба eB и вычисляет
Слайд 207где dA - секретный ключ Алисы (известный только ей!). KAB и есть
где dA - секретный ключ Алисы (известный только ей!). KAB и есть
По получении криптограммы от Алисы Боб, зная имя отправителя, берет из справочника открытый ключ Алисы eA и использует свой собственный секретный (известный только ему!) ключ dB для аналогичного вычисления
Но в силу связи секретного ключа с открытым (см. выше)
и результат, вычисленный Бобом совпадет с полученным Алисой. Тем самым Боб узнает номер шифра в кодовом томе, использованного Алисой и сможет без затруднений прочесть сообщение. Подчеркнем, что ни Алиса, ни Боб не знают секретных ключей друг друга, однако знания открытых ключей достаточно для конфиденциального обмена информацией между ними.
В то же время, аналитик, не зная секретных ключей ни Алисы, ни Боба, обречен на попытки получения секретного ключа из открытого обращением последнего:
Слайд 208При типичном для практики гигантском p (сотни и более десятичных цифр), подобная
При типичном для практики гигантском p (сотни и более десятичных цифр), подобная
Пример 11.5.1. (иллюстрирующий лишь идею алгоритма, но никак не порядок практически используемых параметров). Пусть p=29 и в поле GF(29) выбран примитивный элемент 2. Пусть секретные ключи Алисы и Боба dA=11 и dB=15 соответственно. Тогда их открытые ключи eA=211mod29=18 и eB=215mod29=27. Алиса берет из справочника открытый код Боба eB=27 и шифрует свое сообщение шифром номер KAB=2711mod29=(215)11mod29=11. Боб берет из справочника открытый код Алисы eA=18 и вычисляет номер шифра по-своему KBA=1815mod29=(211)15mod29=11 (все операции по правилам GF(29)). Так как KAB=KBA, Боб без затруднений прочтет сообщение Алисы. Чтобы взломать секретный ключ по открытому, аналитику придется отыскивать логарифм 27 (или 18) в GF(29), что более трудоемко.
11.6. Криптосистема RSA1
1Акроним RSA соответствует инициалам фамилий Rivest, Shamir, Adleman.
В этой системе односторонняя функция организована на базе произведения n двух гигантских (сотни десятичных знаков) простых чисел p и q: n=pq. В то время как перемножение p и q не составляет особого труда, обратная задача
Слайд 209 Функция Эйлера (тотиент-функция) ϕ(n) в теории чисел есть число положительных целых,
Функция Эйлера (тотиент-функция) ϕ(n) в теории чисел есть число положительных целых,
Нетрудно убедиться, что для любого целого x из диапазона [0, n–1] и любого натурального g
Подберем пару положительных целых e и d (заметим, что их можно найти только среди чисел, взаимно простых с с ϕ(n)), удовлетворяющих при некотором натуральном g равенству
В системе RSA пара (n,e) образует открытый ключ, доступный любому отправителю, тогда как в качестве секретного ключа используется число d. Чтобы зашифровать открытый текст x, адресованный Бобу, Алиса берет открытый ключ Боба (nB,eB) из справочника и формирует шифротекст, возведением x (представленного как число) в степень eB по модулю nB:
Эта функция и является односторонней в криптосистеме RSA.
задача разложения n на простые сомножители может быть чрезвычайно затратной в части вычислительного ресурса.
Слайд 210По получении криптограммы y Боб выполняет еще одно возведение в степень, определяемую
По получении криптограммы y Боб выполняет еще одно возведение в степень, определяемую
Атакуя систему, аналитик попытается вычислить секретный ключ d по известному открытому (n, e), что, в свою очередь, потребует факторизации n на простые p и q. Как отмечено ранее, при астрономически большом n и без априорных данных о значении одного из сомножителей для решения подобной задачи может потребоваться нереальный вычислительный ресурс.
Пример 11.6.1. (с теми же оговорками, что и в примере 11.5.1!). Предположим, Алиса посылает Бобу сообщение x=2 (скажем, опять номер секретного шифра в книге шифров). По справочнику она находит открытый ключ Боба nB=85, eB=13. Результат шифрования при этом
По получении криптограммы y Боб использует свой секретный ключ dB=5:
т.е. посланный открытый текст x восстановлен. Для взлома секретного ключа злоумышленнику потребуется разложить n на простые множители, что при фактически используемом значении n (см. выше) потребует нереалистичных вычислительных затрат.