Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпаргалка по информатике.docx
Скачиваний:
1
Добавлен:
21.03.2024
Размер:
1.17 Mб
Скачать

2.21 Контроль, по четности (нечетности), передачи информации с инвертированием.

Контроль четности или нечетности — это метод проверки целостности передачи данных, который основан на подсчете количества единиц в передаваемой информации. При контроле четности или нечетности каждый переданный байт или слово данных снабжается битом четности, который определяет, должно ли их количество быть четным или нечетным.

Простой пример контроля четности:

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

- Если контроль четности используется для проверки нечетности, то логика противоположна: бит четности устанавливается так, чтобы общее количество единиц в передаваемом слове (байте) было нечетным.

Инвертирование информации в контексте передачи данных означает изменение состояния битов. Например, если бит был установлен в 1, то при инвертировании он будет установлен в 0 и наоборот.

Таким образом, "контроль, по четности (нечетности), передачи информации с инвертированием" может быть интерпретирован как схема контроля четности (нечетности), где передаваемая информация может быть инвертирована до передачи. Это может быть полезно, например, для обеспечения более надежной передачи данных при использовании некоторых типов связи, где возможно возникновение ошибок из-за помех или других факторов.

2.22 Коды Хэмминга и их построение (на примере кода (7,4)).

Коды Хэмминга - самые известные и, вероятно, первые самоконтролирующиеся и самокорректирующиеся коды для двоичной системы. Этот алгоритм кодирования используется для обнаружения и, при необходимости, исправления ошибок в передаваемом сообщении, например, в сети из-за помех. Опишу простой алгоритм Хэмминга, который исправляет одну ошибку. Также существуют более совершенные версии алгоритма, способные обнаруживать и, если возможно, исправлять больше ошибок. Код Хэмминга состоит из двух частей. Первая часть добавляет контрольные биты в исходное сообщение. Вторая часть проверяет полученное сообщение на наличие ошибок и, при необходимости, исправляет их.

Давайте построим код Хэмминга для примера с 7 информационными битами и 4 контрольными битами.

Определим расположение контрольных битов: Контрольные биты будут занимать позиции, которые являются степенями двойки: 1, 2, 4 и 8 (так как 7 информационных битов, 2^0, 2^1, 2^2, и 2^3).

Запишем информационные биты и поместим контрольные биты на их места:

_ _ _ _ _ _ _

1 2 3 4 5 6 7 <- позиции битов

i i i c i c c <- i - информационный бит, c - контрольный бит

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

Контрольный бит 1 проверяет сумму битов 1, 3, 5, 7.

Контрольный бит 2 проверяет сумму битов 2, 3, 6, 7.

Контрольный бит 4 проверяет сумму битов 4, 5, 6, 7.

Запишем значения контрольных битов:

_ _ _ _ _ _ _

1 2 3 4 5 6 7 <- позиции битов

i i i c i c c <- i - информационный бит, c - контрольный бит

0 1 0 1 1 0 1 <- значения контрольных битов

Теперь, если один из битов изменится в передаваемом сообщении, можно использовать контрольные биты для определения места и исправления ошибки.

6