На Горох
Информатика, 8 класс

§ 6. Кодирование с обнаружением ошибок

"Информатика", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 6. Кодирование с обнаружением ошибок

Кратко о теме

При передаче или хранении двоичные данные могут измениться из-за помех и сбоев. Чтобы обнаружить ошибку, к сообщению добавляют избыточную информацию: контрольные разряды, суммы или повторения. Получается код с обнаружением ошибок: получатель проверяет контрольные данные и узнаёт, нарушено ли сообщение. Главное правило проверки чётности — общее число единиц должно соответствовать заранее выбранному условию.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Избыточное кодирование — добавление к исходным данным дополнительных символов для контроля правильности передачи. Эти символы не обязательно содержат новые сведения о сообщении. Они создают возможность проверить, не изменились ли данные по дороге.

Код с обнаружением ошибок — код, по которому можно установить, что переданное сообщение изменилось. Получатель сравнивает принятую комбинацию с правилами допустимого кода. Такой код сообщает о нарушении, но не всегда показывает место ошибки.

Контрольный разряд — дополнительный бит, значение которого вычисляется по исходным битам. Его часто записывают в конце двоичной последовательности. По нему проверяют, соответствует ли принятое кодовое слово установленному правилу.

Проверка чётности — способ контроля, при котором общее число единиц должно быть чётным или нечётным. Вид проверки выбирают заранее, а затем одинаково применяют при отправке и приёмe. Например, при чётной проверке в правильном слове должно быть 0, 2, 4 и так далее единицы.

Как это устроено

Ошибки возникают из-за помех в канале связи, неисправностей оборудования или сбоев при записи данных. Отдельный бит может изменить значение с 0 на 1 или с 1 на 0. Обычный двоичный код не отличает правильное сообщение от изменённого, потому что после замены получается другая, но внешне такая же последовательность битов.

Избыточность добавляет к данным правило, которому должны соответствовать допустимые кодовые комбинации. Например, при чётной проверке слово с пятью единицами недопустимо, а слово с четырьмя единицами допустимо. Если из-за ошибки принято недопустимое слово, получатель понимает, что передача нарушена.

При формировании контрольного разряда сначала считают единицы только в исходных данных. При чётной проверке ставят 0, если их количество уже чётное, и 1, если оно нечётное. При нечётной проверке поступают наоборот: контрольный бит выбирают так, чтобы итоговое число единиц стало нечётным.

Изменение одного бита меняет число единиц на один: оно либо увеличивается, либо уменьшается. Поэтому чётность результата обязательно меняется, и проверка обнаруживает такую ошибку. Если изменились два бита, возможны одновременные замены 0 на 1 и 1 на 0, тогда число единиц не изменится, а ошибка останется незаметной.

Отправитель сначала добавляет контрольные данные к сообщению и передаёт полученное кодовое слово. Получатель отделяет исходные данные, повторяет вычисление по принятой последовательности и сравнивает результат с принятой контрольной информацией. Несовпадение означает обнаруженную ошибку, но для её исправления требуется дополнительный способ определения ошибочного разряда.

Способы обнаружения ошибок при передаче данных

СпособКак формируется контрольная информацияКакие ошибки обнаруживаетОграничения
Повторение символов или блоковОдин символ или блок передают несколько раз и сравнивают копииОшибки, из-за которых копии стали различатьсяУвеличивает объём передачи; одинаковая ошибка во всех копиях может остаться незамеченной
Контрольный разряд чётностиДобавляют бит, делающий общее число единиц чётным или нечётнымЛюбое изменение нечётного числа битов, в частности одногоИзменение чётного числа битов может не обнаружиться
Контрольная суммаПо группе данных вычисляют число или битовую сумму и передают её вместе с сообщениемМногие ошибки, изменяющие вычисленную суммуНекоторые разные ошибки дают одинаковую сумму
Сравнение контрольной информации с принятойПолучатель заново вычисляет контрольное значение и сопоставляет его с полученнымОшибки, при которых вычисленные значения не совпалиСамо сравнение не указывает ошибочный разряд и не исправляет данные

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

Разбор задач

Задача 1

Для последовательности 1011001 нужно определить контрольный разряд при чётной проверке и записать кодовое слово. Будем добавлять контрольный бит справа. Сначала выясним, сколько единиц уже есть в исходной последовательности.

  1. В слове 1011001 единицы стоят на первом, третьем, четвёртом и седьмом местах, всего их 4.
  2. Число 4 уже является чётным, поэтому для сохранения чётности добавляем контрольный бит 0.
  3. Приписываем его справа: 1011001 + 0 = 10110010.

