Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
80
Добавлен:
12.03.2015
Размер:
1.24 Mб
Скачать

Глава 6 Обнаружение и исправление

ошибок

E-mail: abilov@udm.ru

Web: http://www.istu.ru/unit/prib/net/edu/teach/tspd

Лекция 6. Обнаружение и исправление ошибок

1

1. Введение

Типыошибок

Причины появления ошибок передачи данных: внешние помехи,

интерференция, неисправности и прочие факторы в сетях

Требование многих приложений: гарантия идентичности передаваемых и принимаемых данных

Некоторые приложения (передача аудио и видео) допускают ошибки

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

Передаваемые данные могут быть искажены. Для некоторых приложений необходимы функции обнаружения и/или коррекции ошибок

Типы ошибок:

Одиночная ошибка (происходит инверсия одного двоичного символа)

Пакетная ошибка (инвертируется несколько бит в блоке)

Импульсная помеха – 0,01 с, скорость передачи данных – 1200 бит/с:

инвертируется до 12 бит информации

Лекция 6. Обнаружение и исправление ошибок

2

1. Введение

Типыошибок: одиночнаяошибка

При одиночной ошибке инвертируется лишь один бит в блоке данных

Инверсия бита

Передаваемый блок

 

Принимаемый блок

Рис. 3.1. Одиночная ошибка

Посылаемый блок (код): 00000010 (ASCII STX) – Start of text (Начало текста) Принимаемый блок (код): 00001010 (ASCII LF) – Line feed (Перевод строки)

Одиночные ошибки менее вероятны по сравнению с пакетными ошибками

При скорости передачи данных 1 Мбит/с, длительность бита равна лишь 1 мкс

Большинство помех имеет значительно большую длительность

Лекция 6. Обнаружение и исправление ошибок

3

1. Введение

Типыошибок: пакетнаяошибка

При пакетной ошибке инвертируется два или более бит в блоке данных

Длина пакетной Передаваемый ошибки (8 бит)

блок

Искаженные биты

Принимаемый блок Рис. 3.2. Пакетная ошибка длинной 8 бит

Искаженные биты не обязательно следуют друг за другом

Длина пакетной ошибки: от первого до последнего искаженного бита, определяется скоростью передачи данных и длительностью помехи

Пакетные ошибки более вероятны по сравнению с одиночными ошибками

Скорость передачи 1 кбит/с, длит. помехи 0,01 с – искажаются до 10 бит

Скорость передачи 1 Мбит/с, длит. помехи 0,01 с – искажаются до 10000 бит

Лекция 6. Обнаружение и исправление ошибок

4

1. Введение

Контрольошибокиизбыточность(Redundancy)

Для обнаружения или исправления ошибок к блоку полезной информации добавляется избыточность (добавочные биты)

По избыточным битам на приемной стороне обнаруживаются или исправляются искаженные биты информации

Обнаружение ошибок (Error Detection): определяется лишь факт наличия ошибок, при этом их тип (одиночная или пакетная ошибка), количество и место положение не имеют значения

Исправление ошибок (Error Correction): определяется точное количество искаженных бит и их местоположение в блоке

Прямое исправление ошибок (Forward error correction – FEC): поврежденный блок восстанавливается с помощью избыточности (исправить можно ограниченное количество ошибок)

Ретрансляция (Retransmission): при обнаружении ошибок в блоке запрашивается его повторная передача

Лекция 6. Обнаружение и исправление ошибок

5

1. Введение

Кодирование(Coding)

Принцип помехоустойчивого кодирования: на передаче к информационному коду вводится избыточность по определенному правилу; на приеме проверяется соотношение полезной и избыточной комбинации

Приемник

 

 

 

Передатчик

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Да Данные Данные

Потеря

данных

Нет

Информация и избыточность

Две разновидности схем кодирования:

Блочное кодирование

Сверточное кодирование

Информация и избыточность

Рис. 3.3. Кодирование

Лекция 6. Обнаружение и исправление ошибок

6

1. Введение

Модульнаяарифметика(Modular Arithmetic)

Одна из функций кодирования и декодирования: операции сложения и умножения в соответствии с правилами для алгебраического поля с ограниченным количеством элементов

