
125 Кібербезпека / 4 Курс / 4.2_Управління інформаційною безпекою / Лiтература / V_P_Babak_A_A_Kliuchnykov-Teoreticheskye_osnovy_zashchity_informat
...pdf
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
2. Правильное исправление искажений возможно, если в каждой независимой цепочке кода справа и слева от искажения есть два неискаженных символа (во втором примере - первая и третья цепочки). А поскольку информационные символы в каждой цепочке размещены на расстоянии от информационных символов других цепочек, то между групповыми искажениями должны быть по меньшей мере 2 неискаженных информационных символов.
Местоположение проверочных символов определяется двумя обстоятельствами: во-первых, групповая помеха не должна одновременно охватывать информационные и соответствующие проверочные символы; во-вторых, не должно быть ошибочного исправления информационных символов.
Из этих соображений каждый проверочный символ располагается на расстоянии 2 1 от ближайшего своего информационного символа. Например, проверочный символ Ï i,i , созданный из информационных ai и ai ,
должен занимать [(i ) 2 1] позицию.
Поскольку разность между информационными символами каждой независимой цепочки представляет информационных символов, то и расстояние между соответствующими проверочными символами также равняется шагу кодирования.
Важной характеристикой сверточного кода является минимально допустимое расстояние между сопредельными групповыми искажениями, когда еще возможно исправлять искажение. Это расстояние должно обеспечивать правильный прием 2 информационных символов после искажения и проверочных, которые охватывают искаженные информационные символы. Поэтому минимально допустимое расстояние равняется 2 1 символ.
В информационных сообщениях, которые передаются беспрерывно, проверочные и информационные символы чередуются: a1 , П, a2 , П, a3 ,... .
Это значит, что информационные символы, которые входят в одну проверку, отличаются один от другого на информационных и проверочных символов. Т.е. при шаге добавления информационных символов сверточный код исправляет b 2 информационных и проверочных символов, а минимально допустимое расстояние между групповыми искажениями M 4 1 2b 1 информационных и проверочных символов.
Диаграммы состояний и процедуры сверточного кодирования. Свер-
точный кодер принадлежит к классу устройств, известных как конечный автомат. Это общее название охватывает системы, которые имеют память о прошлых сигналах. Процедура использования конечных автоматов при помехоустойчивом сверточном кодировании непосредственно определяется алгоритмом кодирования - кодирование с памятью. Прилагательное «конечный» показывает, что существует ограниченное количество состояний, которые могут возникнуть в системе. В обобщенном смысле состояние содержит наименьшее количество информации, на основании которой вместе с теку-
560