Ответ: контрольный разряд равен 0, кодовое слово — 10110010.

Задача 2

Нужно проверить кодовое слово 11010101 при чётной проверке. В этом слове контрольный разряд уже включён, поэтому считаем единицы во всей последовательности. Если итоговое число чётное, слово прошло проверку.

  1. В последовательности 11010101 находятся пять единиц.
  2. Число 5 нечётное, а при выбранном способе должно быть чётным.
  3. Правило нарушено, значит, проверка обнаружила ошибку.

Ответ: ошибка обнаружена, потому что в принятом кодовом слове нечётное число единиц.

Задача 3

Сообщение передали с контрольными разрядами по строкам и столбцам. Требуется определить ошибочный разряд по результатам проверок. Такой способ использует избыточность сразу в двух направлениях, поэтому помогает найти не только факт ошибки, но и её положение.

  1. Проверяем каждую строку и отмечаем строку, в которой нарушено правило чётности.
  2. Проверяем каждый столбец и отмечаем столбец с нарушением.
  3. Находим пересечение отмеченной строки и столбца: находящийся там бит считается ошибочным.
  4. Если это разрешено условием, меняем его с 0 на 1 или с 1 на 0 и повторяем проверки.

Ответ: ошибочный разряд находится на пересечении строки и столбца, для которых проверки чётности дали ошибку. В отличие от одной проверки всего слова, этот способ может указать положение бита.

Типичные ошибки

Считать контрольный разряд частью исходного сообщения. Его значение вычисляют по исходным битам, а уже затем включают в кодовое слово. Чтобы проверить себя, сначала отделите данные от добавленного бита и только потом выполняйте расчёт.

При чётной проверке сразу выбирать бит 1. Наличие единиц ещё не означает, что контрольный бит должен быть единицей: нужно посчитать их общее количество. Если единиц чётное число, добавляют 0, если нечётное — 1.

Считать обнаружение исправлением. Нарушение проверки только сообщает, что кодовое слово подозрительно. Исправить данные можно лишь при наличии дополнительных сведений о положении ошибки.

Утверждать, что чётность обнаруживает любые ошибки. Она надёжно выявляет изменение нечётного числа битов, но два изменения могут сохранить прежнюю чётность. Проверяйте не только наличие контроля, но и его ограничения.

Связь с другими темами

До изучения темы нужны знания о двоичной системе счисления и двоичном кодировании. Также пригодятся умение считать единицы и выполнять простейшие операции над битами. Эти действия позволяют самостоятельно вычислять контрольный разряд.

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

Что запомнить

  • Обнаружение ошибок обеспечивается добавлением избыточной информации.
  • Контрольный разряд вычисляется по исходным данным.
  • При чётной проверке общее число единиц должно быть чётным.
  • Изменение одного бита обнаруживается проверкой чётности.
  • Проверка чётности не гарантирует обнаружение изменения нескольких битов.
  • Код с обнаружением ошибок не обязательно позволяет исправить найденную ошибку.

Частые вопросы по теме

Зачем добавлять контрольный разряд, если он не содержит новых данных?

Он действительно не добавляет смысла сообщению, но помогает проверить его целостность. По контрольному разряду получатель может заметить, что один или несколько битов изменились.

Как понять, каким должен быть контрольный бит?

Сначала считают число единиц в исходных данных. При чётной проверке контрольный бит выбирают так, чтобы общее число единиц стало чётным, а при нечётной — чтобы оно стало нечётным.

Почему контроль чётности иногда не обнаруживает ошибку?

Изменение одного бита меняет чётность числа единиц. Но при изменении двух битов чётность может снова стать такой же, поэтому ошибка останется незамеченной.

Можно ли по контрольному разряду исправить ошибочный бит?

Обычно нельзя: проверка чётности показывает наличие ошибки, но не указывает её положение. Для исправления нужны специальные коды или дополнительные проверки, например по строкам и столбцам.

Чем код с обнаружением ошибок отличается от обычного двоичного кода?

Обычный код содержит только данные и не имеет встроенной проверки. В коде с обнаружением ошибок есть избыточные разряды, по которым можно установить факт изменения сообщения.

Спросить по теме параграфа

§ 6. Кодирование с обнаружением ошибок

Учебник

Оглавление →
Предмет
Информатика
Класс
8 класс
Учебник
"Информатика", Поляков К.Ю., Еремин Е.А.