- •Тема 1. Предмет и методы теории информации и кодирования
- •1.1. Введение
- •1.2. Основные понятия и определения
- •1.3. Системы передачи информации
- •Тема 2. Математическая теория информации
- •2.1. Количество информации, и ее мера
- •2.2. Свойства количества информации
- •2.3. Энтропия информации
- •5.2. График энтропии для двух альтернативных событий
- •2.4. Свойства энтропии сообщений
- •2.5. Безусловная энтропия и ее свойства
- •2.6. Условная энтропия.
- •2.5. Энтропия объединения
- •Энтропия объединения (совместная энтропия) находится при помощи матрицы ( табл.3) путем суммирования по строкам или столбцам всех вероятностей вида
- •Уяснению взаимосвязи между рассмотренными видами энтропий дискретных систем способствует их графическое изображение.
- •Тема 3. Основы теории кодирования
- •3.1.Основные понятия и определения
- •3.2. Классификация кодов
- •3.3. Способы представления кодов
- •Тема 4. Каналы связи
- •4.1. Каналы связи, их классификация и характеристики
- •Пропускная способность дискретного канала связи
- •Дискретный канал связи без помех
- •Дискретный канал связи с помехами
- •Пример. По каналу связи передаются сообщения, вероятности которых соответственно равны:
- •Пропускная способность бинарного, симметричного канала
- •Избыточность сообщений
- •Тема 5. Оптимальное кодирование
- •5.1. Основные понятия и определения
- •5.2. Код Шеннона-Фано
- •5.3. Код Хаффмена
- •Тема 6. Помехоустойчивое кодирование
- •6.1. Общие положения
- •6.2. Обнаруживающие коды
- •Тема 7. Корректирующие коды
- •7.1. Основные понятия
- •7.2 Линейные групповые коды
- •7.3. Код хэмминга
- •Тема 8. Циклические коды
- •8.1. Операции над циклическими кодами
- •8.2. Циклические коды, исправляющие одиночную ошибку
- •Если задана длина кодовой комбинации, то число контрольных разрядов определяем по формуле
- •Так как частное q(X) имеет такую же степень, как и кодовая комбинация g(X) , то q(X) является кодовой комбинацией того же k - значного кода.
- •8.3. Матричная запись циклического кода
- •8.4. Циклические коды, обнаруживающие трехкратные ошибки
- •Тема 9. Коды боуза-чоудхури- хоквингема
- •Сигнальные символы это вспомогательные данные, облегчающие декодирование: служебные сигналы, сигналы синхронизации и т. Д.
- •Тема 10. Введение в криптологию
- •0 1 2 3 4 5 6 7 8 9 25 Ключ
- •4 7 9 2 3 5 1 6 8 Ключ
- •Функция дискретного логарифма обратная
6.2. Обнаруживающие коды
Обнаруживающие коды - это коды, позволяющие обнаружить ошибку, но не исправить ее. Простейший способ обнаружения ошибки это добавление к последовательности битов данных еще одного бита - бита проверки на четность (нечетность) значение, которого равно сумме по модулю два исходной последовательности битов. Чаще организуется проверка на нечетность.
В символьном коде ASCII к семи битам кода добавляется восьмой бит проверки на четность - k1.
S1 S2 S3 S4 S5 S6 S7 K1
-
1
1
0
1
1
0
1
1
Однобитовая проверка позволяет обнаружить любую единичную ошибку, две ошибки обнаружить нельзя, в общем случае обнаруживается любое нечетное количество ошибок.
Внесение избыточности за счет увеличения длины кодовой комбинации приводит к снижению скорости передачи информации.
Если кодовая комбинация длиной n содержит k информационных и m контрольных разрядов (n = k + m), то
.
Для кода ASCII n = 8 и k = 7
,
т. е. введения одного избыточного разряда приводит к уменьшению пропускной способности канала связи на 12,5%.
Чаще всего шумы (молнии, разрыв и т.д.) порождают длинные пакеты ошибок и вероятность четного и нечетного числа ошибок одинакова, а значит и однобитовая проверка не эффективна.
Проверка на четность по вертикали и горизонтали.
При этом последовательность битов данных перестраивается в двухмерный массив, и вычисляются биты на четность, как для каждой строки, так и для каждого столбца.
При этом можно обнаружить несколько ошибок, если они не располагаются в одинаковых строках и столбцах.
Чаще всего используется при передаче данных кода ASCII; каждый символ можно считать строкой массива. Такая проверка может не только установить факт ошибки, но и обнаружить ее место, а значит, есть принципиальная возможность ее исправления, хотя это практически не используется.
1 0 1 1 0 1 1 1
0 1 0 0 0 1 0 0
1 0 1 0 0 1 0 1
1 1 0 0 1 0 1 0
0 0 0 1 0 1 0 0
1 0 0 0 1 0 0
После обнаружения ошибок иногда можно повторить передачу сообщений, иногда после обнаружения ошибки предпринимается вторая и даже третья попытка передачи сообщения.
Проверка на четность широко используется на ЭВМ, как на аппаратном, так и на программном уровне.
Тема 7. Корректирующие коды
7.1. Основные понятия
В соответствии с теоремой Шеннона для дискретного канала с помехами, достоверность передаваемой информации может быть обеспечена применением корректирующих кодов.
Помехоустойчивыми или корректирующими кодами называются коды, позволяющие обнаружить и устранить ошибки при передаче информации из-за воздействия помех.
Наиболее распространенным является класс кодов с коррекцией одиночных и обнаружением двойных ошибок (КО-ОД). Самым известных среди этих кодов является код Хэмминга, имеющий простой и удобный для технической реализации алгоритм обнаружения и исправления одиночной ошибки.
В ЭВМ эти коды используются для повышения надежности оперативной памяти (ОП) и магнитных дисков. Число ошибок в ЭВМ зависит от типа неисправностей элементов схем (например, неисправность одного элемента интегральной схемы (ИС) вызывает одиночную ошибку, а всей ИС ОП - кратную). Для обнаружения кратных ошибок используется код КО-ОД-ООГ (коррекция одиночной, обнаружение двойной и обнаружение кратной ошибки в одноименной группе битов).
Среди корректирующих кодов широко используются циклические коды, в ЭВМ эти коды применяются при последовательной передаче данных между ЭВМ и внешними устройствами, а также при передаче данных по каналам связи. Для исправления двух и более ошибок (d0 5) используются циклические коды БЧХ (Боуза - Чоудхури - Хоквингема), а также Рида-Соломона, которые широко используются в устройствах цифровой записи звука на оптические компакт-диски и позволяющие осуществлять коррекцию групповых ошибок. Способность кода обнаруживать и исправлять ошибки достигается за счет введений избыточности в кодовые комбинации, т. е. кодовым комбинациям из к - двоичных информационных символов, поступающих на вход кодирующего устройства, соответствует на выходе последовательность из n - двоичных символов (такой код называется (n, k) - кодом).
Если N0 = 2n - общее число кодовых комбинаций, а N = 2k - число разрешенных, то число запрещенных кодовых комбинаций равно 2n -2k.
При этом число ошибок, которое приводит к запрещенной кодовой комбинации равно:
,
где S - кратность ошибки, т. е. количество искаженных символов в кодовой комбинации S = 0, 1, 2, ...
Cni - сочетания из n элементов по i, вычисляемое по формуле:
,
для S = 0 ;
S = 1 ;
S = 2 ; S = 3 ; и т. д.
Для исправления S ошибок количество комбинаций кодового слова, составленного из m проверочных разрядов N = 2m, должно быть больше возможного числа ошибок (13.2), при этом количество обнаруживаемых ошибок в два раза больше, чем исправляемых
2m откуда .
Для одиночной ошибки, как наиболее вероятной .
При передаче кода может быть искажен любой информационный символ, а может и не быть ошибки вовсе, т.е., если всего символов, то должен быть создан такое число комбинаций из проверочных символов , что можно было свободно различать вариант. Поэтому:
, где - полное число комбинаций кода.
Для практических расчетов при определении числа контрольных разрядов для корректирующих кодов с минимальным кодовым расстоянием удобно пользоваться выражением : m = [log2(1+n)] или, если удобно в расчетах использовать число информационных символов, то m = [log2 {(k+1)+ [log2(k+1)]}], где квадратные скобки обозначают округление до большего целого.
В таблице 1 приведены соотношения между длиной кодовой комбинации и количеством информационных и контрольных разрядов для кода исправляющего одиночную ошибку, а также эффективность использования канала связи.
Для исправления двукратной ошибки
или .
Таблица 7.1
-
N
7
10
15
31
63
127
255
K
4
6
11
26
57
120
247
M
3
4
4
5
6
7
8
0,57
0,6
0,75
0,84
0,9
0,95
0,97
Введение избыточности в кодовые комбинации при использовании корректирующих кодов существенно снижает скорость передачи информации и эффективность использования канала связи.
Например, для кода (31, 26) скорость передачи информации равна
,
т. е. скорость передачи уменьшается на 16%.
Как видно из таблицы 1, чем больше n, тем эффективнее используется канал.
Пример 1. Определить количество проверочных разрядов для систематического кода исправляющего одиночную ошибку и состоящего из 20 информационных разрядов.
Решение: Общая длина кодовой комбинации равна n = k+m, где k- количество информационных разрядов, а m- проверочных разрядов.
Для обнаружения двойной и исправления одиночной ошибки зависимости для разрядов имеют вид , при этом
m = [log2 {(k+1)+ [log2(k+1)]}]=[log2 {(20+1)+ [log2(20+1)]}]=5,
т. е. получим (25, 20)-код.