Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Самостоятельная работа / Гайд по СР ТИ

.pdf
Скачиваний:
0
Добавлен:
08.08.2026
Размер:
468 Кб
Скачать

ГАЙД ПО ВЫПОЛНЕНИЮ САМОСТОЯТЕЛЬНОЙ РАБОТЫ ПО ТИ

1 Кодирование Фано

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

АJNQА_DАХТNGА всего 13 символов 9 уникальных символов

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

А – 4 символа N – 2 символа D – 1 символ G – 1 символ J – 1 символ

Q– 1 символ

Т– 1 символ Х – 1 символ _ – 1 символ

Столбец уникальных символов нужно разделить пополам таким образом, чтобы общее количество символов в каждой половине было примерно равным (т.е. если всего символов нечетное количество, то в одной половине будет на 1 символ больше, чем в другой). Делить можно как угодно, хоть начиная сверху, хоть снизу, главное делить таким образом на протяжении всей работы.

А – 4

символа

<– тут 6

N – 2

символа

 

__________________

 

D – 1 символ

 

G – 1 символ

 

J – 1 символ

<– тут 7

Q – 1 символ

Т – 1 символ

 

Х – 1 символ

 

_ – 1

символ

 

Верхнюю половину записать, как нули, нижнюю половину – как единицы Этот принцип будет работать таким образом до тех пор, пока мы не сможем больше делить столбцы на половины:

А0

N0

D1

G1

J 1

Q1

Т1

Х1

_ 1

А 0 0

N 0 1

D 1 0

G 1 0

J 1 0

Q 1 1 Т 1 1 Х 1 1 _ 1 1

А

0

 

0

 

 

 

N

0

 

1

 

 

 

D

1

 

0

 

0

G

1

 

0

 

1

J

1

 

0

 

1

Q

1

 

1

 

0

Т

1

 

1

 

0

Х

1

 

1

 

1

_

 

1

 

1

 

1

 

 

 

 

 

 

 

 

 

А

 

0

0

 

 

 

 

N

 

0

1

 

 

 

 

D

 

1

0

 

0

 

 

G

 

1

0

 

1

 

0

J

 

1

0

 

1

 

1

Q

 

1

1

 

0

 

0

Т

 

1

1

 

0

 

1

Х

 

1

1

 

1

 

0

_

 

1

1

 

1

 

1

 

 

 

 

 

 

 

 

 

Получившиеся кодировки для удобства можно выписать в отдельный столбец.

А

0

0

 

 

N

0

1

 

 

D

1

0

0

 

G

1

0

1

0

J

1

0

1

1

Q

1

1

0

0

Т

1

1

0

1

Х

1

1

1

0

_

1

1

1

1

 

 

 

 

 

2 Вектор Крафта

Для проверки правильности кодировки проверяем выполнение неравенства Крафта (вектор Крафта):

2q 1 , гдеq – количествонулейиединиц,приходящеесянабуквувкодировке

ВК=2 22+23+6 24=1

Чаще всего ВК получается равным единице. Если же получилось большее число, то перепроверьте предыдущие шаги.

3 Кодирование Хэмминга

Для выполнения этого этапа советую воспользоваться сайтом по ссылке: https://allcalc.ru/node/1977

Первую букву фамилии (заглавную!!) переведите в двоичный код в кодировке UTF-16. Первые пять нулей числа не имеют значения, их в последствии можно не использовать в расчетах. Посчитать количество символов без первых пяти нулей.

Б → 0000010000010001 m = 11

Для того, чтобы узнать количество контрольных битов, нужно, чтобы выполнялось следующее неравенство:

2r m+r +1 , гдеr – количествоконтрольныхбит

Методом подбора выясняется, что для выбранной буквы r = 4:

24 11+4+1;

16 16

Сумма m и r – количество разрядов двоичного числа, их должно быть больше 14, так как по заданию в 14 разряде мы будем делать намеренную ошибку…

Выписываем все разряды в строку. Те разряды, которые являются степенью двойки (1, 2, 4, 8 и т. д.), оставляем пустыми; над оставшимися разрядами записываем посимвольно двоичное число:

 

 

1

 

0

0

0

 

0

0

1

0

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

20

21

 

22

 

 

 

23

 

 

 

 

 

 

 

Рассчитываем каждый контрольный бит. Для каждого контрольного бита свое особое правило расчета, но на самом деле логику легко проследить:

Контрольный бит 1

Рассчитываем сумму всех нечетных «значимых битов», нужные выделены зеленым цветом, все контрольные биты на данном этапе принимаются за ноль:

 

 

1

 

0

 

0

0

 

0

0

1

0

0

0

1

1

2

3

4

5

 

6

7

8

9

10

11

12

13

14

15

20

21

 

22

 

 

 

 

23

 

 

 

 

 

 

 

 

 

 

 

 

0 + 1 + 0 + 0 + 0 + 1 + 0 + 1 = 3

 

 

 

 

Если сумма нечетная, то бит принимает значение «1», иначе бит принимает значение «0». Это условие распространяется на все правила для расчета контрольных битов.

Исходя из полученной суммы контрольный бит 1 принимает значение «1».

Контрольный бит 2

Для контрольного бита 2 используется правило суммы «два через два», начиная со 2 бита:

 

 

1

 

0

0

0

 

0

0

1

0

0

0

1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

20

21

 

22

 

 

 

23

 

 

 

 

 

 

 

0 + 1 + 0 + 0 + 0 + 1 + 0 + 1 = 3 => контрольный бит 2 принимает значение «1»

Контрольный бит 4

Для контрольного бита 4 используется правило суммы «четыре через четыре», начиная с 4 бита:

 

 

1

 

0

0

0

 

0

0

1

0

0

0

1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

20

21

 

22

 

 

 

23

 

 

 

 

 

 

 

0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 1 => контрольный бит 4 принимает значение «1»

Контрольный бит 8

Для контрольного бита 8 используется правило суммы «восемь через восемь», начиная с 8 бита. Если у вас осталось меньше 8 битов после контрольного бита, то ничего страшного, просто суммируйте все до конца:

 

 

1

 

0

0

0

 

0

0

1

0

0

0

1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

20

21

 

22

 

 

 

23

 

 

 

 

 

 

 

0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 = 2 => контрольный бит 8 принимает значение «0»

Подставляем найденные значения в ряд:

1

1

1

1

0

0

0

0

0

0

1

0

0

0

1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

20

21

 

22

 

 

 

23

 

 

 

 

 

 

 

Предположим, что в 14 разряде была сделана ошибка (то есть ставим противоположное значение):

1

1

1

1

0

0

0

0

0

0

1

0

0

1

1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

20

21

 

22

 

 

 

23

 

 

 

 

 

 

 

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

Контрольный бит 1: 1 + 1 + 0 + 0 + 0 + 1 + 0 + 1 = 4 => принимает значение «0» Контрольный бит 2: 1 + 1 + 0 + 0 + 0 + 1 + 1 + 1 = 5 => принимает значение «1» Контрольный бит 4: 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 = 3 => принимает значение «1» Контрольный бит 8: 0 + 0 + 0 + 1 + 0 + 0 + 1 + 1 = 3 => принимает значение «1»

Выпишем полученные новые контрольные биты в столбик, а затем в строку читая снизу вверх. Переводим полученное двоичное число в десятичное, полученное число показывает в каком разряде была допущена ошибка:

1)0 ↑

2)1 ↑

4)1 ↑

8)1 ↑

11102 = 1410

Соседние файлы в папке Самостоятельная работа