Поле Галуа: алгебраическое поле с q элементами – GF(q):

Для двоичной системы счисления q = 2 (элементы 0 и 1)

Простейшее поле – это поле GF(2)

В общем случае если q – простое целое число, ограниченное поле GF(q) состоит из элементов {0, 1, …, q – 1}

Операции сложения и умножения над элементами из GF(q) осуществляется по модулю q

Варифметике по модулю q используются только целые числа

вдиапазоне от 0 до q–1, включительно

Лекция 6. Обнаружение и исправление ошибок

7

1. Введение

Арифметикапомодулю2 (Modulo-2 Arithmetic)

Арифметика по модулю 2: используется в большинстве случаем при передаче данных

Примеры таблиц сложения и умножения для GF(2)

+

0

1

0

1

0

0

1

0

0

0

 

 

1

1

0

1

0

1

Операция сложения (и вычитания) по модулю 2 соответствует операции XOR (исключающее ИЛИ). Примеры операции XOR:

Два одинаковых бита: результат – 0

Два разных бита: результат – 1

 

Операция XOR для двух слов

 

 

 

Рис. 3.4. Операция XOR

Если оба элемента одинаковы – результат 0; если элементы разные – результат 1

Лекция 6. Обнаружение и исправление ошибок

8

2. Блочноекодирование

Информационное слово (Dataword): блоки длиной k бит, на которые делится исходная двоичная информационная последовательность

Избыточные символы (Redundancy): добавляются по определенному правилу (r бит) к информационному слову на передаче

Кодовое слово (Codeword): двоичный вектор (комбинация) фиксированной длины n = k + r бит; формируется при блочном кодировании

Блочное кодирование (Block Coding):

Образуется множество из 2k информационных слов длиной k и множество из 2n кодовых слов длиной n

Так как n > k, то количество комбинаций кодовых слов больше количества комбинаций информационных слов

Блочное кодирование подразумевает взаимно-однозначное соответствие информационных и кодовых слов

При кодировании не используются 2n – 2k кодовых слов

Разрешенные слова (комбинации): комбинации, используемые при кодировании

Лекция 6. Обнаружение и исправление ошибок

9

2. Блочноекодирование

k бит k бит k бит

2k комбинаций информационных слов длиной k бит

n бит

 

n бит

 

n бит

2n комбинаций кодовых слов длиной n бит (из них 2k разрешенных)

Рис. 3.5. Множества информационных и кодовых слов в блочном кодировании

Деление на

 

 

 

блоки

k бит

k бит

k бит

 

Блочное кодирование:

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

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

 

 

 

 

 

 

Добавление

 

 

 

 

 

 

избыт. бит

n бит

 

n бит

 

n бит

 

 

 

 

Линейное

кодирование

Рис. 3.6. Блочное кодирование

Лекция 6. Обнаружение и исправление ошибок

10

2. Блочноекодирование

Пример1 Рассмотрим блочный код 4B/5B : исходная информационная последовательность двоичных символов делится на информационные слова длиной k = 4 бит. Кодер заменяет каждое слово на соответствующее кодовое слово длиной n = 5 бит

k = 4

 

Разрешенные слова

 

n = 5

Рис. 3.7. Замена комбинаций

вблочном кодировании

Множество из 16 комбинации информационного слова отображается лишь на часть (разрешенных) комбинаций кодового слова; остальные не используются

Каждый код должен содержать не более одного нулевого бита вначале кода (слева) и не более двух нулевых бит в конце (справа)

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

Лекция 6. Обнаружение и исправление ошибок

11

2. Блочноекодирование

Обнаружениеошибок

Два условия возможности обнаружения искажений в кодовом слове:

Приемник обладает списком разрешенных комбинаций кодового слова

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

разрешенных комбинаций

 

 

Передатчик

 

 

 

 

 

 

 

 

 

Приемник

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кодер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Декодер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Информация

Информация

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Извлечение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Потеря

 

 

 

Генератор

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Детектор

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Информационная и

 

 

Ненадежная передача

 

 

 

 

 

 

 

 

 

 

 

 

 

