Закодируйте сообщениеα кодом Хемминга из задачи 4.4.4

 

а) α =(0011) б) α =(1011) в) α =(0111) г) α =(0001) д) α =(0010)
е) α =(1010) ж) α =(0110) з) α =(1001) и) α =(1000) к) α =(1100)

Образец:Закодируйте сообщениеα=(0101)кодом Хемминга из задачи 4.4.4. (образец):

Решение: Умножим кодовое слово a на порождающую матрицу G:

 

.

Отсюда кодированное сообщение имеет вид (0101011).

Первые m=4 информационные символы вектора αG образуют исходное сообщение α=(0101), последние n-m=3символа используются для контроля.

 

4.4.6. Решите задачу:

Декодируйте кодом Хемминга сообщение b в задаче 4.4.3.:

а) b =(1100110) б) b =(1010111) в) b =(1111110) г) b =(0100011) д) b =(1101101)
е) b =(1110110) ж) b =(1001101) з) b =(0010010) и) b =(1110111) к) b =(1010001)

 

Образец: Декодируйте кодом Хемминга сообщение b=(0111001) в задаче 4.4.3.

Решение: Умножим проверочную матрицу из задачи 4.30 на вектор-столбец = – транспонированное сообщение b. Имеем

.

Т.к. в результате получен ненулевой вектор , то это означает, что при декодировании была допущена ошибка. Т.к. этот вектор-столбец совпадает с первым столбцом проверочной матрицы M, то надо изменить, (инвертировать) именно первый символ в сообщении b. Получим новый вектор bн=(1111001), в котором при m=4 первые четыре буквы a=(1111) составляют истинное декодированное сообщение.

4.4.7.Построить коды H(b) для заданных слов b=(010101), x=(110100), y=(011010).

Решение.

1) Для построения кодов H(b) необходимо иметь двоичные векторы, записанные словом длиной k. Рассчитаем по k формуле . При n = 6 имеем неравенство . Отсюда т.к. 4<6<8, то 22<6<23. Значит k=3.

2) Двоичные векторы длины 3 обозначим e3:

n
e3(n) e3(1) e3(2) e3(3) e3(4) e3(5) e3(6)
Код

 

2) Т.к. число b=(010101) содержит знаки 1 в четных разрядах, то для записи H(b) в векторной форме нам понадобятся только те векторы e3, которые имеют четные номера. Отсюда имеем

H(b)= (0,1,0) Å (1,0,0) Å (1,1,0)=(0,0,0).

Для слова x=(110100) значащие разряды первый, второй и четвертый, поэтому

H(x)= (0,0,1) Å (0,1,0) Å (1,1,0)=(1,1,1).

Для слова y=(011010) значащие разряды второй, третий и пятый, поэтому

H(y)= (0,1,0) Å (0,1,1) Å (1,0,1)=(1,1,0).

Согласно теореме, bÎ H6, .

4.4.8. Решите задачу. В двоичном слове b в задаче 4.4.6. произошла замена одного из символов. С помощью векторной формы кода Хемминга найдите и исправьте ошибку.

Образец: Пусть в слове b=(110101) произошла замена одного из символов, например, первого. Новое слово А=(110101). Докажите с помощью векторной формы кода Хемминга, что заменен именно первый символ.

Решение: Найдем H(A)=(0,0,1) Å (0,1,0) Å (1,0,0) Å (1,1,0)=(0,0,1), что соответствует числу 1. Т.к. Полученный кортеж (001) есть двоичная форма числа 1, то первый разряд есть номер замещенного места.

4.4.9. Решите задачу:

Закодируйте слово длины 4 с помощью кода с проверкой четности.

а) α=(0011) б) α=(1011) в) α=(0111) г) α=(0001) д) α=(0010)
е) α=(1010) ж) α=(0110) з) α=(1001) и) α=(1000) к) α=(1100)

 

Образец: Закодируйте слово α=(0101) длины 4 с помощью кода с проверкой четности.

Решение: Найдем сумму по модулю 2 всех двоичных букв этого слова. Имеем:

, поэтому передано будет сообщение в виде слова b=(01010) длины 5.

4.4.10. Решите задачу:

Декодируйте слово длины 5 с помощью кода с проверкой четности

а) b=(00110) б) b=(10111) в) b=(01110) г) b=(00011) д) b=(00101)
е) b=(10100) ж) b=(01100) з) b=(10010) и) b=(10001) к) b=(11001)

Образец: Декодируйте слово b=(01110) длины 5 с помощью кода с проверкой четности.

Решение: Отбросив последнюю букву передаваемого слова, имеем слово α=(0101) длины 4, которое передавалось по каналу связи (в задании 4.4.9).

4.4.11. Решите задачу:

Определите, допущены ли ошибки в сообщении, заданном в задании 4.4.10.