Глава 7. Кодирование информации
щими входными данными можно определить данные на выходе системы. Состояние дает некоторое представление о прошлых событиях (сигналы) и об ограниченном наборе возможных исходных данных в будущем, т.е. будущие состояния ограничиваются прошлыми состояниями. Для сверточного кода со степенью кодирования 1n состояние подается содержимым K 1 крайних
правых разрядов. Знание состояния плюс знание следующих данных на входе являются необходимым и достаточным условием для определения данных на выходе.
Итак, пусть состояние кодера в момент времени ti определяется как Xi mi 1, mi 2,..., mi K 1. При этом и ветка кодовых слов Ui целиком определяется состоянием X i и введенными в данное время битами mi . Таким образом, состояние X i описывает предысторию кодера для определения данных на его выходе. Состояние кодера считается марковским в том смысле, что вероятность P( Xi 1 Xi ,..., X0 ) пребывания в состоянии Xi 1, обусловленная всеми предыдущими состояниями, зависит только от последнего состояния Xi , т.е. она равняется P( Xi 1 Xi ).
Одним из способов представления простых кодирующих устройств является диаграмма состояния (см. рис. 7.34). Состояния, изображенные в рамках диаграммы, представляют собой возможное содержимое K 1 крайних правых разрядов регистра, а пути между состояниями - кодовые слова веток на выходе, что является результатом переходов между такими состояниями.
Состояние регистра взяты такие: a 00, |
b 10, |
c 01 и d 11. |
||||||
|
|
00 |
|
|
|
|
|
|
|
11 |
a=00 |
11 |
Входное кодовое слово |
||||
|
|
|
|
|
|
|
||
|
|
00 |
|
|
|
|
|
|
b=10 |
|
|
c=01 |
|
|
Состояние кодера |
||
|
|
|
|
|||||
|
|
|
|
|
|
|
Условные обозначения |
|
01 |
|
10 |
|
|
|
|
|
Входной бит 0 |
|
|
|
|
|
|
|||
|
d=11 |
01 |
|
|
|
|
|
|
|
|
|
|
|
|
Входной бит 1 |
||
|
|
|
|
|
|
|
|
10
Рис. 7.34. Диаграмма состояний кодера (степень кодирования 12, K 3 )
561

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
Существует всего два исходных перехода из каждого состояния, что соответствует двум возможным входным битам. Дальше для каждого пути между состояниями записано кодовое слово на выходе, связанное с переходами между состояниями. При изображении путей сплошной линией обозначают путь, связанный с нулевым входным битом, а пунктирной - путь, связанный с единичным входным битом.
Заметим, что за один переход невозможно перейти из данного состояния в любое произвольное. Поскольку за единицу времени перемещается только один бит, существует только два возможных перехода между состояниями, в которые регистр может переходить за время прохождения каждого бита. Например, если состояние кодера 00 , то при следующем сдвиге может возникнуть только состояние 00 или 10 .
Древовидные диаграммы кодирования. Несмотря на то, что диаграммы состояний целиком описывают кодер, их, в сущности, нельзя использовать для легкого отслеживания переходов кодера в зависимости от времени, поскольку диаграмма не отражает динамики изменений. Древовидная диаграмма прибавляет к диаграмме состояния временное измерение. Древовидную диаграмму сверточного кодера в каждый следующий момент прохождения входного бита процедуры кодирования можно описать с помощью перемещения по диаграмме слева направо, причем каждая ветка дерева описывает кодовое слово на выходе.
Правило разветвления для отыскания последовательности кодовых слов такое:
если входным битом является нуль, то он связывается со словом, которое отыскивается перемещением в следующую (по направлению вверх) правую ветку;
если входной бит - единица, то кодовое слово отыскивается перемещением в следующую (за направлением вниз) правую ветку.
Предполагается, что сначала кодер содержал одни нули. Диаграмма показывает, что когда первым входным битом был нуль, то кодовым словом ветки на выходе будет 00 , а если первым входным битом была единица, то кодовым словом на выходе будет 11 . Аналогично, если первым входным битом была единица, а вторым - нуль, на выходе вторым словом ветки будет 10 . Если первым входным битом была единица и вторым входным битом была единица, вторым кодовым словом на выходе будет 01 . Согласно этой процедуре видим, что входная последовательность 11011 подается жирной линией, изображенной на древовидной диаграмме (рис. 7.35). Этот путь соответствует исходной последовательности кодовых слов 11 01 01 00 01.
Дополнительное измерение времени в древовидной диаграмме (сравнительно с диаграммой состояний) допускается динамическое описание кодера как функции конкретной входной последовательности. Но при попытке описания с помощью древовидной диаграммы последовательности произвольной
562