Принятый код

 

 

 

 

 

 

 

 

 

 

 

избыточность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 3.8. Обнаружение ошибок в процессе блочного кодирования

Если кодовое слово не приеме принадлежит одной из разрешенных комбинаций, то оно принимается, в противном случае кодовое слово отбрасывается

Лекция 6. Обнаружение и исправление ошибок

12

 

 

 

 

 

2. Блочноекодирование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обнаружениеошибок

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример2

 

 

Запрещенная

 

 

 

 

 

 

 

 

 

Примем k = 2 и n = 3:

Табл. 3.1

 

комбинация

 

 

 

 

 

 

 

Кодирование для обнаружения ошибок

 

(обнаружение

 

 

 

 

 

 

 

 

 

 

ошибки)

 

 

 

 

 

 

Информационное слово

Кодовое слово

 

 

 

 

 

 

 

 

 

 

 

111

 

 

 

00

000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01

011

011

 

Верно

10

101

000

 

 

 

 

 

 

 

 

 

 

 

 

11

110

 

 

 

 

 

 

Разрешенная

комбинация

Пусть инф. слово 01 кодируется в кодовое слово 011, рассм. три случая: (ложный прием)

1.Получатель принимает 011, что является верным, и извлекает из него информационных код 01

2.Кодовое слово искажается и принимается комбинация 111 (бит слева искажен). Такой разрешенной комбинации не существует и код отбрасывается

3.Кодовое слово искажается и принимается комбинация 000 (два бита справа искажены). Извлекается неверное информационное слово 00

Лекция 6. Обнаружение и исправление ошибок

13

2. Блочноекодирование

Исправлениеошибок

Для исправления ошибок требуется определить, какая конкретно комбинация передавалась

Требуется больше избыточных бит и схема кодирования

Пример3

 

 

Примем k = 2 и n = 5:

Табл. 3.2

 

 

 

 

 

 

Кодирование для исправления ошибок

Запрещенная

 

 

 

 

Информационное слово

Кодовое слово

 

комбинация

 

 

 

 

00

00000

 

 

 

 

01001

 

01

01011

 

10

10101

 

 

 

 

 

 

11

11110

 

 

 

 

 

Пусть информационное слово 01 кодируется в кодовое слово 01011:

Второй бит справа искажается, принимается комбинация 01001

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

Комбинация отличающаяся не более чем на один бит – верная (01011)

Лекция 6. Обнаружение и исправление ошибок

14

2. Блочноекодирование

РасстояниеХэмминга

Расстояние Хэмминга: определяется количеством различий между соответствующими битами в словах

Обозначается d(x, y), x и y – слова одинаковой длины

Определяется операцией XOR ( ) над двумя словами и подсчетом количества единиц в результате

Вес кодового слова: это количество единиц в кодовом слове

Расстояние Хэмминга между двумя словами определяется как количество различий между одноименными битами (вес результата XOR)

Пример4

Расстояние Хэмминга между словами:

Расстояние Хэмминга d(000, 011) равно 2, так как 000 011 = 011 (два единичных символа в слове).

Расстояние Хэмминга d(10101, 11110) равно 3, так как 10101 11110 = 01011 (три единичных символа в слове).

Лекция 6. Обнаружение и исправление ошибок

15

2. Блочноекодирование

МинимальноерасстояниеХэмминга

Минимальное расстояние Хэмминга dmin: определяется как наименьшее расстояние Хэмминга между всеми возможными парами комбинаций кода

Минимальное расстояние Хэмминга определяется как наименьшее расстояние Хэмминга между всеми возможными парами на множестве комбинаций кода

Пример5

Информационное слово

Кодовое слово

Найти минимальное расстояние Хэмминга для

00

000

кода из таблицы:

 

 

01

011

 

10

101

 

 

 

 

11

110

 

 

 

Решение

Находим расстояния Хэмминга между всеми парами комбинаций в слове :

 

 

d(000, 011) = 2;

d(000, 101) = 2;

d(000, 110) = 2;

 

 

d(011, 101) = 2;

d(011, 110) = 2;

d(101, 110) = 2;

 

 