Образец: Определите, допущены ли ошибки в сообщениях a1=(01110) и a2= (01010).

Решение: Для обнаружения ошибки, проверим с помощью М2 сумму всех букв закодированного слова в полученных сообщениях: a1= . Т.к. сумма всех букв закодированного слова оказалась равной 1, то при его передаче по каналу связи была допущена ошибка.

Для второго сообщения имеем a1= . Т.к. сумма всех букв закодированного слова оказалась равной 0, то при его передаче по каналу связи код с проверкой четности не позволяет выявить ошибку.

4.4.12. Для заданного сообщения А построить код Хемминга B. Необходимо обнаружить и справить одиночную ошибку, если при хранении информации она приобрела вид:

а) 1011010 б) 1001000 в) 1011100 г) 0011000 д) 1010000
е) 1111000 ж) 1011001 з) 10110000 и) 010110 к) 101010

Образец: Для заданного сообщения A=101100 построить код Хемминга B.

Решение:Кодируемое словоA=101100 длины m=6.

1) Рассчитаем k по формуле . При m = 6 имеем неравенство . Отсюда т.к. 4<6<8, то 22<6<23. Значит k=3 и закодированное слово должно быть длиной m+ k =6+3=9. Значит, код содержит 6 информационных и 3 проверочных символа, расположенных на местах, соответствующих разрядам, равным целым степеням числа 2. Тогда проверочные символы расположены на 2k местах: т.е. занимать 20=1, 21=2, 22=4, разряды. Остальные разряды двоичного числа заняты информационными символами.

2) Обозначим через pi символы, расположенные на проверочных i–ых разрядах. Тогда код В должен иметь вид двоичного числа, в котором на 1-м, 2-м и 4-м месте расположены проверочные символы p1, p2, p4, а на остальных местах разместим информационные символы, взятые из заданного числа A=101100. Тогда код В примет вид:

p1 p21 p401100

3) Для вычисления проверочных символов составим таблицу:

i i в двоичном представлении Информац. позиции Расчет проверочных символов Провероч. позиции Сообщение после кодирования Номер строк, формирующих провер.символ
0001   p3Å p7 3 и 7
  p3Å p6Å p7 3, 6 и 7
0011      
  p6Å p7 6 и 7
     
0110      
0111      
     
     

Для вычисления проверочных символов будем учитывать, что pi равно сумме по модулю 2 тех информационных символов, номера которых имеют единицу в двоичном представлении в i–ых разрядах, считая справа налево: p1 – в первом разряде справа, p2 – во втором разряде, p4 – в третьем разряде справа. Т.к. информационные позиции для единиц в первом разряде, расположенных на 3-м и 7-м местах, то p1 = p3Å p7=1 Å 1=0.

Т.к. информационные позиции для единиц во втором разряде, расположены на 3-м , 6-м и 7-м местах, то p2 = p3Å p6Å p7=1 Å 1Å 1=1.

Т.к. информационные позиции для единиц в третьем разряде справа расположены на 6-м и 7-м местах, то p4 = p6Å p7=1Å 1=0.

4) Объединим информационные и проверочные символы. Тогда закодированное кодом Хемминга сообщение имеет вид: В=011001100.

5) Проверим правильность построенного кода. Для этого найдем значение H(B). Для этого выпишем столбец, составив его из двоичных номеров строк, в которых знак кода В равен 1, т.е. 2-ю,3-ю,6-ю и 7-ю строки. Если сумма М2 номеров в каждом разряде равна 0, то код составлен без ошибок:

Номер строки Двоичное представление номера строки Знак сообщения В
0011
0110
0111
Сумма разрядов М2  

Действительно, в каждом из разрядов получен ноль, значит код составлен верно.

4.4.13. В построенный в задании 4.4.12. код Хемминга внести одиночную ошибку. Необходимо обнаружить и справить эту одиночную ошибку в коде Хемминга B.

Образец. В образце задания 4.4.12. сообщение, закодированное кодом Хемминга, имеет вид: В=011001100. Пусть при передаче сообщения произошла замена символа в пятом разряде. Необходимо обнаружить и справить эту одиночную ошибку в коде Хемминга B.

Решение. Новое сообщение имеет вид В*=011011100.

1) Для обнаружения ошибки, найдем значение H(B*). Для этого выпишем в столбец двоичные номера строк, в которых знак сообщения В* равен 1. Найдем сумму М2 знаков номеров в каждом из разрядов.

i Двоичное представление номера строки Сообщение после его передачи
0001

 

i Двоичное представление номера строки Сообщение после его передачи

Полученное число 0101 есть двоичная форма десятичного числа 5: 01012=510. Это означает, что именно в пятом разряде сообщения В*=011011100 произошла замена символа. Чтобы исправить ошибку, заменим символ 1 в пятом разряде на символ 0. Действительно, сообщение имело вид: В=011001100.