Глава 7. Кодирование информации
длины возникает проблема. Количество ответвлений возрастает как 2L , где L - это количество кодовых слов веток в последовательности.
Решетчатая диаграмма. Исследование древовидной диаграммы, приведенной на рис. 7.35, показывает, что в этом примере после третьего разветвления в момент времени t4 структура повторяется (в общем случае дре-
вовидная структура повторяется после K ответвлений, где K - длинна кодового ограничения). Обозначим каждый узел в дереве (см. рис. 7.35), поставив в
соответствие |
четыре возможных состояния в регистре смещения: a 00, |
b 10, c 01 |
и d 11. |
t1
t2
t3
t4
t5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ветка кодовых слов |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
q |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
d |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
q |
|
|
|
|
|
|
|
|
|
|
|
|
a |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
c 01 |
|
01 |
|
|
|
|
|
|
|
|
00 |
|
|
|
|
|
|
|
|
|
|
|
c 10 |
|
|
|
|
|
|
|
|
|
|
|
a00 00 |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
00 |
|
|
b |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
d |
01 |
00 |
|
01 |
|
b 11 |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
|
|
|
|
|
|
|
11 |
|
|
|
|
01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
a 11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c 10 |
|
|
|
|
|
|
|
|
|
|||
|
p 01 |
|
|
c 01 |
|
|
b |
|
|
|
|
d |
|
|
c |
|
b 11 |
|
|
a |
|
p 01 |
|
|
c |
|
|
b |
|
|
a 11 |
|
|
p |
|
|
|
|
|
b 11 |
|
a |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
01 |
00 |
11 |
|
01 |
10 |
11 |
|
00 |
|
10 |
01 |
00 |
|
11 |
|
10 |
01 |
|
11 |
|
|
|
10 |
01 |
00 |
11 |
|
01 |
10 |
11 |
00 |
|
10 |
01 |
00 |
|
11 |
01 |
10 |
11 |
00 |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 7.35. Дерево алгоритма сверточного кодирования (степень кодирования 12 , K 3 )
Первое разветвление древовидной структуры в момент времени t1 дает пары узлов, обозначенных как а и b. При каждом следующем разветвлении количество узлов удваивается. Второе разветвление в момент времени t2 дает
в результате четыре узла, обозначенные как а, b, с і d. После третьего разветвления всего есть восемь узлов: два - а, два - b, два - с и два - d.
Можно увидеть, что все ветки выходят из двух узлов того же состояния, образовывая идентичные ветки последовательностей кодовых слов. В этот момент дерево делится на идентичные верхнюю и нижнюю части. Когда четвертый входной бит входит в кодер слева, первый входной бит справа отбрасывается и больше не влияет на кодовые слова на выходе.
Итак, входные последовательности 100xy... и 000xy... , где крайний левый бит наиболее ранний, после K-го (K 3) разветвления генерируют одинаковые кодовые слова веток. Это означает, что любые состояния, которые имеют одинаковую метку в тот самый момент ti , можно соединить, посколь-
563

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
ку все следующие пути будут различаемыми. Если мы выполним это для древовидной структуры, изображенной на рис. 7.35, получим другую диаграмму, которая называется решетчатой. Решетчатая диаграмма, которая использует повторяемую структуру, дает более удобное описание кодера сравнительно с древовидной диаграммой. Решетчатая диаграмма для сверточного кодера изображена на рис. 7.36.
a=00 |
t1 00 t2 |
00 t3 |
00 |
|
t4 |
00 |
t5 |
00 |
t6 |
|
|
|
||
|
|
|
|
|
|
|
11 |
|
11 |
|
Ветка |
Условные обозначения |
||
|
11 |
11 |
11 |
|
|
|
кодового |
|
|
|
||||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b=10 |
|
|
|
11 |
|
|
11 |
|
11 |
|
сигнала |
|
|
Входной бит 0 |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
00 |
00 |
|
00 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
10 |
|
|
10 |
|
10 |
10 |
|
|
|
||
|
|
|
|
|
|
|
|
|
Входной бит 1 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c=01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d=11 |
|
|
01 |
01 |
|
01 |
01 |
01 |
01 |
01 |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
10 |
|
10 |
|
|
|
|
|
Рис. 7.36. Решетчатая диаграмма кодера (степень кодирования 12 , K 3 )
При изображении решетчатой диаграммы мы воспользовались теми же условными обозначениями, что и для диаграммы состояния: сплошная линия обозначает исходные данные, которые генерируются входным нулевым битом, а пунктирная - исходные данные, которые генерируются входным единичным битом. Узлы решетки дают состояния кодера: первый ряд узлов отвечает состоянию a 00, второй и следующие - состоянию b 10, c 01 и
d 11. В каждый момент времени для представления 2K 1 возможных состояний кодера решетки нужно 2K 1 узлов. В нашем примере после достижения глубины решетки, которая равна трем (в момент времени t4 ), делаем замеча-
ние, что решетка имела фиксированную периодическую структуру. В общем случае фиксированная структура реализуется после достижения глубины K . Итак, из этого момента в каждое состояние можно попасть из каждого из двух предыдущих состояний. Также из каждого состояния можно перейти в одно из двух состояний. Из двух исходных веток одна отвечает нулевому входному биту, а другая - единичному входному биту. На рис. 7.36 кодовые слова на выходе соответствуют переходам между состояниями, которые изображены как метки на ветках решетки.
Один столбец временного интервала решетчатой структуры кодирования, которая сформировалась, целиком определяет код. Несколько столбцов изображены лишь для визуализации последовательности кодовых символов как функции времени. Состояние сверточного кодера подается содержимым крайних правых K 1 разрядов в регистре кодера. Некоторые авторы описывают состояние с помощью крайних левых K 1 разрядов. Оба описания правильные. Каждый переход имеет начальное и конечное состояния. Край-
564

