Автор работы: Пользователь скрыл имя, 26 Января 2012 в 11:52, курсовая работа
В настоящее время по каналам связи передаются данные со столь высокими требованиями к достоверности передаваемой информации, что удовлетворить эти требования традиционным методами - совершенствованием антенно-фидерных устройств, увеличением излучаемой мощности, снижением собственного шума приемника - оказывается экономически невыгодным или просто невозможным.
Защита
от ошибок в различных
С
учетом сказанного выше, можно сказать,
что теория алгебраического кодирования
с алгоритмом декодирования по принципу
максимального правдоподобия
Для обеспечения применения кодов, исправляющих ошибки, сформулируем два варианта постановки задачи. [4]
При этом будем учитывать требования к защите информации в современных информационных и телекоммуникационных системах.. Особенностями таких глобальных систем является передача очень больших массивов информации и использование различных каналов связи наиболее простым образом без проведения исследования их свойств, в том числе модели ошибок в них.
Первая постановка, являющаяся «мягкой», состоит в том, что применяемые коды с исправлением ошибок должны обеспечивать в канале с естественными помехами (ошибками) подвергаемую количественной оценке вероятность ошибки декодирования отдельно по следующим характерным интервалам кратности ошибки:
- кратность ошибки t меньше половины величины кодового расстояния d, т.е. t £ [(d-1)/2]
- кратность ошибки t меньше величины кодового расстояния d, т.е. t < d
- кратность ошибки t больше величины кодового расстояния d, t > d³
Вторая постановка, являющаяся сильной, состоит в том, что применяемые коды с исправлением ошибок должны обеспечивать в канале с произвольным характером ошибок гарантированную верхнюю границу для вероятности ошибки декодирование на всем интервале возможной кратности ошибки t £ n; причем эта граница должна устанавливаться при проектировании выбором параметров кода.
Из эвристических соображений сформулируем свойства помехоустойчивого кода с исправлением ошибок, которые позволили бы обеспечить его применение для защиты информации в современных информационных и телекоммуникационных системах в любых из существующих задачах применения.[14]
1. Код имеет режимы обнаружения и исправления ошибок с обеспечением в обоих режимах гарантированной (наперед заданной) вероятности декодирования с ошибкой в произвольном канале связи и надежным отказом от декодирования при невозможности исправления ошибки.
2. Код имеет такую исправляющую способность и позволяет выбрать такие параметры n и k, что использующий их алгоритм передачи информации характеризуется нехудшими вероятностно-временными характеристиками по сравнению с применением альтернативных кодов.
3. Код обеспечивает в режиме исправления ошибок выделение с заданной точностью части правильно принятых символов даже при кратности ошибки, превышающей исправляющую способность кода.
4. Код позволяет декодировать несколько копий (одинаковых по содержанию информации кодовых блоков) блока с эффективностью, превышающей эффективность декодирования исходного кода с обнаружением или исправлением ошибок. Это свойство может применяться для работы по параллельным каналам, при многократной передаче сообщения по одному каналу или в канале с обратной связью при обработке копий после приема повторенного блока.
5. Процедуры кодирования и декодирования кода содержат, в основном, операции по модулю 2.
6. Метод кодирования должен обладать свойствами случайности сигналов на выходе кодера, обеспечивающими совместное решение задач обеспечения помехоустойчивости и секретности в постановке К. Шеннона.
1.4.3 Код Шеннона
Оптимальным кодом можно определить тот, в котором каждый двоичный символ будет передавать максимальную информацию. В силу формул Хартли и Шеннона максимум энтропии достигается при равновероятных событиях, следовательно, двоичный код будет оптимальным, если в закодированном сообщении символы 0 и 1 будут встречаться одинаково часто.[8]
Рассмотрим
в качестве примера оптимальное двоичное
кодирование букв русского алфавита вместе
с символом пробела «-». Полагаем, что известны
вероятности появления в сообщении символов
русского алфавита, например, приведенные
в таблице 3.
Таблица 3.Частота букв русского языка (предположение)
К. Шеннон и Р. Фано независимо предложили в 1948-1949 гг. способ построения кода, основанный на выполнении условия равной вероятности символов 0 и 1 в закодированном сообщении. [10]
Все кодируемые символы (буквы) разделяются на две группы так, что сумма вероятностей символов в первой группе равна сумме вероятностей символов второй группы (то есть вероятность того, что в сообщении встретится символ из первой группы, равна вероятности того, что в сообщении встретится символ из второй группы).
Для символов первой группы значение первого разряда кода присваивается равным «0», для символов второй группы – равными «1».
Далее каждая группа разделяется на две подгруппы, так чтобы суммы вероятностей знаков в каждой подгруппе были равны. Для символов первой подгруппы каждой группы значение второго разряда кода присваивается равным «0», для символов второй подгруппы каждой группы – «1». Такой процесс разбиения символов на группы и кодирования продолжается до тех пор, пока в подгруппах не остается по одному символу.
Пример
кодирования символов русского алфавита
приведен в табл. 4
Таблица 4. Пример кодирования букв русского алфавита с помощью кода Шеннна-Фано.
Анализ приведенных в таблице кодов приводит к выводу, что часто встречающиеся символы кодируются более короткими двоичными последовательностями, а редко встречающиеся - более длинными. Значит, в среднем для кодирования сообщения определенной длины потребуется меньшее число двоичных символов 0 и 1, чем при любом другом способе кодирования.
Вместе с тем процедура построения кода Шеннона-Фано удовлетворяет критерию различимости Фано. Код является префиксным и не требует специального символа, отделяющего буквы друг от друга для однозначного него декодирование двоичного сообщения.
Таким образом, проблема помехоустойчивого кодирования представляет собой обширную область теоретических и прикладных исследований. Основными задачами при этом являются следующие: отыскание кодов, эффективно исправляющих ошибки требуемого вида; нахождение методов кодирования и декодирования и простых способов их реализации.
Наиболее
разработаны эти задачи применительно
к систематическим кодам. Такие
коды успешно применяются в
2.Практическая
реализация задачи кодирования
2.1
Пример к первой теореме
Шеннона
Задача
эффективного кодирования описывается
триадой:
X
= {X 4i 0} - кодирующее устройство - В.
Здесь Х, В - соответственно входной и выходной алфавит. Под множеством х 4i 0 можно понимать любые знаки (буквы, слова, предложения). В - множество, число элементов которого в случае кодирования знаков числами определяется основанием системы счисления 2 ( например 2, m = 2 2) . Кодирующее устройство сопоставляет каждому сообщению x 4i 0 из Х кодовую комбинацию, составленную из n 4i символов множества В. Ограничением данной задачи является отсутствие помех. Требуется оценить минимальную среднюю длину кодовой комбинации.
Для решения данной задачи должна быть известна вероятность P 4i появления сообщения x 4i 0, которому соответствует определенное количество символов n 4i алфавита B. Тогда математическое ожидание количества символов из B определится следующим образом: n 4ср = n 4i P 4i (средняя величина).
Этому
среднему количеству символов алфавита
В соответствует максимальная энтропия
H 4max = n 4ср log m. Для обеспечения передачи
информации, содержащейся в сообщениях
Х кодовыми комбинациями из В, должно выполняться
условие H 4max >= H(x) 4, или n 4ср log m >= - P 4i
log P 4i . В этом случае закодированное сообщение
имеет избыточность
n
4ср >= H(x)/log m, n 4min = H(x)/log 4 m.
Коэффициент избыточности
Ku
= (H 4max - H(x))/H 4max = (n 4ср - n 4min )/n 4ср .
Составим соответствующую таблицу. Имеем:
n 4min = H(x)/log 2 = 2.85, Ku = (2.92 - 2.85)/2.92 = 0.024,
т.е.
код практически избыточности не
имеет. Видно, что среднее количество
двоичных символов стремится к энтропии
источника сообщений.
Таблица 2.1 Пример к первой теореме Шеннона
N
0,1 |
P(x,4i) | (x,4i) | код | n,4i | n,4i p,4i | Px 4i log Px 4i |
1 2 3 4 5 6 7 8 |
0.19 0.16 0.16 0.15 0.12 0.11 0.09 0.02 |
X1 X2 X3 X4 X5 X5 X7 X8 |
10 001 011 100 101 111 1011 1001 |
2 3 3 3 3 3 4 4 |
0.38 0.48 0.48 0.45 0.36 0.33 0.36 0.08 |
-4.5522 -4.2301 -4.2301 -4.1054 -3.6706 -3.5028 -3.1265 -3.1288 |
Px 41 0=1,0 | =2.92 | H(x)=2.85 |
2.2
Пример построения кода
Шеннона
В
таблице 2.2 приведены промежуточные вычисления
и результат построения кода Шеннона.
Средняя длина кодовых слов l = 2,95. В данном
случае избыточность кода Шеннона на 0,5
бита больше, чем избыточность кода Хаффмена.
Из этого рисунка понятно, почему код неэффективен.
Кодовые слова для букв b , d , e , f могут быть
укорочены на 1 бит без потери свойства
однозначной декодируемости.
Таблица 2.2 Построение кода Шеннона
Буква | Вероятность p m | Кумулятивная вероятность q m | Длина кодо- вого слова l m | Двоичная запись [ q]2 | Кодовое слово c m |
a | 0,35 | 0,00 | 2 | 0,00… | 00 |
b | 0,20 | 0,35 | 3 | 0,0101… | 010 |
c | 0,15 | 0,55 | 3 | 0,10001… | 100 |
d | 0,10 | 0,70 | 4 | 0,10110… | 1011 |
e | 0,10 | 0,80 | 4 | 0,11001… | 1100 |
f | 0,10 | 0,90 | 4 | 0,11100… | 1110 |
Докажем однозначную декодируемость кода Шеннона. Для этого выберем сообщения с номерами i и j , i < j . Кодовое слово ci для i заведомо короче, чем слово cj для j , поэтому достаточно доказать, что эти слова отличаются в одном из первых li символов.
Рассмотрим разность qj − qi =Σ pk − Σ pk =Σ pk ≥ pi