tes-slides-04
.pdf
|
|
|
|
|
|
|
|
3.1. Введение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
А.В. Абилов |
|
|
|
|
|
|
Типыошибок |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Причины появления ошибок передачи данных: внешние помехи, |
|
|
|||||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
интерференция, неисправности и прочие факторы в сетях |
|
|
||
|
|
|
|
Требование многих приложений: гарантия идентичности передаваемых и |
|
|
||||
|
Теория электрической связи |
|
|
|
|
принимаемых данных |
|
|
||
|
|
|
|
Некоторые приложения (передача аудио и видео) допускают ошибки |
|
|
||||
|
|
|
|
|
|
|
Другие приложения (передача текста, графика и др.) более требовательны к |
|
|
|
|
|
|
|
|
|
|
|
допустимому уровню ошибок |
|
|
|
Лекция 4. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Передаваемые данные могут быть искажены. Для некоторых приложений |
|
|
|||
|
|
|
|
|
|
|
|
|||
|
Обнаружение и исправление ошибок |
|
|
|
|
|
|
необходимы функции обнаружения и/или коррекции ошибок |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Типы ошибок: |
|
|
|||||
|
Для студентов заочной формы обучения |
|
|
|
|
|||||
|
|
|
|
Одиночная ошибка (происходит инверсия одного двоичного символа) |
|
|
||||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
Пакетная ошибка (инвертируется несколько бит в блоке) |
|
|
|
|
E-mail: albert.abilov@mail.ru |
|
|
Импульсная помеха – 0,01 с, скорость передачи данных – 1200 бит/с: |
|
|
||||
|
|
|
|
|
инвертируется до 12 бит информации |
|
|
|||
|
Web: http://www.istu.ru/unit/prib/net/edu/teach |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
1 |
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
2 |
|
|
|
|
|
3.1. Введение |
|
|
|
|
|
|
|
|
|
|
|
|
|
3.1. Введение |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
Типыошибок: одиночнаяошибка |
|
|
|
|
|
|
|
|
|
Типыошибок: пакетнаяаяошибкаошибка |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
При одиночной ошибке инвертируется лишь один бит в блоке данных |
|
|
|
|
|
|
|
При пакетной ошибке инвертируется два или более бит в блоке данных |
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
Инверсия бита |
|
|
|
|
|
|
|
|
|
|
|
|
|
Длина пакетной |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Передаваемый |
|
|
ошибки (8 бит) |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
блок |
|
|
|
|
|
|
Искаженные биты |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Передаваемый блок |
|
Принимаемый блок |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
не обязательно |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Искаженные биты |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
Рис. 3.1. Одиночная ошибка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
следуют друг за |
|
|
||||||
|
Посылаемый блок (код): 00000010 (ASCII STX) – Start of text (Начало текста) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
другом |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
Принимаемый блок (код): 00001010 (ASCII LF) – Line feed (Перевод строки) |
|
|
|
|
|
|
|
|
|
Принимаемый блок |
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.2. Пакетная ошибка длинной 8 бит |
|
|
|
||||||
|
Одиночные ошибки менее вероятны по сравнению с пакетными ошибками |
|
|
|
Длина пакетной ошибки: от первого до последнего искаженного бита, |
|
|
|||||||||||||||||||||||
|
|
|
|
При скорости передачи данных 1 Мбит/с, длительность бита равна лишь 1 мкс |
|
|
|
определяется скоростью передачи данных и длительностью помехи |
|
|
||||||||||||||||||||
|
|
|
|
Большинство помех имеет значительно большую длительность |
|
|
|
Пакетные ошибки более вероятны по сравнению с одиночными ошибками |
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Скорость передачи 1 кбит/с, длит. помехи 0,01 с – искажаются до 10 бит |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Скорость передачи 1 Мбит/с, длит. помехи 0,01 с – искажаются до 10000 бит |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
2010 |
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
3 |
2010 |
|
|
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
4 |
|
|
|
|
|
3.1. Введение |
|
|
|
|
|
|
|
3.1. Введение |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
Контрольошибокиизбыточность(Redundancy) |
|
|
|
|
|
|
|
Кодирование(Coding) |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Принцип помехоустойчивого кодирования: на передаче к информационному |
||||||||||||||||||||||
|
|
|
|
|
Для обнаружения или исправления ошибок к блоку полезной |
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
информации добавляется избыточность (добавочные биты) |
|
|
|
|
|
коду вводится избыточность по определенному правилу; на приеме |
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
проверяется соотношение полезной и избыточной комбинации |
|
||||||||||||||||||||
|
|
|
|
По избыточным битам на приемной стороне обнаруживаются или исправляются |
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Приемник |
|
|
|
Передатчик |
|
|
|
|||||||||||
|
|
|
|
|
искаженные биты информации |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обнаружение ошибок (Error Detection): определяется лишь факт наличия |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Да |
|
Данные |
|
Данные |
|
|
|
|
|
|
||||||
|
|
|
|
ошибок, при этом их тип (одиночная или пакетная ошибка), количество и |
|
|
|
|
|
|
|
|
Потеря |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
место положение не имеют значения |
|
|
|
|
|
|
|
|
данных |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Нет |
|
|
|
|
|
|
|
|||||||||||
|
Исправление ошибок (Error Correction): определяется точное количество |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
искаженных бит и их местоположение в блоке |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Прямое исправление ошибок (Forward error correction – FEC): поврежденный |
|
|
|
|
|
Информация и |
|
|
|
|
|
|
|
|
|
Информация и |
|
|
||||||||||||
|
|
|
|
|
|
избыточность |
|
|
|
|
|
избыточность |
|
|
|||||||||||||||||
|
|
|
|
блок восстанавливается с помощью избыточности (исправить можно |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ограниченное количество ошибок) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.3. Кодирование |
|
||||
|
Ретрансляция (Retransmission): при обнаружении ошибок в блоке |
|
|
|
Две разновидности схем кодирования: |
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
запрашивается его повторная передача |
|
|
|
|
Блочное кодирование |
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
Сверточное кодирование |
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
5 |
|
2010 |
|
|
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
6 |
|
|
|
|
|
3.1. Введение |
|
|
|
|
|
|
|
3.1. Введение |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
Модульнаяарифметика(Modular Arithmetic) |
|
|
|
|
|
|
|
Арифметикапомодулюю22 ((ModuloModulo--22 ArithmeticArithmetic)) |
|
|
|
|
|
|
|
|
||||
|
Одна из функций кодирования и декодирования: операции сложения и |
|
|
|
Арифметика по модулю 2: используется в большинстве случаем при передаче |
||||||||||||||||||||
|
|
|
|
умножения в соответствии с правилами для алгебраического поля с |
|
|
|
|
|
|
данных |
|
+ |
0 |
1 |
• |
0 |
1 |
|
|
|||||
|
|
|
|
ограниченным количеством элементов |
|
|
|
|
|
|
Примеры таблиц сложения и умножения для GF(2) |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
0 |
0 |
0 |
|
|
||||||||
|
Поле Галуа: алгебраическое поле с q элементами – GF(q): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
1 |
0 |
1 |
|
|
|||||
|
|
|
|
Для двоичной системы счисления q = 2 (элементы 0 и 1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Простейшее поле – это поле GF(2) |
|
|
|
|
|
|
Операция сложения (и вычитания) по модулю 2 соответствует операции XOR |
||||||||||||||
|
|
|
|
В общем случае если q – простое целое число, ограниченное поле GF(q) состоит |
|
|
|
|
|
(исключающее ИЛИ). Примеры операции XOR: |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
из элементов {0, 1, …, q – 1} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Операции сложения и умножения над элементами из GF(q) осуществляется по |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
модулю q |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Два одинаковых бита: результат – 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В арифметике по модулю q используются только целые числа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
в диапазоне от 0 до q–1, включительно |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Два разных бита: результат – 1 |
|
|
Операция XOR для двух слов |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.4. Операция XOR |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
Если оба элемента одинаковы – результат 0; если элементы разные – результат 1 |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
7 |
2010 |
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
|
|
8 |
|
3.2. Блочноекодирование |
|
|
|
3.2. Блочноекодированиерование |
|
|
|
|
|||||
|
|
|
|
|
|
k бит |
k бит |
|
k бит |
|
|
|
|
|
Информационное слово (Dataword): блоки длиной k бит, на которые делится |
|
2k комбинаций информационных слов длиной k бит |
Блочное кодирование: |
|
||||||||||
|
|
Компенсирует недостатки |
||||||||||||
исходная двоичная информационная последовательность |
|
|
n бит |
|
n бит |
|
n бит |
|
||||||
Избыточные символы (Redundancy): добавляются по определенному правилу |
|
|
|
|
линейного кодирования |
|||||||||
|
|
|
|
|
|
|
||||||||
|
2n комбинаций кодовых слов длиной n бит (из них 2k разрешенных) |
ненадежного физического |
||||||||||||
(r бит) к информационному слову на передаче |
|
|
Рис. 3.5. Множества информационных и |
|
уровня |
|
|
|||||||
Кодовое слово (Codeword): двоичный вектор (комбинация) фиксированной |
|
|
кодовых слов в блочном кодировании |
|
может использоваться как |
|||||||||
|
|
|
|
|
|
|
||||||||
длины n = k + r бит; формируется при блочном кодировании |
|
|
|
|
|
|
|
|
для синхронизации, так и |
|||||
Блочное кодирование (Block Coding): |
|
|
Деление на |
|
|
|
|
|
для обнаружения ошибок |
|||||
Образуется множество из 2k информационных слов длиной k и множество из 2n |
|
|
|
|
|
|
|
|
||||||
блоки |
k бит |
|
k бит |
k бит |
|
|
|
|
||||||
|
кодовых слов длиной n |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Так как n > k, то количество комбинаций кодовых слов больше количества |
|
|
|
|
|
|
|
Добавление |
|
|
|
|||
|
комбинаций информационных слов |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
n бит |
|
n бит |
|
n бит |
избыт. бит |
|
|
|
||
Блочное кодирование подразумевает взаимно-однозначное соответствие |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
информационных и кодовых слов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При кодировании не используются 2n – 2k кодовых слов |
|
Линейное |
|
|
|
|
|
|
|
|
|||
Разрешенные слова (комбинации): комбинации, используемые при |
|
кодирование |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
кодировании |
|
|
|
|
Рис. 3.6. Блочное кодирование |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|||||
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
9 |
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
10 |
||||||||
|
3.2. Блочноекодирование |
|
|
|
3.2. Блочноекодированиерование |
|
|
|
|
|||||
|
|
|
|
|
|
Обнаружениеошибок |
|
|
|
|
|
|||
Пример1 Рассмотрим блочный код 4B/5B : исходная информационная последовательность |
Два условия возможности обнаружения искажений в кодовом слове: |
|
||||||||||||
|
двоичных символов делится на информационные слова длиной k = 4 бит. Кодер |
Приемник обладает списком разрешенных комбинаций кодового слова |
|
|||||||||||
|
заменяет каждое слово на соответствующее кодовое слово длиной n = 5 бит |
|
|
|||||||||||
|
|
Передаваемое кодовое слово в результате искажений преобразуется в одну из |
||||||||||||
|
k = 4 |
Разрешенные слова |
n = 5 |
|
||||||||||
|
|
|
разрешенных комбинаций |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
Передатчик |
|
|
|
Приемник |
|
|
||
|
|
|
|
|
|
|
|
Кодер |
|
|
Декодер |
|
|
|
|
|
|
|
|
|
Информация |
|
|
Информация |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
Извлечение |
|
|
|
|
|
|
|
|
Генератор |
|
|
|
Детектор |
Потеря |
|
||
|
Рис. 3.7. Замена комбинаций |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
в блочном кодировании |
|
|
|
|
|
|
|
|
|
|
|
|
Множество из 16 комбинации информационного слова отображается лишь на часть |
|
|
Информационная и |
Ненадежная передача |
|
|
|
|||||||
|
(разрешенных) комбинаций кодового слова; остальные не используются |
|
|
|
|
Принятый код |
|
|
||||||
|
|
|
избыточность |
|
|
|
|
|||||||
Каждый код должен содержать не более одного нулевого бита вначале кода (слева) и не |
|
|
Рис. 3.8. Обнаружение ошибок в процессе блочного кодирования |
|
|
|||||||||
|
более двух нулевых бит в конце (справа) |
|
|
|
|
|
|
|||||||
кодовые слова не могут содержать более чем три последовательных нулевых бита, что |
|
Если кодовое слово не приеме принадлежит одной из разрешенных комбинаций, |
||||||||||||
|
облегчает тактовую синхронизацию |
|
|
|||||||||||
|
|
|
|
то оно принимается, в противном случае кодовое слово отбрасывается |
|
|||||||||
|
|
|
|
|
|
|
||||||||
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
11 |
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
12 |
|
|
|
|
3.2. Блочноекодирование |
|
|
|
|
|
|
|
3.2. Блочноекодированиерование |
|
||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
Обнаружениеошибок |
|
|
|
|
|
|
|
|
|
Исправлениеошибок |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пример2 |
|
|
|
|
|
|
|
|
Для исправления ошибок требуется определить, какая конкретно комбинация |
||||||||||
|
|
Запрещенная |
|
|
|
|
передавалась |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Примем k = 2 и n = 3: |
Табл. 3.1 |
комбинация |
|
|
|
Требуется больше избыточных бит и схема кодирования |
|
||||||||||||
Кодирование для обнаружения ошибок |
(обнаружение |
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
ошибки) |
Пример3 |
|
|
|
||||||
|
|
|
|
|
Информационное слово |
Кодовое слово |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
111 |
|
|
|
|
|
||||||||
|
|
|
|
|
00 |
000 |
|
|
|
Примем k = 2 и n = 5: |
Табл. 3.2 |
|
|||||||
|
|
|
|
|
|
|
|
011 |
Верно |
|
|
|
|
|
|
|
|||
|
|
|
|
|
01 |
011 |
|
|
|
|
|
|
|
Кодирование для исправления ошибок |
Запрещенная |
||||
|
|
|
|
|
10 |
101 |
|
|
|
|
|
|
|
|
|
Информационное слово |
Кодовое слово |
|
|
|
|
|
|
|
000 |
|
|
|
|
|
|
|
|
комбинация |
|||||
|
|
|
|
|
11 |
110 |
|
Разрешенная |
|
|
|
|
|
00 |
00000 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01001 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
01011 |
|
||||
|
|
|
|
|
|
|
|
комбинация |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
10101 |
|
|
|||
Пусть инф. слово 01 кодируется в кодовое слово 011, рассм. три случая: |
(ложный прием) |
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
11 |
11110 |
|
|
|||||||||||
|
|
|
1. Получатель принимает 011, что является верным, и извлекает из него информационных |
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
код 01 |
|
|
|
|
|
Пусть информационное слово 01 кодируется в кодовое слово 01011: |
|
||||||||
|
|
|
2. Кодовое слово искажается и принимается комбинация 111 (бит слева искажен). Такой |
|
|
|
Второй бит справа искажается, принимается комбинация 01001 |
|
|||||||||||
|
|
|
|
разрешенной комбинации не существует и код отбрасывается |
|
|
|
|
|
|
Принятое слово 01001 сравнивается со всеми разрешенными и определяется количество |
||||||||
|
|
|
3. Кодовое слово искажается и принимается комбинация 000 (два бита справа искажены). |
|
|
|
|||||||||||||
|
|
|
|
|
|
|
различных бит |
|
|
|
|||||||||
|
|
|
|
Извлекается неверное информационное слово 00 |
|
|
|
|
|
|
Комбинация отличающаяся не более чем на один бит – верная (01011) |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010 |
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
13 |
2010 |
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
14 |
|
|
|
|
3.2. Блочноекодирование |
|
|
|
|
|
|
|
3.2. Блочноекодированиерование |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
РасстояниеХэмминга |
|
|
|
|
|
|
|
Минимальноерасстояниение ХэммингаХэмминга |
|
|
|
|
|
|
|||
Расстояние Хэмминга: определяется количеством различий между |
|
|
|
Минимальное расстояние Хэмминга dmin: определяется как наименьшее |
|||||||||||||||||
|
|
|
соответствующими битами в словах |
|
|
|
|
|
расстояние Хэмминга между всеми возможными парами комбинаций кода |
||||||||||||
|
|
|
Обозначается d(x, y), x и y – слова одинаковой длины |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Минимальное расстояние Хэмминга определяется как наименьшее расстояние |
|
|
||||||||||||
|
|
|
Определяется операцией XOR ( ) над двумя словами и подсчетом количества |
|
|
||||||||||||||||
|
|
|
|
|
Хэмминга между всеми возможными парами на множестве комбинаций кода |
|
|||||||||||||||
|
|
|
|
единиц в результате |
|
|
|
Пример5 |
|
|
|
|
|
|
|
|
|
||||
Вес кодового слова: это количество единиц в кодовом слове |
|
|
|
|
|
Информационное слово |
|
Кодовое слово |
|||||||||||||
|
|
|
|
|
|
|
|
Найти минимальное расстояние Хэмминга для |
|
00 |
|
|
000 |
|
|
||||||
|
|
Расстояние Хэмминга между двумя словами определяется как количество |
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
кода из таблицы: |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
01 |
|
|
011 |
|
|
||||||
|
|
|
|
различий между одноименными битами (вес результата XOR) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
101 |
|
|
|
Пример4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
110 |
|
|
|||||
Расстояние Хэмминга между словами: |
|
|
|
Решение |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
Расстояние Хэмминга d(000, 011) равно 2, так как 000 011 = 011 (два единичных символа |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
в слове). |
|
|
|
Находим расстояния Хэмминга между всеми парами комбинаций в слове : |
|
|
|
|
|||||||||
|
|
|
Расстояние Хэмминга d(10101, 11110) равно 3, так как 10101 11110 = 01011 (три |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
15 |
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
16 |
|
|
|
|
3.2. Блочноекодирование |
|
|
|
|
|
|
|
|
3.2. Блочноекодированиерование |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
МинимальноерасстояниеХэмминга |
|
|
|
|
|
|
|
|
Минимальноерасстояниение ХэммингаХэмминга |
|
|
|
|||
|
Пример6 |
|
Информационное слово |
|
Кодовое слово |
|
Связь корректирующей способности кода с расстоянием Хэмминга |
|
|
|
|||||||||
|
|
00 |
|
|
00000 |
|
|
|
|
|
|||||||||
|
Найти минимальное расстояние Хэмминга |
|
|
|
|
|
Расстояние Хэмминга между принятым и переданным кодовыми словами точно |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
01 |
|
|
01011 |
|
|
|
|
|||||||||||
|
|
|
для кода из таблицы: |
|
|
|
|
|
|
|
|
соответствует количеству искаженных бит |
|
|
|
||||
|
|
|
|
10 |
|
|
10101 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
Например, передается 00000, а принимается 01101. Три бита искажены и расстояние |
||||||||
|
|
|
|
|
|
11 |
|
|
11110 |
|
|
||||||||
Решение |
|
|
|
|
|
|
|
|
Хэмминга равно d(00000, 01101) = 3 |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
Минимальное расстояние Хэмминга при обнаруженииобнаруженииошибокошибок |
|
|
|
|||||||||
Находим все возможные расстояния Хэмминга для кода из табл.: |
|
|
|
|
|
|
|
||||||||||||
|
d(00000, 01011) = 3; |
d(00000, 10101) = 3; |
d(00000, 11110) = 4; |
|
|
|
|
При необходимости обнаружения вплоть до to ошибок минимальное расстояние |
|
|
|
||||||||
|
|
|
|
d(01011, 10101) = 4; |
d(01011, 11110) = 3; |
d(10101, 11110) = 3; |
|
|
|
|
|
|
|
между разрешенными кодовыми словами должно быть dmin ≥ to + 1. В этом случае |
|||||
|
dmin = 3 |
|
|
|
|
|
|
|
|
|
|
ошибки в кодовом слове не приводят к его трансформации в одну из разрешенных |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
комбинаций, т.к. их не достаточно |
|
|
|
|
Три основных параметра кодирования: длина кодового слова n; длина |
|
Условие dmin ≥ to + 1 дает гарантированное обнаружение вплоть до to ошибок в слове |
|||||||||||||||||
|
|
|
|
Если ошибок в принимаемом слове больше to, то они также могут быть обнаружены |
|||||||||||||||
|
|
информационного слова k; минимальное расстояние Хэмминга dmin |
|
|
|||||||||||||||
|
|
|
|
|
|
но не гарантированно (не для всех комбинаций) |
|
|
|
||||||||||
Форма записи схемы кодирования: C(n, k) с dmin |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
Примеры записи: для Примера 5: C(3, 2) с dmin = 2; |
|
|
|
|
|
|
|
Для гарантированного обнаружения вплоть до s ошибок в кодовом слове |
|
|
|
||||||||
|
|
|
|
для Примера 6: C(5, 2) с dmin = 3 |
|
|
|
|
|
|
|
|
минимальное расстояние Хэмминга должно быть dmin ≥ to + 1 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
17 |
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
18 |
|
|
|
|
3.2. Блочноекодирование |
|
|
|
|
|
|
|
|
|
|
|
|
3.2. Блочноекодированиерование |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
МинимальноерасстояниеХэмминга |
|
|
|
|
|
|
|
|
|
|
|
|
Минимальноерасстояниение ХэммингаХэмминга |
|
|||||||||||
Пример7 |
|
|
|
|
|
|
|
Принцип обнаружения ошибок можно посредством геометрического представления |
|
||||||||||||||||||||
Информационное |
|
Кодовое слово |
|
|
|||||||||||||||||||||||||
Минимальное расстояние Хэмминга для кода из |
|
|
|
|
|
расстояния Хэмминга |
|
|
|
|
|
|
|
||||||||||||||||
слово |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
таблицы равно 2 |
00 |
|
|
000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Гарантируется обнаружение только одной ошибки |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
01 |
|
|
011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
При двух ошибках возможен переход в другую |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обозначения |
|
|
|
|
||||||||
10 |
|
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
разрешенную комбинацию |
|
|
|
|
|
|
|
|
|
|
|
Радиус to |
|
|
|
|
Любое разрешенное слово |
|
|
|
||||||
|
|
|
11 |
|
|
110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Любое запрещенное слово с |
|
|
||||||||
Пример8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
количеством ошибок от 1 до to |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
Информационное |
|
Кодовое слово |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Минимальное расстояние Хэмминга для кода из |
|
слово |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
таблицы равно 3 |
|
00 |
|
|
00000 |
|
|
|
|
|
|
|
|
|
|
dmin > to |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Гарантируется обнаружение до двух ошибок, т.к. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
01 |
|
|
01011 |
|
|
|
|
|
|
|
|
Рис. 3.9. Обнаружение ошибок в процессе блочного кодирования |
|
|||||||||||||||
|
|
|
любые две ошибки создают запрещенную |
|
10 |
|
|
10101 |
|
|
|
|
|
|
Если передаваемое кодовое слово |
x представить как центр окружности |
с |
||||||||||||
|
|
|
комбинацию |
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
11 |
|
|
11110 |
|
|
|
радиусом to, то все принимаемые кодовые слова с количеством ошибок от 1 до to |
||||||||||||||||||
Некоторые комбинации трех ошибок создают |
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
разрешенную комбинацию (ошибки не |
|
|
|
|
|
|
|
можно |
представить в виде точек в |
пределах круга и на линии окружности |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
(пространства запрещенных комбинаций). Все остальные (разрешенные кодовые |
|||||||||||||||||||
|
|
|
обнаруживаются) |
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
комбинации) должны находиться вне круга |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
19 |
2010 |
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
20 |
3.2. Блочноекодирование |
|
|
|
3.2. Блочноекодированиерование |
|
|
|||||||
МинимальноерасстояниеХэмминга |
|
|
|
Минимальноерасстояниение ХэммингаХэмминга |
|
|
|||||||
Минимальное расстояние Хэмминга при исправленииошибок |
|
|
Так как две области соседних пар разрешенных кодовых слов не должны |
||||||||||
Исправление ошибок может основываться на понятии области, окружающей |
|
перекрываться, то dmin должно быть больше 2tи. Следовательно dmin ≥ 2tи + 1 |
|
||||||||||
кодовое слово (множества). Все множество запрещенных комбинаций |
|
|
Для гарантированного исправления вплоть до tи ошибок в кодовом слове |
||||||||||
разбивается на непересекающиеся подмножества радиусом tи, каждое из которых |
|||||||||||||
ставится в соответствие одной из разрешенных комбинаций (в центре) |
|
|
минимальное расстояние Хэмминга должно быть dmin ≥ 2tи + 1 |
|
|||||||||
Область для слова x |
Область для слова y |
|
|
|
Для исправления до tи ошибок и одновременного обнаружения до tо ошибок (при |
||||||||
|
|
|
|
|
|
|
tо ≥ tи) минимальное расстояние должно удовлетворять условию dmin ≥ tо + tи + 1 |
||||||
|
Радиус tи |
Радиус tи |
|
Обозначения |
|
|
|
|
|
|
|
|
|
|
|
Любое разрешенное слово |
|
|
Пример9 |
|
|
|
|
|
|||
|
|
|
|
Любое запрещенное слово с |
|
|
|
|
|
|
|
||
|
|
|
|
количеством ошибок от 1 до tи |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
Схема кодирования имеет минимальное расстояние Хэмминга dmin = 4. Какова |
|
||||||
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
обнаруживающая и исправляющая способность такой схемы? |
|
|||||
|
dmin > 2tи |
|
|
|
|
Решение |
|
|
|
|
|
||
Рис. 3.10. Исправление ошибок в процессе блочного кодирования |
|
|
|
|
|
|
|
||||||
|
|
Код гарантирует обнаружение вплоть до трех ошибок (tи = 2) и гарантирует исправление до |
|||||||||||
Если кодовое слово имеет tи ошибок или меньше, то оно располагается в пределах |
|||||||||||||
одной ошибки (tи = 2) |
|
|
|
|
|||||||||
круга или на окружности. Если принимается искаженное слово, принадлежащее |
Исправляющие коды должны иметь нечетное минимальное расстояние Хэмминга |
|
|||||||||||
области для слова x, то x – это оригинальное кодовое слово |
|
|
|
|
|
|
|
|
|||||
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
|
21 |
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
22 |
|||||||
3.3. Линейныеблочныекоды |
|
|
|
3.3. Линейныеблочныеочныекодыкоды |
|
|
|||||||
|
|
|
|
|
|
|
Минимальноерасстояниение ХэммингаХэмминга длядлялинейныхлинейныхблочныхблочныхкодовкодов |
||||||
Линейные блочные коды: это коды, для которых операция XOR двух |
|
|
Минимальное расстояние Хэмминга для линейных блочных кодов: это |
||||||||||
разрешенных кодовых слов дает другое разрешенное кодовое слово |
|
|
минимальный вес кодового слова среди всех ненулевых разрешенных |
||||||||||
В линейных блочных кодах операция XOR над любой парой разрешенных |
|
кодовых слов |
|
|
|
|
|
||||||
|
комбинаций дает другую разрешенную комбинацию |
|
|
Пример11 |
|
|
|
|
|
||||
Пример10 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
Определить минимальные расстояния Хэмминга для кодовых слов в таблицах? |
|
||||||
Принадлежат ли кодовые слова в таблицах к классу линейных блочных кодов?: |
|
|
|
|
|
|
|
|
|||||
В обоих случаях результат операции XOR над любой парой комбинаций в кодовых |
|
|
dmin = 2 |
|
|
dmin = 3 |
|
||||||
словах является разрешенной комбинацией. Принадлежат в обоих случаях |
|
|
|
|
|
|
|||||||
|
|
Информационное |
Кодовое слово |
|
Информационное |
Кодовое слово |
|
||||||
|
|
|
|
|
|
|
|
|
|||||
Информационное |
Кодовое слово |
|
|
|
|
|
слово |
|
|
слово |
|
|
|
|
Информационное |
Кодовое слово |
|
|
00 |
000 |
|
00 |
00000 |
|
|||
слово |
|
|
слово |
|
|
|
|
|
|||||
|
|
|
|
|
01 |
011 |
2 |
01 |
01011 |
3 |
|||
00 |
000 |
|
00 |
00000 |
|
|
|||||||
|
|
|
10 |
101 |
2 |
10 |
10101 |
3 |
|||||
01 |
011 |
|
01 |
01011 |
|
|
|||||||
= |
|
11 |
110 |
2 |
11 |
11110 |
4 |
||||||
10 |
101 |
10 |
10101 |
|
|||||||||
= |
|
|
|
|
|
|
|
|
|||||
11 |
110 |
11 |
11110 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
Вес кодового |
|
|
|||||
|
|
|
|
|
|
|
Код с проверкой |
|
|
|
|||
|
|
|
|
|
|
|
|
слова |
|
|
|||
|
|
|
|
|
|
|
четности |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
|
23 |
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
24 |
3.3. Линейныеблочныекоды
Примеры: кодспростойпроверкойчетности |
C(5, 4) |
Код с простой проверкой четности:
наиболее простой и достаточно известный код с обнаружением ошибок
Информационное слово k бит преобразуется в кодовое слово n = k + 1 бит
Бит четности (добавляемый бит) выбирается так, чтобы вес кодового слова был четным
Минимальное расстояние Хэмминга dmin = 2, следовательно код может обнаружить только одиночную ошибку и не может исправлять
Код C(5, 4) из таблицы является примером кода с простой проверкой четности
Инф-ное. слово |
Кодовое слово |
0000 |
00000 |
|
|
0001 |
00011 |
|
|
0010 |
00101 |
|
|
0011 |
00110 |
|
|
0100 |
01001 |
|
|
0101 |
01010 |
|
|
0110 |
01100 |
|
|
0111 |
01111 |
|
|
1000 |
10001 |
|
|
1001 |
10010 |
|
|
1010 |
10100 |
|
|
1011 |
10111 |
|
|
1100 |
11000 |
|
|
1101 |
11011 |
|
|
1110 |
11101 |
|
|
1111 |
11110 |
|
|
Код с простой проверкой четности - это код длиной n = k + 1 и dmin = 2, способный обнаружить одиночную ошибку в кодовом слове
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
25 |
3.3. Линейныеблочныекоды
Примеры: кодспростойпроверкойчетности
Формирование бита четности:
Бит четности r0 формируется побитным сложением информационного слова по модулю 2 и является результатом этого сложения:
r0 = a3 a2 a1 a0
Если вес информационного слова четный – r0 = 0, если нечетный – r0 = 1, следовательно, вес кодового слова всегда четный
Работа декодера схемы простой проверки четности:
Детектор декодера, также как и генератор, осуществляет побитную операцию
сложения по модулю 2, но над элементами принимаемого кодового слова {q0, b0, b1, b2, b3} . Результатом является один бит и называется синдром:
s0 = b3 b2 b1 b0 q0
Если вес принимаемого кодового слова четный – s0 = 0, если нечетный – s0 = 1, следовательно, вес кодового слова всегда четный
Устройство решения анализирует полученный синдром, если s0 = 0, то ошибок нет и кодовое слово принимается, если s0 = 1, слово отклоняется
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
27 |
3.3. Линейныеблочныеочныекодыкоды
Примеры: кодспростойойпроверкойпроверкойчетностичетности
|
Передатчик |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Приемник |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кодер |
|
|
|
Декодер |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Информационное слово |
|
|
|
|
|
|
|
|
|
Информационное слово |
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Принять |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отклонить |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Синдром |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Логика |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
решения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Генератор |
|
|
|
|
|
|
|
|
Детектор |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
Бит четности |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
Ненадежная |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
передача |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Кодовое слово |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кодовое слово |
|
|
Рис. 3.11. Кодер и декодер для кода с простой проверкой четности
Работа кодера схемы простой проверки четности:
Генератор кодера на основе анализа информационного слова {a0, a1, a2, a3} формирует бит четности r0, чтобы вес кодового слова был четным
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
26 |
3.3. Линейныеблочныеочныекодыкоды
Примеры: кодспростойойпроверкойпроверкойчетностичетности
Пример12
Пусть передатчик посылает информационное слово 1011 и формирует кодовое слово 10111, которое посылается приемнику. Рассмотрим 5 сценариев:
1.Ошибок нет. Принимаемое кодовое слово 10111, синдром 0, извлекается информационное слово 1011
2.Одиночная ошибка в символе a1. Принимаемое кодовое слово 10011, синдром 1, кодовое слово отклоняется
3.Одиночная ошибка в символе r0. Принимаемое кодовое слово 10110, синдром 1, кодовое слово отклоняется (не смотря на то, что информационное слово не искажается)
4.Два ошибочных символа: r0 и a3. Принимаемое кодовое слово 00110, синдром 0, приемник извлекает неверное информационное слово 0011. Декодер не способен обнаружить четное количество ошибок в кодовом слове
5.Три ошибочных символа: a3, a2, a1. Принимаемое кодовое слово 01011, синдром 1, кодовое слово отклоняется. Декодер гарантирует обнаружение одиночной и нечетного количества ошибок в слове
Код с простой проверкой четности обнаруживает все одиночные ошибки. Он обнаруживает пакетные ошибки если количество ошибочных бит нечетное
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
28 |
|
|
|
3.3. Линейныеблочныекоды |
|
|
|
|
|
|
|
|
3.3. Линейныеблочныеочныекодыкоды |
||||||
|
|
|
|
|
||||||||||||||
|
|
|
Примеры: кодсдвойнойпроверкойчетности |
|
|
|
|
|
|
|
|
Примеры: кодсдвумернойнойпроверкойпроверкойчетностичетности |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Код с двойной проверкой |
|
Информационные слова |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
четности: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
четности рядам |
|
|
|
|
|
|
|
|
|
|
|||
|
Блоки инф. данных |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
формируются в |
|
|
|
|
Биты по |
|
|
|
|
|
|
|
|
|
|
|
|
|
таблицу |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Для каждого блока |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
Биты четности |
||||||||||||||
|
|
|
данных (ряда) |
|
|
|
|
по столбцам |
|
|
|
|
|
|
|
|
||
|
|
|
вычисляется бит |
|
|
|
|
|
|
|
|
|
|
|
|
Одиночная ошибка повлияла на два бита четности |
|
Две ошибки повлияли на два бита четности |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
четности |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Затем для каждой |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
колонки вычисляется |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кодовые слова с битами четности |
|
|
|
|
|
|
|
|
|
||||
|
|
|
бит четности |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
Рис. 3.12. Код с двойной проверкой четности |
|||||||||||||||
|
|
|
|
формируется дополнительный ряд в таблице (биты четности по столбцам)
вся таблица передается кодовыми словами
|
|
Код с двойной проверкой четности гарантированно обнаруживает до трех |
|
|
|
|
|
|
|
|
|
|
|
|
Три ошибки повлияли на четыре бита четности |
|
Четыре ошибки повлияли на четыре бита |
|
|
|
|
|
|
|
|
четности (ошибки не обнаружены) |
|
||
|
|
любых ошибочных бит |
|
|
|
|
|
||
|
|
|
|
|
Рис. 3.13. Примеры обнаружения ошибок в коде с двойной проверкой четности |
|
|||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
29 |
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
30 |
|
|
|
|
3.3. Линейныеблочныекоды |
|
|
|
|
|
|
|
3.3. Линейныеблочныеочныекодыкоды |
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
Примеры: кодыХэмминга |
|
|
|
|
|
|
|
Примеры: кодХэммингага СС(7,(7, 4)4) |
|
|
|
|
|
|
|
|
|
CC((77,, 4)4) |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Передатчик |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Приемник |
|
|
|
|
Информа- |
Кодовое |
|||
|
Коды Хэмминга: относятся к категории корректирующих кодов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ционное |
слово |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кодер |
Декодер |
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
Информационное слово |
|
|
|
|
|
|
|
|
|
Информационное слово |
|
|
||||||||||||||||||||||
|
|
|
Существуют коды Хэмминга для исправления одной ошибки (dmin = 3) или |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
слово |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0000 |
0000000 |
||
|
|
|
|
исправления одной и обнаружения до двух ошибок в слове (dmin = 4) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0001 |
0001101 |
|
|
|
|
Если длина кодового слова n = k + r , то r бит должны указывать по крайней |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Логика |
0010 |
0010111 |
||||||
|
|
|
|
мере на k + r + 1 различных состояний (одно – нет ошибок, остальные – k + r |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
решения |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0011 |
0011010 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Синдром |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
позиции ошибки в слове) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0100 |
0100011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Генератор |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
r бит образует 2r комбинаций, следовательно должно выполняться 2r ≥ k + r + 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Контроллер |
0101 |
0101110 |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
Неравенство Хэмминга: необходимое количество проверочных бит |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0110 |
0110100 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0111 |
0111001 |
||||
|
для исправления одиночной ошибки (для dmin = 3) составляет n – k ≥ log (n + 1), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Ненадежная |
|
|
|
|
|
|
|
|
|
1000 |
1000110 |
|||||||||||||
|
|
|
для исправления одиночной и обнаружения до двух ошибок (для dmin = 4) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
передача |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1001 |
1001011 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
составляет n – k ≥ log (n) + 1 |
|
|
|
|
|
Кодовое слово |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кодовое слово |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1010 |
1010001 |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.14. Кодер и декодер для кода Хэмминга |
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
Примеры кодов Хэмминга для dmin = 3 : C(7, 4), C(11, 7), C(15, 11), C(31, 26) и др. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1011 |
1011100 |
|||||||||||||||||||||
|
|
|
Работа кодера и декодера в схеме кода Хэмминга: |
||||||||||||||||||||||||||||||||||
|
|
|
Примеры кодов Хэмминга для dmin = 4 : C(8, 4), C(12, 7), C(16, 11), C(32, 26) и др. |
1100 |
1100101 |
||||||||||||||||||||||||||||||||
|
|
|
|
|
Генератор кодера по информационному слову формирует |
1101 |
1101000 |
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
три избыточных бита четности r0, r1 и r2 |
|
|
|
|
|
|
|
|
1110 |
1110010 |
|||||||||||||||
|
|
Коды Хэмминга: исправление одной ошибки (dmin = 3, n = 2r – 1), исправление |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Контроллер декодера вычисляет синдром по принятому |
1111 |
1111111 |
||||||||||||||||||||||||||
|
|
|
|
одной и обнаружения двух ошибок (dmin = 4, n = 2r–1) |
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
кодовому слову, комбинация которого указывает на ошибку |
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010 |
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
31 |
2010 |
|
|
|
|
|
|
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
32 |
|
|
|
|
3.3. Линейныеблочныекоды |
|
|
|
|
|
|
|
|
|
|
|
|
3.3. Линейныеблочныеочныекодыкоды |
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
Примеры: кодХэммингаС(7, 4) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Примеры: кодХэммингага СС(7,(7, 4)4) |
|
|
|
|
|
|
|
||||||||||||||||||||
Формирование проверочных бит: удобно использовать матричное построение |
Вычисление синдрома: |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
Проверочную матрицу H для кода можно сформировать из матрицы размера |
|
|
|
|
|
Контроллер декодера создает синдром, в котором каждый бит является |
||||||||||||||||||||||||||||||||||||||
|
|
|
|
r × n для всех возможных комбинаций синдрома (за исключением нулевой) |
|
|
|
|
|
|
проверкой четности для четырех из семи бит принимаемого кодового слова |
||||||||||||||||||||||||||||||||||||
|
|
|
|
перестановкой столбцов с одной единицей вправо: |
|
|
|
|
|
Уравнения для обнаружителя аналогичны, но включают проверочные биты |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
n = 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s0 = b3 b1 b0 q0 |
|
|
|
|
|
|
||||
7 6 5 4 3 2 1 |
|
7 6 5 3 |
4 2 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
1 1 1 1 0 0 0 |
|
|
H = |
1 1 1 0 |
1 0 0 |
= |
|
D; E |
|
|
|
|
|
|
|
|
|
|
|
|
s1 = b3 b2 b0 q1 |
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
r = 3 |
|
1 1 0 0 1 1 0 |
|
=> |
1 1 0 1 |
0 1 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
s2 = b3 b2 b1 q2 |
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
1 |
0 |
1 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
Три бита синдрома создают восемь комбинаций, определяющих отсутствие |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a3 |
a2 |
a1 |
a0 |
r2 |
r1 |
r0 |
|
|
|
|
|
|
ошибки или ее наличие в одном из семи бит принимаемого кодового слова |
||||||||||||||||||
|
|
|
Контрольные символы r0, r1 и r2 образуются из информационных символов с |
|
|
|
|
|
Комбинация синдрома указывает на ошибку для ее исправления |
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
помощью системы линейных уравнений rj = dj0a0 + dj1a1 +…+ djk-1ak-1, где dj = |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Синдром |
111 |
|
110 |
|
101 |
100 |
011 |
010 |
|
001 |
|
000 |
|
|||||||||||||||||||||||
|
|
|
|
{0,1} – коэффициенты подматрицы D |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ошибка |
b3 |
|
b2 |
|
b1 |
q2 |
b0 |
q1 |
|
q0 |
|
Нет |
|
|||||||||||||||
|
|
|
Система проверочных линейных уравнений (без слагаемых с коэф. dj = 0) |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r0 = a3 a1 a0 |
|
|
|
|
|
|
|
|
|
|
|
|
Проверочные биты располагаются не с краю кодового слова, а на номерах |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r1 = a3 a2 a0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
позиций степени двойки (20, 21, …, 2r–1 ), в этом случае синдром является |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r2 = a3 a2 a1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
двоичным представлением номера ошибочного элемента |
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
2010 |
|
|
|
|
|
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
33 |
2010 |
|
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
34 |
|
|
|
|
3.3. Линейныеблочныекоды |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.3. Линейныеблочныеочныекодыкоды |
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
Примеры: кодХэмминга |
Позиция |
7 |
6 |
|
5 |
4 |
3 |
|
2 |
1 |
|
|
|
|
|
|
|
Примеры: исправлениеепакетныхпакетныхошибокошибокдлядлякодакодаХэммингаХэмминга |
|
|
||||||||||||||||
|
|
|
|
|
С(7, 4) |
бита |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Принцип чередования бит: |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Передача |
|
|
|
|
|
|
|
|
|
Прием |
|
|||||||
Пример13 |
Значение |
a3 |
a2 |
|
a1 |
r2 |
a0 |
|
r1 |
r0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Несколько кодовых слов |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Слово 4 |
|
|
|
|
Слово 4 |
|
|
|
|
|||||
Рассмотрим три сценария передачи информационных слов для кода Хэмминга: |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
группируются в блок, |
|
|
||||||||||||||
|
|
|
1. Кодер преобразует информационное слово 0100 в кодовое слово 0101010. Принимается |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
формируется таблица из N |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Слово 3 |
|
|
|
|
Слово 3 |
|
|
|
|
||||||||||||||||||||
|
|
|
|
кодовое слово 0101010. Синдром равен 000 (нет ошибок), извлекается инф. слово 0100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
строк (слов) |
|
|
||||||||||||||
|
|
|
2. Кодер преобразует информационное слово 0111 в кодовое слово 0110100. Принимается |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Слово 2 |
|
|
|
|
Слово 2 |
|
|
|
|
Биты передаются по |
|
|
|||||||||||||||||
|
|
|
|
кодовое слово 0010100. Синдром равен 110 (ошибка в символе b2). Символ b2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
столбцам слева с |
|
|
|||||||||||
|
|
|
|
инвертируется и извлекается информационное слово 0111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Слово 1 |
Слово 1 |
|
|
|
||||||||||||||||
|
|
|
3. Кодер преобразует информационное слово 1101 в кодовое слово 1100110. Принимается |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
очередностью снизу вверх |
||||||||||||||||
|
|
|
|
кодовое слово 1010110. Синдром равен 011 (ошибка в символе b0). Символ b0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
чередованием слов |
|
|
||||||||||
|
|
|
|
инвертируется и извлекается неверное информационное слово 1010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Происходит |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пакетная ошибка |
|
|
|
|
|
|
|
|||||||||||
Пример14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
перегруппировка бит при |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
Какова необходима избыточность r для кода Хэмминга, чтобы обеспечить длину |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
передаче |
|
|
|||||||||||||
|
|
|
информационного слова по крайней мере 7 бит: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При возникновении |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Блок передаваемых данных |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
Решение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
пакетной ошибки длиной |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Искаженные биты |
|
|||||||||||||||
|
|
|
Требуемая длина информационного слова: k = n – r ≥ 7. Длина кодового слова n = 2r – 1, |
|
|
|
|
|
Рис. 3.15. Кодер и декодер для кода Хэмминга |
|
до N бит в каждом слове |
|||||||||||||||||||||||||||||
|
|
|
Длина информационного слова k = 2r – 1 – r ≥ 7. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
искажается макс. 1 бит |
|
|
|||
|
|
|
При r = 3, k = 4 (k = 23 – 1 – 3 = 4) Длина информационного слова k ≥ 7 не обеспечивается |
|
|
|
|
На приеме происходит обратная перестановка бит на исходные позиции в |
|
|
||||||||||||||||||||||||||||||
|
|
|
При r = 4, k = 11 (k = 24 – 1 – 4 = 11) Длина информационного слова k ≥ 7 обеспечивается |
|
|
|
|
|
кодовых словах |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
2010 |
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
|
35 |
2010 |
|
|
|
|
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
36 |
3.4. Циклическиекоды
Свойства циклических кодов :
Циклические коды являются разновидностью линейных блочных кодов
Если комбинация a0, a1, a2, …, an–1 является разрешенной, то комбинация, полученная путем циклического сдвига разрядов – an–1, a0, a1, …, an–2, тоже является разрешенной (циклический сдвиг разрешенного слова дает другое разрешенное слово)
Например, 1011000 – разрешенное кодовое слово, его сдвиг влево приводит к другому разрешенному слову
1 0 1 1 0 0 0 => 0 1 1 0 0 0 1
Бит последней позиции циклически переходит на первую позицию
Циклические коды способны корректировать ошибки
Циклический контроль четности с избыточностью (CRC) – широко распространенный метод контроля, используемый в циклических кодах
Широко используются с сетях передачи данных (например, LAN и WAN)
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
37 |
3.4. Циклическиекоды
Циклическийконтрольсизбыточностью (CRC)
Работа кодера схемы CRC:
Информационное слово наращивается до длины n справа дополнительными n – k нулями и подается на генератор
Генератор делит по модулю 2 полученное слово на заранее определенный делитель длиной n – k + 1 (длина остатка на один бит меньше делителя)
Частное отбрасывается, а остаток от деления r0, r1 и r2 дополняет справа информационное слово для образования кодового слова
Работа декодера схемы CRC:
Декодер принимает возможно искаженное кодовое слово и его копия подается в контроллер, который также производит деление по модулю 2 на тот же делитель
Полученный остаток от деления является синдромом длиной n – k, который поступает на логический анализатор
Если синдром нулевой, то левые k бит кодового слова принимаются как информационное слово, иначе отбрасываются
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
39 |
3.4. Циклическиекодыкоды
Циклический контролььссизбыточностьюизбыточностью ((CRCCRC))
Код циклической проверки с избыточностью (Cyclic Redundancy Check – CRC): пример кода C(7, 4)
|
|
Передатчик |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Приемник |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кодер |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Декодер |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Информационное слово |
|
|
|
|
|
|
|
|
|
|
|
|
|
Информационное слово |
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Принять |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Синдром |
|
|
|
|
Отклонить |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Логика |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
решения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
Делитель |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Генератор |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Контроллер |
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
Остаток |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Ненадежная |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
передача |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кодовое слово |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Кодовое слово |
|
|
|
Рис. 3.16. Кодер и декодер для кода CRC (обнаружение ошибок)
CRCCRC кодкодCC((77,, 4)4)
Информа- |
Кодовое |
ционное |
слово |
слово |
|
0000 |
0000000 |
0001 |
0001011 |
0010 |
0010110 |
0011 |
0011101 |
|
|
0100 |
0100111 |
|
|
0101 |
0101100 |
|
|
0110 |
0110001 |
0111 |
0111010 |
1000 |
1000101 |
1001 |
1001110 |
|
|
1010 |
1010011 |
|
|
1011 |
1011000 |
|
|
1100 |
1100010 |
1101 |
1101001 |
1110 |
1110100 |
1111 |
1111111 |
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
38 |
3.4. Циклическиекодыкоды
Циклический контролььссизбыточностьюизбыточностью ((CRCCRC))
Пример операции деления в кодере CRC:
Информационное
слово
Деление
Частное
|
|
|
Делитель |
|
Делимое |
|
|
|
Левый бит 0: делитель 0000
Левый бит 0: делитель 0000
Остаток
Кодовое слово
Рис. 3.17. Деление в кодере CRC
Информационное слово 1001 делится пошагово на заранее определенный делитель 1011 (правый бит всегда 1)
Делитель вычитается (XOR) из первых четырех бит делимого, первый нулевой бит остатка отбрасывается
Полученный остаток (три бит) дополняется справа одним битом от делимого
Если на одном из шагов левый бит дополненного остатка нулевой, то используется нулевой делитель
После использования всех бит делимого, финальный остаток формирует биты проверки
2010 |
А.В. Абилов, Лекция 4. "Обнаружение и исправление ошибок" |
40 |