Глава 7. Кодирование информации
ние правые K 1 разряды описывают начальное состояние для текущих входных данных, которые содержатся в крайнем левом разряде (степень кодирования предполагается равной 1n). Крайние левые K 1 разряды явля-
ются конечным состоянием для такого перехода. Последовательность кодовых символов характеризуется N ветками (которые подают N бит данных), которые занимают N интервалов времени. Она связана с конкретным состоянием в каждый из N 1 интервалов времени (от начала до конца). Таким образом, мы запускаем биты в моменты времени t1, t2 ,..., tN и интересуемся
метрическим свидетельством состояния в моменты времени t1, t2 ,..., tN 1.
Здесь использовано такое условие: текущий бит размещается в крайнем левом разряде, а крайние правые K 1 разряды стартуют из состояния со всеми нулями. Этот момент времени обозначим как начальное время t1. Время завершения последнего перехода обозначим как время прекращения работы tN 1.
Декодирование по методу максимального правдоподобия. Если все входные последовательности сообщений равновероятные, минимальная вероятность ошибки достигается при использовании декодера, который сравнивает условные вероятности и выбирает максимальную. Условные вероятно-
сти также называются функциями правдоподобия декодирования P(Z U (m) ),
где Z - принятая последовательность, a U (m) - одна из возможных переданных последовательностей. Декодер выбирает U (m ) , если за всеми U (m)
|
U (m) ). |
(7.61) |
|
P(Z |
U (m ) ) max P(Z |
Принцип максимального правдоподобия, которое определяется уравнением (7.61), является фундаментальным достижением теории принятия решений на фоне статистических данных. При рассмотрении двоичного симметричного канала предполагалась передача только двух равновероятных сигналов s1 (t) и s2 (t). Итак, принятие двоичного решения на основе принци-
па максимального правдоподобия, которое касается данного полученного сигнала, означает, что переданный сигнал выбирается если
p(z s1 ) p(z s2 ). В противоположном случае считается, что передавался сигнал s2 (t). Параметр z зависит от Т, т.е. представляет собой величину z(T ) -
значение принятого сигнала к детектированию в конце каждого периода передачи символа t T.
В случае использования принципа максимального правдоподобия в задаче сверточного декодирования считается, что в сверточном коде имеется память (полученная последовательность является суперпозицией текущих и предыдущих двоичных разрядов). Таким образом, принцип максимального правдоподобия при декодировании данных, закодированных сверточным
565

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
кодом, применяется в контексте выбора наиболее возможной последовательности, как показано в уравнении (7.61). Обычно существует множество возможных переданных последовательностей кодовых слов. Что же касается двоичного кода, то последовательность из L кодовых слов является составляющей набора из 2L возможных последовательностей. Итак, в контексте максимального правдоподобия можно сказать, что как переданную последо-
вательность декодер выбирает U (m ) , если правдоподобие P(Z U (m ) ) больше
правдоподобия всех других последовательностей, которые могли быть переданными.
Оптимальным декодером является такой декодер, который использует алгоритм максимального правдоподобия и минимизирует вероятность ошибки в информационном сообщении при условии, что все переданные последовательности равновероятные.
Функцию правдоподобия задают или вычисляют исходя из спецификации канала.
Предположим, что мы имеем дело с аддитивным белым гауссовым шумом с нулевым средним, а соответственно, с каналом без памяти, т.е. шум влияет на каждый символ кода независимо от других символов. Если степень кодирования сверточного кода равна 1n , правдоподобие можно выразить
как
|
|
|
|
|
|
|
|
|
|
|
|
P(Z |U (m) ) P(Zi |
|Ui(m) ) |
P(z ji | u ji |
(m) ), |
|
(7.62) |
||
|
|
l 1 |
|
|
l 1 j 1 |
|
|
|
|
где Z |
i |
- і -я ветка принятой последовательности Z; U (m) |
- ветка отдельной |
||||||
|
|
|
|
i |
|
|
|
|
|
последовательности кодовых слов |
U (m) ; z |
ji |
- j-й кодовый символ Z |
; |
u(m) - |
||||
|
|
|
|
|
|
i |
|
ji |
j-й кодовый символ ui(m) , а каждая ветка состоит из n кодовых символов.
При вычислениях удобнее пользоваться логарифмом функции правдоподобия, поскольку это дает возможность произведение заменить суммированием. Можем воспользоваться таким преобразованием, поскольку логарифм как монотонно возрастающая функция не внесет изменений в выбор окончательного кодового слова. Логарифмическую функцию правдоподобия можно определить как
|
n |
|
U (m) lg P(Z |U (m) ) lg P(Zi |
|Ui(m) ) lg P(z ji |
| u ji(m) ). (7.63) |
l 1 |
l 1 j 1 |
|
Теперь задача декодирования состоит в выборе пути вдоль дерева на рис. 7.35 или решетке на рис. 7.36 таким образом, чтобы u (m) было макси-
мальным. При декодировании сверточных кодов можно использовать как древовидную, так и решетчатую структуру. В случае древовидного представления кода игнорируется то, что пути снова объединяются. Для двоичного кода количество возможных последовательностей, которые состоят из L
566

Глава 7. Кодирование информации
кодовых слов, равна 2L. Поэтому декодирование полученных последовательностей, которое обосновывается на принципе максимального правдоподобия с использованием древовидной диаграммы, нуждается в методе исчерпыва-
ющего сравнения 2L нагроможденных логарифмических метрических свидетельств правдоподобия, которые описывают все варианты возможных последовательностей кодовых слов. Поэтому рассматривать декодирование на основе принципа максимального правдоподобия с помощью древовидной структуры практически невозможно.
В предыдущем разделе было показано, что при решетчатом представлении кода декодер можно построить так, чтобы можно было отказываться от путей, которые не могут выступать как максимально правдоподобная последовательность. Путь декодирования выбирается из какого-то сокращенного набора путей, которые остались. Такой декодер, тем не менее, является оптимальным в том смысле, что путь декодирования такой же, как и путь, полученный с помощью декодера критерия максимального правдоподобия, хотя предыдущий отказ от неудачных путей снижает сложность декодирования.
Модели каналов: мягкое или твердое принятие решений. Перед тем как начать разговор об алгоритме, который задает схему принятия максимально правдоподобного решения, сначала рассмотрим модель канала. По-
следовательность кодовых слов U (m) , определенная словами ветки, каждое из которых состоит из n кодовых символов, можно рассматривать как бесконечный поток в отличие от блочного кода, где исходные данные и их кодовые слова делятся на блоки строго определенного размера. Последовательность кодовых слов, показанная на рис. 7.31, выдается сверточным кодером и подается на модулятор, где кодовые символы превращаются в сигналы. Модуляция может быть низкочастотной (например, модуляция импульсными сигналами) или полосовой. Вообще за такт кодирования в сигнал si (t) превратится
l символов, где l - целое, причем i 1, 2,..., а M 2l. Если l 1, модулятор
превратит каждый кодовый символ в двоичный сигнал. Предполагается, что канал, по которому передается сигнал, искажает сигнал гауссовым шумом. После того как искаженный сигнал принят, он сначала обрабатывается демодулятором, а потом подается на декодер.
Рассмотрим ситуацию, когда двоичный сигнал передается за отрезок времени (0, T ), причем двоичная единица подается сигналом s1 (t), а двоич-
ный нуль - сигналом s2 (t). Принятый сигнал имеет вид r(t) si (t) n(t), где n(t) - взнос гауссовой помехи с нулевым средним. Детектирование r(t)
происходит в два основных этапа.
На первом этапе принятый сигнал переводится в число z(T ) ai n0 , где ai - компонент сигнала z(T ), а n0 - компонент шума. Компонент шума n0 - это случайная переменная, значение которой имеют гауссовое распреде-
567

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
ление с нулевым средним. Итак, z(T ) также будет случайной гауссовой величиной со средним a1 или a2 зависимо от того, какую величину было от-
правлено - двоичную единицу или двоичный нуль.
На втором этапе процесса детектирование принимается решение о том, какой сигнал было передано. Это решение принимается на основе сравнения
z(T ) с порогом. Условные вероятности z(T ), p(z s1 ) и p(z s2 ), изображенные на рис. 7.37, обозначены как правдоподобие s1 и s2 . Демодулятор, приведенный на рис. 7.31, превращает упорядоченный по времени набор случайных переменных z(T ) в кодовую последовательность Z и подает ее на
декодер.
Выход демодулятора можно настроить по-разному. Можно реализовать его в виде жесткой схемы принятия решений относительно того, единицу или нуль подает z(T ). В этом случае выход демодулятора квантуется на два
уровня - нулевой и единичный, а дальше соединяется с декодером. Поскольку декодер работает в режиме жесткой схемы принятия решений, которые при-
нимает демодулятор, такое декодирование называется жестким.
Аналогично демодулятор можно настроить так, чтобы он подавал на декодер значения z(T ), квантованное более чем на два уровня. Такая схема
обеспечивает декодер большим количеством информации, чем твердая схема решений. Если выход демодулятора имеет более чем два равных квантова-
ния, то декодирование называется мягким.
Правдивость S2 |
|
Правдивость S1 |
||
p S2 |
|
p S1 |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
00 |
00 01 01 10 10 11 |
11 |
8 – уровневая схема мягких решений |
|
|||
0 |
|
|
1 2 – уровневая схема жестких решений |
Рис. 7.37. Жесткая и мягкая схемы декодирования
На рис. 7.37 на оси абсцисс изображены восемь (3-битовых) уровней квантования. Если в демодуляторе реализована твердая схема принятия двоичных решений, он отправляет на декодер только один двоичный символ. Если в демодуляторе реализована мягкая двоичная схема принятия решений, квантованная на восьми уровнях, он отправляет на 3-декодер битовое слово, которое описывает интервал, который соответствует z(T ). В сущности, по-
568

Глава 7. Кодирование информации
ступление такого 3-битового слова вместо одного двоичного символа эквивалентно передаче декодеру меры вероятности вместе с решением относительно кодового символа. Согласно рис. 7.37, если из демодулятора поступила на декодер последовательность 111, это означает, что с очень высокой степенью вероятности кодовым символом была 1 , тогда как переданная последовательность 100 означает, что с очень низкой степенью вероятности кодовым символом была 1. Вполне понятно, что, в конце концов каждое решение, принятое декодером относительно сообщения, должно быть твердым. То, что после демодулятора не принимается твердое решение и на декодер поступает больше данных (мягкое принятие решений), можно понимать как промежуточный этап, необходимый для того, чтобы на декодер поступило больше информации, с помощью которой он потом сможет восстановить последовательность сообщения (с высшей вероятностью передачи сообщения сравнительно с декодированием в рамках твердой схемы принятия решений).
Сейчас существуют блочные и сверхточные алгоритмы декодирования, которые функционируют на основе твердой или мягкой схемы принятия решений. Однако при блочном декодировании мягкая схема принятия решений, как правило, не используется, поскольку ее значительно сложнее реализовать, чем схему твердого принятия решений. Чаще всего мягкая схема приня-
тия решений применяется в алгоритме сверточного декодирование Витерби,
поскольку при декодировании Витерби мягкое принятие решений лишь немного усложняет вычисление.
Способность сверточного кода к коррекции t ошибок характеризует-
ся количеством ошибочных кодовых символов, которое можно исправить в каждом блоке кода путем декодирования по методу максимального правдоподобия.
Вместе с тем при декодировании сверточных кодов способность кода к коррекции ошибок нельзя сформулировать так лаконично. При декодировании по принципу максимального правдоподобия код способен исправить t ошибок в пределах нескольких длин кодового ограничения (от 3 до 5). Точное значение длины зависит от распределения ошибок. Для конкретного кода и модели ошибки длину можно ограничить с использованием методов передаточной функции кода.
Систематический сверточный код - это код, в котором входной k-
кортеж тоже фигурирует как часть исходного п-кортежа кодового слова, которое отвечает этому k-кортежу.
Двоичный систематический кодер со степенью кодирования 12 и K 3
изображен на рис. 7.38. Для линейных блочных кодов любой несистематический код можно превратить в систематический с такими самыми пространственными характеристиками блоков. В случае использования сверточных кодов это не так. Причина в том, что сверточные коды сильно зависят от просвета. При построении сверточного кода в систематической форме, когда
569