Дано число - 100100001
Для заданного числа – добавить бит контроля четности, внести одиночную ошибку и убедиться, что её можно обнаружить.2. Построить код Хэмминга для заданного числа. Внести ошибку в __ разряд. Обнаружить эту ошибку.Таблица прикреплена для удобства
Решение
Бит чётности '1' – нечётное число. Бит чётности '0' – чётное число.
1. Число 100100001 содержит 3 '1' битов, т.е. нечётное. Бит чётности будет '1', добавляя, получаем кодовое слово 1001000011
При любой одиночной ошибке в числе 1001000011 – это будет обнаружено. Например:
в числе 0001000011 ошибка, т.к. оно содержит 2 '1' бита, т.е. чётное. Не соответствует биту чётности.
в числе 1101000011 ошибка, т.к. оно содержит 4 '1' бита, т.е. чётное. Не соответствует биту чётности.
в числе 1011000011 ошибка, т.к. оно содержит 4 '1' бита, т.е. чётное. Не соответствует биту чётности.
в числе 1000000011 ошибка, т.к. оно содержит 2 '1' бита, т.е. чётное. Не соответствует биту чётности.
в числе 1001100011 ошибка, т.к. оно содержит 4 '1' бита, т.е. чётное. Не соответствует биту чётности.
в числе 1001010011 ошибка, т.к. оно содержит 4 '1' бита, т.е. чётное. Не соответствует биту чётности.
в числе 1001001011 ошибка, т.к. оно содержит 4 '1' бита, т.е. чётное. Не соответствует биту чётности.
в числе 1001000111 ошибка, т.к
. оно содержит 4 '1' бита, т.е. чётное. Не соответствует биту чётности.
в числе 1001000001 ошибка, т.к. оно содержит 2 '1' бита, т.е. чётное. Не соответствует биту чётности.
в числе 1001000010 ошибка, т.к. оно содержит 3 '1' бита, т.е. нечётное, а бит чётности равен '0'.
2. Вставляем контрольные биты в строго определённые места — позиции с номерами, равными степеням двойки. При длине числа в 9 бит – это будут позиции 1, 2, 4, 8. Соответственно, у нас получилось 4 контрольных бита (подчёркнуты и выделены красным в таблице 1). До вычисления самих контрольных бит им присвоено значение '0':
0010001000001
Контрольный бит с номером N контролирует все последующие N бит через каждые N бит, начиная с позиции N:
Таблица 1
1 2 3 4 5 6 7 8 9 10 11 12 13
0 0 1 0 0 0 1 0 0 0 0 0 1
1 0 1 0 1 0 1 0 1 0 1 0 1 1 1
0 1 1 0 0 1 1 0 0 1 1 0 0 2 0
0 0 0 1 1 1 1 0 0 0 0 1 1 4 0
0 0 0 0 0 0 0 1 1 1 1 1 1 8 1
Вычисляем контрольный бит через количество контролируемых им битов '1'. Получаем чётное или нечётное число. Если чётное – ставим '0'; если нечётное – '1'