|
55 |
|
|
11 |
1011 |
10 |
1010 |
09 |
1001 |
08 |
1000 |
07 |
0111 |
05 |
0101 |
04 |
0100 |
03 |
0011 |
02 |
0010 |
сумма |
0111 =7 |
2) Ошибка в бите 5 — бит 1 заменён на бит 0, принят следующий код: {11110001110}. Просуммируем коды позиций с ненулевыми битами:
11 |
1011 |
10 |
1010 |
09 |
1001 |
08 |
1000 |
04 |
0100 |
03 |
0011 |
02 |
0010 |
сумма |
0101 =5 |
Найдена контрольная сумма в кодовых последовательностях, содержащих ошибку не равна 0. В обоих случаях контрольная сумма равна позиции бита, переданного с ошибкой. Теперь для исправления ошибки достаточно инвертировать бит, номер которого указан в контрольной сумме.
56
ЛАБОРАТОРНАЯ РАБОТА № 6 Методы логического кодирования (Канальный
уровень). Корректирующие и обнаруживающие коды. Код Хэмминга
Продолжительность — 4 часа. Максимальный рейтинг — 7 баллов.
ЦЕЛЬ РАБОТЫ
Изучить методы логического кодирования, используемые на канальном уровне (OSI) сетевых устройств. Изучить корректирующие и обнаруживающие коды на примере кода Хэмминга.
ЗАДАНИЕ
1.Составить корректирующий код Хэмминга для передачи битовой последовательности длины m (длина информационной последовательности и сама битовая последовательность выбирается из вариантов индивидуального задания). Определить число контрольных битов. Вычислить позиции контрольных битов.
2.Закодировать полученным кодом Хэмминга заданную в индивидуальном задании последовательность.
3.Внести единичную ошибку в кодовую последовательность. Обнаружить и исправить ошибку по алгоритму Хэмминга.
4.Внести двойную ошибку. Обнаружить ее по методу Хэм-
минга.
5.В отчете привести полный расчет кода, обосновать выбор длины контрольной суммы.
ВАРИАНТЫ ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ
№ вари- |
m |
S |
|
анта |
|||
|
|
||
1 |
17 |
00000111000011000 |
|
2 |
18 |
111110101011011110 |
|
3 |
19 |
0111010000100111010 |
|
4 |
20 |
00100111010011011110 |
|
5 |
21 |
110000000011000101111 |
|
|
57 |
|
|
|
|
|
№ вари- |
m |
S |
|
анта |
|||
|
|
||
6 |
22 |
1100111110111010000001 |
|
7 |
23 |
10001011000001010101000 |
|
8 |
24 |
100011110011100100101100 |
|
9 |
25 |
1001110000011100111100111 |
|
10 |
26 |
10010011011010110111111100 |
|
11 |
17 |
00111000011100100 |
|
12 |
18 |
000001110001001011 |
|
13 |
19 |
0001011101011001010 |
|
14 |
20 |
00011001111011011011 |
|
15 |
21 |
011010000110010111110 |
|
16 |
22 |
0010110100100111100101 |
|
17 |
23 |
00110000001001010100000 |
|
18 |
24 |
110110011110100101111100 |
|
19 |
25 |
0111101111011100101000000 |
|
20 |
26 |
00101010010110000011110011 |
|
21 |
17 |
01100011110001011 |
|
22 |
18 |
000110111111110011 |
|
23 |
19 |
1111100011110010100 |
|
24 |
20 |
10010110110010110001 |
|
25 |
21 |
000110101100100111101 |
|
26 |
22 |
1010011011011010001011 |
|
27 |
23 |
11110001111100011110011 |
|
28 |
24 |
100000111110001111000110 |
|
29 |
25 |
1001111001110110101010100 |
|
30 |
26 |
01010010100000010110011101 |
КОНТРОЛЬНЫЕ ВОПРОСЫ
1.Основные функции методов логического кодирования.
2.Корректирующие и обнаруживающие коды. Кодовое расстояние.
3.Обнаруживающая способность кода. Корректирующая способность.
4.Линейные коды. Систематические линейные коды. Совершенные и квазисовершенные коды.
58
5.Циклические коды. CRC. Порждающий многочлен. Алгоритм кодирования\декодирования.
6.Код Хэмминга. Размер кодовой последовательности. Позиции кодовых знаков.
59
7 КОДИРОВАНИЕ ИНФОРМАЦИИ. КОМПРЕССИЯ. МЕТОД ХАФФМАНА
Метод Хаффмана (Huffman code) или минимально-избы-
точный префиксный код (minimum-redundancy prefix code) отно-
сится к статистическим методам кодирования.
Обычно для хранения данных и передачи сообщений используются коды фиксированной длины, например, код ASCII. Множество символов представляется некоторым количеством кодовых слов равной длины, которая для кода ASCII равна 8 битам. При этом для всех сообщений с одинаковым количеством символов требуется одинаковое количество битов при хранении и одинаковая ширина полосы пропускания при передаче.
Метод Хаффмана основан на кодировании более короткими кодовыми словами часто встречающиеся символы, а символы встречающиеся редко — более длинными. Подбирая кодовые последовательности таким образом, можно получить код с длиной, очень близкой к его энтропии (то есть информационной насыщенности). Кодовые слова при этом должны быть выбраны так, чтобы никакое из них не было префиксом другого кодового слова. Благодаря этому условию гарантируется возможность однозначного декодирования определенного закодированного текста.
В своей статье, опубликованной в 1952 г., Дэвид Хаффман описал алгоритм поиска множества кодов, которые минимизируют ожидаемую длину сообщений при условии, что известны вероятности появления каждого символа. В этом методе символам, имеющим меньшую вероятность появления, ставятся в соответствие более длинные кодовые слова.
Пусть A a1,a2,...,an — алфавит из n различных симво-
лов, P p1, p2,..., pn — соответствующий ему набор положи-
тельных весов (вероятностей).
Тогда набор бинарных кодов C c1,c2,...,cn , такой что:
(1) ci не является префиксом для cj, при i j;
n
(2)pi ci — минимальна
i 1