dmin = 2

 

 

 

 

 

 

 

 

 

Лекция 6. Обнаружение и исправление ошибок

16

2. Блочноекодирование

МинимальноерасстояниеХэмминга

Пример6

Информационное слово

Кодовое слово

00

00000

Найти минимальное расстояние Хэмминга

01

01011

для кода из таблицы:

 

10

10101

Решение

11

11110

 

 

 

 

Находим все возможные расстояния Хэмминга для кода из табл.:

 

d(00000, 01011) = 3;

d(00000, 10101) = 3;

d(00000, 11110) = 4;

 

d(01011, 10101) = 4;

d(01011, 11110) = 3;

d(10101, 11110) = 3;

 

dmin = 3

 

 

Три основных параметра кодирования: длина кодового слова n; длина информационного слова k; минимальное расстояние Хэмминга dmin

Форма записи схемы кодирования: C(n, k) с dmin

Примеры записи: для Примера 5: C(3, 2) с dmin = 2;

для Примера 6: C(5, 2) с dmin = 3

Лекция 6. Обнаружение и исправление ошибок

17

2. Блочноекодирование

МинимальноерасстояниеХэмминга

Связь корректирующей способности кода с расстоянием Хэмминга

Расстояние Хэмминга между принятым и переданным кодовыми словами точно соответствует количеству искаженных бит

Например, передается 00000, а принимается 01101. Три бита искажены и расстояние Хэмминга равно d(00000, 01101) = 3

Минимальное расстояние Хэмминга при обнаруженииошибок

При необходимости обнаружения вплоть до to ошибок минимальное расстояние между разрешенными кодовыми словами должно быть dmin to + 1. В этом случае ошибки в кодовом слове не приводят к его трансформации в одну из разрешенных комбинаций, т.к. их не достаточно

Условие dmin to + 1 дает гарантированное обнаружение вплоть до to ошибок в слове

Если ошибок в принимаемом слове больше to, то они также могут быть обнаружены но не гарантированно (не для всех комбинаций)

Для гарантированного обнаружения вплоть до s ошибок в кодовом слове минимальное расстояние Хэмминга должно быть dmin to + 1

Лекция 6. Обнаружение и исправление ошибок

18

2. Блочноекодирование

МинимальноерасстояниеХэмминга

Пример7

Минимальное расстояние Хэмминга для кода из таблицы равно 2

Гарантируется обнаружение только одной ошибки

При двух ошибках возможен переход в другую разрешенную комбинацию

Пример8

Минимальное расстояние Хэмминга для кода из таблицы равно 3

Гарантируется обнаружение до двух ошибок, т.к. любые две ошибки создают запрещенную комбинацию

Некоторые комбинации трех ошибок создают разрешенную комбинацию (ошибки не обнаруживаются)

Информационное

Кодовое слово

 

слово

 

 

00

000

 

 

 

 

01

011

 

 

 

 

10

101

 

 

 

 

11

110

 

 

 

 

 

 

 

Информационное

Кодовое слово

 

слово

 

 

00

00000

 

 

 

 

01

01011

 

 

 

 

10

10101

 

 

 

 

11

11110

 

 

 

 

Лекция 6. Обнаружение и исправление ошибок

19

2. Блочноекодирование

МинимальноерасстояниеХэмминга

Принцип обнаружения ошибок можно посредством геометрического представления расстояния Хэмминга

 

 

Обозначения

 

 

 

 

 

 

 

Радиус to

 

Любое разрешенное слово

 

 

 

 

 

 

 

 

 

 

Любое запрещенное слово с

 

 

 

количеством ошибок от 1 до to

dmin > to

Рис. 3.9. Обнаружение ошибок в процессе блочного кодирования

Если передаваемое кодовое слово x представить как центр окружности с радиусом to, то все принимаемые кодовые слова с количеством ошибок от 1 до to можно представить в виде точек в пределах круга и на линии окружности (пространства запрещенных комбинаций). Все остальные (разрешенные кодовые комбинации) должны находиться вне круга

Лекция 6. Обнаружение и исправление ошибок

20

Соседние файлы в папке дз на зиму КиЦОИ